summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--.htaccess3
-rw-r--r--.settings/.jsdtscope16
-rw-r--r--.settings/org.eclipse.php.core.prefs3
-rw-r--r--.settings/org.eclipse.wst.jsdt.ui.superType.container1
-rw-r--r--.settings/org.eclipse.wst.jsdt.ui.superType.name1
-rw-r--r--api/index.php17
-rw-r--r--atom-to-html.xsl1
-rw-r--r--backend.php25
-rwxr-xr-x[-rw-r--r--]cache/.htaccess0
-rwxr-xr-x[-rw-r--r--]cache/images/.empty0
-rwxr-xr-x[-rw-r--r--]cache/js/.empty (renamed from cache/magpie/.empty)0
-rwxr-xr-x[-rw-r--r--]cache/simplepie/.empty0
-rw-r--r--cache/upload/.empty (renamed from plugins/example_article/init.js)0
-rw-r--r--cdm.css155
-rw-r--r--classes/.htaccess2
-rw-r--r--classes/api.php413
-rw-r--r--classes/article.php246
-rw-r--r--classes/auth/base.php22
-rw-r--r--classes/backend.php36
-rw-r--r--classes/db.php98
-rw-r--r--classes/db/mysql.php73
-rw-r--r--classes/db/mysqli.php77
-rw-r--r--classes/db/pdo.php100
-rw-r--r--classes/db/pgsql.php82
-rw-r--r--classes/db/prefs.php190
-rw-r--r--classes/db/stmt.php32
-rw-r--r--classes/dbupdater.php65
-rw-r--r--classes/dlg.php518
-rw-r--r--classes/feedenclosure.php7
-rw-r--r--classes/feeditem.php15
-rw-r--r--classes/feeditem/atom.php109
-rw-r--r--classes/feeditem/common.php51
-rw-r--r--classes/feeditem/rss.php107
-rw-r--r--classes/feedparser.php196
-rw-r--r--classes/feeds.php658
-rw-r--r--classes/handler.php6
-rw-r--r--classes/handler/public.php455
-rw-r--r--classes/idb.php13
-rw-r--r--classes/logger.php65
-rw-r--r--classes/logger/sql.php28
-rw-r--r--classes/logger/syslog.php31
-rw-r--r--classes/opml.php167
-rw-r--r--classes/plugin.php10
-rw-r--r--classes/pluginhandler.php4
-rw-r--r--classes/pluginhost.php142
-rw-r--r--classes/pref/feeds.php667
-rw-r--r--classes/pref/filters.php330
-rw-r--r--classes/pref/labels.php79
-rw-r--r--classes/pref/prefs.php519
-rw-r--r--classes/pref/system.php90
-rw-r--r--classes/pref/users.php171
-rw-r--r--classes/rpc.php603
-rw-r--r--classes/sanitizedummy.php7
-rw-r--r--classes/ttrssmailer.php62
-rw-r--r--config.php-dist42
-rw-r--r--db-updater.php186
-rw-r--r--errors.php5
-rwxr-xr-x[-rw-r--r--]feed-icons/.empty0
-rw-r--r--feed-icons/index.html0
-rw-r--r--image.php49
-rw-r--r--images/cdm_footer_tile.pngbin221 -> 0 bytes
-rw-r--r--images/close_notify.svg76
-rw-r--r--images/collapse.pngbin0 -> 186 bytes
-rw-r--r--images/favicon-72px.pngbin0 -> 5474 bytes
-rw-r--r--images/favicon.pngbin386 -> 772 bytes
-rw-r--r--images/logo_small.pngbin0 -> 4134 bytes
-rw-r--r--images/overlay.pngbin111 -> 0 bytes
-rw-r--r--images/piggie.pngbin14123 -> 0 bytes
-rw-r--r--images/piggie_icon.pngbin540 -> 0 bytes
-rw-r--r--include/autoload.php14
-rw-r--r--include/ccache.php78
-rw-r--r--include/colors.php82
-rw-r--r--include/crypt.php36
-rw-r--r--include/db-prefs.php187
-rw-r--r--include/db.php124
-rw-r--r--include/digest.php64
-rw-r--r--include/errorhandler.php39
-rw-r--r--include/feedbrowser.php10
-rw-r--r--include/functions.php1744
-rw-r--r--include/labels.php89
-rw-r--r--include/localized_schema.php65
-rw-r--r--include/login_form.php44
-rw-r--r--include/rssfuncs.php720
-rw-r--r--include/sanity_check.php94
-rw-r--r--include/sanity_config.php4
-rw-r--r--include/sessions.php149
-rw-r--r--include/version.php18
-rw-r--r--index.php168
-rw-r--r--install/index.php498
-rw-r--r--js/FeedTree.js130
-rw-r--r--js/PluginHost.js34
-rw-r--r--js/PrefFilterTree.js28
-rw-r--r--js/feedlist.js89
-rw-r--r--js/functions.js338
-rw-r--r--js/index.html0
-rw-r--r--js/prefs.js122
-rw-r--r--js/tt-rss.js580
-rw-r--r--js/viewfeed.js600
-rw-r--r--lib/MiniTemplator.class.php4
-rw-r--r--lib/dijit/BackgroundIframe.js2
-rw-r--r--lib/dijit/Calendar.js2
-rw-r--r--lib/dijit/CalendarLite.js2
-rw-r--r--lib/dijit/CheckedMenuItem.js2
-rw-r--r--lib/dijit/ColorPalette.js2
-rw-r--r--lib/dijit/Declaration.js2
-rw-r--r--lib/dijit/Destroyable.js2
-rw-r--r--lib/dijit/Dialog.js2
-rw-r--r--lib/dijit/DialogUnderlay.js2
-rw-r--r--lib/dijit/DropDownMenu.js2
-rw-r--r--lib/dijit/Editor.js2
-rw-r--r--lib/dijit/InlineEditBox.js2
-rw-r--r--lib/dijit/LICENSE2
-rw-r--r--lib/dijit/Menu.js2
-rw-r--r--lib/dijit/MenuBar.js2
-rw-r--r--lib/dijit/MenuBarItem.js2
-rw-r--r--lib/dijit/MenuItem.js2
-rw-r--r--lib/dijit/PopupMenuItem.js2
-rw-r--r--lib/dijit/ProgressBar.js2
-rw-r--r--lib/dijit/TitlePane.js2
-rw-r--r--lib/dijit/Toolbar.js2
-rw-r--r--lib/dijit/Tooltip.js2
-rw-r--r--lib/dijit/TooltipDialog.js2
-rw-r--r--lib/dijit/Tree.js2
-rw-r--r--lib/dijit/Viewport.js2
-rw-r--r--lib/dijit/WidgetSet.js2
-rw-r--r--lib/dijit/_BidiSupport.js2
-rw-r--r--lib/dijit/_Calendar.js2
-rw-r--r--lib/dijit/_Container.js2
-rw-r--r--lib/dijit/_CssStateMixin.js2
-rw-r--r--lib/dijit/_HasDropDown.js2
-rw-r--r--lib/dijit/_MenuBase.js2
-rw-r--r--lib/dijit/_OnDijitClickMixin.js2
-rw-r--r--lib/dijit/_PaletteMixin.js2
-rw-r--r--lib/dijit/_TemplatedMixin.js2
-rw-r--r--lib/dijit/_TimePicker.js2
-rw-r--r--lib/dijit/_Widget.js2
-rw-r--r--lib/dijit/_WidgetBase.js2
-rw-r--r--lib/dijit/_WidgetsInTemplateMixin.js2
-rw-r--r--lib/dijit/_base.js2
-rw-r--r--lib/dijit/_base/focus.js2
-rw-r--r--lib/dijit/_base/manager.js2
-rw-r--r--lib/dijit/_base/place.js2
-rw-r--r--lib/dijit/_base/popup.js2
-rw-r--r--lib/dijit/_base/scroll.js2
-rw-r--r--lib/dijit/_base/wai.js2
-rw-r--r--lib/dijit/_base/window.js2
-rw-r--r--lib/dijit/_editor/RichText.js2
-rw-r--r--lib/dijit/_editor/_Plugin.js2
-rw-r--r--lib/dijit/_editor/html.js2
-rw-r--r--lib/dijit/_editor/nls/ca/commands.js2
-rw-r--r--lib/dijit/_editor/nls/cs/commands.js2
-rw-r--r--lib/dijit/_editor/nls/da/commands.js2
-rw-r--r--lib/dijit/_editor/nls/de/commands.js2
-rw-r--r--lib/dijit/_editor/nls/el/commands.js2
-rw-r--r--lib/dijit/_editor/nls/es/commands.js2
-rw-r--r--lib/dijit/_editor/nls/fi/FontChoice.js2
-rw-r--r--lib/dijit/_editor/nls/fi/commands.js2
-rw-r--r--lib/dijit/_editor/nls/fr/commands.js2
-rw-r--r--lib/dijit/_editor/nls/hu/commands.js2
-rw-r--r--lib/dijit/_editor/nls/it/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/nls/it/commands.js2
-rw-r--r--lib/dijit/_editor/nls/ja/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/nls/ja/commands.js2
-rw-r--r--lib/dijit/_editor/nls/kk/FontChoice.js2
-rw-r--r--lib/dijit/_editor/nls/kk/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/nls/kk/commands.js2
-rw-r--r--lib/dijit/_editor/nls/ko/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/nls/ko/commands.js2
-rw-r--r--lib/dijit/_editor/nls/nl/commands.js2
-rw-r--r--lib/dijit/_editor/nls/pl/FontChoice.js2
-rw-r--r--lib/dijit/_editor/nls/pl/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/nls/pl/commands.js2
-rw-r--r--lib/dijit/_editor/nls/pt/FontChoice.js2
-rw-r--r--lib/dijit/_editor/nls/pt/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/nls/pt/commands.js2
-rw-r--r--lib/dijit/_editor/nls/ro/FontChoice.js2
-rw-r--r--lib/dijit/_editor/nls/ro/commands.js2
-rw-r--r--lib/dijit/_editor/nls/ru/commands.js2
-rw-r--r--lib/dijit/_editor/nls/sk/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/nls/sk/commands.js2
-rw-r--r--lib/dijit/_editor/nls/sl/commands.js2
-rw-r--r--lib/dijit/_editor/nls/sv/FontChoice.js2
-rw-r--r--lib/dijit/_editor/nls/sv/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/nls/sv/commands.js2
-rw-r--r--lib/dijit/_editor/nls/th/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/nls/th/commands.js2
-rw-r--r--lib/dijit/_editor/nls/tr/commands.js2
-rw-r--r--lib/dijit/_editor/nls/zh-tw/commands.js2
-rw-r--r--lib/dijit/_editor/nls/zh/FontChoice.js2
-rw-r--r--lib/dijit/_editor/nls/zh/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/nls/zh/commands.js2
-rw-r--r--lib/dijit/_editor/plugins/AlwaysShowToolbar.js2
-rw-r--r--lib/dijit/_editor/plugins/EnterKeyHandling.js2
-rw-r--r--lib/dijit/_editor/plugins/FontChoice.js2
-rw-r--r--lib/dijit/_editor/plugins/FullScreen.js2
-rw-r--r--lib/dijit/_editor/plugins/LinkDialog.js2
-rw-r--r--lib/dijit/_editor/plugins/NewPage.js2
-rw-r--r--lib/dijit/_editor/plugins/Print.js2
-rw-r--r--lib/dijit/_editor/plugins/TextColor.js2
-rw-r--r--lib/dijit/_editor/plugins/ToggleDir.js2
-rw-r--r--lib/dijit/_editor/plugins/ViewSource.js2
-rw-r--r--lib/dijit/_editor/range.js2
-rw-r--r--lib/dijit/_editor/selection.js2
-rw-r--r--lib/dijit/a11y.js2
-rw-r--r--lib/dijit/a11yclick.js2
-rw-r--r--lib/dijit/dijit-all.js2
-rw-r--r--lib/dijit/dijit.js2
-rw-r--r--lib/dijit/dijit.profile.js6
-rw-r--r--lib/dijit/focus.js2
-rw-r--r--lib/dijit/form/Button.js2
-rw-r--r--lib/dijit/form/CheckBox.js2
-rw-r--r--lib/dijit/form/ComboBoxMixin.js2
-rw-r--r--lib/dijit/form/ComboButton.js2
-rw-r--r--lib/dijit/form/CurrencyTextBox.js2
-rw-r--r--lib/dijit/form/DropDownButton.js2
-rw-r--r--lib/dijit/form/FilteringSelect.js2
-rw-r--r--lib/dijit/form/Form.js2
-rw-r--r--lib/dijit/form/HorizontalRuleLabels.js2
-rw-r--r--lib/dijit/form/HorizontalSlider.js2
-rw-r--r--lib/dijit/form/MappedTextBox.js2
-rw-r--r--lib/dijit/form/MultiSelect.js2
-rw-r--r--lib/dijit/form/NumberSpinner.js2
-rw-r--r--lib/dijit/form/NumberTextBox.js2
-rw-r--r--lib/dijit/form/RangeBoundTextBox.js2
-rw-r--r--lib/dijit/form/Select.js2
-rw-r--r--lib/dijit/form/SimpleTextarea.js2
-rw-r--r--lib/dijit/form/TextBox.js2
-rw-r--r--lib/dijit/form/TimeTextBox.js2
-rw-r--r--lib/dijit/form/ValidationTextBox.js2
-rw-r--r--lib/dijit/form/VerticalSlider.js2
-rw-r--r--lib/dijit/form/_AutoCompleterMixin.js2
-rw-r--r--lib/dijit/form/_CheckBoxMixin.js2
-rw-r--r--lib/dijit/form/_ComboBoxMenu.js2
-rw-r--r--lib/dijit/form/_ComboBoxMenuMixin.js2
-rw-r--r--lib/dijit/form/_DateTimeTextBox.js2
-rw-r--r--lib/dijit/form/_ExpandingTextAreaMixin.js2
-rw-r--r--lib/dijit/form/_FormMixin.js2
-rw-r--r--lib/dijit/form/_FormSelectWidget.js2
-rw-r--r--lib/dijit/form/_FormValueMixin.js2
-rw-r--r--lib/dijit/form/_FormValueWidget.js2
-rw-r--r--lib/dijit/form/_FormWidget.js2
-rw-r--r--lib/dijit/form/_FormWidgetMixin.js2
-rw-r--r--lib/dijit/form/_ListBase.js2
-rw-r--r--lib/dijit/form/_ListMouseMixin.js2
-rw-r--r--lib/dijit/form/_RadioButtonMixin.js2
-rw-r--r--lib/dijit/form/_SearchMixin.js2
-rw-r--r--lib/dijit/form/_Spinner.js2
-rw-r--r--lib/dijit/form/_TextBoxMixin.js2
-rw-r--r--lib/dijit/form/_ToggleButtonMixin.js2
-rw-r--r--lib/dijit/form/nls/da/validate.js2
-rw-r--r--lib/dijit/form/nls/it/ComboBox.js2
-rw-r--r--lib/dijit/form/nls/it/validate.js2
-rw-r--r--lib/dijit/form/nls/pl/validate.js2
-rw-r--r--lib/dijit/form/nls/sk/ComboBox.js2
-rw-r--r--lib/dijit/form/nls/sk/Textarea.js2
-rw-r--r--lib/dijit/form/nls/sk/validate.js2
-rw-r--r--lib/dijit/form/nls/sv/ComboBox.js2
-rw-r--r--lib/dijit/form/nls/sv/validate.js2
-rw-r--r--lib/dijit/form/nls/th/Textarea.js2
-rw-r--r--lib/dijit/form/nls/zh/Textarea.js2
-rw-r--r--lib/dijit/form/nls/zh/validate.js2
-rw-r--r--lib/dijit/form/templates/CheckBox.html2
-rw-r--r--lib/dijit/form/templates/ComboButton.html2
-rw-r--r--lib/dijit/form/templates/DropDownBox.html2
-rw-r--r--lib/dijit/form/templates/DropDownButton.html2
-rw-r--r--lib/dijit/form/templates/HorizontalSlider.html3
-rw-r--r--lib/dijit/form/templates/Select.html20
-rw-r--r--lib/dijit/form/templates/Spinner.html6
-rw-r--r--lib/dijit/form/templates/VerticalSlider.html7
-rw-r--r--lib/dijit/hccss.js2
-rw-r--r--lib/dijit/icons/commonIcons.css172
-rw-r--r--lib/dijit/icons/commonIcons_rtl.css122
-rw-r--r--lib/dijit/icons/editorIcons.css79
-rw-r--r--lib/dijit/icons/editorIcons_rtl.css24
-rw-r--r--lib/dijit/layout/AccordionContainer.js2
-rw-r--r--lib/dijit/layout/BorderContainer.js2
-rw-r--r--lib/dijit/layout/ContentPane.js2
-rw-r--r--lib/dijit/layout/LayoutContainer.js2
-rw-r--r--lib/dijit/layout/ScrollingTabController.js2
-rw-r--r--lib/dijit/layout/SplitContainer.js2
-rw-r--r--lib/dijit/layout/StackContainer.js2
-rw-r--r--lib/dijit/layout/StackController.js2
-rw-r--r--lib/dijit/layout/TabContainer.js2
-rw-r--r--lib/dijit/layout/TabController.js2
-rw-r--r--lib/dijit/layout/_ContentPaneResizeMixin.js2
-rw-r--r--lib/dijit/layout/_LayoutWidget.js2
-rw-r--r--lib/dijit/layout/templates/_ScrollingTabControllerButton.html10
-rw-r--r--lib/dijit/layout/templates/_TabButton.html20
-rw-r--r--lib/dijit/layout/utils.js2
-rw-r--r--lib/dijit/nls/fr/common.js2
-rw-r--r--lib/dijit/nls/hr/loading.js2
-rw-r--r--lib/dijit/nls/it/common.js2
-rw-r--r--lib/dijit/nls/kk/loading.js2
-rw-r--r--lib/dijit/nls/ru/common.js2
-rw-r--r--lib/dijit/nls/sk/loading.js2
-rw-r--r--lib/dijit/nls/sv/loading.js2
-rw-r--r--lib/dijit/package.json7
-rw-r--r--lib/dijit/place.js2
-rw-r--r--lib/dijit/popup.js2
-rw-r--r--lib/dijit/registry.js2
-rw-r--r--lib/dijit/resources/_modules.js18
-rw-r--r--lib/dijit/templates/Calendar.html2
-rw-r--r--lib/dijit/templates/CheckedMenuItem.html3
-rw-r--r--lib/dijit/templates/Dialog.html11
-rw-r--r--lib/dijit/templates/InlineEditBox.html6
-rw-r--r--lib/dijit/templates/Menu.html3
-rw-r--r--lib/dijit/templates/MenuBarItem.html4
-rw-r--r--lib/dijit/templates/MenuItem.html3
-rw-r--r--lib/dijit/templates/TitlePane.html6
-rw-r--r--lib/dijit/templates/TooltipDialog.html2
-rw-r--r--lib/dijit/templates/Tree.html3
-rw-r--r--lib/dijit/templates/TreeNode.html5
-rw-r--r--lib/dijit/themes/claro/Calendar.css285
-rw-r--r--lib/dijit/themes/claro/Calendar.less34
-rw-r--r--lib/dijit/themes/claro/Calendar_rtl.css19
-rw-r--r--lib/dijit/themes/claro/ColorPalette.css42
-rw-r--r--lib/dijit/themes/claro/Common.css66
-rw-r--r--lib/dijit/themes/claro/Common.less34
-rw-r--r--lib/dijit/themes/claro/Dialog.css206
-rw-r--r--lib/dijit/themes/claro/Dialog.less18
-rw-r--r--lib/dijit/themes/claro/Dialog_rtl.css10
-rw-r--r--lib/dijit/themes/claro/Editor.css51
-rw-r--r--lib/dijit/themes/claro/Editor.less10
-rw-r--r--lib/dijit/themes/claro/Editor_rtl.css5
-rw-r--r--lib/dijit/themes/claro/InlineEditBox.css21
-rw-r--r--lib/dijit/themes/claro/Menu.css191
-rw-r--r--lib/dijit/themes/claro/Menu.less87
-rw-r--r--lib/dijit/themes/claro/Menu_rtl.css9
-rw-r--r--lib/dijit/themes/claro/ProgressBar.css64
-rw-r--r--lib/dijit/themes/claro/ProgressBar.less10
-rw-r--r--lib/dijit/themes/claro/README34
-rw-r--r--lib/dijit/themes/claro/TimePicker.css131
-rw-r--r--lib/dijit/themes/claro/TimePicker.less17
-rw-r--r--lib/dijit/themes/claro/TimePicker_rtl.css10
-rw-r--r--lib/dijit/themes/claro/TitlePane.css72
-rw-r--r--lib/dijit/themes/claro/TitlePane.less8
-rw-r--r--lib/dijit/themes/claro/TitlePane_rtl.css5
-rw-r--r--lib/dijit/themes/claro/Toolbar.css190
-rw-r--r--lib/dijit/themes/claro/Toolbar.less30
-rw-r--r--lib/dijit/themes/claro/Toolbar_rtl.css31
-rw-r--r--lib/dijit/themes/claro/Tree.css135
-rw-r--r--lib/dijit/themes/claro/Tree.less39
-rw-r--r--lib/dijit/themes/claro/claro.css29
-rw-r--r--lib/dijit/themes/claro/claro_rtl.css17
-rw-r--r--lib/dijit/themes/claro/document.css42
-rw-r--r--lib/dijit/themes/claro/form/Button.css163
-rw-r--r--lib/dijit/themes/claro/form/Button.less38
-rw-r--r--lib/dijit/themes/claro/form/Button_rtl.css14
-rw-r--r--lib/dijit/themes/claro/form/Checkbox.css72
-rw-r--r--lib/dijit/themes/claro/form/Common.css179
-rw-r--r--lib/dijit/themes/claro/form/Common.less71
-rw-r--r--lib/dijit/themes/claro/form/Common_rtl.css11
-rw-r--r--lib/dijit/themes/claro/form/Common_rtl.less9
-rw-r--r--lib/dijit/themes/claro/form/NumberSpinner.css139
-rw-r--r--lib/dijit/themes/claro/form/NumberSpinner.less10
-rw-r--r--lib/dijit/themes/claro/form/RadioButton.css80
-rw-r--r--lib/dijit/themes/claro/form/Select.css110
-rw-r--r--lib/dijit/themes/claro/form/Select.less64
-rw-r--r--lib/dijit/themes/claro/form/Select_rtl.css4
-rw-r--r--lib/dijit/themes/claro/form/Select_rtl.less6
-rw-r--r--lib/dijit/themes/claro/form/Slider.css330
-rw-r--r--lib/dijit/themes/claro/form/Slider.less43
-rw-r--r--lib/dijit/themes/claro/form/Slider_rtl.css25
-rw-r--r--lib/dijit/themes/claro/form/images/button.pngbin680 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/form/images/buttonDisabled.pngbin0 -> 105 bytes
-rw-r--r--lib/dijit/themes/claro/form/images/buttonDisabled.svg23
-rw-r--r--lib/dijit/themes/claro/form/images/buttonEnabled.pngbin0 -> 122 bytes
-rw-r--r--lib/dijit/themes/claro/form/images/buttonEnabled.svg24
-rw-r--r--lib/dijit/themes/claro/form/images/button_grad_d.pngbin3897 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/form/images/formHighlight.pngbin339 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/form/images/shadow.pngbin4624 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/form/images/sliderHorizontal.pngbin180 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/form/images/sliderVertical.pngbin177 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/form/images/textBox_back.pngbin2837 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/images/activeGradient.pngbin0 -> 146 bytes
-rw-r--r--lib/dijit/themes/claro/images/activeGradient.svg19
-rw-r--r--lib/dijit/themes/claro/images/calendar.pngbin0 -> 194 bytes
-rw-r--r--lib/dijit/themes/claro/images/calendarContainerImages.pngbin3347 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/images/commonHighlight.pngbin339 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/images/dnd.pngbin2996 -> 2127 bytes
-rw-r--r--lib/dijit/themes/claro/images/menuHighlight.pngbin339 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/images/progressBarEmpty.pngbin2849 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/images/standardGradient.pngbin0 -> 153 bytes
-rw-r--r--lib/dijit/themes/claro/images/standardGradient.svg18
-rw-r--r--lib/dijit/themes/claro/images/titlebar.pngbin640 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/images/tooltipGradient.pngbin1030 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/images/treeExpand_loading.gifbin1944 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/layout/AccordionContainer.css122
-rw-r--r--lib/dijit/themes/claro/layout/AccordionContainer.less16
-rw-r--r--lib/dijit/themes/claro/layout/BorderContainer.css110
-rw-r--r--lib/dijit/themes/claro/layout/BorderContainer.less20
-rw-r--r--lib/dijit/themes/claro/layout/ContentPane.css39
-rw-r--r--lib/dijit/themes/claro/layout/TabContainer.css435
-rw-r--r--lib/dijit/themes/claro/layout/TabContainer.less268
-rw-r--r--lib/dijit/themes/claro/layout/TabContainer_rtl.css68
-rw-r--r--lib/dijit/themes/claro/layout/TabContainer_rtl.less74
-rw-r--r--lib/dijit/themes/claro/layout/images/accordion.pngbin640 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/splitterHorizontalHover.pngbin3711 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/splitterVerticalHover.pngbin3869 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabBottom.pngbin718 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabBottomSelected.pngbin0 -> 118 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabBottomSelected.svg18
-rw-r--r--lib/dijit/themes/claro/layout/images/tabBottomUnselected.pngbin0 -> 110 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabBottomUnselected.svg19
-rw-r--r--lib/dijit/themes/claro/layout/images/tabLeft.pngbin1692 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabLeftSelected.pngbin0 -> 213 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabLeftSelected.svg17
-rw-r--r--lib/dijit/themes/claro/layout/images/tabLeftUnselected.pngbin0 -> 106 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabLeftUnselected.svg16
-rw-r--r--lib/dijit/themes/claro/layout/images/tabRight.pngbin1759 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabRightSelected.pngbin0 -> 210 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabRightSelected.svg17
-rw-r--r--lib/dijit/themes/claro/layout/images/tabRightUnselected.pngbin0 -> 105 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabRightUnselected.svg16
-rw-r--r--lib/dijit/themes/claro/layout/images/tabTop.pngbin721 -> 0 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabTopSelected.pngbin0 -> 120 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabTopSelected.svg18
-rw-r--r--lib/dijit/themes/claro/layout/images/tabTopUnselected.pngbin0 -> 121 bytes
-rw-r--r--lib/dijit/themes/claro/layout/images/tabTopUnselected.svg19
-rw-r--r--lib/dijit/themes/claro/variables.less186
-rw-r--r--lib/dijit/themes/dijit.css2052
-rw-r--r--lib/dijit/themes/dijit_rtl.css129
-rw-r--r--lib/dijit/themes/nihilo/Calendar.css162
-rw-r--r--lib/dijit/themes/nihilo/Calendar_rtl.css10
-rw-r--r--lib/dijit/themes/nihilo/ColorPalette.css6
-rw-r--r--lib/dijit/themes/nihilo/Common.css24
-rw-r--r--lib/dijit/themes/nihilo/Dialog.css153
-rw-r--r--lib/dijit/themes/nihilo/Dialog_rtl.css7
-rw-r--r--lib/dijit/themes/nihilo/Editor.css17
-rw-r--r--lib/dijit/themes/nihilo/Editor_rtl.css10
-rw-r--r--lib/dijit/themes/nihilo/Menu.css79
-rw-r--r--lib/dijit/themes/nihilo/Menu_rtl.css11
-rw-r--r--lib/dijit/themes/nihilo/ProgressBar.css34
-rw-r--r--lib/dijit/themes/nihilo/TimePicker.css52
-rw-r--r--lib/dijit/themes/nihilo/TimePicker_rtl.css5
-rw-r--r--lib/dijit/themes/nihilo/TitlePane.css55
-rw-r--r--lib/dijit/themes/nihilo/TitlePane_rtl.css7
-rw-r--r--lib/dijit/themes/nihilo/Toolbar.css66
-rw-r--r--lib/dijit/themes/nihilo/Tree.css101
-rw-r--r--lib/dijit/themes/nihilo/Tree_rtl.css23
-rw-r--r--lib/dijit/themes/nihilo/form/Button.css130
-rw-r--r--lib/dijit/themes/nihilo/form/Button_rtl.css9
-rw-r--r--lib/dijit/themes/nihilo/form/Checkbox.css68
-rw-r--r--lib/dijit/themes/nihilo/form/Common.css75
-rw-r--r--lib/dijit/themes/nihilo/form/RadioButton.css67
-rw-r--r--lib/dijit/themes/nihilo/form/Select.css55
-rw-r--r--lib/dijit/themes/nihilo/form/Slider.css142
-rw-r--r--lib/dijit/themes/nihilo/form/Slider_rtl.css37
-rw-r--r--lib/dijit/themes/nihilo/images/dndNoCopy.pngbin699 -> 1332 bytes
-rw-r--r--lib/dijit/themes/nihilo/images/dndNoMove.pngbin677 -> 991 bytes
-rw-r--r--lib/dijit/themes/nihilo/images/tabBottomActiveSpriteLR.gifbin291 -> 0 bytes
-rw-r--r--lib/dijit/themes/nihilo/images/tabBottomEnabledSpriteLR.gifbin266 -> 0 bytes
-rw-r--r--lib/dijit/themes/nihilo/images/tabBottomHoverSpriteLR.gifbin388 -> 0 bytes
-rw-r--r--lib/dijit/themes/nihilo/images/tabLeftChecked.gifbin303 -> 0 bytes
-rw-r--r--lib/dijit/themes/nihilo/images/tabRightChecked.gifbin300 -> 0 bytes
-rw-r--r--lib/dijit/themes/nihilo/images/tabStripe.gifbin54 -> 0 bytes
-rw-r--r--lib/dijit/themes/nihilo/images/tabStripeBottom.gifbin432 -> 0 bytes
-rw-r--r--lib/dijit/themes/nihilo/images/tabStripeLeft.gifbin432 -> 0 bytes
-rw-r--r--lib/dijit/themes/nihilo/images/tabStripeRight.gifbin432 -> 0 bytes
-rw-r--r--lib/dijit/themes/nihilo/layout/AccordionContainer.css47
-rw-r--r--lib/dijit/themes/nihilo/layout/AccordionContainer_rtl.css9
-rw-r--r--lib/dijit/themes/nihilo/layout/BorderContainer.css77
-rw-r--r--lib/dijit/themes/nihilo/layout/ContentPane.css22
-rw-r--r--lib/dijit/themes/nihilo/layout/SplitContainer.css35
-rw-r--r--lib/dijit/themes/nihilo/layout/TabContainer.css497
-rw-r--r--lib/dijit/themes/nihilo/layout/TabContainer_rtl.css44
-rw-r--r--lib/dijit/themes/nihilo/nihilo.css43
-rw-r--r--lib/dijit/themes/nihilo/nihilo_rtl.css30
-rw-r--r--lib/dijit/themes/soria/Calendar.css162
-rw-r--r--lib/dijit/themes/soria/Calendar_rtl.css10
-rw-r--r--lib/dijit/themes/soria/ColorPalette.css6
-rw-r--r--lib/dijit/themes/soria/Common.css24
-rw-r--r--lib/dijit/themes/soria/Dialog.css156
-rw-r--r--lib/dijit/themes/soria/Dialog_rtl.css6
-rw-r--r--lib/dijit/themes/soria/Editor.css18
-rw-r--r--lib/dijit/themes/soria/Editor_rtl.css8
-rw-r--r--lib/dijit/themes/soria/Menu.css79
-rw-r--r--lib/dijit/themes/soria/Menu_rtl.css11
-rw-r--r--lib/dijit/themes/soria/ProgressBar.css34
-rw-r--r--lib/dijit/themes/soria/TimePicker.css52
-rw-r--r--lib/dijit/themes/soria/TimePicker_rtl.css5
-rw-r--r--lib/dijit/themes/soria/TitlePane.css59
-rw-r--r--lib/dijit/themes/soria/TitlePane_rtl.css7
-rw-r--r--lib/dijit/themes/soria/Toolbar.css66
-rw-r--r--lib/dijit/themes/soria/Tree.css106
-rw-r--r--lib/dijit/themes/soria/Tree_rtl.css23
-rw-r--r--lib/dijit/themes/soria/form/Button.css123
-rw-r--r--lib/dijit/themes/soria/form/Button_rtl.css8
-rw-r--r--lib/dijit/themes/soria/form/Checkbox.css68
-rw-r--r--lib/dijit/themes/soria/form/Common.css75
-rw-r--r--lib/dijit/themes/soria/form/RadioButton.css67
-rw-r--r--lib/dijit/themes/soria/form/Select.css55
-rw-r--r--lib/dijit/themes/soria/form/Slider.css145
-rw-r--r--lib/dijit/themes/soria/form/Slider_rtl.css37
-rw-r--r--lib/dijit/themes/soria/images/dndNoCopy.pngbin699 -> 1332 bytes
-rw-r--r--lib/dijit/themes/soria/images/dndNoMove.pngbin677 -> 991 bytes
-rw-r--r--lib/dijit/themes/soria/images/tabBottomActiveSpriteLR.gifbin741 -> 0 bytes
-rw-r--r--lib/dijit/themes/soria/images/tabBottomHoverSpriteLR.gifbin569 -> 0 bytes
-rw-r--r--lib/dijit/themes/soria/images/tabLeftChecked.gifbin795 -> 2005 bytes
-rw-r--r--lib/dijit/themes/soria/images/tabRightChecked.gifbin793 -> 2003 bytes
-rw-r--r--lib/dijit/themes/soria/images/tabStripe.gifbin54 -> 0 bytes
-rw-r--r--lib/dijit/themes/soria/images/tabStripeBottom.gifbin54 -> 0 bytes
-rw-r--r--lib/dijit/themes/soria/images/tabStripeLeft.gifbin54 -> 0 bytes
-rw-r--r--lib/dijit/themes/soria/images/tabStripeRight.gifbin54 -> 0 bytes
-rw-r--r--lib/dijit/themes/soria/layout/AccordionContainer.css47
-rw-r--r--lib/dijit/themes/soria/layout/AccordionContainer_rtl.css9
-rw-r--r--lib/dijit/themes/soria/layout/BorderContainer.css78
-rw-r--r--lib/dijit/themes/soria/layout/ContentPane.css22
-rw-r--r--lib/dijit/themes/soria/layout/SplitContainer.css35
-rw-r--r--lib/dijit/themes/soria/layout/TabContainer.css493
-rw-r--r--lib/dijit/themes/soria/layout/TabContainer_rtl.css44
-rw-r--r--lib/dijit/themes/soria/soria.css42
-rw-r--r--lib/dijit/themes/soria/soria_rtl.css30
-rw-r--r--lib/dijit/themes/tundra/Calendar.css162
-rw-r--r--lib/dijit/themes/tundra/Calendar_rtl.css10
-rw-r--r--lib/dijit/themes/tundra/ColorPalette.css6
-rw-r--r--lib/dijit/themes/tundra/Common.css35
-rw-r--r--lib/dijit/themes/tundra/Dialog.css153
-rw-r--r--lib/dijit/themes/tundra/Dialog_rtl.css6
-rw-r--r--lib/dijit/themes/tundra/Editor.css17
-rw-r--r--lib/dijit/themes/tundra/Editor_rtl.css8
-rw-r--r--lib/dijit/themes/tundra/Menu.css78
-rw-r--r--lib/dijit/themes/tundra/Menu_rtl.css4
-rw-r--r--lib/dijit/themes/tundra/ProgressBar.css29
-rw-r--r--lib/dijit/themes/tundra/TimePicker.css53
-rw-r--r--lib/dijit/themes/tundra/TimePicker_rtl.css5
-rw-r--r--lib/dijit/themes/tundra/TitlePane.css39
-rw-r--r--lib/dijit/themes/tundra/TitlePane_rtl.css4
-rw-r--r--lib/dijit/themes/tundra/Toolbar.css76
-rw-r--r--lib/dijit/themes/tundra/Tree.css97
-rw-r--r--lib/dijit/themes/tundra/Tree_rtl.css18
-rw-r--r--lib/dijit/themes/tundra/form/Button.css137
-rw-r--r--lib/dijit/themes/tundra/form/Checkbox.css55
-rw-r--r--lib/dijit/themes/tundra/form/Common.css77
-rw-r--r--lib/dijit/themes/tundra/form/RadioButton.css53
-rw-r--r--lib/dijit/themes/tundra/form/Select.css58
-rw-r--r--lib/dijit/themes/tundra/form/Slider.css148
-rw-r--r--lib/dijit/themes/tundra/form/Slider_rtl.css32
-rw-r--r--lib/dijit/themes/tundra/images/dndNoCopy.pngbin699 -> 1332 bytes
-rw-r--r--lib/dijit/themes/tundra/images/dndNoMove.pngbin677 -> 991 bytes
-rw-r--r--lib/dijit/themes/tundra/layout/AccordionContainer.css27
-rw-r--r--lib/dijit/themes/tundra/layout/BorderContainer.css70
-rw-r--r--lib/dijit/themes/tundra/layout/ContentPane.css22
-rw-r--r--lib/dijit/themes/tundra/layout/SplitContainer.css32
-rw-r--r--lib/dijit/themes/tundra/layout/TabContainer.css336
-rw-r--r--lib/dijit/themes/tundra/layout/TabContainer_rtl.css52
-rw-r--r--lib/dijit/themes/tundra/tundra.css42
-rw-r--r--lib/dijit/themes/tundra/tundra_rtl.css28
-rw-r--r--lib/dijit/tree/ForestStoreModel.js2
-rw-r--r--lib/dijit/tree/ObjectStoreModel.js2
-rw-r--r--lib/dijit/tree/TreeStoreModel.js2
-rw-r--r--lib/dijit/tree/_dndContainer.js2
-rw-r--r--lib/dijit/tree/_dndSelector.js2
-rw-r--r--lib/dijit/tree/dndSource.js2
-rw-r--r--lib/dijit/tree/model.js1
-rw-r--r--lib/dijit/typematic.js2
-rw-r--r--lib/dojo-src/.gitignore2
-rwxr-xr-xlib/dojo-src/rebuild-dojo.sh22
-rw-r--r--lib/dojo-src/tt-rss.profile.js7
-rw-r--r--lib/dojo/AdapterRegistry.js2
-rw-r--r--lib/dojo/Deferred.js8
-rw-r--r--lib/dojo/DeferredList.js2
-rw-r--r--lib/dojo/Evented.js2
-rw-r--r--lib/dojo/LICENSE2
-rw-r--r--lib/dojo/NodeList-data.js2
-rw-r--r--lib/dojo/NodeList-dom.js4
-rw-r--r--lib/dojo/NodeList-fx.js4
-rw-r--r--lib/dojo/NodeList-html.js2
-rw-r--r--lib/dojo/NodeList-manipulate.js2
-rw-r--r--lib/dojo/NodeList-traverse.js2
-rw-r--r--lib/dojo/NodeList.js8
-rw-r--r--lib/dojo/OpenAjax.js28
-rw-r--r--lib/dojo/Stateful.js4
-rw-r--r--lib/dojo/_base/Color.js2
-rw-r--r--lib/dojo/_base/Deferred.js4
-rw-r--r--lib/dojo/_base/NodeList.js4
-rw-r--r--lib/dojo/_base/array.js4
-rw-r--r--lib/dojo/_base/browser.js2
-rw-r--r--lib/dojo/_base/config.js2
-rw-r--r--lib/dojo/_base/configFirefoxExtension.js28
-rw-r--r--lib/dojo/_base/configNode.js10
-rw-r--r--lib/dojo/_base/configRhino.js2
-rw-r--r--lib/dojo/_base/configSpidermonkey.js14
-rw-r--r--lib/dojo/_base/connect.js4
-rw-r--r--lib/dojo/_base/declare.js4
-rw-r--r--lib/dojo/_base/event.js4
-rw-r--r--lib/dojo/_base/fx.js4
-rw-r--r--lib/dojo/_base/html.js2
-rw-r--r--lib/dojo/_base/json.js2
-rw-r--r--lib/dojo/_base/kernel.js4
-rw-r--r--lib/dojo/_base/lang.js4
-rw-r--r--lib/dojo/_base/loader.js4
-rw-r--r--lib/dojo/_base/query.js4
-rw-r--r--lib/dojo/_base/sniff.js4
-rw-r--r--lib/dojo/_base/unload.js4
-rw-r--r--lib/dojo/_base/url.js2
-rw-r--r--lib/dojo/_base/window.js4
-rw-r--r--lib/dojo/_base/xhr.js4
-rw-r--r--lib/dojo/_firebug/firebug.css212
-rw-r--r--lib/dojo/_firebug/firebug.js4
-rw-r--r--lib/dojo/aspect.js4
-rw-r--r--lib/dojo/back.js4
-rw-r--r--lib/dojo/behavior.js4
-rw-r--r--lib/dojo/cache.js4
-rw-r--r--lib/dojo/cldr/monetary.js4
-rw-r--r--lib/dojo/cldr/nls/ar/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/ar/currency.js4
-rw-r--r--lib/dojo/cldr/nls/ar/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/ar/hebrew.js4
-rw-r--r--lib/dojo/cldr/nls/ar/islamic.js4
-rw-r--r--lib/dojo/cldr/nls/ar/number.js4
-rw-r--r--lib/dojo/cldr/nls/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/ca/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/ca/currency.js4
-rw-r--r--lib/dojo/cldr/nls/ca/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/ca/number.js4
-rw-r--r--lib/dojo/cldr/nls/cs/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/cs/currency.js4
-rw-r--r--lib/dojo/cldr/nls/cs/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/cs/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/cs/number.js4
-rw-r--r--lib/dojo/cldr/nls/currency.js4
-rw-r--r--lib/dojo/cldr/nls/da/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/da/currency.js4
-rw-r--r--lib/dojo/cldr/nls/da/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/da/islamic.js4
-rw-r--r--lib/dojo/cldr/nls/da/number.js4
-rw-r--r--lib/dojo/cldr/nls/de/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/de/currency.js4
-rw-r--r--lib/dojo/cldr/nls/de/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/de/islamic.js4
-rw-r--r--lib/dojo/cldr/nls/de/number.js4
-rw-r--r--lib/dojo/cldr/nls/el/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/el/currency.js4
-rw-r--r--lib/dojo/cldr/nls/el/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/el/hebrew.js4
-rw-r--r--lib/dojo/cldr/nls/el/number.js4
-rw-r--r--lib/dojo/cldr/nls/en-au/currency.js2
-rw-r--r--lib/dojo/cldr/nls/en-au/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/en-au/number.js2
-rw-r--r--lib/dojo/cldr/nls/en-ca/currency.js2
-rw-r--r--lib/dojo/cldr/nls/en-ca/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/en-gb/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/en-gb/currency.js8
-rw-r--r--lib/dojo/cldr/nls/en-gb/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/en-gb/islamic.js4
-rw-r--r--lib/dojo/cldr/nls/en-gb/number.js4
-rw-r--r--lib/dojo/cldr/nls/en/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/en/currency.js2
-rw-r--r--lib/dojo/cldr/nls/en/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/en/islamic.js4
-rw-r--r--lib/dojo/cldr/nls/en/number.js4
-rw-r--r--lib/dojo/cldr/nls/es/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/es/currency.js4
-rw-r--r--lib/dojo/cldr/nls/es/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/es/islamic.js4
-rw-r--r--lib/dojo/cldr/nls/es/number.js4
-rw-r--r--lib/dojo/cldr/nls/fi/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/fi/currency.js4
-rw-r--r--lib/dojo/cldr/nls/fi/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/fi/hebrew.js4
-rw-r--r--lib/dojo/cldr/nls/fi/islamic.js4
-rw-r--r--lib/dojo/cldr/nls/fi/number.js4
-rw-r--r--lib/dojo/cldr/nls/fr-ch/gregorian.js2
-rw-r--r--lib/dojo/cldr/nls/fr-ch/number.js2
-rw-r--r--lib/dojo/cldr/nls/fr/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/fr/currency.js4
-rw-r--r--lib/dojo/cldr/nls/fr/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/fr/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/fr/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/fr/number.js4
-rw-r--r--lib/dojo/cldr/nls/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/he/currency.js2
-rw-r--r--lib/dojo/cldr/nls/he/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/he/hebrew.js4
-rw-r--r--lib/dojo/cldr/nls/he/islamic.js4
-rw-r--r--lib/dojo/cldr/nls/he/number.js4
-rw-r--r--lib/dojo/cldr/nls/hebrew.js4
-rw-r--r--lib/dojo/cldr/nls/hu/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/hu/currency.js4
-rw-r--r--lib/dojo/cldr/nls/hu/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/hu/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/hu/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/hu/number.js4
-rw-r--r--lib/dojo/cldr/nls/islamic.js4
-rw-r--r--lib/dojo/cldr/nls/it/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/it/currency.js4
-rw-r--r--lib/dojo/cldr/nls/it/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/it/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/it/number.js4
-rw-r--r--lib/dojo/cldr/nls/ja/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/ja/currency.js4
-rw-r--r--lib/dojo/cldr/nls/ja/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/ja/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/ja/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/ja/number.js4
-rw-r--r--lib/dojo/cldr/nls/ko/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/ko/currency.js4
-rw-r--r--lib/dojo/cldr/nls/ko/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/ko/number.js4
-rw-r--r--lib/dojo/cldr/nls/nb/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/nb/currency.js4
-rw-r--r--lib/dojo/cldr/nls/nb/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/nb/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/nb/number.js4
-rw-r--r--lib/dojo/cldr/nls/nl/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/nl/currency.js4
-rw-r--r--lib/dojo/cldr/nls/nl/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/nl/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/nl/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/nl/number.js4
-rw-r--r--lib/dojo/cldr/nls/number.js4
-rw-r--r--lib/dojo/cldr/nls/pl/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/pl/currency.js4
-rw-r--r--lib/dojo/cldr/nls/pl/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/pl/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/pl/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/pl/number.js4
-rw-r--r--lib/dojo/cldr/nls/pt-pt/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/pt-pt/currency.js8
-rw-r--r--lib/dojo/cldr/nls/pt-pt/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/pt-pt/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/pt-pt/number.js4
-rw-r--r--lib/dojo/cldr/nls/pt/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/pt/currency.js4
-rw-r--r--lib/dojo/cldr/nls/pt/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/pt/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/pt/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/pt/number.js4
-rw-r--r--lib/dojo/cldr/nls/ro/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/ro/currency.js4
-rw-r--r--lib/dojo/cldr/nls/ro/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/ro/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/ro/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/ro/number.js4
-rw-r--r--lib/dojo/cldr/nls/ru/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/ru/currency.js4
-rw-r--r--lib/dojo/cldr/nls/ru/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/ru/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/ru/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/ru/number.js4
-rw-r--r--lib/dojo/cldr/nls/sk/currency.js4
-rw-r--r--lib/dojo/cldr/nls/sk/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/sk/number.js4
-rw-r--r--lib/dojo/cldr/nls/sl/currency.js2
-rw-r--r--lib/dojo/cldr/nls/sl/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/sl/number.js4
-rw-r--r--lib/dojo/cldr/nls/sv/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/sv/currency.js4
-rw-r--r--lib/dojo/cldr/nls/sv/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/sv/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/sv/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/sv/number.js4
-rw-r--r--lib/dojo/cldr/nls/th/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/th/currency.js4
-rw-r--r--lib/dojo/cldr/nls/th/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/th/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/th/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/th/number.js4
-rw-r--r--lib/dojo/cldr/nls/tr/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/tr/currency.js4
-rw-r--r--lib/dojo/cldr/nls/tr/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/tr/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/tr/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/tr/number.js4
-rw-r--r--lib/dojo/cldr/nls/zh-hant/buddhist.js4
-rw-r--r--lib/dojo/cldr/nls/zh-hant/currency.js4
-rw-r--r--lib/dojo/cldr/nls/zh-hant/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/zh-hant/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/zh-hant/islamic.js4
-rw-r--r--lib/dojo/cldr/nls/zh-hant/number.js4
-rw-r--r--lib/dojo/cldr/nls/zh-hk/currency.js4
-rw-r--r--lib/dojo/cldr/nls/zh-hk/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/zh-hk/number.js4
-rw-r--r--lib/dojo/cldr/nls/zh-tw/currency.js4
-rw-r--r--lib/dojo/cldr/nls/zh-tw/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/zh-tw/number.js8
-rw-r--r--lib/dojo/cldr/nls/zh/buddhist.js8
-rw-r--r--lib/dojo/cldr/nls/zh/currency.js4
-rw-r--r--lib/dojo/cldr/nls/zh/gregorian.js4
-rw-r--r--lib/dojo/cldr/nls/zh/hebrew.js8
-rw-r--r--lib/dojo/cldr/nls/zh/islamic.js8
-rw-r--r--lib/dojo/cldr/nls/zh/number.js4
-rw-r--r--lib/dojo/cldr/supplemental.js4
-rw-r--r--lib/dojo/colors.js4
-rw-r--r--lib/dojo/cookie.js2
-rw-r--r--lib/dojo/currency.js4
-rw-r--r--lib/dojo/data/ItemFileReadStore.js4
-rw-r--r--lib/dojo/data/ItemFileWriteStore.js4
-rw-r--r--lib/dojo/data/ObjectStore.js4
-rw-r--r--lib/dojo/data/api/Identity.js4
-rw-r--r--lib/dojo/data/api/Item.js8
-rw-r--r--lib/dojo/data/api/Notification.js4
-rw-r--r--lib/dojo/data/api/Read.js4
-rw-r--r--lib/dojo/data/api/Request.js4
-rw-r--r--lib/dojo/data/api/Write.js4
-rw-r--r--lib/dojo/data/util/filter.js4
-rw-r--r--lib/dojo/data/util/simpleFetch.js4
-rw-r--r--lib/dojo/data/util/sorter.js4
-rw-r--r--lib/dojo/date.js4
-rw-r--r--lib/dojo/date/locale.js4
-rw-r--r--lib/dojo/date/stamp.js4
-rw-r--r--lib/dojo/dnd/AutoSource.js4
-rw-r--r--lib/dojo/dnd/Avatar.js4
-rw-r--r--lib/dojo/dnd/Container.js4
-rw-r--r--lib/dojo/dnd/Manager.js4
-rw-r--r--lib/dojo/dnd/Moveable.js4
-rw-r--r--lib/dojo/dnd/Mover.js4
-rw-r--r--lib/dojo/dnd/Selector.js4
-rw-r--r--lib/dojo/dnd/Source.js4
-rw-r--r--lib/dojo/dnd/Target.js4
-rw-r--r--lib/dojo/dnd/TimedMoveable.js4
-rw-r--r--lib/dojo/dnd/autoscroll.js4
-rw-r--r--lib/dojo/dnd/common.js4
-rw-r--r--lib/dojo/dnd/move.js4
-rw-r--r--lib/dojo/dojo.js4
-rw-r--r--lib/dojo/dojo.profile.js12
-rw-r--r--lib/dojo/dom-attr.js4
-rw-r--r--lib/dojo/dom-class.js2
-rw-r--r--lib/dojo/dom-construct.js4
-rw-r--r--lib/dojo/dom-form.js2
-rw-r--r--lib/dojo/dom-geometry.js4
-rw-r--r--lib/dojo/dom-prop.js4
-rw-r--r--lib/dojo/dom-style.js4
-rw-r--r--lib/dojo/dom.js4
-rw-r--r--lib/dojo/domReady.js4
-rw-r--r--lib/dojo/errors/CancelError.js8
-rw-r--r--lib/dojo/errors/RequestError.js8
-rw-r--r--lib/dojo/errors/RequestTimeoutError.js8
-rw-r--r--lib/dojo/errors/create.js8
-rw-r--r--lib/dojo/fx.js2
-rw-r--r--lib/dojo/fx/Toggler.js2
-rw-r--r--lib/dojo/fx/easing.js2
-rw-r--r--lib/dojo/gears.js4
-rw-r--r--lib/dojo/has.js4
-rw-r--r--lib/dojo/hash.js4
-rw-r--r--lib/dojo/hccss.js8
-rw-r--r--lib/dojo/html.js4
-rw-r--r--lib/dojo/i18n.js4
-rw-r--r--lib/dojo/io-query.js4
-rw-r--r--lib/dojo/io/iframe.js4
-rw-r--r--lib/dojo/io/script.js4
-rw-r--r--lib/dojo/jaxer.js4
-rw-r--r--lib/dojo/json.js4
-rw-r--r--lib/dojo/keys.js4
-rw-r--r--lib/dojo/loadInit.js2
-rw-r--r--lib/dojo/main.js4
-rw-r--r--lib/dojo/mouse.js4
-rw-r--r--lib/dojo/nls/ar/colors.js2
-rw-r--r--lib/dojo/nls/az/colors.js2
-rw-r--r--lib/dojo/nls/ca/colors.js2
-rw-r--r--lib/dojo/nls/colors.js2
-rw-r--r--lib/dojo/nls/cs/colors.js2
-rw-r--r--lib/dojo/nls/da/colors.js2
-rw-r--r--lib/dojo/nls/de/colors.js2
-rw-r--r--lib/dojo/nls/el/colors.js2
-rw-r--r--lib/dojo/nls/es/colors.js2
-rw-r--r--lib/dojo/nls/fi/colors.js2
-rw-r--r--lib/dojo/nls/fr/colors.js2
-rw-r--r--lib/dojo/nls/he/colors.js4
-rw-r--r--lib/dojo/nls/hr/colors.js4
-rw-r--r--lib/dojo/nls/hu/colors.js2
-rw-r--r--lib/dojo/nls/it/colors.js2
-rw-r--r--lib/dojo/nls/ja/colors.js2
-rw-r--r--lib/dojo/nls/kk/colors.js2
-rw-r--r--lib/dojo/nls/ko/colors.js2
-rw-r--r--lib/dojo/nls/nb/colors.js2
-rw-r--r--lib/dojo/nls/nl/colors.js2
-rw-r--r--lib/dojo/nls/pl/colors.js2
-rw-r--r--lib/dojo/nls/pt-pt/colors.js2
-rw-r--r--lib/dojo/nls/pt/colors.js2
-rw-r--r--lib/dojo/nls/ro/colors.js2
-rw-r--r--lib/dojo/nls/ru/colors.js2
-rw-r--r--lib/dojo/nls/sk/colors.js2
-rw-r--r--lib/dojo/nls/sl/colors.js4
-rw-r--r--lib/dojo/nls/sv/colors.js2
-rw-r--r--lib/dojo/nls/th/colors.js4
-rw-r--r--lib/dojo/nls/tr/colors.js2
-rw-r--r--lib/dojo/nls/tt-rss-layer_ROOT.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_ar.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_ca.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_cs.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_da.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_de-de.js8
-rw-r--r--lib/dojo/nls/tt-rss-layer_de.js8
-rw-r--r--lib/dojo/nls/tt-rss-layer_el.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_en-gb.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_en-us.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_es-es.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_fi-fi.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_fr-fr.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_he-il.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_hu.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_it-it.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_ja-jp.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_ko-kr.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_nb.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_nl-nl.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_pl.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_pt-br.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_pt-pt.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_ru.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_sk.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_sl.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_sv.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_th.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_tr.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_zh-cn.js4
-rw-r--r--lib/dojo/nls/tt-rss-layer_zh-tw.js4
-rw-r--r--lib/dojo/nls/zh-tw/colors.js2
-rw-r--r--lib/dojo/nls/zh/colors.js2
-rw-r--r--lib/dojo/node.js8
-rw-r--r--lib/dojo/number.js4
-rw-r--r--lib/dojo/on.js4
-rw-r--r--lib/dojo/package.json2
-rw-r--r--lib/dojo/parser.js4
-rw-r--r--lib/dojo/promise/Promise.js8
-rw-r--r--lib/dojo/promise/all.js8
-rw-r--r--lib/dojo/promise/first.js8
-rw-r--r--lib/dojo/promise/instrumentation.js8
-rw-r--r--lib/dojo/promise/tracer.js8
-rw-r--r--lib/dojo/query.js4
-rw-r--r--lib/dojo/ready.js4
-rw-r--r--lib/dojo/regexp.js4
-rw-r--r--lib/dojo/request.js8
-rw-r--r--lib/dojo/request/default.js8
-rw-r--r--lib/dojo/request/handlers.js8
-rw-r--r--lib/dojo/request/iframe.js8
-rw-r--r--lib/dojo/request/node.js8
-rw-r--r--lib/dojo/request/notify.js8
-rw-r--r--lib/dojo/request/registry.js8
-rw-r--r--lib/dojo/request/script.js8
-rw-r--r--lib/dojo/request/util.js8
-rw-r--r--lib/dojo/request/watch.js8
-rw-r--r--lib/dojo/request/xhr.js8
-rw-r--r--lib/dojo/require.js2
-rw-r--r--lib/dojo/resources/_modules.js36
-rw-r--r--lib/dojo/resources/dnd.css17
-rw-r--r--lib/dojo/resources/dojo.css197
-rw-r--r--lib/dojo/router.js8
-rw-r--r--lib/dojo/router/RouterBase.js8
-rw-r--r--lib/dojo/rpc/JsonService.js4
-rw-r--r--lib/dojo/rpc/JsonpService.js4
-rw-r--r--lib/dojo/rpc/RpcService.js4
-rw-r--r--lib/dojo/selector/_loader.js2
-rw-r--r--lib/dojo/selector/acme.js4
-rw-r--r--lib/dojo/selector/lite.js4
-rw-r--r--lib/dojo/sniff.js8
-rw-r--r--lib/dojo/store/Cache.js4
-rw-r--r--lib/dojo/store/DataStore.js4
-rw-r--r--lib/dojo/store/JsonRest.js4
-rw-r--r--lib/dojo/store/Memory.js4
-rw-r--r--lib/dojo/store/Observable.js4
-rw-r--r--lib/dojo/store/README14
-rw-r--r--lib/dojo/store/api/Store.js4
-rw-r--r--lib/dojo/store/util/QueryResults.js4
-rw-r--r--lib/dojo/store/util/SimpleQueryEngine.js4
-rw-r--r--lib/dojo/string.js4
-rw-r--r--lib/dojo/text.js4
-rw-r--r--lib/dojo/topic.js2
-rw-r--r--lib/dojo/touch.js4
-rw-r--r--lib/dojo/tt-rss-layer.js4
-rw-r--r--lib/dojo/uacss.js4
-rw-r--r--lib/dojo/when.js8
-rw-r--r--lib/dojo/window.js4
-rw-r--r--lib/floIcon.php849
-rw-r--r--lib/gettext/gettext.inc78
-rwxr-xr-xlib/gettext/gettext.php17
-rw-r--r--lib/htmLawed.php723
-rw-r--r--lib/index.html0
-rw-r--r--lib/iui/LICENSE.txt21
-rw-r--r--lib/iui/NOTICE.txt33
-rw-r--r--lib/iui/backButton.pngbin816 -> 0 bytes
-rw-r--r--lib/iui/blueButton.pngbin517 -> 0 bytes
-rw-r--r--lib/iui/cancel.pngbin362 -> 0 bytes
-rw-r--r--lib/iui/grayButton.pngbin943 -> 0 bytes
-rw-r--r--lib/iui/iui-logo-touch-icon.pngbin2887 -> 0 bytes
-rw-r--r--lib/iui/iui.css398
-rw-r--r--lib/iui/iui.js542
-rw-r--r--lib/iui/iuix.css1
-rw-r--r--lib/iui/iuix.js1
-rw-r--r--lib/iui/listArrow.pngbin259 -> 0 bytes
-rw-r--r--lib/iui/listArrowSel.pngbin308 -> 0 bytes
-rw-r--r--lib/iui/listGroup.pngbin2867 -> 0 bytes
-rw-r--r--lib/iui/loading.gifbin1435 -> 0 bytes
-rw-r--r--lib/iui/pinstripes.pngbin117 -> 0 bytes
-rw-r--r--lib/iui/redButton.pngbin947 -> 0 bytes
-rw-r--r--lib/iui/selection.pngbin159 -> 0 bytes
-rw-r--r--lib/iui/thumb.pngbin2835 -> 0 bytes
-rw-r--r--lib/iui/toggle.pngbin2815 -> 0 bytes
-rw-r--r--lib/iui/toggleOn.pngbin163 -> 0 bytes
-rw-r--r--lib/iui/toolButton.pngbin531 -> 0 bytes
-rw-r--r--lib/iui/toolbar.pngbin171 -> 0 bytes
-rw-r--r--lib/iui/whiteButton.pngbin978 -> 0 bytes
-rw-r--r--lib/jshrink/LICENSE24
-rw-r--r--lib/jshrink/Minifier.php470
-rw-r--r--lib/jshrink/README.md21
-rw-r--r--lib/jsmin.php375
-rw-r--r--lib/phpqrcode/bindings/tcpdf/qrcode.php8
-rw-r--r--lib/phpqrcode/phpqrcode.php12
-rw-r--r--lib/phpqrcode/qrencode.php2
-rw-r--r--lib/phpqrcode/qrmask.php4
-rw-r--r--lib/phpqrcode/qrsplit.php8
-rw-r--r--lib/position.js31
-rw-r--r--lib/simplepie/simplepie.inc17772
-rw-r--r--lib/timezones.txt1
-rw-r--r--locale/.htaccess2
-rw-r--r--locale/cs_CZ/LC_MESSAGES/messages.mobin0 -> 61787 bytes
-rw-r--r--locale/cs_CZ/LC_MESSAGES/messages.po3689
-rw-r--r--locale/fi_FI/LC_MESSAGES/messages.mobin0 -> 41163 bytes
-rw-r--r--locale/fi_FI/LC_MESSAGES/messages.po3601
-rw-r--r--locale/lv_LV/LC_MESSAGES/messages.mobin0 -> 42958 bytes
-rw-r--r--locale/lv_LV/LC_MESSAGES/messages.po3965
-rw-r--r--locale/nl_NL/LC_MESSAGES/messages.mobin0 -> 62608 bytes
-rw-r--r--locale/nl_NL/LC_MESSAGES/messages.po3758
-rw-r--r--locale/sv_SE/LC_MESSAGES/messages.mobin0 -> 58566 bytes
-rw-r--r--locale/sv_SE/LC_MESSAGES/messages.po3983
-rw-r--r--localized_js.php42
-rwxr-xr-x[-rw-r--r--]lock/.empty0
-rwxr-xr-x[-rw-r--r--]lock/.htaccess0
-rw-r--r--messages.pot3077
-rw-r--r--mobile/article.php24
-rw-r--r--mobile/backend.php55
-rw-r--r--mobile/cat.php21
-rw-r--r--mobile/feed.php25
-rw-r--r--mobile/home.php25
-rw-r--r--mobile/image.php19
-rw-r--r--mobile/index.php82
-rw-r--r--mobile/login_form.php58
-rw-r--r--mobile/logout.php7
-rw-r--r--mobile/mobile-functions.php548
-rw-r--r--mobile/mobile.css38
-rw-r--r--mobile/mobile.js163
-rw-r--r--mobile/prefs.php54
-rw-r--r--opml.php13
-rw-r--r--plugins/af_buttersafe/init.php7
-rw-r--r--plugins/af_explosm/init.php6
-rw-r--r--plugins/af_gocomics/init.php8
-rw-r--r--plugins/af_pennyarcade/init.php57
-rw-r--r--plugins/af_redditimgur/init.php22
-rw-r--r--plugins/af_unburn/init.php66
-rw-r--r--plugins/auth_imap/init.php51
-rw-r--r--plugins/auth_internal/init.php39
-rw-r--r--plugins/auth_remote/init.php20
-rw-r--r--plugins/bookmarklets/init.php17
-rw-r--r--plugins/close_button/init.php11
-rw-r--r--plugins/digest/digest.css337
-rw-r--r--plugins/digest/digest.js906
-rw-r--r--plugins/digest/digest_body.php81
-rw-r--r--plugins/digest/images/tile.pngbin958 -> 0 bytes
-rw-r--r--plugins/digest/init.php110
-rw-r--r--plugins/embed_original/button.pngbin0 -> 1298 bytes
-rw-r--r--plugins/embed_original/init.css13
-rw-r--r--plugins/embed_original/init.js68
-rw-r--r--plugins/embed_original/init.php58
-rw-r--r--plugins/example/example.js3
-rw-r--r--plugins/example/init.php82
-rw-r--r--plugins/example_article/init.php31
-rw-r--r--plugins/example_feed/init.php29
-rw-r--r--plugins/example_routing/init.php54
-rw-r--r--plugins/flattr/flattr.pngbin693 -> 0 bytes
-rw-r--r--plugins/flattr/init.php46
-rw-r--r--plugins/googleplus/googleplus.js29
-rw-r--r--plugins/googleplus/googleplus.pngbin3295 -> 0 bytes
-rw-r--r--plugins/googleplus/init.php53
-rw-r--r--plugins/googlereaderimport/init.js53
-rw-r--r--plugins/googlereaderimport/init.php383
-rw-r--r--plugins/googlereaderkeys/init.php12
-rw-r--r--plugins/identica/identica.js31
-rw-r--r--plugins/identica/identica.pngbin121 -> 0 bytes
-rw-r--r--plugins/identica/init.php53
-rw-r--r--plugins/import_export/import_export.js4
-rw-r--r--plugins/import_export/init.php96
-rw-r--r--plugins/index.html0
-rw-r--r--plugins/instances/init.php105
-rw-r--r--plugins/instances/instances.js12
-rw-r--r--plugins/mail/init.php84
-rw-r--r--plugins/mail/mail.js1
-rw-r--r--plugins/mailto/init.js32
-rw-r--r--plugins/mailto/init.php94
-rw-r--r--plugins/mailto/mail.pngbin0 -> 254 bytes
-rw-r--r--plugins/mark_button/init.php43
-rw-r--r--plugins/note/init.php12
-rw-r--r--plugins/nsfw/init.php7
-rw-r--r--plugins/owncloud/init.php96
-rw-r--r--plugins/owncloud/owncloud.js26
-rw-r--r--plugins/owncloud/owncloud.pngbin625 -> 0 bytes
-rw-r--r--plugins/pinterest/init.php53
-rw-r--r--plugins/pinterest/pinterest.js31
-rw-r--r--plugins/pinterest/pinterest.pngbin3829 -> 0 bytes
-rw-r--r--plugins/pocket/init.php54
-rw-r--r--plugins/pocket/pocket.js31
-rw-r--r--plugins/pocket/pocket.pngbin471 -> 0 bytes
-rw-r--r--plugins/share/init.php19
-rw-r--r--plugins/swap_jk/init.php6
-rw-r--r--plugins/tweet/init.php53
-rw-r--r--plugins/tweet/tweet.js31
-rw-r--r--plugins/tweet/tweet.pngbin159 -> 0 bytes
-rw-r--r--plugins/updater/init.php111
-rw-r--r--plugins/updater/updater.js4
-rw-r--r--prefs.css125
-rw-r--r--prefs.php90
-rw-r--r--public.php14
-rw-r--r--register.php103
-rw-r--r--schema/.htaccess2
-rw-r--r--schema/ttrss_schema_mysql.sql211
-rw-r--r--schema/ttrss_schema_pgsql.sql190
-rw-r--r--schema/versions/mysql/105.sql11
-rw-r--r--schema/versions/mysql/106.sql12
-rw-r--r--schema/versions/mysql/107.sql15
-rw-r--r--schema/versions/mysql/108.sql7
-rw-r--r--schema/versions/mysql/109.sql7
-rw-r--r--schema/versions/mysql/110.sql7
-rw-r--r--schema/versions/mysql/111.sql7
-rw-r--r--schema/versions/mysql/112.sql15
-rw-r--r--schema/versions/mysql/113.sql8
-rw-r--r--schema/versions/mysql/114.sql15
-rw-r--r--schema/versions/mysql/115.sql9
-rw-r--r--schema/versions/mysql/116.sql7
-rw-r--r--schema/versions/mysql/117.sql8
-rw-r--r--schema/versions/mysql/118.sql16
-rw-r--r--schema/versions/mysql/119.sql7
-rw-r--r--schema/versions/mysql/120.sql7
-rw-r--r--schema/versions/pgsql/105.sql11
-rw-r--r--schema/versions/pgsql/106.sql12
-rw-r--r--schema/versions/pgsql/107.sql15
-rw-r--r--schema/versions/pgsql/108.sql7
-rw-r--r--schema/versions/pgsql/109.sql7
-rw-r--r--schema/versions/pgsql/110.sql7
-rw-r--r--schema/versions/pgsql/111.sql7
-rw-r--r--schema/versions/pgsql/112.sql15
-rw-r--r--schema/versions/pgsql/113.sql8
-rw-r--r--schema/versions/pgsql/114.sql15
-rw-r--r--schema/versions/pgsql/115.sql9
-rw-r--r--schema/versions/pgsql/116.sql7
-rw-r--r--schema/versions/pgsql/117.sql8
-rw-r--r--schema/versions/pgsql/118.sql15
-rw-r--r--schema/versions/pgsql/119.sql7
-rw-r--r--schema/versions/pgsql/120.sql7
-rw-r--r--templates/.htaccess2
-rw-r--r--templates/email_article_template.txt2
-rw-r--r--templates/resetpass_template.txt2
-rw-r--r--themes/.empty0
-rw-r--r--themes/default.css0
-rw-r--r--tt-rss.css783
-rwxr-xr-xupdate.php220
-rwxr-xr-xupdate_daemon2.php139
-rw-r--r--utility.css135
-rw-r--r--utils/.htaccess2
-rwxr-xr-xutils/create-release-deb.sh23
-rwxr-xr-xutils/create-release-tarball.sh6
-rwxr-xr-xutils/update-schema-translations.sh19
-rwxr-xr-xutils/update-translations.sh14
1154 files changed, 35506 insertions, 45313 deletions
diff --git a/.gitignore b/.gitignore
index 9c7c138e8..b4853806c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+/messages.mo
*~
*.DS_Store
#*
@@ -9,3 +10,4 @@ lock/*
tags
cache/htmlpurifier/*/*ser
lib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/*/*ser
+web.config
diff --git a/.htaccess b/.htaccess
new file mode 100644
index 000000000..22b33f000
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,3 @@
+AddType image/svg+xml svg
+AddType image/svg+xml svgz
+
diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope
deleted file mode 100644
index f5d6a6f9d..000000000
--- a/.settings/.jsdtscope
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="">
- <attributes>
- <attribute name="provider" value="org.eclipse.wst.jsdt.web.core.internal.project.ModuleSourcePathProvider"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
- <attributes>
- <attribute name="hide" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
- <classpathentry kind="output" path=""/>
-</classpath>
diff --git a/.settings/org.eclipse.php.core.prefs b/.settings/org.eclipse.php.core.prefs
deleted file mode 100644
index ffae6c3f4..000000000
--- a/.settings/org.eclipse.php.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sat Dec 10 20:07:32 MSK 2011
-eclipse.preferences.version=1
-include_path=0;/tt-rss
diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container
deleted file mode 100644
index 3bd5d0a48..000000000
--- a/.settings/org.eclipse.wst.jsdt.ui.superType.container
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file
diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.name b/.settings/org.eclipse.wst.jsdt.ui.superType.name
deleted file mode 100644
index 05bd71b6e..000000000
--- a/.settings/org.eclipse.wst.jsdt.ui.superType.name
+++ /dev/null
@@ -1 +0,0 @@
-Window \ No newline at end of file
diff --git a/api/index.php b/api/index.php
index 147157946..facdf82c5 100644
--- a/api/index.php
+++ b/api/index.php
@@ -11,12 +11,16 @@
chdir("..");
define('TTRSS_SESSION_NAME', 'ttrss_api_sid');
+ define('NO_SESSION_AUTOSTART', true);
+ require_once "autoload.php";
require_once "db.php";
require_once "db-prefs.php";
require_once "functions.php";
require_once "sessions.php";
+ ini_set("session.gc_maxlifetime", 86400);
+
define('AUTH_DISABLE_OTP', true);
if (defined('ENABLE_GZIP_OUTPUT') && ENABLE_GZIP_OUTPUT &&
@@ -27,8 +31,6 @@
ob_start();
}
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
$input = file_get_contents("php://input");
if (defined('_API_DEBUG_HTTP_ENABLED') && _API_DEBUG_HTTP_ENABLED) {
@@ -46,15 +48,16 @@
if ($_REQUEST["sid"]) {
session_id($_REQUEST["sid"]);
+ @session_start();
+ } else if (defined('_API_DEBUG_HTTP_ENABLED')) {
+ @session_start();
}
- @session_start();
-
- if (!init_connection($link)) return;
+ if (!init_plugins()) return;
$method = strtolower($_REQUEST["op"]);
- $handler = new API($link, $_REQUEST);
+ $handler = new API($_REQUEST);
if ($handler->before($method)) {
if ($method && method_exists($handler, $method)) {
@@ -65,8 +68,6 @@
$handler->after();
}
- db_close($link);
-
header("Api-Content-Length: " . ob_get_length());
ob_end_flush();
diff --git a/atom-to-html.xsl b/atom-to-html.xsl
index 2cc46655b..097b07f55 100644
--- a/atom-to-html.xsl
+++ b/atom-to-html.xsl
@@ -41,7 +41,6 @@
<p><a href="{enclosure/@url}">Extra...</a></p>
</xsl:if>
- <hr/>
</xsl:for-each>
diff --git a/backend.php b/backend.php
index 41481a963..84abc9730 100644
--- a/backend.php
+++ b/backend.php
@@ -37,21 +37,18 @@
@$csrf_token = $_REQUEST['csrf_token'];
+ require_once "autoload.php";
require_once "sessions.php";
require_once "functions.php";
require_once "config.php";
require_once "db.php";
require_once "db-prefs.php";
- no_cache_incantation();
-
startup_gettext();
$script_started = microtime(true);
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- if (!init_connection($link)) return;
+ if (!init_plugins()) return;
header("Content-Type: text/json; charset=utf-8");
@@ -60,11 +57,16 @@
}
if (SINGLE_USER_MODE) {
- authenticate_user($link, "admin", null);
+ authenticate_user( "admin", null);
}
if ($_SESSION["uid"]) {
- load_user_plugins($link, $_SESSION["uid"]);
+ if (!validate_session()) {
+ header("Content-Type: text/json");
+ print json_encode(array("error" => array("code" => 6)));
+ return;
+ }
+ load_user_plugins( $_SESSION["uid"]);
}
$purge_intervals = array(
@@ -102,7 +104,7 @@
5 => __("Power User"),
10 => __("Administrator"));
- #$error = sanity_check($link);
+ #$error = sanity_check();
#if ($error['code'] != 0 && $op != "logout") {
# print json_encode(array("error" => $error));
@@ -111,15 +113,14 @@
$op = str_replace("-", "_", $op);
- global $pluginhost;
- $override = $pluginhost->lookup_handler($op, $method);
+ $override = PluginHost::getInstance()->lookup_handler($op, $method);
if (class_exists($op) || $override) {
if ($override) {
$handler = $override;
} else {
- $handler = new $op($link, $_REQUEST);
+ $handler = new $op($_REQUEST);
}
if ($handler && implements_interface($handler, 'IHandler')) {
@@ -150,6 +151,4 @@
header("Content-Type: text/json");
print json_encode(array("error" => array("code" => 7)));
- // We close the connection to database.
- db_close($link);
?>
diff --git a/cache/.htaccess b/cache/.htaccess
index 93169e4eb..93169e4eb 100644..100755
--- a/cache/.htaccess
+++ b/cache/.htaccess
diff --git a/cache/images/.empty b/cache/images/.empty
index e69de29bb..e69de29bb 100644..100755
--- a/cache/images/.empty
+++ b/cache/images/.empty
diff --git a/cache/magpie/.empty b/cache/js/.empty
index e69de29bb..e69de29bb 100644..100755
--- a/cache/magpie/.empty
+++ b/cache/js/.empty
diff --git a/cache/simplepie/.empty b/cache/simplepie/.empty
index e69de29bb..e69de29bb 100644..100755
--- a/cache/simplepie/.empty
+++ b/cache/simplepie/.empty
diff --git a/plugins/example_article/init.js b/cache/upload/.empty
index e69de29bb..e69de29bb 100644
--- a/plugins/example_article/init.js
+++ b/cache/upload/.empty
diff --git a/cdm.css b/cdm.css
index 954d4fe2d..87d91ac34 100644
--- a/cdm.css
+++ b/cdm.css
@@ -20,10 +20,11 @@ div.cdmHeader > span {
}
div.cdmHeader span.updated {
- color : gray;
+ color : #555;
font-weight : normal;
font-size : 11px;
white-space : nowrap;
+ vertical-align : middle;
}
div.cdmHeader input {
@@ -44,50 +45,112 @@ div.cdmHeader img, div.cdmFooter img {
margin : 0px 2px 0px 2px;
}
-div.cdmContent, div.cdmContentInner * {
- font-weight : normal;
-}
-
-div.cdmContent a {
- color : #4684ff;
-}
-
-div.cdmContent a:hover {
- color : black;
-}
-
div.cdmContentInner {
margin : 10px;
+ line-height : 20px;
}
div.cdmContentInner img {
border-width : 0px;
max-width : 98%;
+ height : auto;
}
div.cdmFooter {
- background-color : #f0f0f0;
- background-image : url("images/cdm_footer_tile.png");
padding : 5px;
font-weight : normal;
- color : gray;
+ color : #555;
clear : both;
}
-.Selected div.cdmFooter {
- background : #FFF2BF;
+div.cdm.expanded {
+ margin-top : 4px;
+ margin-bottom : 4px;
+}
+
+div.cdm.expandable {
+ background-color : #f0f0f0;
+ border-width : 0px 0px 1px 0px;
+ border-color : #c0c0c0;
+ border-style : solid;
+}
+
+div.cdm.expandable.active {
+ box-shadow : inset 0px 0px 3px 0px rgba(0,0,0,0.1);
+}
+
+div.cdm.expandable > hr {
+ display : none;
+}
+
+div.cdm.expanded > hr {
+ margin-top : 0px;
+ margin-bottom : 0px;
+}
+
+div.cdm.expandable.Unread {
+ background : white;
+}
+
+div.cdm.expandable.active {
+ border-color : #88b0f0;
+ background : white ! important;
+}
+
+div.cdm.expandable div.cdmHeader a.title {
+ font-weight : bold;
+ color : #555;
+}
+
+div.cdm.expandable.Unread div.cdmHeader a.title {
+ color : black;
+}
+
+div.cdm.expandable.active div.cdmHeader a.title {
+ color : #4684ff;
+}
+
+div.cdm.expanded div.cdmHeader {
+ background : transparent ! important;
+}
+
+div.cdm.expanded div.cdmHeader a.title {
+ font-size : 14px;
+ color : #555;
+ font-weight : bold;
+}
+
+
+div.cdm.expanded.active div.cdmHeader a.title {
+ color : #4684ff;
+}
+
+div.cdm.expanded.Unread div.cdmHeader a.title {
+ color : black;
+}
+
+div.cdm.expanded div.cdmContent {
+ color : #555;
+}
+
+div.cdm.expanded.Unread div.cdmContent {
+ color : black;
+}
+
+div.cdm.active div.cdmContent {
+ color : black;
}
span.cdmExcerpt {
font-size : 11px;
- color : gray;
+ color : #555;
font-weight : normal;
cursor : pointer;
}
div.cdmContent div.postEnclosures {
margin-top : 1em;
- color : gray;
+ color : #555;
}
div.cdmFeedTitle {
@@ -99,8 +162,18 @@ div.cdmFeedTitle {
background-repeat : repeat-x;
}
-div.articleNote {
- border-style : dashed none dashed none;
+div.cdmFeedTitle a.title {
+ color : #555;
+ font-style : italic;
+ font-weight : bold;
+}
+
+div.cdmFeedTitle a {
+ color : #555;
+}
+
+div.cdmFeedTitle a:hover {
+ color : #4684ff;
}
div.cdmHeader span.hlFeed {
@@ -109,34 +182,32 @@ div.cdmHeader span.hlFeed {
font-style : italic;
}
-div.cdmHeader {
- background : #EEF6FD;
-}
-
-div.Unread div.cdmHeader {
- background : #DCECFB;
+div.cdmHeader div.hlFeed, div.cdmHeader div.hlFeed a {
+ vertical-align : middle;
+ color : #555;
+ font-weight : normal;
+ font-style : italic;
+ font-size : 11px;
}
-div.Unread.Selected div.cdmHeader, div.Selected div.cdmHeader {
- background : #FFF2BF;
+div.cdm .hlFeed a {
+ border-radius : 4px;
+ display : inline-block;
+ padding : 1px 4px 1px 4px;
}
-div.cdm.even.Unread, div.cdm.odd.Unread {
- background : white;
+div.cdmContentInner p {
+ max-width : 650px;
}
-div.cdm.even, div.cdm.odd {
- background : #f0f0f0;
+div.cdmContentInner iframe {
+ min-width : 50%;
}
-div.cdmHeader div.hlFeed, div.cdmHeader div.hlFeed a {
- vertical-align : middle;
- color : gray;
- font-weight : normal;
- font-style : italic;
+div.cdmHeader span.author {
+ color : #555;
font-size : 11px;
+ font-weight : normal;
}
-div.cdmContentInner{
- max-width : 650px;
-}
+
diff --git a/classes/.htaccess b/classes/.htaccess
new file mode 100644
index 000000000..93169e4eb
--- /dev/null
+++ b/classes/.htaccess
@@ -0,0 +1,2 @@
+Order deny,allow
+Deny from all
diff --git a/classes/api.php b/classes/api.php
index a23f20ae2..f5e4a0c5c 100644
--- a/classes/api.php
+++ b/classes/api.php
@@ -2,7 +2,7 @@
class API extends Handler {
- const API_LEVEL = 4;
+ const API_LEVEL = 6;
const STATUS_OK = 0;
const STATUS_ERR = 1;
@@ -14,12 +14,12 @@ class API extends Handler {
header("Content-Type: text/json");
if (!$_SESSION["uid"] && $method != "login" && $method != "isloggedin") {
- print $this->wrap(self::STATUS_ERR, array("error" => 'NOT_LOGGED_IN'));
+ $this->wrap(self::STATUS_ERR, array("error" => 'NOT_LOGGED_IN'));
return false;
}
- if ($_SESSION["uid"] && $method != "logout" && !get_pref($this->link, 'ENABLE_API_ACCESS')) {
- print $this->wrap(self::STATUS_ERR, array("error" => 'API_DISABLED'));
+ if ($_SESSION["uid"] && $method != "logout" && !get_pref('ENABLE_API_ACCESS')) {
+ $this->wrap(self::STATUS_ERR, array("error" => 'API_DISABLED'));
return false;
}
@@ -38,90 +38,94 @@ class API extends Handler {
function getVersion() {
$rv = array("version" => VERSION);
- print $this->wrap(self::STATUS_OK, $rv);
+ $this->wrap(self::STATUS_OK, $rv);
}
function getApiLevel() {
$rv = array("level" => self::API_LEVEL);
- print $this->wrap(self::STATUS_OK, $rv);
+ $this->wrap(self::STATUS_OK, $rv);
}
function login() {
- $login = db_escape_string($_REQUEST["user"]);
+ @session_destroy();
+ @session_start();
+
+ $login = $this->dbh->escape_string($_REQUEST["user"]);
$password = $_REQUEST["password"];
$password_base64 = base64_decode($_REQUEST["password"]);
if (SINGLE_USER_MODE) $login = "admin";
- $result = db_query($this->link, "SELECT id FROM ttrss_users WHERE login = '$login'");
+ $result = $this->dbh->query("SELECT id FROM ttrss_users WHERE login = '$login'");
- if (db_num_rows($result) != 0) {
- $uid = db_fetch_result($result, 0, "id");
+ if ($this->dbh->num_rows($result) != 0) {
+ $uid = $this->dbh->fetch_result($result, 0, "id");
} else {
$uid = 0;
}
if (!$uid) {
- print $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR"));
+ $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR"));
return;
}
- if (get_pref($this->link, "ENABLE_API_ACCESS", $uid)) {
- if (authenticate_user($this->link, $login, $password)) { // try login with normal password
- print $this->wrap(self::STATUS_OK, array("session_id" => session_id(),
+ if (get_pref("ENABLE_API_ACCESS", $uid)) {
+ if (authenticate_user($login, $password)) { // try login with normal password
+ $this->wrap(self::STATUS_OK, array("session_id" => session_id(),
"api_level" => self::API_LEVEL));
- } else if (authenticate_user($this->link, $login, $password_base64)) { // else try with base64_decoded password
- print $this->wrap(self::STATUS_OK, array("session_id" => session_id(),
+ } else if (authenticate_user($login, $password_base64)) { // else try with base64_decoded password
+ $this->wrap(self::STATUS_OK, array("session_id" => session_id(),
"api_level" => self::API_LEVEL));
} else { // else we are not logged in
- print $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR"));
+ $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR"));
}
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => "API_DISABLED"));
+ $this->wrap(self::STATUS_ERR, array("error" => "API_DISABLED"));
}
}
function logout() {
logout_user();
- print $this->wrap(self::STATUS_OK, array("status" => "OK"));
+ $this->wrap(self::STATUS_OK, array("status" => "OK"));
}
function isLoggedIn() {
- print $this->wrap(self::STATUS_OK, array("status" => $_SESSION["uid"] != ''));
+ $this->wrap(self::STATUS_OK, array("status" => $_SESSION["uid"] != ''));
}
function getUnread() {
- $feed_id = db_escape_string($_REQUEST["feed_id"]);
- $is_cat = db_escape_string($_REQUEST["is_cat"]);
+ $feed_id = $this->dbh->escape_string($_REQUEST["feed_id"]);
+ $is_cat = $this->dbh->escape_string($_REQUEST["is_cat"]);
if ($feed_id) {
- print $this->wrap(self::STATUS_OK, array("unread" => getFeedUnread($this->link, $feed_id, $is_cat)));
+ $this->wrap(self::STATUS_OK, array("unread" => getFeedUnread($feed_id, $is_cat)));
} else {
- print $this->wrap(self::STATUS_OK, array("unread" => getGlobalUnread($this->link)));
+ $this->wrap(self::STATUS_OK, array("unread" => getGlobalUnread()));
}
}
/* Method added for ttrss-reader for Android */
function getCounters() {
- print $this->wrap(self::STATUS_OK, getAllCounters($this->link));
+ $this->wrap(self::STATUS_OK, getAllCounters());
}
function getFeeds() {
- $cat_id = db_escape_string($_REQUEST["cat_id"]);
- $unread_only = (bool)db_escape_string($_REQUEST["unread_only"]);
- $limit = (int) db_escape_string($_REQUEST["limit"]);
- $offset = (int) db_escape_string($_REQUEST["offset"]);
- $include_nested = (bool)db_escape_string($_REQUEST["include_nested"]);
+ $cat_id = $this->dbh->escape_string($_REQUEST["cat_id"]);
+ $unread_only = sql_bool_to_bool($_REQUEST["unread_only"]);
+ $limit = (int) $this->dbh->escape_string($_REQUEST["limit"]);
+ $offset = (int) $this->dbh->escape_string($_REQUEST["offset"]);
+ $include_nested = sql_bool_to_bool($_REQUEST["include_nested"]);
- $feeds = $this->api_get_feeds($this->link, $cat_id, $unread_only, $limit, $offset, $include_nested);
+ $feeds = $this->api_get_feeds($cat_id, $unread_only, $limit, $offset, $include_nested);
- print $this->wrap(self::STATUS_OK, $feeds);
+ $this->wrap(self::STATUS_OK, $feeds);
}
function getCategories() {
- $unread_only = (bool)db_escape_string($_REQUEST["unread_only"]);
- $enable_nested = (bool)db_escape_string($_REQUEST["enable_nested"]);
+ $unread_only = sql_bool_to_bool($_REQUEST["unread_only"]);
+ $enable_nested = sql_bool_to_bool($_REQUEST["enable_nested"]);
+ $include_empty = sql_bool_to_bool($_REQUEST['include_empty']);
// TODO do not return empty categories, return Uncategorized and standard virtual cats
@@ -130,22 +134,25 @@ class API extends Handler {
else
$nested_qpart = "true";
- $result = db_query($this->link, "SELECT
+ $result = $this->dbh->query("SELECT
id, title, order_id, (SELECT COUNT(id) FROM
ttrss_feeds WHERE
- ttrss_feed_categories.id IS NOT NULL AND cat_id = ttrss_feed_categories.id) AS num_feeds
+ ttrss_feed_categories.id IS NOT NULL AND cat_id = ttrss_feed_categories.id) AS num_feeds,
+ (SELECT COUNT(id) FROM
+ ttrss_feed_categories AS c2 WHERE
+ c2.parent_cat = ttrss_feed_categories.id) AS num_cats
FROM ttrss_feed_categories
WHERE $nested_qpart AND owner_uid = " .
$_SESSION["uid"]);
$cats = array();
- while ($line = db_fetch_assoc($result)) {
- if ($line["num_feeds"] > 0) {
- $unread = getFeedUnread($this->link, $line["id"], true);
+ while ($line = $this->dbh->fetch_assoc($result)) {
+ if ($include_empty || $line["num_feeds"] > 0 || $line["num_cats"] > 0) {
+ $unread = getFeedUnread($line["id"], true);
if ($enable_nested)
- $unread += getCategoryChildrenUnread($this->link, $line["id"]);
+ $unread += getCategoryChildrenUnread($line["id"]);
if ($unread || !$unread_only) {
array_push($cats, array("id" => $line["id"],
@@ -158,60 +165,71 @@ class API extends Handler {
}
foreach (array(-2,-1,0) as $cat_id) {
- $unread = getFeedUnread($this->link, $cat_id, true);
+ if ($include_empty || !$this->isCategoryEmpty($cat_id)) {
+ $unread = getFeedUnread($cat_id, true);
- if ($unread || !$unread_only) {
- array_push($cats, array("id" => $cat_id,
- "title" => getCategoryTitle($this->link, $cat_id),
- "unread" => $unread));
+ if ($unread || !$unread_only) {
+ array_push($cats, array("id" => $cat_id,
+ "title" => getCategoryTitle($cat_id),
+ "unread" => $unread));
+ }
}
}
- print $this->wrap(self::STATUS_OK, $cats);
+ $this->wrap(self::STATUS_OK, $cats);
}
function getHeadlines() {
- $feed_id = db_escape_string($_REQUEST["feed_id"]);
+ $feed_id = $this->dbh->escape_string($_REQUEST["feed_id"]);
if ($feed_id != "") {
- $limit = (int)db_escape_string($_REQUEST["limit"]);
+ $limit = (int)$this->dbh->escape_string($_REQUEST["limit"]);
- if (!$limit || $limit >= 60) $limit = 60;
+ if (!$limit || $limit >= 200) $limit = 200;
- $offset = (int)db_escape_string($_REQUEST["skip"]);
- $filter = db_escape_string($_REQUEST["filter"]);
- $is_cat = (bool)db_escape_string($_REQUEST["is_cat"]);
- $show_excerpt = (bool)db_escape_string($_REQUEST["show_excerpt"]);
- $show_content = (bool)db_escape_string($_REQUEST["show_content"]);
+ $offset = (int)$this->dbh->escape_string($_REQUEST["skip"]);
+ $filter = $this->dbh->escape_string($_REQUEST["filter"]);
+ $is_cat = sql_bool_to_bool($_REQUEST["is_cat"]);
+ $show_excerpt = sql_bool_to_bool($_REQUEST["show_excerpt"]);
+ $show_content = sql_bool_to_bool($_REQUEST["show_content"]);
/* all_articles, unread, adaptive, marked, updated */
- $view_mode = db_escape_string($_REQUEST["view_mode"]);
- $include_attachments = (bool)db_escape_string($_REQUEST["include_attachments"]);
- $since_id = (int)db_escape_string($_REQUEST["since_id"]);
- $include_nested = (bool)db_escape_string($_REQUEST["include_nested"]);
+ $view_mode = $this->dbh->escape_string($_REQUEST["view_mode"]);
+ $include_attachments = sql_bool_to_bool($_REQUEST["include_attachments"]);
+ $since_id = (int)$this->dbh->escape_string($_REQUEST["since_id"]);
+ $include_nested = sql_bool_to_bool($_REQUEST["include_nested"]);
$sanitize_content = true;
+ $override_order = false;
+ switch ($_REQUEST["order_by"]) {
+ case "date_reverse":
+ $override_order = "date_entered, updated";
+ break;
+ case "feed_dates":
+ $override_order = "updated DESC";
+ break;
+ }
+
/* do not rely on params below */
- $search = db_escape_string($_REQUEST["search"]);
- $search_mode = db_escape_string($_REQUEST["search_mode"]);
- $match_on = db_escape_string($_REQUEST["match_on"]);
+ $search = $this->dbh->escape_string($_REQUEST["search"]);
+ $search_mode = $this->dbh->escape_string($_REQUEST["search_mode"]);
- $headlines = $this->api_get_headlines($this->link, $feed_id, $limit, $offset,
- $filter, $is_cat, $show_excerpt, $show_content, $view_mode, false,
- $include_attachments, $since_id, $search, $search_mode, $match_on,
+ $headlines = $this->api_get_headlines($feed_id, $limit, $offset,
+ $filter, $is_cat, $show_excerpt, $show_content, $view_mode, $override_order,
+ $include_attachments, $since_id, $search, $search_mode,
$include_nested, $sanitize_content);
- print $this->wrap(self::STATUS_OK, $headlines);
+ $this->wrap(self::STATUS_OK, $headlines);
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
+ $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
}
}
function updateArticle() {
- $article_ids = array_filter(explode(",", db_escape_string($_REQUEST["article_ids"])), is_numeric);
- $mode = (int) db_escape_string($_REQUEST["mode"]);
- $data = db_escape_string($_REQUEST["data"]);
- $field_raw = (int)db_escape_string($_REQUEST["field"]);
+ $article_ids = array_filter(explode(",", $this->dbh->escape_string($_REQUEST["article_ids"])), is_numeric);
+ $mode = (int) $this->dbh->escape_string($_REQUEST["mode"]);
+ $data = $this->dbh->escape_string($_REQUEST["data"]);
+ $field_raw = (int)$this->dbh->escape_string($_REQUEST["field"]);
$field = "";
$set_to = "";
@@ -219,12 +237,15 @@ class API extends Handler {
switch ($field_raw) {
case 0:
$field = "marked";
+ $additional_fields = ",last_marked = NOW()";
break;
case 1:
$field = "published";
+ $additional_fields = ",last_published = NOW()";
break;
case 2:
$field = "unread";
+ $additional_fields = ",last_read = NOW()";
break;
case 3:
$field = "note";
@@ -248,62 +269,66 @@ class API extends Handler {
$article_ids = join(", ", $article_ids);
- if ($field == "unread") {
- $result = db_query($this->link, "UPDATE ttrss_user_entries SET $field = $set_to,
- last_read = NOW()
- WHERE ref_id IN ($article_ids) AND owner_uid = " . $_SESSION["uid"]);
- } else {
- $result = db_query($this->link, "UPDATE ttrss_user_entries SET $field = $set_to
- WHERE ref_id IN ($article_ids) AND owner_uid = " . $_SESSION["uid"]);
- }
+ $result = $this->dbh->query("UPDATE ttrss_user_entries SET $field = $set_to $additional_fields WHERE ref_id IN ($article_ids) AND owner_uid = " . $_SESSION["uid"]);
- $num_updated = db_affected_rows($this->link, $result);
+ $num_updated = $this->dbh->affected_rows($result);
if ($num_updated > 0 && $field == "unread") {
- $result = db_query($this->link, "SELECT DISTINCT feed_id FROM ttrss_user_entries
+ $result = $this->dbh->query("SELECT DISTINCT feed_id FROM ttrss_user_entries
WHERE ref_id IN ($article_ids)");
- while ($line = db_fetch_assoc($result)) {
- ccache_update($this->link, $line["feed_id"], $_SESSION["uid"]);
+ while ($line = $this->dbh->fetch_assoc($result)) {
+ ccache_update($line["feed_id"], $_SESSION["uid"]);
}
}
- print $this->wrap(self::STATUS_OK, array("status" => "OK",
+ if ($num_updated > 0 && $field == "published") {
+ if (PUBSUBHUBBUB_HUB) {
+ $rss_link = get_self_url_prefix() .
+ "/public.php?op=rss&id=-2&key=" .
+ get_feed_access_key(-2, false);
+
+ $p = new Publisher(PUBSUBHUBBUB_HUB);
+ $pubsub_result = $p->publish_update($rss_link);
+ }
+ }
+
+ $this->wrap(self::STATUS_OK, array("status" => "OK",
"updated" => $num_updated));
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
+ $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
}
}
function getArticle() {
- $article_id = join(",", array_filter(explode(",", db_escape_string($_REQUEST["article_id"])), is_numeric));
+ $article_id = join(",", array_filter(explode(",", $this->dbh->escape_string($_REQUEST["article_id"])), is_numeric));
$query = "SELECT id,title,link,content,cached_content,feed_id,comments,int_id,
- marked,unread,published,
+ marked,unread,published,score,
".SUBSTRING_FOR_DATE."(updated,1,16) as updated,
- author
+ author,(SELECT title FROM ttrss_feeds WHERE id = feed_id) AS feed_title
FROM ttrss_entries,ttrss_user_entries
WHERE id IN ($article_id) AND ref_id = id AND owner_uid = " .
$_SESSION["uid"] ;
- $result = db_query($this->link, $query);
+ $result = $this->dbh->query($query);
$articles = array();
- if (db_num_rows($result) != 0) {
+ if ($this->dbh->num_rows($result) != 0) {
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
- $attachments = get_article_enclosures($this->link, $line['id']);
+ $attachments = get_article_enclosures($line['id']);
$article = array(
"id" => $line["id"],
"title" => $line["title"],
"link" => $line["link"],
- "labels" => get_article_labels($this->link, $line['id']),
+ "labels" => get_article_labels($line['id']),
"unread" => sql_bool_to_bool($line["unread"]),
"marked" => sql_bool_to_bool($line["marked"]),
"published" => sql_bool_to_bool($line["published"]),
@@ -312,15 +337,22 @@ class API extends Handler {
"updated" => (int) strtotime($line["updated"]),
"content" => $line["cached_content"] != "" ? $line["cached_content"] : $line["content"],
"feed_id" => $line["feed_id"],
- "attachments" => $attachments
+ "attachments" => $attachments,
+ "score" => (int)$line["score"],
+ "feed_title" => $line["feed_title"]
);
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE_API) as $p) {
+ $article = $p->hook_render_article_api(array("article" => $article));
+ }
+
+
array_push($articles, $article);
}
}
- print $this->wrap(self::STATUS_OK, $articles);
+ $this->wrap(self::STATUS_OK, $articles);
}
@@ -331,56 +363,58 @@ class API extends Handler {
$config["daemon_is_running"] = file_is_locked("update_daemon.lock");
- $result = db_query($this->link, "SELECT COUNT(*) AS cf FROM
+ $result = $this->dbh->query("SELECT COUNT(*) AS cf FROM
ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"]);
- $num_feeds = db_fetch_result($result, 0, "cf");
+ $num_feeds = $this->dbh->fetch_result($result, 0, "cf");
$config["num_feeds"] = (int)$num_feeds;
- print $this->wrap(self::STATUS_OK, $config);
+ $this->wrap(self::STATUS_OK, $config);
}
function updateFeed() {
- $feed_id = db_escape_string($_REQUEST["feed_id"]);
+ require_once "include/rssfuncs.php";
+
+ $feed_id = (int) $this->dbh->escape_string($_REQUEST["feed_id"]);
- update_rss_feed($this->link, $feed_id, true);
+ update_rss_feed($feed_id, true);
- print $this->wrap(self::STATUS_OK, array("status" => "OK"));
+ $this->wrap(self::STATUS_OK, array("status" => "OK"));
}
function catchupFeed() {
- $feed_id = db_escape_string($_REQUEST["feed_id"]);
- $is_cat = db_escape_string($_REQUEST["is_cat"]);
+ $feed_id = $this->dbh->escape_string($_REQUEST["feed_id"]);
+ $is_cat = $this->dbh->escape_string($_REQUEST["is_cat"]);
- catchup_feed($this->link, $feed_id, $is_cat);
+ catchup_feed($feed_id, $is_cat);
- print $this->wrap(self::STATUS_OK, array("status" => "OK"));
+ $this->wrap(self::STATUS_OK, array("status" => "OK"));
}
function getPref() {
- $pref_name = db_escape_string($_REQUEST["pref_name"]);
+ $pref_name = $this->dbh->escape_string($_REQUEST["pref_name"]);
- print $this->wrap(self::STATUS_OK, array("value" => get_pref($this->link, $pref_name)));
+ $this->wrap(self::STATUS_OK, array("value" => get_pref($pref_name)));
}
function getLabels() {
- //$article_ids = array_filter(explode(",", db_escape_string($_REQUEST["article_ids"])), is_numeric);
+ //$article_ids = array_filter(explode(",", $this->dbh->escape_string($_REQUEST["article_ids"])), is_numeric);
$article_id = (int)$_REQUEST['article_id'];
$rv = array();
- $result = db_query($this->link, "SELECT id, caption, fg_color, bg_color
+ $result = $this->dbh->query("SELECT id, caption, fg_color, bg_color
FROM ttrss_labels2
WHERE owner_uid = '".$_SESSION['uid']."' ORDER BY caption");
if ($article_id)
- $article_labels = get_article_labels($this->link, $article_id);
+ $article_labels = get_article_labels($article_id);
else
$article_labels = array();
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$checked = false;
foreach ($article_labels as $al) {
@@ -398,16 +432,16 @@ class API extends Handler {
"checked" => $checked));
}
- print $this->wrap(self::STATUS_OK, $rv);
+ $this->wrap(self::STATUS_OK, $rv);
}
function setArticleLabel() {
- $article_ids = array_filter(explode(",", db_escape_string($_REQUEST["article_ids"])), is_numeric);
- $label_id = (int) db_escape_string($_REQUEST['label_id']);
- $assign = (bool) db_escape_string($_REQUEST['assign']) == "true";
+ $article_ids = array_filter(explode(",", $this->dbh->escape_string($_REQUEST["article_ids"])), is_numeric);
+ $label_id = (int) $this->dbh->escape_string($_REQUEST['label_id']);
+ $assign = (bool) $this->dbh->escape_string($_REQUEST['assign']) == "true";
- $label = db_escape_string(label_find_caption($this->link,
+ $label = $this->dbh->escape_string(label_find_caption(
$label_id, $_SESSION["uid"]));
$num_updated = 0;
@@ -417,44 +451,53 @@ class API extends Handler {
foreach ($article_ids as $id) {
if ($assign)
- label_add_article($this->link, $id, $label, $_SESSION["uid"]);
+ label_add_article($id, $label, $_SESSION["uid"]);
else
- label_remove_article($this->link, $id, $label, $_SESSION["uid"]);
+ label_remove_article($id, $label, $_SESSION["uid"]);
++$num_updated;
}
}
- print $this->wrap(self::STATUS_OK, array("status" => "OK",
+ $this->wrap(self::STATUS_OK, array("status" => "OK",
"updated" => $num_updated));
}
- function index() {
- print $this->wrap(self::STATUS_ERR, array("error" => 'UNKNOWN_METHOD'));
+ function index($method) {
+ $plugin = PluginHost::getInstance()->get_api_method(strtolower($method));
+
+ if ($plugin && method_exists($plugin, $method)) {
+ $reply = $plugin->$method();
+
+ $this->wrap($reply[0], $reply[1]);
+
+ } else {
+ $this->wrap(self::STATUS_ERR, array("error" => 'UNKNOWN_METHOD', "method" => $method));
+ }
}
function shareToPublished() {
- $title = db_escape_string(strip_tags($_REQUEST["title"]));
- $url = db_escape_string(strip_tags($_REQUEST["url"]));
- $content = db_escape_string(strip_tags($_REQUEST["content"]));
+ $title = $this->dbh->escape_string(strip_tags($_REQUEST["title"]));
+ $url = $this->dbh->escape_string(strip_tags($_REQUEST["url"]));
+ $content = $this->dbh->escape_string(strip_tags($_REQUEST["content"]));
- if (Article::create_published_article($this->link, $title, $url, $content, "", $_SESSION["uid"])) {
- print $this->wrap(self::STATUS_OK, array("status" => 'OK'));
+ if (Article::create_published_article($title, $url, $content, "", $_SESSION["uid"])) {
+ $this->wrap(self::STATUS_OK, array("status" => 'OK'));
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => 'Publishing failed'));
+ $this->wrap(self::STATUS_ERR, array("error" => 'Publishing failed'));
}
}
- static function api_get_feeds($link, $cat_id, $unread_only, $limit, $offset, $include_nested = false) {
+ static function api_get_feeds($cat_id, $unread_only, $limit, $offset, $include_nested = false) {
$feeds = array();
/* Labels */
if ($cat_id == -4 || $cat_id == -2) {
- $counters = getLabelCounters($link, true);
+ $counters = getLabelCounters(true);
foreach (array_values($counters) as $cv) {
@@ -478,10 +521,10 @@ class API extends Handler {
if ($cat_id == -4 || $cat_id == -1) {
foreach (array(-1, -2, -3, -4, -6, 0) as $i) {
- $unread = getFeedUnread($link, $i);
+ $unread = getFeedUnread($i);
if ($unread || !$unread_only) {
- $title = getFeedTitle($link, $i);
+ $title = getFeedTitle($i);
$row = array(
"id" => $i,
@@ -498,14 +541,14 @@ class API extends Handler {
/* Child cats */
if ($include_nested && $cat_id) {
- $result = db_query($link, "SELECT
+ $result = db_query("SELECT
id, title FROM ttrss_feed_categories
WHERE parent_cat = '$cat_id' AND owner_uid = " . $_SESSION["uid"] .
" ORDER BY id, title");
while ($line = db_fetch_assoc($result)) {
- $unread = getFeedUnread($link, $line["id"], true) +
- getCategoryChildrenUnread($link, $line["id"]);
+ $unread = getFeedUnread($line["id"], true) +
+ getCategoryChildrenUnread($line["id"]);
if ($unread || !$unread_only) {
$row = array(
@@ -528,7 +571,7 @@ class API extends Handler {
}
if ($cat_id == -4 || $cat_id == -3) {
- $result = db_query($link, "SELECT
+ $result = db_query("SELECT
id, feed_url, cat_id, title, order_id, ".
SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
FROM ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"] .
@@ -540,7 +583,7 @@ class API extends Handler {
else
$cat_qpart = "cat_id IS NULL";
- $result = db_query($link, "SELECT
+ $result = db_query("SELECT
id, feed_url, cat_id, title, order_id, ".
SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
FROM ttrss_feeds WHERE
@@ -550,7 +593,7 @@ class API extends Handler {
while ($line = db_fetch_assoc($result)) {
- $unread = getFeedUnread($link, $line["id"]);
+ $unread = getFeedUnread($line["id"]);
$has_icon = feed_has_icon($line['id']);
@@ -574,14 +617,14 @@ class API extends Handler {
return $feeds;
}
- static function api_get_headlines($link, $feed_id, $limit, $offset,
+ static function api_get_headlines($feed_id, $limit, $offset,
$filter, $is_cat, $show_excerpt, $show_content, $view_mode, $order,
$include_attachments, $since_id,
- $search = "", $search_mode = "", $match_on = "",
+ $search = "", $search_mode = "",
$include_nested = false, $sanitize_content = true) {
- $qfh_ret = queryFeedHeadlines($link, $feed_id, $limit,
- $view_mode, $is_cat, $search, $search_mode, $match_on,
+ $qfh_ret = queryFeedHeadlines($feed_id, $limit,
+ $view_mode, $is_cat, $search, $search_mode,
$order, $offset, 0, false, $since_id, $include_nested);
$result = $qfh_ret[0];
@@ -596,8 +639,8 @@ class API extends Handler {
$tags = explode(",", $line["tag_cache"]);
$labels = json_decode($line["label_cache"], true);
- //if (!$tags) $tags = get_article_tags($link, $line["id"]);
- //if (!$labels) $labels = get_article_labels($link, $line["id"]);
+ //if (!$tags) $tags = get_article_tags($line["id"]);
+ //if (!$labels) $labels = get_article_labels($line["id"]);
$headline_row = array(
"id" => (int)$line["id"],
@@ -613,7 +656,7 @@ class API extends Handler {
);
if ($include_attachments)
- $headline_row['attachments'] = get_article_enclosures($link,
+ $headline_row['attachments'] = get_article_enclosures(
$line['id']);
if ($show_excerpt) {
@@ -628,8 +671,10 @@ class API extends Handler {
}
if ($sanitize_content) {
- $headline_row["content"] = sanitize($link,
- $line["content_preview"], false, false, $line["site_url"]);
+ $headline_row["content"] = sanitize(
+ $line["content_preview"],
+ sql_bool_to_bool($line['hide_images']),
+ false, $line["site_url"]);
} else {
$headline_row["content"] = $line["content_preview"];
}
@@ -640,19 +685,95 @@ class API extends Handler {
$headline_row["labels"] = $labels;
- $headline_row["feed_title"] = $line["feed_title"];
+ $headline_row["feed_title"] = $line["feed_title"] ? $line["feed_title"] :
+ $feed_title;
$headline_row["comments_count"] = (int)$line["num_comments"];
$headline_row["comments_link"] = $line["comments"];
$headline_row["always_display_attachments"] = sql_bool_to_bool($line["always_display_enclosures"]);
+ $headline_row["author"] = $line["author"];
+ $headline_row["score"] = (int)$line["score"];
+
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE_API) as $p) {
+ $headline_row = $p->hook_render_article_api(array("headline" => $headline_row));
+ }
+
array_push($headlines, $headline_row);
}
return $headlines;
}
+ function unsubscribeFeed() {
+ $feed_id = (int) $this->dbh->escape_string($_REQUEST["feed_id"]);
+
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds WHERE
+ id = '$feed_id' AND owner_uid = ".$_SESSION["uid"]);
+
+ if ($this->dbh->num_rows($result) != 0) {
+ Pref_Feeds::remove_feed($feed_id, $_SESSION["uid"]);
+ $this->wrap(self::STATUS_OK, array("status" => "OK"));
+ } else {
+ $this->wrap(self::STATUS_ERR, array("error" => "FEED_NOT_FOUND"));
+ }
+ }
+
+ function subscribeToFeed() {
+ $feed_url = $this->dbh->escape_string($_REQUEST["feed_url"]);
+ $category_id = (int) $this->dbh->escape_string($_REQUEST["category_id"]);
+ $login = $this->dbh->escape_string($_REQUEST["login"]);
+ $password = $this->dbh->escape_string($_REQUEST["password"]);
+
+ if ($feed_url) {
+ $rc = subscribe_to_feed($feed_url, $category_id, $login, $password);
+
+ $this->wrap(self::STATUS_OK, array("status" => $rc));
+ } else {
+ $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
+ }
+ }
+
+ function getFeedTree() {
+ $include_empty = sql_bool_to_bool($_REQUEST['include_empty']);
+
+ $pf = new Pref_Feeds($_REQUEST);
+
+ $_REQUEST['mode'] = 2;
+ $_REQUEST['force_show_empty'] = $include_empty;
+
+ if ($pf){
+ $data = $pf->makefeedtree();
+ $this->wrap(self::STATUS_OK, array("categories" => $data));
+ } else {
+ $this->wrap(self::STATUS_ERR, array("error" =>
+ 'UNABLE_TO_INSTANTIATE_OBJECT'));
+ }
+
+ }
+
+ // only works for labels or uncategorized for the time being
+ private function isCategoryEmpty($id) {
+
+ if ($id == -2) {
+ $result = $this->dbh->query("SELECT COUNT(*) AS count FROM ttrss_labels2
+ WHERE owner_uid = " . $_SESSION["uid"]);
+
+ return $this->dbh->fetch_result($result, 0, "count") == 0;
+
+ } else if ($id == 0) {
+ $result = $this->dbh->query("SELECT COUNT(*) AS count FROM ttrss_feeds
+ WHERE cat_id IS NULL AND owner_uid = " . $_SESSION["uid"]);
+
+ return $this->dbh->fetch_result($result, 0, "count") == 0;
+
+ }
+
+ return false;
+ }
+
+
}
?>
diff --git a/classes/article.php b/classes/article.php
index 2f49b1827..e9f86f298 100644
--- a/classes/article.php
+++ b/classes/article.php
@@ -2,20 +2,20 @@
class Article extends Handler_Protected {
function csrf_ignore($method) {
- $csrf_ignored = array("redirect");
+ $csrf_ignored = array("redirect", "editarticletags");
return array_search($method, $csrf_ignored) !== false;
}
function redirect() {
- $id = db_escape_string($_REQUEST['id']);
+ $id = $this->dbh->escape_string($_REQUEST['id']);
- $result = db_query($this->link, "SELECT link FROM ttrss_entries, ttrss_user_entries
+ $result = $this->dbh->query("SELECT link FROM ttrss_entries, ttrss_user_entries
WHERE id = '$id' AND id = ref_id AND owner_uid = '".$_SESSION['uid']."'
LIMIT 1");
- if (db_num_rows($result) == 1) {
- $article_url = db_fetch_result($result, 0, 'link');
+ if ($this->dbh->num_rows($result) == 1) {
+ $article_url = $this->dbh->fetch_result($result, 0, 'link');
$article_url = str_replace("\n", "", $article_url);
header("Location: $article_url");
@@ -27,10 +27,10 @@ class Article extends Handler_Protected {
}
function view() {
- $id = db_escape_string($_REQUEST["id"]);
- $cids = explode(",", db_escape_string($_REQUEST["cids"]));
- $mode = db_escape_string($_REQUEST["mode"]);
- $omode = db_escape_string($_REQUEST["omode"]);
+ $id = $this->dbh->escape_string($_REQUEST["id"]);
+ $cids = explode(",", $this->dbh->escape_string($_REQUEST["cids"]));
+ $mode = $this->dbh->escape_string($_REQUEST["mode"]);
+ $omode = $this->dbh->escape_string($_REQUEST["omode"]);
// in prefetch mode we only output requested cids, main article
// just gets marked as read (it already exists in client cache)
@@ -38,26 +38,26 @@ class Article extends Handler_Protected {
$articles = array();
if ($mode == "") {
- array_push($articles, format_article($this->link, $id, false));
+ array_push($articles, format_article($id, false));
} else if ($mode == "zoom") {
- array_push($articles, format_article($this->link, $id, true, true));
+ array_push($articles, format_article($id, true, true));
} else if ($mode == "raw") {
if ($_REQUEST['html']) {
header("Content-Type: text/html");
print '<link rel="stylesheet" type="text/css" href="tt-rss.css"/>';
}
- $article = format_article($this->link, $id, false);
+ $article = format_article($id, false);
print $article['content'];
return;
}
- $this->catchupArticleById($this->link, $id, 0);
+ $this->catchupArticleById($id, 0);
if (!$_SESSION["bw_limit"]) {
foreach ($cids as $cid) {
if ($cid) {
- array_push($articles, format_article($this->link, $cid, false, false));
+ array_push($articles, format_article($cid, false, false));
}
}
}
@@ -65,30 +65,30 @@ class Article extends Handler_Protected {
print json_encode($articles);
}
- private function catchupArticleById($link, $id, $cmode) {
+ private function catchupArticleById($id, $cmode) {
if ($cmode == 0) {
- db_query($link, "UPDATE ttrss_user_entries SET
+ $this->dbh->query("UPDATE ttrss_user_entries SET
unread = false,last_read = NOW()
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
} else if ($cmode == 1) {
- db_query($link, "UPDATE ttrss_user_entries SET
+ $this->dbh->query("UPDATE ttrss_user_entries SET
unread = true
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
} else {
- db_query($link, "UPDATE ttrss_user_entries SET
+ $this->dbh->query("UPDATE ttrss_user_entries SET
unread = NOT unread,last_read = NOW()
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
}
- $feed_id = getArticleFeed($link, $id);
- ccache_update($link, $feed_id, $_SESSION["uid"]);
+ $feed_id = getArticleFeed($id);
+ ccache_update($feed_id, $_SESSION["uid"]);
}
- static function create_published_article($link, $title, $url, $content, $labels_str,
+ static function create_published_article($title, $url, $content, $labels_str,
$owner_uid) {
- $guid = sha1($url . $owner_uid); // include owner_uid to prevent global GUID clash
+ $guid = 'SHA1:' . sha1("ttshared:" . $url . $owner_uid); // include owner_uid to prevent global GUID clash
$content_hash = sha1($content);
if ($labels_str != "") {
@@ -104,61 +104,64 @@ class Article extends Handler_Protected {
if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) return false;
- db_query($link, "BEGIN");
+ db_query("BEGIN");
// only check for our user data here, others might have shared this with different content etc
- $result = db_query($link, "SELECT id FROM ttrss_entries, ttrss_user_entries WHERE
+ $result = db_query("SELECT id FROM ttrss_entries, ttrss_user_entries WHERE
link = '$url' AND ref_id = id AND owner_uid = '$owner_uid' LIMIT 1");
if (db_num_rows($result) != 0) {
$ref_id = db_fetch_result($result, 0, "id");
- $result = db_query($link, "SELECT int_id FROM ttrss_user_entries WHERE
+ $result = db_query("SELECT int_id FROM ttrss_user_entries WHERE
ref_id = '$ref_id' AND owner_uid = '$owner_uid' LIMIT 1");
if (db_num_rows($result) != 0) {
$int_id = db_fetch_result($result, 0, "int_id");
- db_query($link, "UPDATE ttrss_entries SET
+ db_query("UPDATE ttrss_entries SET
content = '$content', content_hash = '$content_hash' WHERE id = '$ref_id'");
- db_query($link, "UPDATE ttrss_user_entries SET published = true WHERE
+ db_query("UPDATE ttrss_user_entries SET published = true,
+ last_published = NOW() WHERE
int_id = '$int_id' AND owner_uid = '$owner_uid'");
} else {
- db_query($link, "INSERT INTO ttrss_user_entries
- (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache, last_read, note, unread)
+ db_query("INSERT INTO ttrss_user_entries
+ (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache,
+ last_read, note, unread, last_published)
VALUES
- ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false)");
+ ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false, NOW())");
}
if (count($labels) != 0) {
foreach ($labels as $label) {
- label_add_article($link, $ref_id, trim($label), $owner_uid);
+ label_add_article($ref_id, trim($label), $owner_uid);
}
}
$rc = true;
} else {
- $result = db_query($link, "INSERT INTO ttrss_entries
+ $result = db_query("INSERT INTO ttrss_entries
(title, guid, link, updated, content, content_hash, date_entered, date_updated)
VALUES
('$title', '$guid', '$url', NOW(), '$content', '$content_hash', NOW(), NOW())");
- $result = db_query($link, "SELECT id FROM ttrss_entries WHERE guid = '$guid'");
+ $result = db_query("SELECT id FROM ttrss_entries WHERE guid = '$guid'");
if (db_num_rows($result) != 0) {
$ref_id = db_fetch_result($result, 0, "id");
- db_query($link, "INSERT INTO ttrss_user_entries
- (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache, last_read, note, unread)
+ db_query("INSERT INTO ttrss_user_entries
+ (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache,
+ last_read, note, unread, last_published)
VALUES
- ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false)");
+ ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false, NOW())");
if (count($labels) != 0) {
foreach ($labels as $label) {
- label_add_article($link, $ref_id, trim($label), $owner_uid);
+ label_add_article($ref_id, trim($label), $owner_uid);
}
}
@@ -166,11 +169,178 @@ class Article extends Handler_Protected {
}
}
- db_query($link, "COMMIT");
+ db_query("COMMIT");
return $rc;
}
+ function editArticleTags() {
+
+ print __("Tags for this article (separated by commas):")."<br>";
+
+ $param = $this->dbh->escape_string($_REQUEST['param']);
+
+ $tags = get_article_tags($this->dbh->escape_string($param));
+
+ $tags_str = join(", ", $tags);
+
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$param\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"article\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"setArticleTags\">";
+
+ print "<table width='100%'><tr><td>";
+
+ print "<textarea dojoType=\"dijit.form.SimpleTextarea\" rows='4'
+ style='font-size : 12px; width : 100%' id=\"tags_str\"
+ name='tags_str'>$tags_str</textarea>
+ <div class=\"autocomplete\" id=\"tags_choices\"
+ style=\"display:none\"></div>";
+
+ print "</td></tr></table>";
+
+ print "<div class='dlgButtons'>";
+
+ print "<button dojoType=\"dijit.form.Button\"
+ onclick=\"dijit.byId('editTagsDlg').execute()\">".__('Save')."</button> ";
+ print "<button dojoType=\"dijit.form.Button\"
+ onclick=\"dijit.byId('editTagsDlg').hide()\">".__('Cancel')."</button>";
+ print "</div>";
+
+ }
+
+ function setScore() {
+ $ids = $this->dbh->escape_string($_REQUEST['id']);
+ $score = (int)$this->dbh->escape_string($_REQUEST['score']);
+
+ $this->dbh->query("UPDATE ttrss_user_entries SET
+ score = '$score' WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]);
+
+ print json_encode(array("id" => $ids,
+ "score_pic" => get_score_pic($score)));
+ }
+
+
+ function setArticleTags() {
+
+ $id = $this->dbh->escape_string($_REQUEST["id"]);
+
+ $tags_str = $this->dbh->escape_string($_REQUEST["tags_str"]);
+ $tags = array_unique(trim_array(explode(",", $tags_str)));
+
+ $this->dbh->query("BEGIN");
+
+ $result = $this->dbh->query("SELECT int_id FROM ttrss_user_entries WHERE
+ ref_id = '$id' AND owner_uid = '".$_SESSION["uid"]."' LIMIT 1");
+
+ if ($this->dbh->num_rows($result) == 1) {
+
+ $tags_to_cache = array();
+
+ $int_id = $this->dbh->fetch_result($result, 0, "int_id");
+
+ $this->dbh->query("DELETE FROM ttrss_tags WHERE
+ post_int_id = $int_id AND owner_uid = '".$_SESSION["uid"]."'");
+
+ foreach ($tags as $tag) {
+ $tag = sanitize_tag($tag);
+
+ if (!tag_is_valid($tag)) {
+ continue;
+ }
+
+ if (preg_match("/^[0-9]*$/", $tag)) {
+ continue;
+ }
+
+ // print "<!-- $id : $int_id : $tag -->";
+
+ if ($tag != '') {
+ $this->dbh->query("INSERT INTO ttrss_tags
+ (post_int_id, owner_uid, tag_name) VALUES ('$int_id', '".$_SESSION["uid"]."', '$tag')");
+ }
+
+ array_push($tags_to_cache, $tag);
+ }
+
+ /* update tag cache */
+
+ sort($tags_to_cache);
+ $tags_str = join(",", $tags_to_cache);
+
+ $this->dbh->query("UPDATE ttrss_user_entries
+ SET tag_cache = '$tags_str' WHERE ref_id = '$id'
+ AND owner_uid = " . $_SESSION["uid"]);
+ }
+
+ $this->dbh->query("COMMIT");
+
+ $tags = get_article_tags($id);
+ $tags_str = format_tags_string($tags, $id);
+ $tags_str_full = join(", ", $tags);
+
+ if (!$tags_str_full) $tags_str_full = __("no tags");
+
+ print json_encode(array("id" => (int)$id,
+ "content" => $tags_str, "content_full" => $tags_str_full));
+ }
+
+
+ function completeTags() {
+ $search = $this->dbh->escape_string($_REQUEST["search"]);
+
+ $result = $this->dbh->query("SELECT DISTINCT tag_name FROM ttrss_tags
+ WHERE owner_uid = '".$_SESSION["uid"]."' AND
+ tag_name LIKE '$search%' ORDER BY tag_name
+ LIMIT 10");
+
+ print "<ul>";
+ while ($line = $this->dbh->fetch_assoc($result)) {
+ print "<li>" . $line["tag_name"] . "</li>";
+ }
+ print "</ul>";
+ }
+
+ function assigntolabel() {
+ return $this->labelops(true);
+ }
+
+ function removefromlabel() {
+ return $this->labelops(false);
+ }
+
+ private function labelops($assign) {
+ $reply = array();
+
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
+ $label_id = $this->dbh->escape_string($_REQUEST["lid"]);
+
+ $label = $this->dbh->escape_string(label_find_caption($label_id,
+ $_SESSION["uid"]));
+
+ $reply["info-for-headlines"] = array();
+
+ if ($label) {
+
+ foreach ($ids as $id) {
+
+ if ($assign)
+ label_add_article($id, $label, $_SESSION["uid"]);
+ else
+ label_remove_article($id, $label, $_SESSION["uid"]);
+
+ $labels = get_article_labels($id, $_SESSION["uid"]);
+
+ array_push($reply["info-for-headlines"],
+ array("id" => $id, "labels" => format_article_labels($labels, $id)));
+
+ }
+ }
+
+ $reply["message"] = "UPDATE_COUNTERS";
+
+ print json_encode($reply);
+ }
+
}
diff --git a/classes/auth/base.php b/classes/auth/base.php
index aa9d657a4..69acd0985 100644
--- a/classes/auth/base.php
+++ b/classes/auth/base.php
@@ -1,9 +1,9 @@
<?php
class Auth_Base {
- protected $link;
+ private $dbh;
- function __construct($link) {
- $this->link = $link;
+ function __construct() {
+ $this->dbh = Db::get();
}
function check_password($owner_uid, $password) {
@@ -16,12 +16,14 @@ class Auth_Base {
// Auto-creates specified user if allowed by system configuration
// Can be used instead of find_user_by_login() by external auth modules
- function auto_create_user($login) {
+ function auto_create_user($login, $password = false) {
if ($login && defined('AUTH_AUTO_CREATE') && AUTH_AUTO_CREATE) {
$user_id = $this->find_user_by_login($login);
+ if (!$password) $password = make_password();
+
if (!$user_id) {
- $login = db_escape_string($login);
+ $login = $this->dbh->escape_string($login);
$salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
$pwd_hash = encrypt_password($password, $salt, true);
@@ -29,7 +31,7 @@ class Auth_Base {
(login,access_level,last_login,created,pwd_hash,salt)
VALUES ('$login', 0, null, NOW(), '$pwd_hash','$salt')";
- db_query($this->link, $query);
+ $this->dbh->query($query);
return $this->find_user_by_login($login);
@@ -42,13 +44,13 @@ class Auth_Base {
}
function find_user_by_login($login) {
- $login = db_escape_string($login);
+ $login = $this->dbh->escape_string($login);
- $result = db_query($this->link, "SELECT id FROM ttrss_users WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_users WHERE
login = '$login'");
- if (db_num_rows($result) > 0) {
- return db_fetch_result($result, 0, "id");
+ if ($this->dbh->num_rows($result) > 0) {
+ return $this->dbh->fetch_result($result, 0, "id");
} else {
return false;
}
diff --git a/classes/backend.php b/classes/backend.php
index 5473c5c79..7737df0f6 100644
--- a/classes/backend.php
+++ b/classes/backend.php
@@ -11,7 +11,7 @@ class Backend extends Handler {
require_once "digest.php";
- $rv = prepare_headlines_digest($this->link, $_SESSION['uid'], 1, 1000);
+ $rv = prepare_headlines_digest($_SESSION['uid'], 1, 1000);
$rv[3] = "<pre>" . $rv[3] . "</pre>";
@@ -19,8 +19,8 @@ class Backend extends Handler {
}
private function display_main_help() {
- $info = get_hotkeys_info($this->link);
- $imap = get_hotkeys_map($this->link);
+ $info = get_hotkeys_info();
+ $imap = get_hotkeys_map();
$omap = array();
foreach ($imap[1] as $sequence => $action) {
@@ -29,6 +29,10 @@ class Backend extends Handler {
array_push($omap[$action], $sequence);
}
+ print_notice("<a target=\"_blank\" href=\"http://tt-rss.org/wiki/InterfaceTips\">".
+ __("Other interface tips are available in the Tiny Tiny RSS wiki.") .
+ "</a>");
+
print "<ul class='helpKbList' id='helpKbList'>";
print "<h2>" . __("Keyboard Shortcuts") . "</h2>";
@@ -45,6 +49,28 @@ class Backend extends Handler {
$sequence = substr($sequence,
strpos($sequence, "|")+1,
strlen($sequence));
+ } else {
+ $keys = explode(" ", $sequence);
+
+ for ($i = 0; $i < count($keys); $i++) {
+ if (strlen($keys[$i]) > 1) {
+ $tmp = '';
+ foreach (str_split($keys[$i]) as $c) {
+ switch ($c) {
+ case '*':
+ $tmp .= __('Shift') . '+';
+ break;
+ case '^':
+ $tmp .= __('Ctrl') . '+';
+ break;
+ default:
+ $tmp .= $c;
+ }
+ }
+ $keys[$i] = $tmp;
+ }
+ }
+ $sequence = join(" ", $keys);
}
print "<li>";
@@ -57,10 +83,6 @@ class Backend extends Handler {
}
print "</ul>";
-
- print "<p><a target=\"_blank\" href=\"http://tt-rss.org/wiki/InterfaceTips\">".
- __("Other interface tips are available in the Tiny Tiny RSS wiki.") .
- "</a></p>";
}
function help() {
diff --git a/classes/db.php b/classes/db.php
new file mode 100644
index 000000000..695ca6ea2
--- /dev/null
+++ b/classes/db.php
@@ -0,0 +1,98 @@
+<?php
+class Db implements IDb {
+ private static $instance;
+ private $adapter;
+ private $link;
+
+ private function __construct() {
+
+ $er = error_reporting(E_ALL);
+
+ if (defined('_ENABLE_PDO') && _ENABLE_PDO && class_exists("PDO")) {
+ $this->adapter = new Db_PDO();
+ } else {
+ switch (DB_TYPE) {
+ case "mysql":
+ if (function_exists("mysqli_connect")) {
+ $this->adapter = new Db_Mysqli();
+ } else {
+ $this->adapter = new Db_Mysql();
+ }
+ break;
+ case "pgsql":
+ $this->adapter = new Db_Pgsql();
+ break;
+ default:
+ die("Unknown DB_TYPE: " . DB_TYPE);
+ }
+ }
+
+ if (!$this->adapter) die("Error initializing database adapter for " . DB_TYPE);
+
+ $this->link = $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, defined('DB_PORT') ? DB_PORT : "");
+
+ if (!$this->link) {
+ die("Error connecting through adapter: " . $this->adapter->last_error());
+ }
+
+ error_reporting($er);
+ }
+
+ private function __clone() {
+ //
+ }
+
+ public static function get() {
+ if (self::$instance == null)
+ self::$instance = new self();
+
+ return self::$instance;
+ }
+
+ static function quote($str){
+ return("'$str'");
+ }
+
+ function reconnect() {
+ $this->link = $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, defined('DB_PORT') ? DB_PORT : "");
+ }
+
+ function connect($host, $user, $pass, $db, $port) {
+ //return $this->adapter->connect($host, $user, $pass, $db, $port);
+ return ;
+ }
+
+ function escape_string($s, $strip_tags = true) {
+ return $this->adapter->escape_string($s, $strip_tags);
+ }
+
+ function query($query, $die_on_error = true) {
+ return $this->adapter->query($query, $die_on_error);
+ }
+
+ function fetch_assoc($result) {
+ return $this->adapter->fetch_assoc($result);
+ }
+
+ function num_rows($result) {
+ return $this->adapter->num_rows($result);
+ }
+
+ function fetch_result($result, $row, $param) {
+ return $this->adapter->fetch_result($result, $row, $param);
+ }
+
+ function close() {
+ return $this->adapter->close();
+ }
+
+ function affected_rows($result) {
+ return $this->adapter->affected_rows($result);
+ }
+
+ function last_error() {
+ return $this->adapter->last_error();
+ }
+
+}
+?>
diff --git a/classes/db/mysql.php b/classes/db/mysql.php
new file mode 100644
index 000000000..aab05aca2
--- /dev/null
+++ b/classes/db/mysql.php
@@ -0,0 +1,73 @@
+<?php
+class Db_Mysql implements IDb {
+ private $link;
+
+ function connect($host, $user, $pass, $db, $port) {
+ $this->link = mysql_connect($host, $user, $pass);
+
+ if ($this->link) {
+ $result = mysql_select_db($db, $this->link);
+ if (!$result) {
+ die("Can't select DB: " . mysql_error($this->link));
+ }
+
+ $this->init();
+
+ return $this->link;
+ } else {
+ die("Unable to connect to database (as $user to $host, database $db): " . mysql_error());
+ }
+ }
+
+ function escape_string($s, $strip_tags = true) {
+ if ($strip_tags) $s = strip_tags($s);
+
+ return mysql_real_escape_string($s, $this->link);
+ }
+
+ function query($query, $die_on_error = true) {
+ $result = mysql_query($query, $this->link);
+ if (!$result) {
+ user_error("Query $query failed: " . ($this->link ? mysql_error($this->link) : "No connection"),
+ $die_on_error ? E_USER_ERROR : E_USER_WARNING);
+ }
+ return $result;
+ }
+
+ function fetch_assoc($result) {
+ return mysql_fetch_assoc($result);
+ }
+
+
+ function num_rows($result) {
+ return mysql_num_rows($result);
+ }
+
+ function fetch_result($result, $row, $param) {
+ return mysql_result($result, $row, $param);
+ }
+
+ function close() {
+ return mysql_close($this->link);
+ }
+
+ function affected_rows($result) {
+ return mysql_affected_rows($this->link);
+ }
+
+ function last_error() {
+ return mysql_error();
+ }
+
+ function init() {
+ $this->query("SET time_zone = '+0:0'");
+
+ if (defined('MYSQL_CHARSET') && MYSQL_CHARSET) {
+ $this->query("SET NAMES " . MYSQL_CHARSET);
+ }
+
+ return true;
+ }
+
+}
+?>
diff --git a/classes/db/mysqli.php b/classes/db/mysqli.php
new file mode 100644
index 000000000..550df6f15
--- /dev/null
+++ b/classes/db/mysqli.php
@@ -0,0 +1,77 @@
+<?php
+class Db_Mysqli implements IDb {
+ private $link;
+
+ function connect($host, $user, $pass, $db, $port) {
+ if ($port)
+ $this->link = mysqli_connect($host, $user, $pass, $db, $port);
+ else
+ $this->link = mysqli_connect($host, $user, $pass, $db);
+
+ if ($this->link) {
+ $this->init();
+
+ return $this->link;
+ } else {
+ die("Unable to connect to database (as $user to $host, database $db): " . mysqli_error());
+ }
+ }
+
+ function escape_string($s, $strip_tags = true) {
+ if ($strip_tags) $s = strip_tags($s);
+
+ return mysqli_real_escape_string($this->link, $s);
+ }
+
+ function query($query, $die_on_error = true) {
+ $result = mysqli_query($this->link, $query);
+ if (!$result) {
+ user_error("Query $query failed: " . ($this->link ? mysqli_error($this->link) : "No connection"),
+ $die_on_error ? E_USER_ERROR : E_USER_WARNING);
+ }
+
+ return $result;
+ }
+
+ function fetch_assoc($result) {
+ return mysqli_fetch_assoc($result);
+ }
+
+
+ function num_rows($result) {
+ return mysqli_num_rows($result);
+ }
+
+ function fetch_result($result, $row, $param) {
+ if (mysqli_data_seek($result, $row)) {
+ $line = mysqli_fetch_assoc($result);
+ return $line[$param];
+ } else {
+ return false;
+ }
+ }
+
+ function close() {
+ return mysqli_close($this->link);
+ }
+
+ function affected_rows($result) {
+ return mysqli_affected_rows($this->link);
+ }
+
+ function last_error() {
+ return mysqli_error();
+ }
+
+ function init() {
+ $this->query("SET time_zone = '+0:0'");
+
+ if (defined('MYSQL_CHARSET') && MYSQL_CHARSET) {
+ $this->query("SET NAMES " . MYSQL_CHARSET);
+ }
+
+ return true;
+ }
+
+}
+?>
diff --git a/classes/db/pdo.php b/classes/db/pdo.php
new file mode 100644
index 000000000..126f5150a
--- /dev/null
+++ b/classes/db/pdo.php
@@ -0,0 +1,100 @@
+<?php
+class Db_PDO implements IDb {
+ private $pdo;
+
+ function connect($host, $user, $pass, $db, $port) {
+ $connstr = DB_TYPE . ":host=$host;dbname=$db";
+
+ if (DB_TYPE == "mysql") $connstr .= ";charset=utf8";
+
+ try {
+ $this->pdo = new PDO($connstr, $user, $pass);
+ $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+ $this->init();
+ } catch (PDOException $e) {
+ die($e->getMessage());
+ }
+
+ return $this->pdo;
+ }
+
+ function escape_string($s, $strip_tags = true) {
+ if ($strip_tags) $s = strip_tags($s);
+
+ $qs = $this->pdo->quote($s);
+
+ return mb_substr($qs, 1, mb_strlen($qs)-2);
+ }
+
+ function query($query, $die_on_error = true) {
+ try {
+ return new Db_Stmt($this->pdo->query($query));
+ } catch (PDOException $e) {
+ user_error($e->getMessage(), $die_on_error ? E_USER_ERROR : E_USER_WARNING);
+ }
+ }
+
+ function fetch_assoc($result) {
+ try {
+ if ($result) {
+ return $result->fetch();
+ } else {
+ return null;
+ }
+ } catch (PDOException $e) {
+ user_error($e->getMessage(), E_USER_WARNING);
+ }
+ }
+
+ function num_rows($result) {
+ try {
+ if ($result) {
+ return $result->rowCount();
+ } else {
+ return false;
+ }
+ } catch (PDOException $e) {
+ user_error($e->getMessage(), E_USER_WARNING);
+ }
+ }
+
+ function fetch_result($result, $row, $param) {
+ return $result->fetch_result($row, $param);
+ }
+
+ function close() {
+ $this->pdo = null;
+ }
+
+ function affected_rows($result) {
+ try {
+ if ($result) {
+ return $result->rowCount();
+ } else {
+ return null;
+ }
+ } catch (PDOException $e) {
+ user_error($e->getMessage(), E_USER_WARNING);
+ }
+ }
+
+ function last_error() {
+ return join(" ", $this->pdo->errorInfo());
+ }
+
+ function init() {
+ switch (DB_TYPE) {
+ case "pgsql":
+ $this->query("set client_encoding = 'UTF-8'");
+ $this->query("set datestyle = 'ISO, european'");
+ $this->query("set TIME ZONE 0");
+ case "mysql":
+ $this->query("SET time_zone = '+0:0'");
+ return;
+ }
+
+ return true;
+ }
+
+}
+?>
diff --git a/classes/db/pgsql.php b/classes/db/pgsql.php
new file mode 100644
index 000000000..4d860790b
--- /dev/null
+++ b/classes/db/pgsql.php
@@ -0,0 +1,82 @@
+<?php
+class Db_Pgsql implements IDb {
+ private $link;
+
+ function connect($host, $user, $pass, $db, $port) {
+ $string = "dbname=$db user=$user";
+
+ if ($pass) {
+ $string .= " password=$pass";
+ }
+
+ if ($host) {
+ $string .= " host=$host";
+ }
+
+ if (is_numeric($port) && $port > 0) {
+ $string = "$string port=" . $port;
+ }
+
+ $this->link = pg_connect($string);
+
+ if (!$this->link) {
+ die("Unable to connect to database (as $user to $host, database $db):" . pg_last_error());
+ }
+
+ $this->init();
+
+ return $this->link;
+ }
+
+ function escape_string($s, $strip_tags = true) {
+ if ($strip_tags) $s = strip_tags($s);
+
+ return pg_escape_string($s);
+ }
+
+ function query($query, $die_on_error = true) {
+ $result = pg_query($query);
+
+ if (!$result) {
+ $query = htmlspecialchars($query); // just in case
+ user_error("Query $query failed: " . ($this->link ? pg_last_error($this->link) : "No connection"),
+ $die_on_error ? E_USER_ERROR : E_USER_WARNING);
+ }
+ return $result;
+ }
+
+ function fetch_assoc($result) {
+ return pg_fetch_assoc($result);
+ }
+
+
+ function num_rows($result) {
+ return pg_num_rows($result);
+ }
+
+ function fetch_result($result, $row, $param) {
+ return pg_fetch_result($result, $row, $param);
+ }
+
+ function close() {
+ return pg_close($this->link);
+ }
+
+ function affected_rows($result) {
+ return pg_affected_rows($result);
+ }
+
+ function last_error() {
+ return pg_last_error($this->link);
+ }
+
+ function init() {
+ $this->query("set client_encoding = 'UTF-8'");
+ pg_set_client_encoding("UNICODE");
+ $this->query("set datestyle = 'ISO, european'");
+ $this->query("set TIME ZONE 0");
+
+ return true;
+ }
+}
+?>
diff --git a/classes/db/prefs.php b/classes/db/prefs.php
new file mode 100644
index 000000000..26fb4666b
--- /dev/null
+++ b/classes/db/prefs.php
@@ -0,0 +1,190 @@
+<?php
+class Db_Prefs {
+ private $dbh;
+ private static $instance;
+ private $cache;
+
+ function __construct() {
+ $this->dbh = Db::get();
+ $this->cache = array();
+
+ if ($_SESSION["uid"]) $this->cache();
+ }
+
+ private function __clone() {
+ //
+ }
+
+ public static function get() {
+ if (self::$instance == null)
+ self::$instance = new self();
+
+ return self::$instance;
+ }
+
+ function cache() {
+ $profile = false;
+
+ $user_id = $_SESSION["uid"];
+ @$profile = $_SESSION["profile"];
+
+ if ($profile) {
+ $profile_qpart = "profile = '$profile' AND";
+ } else {
+ $profile_qpart = "profile IS NULL AND";
+ }
+
+ if (get_schema_version() < 63) $profile_qpart = "";
+
+ $result = db_query("SELECT
+ value,ttrss_prefs_types.type_name as type_name,ttrss_prefs.pref_name AS pref_name
+ FROM
+ ttrss_user_prefs,ttrss_prefs,ttrss_prefs_types
+ WHERE
+ $profile_qpart
+ ttrss_prefs.pref_name NOT LIKE '_MOBILE%' AND
+ ttrss_prefs_types.id = type_id AND
+ owner_uid = '$user_id' AND
+ ttrss_user_prefs.pref_name = ttrss_prefs.pref_name");
+
+ while ($line = db_fetch_assoc($result)) {
+ if ($user_id == $_SESSION["uid"]) {
+ $pref_name = $line["pref_name"];
+
+ $this->cache[$pref_name]["type"] = $line["type_name"];
+ $this->cache[$pref_name]["value"] = $line["value"];
+ }
+ }
+ }
+
+ function read($pref_name, $user_id = false, $die_on_error = false) {
+
+ $pref_name = db_escape_string($pref_name);
+ $profile = false;
+
+ if (!$user_id) {
+ $user_id = $_SESSION["uid"];
+ @$profile = $_SESSION["profile"];
+ } else {
+ $user_id = sprintf("%d", $user_id);
+ }
+
+ if (isset($this->cache[$pref_name])) {
+ $tuple = $this->cache[$pref_name];
+ return $this->convert($tuple["value"], $tuple["type"]);
+ }
+
+ if ($profile) {
+ $profile_qpart = "profile = '$profile' AND";
+ } else {
+ $profile_qpart = "profile IS NULL AND";
+ }
+
+ if (get_schema_version() < 63) $profile_qpart = "";
+
+ $result = db_query("SELECT
+ value,ttrss_prefs_types.type_name as type_name
+ FROM
+ ttrss_user_prefs,ttrss_prefs,ttrss_prefs_types
+ WHERE
+ $profile_qpart
+ ttrss_user_prefs.pref_name = '$pref_name' AND
+ ttrss_prefs_types.id = type_id AND
+ owner_uid = '$user_id' AND
+ ttrss_user_prefs.pref_name = ttrss_prefs.pref_name");
+
+ if (db_num_rows($result) > 0) {
+ $value = db_fetch_result($result, 0, "value");
+ $type_name = db_fetch_result($result, 0, "type_name");
+
+ if ($user_id == $_SESSION["uid"]) {
+ $this->cache[$pref_name]["type"] = $type_name;
+ $this->cache[$pref_name]["value"] = $value;
+ }
+
+ return $this->convert($value, $type_name);
+
+ } else {
+ user_error("Fatal error, unknown preferences key: $pref_name", $die_on_error ? E_USER_ERROR : E_USER_WARNING);
+ return null;
+ }
+ }
+
+ function convert($value, $type_name) {
+ if ($type_name == "bool") {
+ return $value == "true";
+ } else if ($type_name == "integer") {
+ return (int)$value;
+ } else {
+ return $value;
+ }
+ }
+
+ function write($pref_name, $value, $user_id = false, $strip_tags = true) {
+ $pref_name = db_escape_string($pref_name);
+ $value = db_escape_string($value, $strip_tags);
+
+ if (!$user_id) {
+ $user_id = $_SESSION["uid"];
+ @$profile = $_SESSION["profile"];
+ } else {
+ $user_id = sprintf("%d", $user_id);
+ $prefs_cache = false;
+ }
+
+ if ($profile) {
+ $profile_qpart = "AND profile = '$profile'";
+ } else {
+ $profile_qpart = "AND profile IS NULL";
+ }
+
+ if (get_schema_version() < 63) $profile_qpart = "";
+
+ $type_name = "";
+ $current_value = "";
+
+ if (isset($this->cache[$pref_name])) {
+ $type_name = $this->cache[$pref_name]["type"];
+ $current_value = $this->cache[$pref_name]["value"];
+ }
+
+ if (!$type_name) {
+ $result = db_query("SELECT type_name
+ FROM ttrss_prefs,ttrss_prefs_types
+ WHERE pref_name = '$pref_name' AND type_id = ttrss_prefs_types.id");
+
+ if (db_num_rows($result) > 0)
+ $type_name = db_fetch_result($result, 0, "type_name");
+ } else if ($current_value == $value) {
+ return;
+ }
+
+ if ($type_name) {
+ if ($type_name == "bool") {
+ if ($value == "1" || $value == "true") {
+ $value = "true";
+ } else {
+ $value = "false";
+ }
+ } else if ($type_name == "integer") {
+ $value = sprintf("%d", $value);
+ }
+
+ if ($pref_name == 'USER_TIMEZONE' && $value == '') {
+ $value = 'UTC';
+ }
+
+ db_query("UPDATE ttrss_user_prefs SET
+ value = '$value' WHERE pref_name = '$pref_name'
+ $profile_qpart
+ AND owner_uid = " . $_SESSION["uid"]);
+
+ if ($user_id == $_SESSION["uid"]) {
+ $this->cache[$pref_name]["type"] = $type_name;
+ $this->cache[$pref_name]["value"] = $value;
+ }
+ }
+ }
+
+}
+?>
diff --git a/classes/db/stmt.php b/classes/db/stmt.php
new file mode 100644
index 000000000..4d3596ef1
--- /dev/null
+++ b/classes/db/stmt.php
@@ -0,0 +1,32 @@
+<?php
+class Db_Stmt {
+ private $stmt;
+ private $cache;
+
+ function __construct($stmt) {
+ $this->stmt = $stmt;
+ $this->cache = false;
+ }
+
+ function fetch_result($row, $param) {
+ if (!$this->cache) {
+ $this->cache = $this->stmt->fetchAll();
+ }
+
+ if (isset($this->cache[$row])) {
+ return $this->cache[$row][$param];
+ } else {
+ user_error("Unable to jump to row $row", E_USER_WARNING);
+ return false;
+ }
+ }
+
+ function rowCount() {
+ return $this->stmt->rowCount();
+ }
+
+ function fetch() {
+ return $this->stmt->fetch();
+ }
+}
+?>
diff --git a/classes/dbupdater.php b/classes/dbupdater.php
new file mode 100644
index 000000000..a319da03d
--- /dev/null
+++ b/classes/dbupdater.php
@@ -0,0 +1,65 @@
+<?php
+class DbUpdater {
+
+ private $dbh;
+ private $db_type;
+ private $need_version;
+
+ function __construct($dbh, $db_type, $need_version) {
+ $this->dbh = $dbh;
+ $this->db_type = $db_type;
+ $this->need_version = (int) $need_version;
+ }
+
+ function getSchemaVersion() {
+ $result = db_query("SELECT schema_version FROM ttrss_version");
+ return (int) db_fetch_result($result, 0, "schema_version");
+ }
+
+ function isUpdateRequired() {
+ return $this->getSchemaVersion() < $this->need_version;
+ }
+
+ function getSchemaLines($version) {
+ $filename = "schema/versions/".$this->db_type."/$version.sql";
+
+ if (file_exists($filename)) {
+ return explode(";", preg_replace("/[\r\n]/", "", file_get_contents($filename)));
+ } else {
+ return false;
+ }
+ }
+
+ function performUpdateTo($version) {
+ if ($this->getSchemaVersion() == $version - 1) {
+
+ $lines = $this->getSchemaLines($version);
+
+ if (is_array($lines)) {
+
+ db_query("BEGIN");
+
+ foreach ($lines as $line) {
+ if (strpos($line, "--") !== 0 && $line) {
+ db_query($line);
+ }
+ }
+
+ $db_version = $this->getSchemaVersion();
+
+ if ($db_version == $version) {
+ db_query("COMMIT");
+ return true;
+ } else {
+ db_query("ROLLBACK");
+ return false;
+ }
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+
+} ?>
diff --git a/classes/dlg.php b/classes/dlg.php
index 74eb9f633..cfa960d9a 100644
--- a/classes/dlg.php
+++ b/classes/dlg.php
@@ -4,35 +4,29 @@ class Dlg extends Handler_Protected {
function before($method) {
if (parent::before($method)) {
- header("Content-Type: text/xml; charset=utf-8");
- $this->param = db_escape_string($_REQUEST["param"]);
- print "<dlg>";
+ header("Content-Type: text/html"); # required for iframe
+
+ $this->param = $this->dbh->escape_string($_REQUEST["param"]);
return true;
}
return false;
}
- function after() {
- print "</dlg>";
- }
-
function importOpml() {
- header("Content-Type: text/html"); # required for iframe
-
print __("If you have imported labels and/or filters, you might need to reload preferences to see your new data.") . "</p>";
print "<div class=\"prefFeedOPMLHolder\">";
$owner_uid = $_SESSION["uid"];
- db_query($this->link, "BEGIN");
+ $this->dbh->query("BEGIN");
print "<ul class='nomarks'>";
- $opml = new Opml($this->link, $_REQUEST);
+ $opml = new Opml($_REQUEST);
$opml->opml_import($_SESSION["uid"]);
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
print "</ul>";
print "</div>";
@@ -48,127 +42,8 @@ class Dlg extends Handler_Protected {
//return;
}
- function editPrefProfiles() {
- print "<div dojoType=\"dijit.Toolbar\">";
-
- print "<div dojoType=\"dijit.form.DropDownButton\">".
- "<span>" . __('Select')."</span>";
- print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">";
- print "<div onclick=\"selectTableRows('prefFeedProfileList', 'all')\"
- dojoType=\"dijit.MenuItem\">".__('All')."</div>";
- print "<div onclick=\"selectTableRows('prefFeedProfileList', 'none')\"
- dojoType=\"dijit.MenuItem\">".__('None')."</div>";
- print "</div></div>";
-
- print "<div style=\"float : right\">";
-
- print "<input name=\"newprofile\" dojoType=\"dijit.form.ValidationTextBox\"
- required=\"1\">
- <button dojoType=\"dijit.form.Button\"
- onclick=\"dijit.byId('profileEditDlg').addProfile()\">".
- __('Create profile')."</button></div>";
-
- print "</div>";
-
- $result = db_query($this->link, "SELECT title,id FROM ttrss_settings_profiles
- WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
-
- print "<div class=\"prefFeedCatHolder\">";
-
- print "<form id=\"profile_edit_form\" onsubmit=\"return false\">";
-
- print "<table width=\"100%\" class=\"prefFeedProfileList\"
- cellspacing=\"0\" id=\"prefFeedProfileList\">";
-
- print "<tr class=\"placeholder\" id=\"FCATR-0\">"; #odd
-
- print "<td width='5%' align='center'><input
- id='FCATC-0'
- onclick='toggleSelectRow2(this);'
- dojoType=\"dijit.form.CheckBox\"
- type=\"checkbox\"></td>";
-
- if (!$_SESSION["profile"]) {
- $is_active = __("(active)");
- } else {
- $is_active = "";
- }
-
- print "<td><span>" .
- __("Default profile") . " $is_active</span></td>";
-
- print "</tr>";
-
- $lnum = 1;
-
- while ($line = db_fetch_assoc($result)) {
-
- $class = ($lnum % 2) ? "even" : "odd";
-
- $profile_id = $line["id"];
- $this_row_id = "id=\"FCATR-$profile_id\"";
-
- print "<tr class=\"placeholder\" $this_row_id>";
-
- $edit_title = htmlspecialchars($line["title"]);
-
- print "<td width='5%' align='center'><input
- onclick='toggleSelectRow2(this);'
- id='FCATC-$profile_id'
- dojoType=\"dijit.form.CheckBox\"
- type=\"checkbox\"></td>";
-
- if ($_SESSION["profile"] == $line["id"]) {
- $is_active = __("(active)");
- } else {
- $is_active = "";
- }
-
- print "<td><span dojoType=\"dijit.InlineEditBox\"
- width=\"300px\" autoSave=\"false\"
- profile-id=\"$profile_id\">" . $edit_title .
- "<script type=\"dojo/method\" event=\"onChange\" args=\"item\">
- var elem = this;
- dojo.xhrPost({
- url: 'backend.php',
- content: {op: 'rpc', method: 'saveprofile',
- value: this.value,
- id: this.srcNodeRef.getAttribute('profile-id')},
- load: function(response) {
- elem.attr('value', response);
- }
- });
- </script>
- </span> $is_active</td>";
-
- print "</tr>";
-
- ++$lnum;
- }
-
- print "</table>";
- print "</form>";
- print "</div>";
-
- print "<div class='dlgButtons'>
- <div style='float : left'>
- <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('profileEditDlg').removeSelected()\">".
- __('Remove selected profiles')."</button>
- <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('profileEditDlg').activateProfile()\">".
- __('Activate profile')."</button>
- </div>";
-
- print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('profileEditDlg').hide()\">".
- __('Close this window')."</button>";
- print "</div>";
-
- }
-
function pubOPMLUrl() {
- print "<title>".__('Public OPML URL')."</title>";
- print "<content><![CDATA[";
-
- $url_path = Opml::opml_publish_url($this->link);
+ $url_path = Opml::opml_publish_url();
print __("Your Public OPML URL is:");
@@ -185,15 +60,11 @@ class Dlg extends Handler_Protected {
__('Close this window')."</button>";
print "</div>";
- print "]]></content>";
//return;
}
function explainError() {
- print "<title>".__('Notice')."</title>";
- print "<content><![CDATA[";
-
print "<div class=\"errorExplained\">";
if ($this->param == 1) {
@@ -222,231 +93,11 @@ class Dlg extends Handler_Protected {
__('Close this window')."</button>";
print "</div>";
- print "]]></content>";
//return;
}
- function quickAddFeed() {
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"addfeed\">";
-
- print "<div class=\"dlgSec\">".__("Feed or site URL")."</div>";
- print "<div class=\"dlgSecCont\">";
-
- print "<div style='float : right'>
- <img style='display : none'
- id='feed_add_spinner' src='".
- theme_image($this->link, 'images/indicator_white.gif')."'></div>";
-
- print "<input style=\"font-size : 16px; width : 20em;\"
- placeHolder=\"".__("Feed or site URL")."\"
- dojoType=\"dijit.form.ValidationTextBox\" required=\"1\" name=\"feed\" id=\"feedDlg_feedUrl\">";
-
- print "<hr/>";
-
- if (get_pref($this->link, 'ENABLE_FEED_CATS')) {
- print __('Place in category:') . " ";
- print_feed_cat_select($this->link, "cat", false, 'dojoType="dijit.form.Select"');
- }
-
- print "</div>";
-
- print '<div id="feedDlg_feedsContainer" style="display : none">
-
- <div class="dlgSec">' . __('Available feeds') . '</div>
- <div class="dlgSecCont">'.
- '<select id="feedDlg_feedContainerSelect"
- dojoType="dijit.form.Select" size="3">
- <script type="dojo/method" event="onChange" args="value">
- dijit.byId("feedDlg_feedUrl").attr("value", value);
- </script>
- </select>'.
- '</div></div>';
-
- print "<div id='feedDlg_loginContainer' style='display : none'>
-
- <div class=\"dlgSec\">".__("Authentication")."</div>
- <div class=\"dlgSecCont\">".
-
- " <input dojoType=\"dijit.form.TextBox\" name='login'\"
- placeHolder=\"".__("Login")."\"
- style=\"width : 10em;\"> ".
- " <input
- placeHolder=\"".__("Password")."\"
- dojoType=\"dijit.form.TextBox\" type='password'
- style=\"width : 10em;\" name='pass'\">
- </div></div>";
-
-
- print "<div style=\"clear : both\">
- <input type=\"checkbox\" name=\"need_auth\" dojoType=\"dijit.form.CheckBox\" id=\"feedDlg_loginCheck\"
- onclick='checkboxToggleElement(this, \"feedDlg_loginContainer\")'>
- <label for=\"feedDlg_loginCheck\">".
- __('This feed requires authentication.')."</div>";
-
- print "</form>";
-
- print "<div class=\"dlgButtons\">
- <button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedAddDlg').execute()\">".__('Subscribe')."</button>";
-
- if (!(defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER)) {
- print "<button dojoType=\"dijit.form.Button\" onclick=\"return feedBrowser()\">".__('More feeds')."</button>";
- }
-
- print "<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedAddDlg').hide()\">".__('Cancel')."</button>
- </div>";
-
- //return;
- }
-
- function feedBrowser() {
- if (defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER) return;
-
- $browser_search = db_escape_string($_REQUEST["search"]);
-
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"updateFeedBrowser\">";
-
- print "<div dojoType=\"dijit.Toolbar\">
- <div style='float : right'>
- <img style='display : none'
- id='feed_browser_spinner' src='".
- theme_image($this->link, 'images/indicator_white.gif')."'>
- <input name=\"search\" dojoType=\"dijit.form.TextBox\" size=\"20\" type=\"search\"
- onchange=\"dijit.byId('feedBrowserDlg').update()\" value=\"$browser_search\">
- <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('feedBrowserDlg').update()\">".__('Search')."</button>
- </div>";
-
- print " <select name=\"mode\" dojoType=\"dijit.form.Select\" onchange=\"dijit.byId('feedBrowserDlg').update()\">
- <option value='1'>" . __('Popular feeds') . "</option>
- <option value='2'>" . __('Feed archive') . "</option>
- </select> ";
-
- print __("limit:");
-
- print " <select dojoType=\"dijit.form.Select\" name=\"limit\" onchange=\"dijit.byId('feedBrowserDlg').update()\">";
-
- foreach (array(25, 50, 100, 200) as $l) {
- $issel = ($l == $limit) ? "selected=\"1\"" : "";
- print "<option $issel value=\"$l\">$l</option>";
- }
-
- print "</select> ";
-
- print "</div>";
-
- $owner_uid = $_SESSION["uid"];
-
- require_once "feedbrowser.php";
-
- print "<ul class='browseFeedList' id='browseFeedList'>";
- print make_feed_browser($this->link, $search, 25);
- print "</ul>";
-
- print "<div align='center'>
- <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('feedBrowserDlg').execute()\">".__('Subscribe')."</button>
- <button dojoType=\"dijit.form.Button\" style='display : none' id='feed_archive_remove' onclick=\"dijit.byId('feedBrowserDlg').removeFromArchive()\">".__('Remove')."</button>
- <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('feedBrowserDlg').hide()\" >".__('Cancel')."</button></div>";
-
- }
-
- function search() {
- $this->params = explode(":", db_escape_string($_REQUEST["param"]), 2);
-
- $active_feed_id = sprintf("%d", $this->params[0]);
- $is_cat = $this->params[1] != "false";
-
- print "<div class=\"dlgSec\">".__('Look for')."</div>";
-
- print "<div class=\"dlgSecCont\">";
-
- print "<input dojoType=\"dijit.form.ValidationTextBox\"
- style=\"font-size : 16px; width : 20em;\"
- required=\"1\" name=\"query\" type=\"search\" value=''>";
-
- print "<hr/>".__('Limit search to:')." ";
-
- print "<select name=\"search_mode\" dojoType=\"dijit.form.Select\">
- <option value=\"all_feeds\">".__('All feeds')."</option>";
-
- $feed_title = getFeedTitle($this->link, $active_feed_id);
-
- if (!$is_cat) {
- $feed_cat_title = getFeedCatTitle($this->link, $active_feed_id);
- } else {
- $feed_cat_title = getCategoryTitle($this->link, $active_feed_id);
- }
-
- if ($active_feed_id && !$is_cat) {
- print "<option selected=\"1\" value=\"this_feed\">$feed_title</option>";
- } else {
- print "<option disabled=\"1\" value=\"false\">".__('This feed')."</option>";
- }
-
- if ($is_cat) {
- $cat_preselected = "selected=\"1\"";
- }
-
- if (get_pref($this->link, 'ENABLE_FEED_CATS') && ($active_feed_id > 0 || $is_cat)) {
- print "<option $cat_preselected value=\"this_cat\">$feed_cat_title</option>";
- } else {
- //print "<option disabled>".__('This category')."</option>";
- }
-
- print "</select>";
-
- print "</div>";
-
- print "<div class=\"dlgButtons\">";
-
- if (!SPHINX_ENABLED) {
- print "<div style=\"float : left\">
- <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/wiki/SearchSyntax\">Search syntax</a>
- </div>";
- }
-
- print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('searchDlg').execute()\">".__('Search')."</button>
- <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('searchDlg').hide()\">".__('Cancel')."</button>
- </div>";
- }
-
- function editArticleTags() {
-
- print __("Tags for this article (separated by commas):")."<br>";
-
- $tags = get_article_tags($this->link, $this->param);
-
- $tags_str = join(", ", $tags);
-
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$this->param\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"setArticleTags\">";
-
- print "<table width='100%'><tr><td>";
-
- print "<textarea dojoType=\"dijit.form.SimpleTextarea\" rows='4'
- style='font-size : 12px; width : 100%' id=\"tags_str\"
- name='tags_str'>$tags_str</textarea>
- <div class=\"autocomplete\" id=\"tags_choices\"
- style=\"display:none\"></div>";
-
- print "</td></tr></table>";
-
- print "<div class='dlgButtons'>";
-
- print "<button dojoType=\"dijit.form.Button\"
- onclick=\"dijit.byId('editTagsDlg').execute()\">".__('Save')."</button> ";
- print "<button dojoType=\"dijit.form.Button\"
- onclick=\"dijit.byId('editTagsDlg').hide()\">".__('Cancel')."</button>";
- print "</div>";
-
- }
-
function printTagCloud() {
- print "<title>".__('Tag Cloud')."</title>";
- print "<content><![CDATA[";
-
print "<div class=\"tagCloudContainer\">";
// from here: http://www.roscripts.com/Create_tag_cloud-71.html
@@ -455,15 +106,15 @@ class Dlg extends Handler_Protected {
FROM ttrss_tags WHERE owner_uid = ".$_SESSION["uid"]."
GROUP BY tag_name ORDER BY count DESC LIMIT 50";
- $result = db_query($this->link, $query);
+ $result = $this->dbh->query($query);
$tags = array();
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$tags[$line["tag_name"]] = $line["count"];
}
- if( count($tags) == 0 ){ return; }
+ if(count($tags) == 0 ){ return; }
ksort($tags);
@@ -508,14 +159,10 @@ class Dlg extends Handler_Protected {
__('Close this window')."</button>";
print "</div>";
- print "]]></content>";
}
function printTagSelect() {
- print "<title>" . __('Select item(s) by tags') . "</title>";
- print "<content><![CDATA[";
-
print __("Match:"). "&nbsp;" .
"<input class=\"noborder\" dojoType=\"dijit.form.RadioButton\" type=\"radio\" checked value=\"any\" name=\"tag_mode\" id=\"tag_mode_any\">";
print "<label for=\"tag_mode_any\">".__("Any")."</label>";
@@ -524,10 +171,10 @@ class Dlg extends Handler_Protected {
print "<label for=\"tag_mode_all\">".__("All tags.")."</input>";
print "<select id=\"all_tags\" name=\"all_tags\" title=\"" . __('Which Tags?') . "\" multiple=\"multiple\" size=\"10\" style=\"width : 100%\">";
- $result = db_query($this->link, "SELECT DISTINCT tag_name FROM ttrss_tags WHERE owner_uid = ".$_SESSION['uid']."
+ $result = $this->dbh->query("SELECT DISTINCT tag_name FROM ttrss_tags WHERE owner_uid = ".$_SESSION['uid']."
AND LENGTH(tag_name) <= 30 ORDER BY tag_name ASC");
- while ($row = db_fetch_assoc($result)) {
+ while ($row = $this->dbh->fetch_assoc($result)) {
$tmp = htmlspecialchars($row["tag_name"]);
print "<option value=\"" . str_replace(" ", "%20", $tmp) . "\">$tmp</option>";
}
@@ -543,23 +190,19 @@ class Dlg extends Handler_Protected {
__('Close this window') . "</button>";
print "</div>";
- print "]]></content>";
}
function generatedFeed() {
- print "<title>".__('View as RSS')."</title>";
- print "<content><![CDATA[";
-
$this->params = explode(":", $this->param, 3);
- $feed_id = db_escape_string($this->params[0]);
+ $feed_id = $this->dbh->escape_string($this->params[0]);
$is_cat = (bool) $this->params[1];
- $key = get_feed_access_key($this->link, $feed_id, $is_cat);
+ $key = get_feed_access_key($feed_id, $is_cat);
$url_path = htmlspecialchars($this->params[2]) . "&key=" . $key;
- print "<div class=\"dialogNotice\">" . __("You can view this feed as RSS using the following URL:") . "</div>";
+ print "<h2>".__("You can view this feed as RSS using the following URL:")."</h2>";
print "<div class=\"tagCloudContainer\">";
print "<a id='gen_feed_url' href='$url_path' target='_blank'>$url_path</a>";
@@ -574,14 +217,13 @@ class Dlg extends Handler_Protected {
__('Close this window')."</button>";
print "</div>";
- print "]]></content>";
//return;
}
function newVersion() {
- $version_data = check_for_update($this->link);
+ $version_data = check_for_update();
$version = $version_data['version'];
$id = $version_data['version_id'];
@@ -600,7 +242,7 @@ class Dlg extends Handler_Protected {
print "<div style='text-align : center'>";
print "<button dojoType=\"dijit.form.Button\"
- onclick=\"return window.open('$details')\">".__("Details")."</button>";
+ onclick=\"return window.open('$details')\">".__("See the release notes")."</button>";
print "<button dojoType=\"dijit.form.Button\"
onclick=\"return window.open('$download')\">".__("Download")."</button>";
print "<button dojoType=\"dijit.form.Button\"
@@ -625,132 +267,6 @@ class Dlg extends Handler_Protected {
}
- function customizeCSS() {
- $value = get_pref($this->link, "USER_STYLESHEET");
-
- $value = str_replace("<br/>", "\n", $value);
-
- print "<div class=\"dialogNotice\">";
- print T_sprintf("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">This file</a> can be used as a baseline.", "tt-rss.css");
- print "</div>";
-
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"setpref\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"key\" value=\"USER_STYLESHEET\">";
-
- print "<table width='100%'><tr><td>";
- print "<textarea dojoType=\"dijit.form.SimpleTextarea\"
- style='font-size : 12px; width : 100%; height: 200px;'
- placeHolder='body#ttrssMain { font-size : 14px; };'
- name='value'>$value</textarea>";
- print "</td></tr></table>";
-
- print "<div class='dlgButtons'>";
- print "<button dojoType=\"dijit.form.Button\"
- onclick=\"dijit.byId('cssEditDlg').execute()\">".__('Save')."</button> ";
- print "<button dojoType=\"dijit.form.Button\"
- onclick=\"dijit.byId('cssEditDlg').hide()\">".__('Cancel')."</button>";
- print "</div>";
-
- }
-
- function addInstance() {
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-instances\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"add\">";
-
- print "<div class=\"dlgSec\">".__("Instance")."</div>";
-
- print "<div class=\"dlgSecCont\">";
-
- /* URL */
-
- print __("URL:") . " ";
-
- print "<input dojoType=\"dijit.form.ValidationTextBox\" required=\"1\"
- placeHolder=\"".__("Instance URL")."\"
- regExp='^(http|https)://.*'
- style=\"font-size : 16px; width: 20em\" name=\"access_url\">";
-
- print "<hr/>";
-
- $access_key = sha1(uniqid(rand(), true));
-
- /* Access key */
-
- print __("Access key:") . " ";
-
- print "<input dojoType=\"dijit.form.ValidationTextBox\" required=\"1\"
- placeHolder=\"".__("Access key")."\" regExp='\w{40}'
- style=\"width: 20em\" name=\"access_key\" id=\"instance_add_key\"
- value=\"$access_key\">";
-
- print "<p class='insensitive'>" . __("Use one access key for both linked instances.");
-
- print "</div>";
-
- print "<div class=\"dlgButtons\">
- <div style='float : left'>
- <button dojoType=\"dijit.form.Button\"
- onclick=\"return dijit.byId('instanceAddDlg').regenKey()\">".
- __('Generate new key')."</button>
- </div>
- <button dojoType=\"dijit.form.Button\"
- onclick=\"return dijit.byId('instanceAddDlg').execute()\">".
- __('Create link')."</button>
- <button dojoType=\"dijit.form.Button\"
- onclick=\"return dijit.byId('instanceAddDlg').hide()\"\">".
- __('Cancel')."</button></div>";
-
- return;
- }
-
- function batchSubscribe() {
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"batchaddfeeds\">";
-
- print "<table width='100%'><tr><td>
- ".__("Add one valid RSS feed per line (no feed detection is done)")."
- </td><td align='right'>";
- if (get_pref($this->link, 'ENABLE_FEED_CATS')) {
- print __('Place in category:') . " ";
- print_feed_cat_select($this->link, "cat", false, 'dojoType="dijit.form.Select"');
- }
- print "</td></tr><tr><td colspan='2'>";
- print "<textarea
- style='font-size : 12px; width : 100%; height: 200px;'
- placeHolder=\"".__("Feeds to subscribe, One per line")."\"
- dojoType=\"dijit.form.SimpleTextarea\" required=\"1\" name=\"feeds\"></textarea>";
-
- print "</td></tr><tr><td colspan='2'>";
-
- print "<div id='feedDlg_loginContainer' style='display : none'>
- " .
- " <input dojoType=\"dijit.form.TextBox\" name='login'\"
- placeHolder=\"".__("Login")."\"
- style=\"width : 10em;\"> ".
- " <input
- placeHolder=\"".__("Password")."\"
- dojoType=\"dijit.form.TextBox\" type='password'
- style=\"width : 10em;\" name='pass'\">".
- "</div>";
-
- print "</td></tr><tr><td colspan='2'>";
-
- print "<div style=\"clear : both\">
- <input type=\"checkbox\" name=\"need_auth\" dojoType=\"dijit.form.CheckBox\" id=\"feedDlg_loginCheck\"
- onclick='checkboxToggleElement(this, \"feedDlg_loginContainer\")'>
- <label for=\"feedDlg_loginCheck\">".
- __('Feeds require authentication.')."</div>";
-
- print "</form>";
-
- print "</td></tr></table>";
-
- print "<div class=\"dlgButtons\">
- <button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('batchSubDlg').execute()\">".__('Subscribe')."</button>
- <button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('batchSubDlg').hide()\">".__('Cancel')."</button>
- </div>";
- }
}
?>
diff --git a/classes/feedenclosure.php b/classes/feedenclosure.php
new file mode 100644
index 000000000..d610dd7c8
--- /dev/null
+++ b/classes/feedenclosure.php
@@ -0,0 +1,7 @@
+<?php
+class FeedEnclosure {
+ public $link;
+ public $type;
+ public $length;
+}
+?>
diff --git a/classes/feeditem.php b/classes/feeditem.php
new file mode 100644
index 000000000..e64a13fdc
--- /dev/null
+++ b/classes/feeditem.php
@@ -0,0 +1,15 @@
+<?php
+abstract class FeedItem {
+ abstract function get_id();
+ abstract function get_date();
+ abstract function get_link();
+ abstract function get_title();
+ abstract function get_description();
+ abstract function get_content();
+ abstract function get_comments_url();
+ abstract function get_comments_count();
+ abstract function get_categories();
+ abstract function get_enclosures();
+ abstract function get_author();
+}
+?>
diff --git a/classes/feeditem/atom.php b/classes/feeditem/atom.php
new file mode 100644
index 000000000..b981dc319
--- /dev/null
+++ b/classes/feeditem/atom.php
@@ -0,0 +1,109 @@
+<?php
+class FeedItem_Atom extends FeedItem_Common {
+ function get_id() {
+ $id = $this->elem->getElementsByTagName("id")->item(0);
+
+ if ($id) {
+ return $id->nodeValue;
+ } else {
+ return $this->get_link();
+ }
+ }
+
+ function get_date() {
+ $updated = $this->elem->getElementsByTagName("updated")->item(0);
+
+ if ($updated) {
+ return strtotime($updated->nodeValue);
+ }
+ }
+
+ function get_link() {
+ $links = $this->elem->getElementsByTagName("link");
+
+ foreach ($links as $link) {
+ if ($link && $link->hasAttribute("href") && (!$link->hasAttribute("rel")
+ || $link->getAttribute("rel") == "alternate")) {
+ return $link->getAttribute("href");
+ }
+ }
+ }
+
+ function get_title() {
+ $title = $this->elem->getElementsByTagName("title")->item(0);
+
+ if ($title) {
+ return $title->nodeValue;
+ }
+ }
+
+ function get_content() {
+ $content = $this->elem->getElementsByTagName("content")->item(0);
+
+ if ($content) {
+ return $content->nodeValue;
+ }
+ }
+
+ function get_description() {
+ $summary = $this->elem->getElementsByTagName("summary")->item(0);
+
+ if ($summary) {
+ return $summary->nodeValue;
+ }
+ }
+
+ function get_categories() {
+ $categories = $this->elem->getElementsByTagName("category");
+ $cats = array();
+
+ foreach ($categories as $cat) {
+ if ($cat->hasAttribute("term"))
+ array_push($cats, $cat->getAttribute("term"));
+ }
+
+ $categories = $this->xpath->query("dc:subject", $this->elem);
+
+ foreach ($categories as $cat) {
+ array_push($cats, $cat->nodeValue);
+ }
+
+ return $cats;
+ }
+
+ function get_enclosures() {
+ $links = $this->elem->getElementsByTagName("link");
+
+ $encs = array();
+
+ foreach ($links as $link) {
+ if ($link && $link->hasAttribute("href") && $link->hasAttribute("rel")) {
+ if ($link->getAttribute("rel") == "enclosure") {
+ $enc = new FeedEnclosure();
+
+ $enc->type = $link->getAttribute("type");
+ $enc->link = $link->getAttribute("href");
+ $enc->length = $link->getAttribute("length");
+
+ array_push($encs, $enc);
+ }
+ }
+ }
+
+ $enclosures = $this->xpath->query("media:content", $this->elem);
+
+ foreach ($enclosures as $enclosure) {
+ $enc = new FeedEnclosure();
+
+ $enc->type = $enclosure->getAttribute("type");
+ $enc->link = $enclosure->getAttribute("url");
+ $enc->length = $enclosure->getAttribute("length");
+
+ array_push($encs, $enc);
+ }
+
+ return $encs;
+ }
+
+}
+?>
diff --git a/classes/feeditem/common.php b/classes/feeditem/common.php
new file mode 100644
index 000000000..0787a42cb
--- /dev/null
+++ b/classes/feeditem/common.php
@@ -0,0 +1,51 @@
+<?php
+abstract class FeedItem_Common extends FeedItem {
+ protected $elem;
+ protected $xpath;
+ protected $doc;
+
+ function __construct($elem, $doc, $xpath) {
+ $this->elem = $elem;
+ $this->xpath = $xpath;
+ $this->doc = $doc;
+ }
+
+ function get_author() {
+ $author = $this->elem->getElementsByTagName("author")->item(0);
+
+ if ($author) {
+ $name = $author->getElementsByTagName("name")->item(0);
+
+ if ($name) return $name->nodeValue;
+
+ $email = $author->getElementsByTagName("email")->item(0);
+
+ if ($email) return $email->nodeValue;
+
+ if ($author->nodeValue)
+ return $author->nodeValue;
+ }
+
+ $author = $this->xpath->query("dc:creator", $this->elem)->item(0);
+
+ if ($author) {
+ return $author->nodeValue;
+ }
+ }
+
+ // todo
+ function get_comments_url() {
+
+ }
+
+ function get_comments_count() {
+ $comments = $this->xpath->query("slash:comments", $this->elem)->item(0);
+
+ if ($comments) {
+ return $comments->nodeValue;
+ }
+ }
+
+
+}
+?>
diff --git a/classes/feeditem/rss.php b/classes/feeditem/rss.php
new file mode 100644
index 000000000..2f363b4f6
--- /dev/null
+++ b/classes/feeditem/rss.php
@@ -0,0 +1,107 @@
+<?php
+class FeedItem_RSS extends FeedItem_Common {
+ function get_id() {
+ $id = $this->elem->getElementsByTagName("guid")->item(0);
+
+ if ($id) {
+ return $id->nodeValue;
+ } else {
+ return $this->get_link();
+ }
+ }
+
+ function get_date() {
+ $pubDate = $this->elem->getElementsByTagName("pubDate")->item(0);
+
+ if ($pubDate) {
+ return strtotime($pubDate->nodeValue);
+ }
+ }
+
+ function get_link() {
+ $link = $this->elem->getElementsByTagName("link")->item(0);
+
+ if ($link) {
+ return $link->nodeValue;
+ }
+ }
+
+ function get_title() {
+ $title = $this->elem->getElementsByTagName("title")->item(0);
+
+ if ($title) {
+ return $title->nodeValue;
+ }
+ }
+
+ function get_content() {
+ $content = $this->xpath->query("content:encoded", $this->elem)->item(0);
+
+ if ($content) {
+ return $content->nodeValue;
+ }
+
+ $content = $this->elem->getElementsByTagName("description")->item(0);
+
+ if ($content) {
+ return $content->nodeValue;
+ }
+ }
+
+ function get_description() {
+ $summary = $this->elem->getElementsByTagName("description")->item(0);
+
+ if ($summary) {
+ return $summary->nodeValue;
+ }
+ }
+
+ function get_categories() {
+ $categories = $this->elem->getElementsByTagName("category");
+ $cats = array();
+
+ foreach ($categories as $cat) {
+ array_push($cats, $cat->nodeValue);
+ }
+
+ $categories = $this->xpath->query("dc:subject", $this->elem);
+
+ foreach ($categories as $cat) {
+ array_push($cats, $cat->nodeValue);
+ }
+
+ return $cats;
+ }
+
+ function get_enclosures() {
+ $enclosures = $this->elem->getElementsByTagName("enclosure");
+
+ $encs = array();
+
+ foreach ($enclosures as $enclosure) {
+ $enc = new FeedEnclosure();
+
+ $enc->type = $enclosure->getAttribute("type");
+ $enc->link = $enclosure->getAttribute("url");
+ $enc->length = $enclosure->getAttribute("length");
+
+ array_push($encs, $enc);
+ }
+
+ $enclosures = $this->xpath->query("media:content", $this->elem);
+
+ foreach ($enclosures as $enclosure) {
+ $enc = new FeedEnclosure();
+
+ $enc->type = $enclosure->getAttribute("type");
+ $enc->link = $enclosure->getAttribute("url");
+ $enc->length = $enclosure->getAttribute("length");
+
+ array_push($encs, $enc);
+ }
+
+ return $encs;
+ }
+
+}
+?>
diff --git a/classes/feedparser.php b/classes/feedparser.php
new file mode 100644
index 000000000..bd67ca39d
--- /dev/null
+++ b/classes/feedparser.php
@@ -0,0 +1,196 @@
+<?php
+class FeedParser {
+ private $doc;
+ private $error;
+ private $items;
+ private $link;
+ private $title;
+ private $type;
+ private $xpath;
+
+ const FEED_RDF = 0;
+ const FEED_RSS = 1;
+ const FEED_ATOM = 2;
+
+ function __construct($data) {
+ libxml_use_internal_errors(true);
+ libxml_clear_errors();
+ $this->doc = new DOMDocument();
+ $this->doc->loadXML($data);
+ $this->error = $this->format_error(libxml_get_last_error());
+ libxml_clear_errors();
+
+ $this->items = array();
+ }
+
+ function init() {
+ $root = $this->doc->firstChild;
+ $xpath = new DOMXPath($this->doc);
+ $xpath->registerNamespace('atom', 'http://www.w3.org/2005/Atom');
+ $xpath->registerNamespace('atom03', 'http://purl.org/atom/ns#');
+ $xpath->registerNamespace('media', 'http://search.yahoo.com/mrss/');
+ $xpath->registerNamespace('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
+ $xpath->registerNamespace('slash', 'http://purl.org/rss/1.0/modules/slash/');
+ $xpath->registerNamespace('dc', 'http://purl.org/dc/elements/1.1/');
+ $xpath->registerNamespace('content', 'http://purl.org/rss/1.0/modules/content/');
+
+ $this->xpath = $xpath;
+
+ $root = $xpath->query("(//atom03:feed|//atom:feed|//channel|//rdf:rdf|//rdf:RDF)")->item(0);
+
+ if ($root) {
+ switch (mb_strtolower($root->tagName)) {
+ case "rdf:rdf":
+ $this->type = $this::FEED_RDF;
+ break;
+ case "channel":
+ $this->type = $this::FEED_RSS;
+ break;
+ case "feed":
+ $this->type = $this::FEED_ATOM;
+ break;
+ default:
+ if( !isset($this->error) ){
+ $this->error = "Unknown/unsupported feed type";
+ }
+ return;
+ }
+
+ switch ($this->type) {
+ case $this::FEED_ATOM:
+
+ $title = $xpath->query("//atom:feed/atom:title")->item(0);
+
+ if (!$title)
+ $title = $xpath->query("//atom03:feed/atom03:title")->item(0);
+
+
+ if ($title) {
+ $this->title = $title->nodeValue;
+ }
+
+ $link = $xpath->query("//atom:feed/atom:link[not(@rel)]")->item(0);
+
+ if (!$link)
+ $link = $xpath->query("//atom03:feed/atom03:link[not(@rel)]")->item(0);
+
+
+ if ($link && $link->hasAttributes()) {
+ $this->link = $link->getAttribute("href");
+ }
+
+ $articles = $xpath->query("//atom:entry");
+
+ if (!$articles || $articles->length == 0)
+ $articles = $xpath->query("//atom03:entry");
+
+ foreach ($articles as $article) {
+ array_push($this->items, new FeedItem_Atom($article, $this->doc, $this->xpath));
+ }
+
+ break;
+ case $this::FEED_RSS:
+
+ $title = $xpath->query("//channel/title")->item(0);
+
+ if ($title) {
+ $this->title = $title->nodeValue;
+ }
+
+ $link = $xpath->query("//channel/link")->item(0);
+
+ if ($link && $link->hasAttributes()) {
+ $this->link = $link->getAttribute("href");
+ }
+
+ $articles = $xpath->query("//channel/item");
+
+ foreach ($articles as $article) {
+ array_push($this->items, new FeedItem_RSS($article, $this->doc, $this->xpath));
+ }
+
+ break;
+ case $this::FEED_RDF:
+ $xpath->registerNamespace('rssfake', 'http://purl.org/rss/1.0/');
+
+ $title = $xpath->query("//rssfake:channel/rssfake:title")->item(0);
+
+ if ($title) {
+ $this->title = $title->nodeValue;
+ }
+
+ $link = $xpath->query("//rssfake:channel/rssfake:link")->item(0);
+
+ if ($link) {
+ $this->link = $link->nodeValue;
+ }
+
+ $articles = $xpath->query("//rssfake:item");
+
+ foreach ($articles as $article) {
+ array_push($this->items, new FeedItem_RSS($article, $this->doc, $this->xpath));
+ }
+
+ break;
+
+ }
+ } else {
+ if( !isset($this->error) ){
+ $this->error = "Unknown/unsupported feed type";
+ }
+ return;
+ }
+ }
+
+ function format_error($error) {
+ if ($error) {
+ return sprintf("LibXML error %s at line %d (column %d): %s",
+ $error->code, $error->line, $error->column,
+ $error->message);
+ } else {
+ return "";
+ }
+ }
+
+ function error() {
+ return $this->error;
+ }
+
+ function get_link() {
+ return $this->link;
+ }
+
+ function get_title() {
+ return $this->title;
+ }
+
+ function get_items() {
+ return $this->items;
+ }
+
+ function get_links($rel) {
+ $rv = array();
+
+ switch ($this->type) {
+ case $this::FEED_ATOM:
+ $links = $this->xpath->query("//atom:feed/atom:link");
+
+ foreach ($links as $link) {
+ if (!$rel || $link->hasAttribute('rel') && $link->getAttribute('rel') == $rel) {
+ array_push($rv, $link->getAttribute('href'));
+ }
+ }
+ break;
+ case $this::FEED_RSS:
+ $links = $this->xpath->query("//channel/link");
+ foreach ($links as $link) {
+ if (!$rel || $link->hasAttribute('rel') && $link->getAttribute('rel') == $rel) {
+ array_push($rv, $link->getAttribute('href'));
+ }
+ }
+ break;
+ }
+
+ return $rv;
+ }
+} ?>
diff --git a/classes/feeds.php b/classes/feeds.php
index e96aaba30..5ca607c58 100644
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -4,26 +4,14 @@ require_once "colors.php";
class Feeds extends Handler_Protected {
function csrf_ignore($method) {
- $csrf_ignored = array("index");
+ $csrf_ignored = array("index", "feedbrowser", "quickaddfeed", "search");
return array_search($method, $csrf_ignored) !== false;
}
- private function make_gradient($end, $class) {
- $start = $class == "even" ? "#f0f0f0" : "#ffffff";
-
- return "style='background: linear-gradient(left , $start 6%, $end 100%);
- background: -o-linear-gradient(left , $start 6%, $end 100%);
- background: -moz-linear-gradient(left , $start 6%, $end 100%);
- background: -webkit-linear-gradient(left , $start 6%, $end 100%);
- background: -ms-linear-gradient(left , $start 6%, $end 100%);
- background: -webkit-gradient(linear, left top, right top,
- color-stop(0.06, $start), color-stop(1, $end));'";
- }
-
private function format_headline_subtoolbar($feed_site_url, $feed_title,
- $feed_id, $is_cat, $search, $match_on,
- $search_mode, $view_mode, $error) {
+ $feed_id, $is_cat, $search,
+ $search_mode, $view_mode, $error, $feed_last_updated) {
$page_prev_link = "viewFeedGoPage(-1)";
$page_next_link = "viewFeedGoPage(1)";
@@ -50,7 +38,7 @@ class Feeds extends Handler_Protected {
if ($is_cat) $cat_q = "&is_cat=$is_cat";
if ($search) {
- $search_q = "&q=$search&m=$match_on&smode=$search_mode";
+ $search_q = "&q=$search&smode=$search_mode";
} else {
$search_q = "";
}
@@ -61,11 +49,15 @@ class Feeds extends Handler_Protected {
// right part
$reply .= "<span class='r'>";
+ $reply .= "<span id='selected_prompt'></span>";
$reply .= "<span id='feed_title'>";
if ($feed_site_url) {
+ $last_updated = T_sprintf("Last updated: %s",
+ $feed_last_updated);
+
$target = "target=\"_blank\"";
- $reply .= "<a title=\"".__("Visit the website")."\" $target href=\"$feed_site_url\">".
+ $reply .= "<a title=\"$last_updated\" $target href=\"$feed_site_url\">".
truncate_string($feed_title,30)."</a>";
if ($error) {
@@ -81,7 +73,7 @@ class Feeds extends Handler_Protected {
$reply .= "
<a href=\"#\"
title=\"".__("View as RSS feed")."\"
- onclick=\"displayDlg('generatedFeed', '$feed_id:$is_cat:$rss_link')\">
+ onclick=\"displayDlg('".__("View as RSS")."','generatedFeed', '$feed_id:$is_cat:$rss_link')\">
<img class=\"noborder\" style=\"vertical-align : middle\" src=\"images/pub_set.svg\"></a>";
$reply .= "</span>";
@@ -119,18 +111,21 @@ class Feeds extends Handler_Protected {
}
- global $pluginhost;
-
- if ($pluginhost->get_plugin("mail")) {
+ if (PluginHost::getInstance()->get_plugin("mail")) {
$reply .= "<option value=\"emailArticle(false)\">".__('Forward by email').
"</option>";
}
+ if (PluginHost::getInstance()->get_plugin("mailto")) {
+ $reply .= "<option value=\"mailtoArticle(false)\">".__('Forward by email').
+ "</option>";
+ }
+
$reply .= "<option value=\"0\" disabled=\"1\">".__('Feed:')."</option>";
- $reply .= "<option value=\"catchupPage()\">".__('Mark as read')."</option>";
+ //$reply .= "<option value=\"catchupPage()\">".__('Mark as read')."</option>";
- $reply .= "<option value=\"displayDlg('generatedFeed', '$feed_id:$is_cat:$rss_link')\">".__('View as RSS')."</option>";
+ $reply .= "<option value=\"displayDlg('".__("View as RSS")."','generatedFeed', '$feed_id:$is_cat:$rss_link')\">".__('View as RSS')."</option>";
$reply .= "</select>";
@@ -138,6 +133,10 @@ class Feeds extends Handler_Protected {
//$reply .= "</h2";
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HEADLINE_TOOLBAR_BUTTON) as $p) {
+ echo $p->hook_headline_toolbar_button($feed_id, $is_cat);
+ }
+
return $reply;
}
@@ -152,6 +151,8 @@ class Feeds extends Handler_Protected {
$reply = array();
+ $rgba_cache = array();
+
$timing_info = microtime(true);
$topmost_article_ids = array();
@@ -164,58 +165,84 @@ class Feeds extends Handler_Protected {
if ($method == "ForceUpdate" && $feed > 0 && is_numeric($feed)) {
// Update the feed if required with some basic flood control
- $result = db_query($this->link,
+ $result = $this->dbh->query(
"SELECT cache_images,".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
FROM ttrss_feeds WHERE id = '$feed'");
- if (db_num_rows($result) != 0) {
- $last_updated = strtotime(db_fetch_result($result, 0, "last_updated"));
- $cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images"));
+ if ($this->dbh->num_rows($result) != 0) {
+ $last_updated = strtotime($this->dbh->fetch_result($result, 0, "last_updated"));
+ $cache_images = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "cache_images"));
if (!$cache_images && time() - $last_updated > 120 || isset($_REQUEST['DevForceUpdate'])) {
include "rssfuncs.php";
- update_rss_feed($this->link, $feed, true, true);
+ update_rss_feed($feed, true, true);
} else {
- db_query($this->link, "UPDATE ttrss_feeds SET last_updated = '1970-01-01', last_update_started = '1970-01-01'
+ $this->dbh->query("UPDATE ttrss_feeds SET last_updated = '1970-01-01', last_update_started = '1970-01-01'
WHERE id = '$feed'");
}
}
}
if ($method_split[0] == "MarkAllReadGR") {
- catchup_feed($this->link, $method_split[1], false);
+ catchup_feed($method_split[1], false);
}
// FIXME: might break tag display?
if (is_numeric($feed) && $feed > 0 && !$cat_view) {
- $result = db_query($this->link,
+ $result = $this->dbh->query(
"SELECT id FROM ttrss_feeds WHERE id = '$feed' LIMIT 1");
- if (db_num_rows($result) == 0) {
+ if ($this->dbh->num_rows($result) == 0) {
$reply['content'] = "<div align='center'>".__('Feed not found.')."</div>";
}
}
- @$search = db_escape_string($_REQUEST["query"]);
+ @$search = $this->dbh->escape_string($_REQUEST["query"]);
if ($search) {
$disable_cache = true;
}
- @$search_mode = db_escape_string($_REQUEST["search_mode"]);
- $match_on = "both"; // deprecated, TODO: remove
+ @$search_mode = $this->dbh->escape_string($_REQUEST["search_mode"]);
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("H0", $timing_info);
// error_log("format_headlines_list: [" . $feed . "] method [" . $method . "]");
- if( $search_mode == '' && $method != '' ){
+ if($search_mode == '' && $method != '' ){
$search_mode = $method;
}
// error_log("search_mode: " . $search_mode);
- $qfh_ret = queryFeedHeadlines($this->link, $feed, $limit, $view_mode, $cat_view,
- $search, $search_mode, $match_on, $override_order, $offset, 0,
- false, 0, $include_children);
+
+ if (!$cat_view && is_numeric($feed) && $feed < PLUGIN_FEED_BASE_INDEX && $feed > LABEL_BASE_INDEX) {
+ $handler = PluginHost::getInstance()->get_feed_handler(
+ PluginHost::feed_to_pfeed_id($feed));
+
+ // function queryFeedHeadlines($feed, $limit, $view_mode, $cat_view, $search, $search_mode, $override_order = false, $offset = 0, $owner_uid = 0, $filter = false, $since_id = 0, $include_children = false, $ignore_vfeed_group = false) {
+
+ if ($handler) {
+ $options = array(
+ "limit" => $limit,
+ "view_mode" => $view_mode,
+ "cat_view" => $cat_view,
+ "search" => $search,
+ "search_mode" => $search_mode,
+ "override_order" => $override_order,
+ "offset" => $offset,
+ "owner_uid" => $_SESSION["uid"],
+ "filter" => false,
+ "since_id" => 0,
+ "include_children" => $include_children);
+
+ $qfh_ret = $handler->get_headlines(PluginHost::feed_to_pfeed_id($feed),
+ $options);
+ }
+
+ } else {
+ $qfh_ret = queryFeedHeadlines($feed, $limit, $view_mode, $cat_view,
+ $search, $search_mode, $override_order, $offset, 0,
+ false, 0, $include_children);
+ }
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("H1", $timing_info);
@@ -223,49 +250,48 @@ class Feeds extends Handler_Protected {
$feed_title = $qfh_ret[1];
$feed_site_url = $qfh_ret[2];
$last_error = $qfh_ret[3];
+ $last_updated = strpos($qfh_ret[4], '1970-') === FALSE ?
+ make_local_datetime($qfh_ret[4], false) : __("Never");
$vgroup_last_feed = $vgr_last_feed;
$reply['toolbar'] = $this->format_headline_subtoolbar($feed_site_url,
$feed_title,
- $feed, $cat_view, $search, $match_on, $search_mode, $view_mode,
- $last_error);
+ $feed, $cat_view, $search, $search_mode, $view_mode,
+ $last_error, $last_updated);
- $headlines_count = db_num_rows($result);
+ $headlines_count = $this->dbh->num_rows($result);
- /* if (get_pref($this->link, 'COMBINED_DISPLAY_MODE')) {
+ /* if (get_pref('COMBINED_DISPLAY_MODE')) {
$button_plugins = array();
foreach (explode(",", ARTICLE_BUTTON_PLUGINS) as $p) {
$pclass = "button_" . trim($p);
if (class_exists($pclass)) {
- $plugin = new $pclass($link);
+ $plugin = new $pclass();
array_push($button_plugins, $plugin);
}
}
} */
- global $pluginhost;
-
- if (db_num_rows($result) > 0) {
+ if ($this->dbh->num_rows($result) > 0) {
$lnum = $offset;
$num_unread = 0;
$cur_feed_title = '';
- $fresh_intl = get_pref($this->link, "FRESH_ARTICLE_MAX_AGE") * 60 * 60;
+ $fresh_intl = get_pref("FRESH_ARTICLE_MAX_AGE") * 60 * 60;
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("PS", $timing_info);
- while ($line = db_fetch_assoc($result)) {
- $class = ($lnum % 2) ? "even" : "odd";
+ $expand_cdm = get_pref('CDM_EXPANDED');
+ while ($line = $this->dbh->fetch_assoc($result)) {
$id = $line["id"];
$feed_id = $line["feed_id"];
$label_cache = $line["label_cache"];
$labels = false;
- $label_row_style = "";
if ($label_cache) {
$label_cache = json_decode($label_cache, true);
@@ -278,23 +304,7 @@ class Feeds extends Handler_Protected {
}
}
- if (!is_array($labels)) $labels = get_article_labels($this->link, $id);
-
- if (count($labels) > 0) {
- for ($i = 0; $i < min(4, count($labels)); $i++) {
- $bg = rgb2hsl(_color_unpack($labels[$i][3]));
-
- if ($bg && $bg[1] > 0) {
- $bg[1] = 0.1;
- $bg[2] = 1;
-
- $bg = _color_pack(hsl2rgb($bg));
- $label_row_style = $this->make_gradient($bg, $class);;
-
- break;
- }
- }
- }
+ if (!is_array($labels)) $labels = get_article_labels($id);
$labels_str = "<span id=\"HLLCTR-$id\">";
$labels_str .= format_article_labels($labels, $id);
@@ -304,36 +314,35 @@ class Feeds extends Handler_Protected {
array_push($topmost_article_ids, $id);
}
- if ($line["unread"] == "t" || $line["unread"] == "1") {
+ $class = "";
+
+ if (sql_bool_to_bool($line["unread"])) {
$class .= " Unread";
++$num_unread;
- $is_unread = true;
- } else {
- $is_unread = false;
}
- if ($line["marked"] == "t" || $line["marked"] == "1") {
- $marked_pic = "<img id=\"FMPIC-$id\"
- src=\"".theme_image($this->link, 'images/mark_set.svg')."\"
+ if (sql_bool_to_bool($line["marked"])) {
+ $marked_pic = "<img
+ src=\"images/mark_set.svg\"
class=\"markedPic\" alt=\"Unstar article\"
- onclick='javascript:toggleMark($id)'>";
+ onclick='toggleMark($id)'>";
+ $class .= " marked";
} else {
- $marked_pic = "<img id=\"FMPIC-$id\"
- src=\"".theme_image($this->link, 'images/mark_unset.svg')."\"
+ $marked_pic = "<img
+ src=\"images/mark_unset.svg\"
class=\"markedPic\" alt=\"Star article\"
- onclick='javascript:toggleMark($id)'>";
+ onclick='toggleMark($id)'>";
}
- if ($line["published"] == "t" || $line["published"] == "1") {
- $published_pic = "<img id=\"FPPIC-$id\" src=\"".theme_image($this->link,
- 'images/pub_set.svg')."\"
- class=\"markedPic\"
- alt=\"Unpublish article\" onclick='javascript:togglePub($id)'>";
+ if (sql_bool_to_bool($line["published"])) {
+ $published_pic = "<img src=\"images/pub_set.svg\"
+ class=\"pubPic\"
+ alt=\"Unpublish article\" onclick='togglePub($id)'>";
+ $class .= " published";
} else {
- $published_pic = "<img id=\"FPPIC-$id\" src=\"".theme_image($this->link,
- 'images/pub_unset.svg')."\"
- class=\"markedPic\"
- alt=\"Publish article\" onclick='javascript:togglePub($id)'>";
+ $published_pic = "<img src=\"images/pub_unset.svg\"
+ class=\"pubPic\"
+ alt=\"Publish article\" onclick='togglePub($id)'>";
}
# $content_link = "<a target=\"_blank\" href=\"".$line["link"]."\">" .
@@ -347,17 +356,18 @@ class Feeds extends Handler_Protected {
# $content_link = "<a href=\"javascript:viewContentUrl('".$line["link"]."');\">" .
# $line["title"] . "</a>";
- $updated_fmt = make_local_datetime($this->link, $line["updated_noms"], false);
+ $updated_fmt = make_local_datetime($line["updated"], false);
+ $date_entered_fmt = T_sprintf("Imported at %s",
+ make_local_datetime($line["date_entered"], false));
- if (get_pref($this->link, 'SHOW_CONTENT_PREVIEW')) {
+ if (get_pref('SHOW_CONTENT_PREVIEW')) {
$content_preview = truncate_string(strip_tags($line["content_preview"]),
- 100);
+ 250);
}
$score = $line["score"];
- $score_pic = theme_image($this->link,
- "images/" . get_score_pic($score));
+ $score_pic = "images/" . get_score_pic($score);
/* $score_title = __("(Click to change)");
$score_pic = "<img class='hlScorePic' src=\"images/$score_pic\"
@@ -377,7 +387,7 @@ class Feeds extends Handler_Protected {
$entry_author = $line["author"];
if ($entry_author) {
- $entry_author = " - $entry_author";
+ $entry_author = " &mdash; $entry_author";
}
$has_feed_icon = feed_has_icon($feed_id);
@@ -388,9 +398,22 @@ class Feeds extends Handler_Protected {
$feed_icon_img = "<img class=\"tinyFeedIcon\" src=\"images/pub_set.svg\" alt=\"\">";
}
- if (!get_pref($this->link, 'COMBINED_DISPLAY_MODE')) {
+ $entry_site_url = $line["site_url"];
+
+ //setting feed headline background color, needs to change text color based on dark/light
+ $fav_color = $line['favicon_avg_color'];
+
+ require_once "colors.php";
+
+ if ($fav_color && $fav_color != 'fail') {
+ if (!isset($rgba_cache[$feed_id])) {
+ $rgba_cache[$feed_id] = join(",", _color_unpack($fav_color));
+ }
+ }
+
+ if (!get_pref('COMBINED_DISPLAY_MODE')) {
- if (get_pref($this->link, 'VFEED_GROUP_BY_FEED')) {
+ if (get_pref('VFEED_GROUP_BY_FEED')) {
if ($feed_id != $vgroup_last_feed && $line["feed_title"]) {
$cur_feed_title = $line["feed_title"];
@@ -398,26 +421,26 @@ class Feeds extends Handler_Protected {
$cur_feed_title = htmlspecialchars($cur_feed_title);
- $vf_catchup_link = "(<a onclick='catchupFeedInGroup($feed_id);' href='#'>".__('mark as read')."</a>)";
+ $vf_catchup_link = "(<a class='catchup' onclick='catchupFeedInGroup($feed_id);' href='#'>".__('Mark as read')."</a>)";
$reply['content'] .= "<div class='cdmFeedTitle'>".
"<div style=\"float : right\">$feed_icon_img</div>".
- "<a href=\"#\" onclick=\"viewfeed($feed_id)\">".
+ "<a class='title' href=\"#\" onclick=\"viewfeed($feed_id)\">".
$line["feed_title"]."</a> $vf_catchup_link</div>";
}
}
- $mouseover_attrs = "onmouseover='postMouseIn($id)'
+ $mouseover_attrs = "onmouseover='postMouseIn(event, $id)'
onmouseout='postMouseOut($id)'";
- $reply['content'] .= "<div class='$class' id='RROW-$id' $label_row_style $mouseover_attrs>";
+ $reply['content'] .= "<div class='hl $class' id='RROW-$id' $mouseover_attrs>";
$reply['content'] .= "<div class='hlLeft'>";
$reply['content'] .= "<input dojoType=\"dijit.form.CheckBox\"
type=\"checkbox\" onclick=\"toggleSelectRow2(this)\"
- id=\"RCHK-$id\">";
+ class='rchk'>";
$reply['content'] .= "$marked_pic";
$reply['content'] .= "$published_pic";
@@ -426,12 +449,12 @@ class Feeds extends Handler_Protected {
$reply['content'] .= "<div onclick='return hlClicked(event, $id)'
class=\"hlTitle\"><span class='hlContent$hlc_suffix'>";
- $reply['content'] .= "<a id=\"RTITLE-$id\"
+ $reply['content'] .= "<a id=\"RTITLE-$id\" class=\"title\"
href=\"" . htmlspecialchars($line["link"]) . "\"
onclick=\"\">" .
truncate_string($line["title"], 200);
- if (get_pref($this->link, 'SHOW_CONTENT_PREVIEW')) {
+ if (get_pref('SHOW_CONTENT_PREVIEW')) {
if ($content_preview) {
$reply['content'] .= "<span class=\"contentPreview\"> - $content_preview</span>";
}
@@ -445,19 +468,23 @@ class Feeds extends Handler_Protected {
$reply['content'] .= "<span class=\"hlUpdated\">";
- if (@$line["feed_title"]) {
- $reply['content'] .= "<span class=\"hlFeed\">
- <a href=\"#\" onclick=\"viewfeed($feed_id)\">".
- $line["feed_title"]."</a><br/>
- </span>";
+ if (!get_pref('VFEED_GROUP_BY_FEED')) {
+ if (@$line["feed_title"]) {
+ $rgba = @$rgba_cache[$feed_id];
+
+ $reply['content'] .= "<a class=\"hlFeed\" style=\"background : rgba($rgba, 0.3)\" href=\"#\" onclick=\"viewfeed($feed_id)\">".
+ truncate_string($line["feed_title"],30)."</a>";
}
+ }
+
+ $reply['content'] .= "<div title='$date_entered_fmt'>$updated_fmt</div>
+ </span>";
- $reply['content'] .= "$updated_fmt</span>";
$reply['content'] .= "<div class=\"hlRight\">";
$reply['content'] .= $score_pic;
- if ($line["feed_title"] && !get_pref($this->link, 'VFEED_GROUP_BY_FEED')) {
+ if ($line["feed_title"] && !get_pref('VFEED_GROUP_BY_FEED')) {
$reply['content'] .= "<span onclick=\"viewfeed($feed_id)\"
style=\"cursor : pointer\"
@@ -470,17 +497,19 @@ class Feeds extends Handler_Protected {
} else {
- $line["tags"] = get_article_tags($this->link, $id, $_SESSION["uid"], $line["tag_cache"]);
- unset($line["tag_cache"]);
+ if ($line["tag_cache"])
+ $tags = explode(",", $line["tag_cache"]);
+ else
+ $tags = false;
- $line["content"] = sanitize($this->link, $line["content_preview"],
- false, false, $feed_site_url);
+ $line["content"] = sanitize($line["content_preview"],
+ sql_bool_to_bool($line['hide_images']), false, $entry_site_url);
- foreach ($pluginhost->get_hooks($pluginhost::HOOK_RENDER_ARTICLE_CDM) as $p) {
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE_CDM) as $p) {
$line = $p->hook_render_article_cdm($line);
}
- if (get_pref($this->link, 'VFEED_GROUP_BY_FEED') && $line["feed_title"]) {
+ if (get_pref('VFEED_GROUP_BY_FEED') && $line["feed_title"]) {
if ($feed_id != $vgroup_last_feed) {
$cur_feed_title = $line["feed_title"];
@@ -488,7 +517,7 @@ class Feeds extends Handler_Protected {
$cur_feed_title = htmlspecialchars($cur_feed_title);
- $vf_catchup_link = "(<a onclick='javascript:catchupFeedInGroup($feed_id);' href='#'>".__('mark as read')."</a>)";
+ $vf_catchup_link = "(<a class='catchup' onclick='javascript:catchupFeedInGroup($feed_id);' href='#'>".__('mark as read')."</a>)";
$has_feed_icon = feed_has_icon($feed_id);
@@ -500,47 +529,46 @@ class Feeds extends Handler_Protected {
$reply['content'] .= "<div class='cdmFeedTitle'>".
"<div style=\"float : right\">$feed_icon_img</div>".
- "<a href=\"#\" onclick=\"viewfeed($feed_id)\">".
+ "<a href=\"#\" class='title' onclick=\"viewfeed($feed_id)\">".
$line["feed_title"]."</a> $vf_catchup_link</div>";
}
}
- $expand_cdm = get_pref($this->link, 'CDM_EXPANDED');
-
- $mouseover_attrs = "onmouseover='postMouseIn($id)'
+ $mouseover_attrs = "onmouseover='postMouseIn(event, $id)'
onmouseout='postMouseOut($id)'";
- $reply['content'] .= "<div class=\"cdm $class\"
- id=\"RROW-$id\" $mouseover_attrs'>";
+ $expanded_class = $expand_cdm ? "expanded" : "expandable";
- $reply['content'] .= "<div class=\"cdmHeader\">";
+ $reply['content'] .= "<div class=\"cdm $expanded_class $class\"
+ id=\"RROW-$id\" $mouseover_attrs>";
+ $reply['content'] .= "<div class=\"cdmHeader\" style=\"$row_background\">";
$reply['content'] .= "<div style=\"vertical-align : middle\">";
$reply['content'] .= "<input dojoType=\"dijit.form.CheckBox\"
type=\"checkbox\" onclick=\"toggleSelectRow2(this, false, true)\"
- id=\"RCHK-$id\">";
+ class='rchk'>";
$reply['content'] .= "$marked_pic";
$reply['content'] .= "$published_pic";
$reply['content'] .= "</div>";
- $reply['content'] .= "<div id=\"PTITLE-FULL-$id\" style=\"display : none\">" .
- htmlspecialchars(strip_tags($line['title'])) . "</div>";
-
$reply['content'] .= "<span id=\"RTITLE-$id\"
onclick=\"return cdmClicked(event, $id);\"
class=\"titleWrap$hlc_suffix\">
<a class=\"title\"
- title=\"".htmlspecialchars($line['title'])."\"
target=\"_blank\" href=\"".
htmlspecialchars($line["link"])."\">".
$line["title"] .
- " $entry_author</a>";
+ " <span class=\"author\">$entry_author</span></a>";
$reply['content'] .= $labels_str;
+ $reply['content'] .= "<span class='collapseBtn' style='display : none'>
+ <img src=\"images/collapse.png\" onclick=\"cdmCollapseArticle(event, $id)\"
+ title=\"".__("Collapse article")."\"/></span>";
+
if (!$expand_cdm)
$content_hidden = "style=\"display : none\"";
else
@@ -548,24 +576,27 @@ class Feeds extends Handler_Protected {
$reply['content'] .= "<span $excerpt_hidden
id=\"CEXC-$id\" class=\"cdmExcerpt\"> - $content_preview</span>";
-
$reply['content'] .= "</span>";
- if (!get_pref($this->link, 'VFEED_GROUP_BY_FEED')) {
+ if (!get_pref('VFEED_GROUP_BY_FEED')) {
if (@$line["feed_title"]) {
+ $rgba = @$rgba_cache[$feed_id];
+
$reply['content'] .= "<div class=\"hlFeed\">
- <a href=\"#\" onclick=\"viewfeed($feed_id)\">".
- $line["feed_title"]."</a>
+ <a href=\"#\" style=\"background-color: rgba($rgba,0.3)\"
+ onclick=\"viewfeed($feed_id)\">".
+ truncate_string($line["feed_title"],30)."</a>
</div>";
}
}
- $reply['content'] .= "<span class='updated'>$updated_fmt</span>";
+ $reply['content'] .= "<span class='updated' title='$date_entered_fmt'>
+ $updated_fmt</span>";
$reply['content'] .= "<div style=\"vertical-align : middle\">";
$reply['content'] .= "$score_pic";
- if (!get_pref($this->link, "VFEED_GROUP_BY_FEED") && $line["feed_title"]) {
+ if (!get_pref("VFEED_GROUP_BY_FEED") && $line["feed_title"]) {
$reply['content'] .= "<span style=\"cursor : pointer\"
title=\"".htmlspecialchars($line["feed_title"])."\"
onclick=\"viewfeed($feed_id)\">$feed_icon_img</span>";
@@ -584,22 +615,21 @@ class Feeds extends Handler_Protected {
}
$reply['content'] .= "</div>";
-
$reply['content'] .= "<div class=\"cdmContentInner\">";
if ($line["orig_feed_id"]) {
- $tmp_result = db_query($this->link, "SELECT * FROM ttrss_archived_feeds
+ $tmp_result = $this->dbh->query("SELECT * FROM ttrss_archived_feeds
WHERE id = ".$line["orig_feed_id"]);
- if (db_num_rows($tmp_result) != 0) {
+ if ($this->dbh->num_rows($tmp_result) != 0) {
$reply['content'] .= "<div clear='both'>";
$reply['content'] .= __("Originally from:");
$reply['content'] .= "&nbsp;";
- $tmp_line = db_fetch_assoc($tmp_result);
+ $tmp_line = $this->dbh->fetch_assoc($tmp_result);
$reply['content'] .= "<a target='_blank'
href=' " . htmlspecialchars($tmp_line['site_url']) . "'>" .
@@ -614,36 +644,37 @@ class Feeds extends Handler_Protected {
}
}
- $feed_site_url = $line["site_url"];
-
$reply['content'] .= "<span id=\"CWRAP-$id\">";
- $reply['content'] .= $line["content"];
- $reply['content'] .= "</span>";
-/* $tmp_result = db_query($this->link, "SELECT always_display_enclosures FROM
- ttrss_feeds WHERE id = ".
- (($line['feed_id'] == null) ? $line['orig_feed_id'] :
- $line['feed_id'])." AND owner_uid = ".$_SESSION["uid"]);
+// if (!$expand_cdm) {
+ $reply['content'] .= "<span id=\"CENCW-$id\" style=\"display : none\">";
+ $reply['content'] .= htmlspecialchars($line["content"]);
+ $reply['content'] .= "</span.";
- $always_display_enclosures = sql_bool_to_bool(db_fetch_result($tmp_result,
- 0, "always_display_enclosures")); */
+// } else {
+// $reply['content'] .= $line["content"];
+// }
+
+ $reply['content'] .= "</span>";
$always_display_enclosures = sql_bool_to_bool($line["always_display_enclosures"]);
- $reply['content'] .= format_article_enclosures($this->link, $id, $always_display_enclosures,
- $line["content"]);
+ $reply['content'] .= format_article_enclosures($id, $always_display_enclosures, $line["content"], sql_bool_to_bool($line["hide_images"]));
$reply['content'] .= "</div>";
$reply['content'] .= "<div class=\"cdmFooter\">";
- $tags_str = format_tags_string($line["tags"], $id);
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_LEFT_BUTTON) as $p) {
+ $reply['content'] .= $p->hook_article_left_button($line);
+ }
+
+ $tags_str = format_tags_string($tags, $id);
- $reply['content'] .= "<img src='".theme_image($this->link,
- 'images/tag.png')."' alt='Tags' title='Tags'>
+ $reply['content'] .= "<img src='images/tag.png' alt='Tags' title='Tags'>
<span id=\"ATSTR-$id\">$tags_str</span>
<a title=\"".__('Edit tags for this article')."\"
- href=\"#\" onclick=\"editArticleTags($id, $feed_id, true)\">(+)</a>";
+ href=\"#\" onclick=\"editArticleTags($id)\">(+)</a>";
$num_comments = $line["num_comments"];
$entry_comments = "";
@@ -665,14 +696,17 @@ class Feeds extends Handler_Protected {
$reply['content'] .= "<div style=\"float : right\">";
- foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_BUTTON) as $p) {
+// $reply['content'] .= "$marked_pic";
+// $reply['content'] .= "$published_pic";
+
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_BUTTON) as $p) {
$reply['content'] .= $p->hook_article_button($line);
}
$reply['content'] .= "</div>";
$reply['content'] .= "</div>";
- $reply['content'] .= "</div>";
+ $reply['content'] .= "</div><hr/>";
$reply['content'] .= "</div>";
@@ -697,8 +731,8 @@ class Feeds extends Handler_Protected {
$message = __("No starred articles found to display.");
break;
default:
- if ($feed < -10) {
- $message = __("No articles found to display. You can assign articles to labels manually (see the Actions menu above) or use a filter.");
+ if ($feed < LABEL_BASE_INDEX) {
+ $message = __("No articles found to display. You can assign articles to labels manually from article header context menu (applies to all selected articles) or use a filter.");
} else {
$message = __("No articles found to display.");
}
@@ -707,20 +741,20 @@ class Feeds extends Handler_Protected {
if (!$offset && $message) {
$reply['content'] .= "<div class='whiteBox'>$message";
- $reply['content'] .= "<p class=\"small\"><span class=\"insensitive\">";
+ $reply['content'] .= "<p><span class=\"insensitive\">";
- $result = db_query($this->link, "SELECT ".SUBSTRING_FOR_DATE."(MAX(last_updated), 1, 19) AS last_updated FROM ttrss_feeds
+ $result = $this->dbh->query("SELECT ".SUBSTRING_FOR_DATE."(MAX(last_updated), 1, 19) AS last_updated FROM ttrss_feeds
WHERE owner_uid = " . $_SESSION['uid']);
- $last_updated = db_fetch_result($result, 0, "last_updated");
- $last_updated = make_local_datetime($this->link, $last_updated, false);
+ $last_updated = $this->dbh->fetch_result($result, 0, "last_updated");
+ $last_updated = make_local_datetime($last_updated, false);
$reply['content'] .= sprintf(__("Feeds last updated at %s"), $last_updated);
- $result = db_query($this->link, "SELECT COUNT(id) AS num_errors
+ $result = $this->dbh->query("SELECT COUNT(id) AS num_errors
FROM ttrss_feeds WHERE last_error != '' AND owner_uid = ".$_SESSION["uid"]);
- $num_errors = db_fetch_result($result, 0, "num_errors");
+ $num_errors = $this->dbh->fetch_result($result, 0, "num_errors");
if ($num_errors > 0) {
$reply['content'] .= "<br/>";
@@ -738,9 +772,9 @@ class Feeds extends Handler_Protected {
}
function catchupAll() {
- db_query($this->link, "UPDATE ttrss_user_entries SET
+ $this->dbh->query("UPDATE ttrss_user_entries SET
last_read = NOW(), unread = false WHERE unread = true AND owner_uid = " . $_SESSION["uid"]);
- ccache_zero_all($this->link, $_SESSION["uid"]);
+ ccache_zero_all($_SESSION["uid"]);
}
function view() {
@@ -750,17 +784,17 @@ class Feeds extends Handler_Protected {
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("0", $timing_info);
- $omode = db_escape_string($_REQUEST["omode"]);
+ $omode = $this->dbh->escape_string($_REQUEST["omode"]);
- $feed = db_escape_string($_REQUEST["feed"]);
- $method = db_escape_string($_REQUEST["m"]);
- $view_mode = db_escape_string($_REQUEST["view_mode"]);
- $limit = (int) get_pref($this->link, "DEFAULT_ARTICLE_LIMIT");
+ $feed = $this->dbh->escape_string($_REQUEST["feed"]);
+ $method = $this->dbh->escape_string($_REQUEST["m"]);
+ $view_mode = $this->dbh->escape_string($_REQUEST["view_mode"]);
+ $limit = 30;
@$cat_view = $_REQUEST["cat"] == "true";
- @$next_unread_feed = db_escape_string($_REQUEST["nuf"]);
- @$offset = db_escape_string($_REQUEST["skip"]);
- @$vgroup_last_feed = db_escape_string($_REQUEST["vgrlf"]);
- $order_by = db_escape_string($_REQUEST["order_by"]);
+ @$next_unread_feed = $this->dbh->escape_string($_REQUEST["nuf"]);
+ @$offset = $this->dbh->escape_string($_REQUEST["skip"]);
+ @$vgroup_last_feed = $this->dbh->escape_string($_REQUEST["vgrlf"]);
+ $order_by = $this->dbh->escape_string($_REQUEST["order_by"]);
if (is_numeric($feed)) $feed = (int) $feed;
@@ -768,26 +802,26 @@ class Feeds extends Handler_Protected {
* when there's nothing to load - e.g. no stuff in fresh feed */
if ($feed == -5) {
- print json_encode($this->generate_dashboard_feed($this->link));
+ print json_encode($this->generate_dashboard_feed());
return;
}
$result = false;
- if ($feed < -10) {
- $label_feed = -11-$feed;
- $result = db_query($this->link, "SELECT id FROM ttrss_labels2 WHERE
+ if ($feed < LABEL_BASE_INDEX) {
+ $label_feed = feed_to_label_id($feed);
+ $result = $this->dbh->query("SELECT id FROM ttrss_labels2 WHERE
id = '$label_feed' AND owner_uid = " . $_SESSION['uid']);
} else if (!$cat_view && is_numeric($feed) && $feed > 0) {
- $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds WHERE
id = '$feed' AND owner_uid = " . $_SESSION['uid']);
} else if ($cat_view && is_numeric($feed) && $feed > 0) {
- $result = db_query($this->link, "SELECT id FROM ttrss_feed_categories WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_feed_categories WHERE
id = '$feed' AND owner_uid = " . $_SESSION['uid']);
}
- if ($result && db_num_rows($result) == 0) {
- print json_encode($this->generate_error_feed($this->link, __("Feed not found.")));
+ if ($result && $this->dbh->num_rows($result) == 0) {
+ print json_encode($this->generate_error_feed(__("Feed not found.")));
return;
}
@@ -795,15 +829,21 @@ class Feeds extends Handler_Protected {
* so for performance reasons we don't do that here */
if ($feed >= 0) {
- ccache_update($this->link, $feed, $_SESSION["uid"], $cat_view);
+ ccache_update($feed, $_SESSION["uid"], $cat_view);
}
- set_pref($this->link, "_DEFAULT_VIEW_MODE", $view_mode);
- set_pref($this->link, "_DEFAULT_VIEW_LIMIT", $limit);
- set_pref($this->link, "_DEFAULT_VIEW_ORDER_BY", $order_by);
+ set_pref("_DEFAULT_VIEW_MODE", $view_mode);
+ set_pref("_DEFAULT_VIEW_ORDER_BY", $order_by);
+
+ /* bump login timestamp if needed */
+ if (time() - $_SESSION["last_login_update"] > 3600) {
+ $this->dbh->query("UPDATE ttrss_users SET last_login = NOW() WHERE id = " .
+ $_SESSION["uid"]);
+ $_SESSION["last_login_update"] = time();
+ }
if (!$cat_view && is_numeric($feed) && $feed > 0) {
- db_query($this->link, "UPDATE ttrss_feeds SET last_viewed = NOW()
+ $this->dbh->query("UPDATE ttrss_feeds SET last_viewed = NOW()
WHERE id = '$feed' AND owner_uid = ".$_SESSION["uid"]);
}
@@ -818,36 +858,16 @@ class Feeds extends Handler_Protected {
$override_order = false;
- if (get_pref($this->link, "SORT_HEADLINES_BY_FEED_DATE", $owner_uid)) {
- $date_sort_field = "updated";
- } else {
- $date_sort_field = "date_entered";
- }
-
switch ($order_by) {
- case "date":
- if (get_pref($this->link, 'REVERSE_HEADLINES', $owner_uid)) {
- $override_order = "$date_sort_field";
- } else {
- $override_order = "$date_sort_field DESC";
- }
- break;
-
- case "title":
- if (get_pref($this->link, 'REVERSE_HEADLINES', $owner_uid)) {
- $override_order = "title DESC, $date_sort_field";
- } else {
- $override_order = "title, $date_sort_field DESC";
- }
- break;
-
- case "score":
- if (get_pref($this->link, 'REVERSE_HEADLINES', $owner_uid)) {
- $override_order = "score, $date_sort_field";
- } else {
- $override_order = "score DESC, $date_sort_field DESC";
- }
- break;
+ case "title":
+ $override_order = "ttrss_entries.title";
+ break;
+ case "date_reverse":
+ $override_order = "date_entered, updated";
+ break;
+ case "feed_dates":
+ $override_order = "updated DESC";
+ break;
}
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("04", $timing_info);
@@ -873,13 +893,13 @@ class Feeds extends Handler_Protected {
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("30", $timing_info);
- $reply['runtime-info'] = make_runtime_info($this->link);
+ $reply['runtime-info'] = make_runtime_info();
print json_encode($reply);
}
- private function generate_dashboard_feed($link) {
+ private function generate_dashboard_feed() {
$reply = array();
$reply['headlines']['id'] = -5;
@@ -888,20 +908,20 @@ class Feeds extends Handler_Protected {
$reply['headlines']['toolbar'] = '';
$reply['headlines']['content'] = "<div class='whiteBox'>".__('No feed selected.');
- $reply['headlines']['content'] .= "<p class=\"small\"><span class=\"insensitive\">";
+ $reply['headlines']['content'] .= "<p><span class=\"insensitive\">";
- $result = db_query($link, "SELECT ".SUBSTRING_FOR_DATE."(MAX(last_updated), 1, 19) AS last_updated FROM ttrss_feeds
+ $result = $this->dbh->query("SELECT ".SUBSTRING_FOR_DATE."(MAX(last_updated), 1, 19) AS last_updated FROM ttrss_feeds
WHERE owner_uid = " . $_SESSION['uid']);
- $last_updated = db_fetch_result($result, 0, "last_updated");
- $last_updated = make_local_datetime($link, $last_updated, false);
+ $last_updated = $this->dbh->fetch_result($result, 0, "last_updated");
+ $last_updated = make_local_datetime($last_updated, false);
$reply['headlines']['content'] .= sprintf(__("Feeds last updated at %s"), $last_updated);
- $result = db_query($link, "SELECT COUNT(id) AS num_errors
+ $result = $this->dbh->query("SELECT COUNT(id) AS num_errors
FROM ttrss_feeds WHERE last_error != '' AND owner_uid = ".$_SESSION["uid"]);
- $num_errors = db_fetch_result($result, 0, "num_errors");
+ $num_errors = $this->dbh->fetch_result($result, 0, "num_errors");
if ($num_errors > 0) {
$reply['headlines']['content'] .= "<br/>";
@@ -918,7 +938,7 @@ class Feeds extends Handler_Protected {
return $reply;
}
- private function generate_error_feed($link, $error) {
+ private function generate_error_feed($error) {
$reply = array();
$reply['headlines']['id'] = -6;
@@ -935,6 +955,188 @@ class Feeds extends Handler_Protected {
return $reply;
}
+ function quickAddFeed() {
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"addfeed\">";
+
+ print "<div class=\"dlgSec\">".__("Feed or site URL")."</div>";
+ print "<div class=\"dlgSecCont\">";
+
+ print "<div style='float : right'>
+ <img style='display : none'
+ id='feed_add_spinner' src='images/indicator_white.gif'></div>";
+
+ print "<input style=\"font-size : 16px; width : 20em;\"
+ placeHolder=\"".__("Feed or site URL")."\"
+ dojoType=\"dijit.form.ValidationTextBox\" required=\"1\" name=\"feed\" id=\"feedDlg_feedUrl\">";
+
+ print "<hr/>";
+
+ if (get_pref('ENABLE_FEED_CATS')) {
+ print __('Place in category:') . " ";
+ print_feed_cat_select("cat", false, 'dojoType="dijit.form.Select"');
+ }
+
+ print "</div>";
+
+ print '<div id="feedDlg_feedsContainer" style="display : none">
+
+ <div class="dlgSec">' . __('Available feeds') . '</div>
+ <div class="dlgSecCont">'.
+ '<select id="feedDlg_feedContainerSelect"
+ dojoType="dijit.form.Select" size="3">
+ <script type="dojo/method" event="onChange" args="value">
+ dijit.byId("feedDlg_feedUrl").attr("value", value);
+ </script>
+ </select>'.
+ '</div></div>';
+
+ print "<div id='feedDlg_loginContainer' style='display : none'>
+
+ <div class=\"dlgSec\">".__("Authentication")."</div>
+ <div class=\"dlgSecCont\">".
+
+ " <input dojoType=\"dijit.form.TextBox\" name='login'\"
+ placeHolder=\"".__("Login")."\"
+ style=\"width : 10em;\"> ".
+ " <input
+ placeHolder=\"".__("Password")."\"
+ dojoType=\"dijit.form.TextBox\" type='password'
+ style=\"width : 10em;\" name='pass'\">
+ </div></div>";
+
+
+ print "<div style=\"clear : both\">
+ <input type=\"checkbox\" name=\"need_auth\" dojoType=\"dijit.form.CheckBox\" id=\"feedDlg_loginCheck\"
+ onclick='checkboxToggleElement(this, \"feedDlg_loginContainer\")'>
+ <label for=\"feedDlg_loginCheck\">".
+ __('This feed requires authentication.')."</div>";
+
+ print "</form>";
+
+ print "<div class=\"dlgButtons\">
+ <button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedAddDlg').execute()\">".__('Subscribe')."</button>";
+
+ if (!(defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER)) {
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"return feedBrowser()\">".__('More feeds')."</button>";
+ }
+
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedAddDlg').hide()\">".__('Cancel')."</button>
+ </div>";
+
+ //return;
+ }
+
+ function feedBrowser() {
+ if (defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER) return;
+
+ $browser_search = $this->dbh->escape_string($_REQUEST["search"]);
+
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"updateFeedBrowser\">";
+
+ print "<div dojoType=\"dijit.Toolbar\">
+ <div style='float : right'>
+ <img style='display : none'
+ id='feed_browser_spinner' src='images/indicator_white.gif'>
+ <input name=\"search\" dojoType=\"dijit.form.TextBox\" size=\"20\" type=\"search\"
+ onchange=\"dijit.byId('feedBrowserDlg').update()\" value=\"$browser_search\">
+ <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('feedBrowserDlg').update()\">".__('Search')."</button>
+ </div>";
+
+ print " <select name=\"mode\" dojoType=\"dijit.form.Select\" onchange=\"dijit.byId('feedBrowserDlg').update()\">
+ <option value='1'>" . __('Popular feeds') . "</option>
+ <option value='2'>" . __('Feed archive') . "</option>
+ </select> ";
+
+ print __("limit:");
+
+ print " <select dojoType=\"dijit.form.Select\" name=\"limit\" onchange=\"dijit.byId('feedBrowserDlg').update()\">";
+
+ foreach (array(25, 50, 100, 200) as $l) {
+ $issel = ($l == $limit) ? "selected=\"1\"" : "";
+ print "<option $issel value=\"$l\">$l</option>";
+ }
+
+ print "</select> ";
+
+ print "</div>";
+
+ $owner_uid = $_SESSION["uid"];
+
+ require_once "feedbrowser.php";
+
+ print "<ul class='browseFeedList' id='browseFeedList'>";
+ print make_feed_browser($search, 25);
+ print "</ul>";
+
+ print "<div align='center'>
+ <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('feedBrowserDlg').execute()\">".__('Subscribe')."</button>
+ <button dojoType=\"dijit.form.Button\" style='display : none' id='feed_archive_remove' onclick=\"dijit.byId('feedBrowserDlg').removeFromArchive()\">".__('Remove')."</button>
+ <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('feedBrowserDlg').hide()\" >".__('Cancel')."</button></div>";
+
+ }
+
+ function search() {
+ $this->params = explode(":", $this->dbh->escape_string($_REQUEST["param"]), 2);
+
+ $active_feed_id = sprintf("%d", $this->params[0]);
+ $is_cat = $this->params[1] != "false";
+
+ print "<div class=\"dlgSec\">".__('Look for')."</div>";
+
+ print "<div class=\"dlgSecCont\">";
+
+ print "<input dojoType=\"dijit.form.ValidationTextBox\"
+ style=\"font-size : 16px; width : 20em;\"
+ required=\"1\" name=\"query\" type=\"search\" value=''>";
+
+ print "<hr/>".__('Limit search to:')." ";
+
+ print "<select name=\"search_mode\" dojoType=\"dijit.form.Select\">
+ <option value=\"all_feeds\">".__('All feeds')."</option>";
+
+ $feed_title = getFeedTitle($active_feed_id);
+
+ if (!$is_cat) {
+ $feed_cat_title = getFeedCatTitle($active_feed_id);
+ } else {
+ $feed_cat_title = getCategoryTitle($active_feed_id);
+ }
+
+ if ($active_feed_id && !$is_cat) {
+ print "<option selected=\"1\" value=\"this_feed\">$feed_title</option>";
+ } else {
+ print "<option disabled=\"1\" value=\"false\">".__('This feed')."</option>";
+ }
+
+ if ($is_cat) {
+ $cat_preselected = "selected=\"1\"";
+ }
+
+ if (get_pref('ENABLE_FEED_CATS') && ($active_feed_id > 0 || $is_cat)) {
+ print "<option $cat_preselected value=\"this_cat\">$feed_cat_title</option>";
+ } else {
+ //print "<option disabled>".__('This category')."</option>";
+ }
+
+ print "</select>";
+
+ print "</div>";
+
+ print "<div class=\"dlgButtons\">";
+
+ if (!SPHINX_ENABLED) {
+ print "<div style=\"float : left\">
+ <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/wiki/SearchSyntax\">Search syntax</a>
+ </div>";
+ }
+
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('searchDlg').execute()\">".__('Search')."</button>
+ <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('searchDlg').hide()\">".__('Cancel')."</button>
+ </div>";
+ }
+
}
?>
diff --git a/classes/handler.php b/classes/handler.php
index 68b16eac1..b20932045 100644
--- a/classes/handler.php
+++ b/classes/handler.php
@@ -1,10 +1,10 @@
<?php
class Handler implements IHandler {
- protected $link;
+ protected $dbh;
protected $args;
- function __construct($link, $args) {
- $this->link = $link;
+ function __construct($args) {
+ $this->dbh = Db::get();
$this->args = $args;
}
diff --git a/classes/handler/public.php b/classes/handler/public.php
index 4a9b0c48e..7fa744107 100644
--- a/classes/handler/public.php
+++ b/classes/handler/public.php
@@ -2,7 +2,7 @@
class Handler_Public extends Handler {
private function generate_syndicated_feed($owner_uid, $feed, $is_cat,
- $limit, $offset, $search, $search_mode, $match_on,
+ $limit, $offset, $search, $search_mode,
$view_mode = false, $format = 'atom') {
require_once "lib/MiniTemplator.class.php";
@@ -12,22 +12,41 @@ class Handler_Public extends Handler {
"padding : 5px; border-style : dashed; border-color : #e7d796;".
"margin-bottom : 1em; color : #9a8c59;";
- if (!$limit) $limit = 100;
+ if (!$limit) $limit = 60;
- if (get_pref($this->link, "SORT_HEADLINES_BY_FEED_DATE", $owner_uid)) {
- $date_sort_field = "updated";
- } else {
- $date_sort_field = "date_entered";
- }
+ $date_sort_field = "date_entered DESC, updated DESC";
if ($feed == -2)
- $date_sort_field = "last_read";
+ $date_sort_field = "last_published DESC";
+ else if ($feed == -1)
+ $date_sort_field = "last_marked DESC";
+
+ $qfh_ret = queryFeedHeadlines($feed,
+ 1, $view_mode, $is_cat, $search, $search_mode,
+ $date_sort_field, $offset, $owner_uid,
+ false, 0, false, true);
+
+ $result = $qfh_ret[0];
+
+ if ($this->dbh->num_rows($result) != 0) {
+ $ts = strtotime($this->dbh->fetch_result($result, 0, "date_entered"));
- $qfh_ret = queryFeedHeadlines($this->link, $feed,
+ if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) &&
+ strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $ts) {
+ header('HTTP/1.0 304 Not Modified');
+ return;
+ }
+
+ $last_modified = gmdate("D, d M Y H:i:s", $ts) . " GMT";
+ header("Last-Modified: $last_modified", true);
+ }
+
+ $qfh_ret = queryFeedHeadlines($feed,
$limit, $view_mode, $is_cat, $search, $search_mode,
- $match_on, "$date_sort_field DESC", $offset, $owner_uid,
+ $date_sort_field, $offset, $owner_uid,
false, 0, false, true);
+
$result = $qfh_ret[0];
$feed_title = htmlspecialchars($qfh_ret[1]);
$feed_site_url = $qfh_ret[2];
@@ -35,7 +54,7 @@ class Handler_Public extends Handler {
$feed_self_url = get_self_url_prefix() .
"/public.php?op=rss&id=-2&key=" .
- get_feed_access_key($this->link, -2, false, $owner_uid);
+ get_feed_access_key(-2, false, $owner_uid);
if (!$feed_site_url) $feed_site_url = get_self_url_prefix();
@@ -55,19 +74,21 @@ class Handler_Public extends Handler {
$tpl->setVariable('SELF_URL', htmlspecialchars(get_self_url_prefix()), true);
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
+
$tpl->setVariable('ARTICLE_ID', htmlspecialchars($line['link']), true);
$tpl->setVariable('ARTICLE_LINK', htmlspecialchars($line['link']), true);
$tpl->setVariable('ARTICLE_TITLE', htmlspecialchars($line['title']), true);
$tpl->setVariable('ARTICLE_EXCERPT',
truncate_string(strip_tags($line["content_preview"]), 100, '...'), true);
- $content = sanitize($this->link, $line["content_preview"], false, $owner_uid);
+ $content = sanitize($line["content_preview"], false, $owner_uid);
if ($line['note']) {
$content = "<div style=\"$note_style\">Article note: " . $line['note'] . "</div>" .
$content;
-}
+ $tpl->setVariable('ARTICLE_NOTE', htmlspecialchars($line['note']), true);
+ }
$tpl->setVariable('ARTICLE_CONTENT', $content, true);
@@ -78,14 +99,14 @@ class Handler_Public extends Handler {
$tpl->setVariable('ARTICLE_AUTHOR', htmlspecialchars($line['author']), true);
- $tags = get_article_tags($this->link, $line["id"], $owner_uid);
+ $tags = get_article_tags($line["id"], $owner_uid);
foreach ($tags as $tag) {
$tpl->setVariable('ARTICLE_CATEGORY', htmlspecialchars($tag), true);
$tpl->addBlock('category');
}
- $enclosures = get_article_enclosures($this->link, $line["id"]);
+ $enclosures = get_article_enclosures($line["id"]);
foreach ($enclosures as $e) {
$type = htmlspecialchars($e['content_type']);
@@ -130,20 +151,20 @@ class Handler_Public extends Handler {
$feed['articles'] = array();
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$article = array();
$article['id'] = $line['link'];
$article['link'] = $line['link'];
$article['title'] = $line['title'];
$article['excerpt'] = truncate_string(strip_tags($line["content_preview"]), 100, '...');
- $article['content'] = sanitize($this->link, $line["content_preview"], false, $owner_uid);
+ $article['content'] = sanitize($line["content_preview"], false, $owner_uid);
$article['updated'] = date('c', strtotime($line["updated"]));
if ($line['note']) $article['note'] = $line['note'];
if ($article['author']) $article['author'] = $line['author'];
- $tags = get_article_tags($this->link, $line["id"], $owner_uid);
+ $tags = get_article_tags($line["id"], $owner_uid);
if (count($tags) > 0) {
$article['tags'] = array();
@@ -153,7 +174,7 @@ class Handler_Public extends Handler {
}
}
- $enclosures = get_article_enclosures($this->link, $line["id"]);
+ $enclosures = get_article_enclosures($line["id"]);
if (count($enclosures) > 0) {
$article['enclosures'] = array();
@@ -180,19 +201,19 @@ class Handler_Public extends Handler {
}
function getUnread() {
- $login = db_escape_string($_REQUEST["login"]);
+ $login = $this->dbh->escape_string($_REQUEST["login"]);
$fresh = $_REQUEST["fresh"] == "1";
- $result = db_query($this->link, "SELECT id FROM ttrss_users WHERE login = '$login'");
+ $result = $this->dbh->query("SELECT id FROM ttrss_users WHERE login = '$login'");
- if (db_num_rows($result) == 1) {
- $uid = db_fetch_result($result, 0, "id");
+ if ($this->dbh->num_rows($result) == 1) {
+ $uid = $this->dbh->fetch_result($result, 0, "id");
- print getGlobalUnread($this->link, $uid);
+ print getGlobalUnread($uid);
if ($fresh) {
print ";";
- print getFeedArticles($this->link, -3, false, true, $uid);
+ print getFeedArticles(-3, false, true, $uid);
}
} else {
@@ -202,16 +223,16 @@ class Handler_Public extends Handler {
}
function getProfiles() {
- $login = db_escape_string($_REQUEST["login"]);
+ $login = $this->dbh->escape_string($_REQUEST["login"]);
- $result = db_query($this->link, "SELECT * FROM ttrss_settings_profiles,ttrss_users
+ $result = $this->dbh->query("SELECT * FROM ttrss_settings_profiles,ttrss_users
WHERE ttrss_users.id = ttrss_settings_profiles.owner_uid AND login = '$login' ORDER BY title");
print "<select dojoType='dijit.form.Select' style='width : 220px; margin : 0px' name='profile'>";
print "<option value='0'>" . __("Default profile") . "</option>";
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$id = $line["id"];
$title = $line["title"];
@@ -222,9 +243,9 @@ class Handler_Public extends Handler {
}
function pubsub() {
- $mode = db_escape_string($_REQUEST['hub_mode']);
- $feed_id = (int) db_escape_string($_REQUEST['id']);
- $feed_url = db_escape_string($_REQUEST['hub_topic']);
+ $mode = $this->dbh->escape_string($_REQUEST['hub_mode']);
+ $feed_id = (int) $this->dbh->escape_string($_REQUEST['id']);
+ $feed_url = $this->dbh->escape_string($_REQUEST['hub_topic']);
if (!PUBSUBHUBBUB_ENABLED) {
header('HTTP/1.0 404 Not Found');
@@ -234,17 +255,17 @@ class Handler_Public extends Handler {
// TODO: implement hub_verifytoken checking
- $result = db_query($this->link, "SELECT feed_url FROM ttrss_feeds
+ $result = $this->dbh->query("SELECT feed_url FROM ttrss_feeds
WHERE id = '$feed_id'");
- if (db_num_rows($result) != 0) {
+ if ($this->dbh->num_rows($result) != 0) {
- $check_feed_url = db_fetch_result($result, 0, "feed_url");
+ $check_feed_url = $this->dbh->fetch_result($result, 0, "feed_url");
if ($check_feed_url && ($check_feed_url == $feed_url || !$feed_url)) {
if ($mode == "subscribe") {
- db_query($this->link, "UPDATE ttrss_feeds SET pubsub_state = 2
+ $this->dbh->query("UPDATE ttrss_feeds SET pubsub_state = 2
WHERE id = '$feed_id'");
print $_REQUEST['hub_challenge'];
@@ -252,7 +273,7 @@ class Handler_Public extends Handler {
} else if ($mode == "unsubscribe") {
- db_query($this->link, "UPDATE ttrss_feeds SET pubsub_state = 0
+ $this->dbh->query("UPDATE ttrss_feeds SET pubsub_state = 0
WHERE id = '$feed_id'");
print $_REQUEST['hub_challenge'];
@@ -261,9 +282,9 @@ class Handler_Public extends Handler {
} else if (!$mode) {
// Received update ping, schedule feed update.
- //update_rss_feed($this->link, $feed_id, true, true);
+ //update_rss_feed($feed_id, true, true);
- db_query($this->link, "UPDATE ttrss_feeds SET
+ $this->dbh->query("UPDATE ttrss_feeds SET
last_update_started = '1970-01-01',
last_updated = '1970-01-01' WHERE id = '$feed_id'");
@@ -285,18 +306,18 @@ class Handler_Public extends Handler {
}
function share() {
- $uuid = db_escape_string($_REQUEST["key"]);
+ $uuid = $this->dbh->escape_string($_REQUEST["key"]);
- $result = db_query($this->link, "SELECT ref_id, owner_uid FROM ttrss_user_entries WHERE
+ $result = $this->dbh->query("SELECT ref_id, owner_uid FROM ttrss_user_entries WHERE
uuid = '$uuid'");
- if (db_num_rows($result) != 0) {
+ if ($this->dbh->num_rows($result) != 0) {
header("Content-Type: text/html");
- $id = db_fetch_result($result, 0, "ref_id");
- $owner_uid = db_fetch_result($result, 0, "owner_uid");
+ $id = $this->dbh->fetch_result($result, 0, "ref_id");
+ $owner_uid = $this->dbh->fetch_result($result, 0, "owner_uid");
- $article = format_article($this->link, $id, false, true, $owner_uid);
+ $article = format_article($id, false, true, $owner_uid);
print_r($article['content']);
@@ -307,38 +328,37 @@ class Handler_Public extends Handler {
}
function rss() {
- $feed = db_escape_string($_REQUEST["id"]);
- $key = db_escape_string($_REQUEST["key"]);
+ $feed = $this->dbh->escape_string($_REQUEST["id"]);
+ $key = $this->dbh->escape_string($_REQUEST["key"]);
$is_cat = $_REQUEST["is_cat"] != false;
- $limit = (int)db_escape_string($_REQUEST["limit"]);
- $offset = (int)db_escape_string($_REQUEST["offset"]);
+ $limit = (int)$this->dbh->escape_string($_REQUEST["limit"]);
+ $offset = (int)$this->dbh->escape_string($_REQUEST["offset"]);
- $search = db_escape_string($_REQUEST["q"]);
- $match_on = db_escape_string($_REQUEST["m"]);
- $search_mode = db_escape_string($_REQUEST["smode"]);
- $view_mode = db_escape_string($_REQUEST["view-mode"]);
+ $search = $this->dbh->escape_string($_REQUEST["q"]);
+ $search_mode = $this->dbh->escape_string($_REQUEST["smode"]);
+ $view_mode = $this->dbh->escape_string($_REQUEST["view-mode"]);
- $format = db_escape_string($_REQUEST['format']);
+ $format = $this->dbh->escape_string($_REQUEST['format']);
if (!$format) $format = 'atom';
if (SINGLE_USER_MODE) {
- authenticate_user($this->link, "admin", null);
+ authenticate_user("admin", null);
}
$owner_id = false;
if ($key) {
- $result = db_query($this->link, "SELECT owner_uid FROM
+ $result = $this->dbh->query("SELECT owner_uid FROM
ttrss_access_keys WHERE access_key = '$key' AND feed_id = '$feed'");
- if (db_num_rows($result) == 1)
- $owner_id = db_fetch_result($result, 0, "owner_uid");
+ if ($this->dbh->num_rows($result) == 1)
+ $owner_id = $this->dbh->fetch_result($result, 0, "owner_uid");
}
if ($owner_id) {
$this->generate_syndicated_feed($owner_id, $feed, $is_cat, $limit,
- $offset, $search, $search_mode, $match_on, $view_mode, $format);
+ $offset, $search, $search_mode, $view_mode, $format);
} else {
header('HTTP/1.1 403 Forbidden');
}
@@ -347,24 +367,26 @@ class Handler_Public extends Handler {
function globalUpdateFeeds() {
include "rssfuncs.php";
// Update all feeds needing a update.
- update_daemon_common($this->link, 0, true, false);
+ update_daemon_common(0, true, false);
+ housekeeping_common(false);
+
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
+
}
function sharepopup() {
if (SINGLE_USER_MODE) {
- login_sequence($this->link);
+ login_sequence();
}
header('Content-Type: text/html; charset=utf-8');
- print "<html>
- <head>
- <title>Tiny Tiny RSS</title>
- <link rel=\"stylesheet\" type=\"text/css\" href=\"utility.css\">
- <script type=\"text/javascript\" src=\"lib/prototype.js\"></script>
- <script type=\"text/javascript\" src=\"lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls\"></script>
- <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
- </head>
- <body id='sharepopup'>";
+ print "<html><head><title>Tiny Tiny RSS</title>";
+
+ stylesheet_tag("utility.css");
+ javascript_tag("lib/prototype.js");
+ javascript_tag("lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls");
+ print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
+ </head><body id='sharepopup'>";
$action = $_REQUEST["action"];
@@ -372,12 +394,12 @@ class Handler_Public extends Handler {
if ($action == 'share') {
- $title = db_escape_string(strip_tags($_REQUEST["title"]));
- $url = db_escape_string(strip_tags($_REQUEST["url"]));
- $content = db_escape_string(strip_tags($_REQUEST["content"]));
- $labels = db_escape_string(strip_tags($_REQUEST["labels"]));
+ $title = $this->dbh->escape_string(strip_tags($_REQUEST["title"]));
+ $url = $this->dbh->escape_string(strip_tags($_REQUEST["url"]));
+ $content = $this->dbh->escape_string(strip_tags($_REQUEST["content"]));
+ $labels = $this->dbh->escape_string(strip_tags($_REQUEST["labels"]));
- Article::create_published_article($this->link, $title, $url, $content, $labels,
+ Article::create_published_article($title, $url, $content, $labels,
$_SESSION["uid"]);
print "<script type='text/javascript'>";
@@ -456,14 +478,6 @@ class Handler_Public extends Handler {
<tr><td align="right"><?php echo __("Password:") ?></td>
<td align="right"><input type="password" name="password"
value="<?php echo $_SESSION["fake_password"] ?>"></td></tr>
- <tr><td align="right"><?php echo __("Language:") ?></td>
- <td align="right">
- <?php
- print_select_hash("language", $_COOKIE["ttrss_lang"], get_translations(),
- "style='width : 100%''");
-
- ?>
- </td></tr>
<tr><td colspan='2'>
<button type="submit">
<?php echo __('Log in') ?></button>
@@ -479,32 +493,39 @@ class Handler_Public extends Handler {
}
function login() {
-
- $_SESSION["prefs_cache"] = array();
-
if (!SINGLE_USER_MODE) {
- $login = db_escape_string($_POST["login"]);
+ $login = $this->dbh->escape_string($_POST["login"]);
$password = $_POST["password"];
$remember_me = $_POST["remember_me"];
- if (authenticate_user($this->link, $login, $password)) {
+ if ($remember_me) {
+ session_set_cookie_params(SESSION_COOKIE_LIFETIME);
+ } else {
+ session_set_cookie_params(0);
+ }
+
+ @session_start();
+
+ if (authenticate_user($login, $password)) {
$_POST["password"] = "";
- $_SESSION["language"] = $_POST["language"];
- $_SESSION["ref_schema_version"] = get_schema_version($this->link, true);
+ if (get_schema_version() >= 120) {
+ $_SESSION["language"] = get_pref("USER_LANGUAGE", $_SESSION["uid"]);
+ }
+
+ $_SESSION["ref_schema_version"] = get_schema_version(true);
$_SESSION["bw_limit"] = !!$_POST["bw_limit"];
if ($_POST["profile"]) {
- $profile = db_escape_string($_POST["profile"]);
+ $profile = $this->dbh->escape_string($_POST["profile"]);
- $result = db_query($this->link, "SELECT id FROM ttrss_settings_profiles
+ $result = $this->dbh->query("SELECT id FROM ttrss_settings_profiles
WHERE id = '$profile' AND owner_uid = " . $_SESSION["uid"]);
- if (db_num_rows($result) != 0) {
+ if ($this->dbh->num_rows($result) != 0) {
$_SESSION["profile"] = $profile;
- $_SESSION["prefs_cache"] = array();
}
}
} else {
@@ -521,12 +542,12 @@ class Handler_Public extends Handler {
function subscribe() {
if (SINGLE_USER_MODE) {
- login_sequence($this->link);
+ login_sequence();
}
if ($_SESSION["uid"]) {
- $feed_url = db_escape_string(trim($_REQUEST["feed_url"]));
+ $feed_url = $this->dbh->escape_string(trim($_REQUEST["feed_url"]));
header('Content-Type: text/html; charset=utf-8');
print "<html>
@@ -536,11 +557,11 @@ class Handler_Public extends Handler {
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
</head>
<body>
- <img class=\"floatingLogo\" src=\"images/logo_wide.png\"
+ <img class=\"floatingLogo\" src=\"images/logo_small.png\"
alt=\"Tiny Tiny RSS\"/>
- <h1>".__("Subscribe to feed...")."</h1>";
+ <h1>".__("Subscribe to feed...")."</h1><div class='content'>";
- $rc = subscribe_to_feed($this->link, $feed_url);
+ $rc = subscribe_to_feed($feed_url);
switch ($rc['code']) {
case 0:
@@ -588,10 +609,10 @@ class Handler_Public extends Handler {
$tt_uri = get_self_url_prefix();
if ($rc['code'] <= 2){
- $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds WHERE
feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"]);
- $feed_id = db_fetch_result($result, 0, "id");
+ $feed_id = $this->dbh->fetch_result($result, 0, "id");
} else {
$feed_id = 0;
}
@@ -611,24 +632,25 @@ class Handler_Public extends Handler {
<input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
</form></p>";
- print "</body></html>";
+ print "</div></body></html>";
} else {
- render_login_form($this->link);
+ render_login_form();
}
}
function subscribe2() {
- $feed_url = db_escape_string(trim($_REQUEST["feed_url"]));
- $cat_id = db_escape_string($_REQUEST["cat_id"]);
- $from = db_escape_string($_REQUEST["from"]);
+ $feed_url = $this->dbh->escape_string(trim($_REQUEST["feed_url"]));
+ $cat_id = $this->dbh->escape_string($_REQUEST["cat_id"]);
+ $from = $this->dbh->escape_string($_REQUEST["from"]);
+ $feed_urls = array();
/* only read authentication information from POST */
- $auth_login = db_escape_string(trim($_POST["auth_login"]));
- $auth_pass = db_escape_string(trim($_POST["auth_pass"]));
+ $auth_login = $this->dbh->escape_string(trim($_POST["auth_login"]));
+ $auth_pass = $this->dbh->escape_string(trim($_POST["auth_pass"]));
- $rc = subscribe_to_feed($this->link, $feed_url, $cat_id, $auth_login, $auth_pass);
+ $rc = subscribe_to_feed($feed_url, $cat_id, $auth_login, $auth_pass);
switch ($rc) {
case 1:
@@ -645,8 +667,10 @@ class Handler_Public extends Handler {
break;
case 4:
print_notice(__("Multiple feed URLs found."));
-
- $feed_urls = get_feeds_from_html($feed_url);
+ $contents = @fetch_file_contents($url, false, $auth_login, $auth_pass);
+ if (is_html($contents)) {
+ $feed_urls = get_feeds_from_html($url, $contents);
+ }
break;
case 5:
print_error(T_sprintf("Could not subscribe to <b>%s</b>.<br>Can't download the Feed URL.", $feed_url));
@@ -675,10 +699,10 @@ class Handler_Public extends Handler {
$tt_uri = get_self_url_prefix();
if ($rc <= 2){
- $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds WHERE
feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"]);
- $feed_id = db_fetch_result($result, 0, "id");
+ $feed_id = $this->dbh->fetch_result($result, 0, "id");
} else {
$feed_id = 0;
}
@@ -707,5 +731,210 @@ class Handler_Public extends Handler {
print json_encode(array("error" => array("code" => 7)));
}
+ function forgotpass() {
+ header('Content-Type: text/html; charset=utf-8');
+ print "<html><head><title>Tiny Tiny RSS</title>";
+
+ stylesheet_tag("utility.css");
+ javascript_tag("lib/prototype.js");
+
+ print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
+ </head><body id='forgotpass'>";
+
+ print '<div class="floatingLogo"><img src="images/logo_small.png"></div>';
+ print "<h1>".__("Password recovery")."</h1>";
+ print "<div class='content'>";
+
+ @$method = $_POST['method'];
+
+ if (!$method) {
+ print_notice(__("You will need to provide valid account name and email. New password will be sent on your email address."));
+
+ print "<form method='POST' action='public.php'>";
+ print "<input type='hidden' name='method' value='do'>";
+ print "<input type='hidden' name='op' value='forgotpass'>";
+
+ print "<fieldset>";
+ print "<label>".__("Login:")."</label>";
+ print "<input type='text' name='login' value='' required>";
+ print "</fieldset>";
+
+ print "<fieldset>";
+ print "<label>".__("Email:")."</label>";
+ print "<input type='email' name='email' value='' required>";
+ print "</fieldset>";
+
+ print "<fieldset>";
+ print "<label>".__("How much is two plus two:")."</label>";
+ print "<input type='text' name='test' value='' required>";
+ print "</fieldset>";
+
+ print "<p/>";
+ print "<button type='submit'>".__("Reset password")."</button>";
+
+ print "</form>";
+ } else if ($method == 'do') {
+
+ $login = $this->dbh->escape_string($_POST["login"]);
+ $email = $this->dbh->escape_string($_POST["email"]);
+ $test = $this->dbh->escape_string($_POST["test"]);
+
+ if (($test != 4 && $test != 'four') || !$email || !$login) {
+ print_error(__('Some of the required form parameters are missing or incorrect.'));
+
+ print "<form method=\"GET\" action=\"public.php\">
+ <input type=\"hidden\" name=\"op\" value=\"forgotpass\">
+ <input type=\"submit\" value=\"".__("Go back")."\">
+ </form>";
+
+ } else {
+
+ $result = $this->dbh->query("SELECT id FROM ttrss_users
+ WHERE login = '$login' AND email = '$email'");
+
+ if ($this->dbh->num_rows($result) != 0) {
+ $id = $this->dbh->fetch_result($result, 0, "id");
+
+ Pref_Users::resetUserPassword($id, false);
+
+ print "<p>";
+
+ print "<p>"."Completed."."</p>";
+
+ print "<form method=\"GET\" action=\"index.php\">
+ <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
+ </form>";
+
+ } else {
+ print_error(__("Sorry, login and email combination not found."));
+
+ print "<form method=\"GET\" action=\"public.php\">
+ <input type=\"hidden\" name=\"op\" value=\"forgotpass\">
+ <input type=\"submit\" value=\"".__("Go back")."\">
+ </form>";
+
+ }
+ }
+
+ }
+
+ print "</div>";
+ print "</body>";
+ print "</html>";
+
+ }
+
+ function dbupdate() {
+ if (!SINGLE_USER_MODE && $_SESSION["access_level"] < 10) {
+ $_SESSION["login_error_msg"] = __("Your access level is insufficient to run this script.");
+ render_login_form();
+ exit;
+ }
+
+ ?><html>
+ <head>
+ <title>Database Updater</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <link rel="stylesheet" type="text/css" href="utility.css"/>
+ </head>
+ <style type="text/css">
+ span.ok { color : #009000; font-weight : bold; }
+ span.err { color : #ff0000; font-weight : bold; }
+ </style>
+ <body>
+ <script type='text/javascript'>
+ function confirmOP() {
+ return confirm("Update the database?");
+ }
+ </script>
+
+ <div class="floatingLogo"><img src="images/logo_small.png"></div>
+
+ <h1><?php echo __("Database Updater") ?></h1>
+
+ <div class="content">
+
+ <?php
+ @$op = $_REQUEST["subop"];
+ $updater = new DbUpdater(Db::get(), DB_TYPE, SCHEMA_VERSION);
+
+ if ($op == "performupdate") {
+ if ($updater->isUpdateRequired()) {
+
+ print "<h2>Performing updates</h2>";
+
+ print "<h3>Updating to schema version " . SCHEMA_VERSION . "</h3>";
+
+ print "<ul>";
+
+ for ($i = $updater->getSchemaVersion() + 1; $i <= SCHEMA_VERSION; $i++) {
+ print "<li>Performing update up to version $i...";
+
+ $result = $updater->performUpdateTo($i);
+
+ if (!$result) {
+ print "<span class='err'>FAILED!</span></li></ul>";
+
+ print_warning("One of the updates failed. Either retry the process or perform updates manually.");
+ print "<p><form method=\"GET\" action=\"index.php\">
+ <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
+ </form>";
+
+ break;
+ } else {
+ print "<span class='ok'>OK!</span></li>";
+ }
+ }
+
+ print "</ul>";
+
+ print_notice("Your Tiny Tiny RSS database is now updated to the latest version.");
+
+ print "<p><form method=\"GET\" action=\"index.php\">
+ <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
+ </form>";
+
+ } else {
+ print "<h2>Your database is up to date.</h2>";
+
+ print "<p><form method=\"GET\" action=\"index.php\">
+ <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
+ </form>";
+ }
+ } else {
+ if ($updater->isUpdateRequired()) {
+
+ print "<h2>Database update required</h2>";
+
+ print "<h3>";
+ printf("Your Tiny Tiny RSS database needs update to the latest version: %d to %d.",
+ $updater->getSchemaVersion(), SCHEMA_VERSION);
+ print "</h3>";
+
+ print_warning("Please backup your database before proceeding.");
+
+ print "<form method='POST'>
+ <input type='hidden' name='subop' value='performupdate'>
+ <input type='submit' onclick='return confirmOP()' value='".__("Perform updates")."'>
+ </form>";
+
+ } else {
+
+ print_notice("Tiny Tiny RSS database is up to date.");
+
+ print "<p><form method=\"GET\" action=\"index.php\">
+ <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
+ </form>";
+
+ }
+ }
+ ?>
+
+ </div>
+ </body>
+ </html>
+ <?php
+ }
+
}
?>
diff --git a/classes/idb.php b/classes/idb.php
new file mode 100644
index 000000000..16f760bf6
--- /dev/null
+++ b/classes/idb.php
@@ -0,0 +1,13 @@
+<?php
+interface IDb {
+ function connect($host, $user, $pass, $db, $port);
+ function escape_string($s, $strip_tags = true);
+ function query($query, $die_on_error = true);
+ function fetch_assoc($result);
+ function num_rows($result);
+ function fetch_result($result, $row, $param);
+ function close();
+ function affected_rows($result);
+ function last_error();
+}
+?>
diff --git a/classes/logger.php b/classes/logger.php
new file mode 100644
index 000000000..4a9c1df82
--- /dev/null
+++ b/classes/logger.php
@@ -0,0 +1,65 @@
+<?php
+class Logger {
+ private static $instance;
+ private $adapter;
+
+ public static $errornames = array(
+ 1 => 'E_ERROR',
+ 2 => 'E_WARNING',
+ 4 => 'E_PARSE',
+ 8 => 'E_NOTICE',
+ 16 => 'E_CORE_ERROR',
+ 32 => 'E_CORE_WARNING',
+ 64 => 'E_COMPILE_ERROR',
+ 128 => 'E_COMPILE_WARNING',
+ 256 => 'E_USER_ERROR',
+ 512 => 'E_USER_WARNING',
+ 1024 => 'E_USER_NOTICE',
+ 2048 => 'E_STRICT',
+ 4096 => 'E_RECOVERABLE_ERROR',
+ 8192 => 'E_DEPRECATED',
+ 16384 => 'E_USER_DEPRECATED',
+ 32767 => 'E_ALL');
+
+ function log_error($errno, $errstr, $file, $line, $context) {
+ if ($errno == E_NOTICE) return false;
+
+ if ($this->adapter)
+ return $this->adapter->log_error($errno, $errstr, $file, $line, $context);
+ else
+ return false;
+ }
+
+ function log($string) {
+ if ($this->adapter)
+ return $this->adapter->log($string);
+ else
+ return false;
+ }
+
+ private function __clone() {
+ //
+ }
+
+ function __construct() {
+ switch (LOG_DESTINATION) {
+ case "sql":
+ $this->adapter = new Logger_SQL();
+ break;
+ case "syslog":
+ $this->adapter = new Logger_Syslog();
+ break;
+ default:
+ $this->adapter = false;
+ }
+ }
+
+ public static function get() {
+ if (self::$instance == null)
+ self::$instance = new self();
+
+ return self::$instance;
+ }
+
+}
+?>
diff --git a/classes/logger/sql.php b/classes/logger/sql.php
new file mode 100644
index 000000000..c0f8b4598
--- /dev/null
+++ b/classes/logger/sql.php
@@ -0,0 +1,28 @@
+<?php
+class Logger_SQL {
+
+ function log_error($errno, $errstr, $file, $line, $context) {
+ if (Db::get() && get_schema_version() > 117) {
+
+ $errno = Db::get()->escape_string($errno);
+ $errstr = Db::get()->escape_string($errstr);
+ $file = Db::get()->escape_string($file);
+ $line = Db::get()->escape_string($line);
+ $context = ''; // backtrace is a lot of data which is not really critical to store
+ //$context = $this->dbh->escape_string(serialize($context));
+
+ $owner_uid = $_SESSION["uid"] ? $_SESSION["uid"] : "NULL";
+
+ $result = Db::get()->query(
+ "INSERT INTO ttrss_error_log
+ (errno, errstr, filename, lineno, context, owner_uid, created_at) VALUES
+ ($errno, '$errstr', '$file', '$line', '$context', $owner_uid, NOW())");
+
+ return Db::get()->affected_rows($result) != 0;
+ }
+
+ return false;
+ }
+
+}
+?>
diff --git a/classes/logger/syslog.php b/classes/logger/syslog.php
new file mode 100644
index 000000000..b8b5260a0
--- /dev/null
+++ b/classes/logger/syslog.php
@@ -0,0 +1,31 @@
+<?php
+class Logger_Syslog {
+
+ function log_error($errno, $errstr, $file, $line, $context) {
+
+ switch ($errno) {
+ case E_ERROR:
+ case E_PARSE:
+ case E_CORE_ERROR:
+ case E_COMPILE_ERROR:
+ case E_USER_ERROR:
+ $priority = LOG_ERR;
+ break;
+ case E_WARNING:
+ case E_CORE_WARNING:
+ case E_COMPILE_WARNING:
+ case E_USER_WARNING:
+ $priority = LOG_WARNING;
+ break;
+ default:
+ $priority = LOG_INFO;
+ }
+
+ $errname = Logger::$errornames[$errno] . " ($errno)";
+
+ syslog($priority, "[tt-rss] $errname ($file:$line) $errstr");
+
+ }
+
+}
+?>
diff --git a/classes/opml.php b/classes/opml.php
index b91e395d1..3f4030dea 100644
--- a/classes/opml.php
+++ b/classes/opml.php
@@ -29,10 +29,10 @@ class Opml extends Handler_Protected {
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
</head>
<body>
- <div class=\"floatingLogo\"><img src=\"images/logo_wide.png\"></div>
- <h1>".__('OPML Utility')."</h1>";
+ <div class=\"floatingLogo\"><img src=\"images/logo_small.png\"></div>
+ <h1>".__('OPML Utility')."</h1><div class='content'>";
- add_feed_category($this->link, "Imported feeds");
+ add_feed_category("Imported feeds");
$this->opml_notice(__("Importing OPML..."));
$this->opml_import($owner_uid);
@@ -41,7 +41,7 @@ class Opml extends Handler_Protected {
<input type=\"submit\" value=\"".__("Return to preferences")."\">
</form>";
- print "</body></html>";
+ print "</div></body></html>";
}
@@ -66,27 +66,27 @@ class Opml extends Handler_Protected {
$out = "";
if ($cat_id) {
- $result = db_query($this->link, "SELECT title FROM ttrss_feed_categories WHERE id = '$cat_id'
+ $result = $this->dbh->query("SELECT title FROM ttrss_feed_categories WHERE id = '$cat_id'
AND owner_uid = '$owner_uid'");
- $cat_title = htmlspecialchars(db_fetch_result($result, 0, "title"));
+ $cat_title = htmlspecialchars($this->dbh->fetch_result($result, 0, "title"));
}
if ($cat_title) $out .= "<outline text=\"$cat_title\">\n";
- $result = db_query($this->link, "SELECT id,title
+ $result = $this->dbh->query("SELECT id,title
FROM ttrss_feed_categories WHERE
$cat_qpart AND owner_uid = '$owner_uid' ORDER BY order_id, title");
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$title = htmlspecialchars($line["title"]);
$out .= $this->opml_export_category($owner_uid, $line["id"], $hide_private_feeds);
}
- $feeds_result = db_query($this->link, "select title, feed_url, site_url
+ $feeds_result = $this->dbh->query("select title, feed_url, site_url
from ttrss_feeds where $feed_cat_qpart AND owner_uid = '$owner_uid' AND $hide_qpart
order by order_id, title");
- while ($fline = db_fetch_assoc($feeds_result)) {
+ while ($fline = $this->dbh->fetch_assoc($feeds_result)) {
$title = htmlspecialchars($fline["title"]);
$url = htmlspecialchars($fline["feed_url"]);
$site_url = htmlspecialchars($fline["site_url"]);
@@ -131,10 +131,10 @@ class Opml extends Handler_Protected {
if ($include_settings) {
$out .= "<outline text=\"tt-rss-prefs\" schema-version=\"".SCHEMA_VERSION."\">";
- $result = db_query($this->link, "SELECT pref_name, value FROM ttrss_user_prefs WHERE
+ $result = $this->dbh->query("SELECT pref_name, value FROM ttrss_user_prefs WHERE
profile IS NULL AND owner_uid = " . $_SESSION["uid"] . " ORDER BY pref_name");
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$name = $line["pref_name"];
$value = htmlspecialchars($line["value"]);
@@ -145,10 +145,10 @@ class Opml extends Handler_Protected {
$out .= "<outline text=\"tt-rss-labels\" schema-version=\"".SCHEMA_VERSION."\">";
- $result = db_query($this->link, "SELECT * FROM ttrss_labels2 WHERE
+ $result = $this->dbh->query("SELECT * FROM ttrss_labels2 WHERE
owner_uid = " . $_SESSION['uid']);
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$name = htmlspecialchars($line['caption']);
$fg_color = htmlspecialchars($line['fg_color']);
$bg_color = htmlspecialchars($line['bg_color']);
@@ -161,10 +161,10 @@ class Opml extends Handler_Protected {
$out .= "<outline text=\"tt-rss-filters\" schema-version=\"".SCHEMA_VERSION."\">";
- $result = db_query($this->link, "SELECT * FROM ttrss_filters2
+ $result = $this->dbh->query("SELECT * FROM ttrss_filters2
WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY id");
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
foreach (array('enabled', 'match_any_rule') as $b) {
$line[$b] = sql_bool_to_bool($line[$b]);
}
@@ -172,17 +172,17 @@ class Opml extends Handler_Protected {
$line["rules"] = array();
$line["actions"] = array();
- $tmp_result = db_query($this->link, "SELECT * FROM ttrss_filters2_rules
+ $tmp_result = $this->dbh->query("SELECT * FROM ttrss_filters2_rules
WHERE filter_id = ".$line["id"]);
- while ($tmp_line = db_fetch_assoc($tmp_result)) {
+ while ($tmp_line = $this->dbh->fetch_assoc($tmp_result)) {
unset($tmp_line["id"]);
unset($tmp_line["filter_id"]);
$cat_filter = sql_bool_to_bool($tmp_line["cat_filter"]);
if ($cat_filter && $tmp_line["cat_id"] || $tmp_line["feed_id"]) {
- $tmp_line["feed"] = getFeedTitle($this->link,
+ $tmp_line["feed"] = getFeedTitle(
$cat_filter ? $tmp_line["cat_id"] : $tmp_line["feed_id"],
$cat_filter);
} else {
@@ -197,10 +197,10 @@ class Opml extends Handler_Protected {
array_push($line["rules"], $tmp_line);
}
- $tmp_result = db_query($this->link, "SELECT * FROM ttrss_filters2_actions
+ $tmp_result = $this->dbh->query("SELECT * FROM ttrss_filters2_actions
WHERE filter_id = ".$line["id"]);
- while ($tmp_line = db_fetch_assoc($tmp_result)) {
+ while ($tmp_line = $this->dbh->fetch_assoc($tmp_result)) {
unset($tmp_line["id"]);
unset($tmp_line["filter_id"]);
@@ -253,19 +253,19 @@ class Opml extends Handler_Protected {
private function opml_import_feed($doc, $node, $cat_id, $owner_uid) {
$attrs = $node->attributes;
- $feed_title = db_escape_string($attrs->getNamedItem('text')->nodeValue);
- if (!$feed_title) $feed_title = db_escape_string($attrs->getNamedItem('title')->nodeValue);
+ $feed_title = $this->dbh->escape_string(mb_substr($attrs->getNamedItem('text')->nodeValue, 0, 250));
+ if (!$feed_title) $feed_title = $this->dbh->escape_string(mb_substr($attrs->getNamedItem('title')->nodeValue, 0, 250));
- $feed_url = db_escape_string($attrs->getNamedItem('xmlUrl')->nodeValue);
- if (!$feed_url) $feed_url = db_escape_string($attrs->getNamedItem('xmlURL')->nodeValue);
+ $feed_url = $this->dbh->escape_string(mb_substr($attrs->getNamedItem('xmlUrl')->nodeValue, 0, 250));
+ if (!$feed_url) $feed_url = $this->dbh->escape_string(mb_substr($attrs->getNamedItem('xmlURL')->nodeValue, 0, 250));
- $site_url = db_escape_string($attrs->getNamedItem('htmlUrl')->nodeValue);
+ $site_url = $this->dbh->escape_string(mb_substr($attrs->getNamedItem('htmlUrl')->nodeValue, 0, 250));
if ($feed_url && $feed_title) {
- $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds WHERE
feed_url = '$feed_url' AND owner_uid = '$owner_uid'");
- if (db_num_rows($result) == 0) {
+ if ($this->dbh->num_rows($result) == 0) {
#$this->opml_notice("[FEED] [$feed_title/$feed_url] dst_CAT=$cat_id");
$this->opml_notice(T_sprintf("Adding feed: %s", $feed_title));
@@ -275,7 +275,7 @@ class Opml extends Handler_Protected {
(title, feed_url, owner_uid, cat_id, site_url, order_id) VALUES
('$feed_title', '$feed_url', '$owner_uid',
$cat_id, '$site_url', 0)";
- db_query($this->link, $query);
+ $this->dbh->query($query);
} else {
$this->opml_notice(T_sprintf("Duplicate feed: %s", $feed_title));
@@ -285,15 +285,15 @@ class Opml extends Handler_Protected {
private function opml_import_label($doc, $node, $owner_uid) {
$attrs = $node->attributes;
- $label_name = db_escape_string($attrs->getNamedItem('label-name')->nodeValue);
+ $label_name = $this->dbh->escape_string($attrs->getNamedItem('label-name')->nodeValue);
if ($label_name) {
- $fg_color = db_escape_string($attrs->getNamedItem('label-fg-color')->nodeValue);
- $bg_color = db_escape_string($attrs->getNamedItem('label-bg-color')->nodeValue);
+ $fg_color = $this->dbh->escape_string($attrs->getNamedItem('label-fg-color')->nodeValue);
+ $bg_color = $this->dbh->escape_string($attrs->getNamedItem('label-bg-color')->nodeValue);
- if (!label_find_id($this->link, $label_name, $_SESSION['uid'])) {
+ if (!label_find_id($label_name, $_SESSION['uid'])) {
$this->opml_notice(T_sprintf("Adding label %s", htmlspecialchars($label_name)));
- label_create($this->link, $label_name, $fg_color, $bg_color, $owner_uid);
+ label_create($label_name, $fg_color, $bg_color, $owner_uid);
} else {
$this->opml_notice(T_sprintf("Duplicate label: %s", htmlspecialchars($label_name)));
}
@@ -302,22 +302,22 @@ class Opml extends Handler_Protected {
private function opml_import_preference($doc, $node, $owner_uid) {
$attrs = $node->attributes;
- $pref_name = db_escape_string($attrs->getNamedItem('pref-name')->nodeValue);
+ $pref_name = $this->dbh->escape_string($attrs->getNamedItem('pref-name')->nodeValue);
if ($pref_name) {
- $pref_value = db_escape_string($attrs->getNamedItem('value')->nodeValue);
+ $pref_value = $this->dbh->escape_string($attrs->getNamedItem('value')->nodeValue);
$this->opml_notice(T_sprintf("Setting preference key %s to %s",
$pref_name, $pref_value));
- set_pref($this->link, $pref_name, $pref_value);
+ set_pref($pref_name, $pref_value);
}
}
private function opml_import_filter($doc, $node, $owner_uid) {
$attrs = $node->attributes;
- $filter_type = db_escape_string($attrs->getNamedItem('filter-type')->nodeValue);
+ $filter_type = $this->dbh->escape_string($attrs->getNamedItem('filter-type')->nodeValue);
if ($filter_type == '2') {
$filter = json_decode($node->nodeValue, true);
@@ -326,14 +326,14 @@ class Opml extends Handler_Protected {
$match_any_rule = bool_to_sql_bool($filter["match_any_rule"]);
$enabled = bool_to_sql_bool($filter["enabled"]);
- db_query($this->link, "BEGIN");
+ $this->dbh->query("BEGIN");
- db_query($this->link, "INSERT INTO ttrss_filters2 (match_any_rule,enabled,owner_uid)
+ $this->dbh->query("INSERT INTO ttrss_filters2 (match_any_rule,enabled,owner_uid)
VALUES ($match_any_rule, $enabled,".$_SESSION["uid"].")");
- $result = db_query($this->link, "SELECT MAX(id) AS id FROM ttrss_filters2 WHERE
+ $result = $this->dbh->query("SELECT MAX(id) AS id FROM ttrss_filters2 WHERE
owner_uid = ".$_SESSION["uid"]);
- $filter_id = db_fetch_result($result, 0, "id");
+ $filter_id = $this->dbh->fetch_result($result, 0, "id");
if ($filter_id) {
$this->opml_notice(T_sprintf("Adding filter..."));
@@ -343,39 +343,39 @@ class Opml extends Handler_Protected {
$cat_id = "NULL";
if (!$rule["cat_filter"]) {
- $tmp_result = db_query($this->link, "SELECT id FROM ttrss_feeds
- WHERE title = '".db_escape_string($rule["feed"])."' AND owner_uid = ".$_SESSION["uid"]);
- if (db_num_rows($tmp_result) > 0) {
- $feed_id = db_fetch_result($tmp_result, 0, "id");
+ $tmp_result = $this->dbh->query("SELECT id FROM ttrss_feeds
+ WHERE title = '".$this->dbh->escape_string($rule["feed"])."' AND owner_uid = ".$_SESSION["uid"]);
+ if ($this->dbh->num_rows($tmp_result) > 0) {
+ $feed_id = $this->dbh->fetch_result($tmp_result, 0, "id");
}
} else {
- $tmp_result = db_query($this->link, "SELECT id FROM ttrss_feed_categories
- WHERE title = '".db_escape_string($rule["feed"])."' AND owner_uid = ".$_SESSION["uid"]);
+ $tmp_result = $this->dbh->query("SELECT id FROM ttrss_feed_categories
+ WHERE title = '".$this->dbh->escape_string($rule["feed"])."' AND owner_uid = ".$_SESSION["uid"]);
- if (db_num_rows($tmp_result) > 0) {
- $cat_id = db_fetch_result($tmp_result, 0, "id");
+ if ($this->dbh->num_rows($tmp_result) > 0) {
+ $cat_id = $this->dbh->fetch_result($tmp_result, 0, "id");
}
}
$cat_filter = bool_to_sql_bool($rule["cat_filter"]);
- $reg_exp = db_escape_string($rule["reg_exp"]);
+ $reg_exp = $this->dbh->escape_string($rule["reg_exp"]);
$filter_type = (int)$rule["filter_type"];
- db_query($this->link, "INSERT INTO ttrss_filters2_rules (feed_id,cat_id,filter_id,filter_type,reg_exp,cat_filter)
+ $this->dbh->query("INSERT INTO ttrss_filters2_rules (feed_id,cat_id,filter_id,filter_type,reg_exp,cat_filter)
VALUES ($feed_id, $cat_id, $filter_id, $filter_type, '$reg_exp', $cat_filter)");
}
foreach ($filter["actions"] as $action) {
$action_id = (int)$action["action_id"];
- $action_param = db_escape_string($action["action_param"]);
+ $action_param = $this->dbh->escape_string($action["action_param"]);
- db_query($this->link, "INSERT INTO ttrss_filters2_actions (filter_id,action_id,action_param)
+ $this->dbh->query("INSERT INTO ttrss_filters2_actions (filter_id,action_id,action_param)
VALUES ($filter_id, $action_id, '$action_param')");
}
}
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
}
}
}
@@ -383,22 +383,22 @@ class Opml extends Handler_Protected {
private function opml_import_category($doc, $root_node, $owner_uid, $parent_id) {
$body = $doc->getElementsByTagName('body');
- $default_cat_id = (int) get_feed_category($this->link, 'Imported feeds', false);
+ $default_cat_id = (int) get_feed_category('Imported feeds', false);
if ($root_node) {
- $cat_title = db_escape_string($root_node->attributes->getNamedItem('text')->nodeValue);
+ $cat_title = $this->dbh->escape_string(mb_substr($root_node->attributes->getNamedItem('text')->nodeValue, 0, 250));
if (!$cat_title)
- $cat_title = db_escape_string($root_node->attributes->getNamedItem('title')->nodeValue);
+ $cat_title = $this->dbh->escape_string(mb_substr($root_node->attributes->getNamedItem('title')->nodeValue, 0, 250));
if (!in_array($cat_title, array("tt-rss-filters", "tt-rss-labels", "tt-rss-prefs"))) {
- $cat_id = get_feed_category($this->link, $cat_title, $parent_id);
- db_query($this->link, "BEGIN");
+ $cat_id = get_feed_category($cat_title, $parent_id);
+ $this->dbh->query("BEGIN");
if ($cat_id === false) {
- add_feed_category($this->link, $cat_title, $parent_id);
- $cat_id = get_feed_category($this->link, $cat_title, $parent_id);
+ add_feed_category($cat_title, $parent_id);
+ $cat_id = get_feed_category($cat_title, $parent_id);
}
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
} else {
$cat_id = 0;
}
@@ -418,12 +418,12 @@ class Opml extends Handler_Protected {
foreach ($outlines as $node) {
if ($node->hasAttributes() && strtolower($node->tagName) == "outline") {
$attrs = $node->attributes;
- $node_cat_title = db_escape_string($attrs->getNamedItem('text')->nodeValue);
+ $node_cat_title = $this->dbh->escape_string($attrs->getNamedItem('text')->nodeValue);
if (!$node_cat_title)
- $node_cat_title = db_escape_string($attrs->getNamedItem('title')->nodeValue);
+ $node_cat_title = $this->dbh->escape_string($attrs->getNamedItem('title')->nodeValue);
- $node_feed_url = db_escape_string($attrs->getNamedItem('xmlUrl')->nodeValue);
+ $node_feed_url = $this->dbh->escape_string($attrs->getNamedItem('xmlUrl')->nodeValue);
if ($node_cat_title && !$node_feed_url) {
$this->opml_import_category($doc, $node, $owner_uid, $cat_id);
@@ -461,13 +461,38 @@ class Opml extends Handler_Protected {
# if ($debug) $doc = DOMDocument::load("/tmp/test.opml");
- if (is_file($_FILES['opml_file']['tmp_name'])) {
- $doc = DOMDocument::load($_FILES['opml_file']['tmp_name']);
- } else if (!$doc) {
+ if ($_FILES['opml_file']['error'] != 0) {
+ print_error(T_sprintf("Upload failed with error code %d",
+ $_FILES['opml_file']['error']));
+ return;
+ }
+
+ $tmp_file = false;
+
+ if (is_uploaded_file($_FILES['opml_file']['tmp_name'])) {
+ $tmp_file = tempnam(CACHE_DIR . '/upload', 'opml');
+
+ $result = move_uploaded_file($_FILES['opml_file']['tmp_name'],
+ $tmp_file);
+
+ if (!$result) {
+ print_error(__("Unable to move uploaded file."));
+ return;
+ }
+ } else {
print_error(__('Error: please upload OPML file.'));
return;
}
+ if (is_file($tmp_file)) {
+ $doc = new DOMDocument();
+ $doc->load($tmp_file);
+ unlink($tmp_file);
+ } else if (!$doc) {
+ print_error(__('Error: unable to find moved OPML file.'));
+ return;
+ }
+
if ($doc) {
$this->opml_import_category($doc, false, $owner_uid, false);
} else {
@@ -479,11 +504,11 @@ class Opml extends Handler_Protected {
print "$msg<br/>";
}
- static function opml_publish_url($link){
+ static function opml_publish_url(){
$url_path = get_self_url_prefix();
$url_path .= "/opml.php?op=publish&key=" .
- get_feed_access_key($link, 'OPML:Publish', false, $_SESSION["uid"]);
+ get_feed_access_key('OPML:Publish', false, $_SESSION["uid"]);
return $url_path;
}
diff --git a/classes/plugin.php b/classes/plugin.php
index e655a2062..8fbacf363 100644
--- a/classes/plugin.php
+++ b/classes/plugin.php
@@ -1,10 +1,12 @@
<?php
class Plugin {
- private $link;
+ private $dbh;
private $host;
+ const API_VERSION_COMPAT = 1;
+
function init($host) {
- $this->link = $host->get_link();
+ $this->dbh = $host->get_dbh();
$this->host = $host;
}
@@ -20,5 +22,9 @@ class Plugin {
function get_prefs_js() {
return "";
}
+
+ function api_version() {
+ return Plugin::API_VERSION_COMPAT;
+ }
}
?>
diff --git a/classes/pluginhandler.php b/classes/pluginhandler.php
index eb859ab32..690305165 100644
--- a/classes/pluginhandler.php
+++ b/classes/pluginhandler.php
@@ -5,9 +5,7 @@ class PluginHandler extends Handler_Protected {
}
function catchall($method) {
- global $pluginhost;
-
- $plugin = $pluginhost->get_plugin($_REQUEST["plugin"]);
+ $plugin = PluginHost::getInstance()->get_plugin($_REQUEST["plugin"]);
if ($plugin) {
if (method_exists($plugin, $method)) {
diff --git a/classes/pluginhost.php b/classes/pluginhost.php
index 592629881..bc5dc96be 100644
--- a/classes/pluginhost.php
+++ b/classes/pluginhost.php
@@ -1,13 +1,19 @@
<?php
class PluginHost {
- private $link;
+ private $dbh;
private $hooks = array();
private $plugins = array();
private $handlers = array();
private $commands = array();
private $storage = array();
+ private $feeds = array();
+ private $api_methods = array();
private $owner_uid;
private $debug;
+ private $last_registered;
+ private static $instance;
+
+ const API_VERSION = 2;
const HOOK_ARTICLE_BUTTON = 1;
const HOOK_ARTICLE_FILTER = 2;
@@ -21,17 +27,35 @@ class PluginHost {
const HOOK_RENDER_ARTICLE = 10;
const HOOK_RENDER_ARTICLE_CDM = 11;
const HOOK_FEED_FETCHED = 12;
+ const HOOK_SANITIZE = 13;
+ const HOOK_RENDER_ARTICLE_API = 14;
+ const HOOK_TOOLBAR_BUTTON = 15;
+ const HOOK_ACTION_ITEM = 16;
+ const HOOK_HEADLINE_TOOLBAR_BUTTON = 17;
+ const HOOK_HOTKEY_INFO = 18;
+ const HOOK_ARTICLE_LEFT_BUTTON = 19;
+ const HOOK_PREFS_EDIT_FEED = 20;
+ const HOOK_PREFS_SAVE_FEED = 21;
const KIND_ALL = 1;
const KIND_SYSTEM = 2;
const KIND_USER = 3;
- function __construct($link) {
- $this->link = $link;
+ function __construct() {
+ $this->dbh = Db::get();
+
+ $this->storage = array();
+ }
+
+ private function __clone() {
+ //
+ }
- $this->storage = $_SESSION["plugin_storage"];
+ public static function getInstance() {
+ if (self::$instance == null)
+ self::$instance = new self();
- if (!$this->storage) $this->storage = array();
+ return self::$instance;
}
private function register_plugin($name, $plugin) {
@@ -39,8 +63,13 @@ class PluginHost {
$this->plugins[$name] = $plugin;
}
+ // needed for compatibility with API 1
function get_link() {
- return $this->link;
+ return false;
+ }
+
+ function get_dbh() {
+ return $this->dbh;
}
function get_plugins() {
@@ -94,6 +123,9 @@ class PluginHost {
foreach ($plugins as $class) {
$class = trim($class);
$class_file = strtolower(basename($class));
+
+ if (!is_dir(dirname(__FILE__)."/../plugins/$class_file")) continue;
+
$file = dirname(__FILE__)."/../plugins/$class_file/init.php";
if (!isset($this->plugins[$class])) {
@@ -102,6 +134,15 @@ class PluginHost {
if (class_exists($class) && is_subclass_of($class, "Plugin")) {
$plugin = new $class($this);
+ $plugin_api = $plugin->api_version();
+
+ if ($plugin_api < PluginHost::API_VERSION) {
+ user_error("Plugin $class is not compatible with current API version (need: " . PluginHost::API_VERSION . ", got: $plugin_api)", E_USER_WARNING);
+ continue;
+ }
+
+ $this->last_registered = $class;
+
switch ($kind) {
case $this::KIND_SYSTEM:
if ($this->is_system($plugin)) {
@@ -145,7 +186,7 @@ class PluginHost {
}
}
- function del_handler($handler, $method) {
+ function del_handler($handler, $method, $sender) {
$handler = str_replace("-", "_", strtolower($handler));
$method = strtolower($method);
@@ -169,10 +210,12 @@ class PluginHost {
return false;
}
- function add_command($command, $description, $sender) {
- $command = "-" . str_replace("-", "_", strtolower($command));
+ function add_command($command, $description, $sender, $suffix = "", $arghelp = "") {
+ $command = str_replace("-", "_", strtolower($command));
$this->commands[$command] = array("description" => $description,
+ "suffix" => $suffix,
+ "arghelp" => $arghelp,
"class" => $sender);
}
@@ -200,7 +243,7 @@ class PluginHost {
function run_commands($args) {
foreach ($this->get_commands() as $command => $data) {
- if (in_array($command, $args)) {
+ if (isset($args[$command])) {
$command = str_replace("-", "", $command);
$data["class"]->$command($args);
}
@@ -208,45 +251,41 @@ class PluginHost {
}
function load_data($force = false) {
- if ($this->owner_uid && (!$_SESSION["plugin_storage"] || $force)) {
- $plugin = db_escape_string($plugin);
-
- $result = db_query($this->link, "SELECT name, content FROM ttrss_plugin_storage
+ if ($this->owner_uid) {
+ $result = $this->dbh->query("SELECT name, content FROM ttrss_plugin_storage
WHERE owner_uid = '".$this->owner_uid."'");
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$this->storage[$line["name"]] = unserialize($line["content"]);
}
-
- $_SESSION["plugin_storage"] = $this->storage;
}
}
private function save_data($plugin) {
if ($this->owner_uid) {
- $plugin = db_escape_string($plugin);
+ $plugin = $this->dbh->escape_string($plugin);
- db_query($this->link, "BEGIN");
+ $this->dbh->query("BEGIN");
- $result = db_query($this->link,"SELECT id FROM ttrss_plugin_storage WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_plugin_storage WHERE
owner_uid= '".$this->owner_uid."' AND name = '$plugin'");
if (!isset($this->storage[$plugin]))
$this->storage[$plugin] = array();
- $content = db_escape_string(serialize($this->storage[$plugin]));
+ $content = $this->dbh->escape_string(serialize($this->storage[$plugin]));
- if (db_num_rows($result) != 0) {
- db_query($this->link, "UPDATE ttrss_plugin_storage SET content = '$content'
+ if ($this->dbh->num_rows($result) != 0) {
+ $this->dbh->query("UPDATE ttrss_plugin_storage SET content = '$content'
WHERE owner_uid= '".$this->owner_uid."' AND name = '$plugin'");
} else {
- db_query($this->link, "INSERT INTO ttrss_plugin_storage
+ $this->dbh->query("INSERT INTO ttrss_plugin_storage
(name,owner_uid,content) VALUES
('$plugin','".$this->owner_uid."','$content')");
}
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
}
}
@@ -258,8 +297,6 @@ class PluginHost {
$this->storage[$idx][$name] = $value;
- $_SESSION["plugin_storage"] = $this->storage;
-
if ($sync) $this->save_data(get_class($sender));
}
@@ -285,10 +322,8 @@ class PluginHost {
unset($this->storage[$idx]);
- db_query($this->link, "DELETE FROM ttrss_plugin_storage WHERE name = '$idx'
+ $this->dbh->query("DELETE FROM ttrss_plugin_storage WHERE name = '$idx'
AND owner_uid = " . $this->owner_uid);
-
- $_SESSION["plugin_storage"] = $this->storage;
}
}
@@ -299,5 +334,52 @@ class PluginHost {
function get_debug() {
return $this->debug;
}
+
+ // Plugin feed functions are *EXPERIMENTAL*!
+
+ // cat_id: only -1 is supported (Special)
+ function add_feed($cat_id, $title, $icon, $sender) {
+ if (!$this->feeds[$cat_id]) $this->feeds[$cat_id] = array();
+
+ $id = count($this->feeds[$cat_id]);
+
+ array_push($this->feeds[$cat_id],
+ array('id' => $id, 'title' => $title, 'sender' => $sender, 'icon' => $icon));
+
+ return $id;
+ }
+
+ function get_feeds($cat_id) {
+ return $this->feeds[$cat_id];
+ }
+
+ // convert feed_id (e.g. -129) to pfeed_id first
+ function get_feed_handler($pfeed_id) {
+ foreach ($this->feeds as $cat) {
+ foreach ($cat as $feed) {
+ if ($feed['id'] == $pfeed_id) {
+ return $feed['sender'];
+ }
+ }
+ }
+ }
+
+ static function pfeed_to_feed_id($label) {
+ return PLUGIN_FEED_BASE_INDEX - 1 - abs($label);
+ }
+
+ static function feed_to_pfeed_id($feed) {
+ return PLUGIN_FEED_BASE_INDEX - 1 + abs($feed);
+ }
+
+ function add_api_method($name, $sender) {
+ if ($this->is_system($sender)) {
+ $this->api_methods[strtolower($name)] = $sender;
+ }
+ }
+
+ function get_api_method($name) {
+ return $this->api_methods[$name];
+ }
}
?>
diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php
index bfcc75f0d..ffe7410fe 100644
--- a/classes/pref/feeds.php
+++ b/classes/pref/feeds.php
@@ -3,7 +3,8 @@ class Pref_Feeds extends Handler_Protected {
function csrf_ignore($method) {
$csrf_ignored = array("index", "getfeedtree", "add", "editcats", "editfeed",
- "savefeedorder", "uploadicon", "feedswitherrors", "inactivefeeds");
+ "savefeedorder", "uploadicon", "feedswitherrors", "inactivefeeds",
+ "batchsubscribe");
return array_search($method, $csrf_ignored) !== false;
}
@@ -14,11 +15,11 @@ class Pref_Feeds extends Handler_Protected {
}
function renamecat() {
- $title = db_escape_string($_REQUEST['title']);
- $id = db_escape_string($_REQUEST['id']);
+ $title = $this->dbh->escape_string($_REQUEST['title']);
+ $id = $this->dbh->escape_string($_REQUEST['id']);
if ($title) {
- db_query($this->link, "UPDATE ttrss_feed_categories SET
+ $this->dbh->query("UPDATE ttrss_feed_categories SET
title = '$title' WHERE id = '$id' AND owner_uid = " . $_SESSION["uid"]);
}
return;
@@ -33,15 +34,16 @@ class Pref_Feeds extends Handler_Protected {
if ($search) $search_qpart = " AND LOWER(title) LIKE LOWER('%$search%')";
- $show_empty_cats = $_REQUEST['mode'] != 2 && !$search &&
- get_pref($this->link, '_PREFS_SHOW_EMPTY_CATS');
+ // first one is set by API
+ $show_empty_cats = $_REQUEST['force_show_empty'] ||
+ ($_REQUEST['mode'] != 2 && !$search);
$items = array();
- $result = db_query($this->link, "SELECT id, title FROM ttrss_feed_categories
+ $result = $this->dbh->query("SELECT id, title FROM ttrss_feed_categories
WHERE owner_uid = " . $_SESSION["uid"] . " AND parent_cat = '$cat_id' ORDER BY order_id, title");
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$cat = array();
$cat['id'] = 'CAT:' . $line['id'];
@@ -55,20 +57,20 @@ class Pref_Feeds extends Handler_Protected {
$cat['items'] = $this->get_category_items($line['id']);
- $cat['param'] = T_sprintf('(%d feeds)', count($cat['items']));
+ $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
if (count($cat['items']) > 0 || $show_empty_cats)
array_push($items, $cat);
}
- $feed_result = db_query($this->link, "SELECT id, title, last_error,
+ $feed_result = $this->dbh->query("SELECT id, title, last_error,
".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
FROM ttrss_feeds
WHERE cat_id = '$cat_id' AND owner_uid = ".$_SESSION["uid"].
"$search_qpart ORDER BY order_id, title");
- while ($feed_line = db_fetch_assoc($feed_result)) {
+ while ($feed_line = $this->dbh->fetch_assoc($feed_result)) {
$feed = array();
$feed['id'] = 'FEED:' . $feed_line['id'];
$feed['bare_id'] = (int)$feed_line['id'];
@@ -77,7 +79,7 @@ class Pref_Feeds extends Handler_Protected {
$feed['unread'] = 0;
$feed['error'] = $feed_line['last_error'];
$feed['icon'] = getFeedIcon($feed_line['id']);
- $feed['param'] = make_local_datetime($this->link,
+ $feed['param'] = make_local_datetime(
$feed_line['last_updated'], true);
array_push($items, $feed);
@@ -87,6 +89,10 @@ class Pref_Feeds extends Handler_Protected {
}
function getfeedtree() {
+ print json_encode($this->makefeedtree());
+ }
+
+ function makefeedtree() {
if ($_REQUEST['mode'] != 2)
$search = $_SESSION["prefs_feed_search"];
@@ -101,7 +107,7 @@ class Pref_Feeds extends Handler_Protected {
$root['items'] = array();
$root['type'] = 'category';
- $enable_cats = get_pref($this->link, 'ENABLE_FEED_CATS');
+ $enable_cats = get_pref('ENABLE_FEED_CATS');
if ($_REQUEST['mode'] == 2) {
@@ -115,26 +121,50 @@ class Pref_Feeds extends Handler_Protected {
array_push($cat['items'], $this->feedlist_init_feed($i));
}
+ /* Plugin feeds for -1 */
+
+ $feeds = PluginHost::getInstance()->get_feeds(-1);
+
+ if ($feeds) {
+ foreach ($feeds as $feed) {
+ $feed_id = PluginHost::pfeed_to_feed_id($feed['id']);
+
+ $item = array();
+ $item['id'] = 'FEED:' . $feed_id;
+ $item['bare_id'] = (int)$feed_id;
+ $item['name'] = $feed['title'];
+ $item['checkbox'] = false;
+ $item['error'] = '';
+ $item['icon'] = $feed['icon'];
+
+ $item['param'] = '';
+ $item['unread'] = 0; //$feed['sender']->get_unread($feed['id']);
+ $item['type'] = 'feed';
+
+ array_push($cat['items'], $item);
+ }
+ }
+
if ($enable_cats) {
array_push($root['items'], $cat);
} else {
$root['items'] = array_merge($root['items'], $cat['items']);
}
- $result = db_query($this->link, "SELECT * FROM
+ $result = $this->dbh->query("SELECT * FROM
ttrss_labels2 WHERE owner_uid = ".$_SESSION['uid']." ORDER by caption");
- if (db_num_rows($result) > 0) {
+ if ($this->dbh->num_rows($result) > 0) {
- if (get_pref($this->link, 'ENABLE_FEED_CATS')) {
+ if (get_pref('ENABLE_FEED_CATS')) {
$cat = $this->feedlist_init_cat(-2);
} else {
$cat['items'] = array();
}
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
- $label_id = -$line['id'] - 11;
+ $label_id = label_to_feed_id($line['id']);
$feed = $this->feedlist_init_feed($label_id, false, 0);
@@ -153,13 +183,13 @@ class Pref_Feeds extends Handler_Protected {
}
if ($enable_cats) {
- $show_empty_cats = $_REQUEST['mode'] != 2 && !$search &&
- get_pref($this->link, '_PREFS_SHOW_EMPTY_CATS');
+ $show_empty_cats = $_REQUEST['force_show_empty'] ||
+ ($_REQUEST['mode'] != 2 && !$search);
- $result = db_query($this->link, "SELECT id, title FROM ttrss_feed_categories
+ $result = $this->dbh->query("SELECT id, title FROM ttrss_feed_categories
WHERE owner_uid = " . $_SESSION["uid"] . " AND parent_cat IS NULL ORDER BY order_id, title");
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$cat = array();
$cat['id'] = 'CAT:' . $line['id'];
$cat['bare_id'] = (int)$line['id'];
@@ -172,7 +202,7 @@ class Pref_Feeds extends Handler_Protected {
$cat['items'] = $this->get_category_items($line['id']);
- $cat['param'] = T_sprintf('(%d feeds)', count($cat['items']));
+ $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
if (count($cat['items']) > 0 || $show_empty_cats)
array_push($root['items'], $cat);
@@ -192,13 +222,13 @@ class Pref_Feeds extends Handler_Protected {
$cat['unread'] = 0;
$cat['child_unread'] = 0;
- $feed_result = db_query($this->link, "SELECT id, title,last_error,
+ $feed_result = $this->dbh->query("SELECT id, title,last_error,
".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
FROM ttrss_feeds
WHERE cat_id IS NULL AND owner_uid = ".$_SESSION["uid"].
"$search_qpart ORDER BY order_id, title");
- while ($feed_line = db_fetch_assoc($feed_result)) {
+ while ($feed_line = $this->dbh->fetch_assoc($feed_result)) {
$feed = array();
$feed['id'] = 'FEED:' . $feed_line['id'];
$feed['bare_id'] = (int)$feed_line['id'];
@@ -206,7 +236,7 @@ class Pref_Feeds extends Handler_Protected {
$feed['checkbox'] = false;
$feed['error'] = $feed_line['last_error'];
$feed['icon'] = getFeedIcon($feed_line['id']);
- $feed['param'] = make_local_datetime($this->link,
+ $feed['param'] = make_local_datetime(
$feed_line['last_updated'], true);
$feed['unread'] = 0;
$feed['type'] = 'feed';
@@ -214,22 +244,22 @@ class Pref_Feeds extends Handler_Protected {
array_push($cat['items'], $feed);
}
- $cat['param'] = T_sprintf('(%d feeds)', count($cat['items']));
+ $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
if (count($cat['items']) > 0 || $show_empty_cats)
array_push($root['items'], $cat);
$root['param'] += count($cat['items']);
- $root['param'] = T_sprintf('(%d feeds)', $root['param']);
+ $root['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
} else {
- $feed_result = db_query($this->link, "SELECT id, title, last_error,
+ $feed_result = $this->dbh->query("SELECT id, title, last_error,
".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
FROM ttrss_feeds
WHERE owner_uid = ".$_SESSION["uid"].
"$search_qpart ORDER BY order_id, title");
- while ($feed_line = db_fetch_assoc($feed_result)) {
+ while ($feed_line = $this->dbh->fetch_assoc($feed_result)) {
$feed = array();
$feed['id'] = 'FEED:' . $feed_line['id'];
$feed['bare_id'] = (int)$feed_line['id'];
@@ -237,7 +267,7 @@ class Pref_Feeds extends Handler_Protected {
$feed['checkbox'] = false;
$feed['error'] = $feed_line['last_error'];
$feed['icon'] = getFeedIcon($feed_line['id']);
- $feed['param'] = make_local_datetime($this->link,
+ $feed['param'] = make_local_datetime(
$feed_line['last_updated'], true);
$feed['unread'] = 0;
$feed['type'] = 'feed';
@@ -245,7 +275,7 @@ class Pref_Feeds extends Handler_Protected {
array_push($root['items'], $feed);
}
- $root['param'] = T_sprintf('(%d feeds)', count($root['items']));
+ $root['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
}
$fl = array();
@@ -258,27 +288,21 @@ class Pref_Feeds extends Handler_Protected {
$fl['items'] =& $root['items'];
}
- print json_encode($fl);
- return;
+ return $fl;
}
function catsortreset() {
- db_query($this->link, "UPDATE ttrss_feed_categories
+ $this->dbh->query("UPDATE ttrss_feed_categories
SET order_id = 0 WHERE owner_uid = " . $_SESSION["uid"]);
return;
}
function feedsortreset() {
- db_query($this->link, "UPDATE ttrss_feeds
+ $this->dbh->query("UPDATE ttrss_feeds
SET order_id = 0 WHERE owner_uid = " . $_SESSION["uid"]);
return;
}
- function togglehiddenfeedcats() {
- set_pref($this->link, '_PREFS_SHOW_EMPTY_CATS',
- (get_pref($this->link, '_PREFS_SHOW_EMPTY_CATS') ? 'false' : 'true'));
- }
-
private function process_category_order(&$data_map, $item_id, $parent_id = false, $nest_level = 0) {
$debug = isset($_REQUEST["debug"]);
@@ -293,12 +317,12 @@ class Pref_Feeds extends Handler_Protected {
if ($item_id != 'root') {
if ($parent_id && $parent_id != 'root') {
$parent_bare_id = substr($parent_id, strpos($parent_id, ':')+1);
- $parent_qpart = db_escape_string($parent_bare_id);
+ $parent_qpart = $this->dbh->escape_string($parent_bare_id);
} else {
$parent_qpart = 'NULL';
}
- db_query($this->link, "UPDATE ttrss_feed_categories
+ $this->dbh->query("UPDATE ttrss_feed_categories
SET parent_cat = $parent_qpart WHERE id = '$bare_item_id' AND
owner_uid = " . $_SESSION["uid"]);
}
@@ -319,12 +343,12 @@ class Pref_Feeds extends Handler_Protected {
if (strpos($id, "FEED") === 0) {
$cat_id = ($item_id != "root") ?
- db_escape_string($bare_item_id) : "NULL";
+ $this->dbh->escape_string($bare_item_id) : "NULL";
$cat_qpart = ($cat_id != 0) ? "cat_id = '$cat_id'" :
"cat_id = NULL";
- db_query($this->link, "UPDATE ttrss_feeds
+ $this->dbh->query("UPDATE ttrss_feeds
SET order_id = $order_id, $cat_qpart
WHERE id = '$bare_id' AND
owner_uid = " . $_SESSION["uid"]);
@@ -334,12 +358,12 @@ class Pref_Feeds extends Handler_Protected {
$nest_level+1);
if ($item_id != 'root') {
- $parent_qpart = db_escape_string($bare_id);
+ $parent_qpart = $this->dbh->escape_string($bare_id);
} else {
$parent_qpart = 'NULL';
}
- db_query($this->link, "UPDATE ttrss_feed_categories
+ $this->dbh->query("UPDATE ttrss_feed_categories
SET order_id = '$order_id' WHERE id = '$bare_id' AND
owner_uid = " . $_SESSION["uid"]);
}
@@ -391,7 +415,7 @@ class Pref_Feeds extends Handler_Protected {
++$cat_order_id;
if ($bare_id > 0) {
- db_query($this->link, "UPDATE ttrss_feed_categories
+ $this->dbh->query("UPDATE ttrss_feed_categories
SET order_id = '$cat_order_id' WHERE id = '$bare_id' AND
owner_uid = " . $_SESSION["uid"]);
}
@@ -408,7 +432,7 @@ class Pref_Feeds extends Handler_Protected {
else
$cat_query = "cat_id = NULL";
- db_query($this->link, "UPDATE ttrss_feeds
+ $this->dbh->query("UPDATE ttrss_feeds
SET order_id = '$feed_order_id',
$cat_query
WHERE id = '$feed_id' AND
@@ -424,13 +448,16 @@ class Pref_Feeds extends Handler_Protected {
}
function removeicon() {
- $feed_id = db_escape_string($_REQUEST["feed_id"]);
+ $feed_id = $this->dbh->escape_string($_REQUEST["feed_id"]);
- $result = db_query($this->link, "SELECT id FROM ttrss_feeds
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds
WHERE id = '$feed_id' AND owner_uid = ". $_SESSION["uid"]);
- if (db_num_rows($result) != 0) {
- unlink(ICONS_DIR . "/$feed_id.ico");
+ if ($this->dbh->num_rows($result) != 0) {
+ @unlink(ICONS_DIR . "/$feed_id.ico");
+
+ $this->dbh->query("UPDATE ttrss_feeds SET favicon_avg_color = NULL
+ where id = '$feed_id'");
}
return;
@@ -439,19 +466,39 @@ class Pref_Feeds extends Handler_Protected {
function uploadicon() {
header("Content-type: text/html");
- $icon_file = $_FILES['icon_file']['tmp_name'];
- $feed_id = db_escape_string($_REQUEST["feed_id"]);
+ $tmp_file = false;
+
+ if (is_uploaded_file($_FILES['icon_file']['tmp_name'])) {
+ $tmp_file = tempnam(CACHE_DIR . '/upload', 'icon');
+
+ $result = move_uploaded_file($_FILES['icon_file']['tmp_name'],
+ $tmp_file);
+
+ if (!$result) {
+ return;
+ }
+ } else {
+ return;
+ }
+
+ $icon_file = $tmp_file;
+ $feed_id = $this->dbh->escape_string($_REQUEST["feed_id"]);
if (is_file($icon_file) && $feed_id) {
if (filesize($icon_file) < 20000) {
- $result = db_query($this->link, "SELECT id FROM ttrss_feeds
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds
WHERE id = '$feed_id' AND owner_uid = ". $_SESSION["uid"]);
- if (db_num_rows($result) != 0) {
- unlink(ICONS_DIR . "/$feed_id.ico");
- move_uploaded_file($icon_file, ICONS_DIR . "/$feed_id.ico");
- $rc = 0;
+ if ($this->dbh->num_rows($result) != 0) {
+ @unlink(ICONS_DIR . "/$feed_id.ico");
+ if (rename($icon_file, ICONS_DIR . "/$feed_id.ico")) {
+ $this->dbh->query("UPDATE ttrss_feeds SET
+ favicon_avg_color = ''
+ WHERE id = '$feed_id'");
+
+ $rc = 0;
+ }
} else {
$rc = 2;
}
@@ -462,6 +509,8 @@ class Pref_Feeds extends Handler_Protected {
$rc = 2;
}
+ @unlink($icon_file);
+
print "<script type=\"text/javascript\">";
print "parent.uploadIconHandler($rc);";
print "</script>";
@@ -472,13 +521,16 @@ class Pref_Feeds extends Handler_Protected {
global $purge_intervals;
global $update_intervals;
- $feed_id = db_escape_string($_REQUEST["id"]);
+ $feed_id = $this->dbh->escape_string($_REQUEST["id"]);
- $result = db_query($this->link,
+ $result = $this->dbh->query(
"SELECT * FROM ttrss_feeds WHERE id = '$feed_id' AND
owner_uid = " . $_SESSION["uid"]);
- $title = htmlspecialchars(db_fetch_result($result,
+ $auth_pass_encrypted = sql_bool_to_bool($this->dbh->fetch_result($result, 0,
+ "auth_pass_encrypted"));
+
+ $title = htmlspecialchars($this->dbh->fetch_result($result,
0, "title"));
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$feed_id\">";
@@ -496,8 +548,8 @@ class Pref_Feeds extends Handler_Protected {
/* Feed URL */
- $feed_url = db_fetch_result($result, 0, "feed_url");
- $feed_url = htmlspecialchars(db_fetch_result($result,
+ $feed_url = $this->dbh->fetch_result($result, 0, "feed_url");
+ $feed_url = htmlspecialchars($this->dbh->fetch_result($result,
0, "feed_url"));
print "<hr/>";
@@ -508,7 +560,7 @@ class Pref_Feeds extends Handler_Protected {
regExp='^(http|https)://.*' style=\"width : 20em\"
name=\"feed_url\" value=\"$feed_url\">";
- $last_error = db_fetch_result($result, 0, "last_error");
+ $last_error = $this->dbh->fetch_result($result, 0, "last_error");
if ($last_error) {
print "&nbsp;<span title=\"".htmlspecialchars($last_error)."\"
@@ -518,15 +570,15 @@ class Pref_Feeds extends Handler_Protected {
/* Category */
- if (get_pref($this->link, 'ENABLE_FEED_CATS')) {
+ if (get_pref('ENABLE_FEED_CATS')) {
- $cat_id = db_fetch_result($result, 0, "cat_id");
+ $cat_id = $this->dbh->fetch_result($result, 0, "cat_id");
print "<hr/>";
print __('Place in category:') . " ";
- print_feed_cat_select($this->link, "cat_id", $cat_id,
+ print_feed_cat_select("cat_id", $cat_id,
'dojoType="dijit.form.Select"');
}
@@ -537,14 +589,14 @@ class Pref_Feeds extends Handler_Protected {
/* Update Interval */
- $update_interval = db_fetch_result($result, 0, "update_interval");
+ $update_interval = $this->dbh->fetch_result($result, 0, "update_interval");
print_select_hash("update_interval", $update_interval, $update_intervals,
'dojoType="dijit.form.Select"');
/* Purge intl */
- $purge_interval = db_fetch_result($result, 0, "purge_interval");
+ $purge_interval = $this->dbh->fetch_result($result, 0, "purge_interval");
print "<hr/>";
print __('Article purging:') . " ";
@@ -557,13 +609,20 @@ class Pref_Feeds extends Handler_Protected {
print "<div class=\"dlgSec\">".__("Authentication")."</div>";
print "<div class=\"dlgSecCont\">";
- $auth_login = htmlspecialchars(db_fetch_result($result, 0, "auth_login"));
+ $auth_login = htmlspecialchars($this->dbh->fetch_result($result, 0, "auth_login"));
print "<input dojoType=\"dijit.form.TextBox\" id=\"feedEditDlg_login\"
placeHolder=\"".__("Login")."\"
name=\"auth_login\" value=\"$auth_login\"><hr/>";
- $auth_pass = htmlspecialchars(db_fetch_result($result, 0, "auth_pass"));
+ $auth_pass = $this->dbh->fetch_result($result, 0, "auth_pass");
+
+ if ($auth_pass_encrypted) {
+ require_once "crypt.php";
+ $auth_pass = decrypt_string($auth_pass);
+ }
+
+ $auth_pass = htmlspecialchars($auth_pass);
print "<input dojoType=\"dijit.form.TextBox\" type=\"password\" name=\"auth_pass\"
placeHolder=\"".__("Password")."\"
@@ -577,7 +636,7 @@ class Pref_Feeds extends Handler_Protected {
print "<div class=\"dlgSec\">".__("Options")."</div>";
print "<div class=\"dlgSecCont\">";
- $private = sql_bool_to_bool(db_fetch_result($result, 0, "private"));
+ $private = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "private"));
if ($private) {
$checked = "checked=\"1\"";
@@ -588,7 +647,7 @@ class Pref_Feeds extends Handler_Protected {
print "<input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" name=\"private\" id=\"private\"
$checked>&nbsp;<label for=\"private\">".__('Hide from Popular feeds')."</label>";
- $include_in_digest = sql_bool_to_bool(db_fetch_result($result, 0, "include_in_digest"));
+ $include_in_digest = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "include_in_digest"));
if ($include_in_digest) {
$checked = "checked=\"1\"";
@@ -601,7 +660,7 @@ class Pref_Feeds extends Handler_Protected {
$checked>&nbsp;<label for=\"include_in_digest\">".__('Include in e-mail digest')."</label>";
- $always_display_enclosures = sql_bool_to_bool(db_fetch_result($result, 0, "always_display_enclosures"));
+ $always_display_enclosures = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "always_display_enclosures"));
if ($always_display_enclosures) {
$checked = "checked";
@@ -613,8 +672,20 @@ class Pref_Feeds extends Handler_Protected {
name=\"always_display_enclosures\"
$checked>&nbsp;<label for=\"always_display_enclosures\">".__('Always display image attachments')."</label>";
+ $hide_images = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "hide_images"));
- $cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images"));
+ if ($hide_images) {
+ $checked = "checked=\"1\"";
+ } else {
+ $checked = "";
+ }
+
+ print "<hr/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" id=\"hide_images\"
+ name=\"hide_images\"
+ $checked>&nbsp;<label for=\"hide_images\">".
+ __('Do not embed images')."</label>";
+
+ $cache_images = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "cache_images"));
if ($cache_images) {
$checked = "checked=\"1\"";
@@ -627,7 +698,7 @@ class Pref_Feeds extends Handler_Protected {
$checked>&nbsp;<label for=\"cache_images\">".
__('Cache images locally')."</label>";
- $mark_unread_on_update = sql_bool_to_bool(db_fetch_result($result, 0, "mark_unread_on_update"));
+ $mark_unread_on_update = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "mark_unread_on_update"));
if ($mark_unread_on_update) {
$checked = "checked";
@@ -664,6 +735,9 @@ class Pref_Feeds extends Handler_Protected {
print "</div>";
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_EDIT_FEED,
+ "hook_prefs_edit_feed", $feed_id);
+
$title = htmlspecialchars($title, ENT_QUOTES);
print "<div class='dlgButtons'>
@@ -672,7 +746,7 @@ class Pref_Feeds extends Handler_Protected {
__('Unsubscribe')."</button>";
if (PUBSUBHUBBUB_ENABLED) {
- $pubsub_state = db_fetch_result($result, 0, "pubsub_state");
+ $pubsub_state = $this->dbh->fetch_result($result, 0, "pubsub_state");
$pubsub_btn_disabled = ($pubsub_state == 2) ? "" : "disabled=\"1\"";
print "<button dojoType=\"dijit.form.Button\" id=\"pubsubReset_Btn\" $pubsub_btn_disabled
@@ -696,9 +770,11 @@ class Pref_Feeds extends Handler_Protected {
global $purge_intervals;
global $update_intervals;
- $feed_ids = db_escape_string($_REQUEST["ids"]);
+ $feed_ids = $this->dbh->escape_string($_REQUEST["ids"]);
- print "<div class=\"dialogNotice\">" . __("Enable the options you wish to apply using checkboxes on the right:") . "</div>";
+ print_notice("Enable the options you wish to apply using checkboxes on the right:");
+
+ print "<p>";
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"ids\" value=\"$feed_ids\">";
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-feeds\">";
@@ -711,7 +787,7 @@ class Pref_Feeds extends Handler_Protected {
print "<input dojoType=\"dijit.form.ValidationTextBox\"
disabled=\"1\" style=\"font-size : 16px; width : 20em;\" required=\"1\"
- name=\"title\" value=\"$title\">";
+ name=\"title\" value=\"\">";
$this->batch_edit_cbox("title");
@@ -722,19 +798,19 @@ class Pref_Feeds extends Handler_Protected {
print __('URL:') . " ";
print "<input dojoType=\"dijit.form.ValidationTextBox\" disabled=\"1\"
required=\"1\" regExp='^(http|https)://.*' style=\"width : 20em\"
- name=\"feed_url\" value=\"$feed_url\">";
+ name=\"feed_url\" value=\"\">";
$this->batch_edit_cbox("feed_url");
/* Category */
- if (get_pref($this->link, 'ENABLE_FEED_CATS')) {
+ if (get_pref('ENABLE_FEED_CATS')) {
print "<br/>";
print __('Place in category:') . " ";
- print_feed_cat_select($this->link, "cat_id", $cat_id,
+ print_feed_cat_select("cat_id", false,
'disabled="1" dojoType="dijit.form.Select"');
$this->batch_edit_cbox("cat_id");
@@ -748,7 +824,7 @@ class Pref_Feeds extends Handler_Protected {
/* Update Interval */
- print_select_hash("update_interval", $update_interval, $update_intervals,
+ print_select_hash("update_interval", "", $update_intervals,
'disabled="1" dojoType="dijit.form.Select"');
$this->batch_edit_cbox("update_interval");
@@ -761,7 +837,7 @@ class Pref_Feeds extends Handler_Protected {
print __('Article purging:') . " ";
- print_select_hash("purge_interval", $purge_interval, $purge_intervals,
+ print_select_hash("purge_interval", "", $purge_intervals,
'disabled="1" dojoType="dijit.form.Select"');
$this->batch_edit_cbox("purge_interval");
@@ -773,13 +849,13 @@ class Pref_Feeds extends Handler_Protected {
print "<input dojoType=\"dijit.form.TextBox\"
placeHolder=\"".__("Login")."\" disabled=\"1\"
- name=\"auth_login\" value=\"$auth_login\">";
+ name=\"auth_login\" value=\"\">";
$this->batch_edit_cbox("auth_login");
print "<br/><input dojoType=\"dijit.form.TextBox\" type=\"password\" name=\"auth_pass\"
placeHolder=\"".__("Password")."\" disabled=\"1\"
- value=\"$auth_pass\">";
+ value=\"\">";
$this->batch_edit_cbox("auth_pass");
@@ -804,6 +880,14 @@ class Pref_Feeds extends Handler_Protected {
print "&nbsp;"; $this->batch_edit_cbox("always_display_enclosures", "always_display_enclosures_l");
+ print "<br/><input disabled=\"1\" type=\"checkbox\" id=\"hide_images\"
+ name=\"hide_images\"
+ dojoType=\"dijit.form.CheckBox\">&nbsp;<label class='insensitive' id=\"hide_images_l\"
+ for=\"hide_images\">".
+ __('Do not embed images')."</label>";
+
+ print "&nbsp;"; $this->batch_edit_cbox("hide_images", "hide_images_l");
+
print "<br/><input disabled=\"1\" type=\"checkbox\" id=\"cache_images\"
name=\"cache_images\"
dojoType=\"dijit.form.CheckBox\">&nbsp;<label class='insensitive' id=\"cache_images_l\"
@@ -842,28 +926,39 @@ class Pref_Feeds extends Handler_Protected {
function editsaveops($batch) {
- $feed_title = db_escape_string(trim($_POST["title"]));
- $feed_link = db_escape_string(trim($_POST["feed_url"]));
- $upd_intl = (int) db_escape_string($_POST["update_interval"]);
- $purge_intl = (int) db_escape_string($_POST["purge_interval"]);
- $feed_id = (int) db_escape_string($_POST["id"]); /* editSave */
- $feed_ids = db_escape_string($_POST["ids"]); /* batchEditSave */
- $cat_id = (int) db_escape_string($_POST["cat_id"]);
- $auth_login = db_escape_string(trim($_POST["auth_login"]));
- $auth_pass = db_escape_string(trim($_POST["auth_pass"]));
- $private = checkbox_to_sql_bool(db_escape_string($_POST["private"]));
+ $feed_title = $this->dbh->escape_string(trim($_POST["title"]));
+ $feed_link = $this->dbh->escape_string(trim($_POST["feed_url"]));
+ $upd_intl = (int) $this->dbh->escape_string($_POST["update_interval"]);
+ $purge_intl = (int) $this->dbh->escape_string($_POST["purge_interval"]);
+ $feed_id = (int) $this->dbh->escape_string($_POST["id"]); /* editSave */
+ $feed_ids = $this->dbh->escape_string($_POST["ids"]); /* batchEditSave */
+ $cat_id = (int) $this->dbh->escape_string($_POST["cat_id"]);
+ $auth_login = $this->dbh->escape_string(trim($_POST["auth_login"]));
+ $auth_pass = trim($_POST["auth_pass"]);
+ $private = checkbox_to_sql_bool($this->dbh->escape_string($_POST["private"]));
$include_in_digest = checkbox_to_sql_bool(
- db_escape_string($_POST["include_in_digest"]));
+ $this->dbh->escape_string($_POST["include_in_digest"]));
$cache_images = checkbox_to_sql_bool(
- db_escape_string($_POST["cache_images"]));
-
+ $this->dbh->escape_string($_POST["cache_images"]));
+ $hide_images = checkbox_to_sql_bool(
+ $this->dbh->escape_string($_POST["hide_images"]));
$always_display_enclosures = checkbox_to_sql_bool(
- db_escape_string($_POST["always_display_enclosures"]));
+ $this->dbh->escape_string($_POST["always_display_enclosures"]));
$mark_unread_on_update = checkbox_to_sql_bool(
- db_escape_string($_POST["mark_unread_on_update"]));
+ $this->dbh->escape_string($_POST["mark_unread_on_update"]));
- if (get_pref($this->link, 'ENABLE_FEED_CATS')) {
+ if (strlen(FEED_CRYPT_KEY) > 0) {
+ require_once "crypt.php";
+ $auth_pass = substr(encrypt_string($auth_pass), 0, 250);
+ $auth_pass_encrypted = 'true';
+ } else {
+ $auth_pass_encrypted = 'false';
+ }
+
+ $auth_pass = $this->dbh->escape_string($auth_pass);
+
+ if (get_pref('ENABLE_FEED_CATS')) {
if ($cat_id && $cat_id != 0) {
$category_qpart = "cat_id = '$cat_id',";
$category_qpart_nocomma = "cat_id = '$cat_id'";
@@ -878,20 +973,25 @@ class Pref_Feeds extends Handler_Protected {
if (!$batch) {
- $result = db_query($this->link, "UPDATE ttrss_feeds SET
+ $result = $this->dbh->query("UPDATE ttrss_feeds SET
$category_qpart
title = '$feed_title', feed_url = '$feed_link',
update_interval = '$upd_intl',
purge_interval = '$purge_intl',
auth_login = '$auth_login',
auth_pass = '$auth_pass',
+ auth_pass_encrypted = $auth_pass_encrypted,
private = $private,
cache_images = $cache_images,
+ hide_images = $hide_images,
include_in_digest = $include_in_digest,
always_display_enclosures = $always_display_enclosures,
mark_unread_on_update = $mark_unread_on_update
WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]);
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_SAVE_FEED,
+ "hook_prefs_save_feed", $feed_id);
+
} else {
$feed_data = array();
@@ -901,7 +1001,7 @@ class Pref_Feeds extends Handler_Protected {
}
}
- db_query($this->link, "BEGIN");
+ $this->dbh->query("BEGIN");
foreach (array_keys($feed_data) as $k) {
@@ -929,7 +1029,8 @@ class Pref_Feeds extends Handler_Protected {
break;
case "auth_pass":
- $qpart = "auth_pass = '$auth_pass'";
+ $qpart = "auth_pass = '$auth_pass' AND
+ auth_pass_encrypted = $auth_pass_encrypted";
break;
case "private":
@@ -952,6 +1053,10 @@ class Pref_Feeds extends Handler_Protected {
$qpart = "cache_images = $cache_images";
break;
+ case "hide_images":
+ $qpart = "hide_images = $hide_images";
+ break;
+
case "cat_id":
$qpart = $category_qpart_nocomma;
break;
@@ -959,23 +1064,23 @@ class Pref_Feeds extends Handler_Protected {
}
if ($qpart) {
- db_query($this->link,
+ $this->dbh->query(
"UPDATE ttrss_feeds SET $qpart WHERE id IN ($feed_ids)
AND owner_uid = " . $_SESSION["uid"]);
print "<br/>";
}
}
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
}
return;
}
function resetPubSub() {
- $ids = db_escape_string($_REQUEST["ids"]);
+ $ids = $this->dbh->escape_string($_REQUEST["ids"]);
- db_query($this->link, "UPDATE ttrss_feeds SET pubsub_state = 0 WHERE id IN ($ids)
+ $this->dbh->query("UPDATE ttrss_feeds SET pubsub_state = 0 WHERE id IN ($ids)
AND owner_uid = " . $_SESSION["uid"]);
return;
@@ -983,30 +1088,30 @@ class Pref_Feeds extends Handler_Protected {
function remove() {
- $ids = split(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) {
- $this->remove_feed($this->link, $id, $_SESSION["uid"]);
+ Pref_Feeds::remove_feed($id, $_SESSION["uid"]);
}
return;
}
function clear() {
- $id = db_escape_string($_REQUEST["id"]);
- $this->clear_feed_articles($this->link, $id);
+ $id = $this->dbh->escape_string($_REQUEST["id"]);
+ $this->clear_feed_articles($id);
}
function rescore() {
require_once "rssfuncs.php";
- $ids = split(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) {
- $filters = load_filters($this->link, $id, $_SESSION["uid"], 6);
+ $filters = load_filters($id, $_SESSION["uid"], 6);
- $result = db_query($this->link, "SELECT
+ $result = $this->dbh->query("SELECT
title, content, link, ref_id, author,".
SUBSTRING_FOR_DATE."(updated, 1, 19) AS updated
FROM
@@ -1017,9 +1122,9 @@ class Pref_Feeds extends Handler_Protected {
$scores = array();
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
- $tags = get_article_tags($this->link, $line["ref_id"]);
+ $tags = get_article_tags($line["ref_id"]);
$article_filters = get_article_filters($filters, $line['title'],
$line['content'], $line['link'], strtotime($line['updated']),
@@ -1034,15 +1139,15 @@ class Pref_Feeds extends Handler_Protected {
foreach (array_keys($scores) as $s) {
if ($s > 1000) {
- db_query($this->link, "UPDATE ttrss_user_entries SET score = '$s',
+ $this->dbh->query("UPDATE ttrss_user_entries SET score = '$s',
marked = true WHERE
ref_id IN (" . join(',', $scores[$s]) . ")");
} else if ($s < -500) {
- db_query($this->link, "UPDATE ttrss_user_entries SET score = '$s',
+ $this->dbh->query("UPDATE ttrss_user_entries SET score = '$s',
unread = false WHERE
ref_id IN (" . join(',', $scores[$s]) . ")");
} else {
- db_query($this->link, "UPDATE ttrss_user_entries SET score = '$s' WHERE
+ $this->dbh->query("UPDATE ttrss_user_entries SET score = '$s' WHERE
ref_id IN (" . join(',', $scores[$s]) . ")");
}
}
@@ -1054,16 +1159,16 @@ class Pref_Feeds extends Handler_Protected {
function rescoreAll() {
- $result = db_query($this->link,
+ $result = $this->dbh->query(
"SELECT id FROM ttrss_feeds WHERE owner_uid = " . $_SESSION['uid']);
- while ($feed_line = db_fetch_assoc($result)) {
+ while ($feed_line = $this->dbh->fetch_assoc($result)) {
$id = $feed_line["id"];
- $filters = load_filters($this->link, $id, $_SESSION["uid"], 6);
+ $filters = load_filters($id, $_SESSION["uid"], 6);
- $tmp_result = db_query($this->link, "SELECT
+ $tmp_result = $this->dbh->query("SELECT
title, content, link, ref_id, author,".
SUBSTRING_FOR_DATE."(updated, 1, 19) AS updated
FROM
@@ -1074,9 +1179,9 @@ class Pref_Feeds extends Handler_Protected {
$scores = array();
- while ($line = db_fetch_assoc($tmp_result)) {
+ while ($line = $this->dbh->fetch_assoc($tmp_result)) {
- $tags = get_article_tags($this->link, $line["ref_id"]);
+ $tags = get_article_tags($line["ref_id"]);
$article_filters = get_article_filters($filters, $line['title'],
$line['content'], $line['link'], strtotime($line['updated']),
@@ -1091,11 +1196,11 @@ class Pref_Feeds extends Handler_Protected {
foreach (array_keys($scores) as $s) {
if ($s > 1000) {
- db_query($this->link, "UPDATE ttrss_user_entries SET score = '$s',
+ $this->dbh->query("UPDATE ttrss_user_entries SET score = '$s',
marked = true WHERE
ref_id IN (" . join(',', $scores[$s]) . ")");
} else {
- db_query($this->link, "UPDATE ttrss_user_entries SET score = '$s' WHERE
+ $this->dbh->query("UPDATE ttrss_user_entries SET score = '$s' WHERE
ref_id IN (" . join(',', $scores[$s]) . ")");
}
}
@@ -1106,9 +1211,9 @@ class Pref_Feeds extends Handler_Protected {
}
function categorize() {
- $ids = split(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
- $cat_id = db_escape_string($_REQUEST["cat_id"]);
+ $cat_id = $this->dbh->escape_string($_REQUEST["cat_id"]);
if ($cat_id == 0) {
$cat_id_qpart = 'NULL';
@@ -1116,30 +1221,30 @@ class Pref_Feeds extends Handler_Protected {
$cat_id_qpart = "'$cat_id'";
}
- db_query($this->link, "BEGIN");
+ $this->dbh->query("BEGIN");
foreach ($ids as $id) {
- db_query($this->link, "UPDATE ttrss_feeds SET cat_id = $cat_id_qpart
+ $this->dbh->query("UPDATE ttrss_feeds SET cat_id = $cat_id_qpart
WHERE id = '$id'
AND owner_uid = " . $_SESSION["uid"]);
}
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
}
function removeCat() {
- $ids = split(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) {
- $this->remove_feed_category($this->link, $id, $_SESSION["uid"]);
+ $this->remove_feed_category($id, $_SESSION["uid"]);
}
}
function addCat() {
- $feed_cat = db_escape_string(trim($_REQUEST["cat"]));
+ $feed_cat = $this->dbh->escape_string(trim($_REQUEST["cat"]));
- add_feed_category($this->link, $feed_cat);
+ add_feed_category($feed_cat);
}
function index() {
@@ -1147,10 +1252,10 @@ class Pref_Feeds extends Handler_Protected {
print "<div dojoType=\"dijit.layout.AccordionContainer\" region=\"center\">";
print "<div id=\"pref-feeds-feeds\" dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Feeds')."\">";
- $result = db_query($this->link, "SELECT COUNT(id) AS num_errors
+ $result = $this->dbh->query("SELECT COUNT(id) AS num_errors
FROM ttrss_feeds WHERE last_error != '' AND owner_uid = ".$_SESSION["uid"]);
- $num_errors = db_fetch_result($result, 0, "num_errors");
+ $num_errors = $this->dbh->fetch_result($result, 0, "num_errors");
if ($num_errors > 0) {
@@ -1165,13 +1270,13 @@ class Pref_Feeds extends Handler_Protected {
$interval_qpart = "DATE_SUB(NOW(), INTERVAL 3 MONTH)";
}
- $result = db_query($this->link, "SELECT COUNT(*) AS num_inactive FROM ttrss_feeds WHERE
+ $result = $this->dbh->query("SELECT COUNT(*) AS num_inactive FROM ttrss_feeds WHERE
(SELECT MAX(updated) FROM ttrss_entries, ttrss_user_entries WHERE
ttrss_entries.id = ref_id AND
ttrss_user_entries.feed_id = ttrss_feeds.id) < $interval_qpart AND
ttrss_feeds.owner_uid = ".$_SESSION["uid"]);
- $num_inactive = db_fetch_result($result, 0, "num_inactive");
+ $num_inactive = $this->dbh->fetch_result($result, 0, "num_inactive");
if ($num_inactive > 0) {
$inactive_button = "<button dojoType=\"dijit.form.Button\"
@@ -1179,7 +1284,7 @@ class Pref_Feeds extends Handler_Protected {
__("Inactive feeds") . "</button>";
}
- $feed_search = db_escape_string($_REQUEST["search"]);
+ $feed_search = $this->dbh->escape_string($_REQUEST["search"]);
if (array_key_exists("search", $_REQUEST)) {
$_SESSION["prefs_feed_search"] = $feed_search;
@@ -1218,16 +1323,16 @@ class Pref_Feeds extends Handler_Protected {
dojoType=\"dijit.MenuItem\">".__('Reset sort order')."</div>";
print "<div onclick=\"batchSubscribe()\"
dojoType=\"dijit.MenuItem\">".__('Batch subscribe')."</div>";
+ print "<div dojoType=\"dijit.MenuItem\" onclick=\"removeSelectedFeeds()\">"
+ .__('Unsubscribe')."</div> ";
print "</div></div>";
- if (get_pref($this->link, 'ENABLE_FEED_CATS')) {
+ if (get_pref('ENABLE_FEED_CATS')) {
print "<div dojoType=\"dijit.form.DropDownButton\">".
"<span>" . __('Categories')."</span>";
print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">";
print "<div onclick=\"createCategory()\"
dojoType=\"dijit.MenuItem\">".__('Add category')."</div>";
- print "<div onclick=\"toggleHiddenFeedCats()\"
- dojoType=\"dijit.MenuItem\">".__('(Un)hide empty categories')."</div>";
print "<div onclick=\"resetCatOrder()\"
dojoType=\"dijit.MenuItem\">".__('Reset sort order')."</div>";
print "<div onclick=\"removeSelectedCategories()\"
@@ -1239,9 +1344,6 @@ class Pref_Feeds extends Handler_Protected {
print $error_button;
print $inactive_button;
- print "<button dojoType=\"dijit.form.Button\" onclick=\"removeSelectedFeeds()\">"
- .__('Unsubscribe')."</button dojoType=\"dijit.form.Button\"> ";
-
if (defined('_ENABLE_FEED_DEBUGGING')) {
print "<select id=\"feedActionChooser\" onchange=\"feedActionChange()\">
@@ -1306,9 +1408,7 @@ class Pref_Feeds extends Handler_Protected {
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('OPML')."\">";
- print "<p>" . __("Using OPML you can export and import your feeds, filters, labels and Tiny Tiny RSS settings.") . " ";
-
- print __("Only main settings profile can be migrated using OPML.") . "</p>";
+ print_notice(__("Using OPML you can export and import your feeds, filters, labels and Tiny Tiny RSS settings.") . __("Only main settings profile can be migrated using OPML."));
print "<iframe id=\"upload_iframe\"
name=\"upload_iframe\" onload=\"opmlImportComplete(this)\"
@@ -1339,11 +1439,10 @@ class Pref_Feeds extends Handler_Protected {
print __("Published OPML does not include your Tiny Tiny RSS settings, feeds that require authentication or feeds hidden from Popular feeds.") . "</p>";
- print "<button dojoType=\"dijit.form.Button\" onclick=\"return displayDlg('pubOPMLUrl')\">".
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"return displayDlg('".__("Public OPML URL")."','pubOPMLUrl')\">".
__('Display published OPML URL')."</button> ";
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION,
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION,
"hook_prefs_tab_section", "prefFeedsOPML");
print "</div>"; # pane
@@ -1352,7 +1451,7 @@ class Pref_Feeds extends Handler_Protected {
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Firefox integration')."\">";
- print "<p>" . __('This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the link below.') . "</p>";
+ print_notice(__('This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the link below.'));
print "<p>";
@@ -1369,35 +1468,36 @@ class Pref_Feeds extends Handler_Protected {
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Published & shared articles / Generated feeds')."\">";
- print "<h3>" . __("Published articles and generated feeds") . "</h3>";
-
- print "<p>".__('Published articles are exported as a public RSS feed and can be subscribed by anyone who knows the URL specified below.')."</p>";
+ print_notice(__('Published articles are exported as a public RSS feed and can be subscribed by anyone who knows the URL specified below.'));
$rss_url = '-2::' . htmlspecialchars(get_self_url_prefix() .
"/public.php?op=rss&id=-2&view-mode=all_articles");;
- print "<button dojoType=\"dijit.form.Button\" onclick=\"return displayDlg('generatedFeed', '$rss_url')\">".
+ print "<p>";
+
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"return displayDlg('".__("View as RSS")."','generatedFeed', '$rss_url')\">".
__('Display URL')."</button> ";
print "<button dojoType=\"dijit.form.Button\" onclick=\"return clearFeedAccessKeys()\">".
__('Clear all generated URLs')."</button> ";
- print "<h3>" . __("Articles shared by URL") . "</h3>";
+ print "</p>";
- print "<p>" . __("You can disable all articles shared by unique URLs here.") . "</p>";
+ print_warning(__("You can disable all articles shared by unique URLs here."));
+
+ print "<p>";
print "<button dojoType=\"dijit.form.Button\" onclick=\"return clearArticleAccessKeys()\">".
__('Unshare all articles')."</button> ";
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION,
+ print "</p>";
+
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION,
"hook_prefs_tab_section", "prefFeedsPublishedGenerated");
print "</div>"; #pane
- global $pluginhost;
-
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefFeeds");
print "</div>"; #container
@@ -1408,14 +1508,14 @@ class Pref_Feeds extends Handler_Protected {
$cat_id = (int) $cat_id;
if ($cat_id > 0) {
- $cat_unread = ccache_find($this->link, $cat_id, $_SESSION["uid"], true);
+ $cat_unread = ccache_find($cat_id, $_SESSION["uid"], true);
} else if ($cat_id == 0 || $cat_id == -2) {
- $cat_unread = getCategoryUnread($this->link, $cat_id);
+ $cat_unread = getCategoryUnread($cat_id);
}
$obj['id'] = 'CAT:' . $cat_id;
$obj['items'] = array();
- $obj['name'] = getCategoryTitle($this->link, $cat_id);
+ $obj['name'] = getCategoryTitle($cat_id);
$obj['type'] = 'category';
$obj['unread'] = (int) $cat_unread;
$obj['bare_id'] = $cat_id;
@@ -1428,10 +1528,10 @@ class Pref_Feeds extends Handler_Protected {
$feed_id = (int) $feed_id;
if (!$title)
- $title = getFeedTitle($this->link, $feed_id, false);
+ $title = getFeedTitle($feed_id, false);
if ($unread === false)
- $unread = getFeedUnread($this->link, $feed_id, false);
+ $unread = getFeedUnread($feed_id, false);
$obj['id'] = 'FEED:' . $feed_id;
$obj['name'] = $title;
@@ -1453,7 +1553,7 @@ class Pref_Feeds extends Handler_Protected {
$interval_qpart = "DATE_SUB(NOW(), INTERVAL 3 MONTH)";
}
- $result = db_query($this->link, "SELECT ttrss_feeds.title, ttrss_feeds.site_url,
+ $result = $this->dbh->query("SELECT ttrss_feeds.title, ttrss_feeds.site_url,
ttrss_feeds.feed_url, ttrss_feeds.id, MAX(updated) AS last_article
FROM ttrss_feeds, ttrss_entries, ttrss_user_entries WHERE
(SELECT MAX(updated) FROM ttrss_entries, ttrss_user_entries WHERE
@@ -1465,7 +1565,7 @@ class Pref_Feeds extends Handler_Protected {
GROUP BY ttrss_feeds.title, ttrss_feeds.id, ttrss_feeds.site_url, ttrss_feeds.feed_url
ORDER BY last_article");
- print "<div class=\"dialogNotice\">" . __("These feeds have not been updated with new content for 3 months (oldest first):") . "</div>";
+ print "<p" .__("These feeds have not been updated with new content for 3 months (oldest first):") . "</p>";
print "<div dojoType=\"dijit.Toolbar\">";
print "<div dojoType=\"dijit.form.DropDownButton\">".
@@ -1484,9 +1584,8 @@ class Pref_Feeds extends Handler_Protected {
$lnum = 1;
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
- $class = ($lnum % 2) ? "even" : "odd";
$feed_id = $line["id"];
$this_row_id = "id=\"FUPDD-$feed_id\"";
@@ -1507,7 +1606,7 @@ class Pref_Feeds extends Handler_Protected {
htmlspecialchars($line["title"])."</a>";
print "</td><td class=\"insensitive\" align='right'>";
- print make_local_datetime($this->link, $line['last_article'], false);
+ print make_local_datetime($line['last_article'], false);
print "</td>";
print "</tr>";
@@ -1531,9 +1630,7 @@ class Pref_Feeds extends Handler_Protected {
}
function feedsWithErrors() {
- print "<div class=\"dialogNotice\">" . __("These feeds have not been updated because of errors:") . "</div>";
-
- $result = db_query($this->link, "SELECT id,title,feed_url,last_error,site_url
+ $result = $this->dbh->query("SELECT id,title,feed_url,last_error,site_url
FROM ttrss_feeds WHERE last_error != '' AND owner_uid = ".$_SESSION["uid"]);
print "<div dojoType=\"dijit.Toolbar\">";
@@ -1553,9 +1650,8 @@ class Pref_Feeds extends Handler_Protected {
$lnum = 1;
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
- $class = ($lnum % 2) ? "even" : "odd";
$feed_id = $line["id"];
$this_row_id = "id=\"FERDD-$feed_id\"";
@@ -1607,77 +1703,232 @@ class Pref_Feeds extends Handler_Protected {
* @param integer $id The id of the feed to purge.
* @return void
*/
- private function clear_feed_articles($link, $id) {
+ private function clear_feed_articles($id) {
if ($id != 0) {
- $result = db_query($link, "DELETE FROM ttrss_user_entries
+ $result = $this->dbh->query("DELETE FROM ttrss_user_entries
WHERE feed_id = '$id' AND marked = false AND owner_uid = " . $_SESSION["uid"]);
} else {
- $result = db_query($link, "DELETE FROM ttrss_user_entries
+ $result = $this->dbh->query("DELETE FROM ttrss_user_entries
WHERE feed_id IS NULL AND marked = false AND owner_uid = " . $_SESSION["uid"]);
}
- $result = db_query($link, "DELETE FROM ttrss_entries WHERE
+ $result = $this->dbh->query("DELETE FROM ttrss_entries WHERE
(SELECT COUNT(int_id) FROM ttrss_user_entries WHERE ref_id = id) = 0");
- ccache_update($link, $id, $_SESSION['uid']);
+ ccache_update($id, $_SESSION['uid']);
} // function clear_feed_articles
- private function remove_feed_category($link, $id, $owner_uid) {
+ private function remove_feed_category($id, $owner_uid) {
- db_query($link, "DELETE FROM ttrss_feed_categories
+ $this->dbh->query("DELETE FROM ttrss_feed_categories
WHERE id = '$id' AND owner_uid = $owner_uid");
- ccache_remove($link, $id, $owner_uid, true);
+ ccache_remove($id, $owner_uid, true);
}
- private function remove_feed($link, $id, $owner_uid) {
+ static function remove_feed($id, $owner_uid) {
if ($id > 0) {
/* save starred articles in Archived feed */
- db_query($link, "BEGIN");
+ db_query("BEGIN");
/* prepare feed if necessary */
- $result = db_query($link, "SELECT id FROM ttrss_archived_feeds
- WHERE id = '$id'");
+ $result = db_query("SELECT feed_url FROM ttrss_feeds WHERE id = $id
+ AND owner_uid = $owner_uid");
+
+ $feed_url = db_escape_string(db_fetch_result($result, 0, "feed_url"));
+
+ $result = db_query("SELECT id FROM ttrss_archived_feeds
+ WHERE feed_url = '$feed_url' AND owner_uid = $owner_uid");
if (db_num_rows($result) == 0) {
- db_query($link, "INSERT INTO ttrss_archived_feeds
+ $result = db_query("SELECT MAX(id) AS id FROM ttrss_archived_feeds");
+ $new_feed_id = (int)db_fetch_result($result, 0, "id") + 1;
+
+ db_query("INSERT INTO ttrss_archived_feeds
(id, owner_uid, title, feed_url, site_url)
- SELECT id, owner_uid, title, feed_url, site_url from ttrss_feeds
- WHERE id = '$id'");
+ SELECT $new_feed_id, owner_uid, title, feed_url, site_url from ttrss_feeds
+ WHERE id = '$id'");
+
+ $archive_id = $new_feed_id;
+ } else {
+ $archive_id = db_fetch_result($result, 0, "id");
}
- db_query($link, "UPDATE ttrss_user_entries SET feed_id = NULL,
- orig_feed_id = '$id' WHERE feed_id = '$id' AND
+ db_query("UPDATE ttrss_user_entries SET feed_id = NULL,
+ orig_feed_id = '$archive_id' WHERE feed_id = '$id' AND
marked = true AND owner_uid = $owner_uid");
/* Remove access key for the feed */
- db_query($link, "DELETE FROM ttrss_access_keys WHERE
+ db_query("DELETE FROM ttrss_access_keys WHERE
feed_id = '$id' AND owner_uid = $owner_uid");
/* remove the feed */
- db_query($link, "DELETE FROM ttrss_feeds
+ db_query("DELETE FROM ttrss_feeds
WHERE id = '$id' AND owner_uid = $owner_uid");
- db_query($link, "COMMIT");
+ db_query("COMMIT");
if (file_exists(ICONS_DIR . "/$id.ico")) {
unlink(ICONS_DIR . "/$id.ico");
}
- ccache_remove($link, $id, $owner_uid);
+ ccache_remove($id, $owner_uid);
} else {
- label_remove($link, -11-$id, $owner_uid);
- ccache_remove($link, -11-$id, $owner_uid);
+ label_remove(feed_to_label_id($id), $owner_uid);
+ //ccache_remove($id, $owner_uid); don't think labels are cached
+ }
+ }
+
+ function batchSubscribe() {
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-feeds\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"batchaddfeeds\">";
+
+ print "<table width='100%'><tr><td>
+ ".__("Add one valid RSS feed per line (no feed detection is done)")."
+ </td><td align='right'>";
+ if (get_pref('ENABLE_FEED_CATS')) {
+ print __('Place in category:') . " ";
+ print_feed_cat_select("cat", false, 'dojoType="dijit.form.Select"');
}
+ print "</td></tr><tr><td colspan='2'>";
+ print "<textarea
+ style='font-size : 12px; width : 100%; height: 200px;'
+ placeHolder=\"".__("Feeds to subscribe, One per line")."\"
+ dojoType=\"dijit.form.SimpleTextarea\" required=\"1\" name=\"feeds\"></textarea>";
+
+ print "</td></tr><tr><td colspan='2'>";
+
+ print "<div id='feedDlg_loginContainer' style='display : none'>
+ " .
+ " <input dojoType=\"dijit.form.TextBox\" name='login'\"
+ placeHolder=\"".__("Login")."\"
+ style=\"width : 10em;\"> ".
+ " <input
+ placeHolder=\"".__("Password")."\"
+ dojoType=\"dijit.form.TextBox\" type='password'
+ style=\"width : 10em;\" name='pass'\">".
+ "</div>";
+
+ print "</td></tr><tr><td colspan='2'>";
+
+ print "<div style=\"clear : both\">
+ <input type=\"checkbox\" name=\"need_auth\" dojoType=\"dijit.form.CheckBox\" id=\"feedDlg_loginCheck\"
+ onclick='checkboxToggleElement(this, \"feedDlg_loginContainer\")'>
+ <label for=\"feedDlg_loginCheck\">".
+ __('Feeds require authentication.')."</div>";
+
+ print "</form>";
+
+ print "</td></tr></table>";
+
+ print "<div class=\"dlgButtons\">
+ <button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('batchSubDlg').execute()\">".__('Subscribe')."</button>
+ <button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('batchSubDlg').hide()\">".__('Cancel')."</button>
+ </div>";
}
+ function batchAddFeeds() {
+ $cat_id = $this->dbh->escape_string($_REQUEST['cat']);
+ $feeds = explode("\n", $_REQUEST['feeds']);
+ $login = $this->dbh->escape_string($_REQUEST['login']);
+ $pass = trim($_REQUEST['pass']);
+
+ foreach ($feeds as $feed) {
+ $feed = $this->dbh->escape_string(trim($feed));
+
+ if (validate_feed_url($feed)) {
+
+ $this->dbh->query("BEGIN");
+
+ if ($cat_id == "0" || !$cat_id) {
+ $cat_qpart = "NULL";
+ } else {
+ $cat_qpart = "'$cat_id'";
+ }
+
+ $result = $this->dbh->query(
+ "SELECT id FROM ttrss_feeds
+ WHERE feed_url = '$feed' AND owner_uid = ".$_SESSION["uid"]);
+
+ if (strlen(FEED_CRYPT_KEY) > 0) {
+ require_once "crypt.php";
+ $pass = substr(encrypt_string($pass), 0, 250);
+ $auth_pass_encrypted = 'true';
+ } else {
+ $auth_pass_encrypted = 'false';
+ }
+
+ $pass = $this->dbh->escape_string($pass);
+
+ if ($this->dbh->num_rows($result) == 0) {
+ $result = $this->dbh->query(
+ "INSERT INTO ttrss_feeds
+ (owner_uid,feed_url,title,cat_id,auth_login,auth_pass,update_method,auth_pass_encrypted)
+ VALUES ('".$_SESSION["uid"]."', '$feed',
+ '[Unknown]', $cat_qpart, '$login', '$pass', 0, $auth_pass_encrypted)");
+ }
+
+ $this->dbh->query("COMMIT");
+ }
+ }
+ }
+
+ function regenOPMLKey() {
+ $this->update_feed_access_key('OPML:Publish',
+ false, $_SESSION["uid"]);
+
+ $new_link = Opml::opml_publish_url();
+
+ print json_encode(array("link" => $new_link));
+ }
+
+ function regenFeedKey() {
+ $feed_id = $this->dbh->escape_string($_REQUEST['id']);
+ $is_cat = $this->dbh->escape_string($_REQUEST['is_cat']) == "true";
+
+ $new_key = $this->update_feed_access_key($feed_id, $is_cat);
+
+ print json_encode(array("link" => $new_key));
+ }
+
+
+ private function update_feed_access_key($feed_id, $is_cat, $owner_uid = false) {
+ if (!$owner_uid) $owner_uid = $_SESSION["uid"];
+
+ $sql_is_cat = bool_to_sql_bool($is_cat);
+
+ $result = $this->dbh->query("SELECT access_key FROM ttrss_access_keys
+ WHERE feed_id = '$feed_id' AND is_cat = $sql_is_cat
+ AND owner_uid = " . $owner_uid);
+
+ if ($this->dbh->num_rows($result) == 1) {
+ $key = $this->dbh->escape_string(sha1(uniqid(rand(), true)));
+
+ $this->dbh->query("UPDATE ttrss_access_keys SET access_key = '$key'
+ WHERE feed_id = '$feed_id' AND is_cat = $sql_is_cat
+ AND owner_uid = " . $owner_uid);
+
+ return $key;
+
+ } else {
+ return get_feed_access_key($feed_id, $is_cat, $owner_uid);
+ }
+ }
+
+ // Silent
+ function clearKeys() {
+ $this->dbh->query("DELETE FROM ttrss_access_keys WHERE
+ owner_uid = " . $_SESSION["uid"]);
+ }
+
+
}
?>
diff --git a/classes/pref/filters.php b/classes/pref/filters.php
index 74a29c619..bcc7b5aec 100644
--- a/classes/pref/filters.php
+++ b/classes/pref/filters.php
@@ -3,23 +3,62 @@ class Pref_Filters extends Handler_Protected {
function csrf_ignore($method) {
$csrf_ignored = array("index", "getfiltertree", "edit", "newfilter", "newrule",
- "newaction");
+ "newaction", "savefilterorder");
return array_search($method, $csrf_ignored) !== false;
}
+ function filtersortreset() {
+ $this->dbh->query("UPDATE ttrss_filters2
+ SET order_id = 0 WHERE owner_uid = " . $_SESSION["uid"]);
+ return;
+ }
+
+ function savefilterorder() {
+ $data = json_decode($_POST['payload'], true);
+
+ #file_put_contents("/tmp/saveorder.json", $_POST['payload']);
+ #$data = json_decode(file_get_contents("/tmp/saveorder.json"), true);
+
+ if (!is_array($data['items']))
+ $data['items'] = json_decode($data['items'], true);
+
+ $index = 0;
+
+ if (is_array($data) && is_array($data['items'])) {
+ foreach ($data['items'][0]['items'] as $item) {
+ $filter_id = (int) str_replace("FILTER:", "", $item['_reference']);
+
+ if ($filter_id > 0) {
+
+ $this->dbh->query("UPDATE ttrss_filters2 SET
+ order_id = $index WHERE id = '$filter_id' AND
+ owner_uid = " .$_SESSION["uid"]);
+
+ ++$index;
+ }
+ }
+ }
+
+ return;
+ }
+
+
function testFilter() {
$filter = array();
$filter["enabled"] = true;
$filter["match_any_rule"] = sql_bool_to_bool(
- checkbox_to_sql_bool(db_escape_string($_REQUEST["match_any_rule"])));
+ checkbox_to_sql_bool($this->dbh->escape_string($_REQUEST["match_any_rule"])));
+ $filter["inverse"] = sql_bool_to_bool(
+ checkbox_to_sql_bool($this->dbh->escape_string($_REQUEST["inverse"])));
+
$filter["rules"] = array();
- $result = db_query($this->link, "SELECT id,name FROM ttrss_filter_types");
+ $result = $this->dbh->query("SELECT id,name FROM ttrss_filter_types");
$filter_types = array();
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$filter_types[$line["id"]] = $line["name"];
}
@@ -44,10 +83,8 @@ class Pref_Filters extends Handler_Protected {
}
}
- $feed_title = getFeedTitle($this->link, $feed);
-
- $qfh_ret = queryFeedHeadlines($this->link, -4, 30, "", false, false, false,
- false, "date_entered DESC", 0, $_SESSION["uid"], $filter);
+ $qfh_ret = queryFeedHeadlines(-4, 30, "", false, false, false,
+ "date_entered DESC", 0, $_SESSION["uid"], $filter);
$result = $qfh_ret[0];
@@ -59,10 +96,10 @@ class Pref_Filters extends Handler_Protected {
print "<div class=\"filterTestHolder\">";
print "<table width=\"100%\" cellspacing=\"0\" id=\"prefErrorFeedList\">";
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$entry_timestamp = strtotime($line["updated"]);
- $entry_tags = get_article_tags($this->link, $line["id"], $_SESSION["uid"]);
+ $entry_tags = get_article_tags($line["id"], $_SESSION["uid"]);
$content_preview = truncate_string(
strip_tags($line["content_preview"]), 100, '...');
@@ -119,7 +156,7 @@ class Pref_Filters extends Handler_Protected {
$filter_search = $_SESSION["prefs_filter_search"];
- $result = db_query($this->link, "SELECT *,
+ $result = $this->dbh->query("SELECT *,
(SELECT action_param FROM ttrss_filters2_actions
WHERE filter_id = ttrss_filters2.id ORDER BY id LIMIT 1) AS action_param,
(SELECT action_id FROM ttrss_filters2_actions
@@ -130,16 +167,16 @@ class Pref_Filters extends Handler_Protected {
(SELECT reg_exp FROM ttrss_filters2_rules
WHERE filter_id = ttrss_filters2.id ORDER BY id LIMIT 1) AS reg_exp
FROM ttrss_filters2 WHERE
- owner_uid = ".$_SESSION["uid"]." ORDER BY action_id,reg_exp");
+ owner_uid = ".$_SESSION["uid"]." ORDER BY order_id, title");
$action_id = -1;
$folder = array();
$folder['items'] = array();
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
- if ($action_id != $line["action_id"]) {
+ /* if ($action_id != $line["action_id"]) {
if (count($folder['items']) > 0) {
array_push($root['items'], $folder);
}
@@ -149,16 +186,16 @@ class Pref_Filters extends Handler_Protected {
$folder['name'] = __($line["action_name"]);
$folder['items'] = array();
$action_id = $line["action_id"];
- }
+ } */
$name = $this->getFilterName($line["id"]);
$match_ok = false;
if ($filter_search) {
- $rules_result = db_query($this->link,
+ $rules_result = $this->dbh->query(
"SELECT reg_exp FROM ttrss_filters2_rules WHERE filter_id = ".$line["id"]);
- while ($rule_line = db_fetch_assoc($rules_result)) {
+ while ($rule_line = $this->dbh->fetch_assoc($rules_result)) {
if (mb_strpos($rule_line['reg_exp'], $filter_search) !== false) {
$match_ok = true;
break;
@@ -167,13 +204,13 @@ class Pref_Filters extends Handler_Protected {
}
if ($line['action_id'] == 7) {
- $label_result = db_query($this->link, "SELECT fg_color, bg_color
- FROM ttrss_labels2 WHERE caption = '".db_escape_string($line['action_param'])."' AND
+ $label_result = $this->dbh->query("SELECT fg_color, bg_color
+ FROM ttrss_labels2 WHERE caption = '".$this->dbh->escape_string($line['action_param'])."' AND
owner_uid = " . $_SESSION["uid"]);
- if (db_num_rows($label_result) > 0) {
- $fg_color = db_fetch_result($label_result, 0, "fg_color");
- $bg_color = db_fetch_result($label_result, 0, "bg_color");
+ if ($this->dbh->num_rows($label_result) > 0) {
+ $fg_color = $this->dbh->fetch_result($label_result, 0, "fg_color");
+ $bg_color = $this->dbh->fetch_result($label_result, 0, "bg_color");
$name[1] = "<span class=\"labelColorIndicator\" id=\"label-editor-indicator\" style='color : $fg_color; background-color : $bg_color; margin-right : 4px'>&alpha;</span>" . $name[1];
}
@@ -192,9 +229,11 @@ class Pref_Filters extends Handler_Protected {
}
}
- if (count($folder['items']) > 0) {
+ /* if (count($folder['items']) > 0) {
array_push($root['items'], $folder);
- }
+ } */
+
+ $root['items'] = $folder['items'];
$fl = array();
$fl['identifier'] = 'id';
@@ -207,13 +246,15 @@ class Pref_Filters extends Handler_Protected {
function edit() {
- $filter_id = db_escape_string($_REQUEST["id"]);
+ $filter_id = $this->dbh->escape_string($_REQUEST["id"]);
- $result = db_query($this->link,
+ $result = $this->dbh->query(
"SELECT * FROM ttrss_filters2 WHERE id = '$filter_id' AND owner_uid = " . $_SESSION["uid"]);
- $enabled = sql_bool_to_bool(db_fetch_result($result, 0, "enabled"));
- $match_any_rule = sql_bool_to_bool(db_fetch_result($result, 0, "match_any_rule"));
+ $enabled = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "enabled"));
+ $match_any_rule = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "match_any_rule"));
+ $inverse = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "inverse"));
+ $title = htmlspecialchars($this->dbh->fetch_result($result, 0, "title"));
print "<form id=\"filter_edit_form\" onsubmit='return false'>";
@@ -222,6 +263,12 @@ class Pref_Filters extends Handler_Protected {
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"editSave\">";
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"csrf_token\" value=\"".$_SESSION['csrf_token']."\">";
+ print "<div class=\"dlgSec\">".__("Caption")."</div>";
+
+ print "<input required=\"true\" dojoType=\"dijit.form.ValidationTextBox\" style=\"width : 20em;\" name=\"title\" value=\"$title\">";
+
+ print "</div>";
+
print "<div class=\"dlgSec\">".__("Match")."</div>";
print "<div dojoType=\"dijit.Toolbar\">";
@@ -245,10 +292,10 @@ class Pref_Filters extends Handler_Protected {
print "<ul id='filterDlg_Matches'>";
- $rules_result = db_query($this->link, "SELECT * FROM ttrss_filters2_rules
+ $rules_result = $this->dbh->query("SELECT * FROM ttrss_filters2_rules
WHERE filter_id = '$filter_id' ORDER BY reg_exp, id");
- while ($line = db_fetch_assoc($rules_result)) {
+ while ($line = $this->dbh->fetch_assoc($rules_result)) {
if (sql_bool_to_bool($line["cat_filter"])) {
$line["feed_id"] = "CAT:" . (int)$line["cat_id"];
}
@@ -257,6 +304,7 @@ class Pref_Filters extends Handler_Protected {
unset($line["cat_id"]);
unset($line["filter_id"]);
unset($line["id"]);
+ if (!sql_bool_to_bool($line["inverse"])) unset($line["inverse"]);
$data = htmlspecialchars(json_encode($line));
@@ -292,10 +340,10 @@ class Pref_Filters extends Handler_Protected {
print "<ul id='filterDlg_Actions'>";
- $actions_result = db_query($this->link, "SELECT * FROM ttrss_filters2_actions
+ $actions_result = $this->dbh->query("SELECT * FROM ttrss_filters2_actions
WHERE filter_id = '$filter_id' ORDER BY id");
- while ($line = db_fetch_assoc($actions_result)) {
+ while ($line = $this->dbh->fetch_assoc($actions_result)) {
$line["action_param_label"] = $line["action_param"];
unset($line["filter_id"]);
@@ -330,6 +378,15 @@ class Pref_Filters extends Handler_Protected {
print "<br/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" name=\"match_any_rule\" id=\"match_any_rule\" $checked>
<label for=\"match_any_rule\">".__('Match any rule')."</label>";
+ if ($inverse) {
+ $checked = "checked=\"1\"";
+ } else {
+ $checked = "";
+ }
+
+ print "<br/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" name=\"inverse\" id=\"inverse\" $checked>
+ <label for=\"inverse\">".__('Inverse matching')."</label>";
+
print "<p/>";
print "<div class=\"dlgButtons\">";
@@ -358,21 +415,22 @@ class Pref_Filters extends Handler_Protected {
if (strpos($feed_id, "CAT:") === 0) {
$feed_id = (int) substr($feed_id, 4);
- $feed = getCategoryTitle($this->link, $feed_id);
+ $feed = getCategoryTitle($feed_id);
} else {
$feed_id = (int) $feed_id;
if ($rule["feed_id"])
- $feed = getFeedTitle($this->link, (int)$rule["feed_id"]);
+ $feed = getFeedTitle((int)$rule["feed_id"]);
else
$feed = __("All feeds");
}
- $result = db_query($this->link, "SELECT description FROM ttrss_filter_types
+ $result = $this->dbh->query("SELECT description FROM ttrss_filter_types
WHERE id = ".(int)$rule["filter_type"]);
- $match_on = db_fetch_result($result, 0, "description");
+ $filter_type = $this->dbh->fetch_result($result, 0, "description");
- return T_sprintf("%s on %s in %s", $rule["reg_exp"], $match_on, $feed);
+ return T_sprintf("%s on %s in %s %s", strip_tags($rule["reg_exp"]),
+ $filter_type, $feed, isset($rule["inverse"]) ? __("(inverse)") : "");
}
function printRuleName() {
@@ -380,10 +438,10 @@ class Pref_Filters extends Handler_Protected {
}
private function getActionName($action) {
- $result = db_query($this->link, "SELECT description FROM
+ $result = $this->dbh->query("SELECT description FROM
ttrss_filter_actions WHERE id = " .(int)$action["action_id"]);
- $title = __(db_fetch_result($result, 0, "description"));
+ $title = __($this->dbh->fetch_result($result, 0, "description"));
if ($action["action_id"] == 4 || $action["action_id"] == 6 ||
$action["action_id"] == 7)
@@ -403,12 +461,16 @@ class Pref_Filters extends Handler_Protected {
# print_r($_REQUEST);
- $filter_id = db_escape_string($_REQUEST["id"]);
- $enabled = checkbox_to_sql_bool(db_escape_string($_REQUEST["enabled"]));
- $match_any_rule = checkbox_to_sql_bool(db_escape_string($_REQUEST["match_any_rule"]));
+ $filter_id = $this->dbh->escape_string($_REQUEST["id"]);
+ $enabled = checkbox_to_sql_bool($this->dbh->escape_string($_REQUEST["enabled"]));
+ $match_any_rule = checkbox_to_sql_bool($this->dbh->escape_string($_REQUEST["match_any_rule"]));
+ $inverse = checkbox_to_sql_bool($this->dbh->escape_string($_REQUEST["inverse"]));
+ $title = $this->dbh->escape_string($_REQUEST["title"]);
- $result = db_query($this->link, "UPDATE ttrss_filters2 SET enabled = $enabled,
- match_any_rule = $match_any_rule
+ $result = $this->dbh->query("UPDATE ttrss_filters2 SET enabled = $enabled,
+ match_any_rule = $match_any_rule,
+ inverse = $inverse,
+ title = '$title'
WHERE id = '$filter_id'
AND owner_uid = ". $_SESSION["uid"]);
@@ -418,17 +480,17 @@ class Pref_Filters extends Handler_Protected {
function remove() {
- $ids = split(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) {
- db_query($this->link, "DELETE FROM ttrss_filters2 WHERE id = '$id' AND owner_uid = ". $_SESSION["uid"]);
+ $this->dbh->query("DELETE FROM ttrss_filters2 WHERE id = '$id' AND owner_uid = ". $_SESSION["uid"]);
}
}
private function saveRulesAndActions($filter_id) {
- db_query($this->link, "DELETE FROM ttrss_filters2_rules WHERE filter_id = '$filter_id'");
- db_query($this->link, "DELETE FROM ttrss_filters2_actions WHERE filter_id = '$filter_id'");
+ $this->dbh->query("DELETE FROM ttrss_filters2_rules WHERE filter_id = '$filter_id'");
+ $this->dbh->query("DELETE FROM ttrss_filters2_actions WHERE filter_id = '$filter_id'");
if ($filter_id) {
/* create rules */
@@ -457,9 +519,11 @@ class Pref_Filters extends Handler_Protected {
foreach ($rules as $rule) {
if ($rule) {
- $reg_exp = strip_tags(db_escape_string(trim($rule["reg_exp"])));
- $filter_type = (int) db_escape_string(trim($rule["filter_type"]));
- $feed_id = db_escape_string(trim($rule["feed_id"]));
+ $reg_exp = strip_tags($this->dbh->escape_string(trim($rule["reg_exp"])));
+ $inverse = isset($rule["inverse"]) ? "true" : "false";
+
+ $filter_type = (int) $this->dbh->escape_string(trim($rule["filter_type"]));
+ $feed_id = $this->dbh->escape_string(trim($rule["feed_id"]));
if (strpos($feed_id, "CAT:") === 0) {
@@ -477,19 +541,19 @@ class Pref_Filters extends Handler_Protected {
}
$query = "INSERT INTO ttrss_filters2_rules
- (filter_id, reg_exp,filter_type,feed_id,cat_id,cat_filter) VALUES
- ('$filter_id', '$reg_exp', '$filter_type', $feed_id, $cat_id, $cat_filter)";
+ (filter_id, reg_exp,filter_type,feed_id,cat_id,cat_filter,inverse) VALUES
+ ('$filter_id', '$reg_exp', '$filter_type', $feed_id, $cat_id, $cat_filter, $inverse)";
- db_query($this->link, $query);
+ $this->dbh->query($query);
}
}
foreach ($actions as $action) {
if ($action) {
- $action_id = (int) db_escape_string($action["action_id"]);
- $action_param = db_escape_string($action["action_param"]);
- $action_param_label = db_escape_string($action["action_param_label"]);
+ $action_id = (int) $this->dbh->escape_string($action["action_id"]);
+ $action_param = $this->dbh->escape_string($action["action_param"]);
+ $action_param_label = $this->dbh->escape_string($action["action_param_label"]);
if ($action_id == 7) {
$action_param = $action_param_label;
@@ -503,7 +567,7 @@ class Pref_Filters extends Handler_Protected {
(filter_id, action_id, action_param) VALUES
('$filter_id', '$action_id', '$action_param')";
- db_query($this->link, $query);
+ $this->dbh->query($query);
}
}
}
@@ -520,34 +584,35 @@ class Pref_Filters extends Handler_Protected {
$enabled = checkbox_to_sql_bool($_REQUEST["enabled"]);
$match_any_rule = checkbox_to_sql_bool($_REQUEST["match_any_rule"]);
+ $title = $this->dbh->escape_string($_REQUEST["title"]);
- db_query($this->link, "BEGIN");
+ $this->dbh->query("BEGIN");
/* create base filter */
- $result = db_query($this->link, "INSERT INTO ttrss_filters2
- (owner_uid, match_any_rule, enabled) VALUES
- (".$_SESSION["uid"].",$match_any_rule,$enabled)");
+ $result = $this->dbh->query("INSERT INTO ttrss_filters2
+ (owner_uid, match_any_rule, enabled, title) VALUES
+ (".$_SESSION["uid"].",$match_any_rule,$enabled, '$title')");
- $result = db_query($this->link, "SELECT MAX(id) AS id FROM ttrss_filters2
+ $result = $this->dbh->query("SELECT MAX(id) AS id FROM ttrss_filters2
WHERE owner_uid = ".$_SESSION["uid"]);
- $filter_id = db_fetch_result($result, 0, "id");
+ $filter_id = $this->dbh->fetch_result($result, 0, "id");
$this->saveRulesAndActions($filter_id);
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
}
function index() {
- $sort = db_escape_string($_REQUEST["sort"]);
+ $sort = $this->dbh->escape_string($_REQUEST["sort"]);
if (!$sort || $sort == "undefined") {
$sort = "reg_exp";
}
- $filter_search = db_escape_string($_REQUEST["search"]);
+ $filter_search = $this->dbh->escape_string($_REQUEST["search"]);
if (array_key_exists("search", $_REQUEST)) {
$_SESSION["prefs_filter_search"] = $filter_search;
@@ -559,7 +624,7 @@ class Pref_Filters extends Handler_Protected {
print "<div id=\"pref-filter-header\" dojoType=\"dijit.layout.ContentPane\" region=\"top\">";
print "<div id=\"pref-filter-toolbar\" dojoType=\"dijit.Toolbar\">";
- $filter_search = db_escape_string($_REQUEST["search"]);
+ $filter_search = $this->dbh->escape_string($_REQUEST["search"]);
if (array_key_exists("search", $_REQUEST)) {
$_SESSION["prefs_filter_search"] = $filter_search;
@@ -592,6 +657,10 @@ class Pref_Filters extends Handler_Protected {
print "<button dojoType=\"dijit.form.Button\" onclick=\"return editSelectedFilter()\">".
__('Edit')."</button> ";
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"return resetFilterOrder()\">".
+ __('Reset sort order')."</button> ";
+
+
print "<button dojoType=\"dijit.form.Button\" onclick=\"return removeSelectedFilters()\">".
__('Remove')."</button> ";
@@ -608,14 +677,16 @@ class Pref_Filters extends Handler_Protected {
<img src='images/indicator_tiny.gif'>".
__("Loading, please wait...")."</div>";
- print "<div dojoType=\"dojo.data.ItemFileWriteStore\" jsId=\"filterStore\"
+ print "<div dojoType=\"fox.PrefFilterStore\" jsId=\"filterStore\"
url=\"backend.php?op=pref-filters&method=getfiltertree\">
</div>
<div dojoType=\"lib.CheckBoxStoreModel\" jsId=\"filterModel\" store=\"filterStore\"
- query=\"{id:'root'}\" rootId=\"root\" rootLabel=\"Feeds\"
+ query=\"{id:'root'}\" rootId=\"root\" rootLabel=\"Filters\"
childrenAttrs=\"items\" checkboxStrict=\"false\" checkboxAll=\"false\">
</div>
<div dojoType=\"fox.PrefFilterTree\" id=\"filterTree\"
+ dndController=\"dijit.tree.dndSource\"
+ betweenThreshold=\"5\"
model=\"filterModel\" openOnClick=\"true\">
<script type=\"dojo/method\" event=\"onLoad\" args=\"item\">
Element.hide(\"filterlistLoading\");
@@ -633,8 +704,7 @@ class Pref_Filters extends Handler_Protected {
print "</div>"; #pane
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefFilters");
print "</div>"; #container
@@ -649,6 +719,10 @@ class Pref_Filters extends Handler_Protected {
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"add\">";
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"csrf_token\" value=\"".$_SESSION['csrf_token']."\">";
+ print "<div class=\"dlgSec\">".__("Caption")."</div>";
+
+ print "<input required=\"true\" dojoType=\"dijit.form.ValidationTextBox\" style=\"width : 20em;\" name=\"title\" value=\"\">";
+
print "<div class=\"dlgSec\">".__("Match")."</div>";
print "<div dojoType=\"dijit.Toolbar\">";
@@ -710,10 +784,8 @@ class Pref_Filters extends Handler_Protected {
print "<br/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" name=\"match_any_rule\" id=\"match_any_rule\">
<label for=\"match_any_rule\">".__('Match any rule')."</label>";
- print "<p/>";
-
-/* print "<input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" name=\"inverse\" id=\"inverse\">
- <label for=\"inverse\">".__('Inverse match')."</label><hr/>"; */
+ print "<br/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" name=\"inverse\" id=\"inverse\">
+ <label for=\"inverse\">".__('Inverse matching')."</label>";
// print "</div>";
@@ -739,10 +811,12 @@ class Pref_Filters extends Handler_Protected {
$reg_exp = htmlspecialchars($rule["reg_exp"]);
$filter_type = $rule["filter_type"];
$feed_id = $rule["feed_id"];
+ $inverse_checked = isset($rule["inverse"]) ? "checked" : "";
} else {
$reg_exp = "";
$filter_type = 1;
$feed_id = 0;
+ $inverse_checked = "";
}
if (strpos($feed_id, "CAT:") === 0) {
@@ -755,12 +829,12 @@ class Pref_Filters extends Handler_Protected {
print "<form name='filter_new_rule_form' id='filter_new_rule_form'>";
- $result = db_query($this->link, "SELECT id,description
+ $result = $this->dbh->query("SELECT id,description
FROM ttrss_filter_types WHERE id != 5 ORDER BY description");
$filter_types = array();
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$filter_types[$line["id"]] = __($line["description"]);
}
@@ -773,6 +847,11 @@ class Pref_Filters extends Handler_Protected {
style=\"font-size : 16px; width : 20em;\"
name=\"reg_exp\" value=\"$reg_exp\"/>";
+ print "<hr/>";
+ print "<input id=\"filterDlg_inverse\" dojoType=\"dijit.form.CheckBox\"
+ name=\"inverse\" $inverse_checked/>";
+ print "<label for=\"filterDlg_inverse\">".__("Inverse regular expression matching")."</label>";
+
print "<hr/>" . __("on field") . " ";
print_select_hash("filter_type", $filter_type, $filter_types,
'dojoType="dijit.form.Select"');
@@ -782,7 +861,7 @@ class Pref_Filters extends Handler_Protected {
print __("in") . " ";
print "<span id='filterDlg_feeds'>";
- print_feed_select($this->link, "feed_id",
+ print_feed_select("feed_id",
$cat_filter ? "CAT:$feed_id" : $feed_id,
'dojoType="dijit.form.FilteringSelect"');
print "</span>";
@@ -806,7 +885,7 @@ class Pref_Filters extends Handler_Protected {
$action = json_decode($_REQUEST["action"], true);
if ($action) {
- $action_param = db_escape_string($action["action_param"]);
+ $action_param = $this->dbh->escape_string($action["action_param"]);
$action_id = (int)$action["action_id"];
} else {
$action_param = "";
@@ -822,10 +901,10 @@ class Pref_Filters extends Handler_Protected {
print "<select name=\"action_id\" dojoType=\"dijit.form.Select\"
onchange=\"filterDlgCheckAction(this)\">";
- $result = db_query($this->link, "SELECT id,description FROM ttrss_filter_actions
+ $result = $this->dbh->query("SELECT id,description FROM ttrss_filter_actions
ORDER BY name");
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$is_selected = ($line["id"] == $action_id) ? "selected='1'" : "";
printf("<option $is_selected value='%d'>%s</option>", $line["id"], __($line["description"]));
}
@@ -846,7 +925,7 @@ class Pref_Filters extends Handler_Protected {
id=\"filterDlg_actionParam\" style=\"$param_hidden\"
name=\"action_param\" value=\"$action_param\">";
- print_label_select($this->link, "action_param_label", $action_param,
+ print_label_select("action_param_label", $action_param,
"id=\"filterDlg_actionParamLabel\" style=\"$label_param_hidden\"
dojoType=\"dijit.form.Select\"");
@@ -870,66 +949,57 @@ class Pref_Filters extends Handler_Protected {
}
private function getFilterName($id) {
- $result = db_query($this->link,
- "SELECT * FROM ttrss_filters2_rules WHERE filter_id = '$id' ORDER BY id
- LIMIT 3");
- $titles = array();
- $count = 0;
+ $result = $this->dbh->query(
+ "SELECT title,COUNT(DISTINCT r.id) AS num_rules,COUNT(DISTINCT a.id) AS num_actions
+ FROM ttrss_filters2 AS f LEFT JOIN ttrss_filters2_rules AS r
+ ON (r.filter_id = f.id)
+ LEFT JOIN ttrss_filters2_actions AS a
+ ON (a.filter_id = f.id) WHERE f.id = '$id' GROUP BY f.title");
- while ($line = db_fetch_assoc($result)) {
+ $title = $this->dbh->fetch_result($result, 0, "title");
+ $num_rules = $this->dbh->fetch_result($result, 0, "num_rules");
+ $num_actions = $this->dbh->fetch_result($result, 0, "num_actions");
- if (sql_bool_to_bool($line["cat_filter"])) {
- unset($line["cat_filter"]);
- $line["feed_id"] = "CAT:" . (int)$line["cat_id"];
- unset($line["cat_id"]);
- }
+ if (!$title) $title = __("[No caption]");
- if ($count < 2) {
- array_push($titles, $this->getRuleName($line));
- } else {
- array_push($titles, "...");
- break;
- }
- ++$count;
- }
+ $title = sprintf(_ngettext("%s (%d rule)", "%s (%d rules)", $num_rules), $title, $num_rules);
- $result = db_query($this->link,
- "SELECT * FROM ttrss_filters2_actions WHERE filter_id = '$id' ORDER BY id LIMIT 3");
+ $result = $this->dbh->query(
+ "SELECT * FROM ttrss_filters2_actions WHERE filter_id = '$id' ORDER BY id LIMIT 1");
- $actions = array();
- $count = 0;
+ $actions = "";
- while ($line = db_fetch_assoc($result)) {
- if ($count < 2) {
- array_push($actions, $this->getActionName($line));
- } else {
- array_push($actions, "...");
- break;
- }
- ++$count;
+ if ($this->dbh->num_rows($result) > 0) {
+ $line = $this->dbh->fetch_assoc($result);
+ $actions = $this->getActionName($line);
+
+ $num_actions -= 1;
}
- return array(join(", ", $titles), join(", ", $actions));
+ if ($num_actions > 0)
+ $actions = sprintf(_ngettext("%s (+%d action)", "%s (+%d actions)", $num_actions), $actions, $num_actions);
+
+ return array($title, $actions);
}
function join() {
- $ids = explode(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
if (count($ids) > 1) {
$base_id = array_shift($ids);
$ids_str = join(",", $ids);
- db_query($this->link, "BEGIN");
- db_query($this->link, "UPDATE ttrss_filters2_rules
+ $this->dbh->query("BEGIN");
+ $this->dbh->query("UPDATE ttrss_filters2_rules
SET filter_id = '$base_id' WHERE filter_id IN ($ids_str)");
- db_query($this->link, "UPDATE ttrss_filters2_actions
+ $this->dbh->query("UPDATE ttrss_filters2_actions
SET filter_id = '$base_id' WHERE filter_id IN ($ids_str)");
- db_query($this->link, "DELETE FROM ttrss_filters2 WHERE id IN ($ids_str)");
- db_query($this->link, "UPDATE ttrss_filters2 SET match_any_rule = true WHERE id = '$base_id'");
+ $this->dbh->query("DELETE FROM ttrss_filters2 WHERE id IN ($ids_str)");
+ $this->dbh->query("UPDATE ttrss_filters2 SET match_any_rule = true WHERE id = '$base_id'");
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
$this->optimizeFilter($base_id);
@@ -937,14 +1007,14 @@ class Pref_Filters extends Handler_Protected {
}
private function optimizeFilter($id) {
- db_query($this->link, "BEGIN");
- $result = db_query($this->link, "SELECT * FROM ttrss_filters2_actions
+ $this->dbh->query("BEGIN");
+ $result = $this->dbh->query("SELECT * FROM ttrss_filters2_actions
WHERE filter_id = '$id'");
$tmp = array();
$dupe_ids = array();
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$id = $line["id"];
unset($line["id"]);
@@ -957,17 +1027,17 @@ class Pref_Filters extends Handler_Protected {
if (count($dupe_ids) > 0) {
$ids_str = join(",", $dupe_ids);
- db_query($this->link, "DELETE FROM ttrss_filters2_actions
+ $this->dbh->query("DELETE FROM ttrss_filters2_actions
WHERE id IN ($ids_str)");
}
- $result = db_query($this->link, "SELECT * FROM ttrss_filters2_rules
+ $result = $this->dbh->query("SELECT * FROM ttrss_filters2_rules
WHERE filter_id = '$id'");
$tmp = array();
$dupe_ids = array();
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$id = $line["id"];
unset($line["id"]);
@@ -980,11 +1050,11 @@ class Pref_Filters extends Handler_Protected {
if (count($dupe_ids) > 0) {
$ids_str = join(",", $dupe_ids);
- db_query($this->link, "DELETE FROM ttrss_filters2_rules
+ $this->dbh->query("DELETE FROM ttrss_filters2_rules
WHERE id IN ($ids_str)");
}
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
}
}
?>
diff --git a/classes/pref/labels.php b/classes/pref/labels.php
index e63a0cfc2..2ad152c2d 100644
--- a/classes/pref/labels.php
+++ b/classes/pref/labels.php
@@ -8,12 +8,12 @@ class Pref_Labels extends Handler_Protected {
}
function edit() {
- $label_id = db_escape_string($_REQUEST['id']);
+ $label_id = $this->dbh->escape_string($_REQUEST['id']);
- $result = db_query($this->link, "SELECT * FROM ttrss_labels2 WHERE
+ $result = $this->dbh->query("SELECT * FROM ttrss_labels2 WHERE
id = '$label_id' AND owner_uid = " . $_SESSION["uid"]);
- $line = db_fetch_assoc($result);
+ $line = $this->dbh->fetch_assoc($result);
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$label_id\">";
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-labels\">";
@@ -90,12 +90,12 @@ class Pref_Labels extends Handler_Protected {
$root['name'] = __('Labels');
$root['items'] = array();
- $result = db_query($this->link, "SELECT *
+ $result = $this->dbh->query("SELECT *
FROM ttrss_labels2
WHERE owner_uid = ".$_SESSION["uid"]."
ORDER BY caption");
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$label = array();
$label['id'] = 'LABEL:' . $line['id'];
$label['bare_id'] = $line['id'];
@@ -118,29 +118,29 @@ class Pref_Labels extends Handler_Protected {
}
function colorset() {
- $kind = db_escape_string($_REQUEST["kind"]);
- $ids = split(',', db_escape_string($_REQUEST["ids"]));
- $color = db_escape_string($_REQUEST["color"]);
- $fg = db_escape_string($_REQUEST["fg"]);
- $bg = db_escape_string($_REQUEST["bg"]);
+ $kind = $this->dbh->escape_string($_REQUEST["kind"]);
+ $ids = explode(',', $this->dbh->escape_string($_REQUEST["ids"]));
+ $color = $this->dbh->escape_string($_REQUEST["color"]);
+ $fg = $this->dbh->escape_string($_REQUEST["fg"]);
+ $bg = $this->dbh->escape_string($_REQUEST["bg"]);
foreach ($ids as $id) {
if ($kind == "fg" || $kind == "bg") {
- db_query($this->link, "UPDATE ttrss_labels2 SET
+ $this->dbh->query("UPDATE ttrss_labels2 SET
${kind}_color = '$color' WHERE id = '$id'
AND owner_uid = " . $_SESSION["uid"]);
} else {
- db_query($this->link, "UPDATE ttrss_labels2 SET
+ $this->dbh->query("UPDATE ttrss_labels2 SET
fg_color = '$fg', bg_color = '$bg' WHERE id = '$id'
AND owner_uid = " . $_SESSION["uid"]);
}
- $caption = db_escape_string(label_find_caption($this->link, $id, $_SESSION["uid"]));
+ $caption = $this->dbh->escape_string(label_find_caption($id, $_SESSION["uid"]));
/* Remove cached data */
- db_query($this->link, "UPDATE ttrss_user_entries SET label_cache = ''
+ $this->dbh->query("UPDATE ttrss_user_entries SET label_cache = ''
WHERE label_cache LIKE '%$caption%' AND owner_uid = " . $_SESSION["uid"]);
}
@@ -149,18 +149,18 @@ class Pref_Labels extends Handler_Protected {
}
function colorreset() {
- $ids = split(',', db_escape_string($_REQUEST["ids"]));
+ $ids = explode(',', $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) {
- db_query($this->link, "UPDATE ttrss_labels2 SET
+ $this->dbh->query("UPDATE ttrss_labels2 SET
fg_color = '', bg_color = '' WHERE id = '$id'
AND owner_uid = " . $_SESSION["uid"]);
- $caption = db_escape_string(label_find_caption($this->link, $id, $_SESSION["uid"]));
+ $caption = $this->dbh->escape_string(label_find_caption($id, $_SESSION["uid"]));
/* Remove cached data */
- db_query($this->link, "UPDATE ttrss_user_entries SET label_cache = ''
+ $this->dbh->query("UPDATE ttrss_user_entries SET label_cache = ''
WHERE label_cache LIKE '%$caption%' AND owner_uid = " . $_SESSION["uid"]);
}
@@ -168,31 +168,31 @@ class Pref_Labels extends Handler_Protected {
function save() {
- $id = db_escape_string($_REQUEST["id"]);
- $caption = db_escape_string(trim($_REQUEST["caption"]));
+ $id = $this->dbh->escape_string($_REQUEST["id"]);
+ $caption = $this->dbh->escape_string(trim($_REQUEST["caption"]));
- db_query($this->link, "BEGIN");
+ $this->dbh->query("BEGIN");
- $result = db_query($this->link, "SELECT caption FROM ttrss_labels2
+ $result = $this->dbh->query("SELECT caption FROM ttrss_labels2
WHERE id = '$id' AND owner_uid = ". $_SESSION["uid"]);
- if (db_num_rows($result) != 0) {
- $old_caption = db_fetch_result($result, 0, "caption");
+ if ($this->dbh->num_rows($result) != 0) {
+ $old_caption = $this->dbh->fetch_result($result, 0, "caption");
- $result = db_query($this->link, "SELECT id FROM ttrss_labels2
+ $result = $this->dbh->query("SELECT id FROM ttrss_labels2
WHERE caption = '$caption' AND owner_uid = ". $_SESSION["uid"]);
- if (db_num_rows($result) == 0) {
+ if ($this->dbh->num_rows($result) == 0) {
if ($caption) {
- $result = db_query($this->link, "UPDATE ttrss_labels2 SET
+ $result = $this->dbh->query("UPDATE ttrss_labels2 SET
caption = '$caption' WHERE id = '$id' AND
owner_uid = " . $_SESSION["uid"]);
/* Update filters that reference label being renamed */
- $old_caption = db_escape_string($old_caption);
+ $old_caption = $this->dbh->escape_string($old_caption);
- db_query($this->link, "UPDATE ttrss_filters2_actions SET
+ $this->dbh->query("UPDATE ttrss_filters2_actions SET
action_param = '$caption' WHERE action_param = '$old_caption'
AND action_id = 7
AND filter_id IN (SELECT id FROM ttrss_filters2 WHERE owner_uid = ".$_SESSION["uid"].")");
@@ -206,28 +206,28 @@ class Pref_Labels extends Handler_Protected {
}
}
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
return;
}
function remove() {
- $ids = split(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) {
- label_remove($this->link, $id, $_SESSION["uid"]);
+ label_remove($id, $_SESSION["uid"]);
}
}
function add() {
- $caption = db_escape_string($_REQUEST["caption"]);
- $output = db_escape_string($_REQUEST["output"]);
+ $caption = $this->dbh->escape_string($_REQUEST["caption"]);
+ $output = $this->dbh->escape_string($_REQUEST["output"]);
if ($caption) {
- if (label_create($this->link, $caption)) {
+ if (label_create($caption)) {
if (!$output) {
print T_sprintf("Created label <b>%s</b>", htmlspecialchars($caption));
}
@@ -238,7 +238,7 @@ class Pref_Labels extends Handler_Protected {
print "<rpc-reply><payload>";
- print_label_select($this->link, "select_label",
+ print_label_select("select_label",
$caption, "");
print "</payload></rpc-reply>";
@@ -250,13 +250,13 @@ class Pref_Labels extends Handler_Protected {
function index() {
- $sort = db_escape_string($_REQUEST["sort"]);
+ $sort = $this->dbh->escape_string($_REQUEST["sort"]);
if (!$sort || $sort == "undefined") {
$sort = "caption";
}
- $label_search = db_escape_string($_REQUEST["search"]);
+ $label_search = $this->dbh->escape_string($_REQUEST["search"]);
if (array_key_exists("search", $_REQUEST)) {
$_SESSION["prefs_label_search"] = $label_search;
@@ -319,8 +319,7 @@ class Pref_Labels extends Handler_Protected {
print "</div>"; #pane
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefLabels");
print "</div>"; #container
diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php
index 810b1e164..425d4b0ac 100644
--- a/classes/pref/prefs.php
+++ b/classes/pref/prefs.php
@@ -1,12 +1,64 @@
<?php
+
class Pref_Prefs extends Handler_Protected {
+ private $pref_help = array();
+ private $pref_sections = array();
+
function csrf_ignore($method) {
- $csrf_ignored = array("index", "updateself");
+ $csrf_ignored = array("index", "updateself", "customizecss", "editprefprofiles");
return array_search($method, $csrf_ignored) !== false;
}
+ function __construct($args) {
+ parent::__construct($args);
+
+ $this->pref_sections = array(
+ 1 => __('General'),
+ 2 => __('Interface'),
+ 3 => __('Advanced'),
+ 4 => __('Digest')
+ );
+
+ $this->pref_help = array(
+ "ALLOW_DUPLICATE_POSTS" => array(__("Allow duplicate articles"), ""),
+ "AUTO_ASSIGN_LABELS" => array(__("Assign articles to labels automatically"), ""),
+ "BLACKLISTED_TAGS" => array(__("Blacklisted tags"), __("When auto-detecting tags in articles these tags will not be applied (comma-separated list).")),
+ "CDM_AUTO_CATCHUP" => array(__("Automatically mark articles as read"), __("This option enables marking articles as read automatically while you scroll article list.")),
+ "CDM_EXPANDED" => array(__("Automatically expand articles in combined mode"), ""),
+ "COMBINED_DISPLAY_MODE" => array(__("Combined feed display"), __("Display expanded list of feed articles, instead of separate displays for headlines and article content")),
+ "CONFIRM_FEED_CATCHUP" => array(__("Confirm marking feed as read"), ""),
+ "DEFAULT_ARTICLE_LIMIT" => array(__("Amount of articles to display at once"), ""),
+ "DEFAULT_UPDATE_INTERVAL" => array(__("Default feed update interval"), __("Shortest interval at which a feed will be checked for updates regardless of update method")),
+ "DIGEST_CATCHUP" => array(__("Mark articles in e-mail digest as read"), ""),
+ "DIGEST_ENABLE" => array(__("Enable e-mail digest"), __("This option enables sending daily digest of new (and unread) headlines on your configured e-mail address")),
+ "DIGEST_PREFERRED_TIME" => array(__("Try to send digests around specified time"), __("Uses UTC timezone")),
+ "ENABLE_API_ACCESS" => array(__("Enable API access"), __("Allows external clients to access this account through the API")),
+ "ENABLE_FEED_CATS" => array(__("Enable feed categories"), ""),
+ "FEEDS_SORT_BY_UNREAD" => array(__("Sort feeds by unread articles count"), ""),
+ "FRESH_ARTICLE_MAX_AGE" => array(__("Maximum age of fresh articles (in hours)"), ""),
+ "HIDE_READ_FEEDS" => array(__("Hide feeds with no unread articles"), ""),
+ "HIDE_READ_SHOWS_SPECIAL" => array(__("Show special feeds when hiding read feeds"), ""),
+ "LONG_DATE_FORMAT" => array(__("Long date format"), ""),
+ "ON_CATCHUP_SHOW_NEXT_FEED" => array(__("On catchup show next feed"), __("Automatically open next feed with unread articles after marking one as read")),
+ "PURGE_OLD_DAYS" => array(__("Purge articles after this number of days (0 - disables)"), ""),
+ "PURGE_UNREAD_ARTICLES" => array(__("Purge unread articles"), ""),
+ "REVERSE_HEADLINES" => array(__("Reverse headline order (oldest first)"), ""),
+ "SHORT_DATE_FORMAT" => array(__("Short date format"), ""),
+ "SHOW_CONTENT_PREVIEW" => array(__("Show content preview in headlines list"), ""),
+ "SORT_HEADLINES_BY_FEED_DATE" => array(__("Sort headlines by feed date"), __("Use feed-specified date to sort headlines instead of local import date.")),
+ "SSL_CERT_SERIAL" => array(__("Login with an SSL certificate"), __("Click to register your SSL client certificate with tt-rss")),
+ "STRIP_IMAGES" => array(__("Do not embed images in articles"), ""),
+ "STRIP_UNSAFE_TAGS" => array(__("Strip unsafe tags from articles"), __("Strip all but most common HTML tags when reading articles.")),
+ "USER_STYLESHEET" => array(__("Customize stylesheet"), __("Customize CSS stylesheet to your liking")),
+ "USER_TIMEZONE" => array(__("Time zone"), ""),
+ "VFEED_GROUP_BY_FEED" => array(__("Group headlines in virtual feeds"), __("Special feeds, labels, and categories are grouped by originating feeds")),
+ "USER_LANGUAGE" => array(__("Language")),
+ "USER_CSS_THEME" => array(__("Theme"), __("Select one of the available CSS themes"))
+ );
+ }
+
function changepassword() {
$old_pw = $_POST["old_password"];
@@ -28,8 +80,7 @@ class Pref_Prefs extends Handler_Protected {
return;
}
- global $pluginhost;
- $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]);
+ $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
if (method_exists($authenticator, "change_password")) {
print $authenticator->change_password($_SESSION["uid"], $old_pw, $new_pw);
@@ -39,39 +90,53 @@ class Pref_Prefs extends Handler_Protected {
}
function saveconfig() {
+ $boolean_prefs = explode(",", $_POST["boolean_prefs"]);
- $_SESSION["prefs_cache"] = false;
+ foreach ($boolean_prefs as $pref) {
+ if (!isset($_POST[$pref])) $_POST[$pref] = 'false';
+ }
+
+ $need_reload = false;
foreach (array_keys($_POST) as $pref_name) {
- $pref_name = db_escape_string($pref_name);
- $value = db_escape_string($_POST[$pref_name]);
+ $pref_name = $this->dbh->escape_string($pref_name);
+ $value = $this->dbh->escape_string($_POST[$pref_name]);
if ($pref_name == 'DIGEST_PREFERRED_TIME') {
- if (get_pref($this->link, 'DIGEST_PREFERRED_TIME') != $value) {
+ if (get_pref('DIGEST_PREFERRED_TIME') != $value) {
- db_query($this->link, "UPDATE ttrss_users SET
+ $this->dbh->query("UPDATE ttrss_users SET
last_digest_sent = NULL WHERE id = " . $_SESSION['uid']);
}
}
- set_pref($this->link, $pref_name, $value);
+ if ($pref_name == "USER_LANGUAGE") {
+ if ($_SESSION["language"] != $value) {
+ $need_reload = true;
+ }
+ }
+ set_pref($pref_name, $value);
}
- print __("The configuration was saved.");
+ if ($need_reload) {
+ print "PREFS_NEED_RELOAD";
+ } else {
+ print __("The configuration was saved.");
+ }
}
function getHelp() {
- $pref_name = db_escape_string($_REQUEST["pn"]);
+ $pref_name = $this->dbh->escape_string($_REQUEST["pn"]);
- $result = db_query($this->link, "SELECT help_text FROM ttrss_prefs
+ $result = $this->dbh->query("SELECT help_text FROM ttrss_prefs
WHERE pref_name = '$pref_name'");
- if (db_num_rows($result) > 0) {
- $help_text = db_fetch_result($result, 0, "help_text");
+ if ($this->dbh->num_rows($result) > 0) {
+ $help_text = $this->dbh->fetch_result($result, 0, "help_text");
print $help_text;
} else {
printf(__("Unknown option: %s"), $pref_name);
@@ -80,12 +145,12 @@ class Pref_Prefs extends Handler_Protected {
function changeemail() {
- $email = db_escape_string($_POST["email"]);
- $full_name = db_escape_string($_POST["full_name"]);
+ $email = $this->dbh->escape_string($_POST["email"]);
+ $full_name = $this->dbh->escape_string($_POST["full_name"]);
$active_uid = $_SESSION["uid"];
- db_query($this->link, "UPDATE ttrss_users SET email = '$email',
+ $this->dbh->query("UPDATE ttrss_users SET email = '$email',
full_name = '$full_name' WHERE id = '$active_uid'");
print __("Your personal data has been saved.");
@@ -103,20 +168,22 @@ class Pref_Prefs extends Handler_Protected {
$profile_qpart = "profile IS NULL";
}
- db_query($this->link, "DELETE FROM ttrss_user_prefs
+ $this->dbh->query("DELETE FROM ttrss_user_prefs
WHERE $profile_qpart AND owner_uid = ".$_SESSION["uid"]);
- initialize_user_prefs($this->link, $_SESSION["uid"], $_SESSION["profile"]);
+ initialize_user_prefs($_SESSION["uid"], $_SESSION["profile"]);
- print "PREFS_THEME_CHANGED";
+ echo __("Your preferences are now set to default values.");
}
function index() {
global $access_level_names;
- $prefs_blacklist = array("HIDE_READ_FEEDS", "FEEDS_SORT_BY_UNREAD",
- "STRIP_UNSAFE_TAGS");
+ $prefs_blacklist = array("STRIP_UNSAFE_TAGS", "REVERSE_HEADLINES",
+ "SORT_HEADLINES_BY_FEED_DATE", "DEFAULT_ARTICLE_LIMIT");
+
+ /* "FEEDS_SORT_BY_UNREAD", "HIDE_READ_FEEDS", "REVERSE_HEADLINES" */
$profile_blacklist = array("ALLOW_DUPLICATE_POSTS", "PURGE_OLD_DAYS",
"PURGE_UNREAD_ARTICLES", "DIGEST_ENABLE", "DIGEST_CATCHUP",
@@ -150,13 +217,13 @@ class Pref_Prefs extends Handler_Protected {
print "<h2>" . __("Personal data") . "</h2>";
- $result = db_query($this->link, "SELECT email,full_name,otp_enabled,
+ $result = $this->dbh->query("SELECT email,full_name,otp_enabled,
access_level FROM ttrss_users
WHERE id = ".$_SESSION["uid"]);
- $email = htmlspecialchars(db_fetch_result($result, 0, "email"));
- $full_name = htmlspecialchars(db_fetch_result($result, 0, "full_name"));
- $otp_enabled = sql_bool_to_bool(db_fetch_result($result, 0, "otp_enabled"));
+ $email = htmlspecialchars($this->dbh->fetch_result($result, 0, "email"));
+ $full_name = htmlspecialchars($this->dbh->fetch_result($result, 0, "full_name"));
+ $otp_enabled = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "otp_enabled"));
print "<tr><td width=\"40%\">".__('Full name')."</td>";
print "<td class=\"prefValue\"><input dojoType=\"dijit.form.ValidationTextBox\" name=\"full_name\" required=\"1\"
@@ -167,7 +234,7 @@ class Pref_Prefs extends Handler_Protected {
if (!SINGLE_USER_MODE && !$_SESSION["hide_hello"]) {
- $access_level = db_fetch_result($result, 0, "access_level");
+ $access_level = $this->dbh->fetch_result($result, 0, "access_level");
print "<tr><td width=\"40%\">".__('Access level')."</td>";
print "<td>" . $access_level_names[$access_level] . "</td></tr>";
}
@@ -183,10 +250,7 @@ class Pref_Prefs extends Handler_Protected {
print "</form>";
if ($_SESSION["auth_module"]) {
- global $pluginhost;
-
- $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]);
-
+ $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
} else {
$authenticator = false;
}
@@ -195,11 +259,11 @@ class Pref_Prefs extends Handler_Protected {
print "<h2>" . __("Password") . "</h2>";
- $result = db_query($this->link, "SELECT id FROM ttrss_users
+ $result = $this->dbh->query("SELECT id FROM ttrss_users
WHERE id = ".$_SESSION["uid"]." AND pwd_hash
= 'SHA1:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8'");
- if (db_num_rows($result) != 0) {
+ if ($this->dbh->num_rows($result) != 0) {
print format_warning(__("Your password is at default value, please change it."), "default_pass_warning");
}
@@ -227,7 +291,7 @@ class Pref_Prefs extends Handler_Protected {
</script>";
if ($otp_enabled) {
- print_notice("Changing your current password will disable OTP.");
+ print_notice(__("Changing your current password will disable OTP."));
}
print "<table width=\"100%\" class=\"prefPrefsList\">";
@@ -260,7 +324,7 @@ class Pref_Prefs extends Handler_Protected {
if ($otp_enabled) {
- print_notice("One time passwords are currently enabled. Enter your current password below to disable.");
+ print_notice(__("One time passwords are currently enabled. Enter your current password below to disable."));
print "<form dojoType=\"dijit.form.Form\">";
@@ -300,9 +364,9 @@ class Pref_Prefs extends Handler_Protected {
print "</form>";
- } else {
+ } else if (function_exists("imagecreatefromstring")) {
- print "<p>".__("You will need a compatible Authenticator to use this. Changing your password would automatically disable OTP.") . "</p>";
+ print_warning(__("You will need a compatible Authenticator to use this. Changing your password would automatically disable OTP."));
print "<p>".__("Scan the following code by the Authenticator application:")."</p>";
@@ -324,8 +388,8 @@ class Pref_Prefs extends Handler_Protected {
parameters: dojo.objectToQuery(this.getValues()),
onComplete: function(transport) {
notify('');
- if (transport.responseText.indexOf('ERROR: ') == 0) {
- notify_error(transport.responseText.replace('ERROR: ', ''));
+ if (transport.responseText.indexOf('ERROR:') == 0) {
+ notify_error(transport.responseText.replace('ERROR:', ''));
} else {
window.location.reload();
}
@@ -341,11 +405,13 @@ class Pref_Prefs extends Handler_Protected {
print "<td class=\"prefValue\"><input dojoType=\"dijit.form.ValidationTextBox\" type=\"password\" required=\"1\"
name=\"password\"></td></tr>";
- print "<tr><td colspan=\"2\">";
+ print "<tr><td width=\"40%\">".__("Enter the generated one time password")."</td>";
- print "<input dojoType=\"dijit.form.CheckBox\" required=\"1\"
- type=\"checkbox\" id=\"enable_otp\" name=\"enable_otp\"/> ";
- print "<label for=\"enable_otp\">".__("I have scanned the code and would like to enable OTP")."</label>";
+ print "<td class=\"prefValue\"><input dojoType=\"dijit.form.ValidationTextBox\" autocomplete=\"off\"
+ required=\"1\"
+ name=\"otp\"></td></tr>";
+
+ print "<tr><td colspan=\"2\">";
print "</td></tr><tr><td colspan=\"2\">";
@@ -357,13 +423,16 @@ class Pref_Prefs extends Handler_Protected {
print "</form>";
+ } else {
+
+ print_notice(__("PHP GD functions are required for OTP support."));
+
}
}
}
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION,
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION,
"hook_prefs_tab_section", "prefPrefsAuth");
print "</div>"; #pane
@@ -372,8 +441,8 @@ class Pref_Prefs extends Handler_Protected {
print "<form dojoType=\"dijit.form.Form\" id=\"changeSettingsForm\">";
- print "<script type=\"dojo/method\" event=\"onSubmit\" args=\"evt\">
- evt.preventDefault();
+ print "<script type=\"dojo/method\" event=\"onSubmit\" args=\"evt, quit\">
+ if (evt) evt.preventDefault();
if (this.validate()) {
console.log(dojo.objectToQuery(this.getValues()));
@@ -381,10 +450,14 @@ class Pref_Prefs extends Handler_Protected {
parameters: dojo.objectToQuery(this.getValues()),
onComplete: function(transport) {
var msg = transport.responseText;
- if (msg.match('PREFS_THEME_CHANGED')) {
- window.location.reload();
+ if (quit) {
+ gotoMain();
} else {
- notify_info(msg);
+ if (msg == 'PREFS_NEED_RELOAD') {
+ window.location.reload();
+ } else {
+ notify_info(msg);
+ }
}
} });
}
@@ -395,52 +468,65 @@ class Pref_Prefs extends Handler_Protected {
print '<div dojoType="dijit.layout.ContentPane" region="center" style="overflow-y : auto">';
if ($_SESSION["profile"]) {
- print_notice("Some preferences are only available in default profile.");
+ print_notice(__("Some preferences are only available in default profile."));
}
if ($_SESSION["profile"]) {
- initialize_user_prefs($this->link, $_SESSION["uid"], $_SESSION["profile"]);
+ initialize_user_prefs($_SESSION["uid"], $_SESSION["profile"]);
$profile_qpart = "profile = '" . $_SESSION["profile"] . "'";
} else {
- initialize_user_prefs($this->link, $_SESSION["uid"]);
+ initialize_user_prefs($_SESSION["uid"]);
$profile_qpart = "profile IS NULL";
}
- if ($_SESSION["prefs_show_advanced"])
+ /* if ($_SESSION["prefs_show_advanced"])
$access_query = "true";
else
- $access_query = "(access_level = 0 AND section_id != 3)";
+ $access_query = "(access_level = 0 AND section_id != 3)"; */
+
+ $access_query = 'true';
- $result = db_query($this->link, "SELECT DISTINCT
- ttrss_user_prefs.pref_name,short_desc,help_text,value,type_name,
+ $result = $this->dbh->query("SELECT DISTINCT
+ ttrss_user_prefs.pref_name,value,type_name,
ttrss_prefs_sections.order_id,
- section_name,def_value,section_id
+ def_value,section_id
FROM ttrss_prefs,ttrss_prefs_types,ttrss_prefs_sections,ttrss_user_prefs
WHERE type_id = ttrss_prefs_types.id AND
$profile_qpart AND
section_id = ttrss_prefs_sections.id AND
ttrss_user_prefs.pref_name = ttrss_prefs.pref_name AND
$access_query AND
- short_desc != '' AND
owner_uid = ".$_SESSION["uid"]."
- ORDER BY ttrss_prefs_sections.order_id,short_desc");
+ ORDER BY ttrss_prefs_sections.order_id,pref_name");
$lnum = 0;
$active_section = "";
- while ($line = db_fetch_assoc($result)) {
+ $listed_boolean_prefs = array();
+
+ while ($line = $this->dbh->fetch_assoc($result)) {
if (in_array($line["pref_name"], $prefs_blacklist)) {
continue;
}
+ $type_name = $line["type_name"];
+ $pref_name = $line["pref_name"];
+ $section_name = $this->getSectionName($line["section_id"]);
+ $value = $line["value"];
+
+ $short_desc = $this->getShortDesc($pref_name);
+ $help_text = $this->getHelpText($pref_name);
+
+ if (!$short_desc) continue;
+
if ($_SESSION["profile"] && in_array($line["pref_name"],
$profile_blacklist)) {
continue;
}
- if ($active_section != $line["section_name"]) {
+ if ($active_section != $line["section_id"]) {
if ($active_section != "") {
print "</table>";
@@ -448,22 +534,19 @@ class Pref_Prefs extends Handler_Protected {
print "<table width=\"100%\" class=\"prefPrefsList\">";
- $active_section = $line["section_name"];
+ $active_section = $line["section_id"];
- print "<tr><td colspan=\"3\"><h3>".__($active_section)."</h3></td></tr>";
+ print "<tr><td colspan=\"3\"><h3>".$section_name."</h3></td></tr>";
$lnum = 0;
}
print "<tr>";
- $type_name = $line["type_name"];
- $pref_name = $line["pref_name"];
- $value = $line["value"];
- $def_value = $line["def_value"];
- $help_text = $line["help_text"];
-
- print "<td width=\"40%\" class=\"prefName\" id=\"$pref_name\">" . __($line["short_desc"]);
+ print "<td width=\"40%\" class=\"prefName\" id=\"$pref_name\">";
+ print "<label for='CB_$pref_name'>";
+ print $short_desc;
+ print "</label>";
if ($help_text) print "<div class=\"prefHelp\">".__($help_text)."</div>";
@@ -471,7 +554,11 @@ class Pref_Prefs extends Handler_Protected {
print "<td class=\"prefValue\">";
- if ($pref_name == "USER_TIMEZONE") {
+ if ($pref_name == "USER_LANGUAGE") {
+ print_select_hash($pref_name, $value, get_translations(),
+ "style='width : 220px; margin : 0px' dojoType='dijit.form.Select'");
+
+ } else if ($pref_name == "USER_TIMEZONE") {
$timezones = explode("\n", file_get_contents("lib/timezones.txt"));
@@ -481,13 +568,14 @@ class Pref_Prefs extends Handler_Protected {
print "<button dojoType=\"dijit.form.Button\"
onclick=\"customizeCSS()\">" . __('Customize') . "</button>";
- } else if ($pref_name == "DEFAULT_ARTICLE_LIMIT") {
+ } else if ($pref_name == "USER_CSS_THEME") {
- $limits = array(15, 30, 45, 60);
+ $themes = array_map("basename", glob("themes/*.css"));
- print_select($pref_name, $value, $limits,
+ print_select($pref_name, $value, $themes,
'dojoType="dijit.form.Select"');
+
} else if ($pref_name == "DEFAULT_UPDATE_INTERVAL") {
global $update_intervals_nodefault;
@@ -497,23 +585,21 @@ class Pref_Prefs extends Handler_Protected {
} else if ($type_name == "bool") {
- if ($value == "true") {
- $value = __("Yes");
- } else {
- $value = __("No");
- }
+ array_push($listed_boolean_prefs, $pref_name);
+
+ $checked = ($value == "true") ? "checked=\"checked\"" : "";
if ($pref_name == "PURGE_UNREAD_ARTICLES" && FORCE_ARTICLE_PURGE != 0) {
$disabled = "disabled=\"1\"";
- $value = __("Yes");
+ $checked = "checked=\"checked\"";
} else {
$disabled = "";
}
- print_radio($pref_name, $value, __("Yes"), array(__("Yes"), __("No")),
- $disabled);
+ print "<input type='checkbox' name='$pref_name' $checked $disabled
+ dojoType='dijit.form.CheckBox' id='CB_$pref_name' value='1'>";
- } else if (array_search($pref_name, array('FRESH_ARTICLE_MAX_AGE', 'DEFAULT_ARTICLE_LIMIT',
+ } else if (array_search($pref_name, array('FRESH_ARTICLE_MAX_AGE',
'PURGE_OLD_DAYS', 'LONG_DATE_FORMAT', 'SHORT_DATE_FORMAT')) !== false) {
$regexp = ($type_name == 'integer') ? 'regexp="^\d*$"' : '';
@@ -568,8 +654,11 @@ class Pref_Prefs extends Handler_Protected {
print "</table>";
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION,
+ $listed_boolean_prefs = htmlspecialchars(join(",", $listed_boolean_prefs));
+
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"boolean_prefs\" value=\"$listed_boolean_prefs\">";
+
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION,
"hook_prefs_tab_section", "prefPrefsPrefsInside");
print '</div>'; # inside pane
@@ -578,8 +667,14 @@ class Pref_Prefs extends Handler_Protected {
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-prefs\">";
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"saveconfig\">";
- print "<button dojoType=\"dijit.form.Button\" type=\"submit\">".
- __('Save configuration')."</button> ";
+ print "<div dojoType=\"dijit.form.ComboButton\" type=\"submit\">
+ <span>".__('Save configuration')."</span>
+ <div dojoType=\"dijit.DropDownMenu\">
+ <div dojoType=\"dijit.MenuItem\"
+ onclick=\"dijit.byId('changeSettingsForm').onSubmit(null, true)\">".
+ __("Save and exit preferences")."</div>
+ </div>
+ </div>";
print "<button dojoType=\"dijit.form.Button\" onclick=\"return editProfiles()\">".
__('Manage profiles')."</button> ";
@@ -589,7 +684,7 @@ class Pref_Prefs extends Handler_Protected {
print "&nbsp;";
- $checked = $_SESSION["prefs_show_advanced"] ? "checked='1'" : "";
+ /* $checked = $_SESSION["prefs_show_advanced"] ? "checked='1'" : "";
print "<input onclick='toggleAdvancedPrefs()'
id='prefs_show_advanced'
@@ -597,10 +692,9 @@ class Pref_Prefs extends Handler_Protected {
$checked
type=\"checkbox\"></input>
<label for='prefs_show_advanced'>" .
- __("Show additional preferences") . "</label>";
+ __("Show additional preferences") . "</label>"; */
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION,
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION,
"hook_prefs_tab_section", "prefPrefsPrefsOutside");
print "</form>";
@@ -611,9 +705,9 @@ class Pref_Prefs extends Handler_Protected {
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Plugins')."\">";
- print "<h2>".__("Plugins")."</h2>";
+ print "<p>" . __("You will need to reload Tiny Tiny RSS for plugin changes to take effect.") . "</p>";
- print_notice("You will need to reload Tiny Tiny RSS for plugin changes to take effect.");
+ print_notice(__("Download more plugins at tt-rss.org <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/forum/viewforum.php?f=22\">forums</a> or <a target=\"_blank\" class=\"visibleLink\" href=\"http://tt-rss.org/wiki/Plugins\">wiki</a>."));
print "<form dojoType=\"dijit.form.Form\" id=\"changePluginsForm\">";
@@ -649,9 +743,9 @@ class Pref_Prefs extends Handler_Protected {
<td width='10%'>".__('Author')."</td></tr>";
$system_enabled = array_map("trim", explode(",", PLUGINS));
- $user_enabled = array_map("trim", explode(",", get_pref($this->link, "_ENABLED_PLUGINS")));
+ $user_enabled = array_map("trim", explode(",", get_pref("_ENABLED_PLUGINS")));
- $tmppluginhost = new PluginHost($this->link);
+ $tmppluginhost = new PluginHost();
$tmppluginhost->load_all($tmppluginhost::KIND_ALL, $_SESSION["uid"]);
$tmppluginhost->load_data(true);
@@ -672,7 +766,12 @@ class Pref_Prefs extends Handler_Protected {
type=\"checkbox\"></td>";
print "<td>$name</td>";
- print "<td>" . htmlspecialchars($about[1]) . "</td>";
+ print "<td>" . htmlspecialchars($about[1]);
+ if (@$about[4]) {
+ print " &mdash; <a target=\"_blank\" class=\"visibleLink\"
+ href=\"".htmlspecialchars($about[4])."\">".__("more info")."</a>";
+ }
+ print "</td>";
print "<td>" . htmlspecialchars(sprintf("%.2f", $about[0])) . "</td>";
print "<td>" . htmlspecialchars($about[2]) . "</td>";
@@ -724,7 +823,13 @@ class Pref_Prefs extends Handler_Protected {
type=\"checkbox\"></td>";
print "<td><label for='FPCHK-$name'>$name</label></td>";
- print "<td><label for='FPCHK-$name'>" . htmlspecialchars($about[1]) . "</label></td>";
+ print "<td><label for='FPCHK-$name'>" . htmlspecialchars($about[1]) . "</label>";
+ if (@$about[4]) {
+ print " &mdash; <a target=\"_blank\" class=\"visibleLink\"
+ href=\"".htmlspecialchars($about[4])."\">".__("more info")."</a>";
+ }
+ print "</td>";
+
print "<td>" . htmlspecialchars(sprintf("%.2f", $about[0])) . "</td>";
print "<td>" . htmlspecialchars($about[2]) . "</td>";
@@ -751,8 +856,7 @@ class Pref_Prefs extends Handler_Protected {
print "</div>"; #pane
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefPrefs");
print "</div>"; #container
@@ -768,52 +872,67 @@ class Pref_Prefs extends Handler_Protected {
require_once "lib/otphp/lib/totp.php";
require_once "lib/phpqrcode/phpqrcode.php";
- $result = db_query($this->link, "SELECT login,salt,otp_enabled
+ $result = $this->dbh->query("SELECT login,salt,otp_enabled
FROM ttrss_users
WHERE id = ".$_SESSION["uid"]);
$base32 = new Base32();
- $login = db_fetch_result($result, 0, "login");
- $otp_enabled = sql_bool_to_bool(db_fetch_result($result, 0, "otp_enabled"));
+ $login = $this->dbh->fetch_result($result, 0, "login");
+ $otp_enabled = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "otp_enabled"));
if (!$otp_enabled) {
- $secret = $base32->encode(sha1(db_fetch_result($result, 0, "salt")));
+ $secret = $base32->encode(sha1($this->dbh->fetch_result($result, 0, "salt")));
$topt = new \OTPHP\TOTP($secret);
print QRcode::png($topt->provisioning_uri($login));
}
}
function otpenable() {
- $password = db_escape_string($_REQUEST["password"]);
- $enable_otp = $_REQUEST["enable_otp"] == "on";
+ require_once "lib/otphp/vendor/base32.php";
+ require_once "lib/otphp/lib/otp.php";
+ require_once "lib/otphp/lib/totp.php";
+
+ $password = $_REQUEST["password"];
+ $otp = $_REQUEST["otp"];
- global $pluginhost;
- $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]);
+ $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
if ($authenticator->check_password($_SESSION["uid"], $password)) {
- if ($enable_otp) {
- db_query($this->link, "UPDATE ttrss_users SET otp_enabled = true WHERE
+ $result = $this->dbh->query("SELECT salt
+ FROM ttrss_users
+ WHERE id = ".$_SESSION["uid"]);
+
+ $base32 = new Base32();
+
+ $secret = $base32->encode(sha1($this->dbh->fetch_result($result, 0, "salt")));
+ $topt = new \OTPHP\TOTP($secret);
+
+ $otp_check = $topt->now();
+
+ if ($otp == $otp_check) {
+ $this->dbh->query("UPDATE ttrss_users SET otp_enabled = true WHERE
id = " . $_SESSION["uid"]);
print "OK";
+ } else {
+ print "ERROR:".__("Incorrect one time password");
}
} else {
- print "ERROR: ".__("Incorrect password");
+ print "ERROR:".__("Incorrect password");
}
}
function otpdisable() {
- $password = db_escape_string($_REQUEST["password"]);
+ $password = $this->dbh->escape_string($_REQUEST["password"]);
- global $pluginhost;
- $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]);
+ $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
if ($authenticator->check_password($_SESSION["uid"], $password)) {
- db_query($this->link, "UPDATE ttrss_users SET otp_enabled = false WHERE
+ $this->dbh->query("UPDATE ttrss_users SET otp_enabled = false WHERE
id = " . $_SESSION["uid"]);
print "OK";
@@ -829,14 +948,176 @@ class Pref_Prefs extends Handler_Protected {
else
$plugins = "";
- set_pref($this->link, "_ENABLED_PLUGINS", $plugins);
+ set_pref("_ENABLED_PLUGINS", $plugins);
}
function clearplugindata() {
- $name = db_escape_string($_REQUEST["name"]);
+ $name = $this->dbh->escape_string($_REQUEST["name"]);
+
+ PluginHost::getInstance()->clear_data(PluginHost::getInstance()->get_plugin($name));
+ }
+
+ function customizeCSS() {
+ $value = get_pref("USER_STYLESHEET");
+
+ $value = str_replace("<br/>", "\n", $value);
+
+ print_notice(T_sprintf("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">This file</a> can be used as a baseline.", "tt-rss.css"));
+
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"setpref\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"key\" value=\"USER_STYLESHEET\">";
+
+ print "<table width='100%'><tr><td>";
+ print "<textarea dojoType=\"dijit.form.SimpleTextarea\"
+ style='font-size : 12px; width : 100%; height: 200px;'
+ placeHolder='body#ttrssMain { font-size : 14px; };'
+ name='value'>$value</textarea>";
+ print "</td></tr></table>";
+
+ print "<div class='dlgButtons'>";
+ print "<button dojoType=\"dijit.form.Button\"
+ onclick=\"dijit.byId('cssEditDlg').execute()\">".__('Save')."</button> ";
+ print "<button dojoType=\"dijit.form.Button\"
+ onclick=\"dijit.byId('cssEditDlg').hide()\">".__('Cancel')."</button>";
+ print "</div>";
+
+ }
+
+ function editPrefProfiles() {
+ print "<div dojoType=\"dijit.Toolbar\">";
+
+ print "<div dojoType=\"dijit.form.DropDownButton\">".
+ "<span>" . __('Select')."</span>";
+ print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">";
+ print "<div onclick=\"selectTableRows('prefFeedProfileList', 'all')\"
+ dojoType=\"dijit.MenuItem\">".__('All')."</div>";
+ print "<div onclick=\"selectTableRows('prefFeedProfileList', 'none')\"
+ dojoType=\"dijit.MenuItem\">".__('None')."</div>";
+ print "</div></div>";
+
+ print "<div style=\"float : right\">";
+
+ print "<input name=\"newprofile\" dojoType=\"dijit.form.ValidationTextBox\"
+ required=\"1\">
+ <button dojoType=\"dijit.form.Button\"
+ onclick=\"dijit.byId('profileEditDlg').addProfile()\">".
+ __('Create profile')."</button></div>";
+
+ print "</div>";
+
+ $result = $this->dbh->query("SELECT title,id FROM ttrss_settings_profiles
+ WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
+
+ print "<div class=\"prefProfileHolder\">";
+
+ print "<form id=\"profile_edit_form\" onsubmit=\"return false\">";
+
+ print "<table width=\"100%\" class=\"prefFeedProfileList\"
+ cellspacing=\"0\" id=\"prefFeedProfileList\">";
+
+ print "<tr class=\"placeholder\" id=\"FCATR-0\">"; #odd
+
+ print "<td width='5%' align='center'><input
+ id='FCATC-0'
+ onclick='toggleSelectRow2(this);'
+ dojoType=\"dijit.form.CheckBox\"
+ type=\"checkbox\"></td>";
+
+ if (!$_SESSION["profile"]) {
+ $is_active = __("(active)");
+ } else {
+ $is_active = "";
+ }
+
+ print "<td><span>" .
+ __("Default profile") . " $is_active</span></td>";
+
+ print "</tr>";
+
+ $lnum = 1;
+
+ while ($line = $this->dbh->fetch_assoc($result)) {
+
+ $profile_id = $line["id"];
+ $this_row_id = "id=\"FCATR-$profile_id\"";
+
+ print "<tr class=\"placeholder\" $this_row_id>";
+
+ $edit_title = htmlspecialchars($line["title"]);
+
+ print "<td width='5%' align='center'><input
+ onclick='toggleSelectRow2(this);'
+ id='FCATC-$profile_id'
+ dojoType=\"dijit.form.CheckBox\"
+ type=\"checkbox\"></td>";
+
+ if ($_SESSION["profile"] == $line["id"]) {
+ $is_active = __("(active)");
+ } else {
+ $is_active = "";
+ }
+
+ print "<td><span dojoType=\"dijit.InlineEditBox\"
+ width=\"300px\" autoSave=\"false\"
+ profile-id=\"$profile_id\">" . $edit_title .
+ "<script type=\"dojo/method\" event=\"onChange\" args=\"item\">
+ var elem = this;
+ dojo.xhrPost({
+ url: 'backend.php',
+ content: {op: 'rpc', method: 'saveprofile',
+ value: this.value,
+ id: this.srcNodeRef.getAttribute('profile-id')},
+ load: function(response) {
+ elem.attr('value', response);
+ }
+ });
+ </script>
+ </span> $is_active</td>";
+
+ print "</tr>";
+
+ ++$lnum;
+ }
+
+ print "</table>";
+ print "</form>";
+ print "</div>";
+
+ print "<div class='dlgButtons'>
+ <div style='float : left'>
+ <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('profileEditDlg').removeSelected()\">".
+ __('Remove selected profiles')."</button>
+ <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('profileEditDlg').activateProfile()\">".
+ __('Activate profile')."</button>
+ </div>";
+
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('profileEditDlg').hide()\">".
+ __('Close this window')."</button>";
+ print "</div>";
+
+ }
+
+ private function getShortDesc($pref_name) {
+ if (isset($this->pref_help[$pref_name])) {
+ return $this->pref_help[$pref_name][0];
+ }
+ return "";
+ }
+
+ private function getHelpText($pref_name) {
+ if (isset($this->pref_help[$pref_name])) {
+ return $this->pref_help[$pref_name][1];
+ }
+ return "";
+ }
+
+ private function getSectionName($id) {
+ if (isset($this->pref_sections[$id])) {
+ return $this->pref_sections[$id];
+ }
- global $pluginhost;
- $pluginhost->clear_data($pluginhost->get_plugin($name));
+ return "";
}
}
?>
diff --git a/classes/pref/system.php b/classes/pref/system.php
new file mode 100644
index 000000000..7accb1f91
--- /dev/null
+++ b/classes/pref/system.php
@@ -0,0 +1,90 @@
+<?php
+
+class Pref_System extends Handler_Protected {
+
+ function before($method) {
+ if (parent::before($method)) {
+ if ($_SESSION["access_level"] < 10) {
+ print __("Your access level is insufficient to open this tab.");
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ function csrf_ignore($method) {
+ $csrf_ignored = array("index");
+
+ return array_search($method, $csrf_ignored) !== false;
+ }
+
+ function clearLog() {
+ $this->dbh->query("DELETE FROM ttrss_error_log");
+ }
+
+ function index() {
+
+ print "<div dojoType=\"dijit.layout.AccordionContainer\" region=\"center\">";
+ print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Error Log')."\">";
+
+ if (LOG_DESTINATION == "sql") {
+
+ $result = $this->dbh->query("SELECT errno, errstr, filename, lineno,
+ created_at, login FROM ttrss_error_log
+ LEFT JOIN ttrss_users ON (owner_uid = ttrss_users.id)
+ ORDER BY ttrss_error_log.id DESC
+ LIMIT 100");
+
+ print "<button dojoType=\"dijit.form.Button\"
+ onclick=\"updateSystemList()\">".__('Refresh')."</button> ";
+
+ print "&nbsp;<button dojoType=\"dijit.form.Button\"
+ onclick=\"clearSqlLog()\">".__('Clear log')."</button> ";
+
+ print "<p><table width=\"100%\" cellspacing=\"10\" class=\"prefErrorLog\">";
+
+ print "<tr class=\"title\">
+ <td width='5%'>".__("Error")."</td>
+ <td>".__("Filename")."</td>
+ <td>".__("Message")."</td>
+ <td width='5%'>".__("User")."</td>
+ <td width='5%'>".__("Date")."</td>
+ </tr>";
+
+ while ($line = $this->dbh->fetch_assoc($result)) {
+ print "<tr class=\"errrow\">";
+
+ foreach ($line as $k => $v) {
+ $line[$k] = htmlspecialchars($v);
+ }
+
+ print "<td class='errno'>" . Logger::$errornames[$line["errno"]] . " (" . $line["errno"] . ")</td>";
+ print "<td class='filename'>" . $line["filename"] . ":" . $line["lineno"] . "</td>";
+ print "<td class='errstr'>" . $line["errstr"] . "</td>";
+ print "<td class='login'>" . $line["login"] . "</td>";
+
+ print "<td class='timestamp'>" .
+ make_local_datetime(
+ $line["created_at"], false) . "</td>";
+
+ print "</tr>";
+ }
+
+ print "</table>";
+ } else {
+
+ print_notice("Please set LOG_DESTINATION to 'sql' in config.php to enable database logging.");
+
+ }
+
+ print "</div>";
+
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB,
+ "hook_prefs_tab", "prefSystem");
+
+ print "</div>"; #container
+ }
+
+}
+?>
diff --git a/classes/pref/users.php b/classes/pref/users.php
index 0d7ca3c6e..60059dc8d 100644
--- a/classes/pref/users.php
+++ b/classes/pref/users.php
@@ -19,16 +19,9 @@ class Pref_Users extends Handler_Protected {
function userdetails() {
- header("Content-Type: text/xml");
- print "<dlg>";
-
$uid = sprintf("%d", $_REQUEST["id"]);
- print "<title>".__('User details')."</title>";
-
- print "<content><![CDATA[";
-
- $result = db_query($this->link, "SELECT login,
+ $result = $this->dbh->query("SELECT login,
".SUBSTRING_FOR_DATE."(last_login,1,16) AS last_login,
access_level,
(SELECT COUNT(int_id) FROM ttrss_user_entries
@@ -37,33 +30,33 @@ class Pref_Users extends Handler_Protected {
FROM ttrss_users
WHERE id = '$uid'");
- if (db_num_rows($result) == 0) {
+ if ($this->dbh->num_rows($result) == 0) {
print "<h1>".__('User not found')."</h1>";
return;
}
// print "<h1>User Details</h1>";
- $login = db_fetch_result($result, 0, "login");
+ $login = $this->dbh->fetch_result($result, 0, "login");
print "<table width='100%'>";
- $last_login = make_local_datetime($this->link,
- db_fetch_result($result, 0, "last_login"), true);
+ $last_login = make_local_datetime(
+ $this->dbh->fetch_result($result, 0, "last_login"), true);
- $created = make_local_datetime($this->link,
- db_fetch_result($result, 0, "created"), true);
+ $created = make_local_datetime(
+ $this->dbh->fetch_result($result, 0, "created"), true);
- $access_level = db_fetch_result($result, 0, "access_level");
- $stored_articles = db_fetch_result($result, 0, "stored_articles");
+ $access_level = $this->dbh->fetch_result($result, 0, "access_level");
+ $stored_articles = $this->dbh->fetch_result($result, 0, "stored_articles");
print "<tr><td>".__('Registered')."</td><td>$created</td></tr>";
print "<tr><td>".__('Last logged in')."</td><td>$last_login</td></tr>";
- $result = db_query($this->link, "SELECT COUNT(id) as num_feeds FROM ttrss_feeds
+ $result = $this->dbh->query("SELECT COUNT(id) as num_feeds FROM ttrss_feeds
WHERE owner_uid = '$uid'");
- $num_feeds = db_fetch_result($result, 0, "num_feeds");
+ $num_feeds = $this->dbh->fetch_result($result, 0, "num_feeds");
print "<tr><td>".__('Subscribed feeds count')."</td><td>$num_feeds</td></tr>";
@@ -71,14 +64,12 @@ class Pref_Users extends Handler_Protected {
print "<h1>".__('Subscribed feeds')."</h1>";
- $result = db_query($this->link, "SELECT id,title,site_url FROM ttrss_feeds
+ $result = $this->dbh->query("SELECT id,title,site_url FROM ttrss_feeds
WHERE owner_uid = '$uid' ORDER BY title");
print "<ul class=\"userFeedList\">";
- $row_class = "odd";
-
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$icon_file = ICONS_URL."/".$line["id"].".ico";
@@ -88,13 +79,11 @@ class Pref_Users extends Handler_Protected {
$feed_icon = "<img class=\"tinyFeedIcon\" src=\"images/blank_icon.gif\">";
}
- print "<li class=\"$row_class\">$feed_icon&nbsp;<a href=\"".$line["site_url"]."\">".$line["title"]."</a></li>";
-
- $row_class = $row_class == "even" ? "odd" : "even";
+ print "<li>$feed_icon&nbsp;<a href=\"".$line["site_url"]."\">".$line["title"]."</a></li>";
}
- if (db_num_rows($result) < $num_feeds) {
+ if ($this->dbh->num_rows($result) < $num_feeds) {
// FIXME - add link to show ALL subscribed feeds here somewhere
print "<li><img
class=\"tinyFeedIcon\" src=\"images/blank_icon.gif\">&nbsp;...</li>";
@@ -106,33 +95,24 @@ class Pref_Users extends Handler_Protected {
<button onclick=\"closeInfoBox()\">".__("Close this window").
"</button></div>";
- print "]]></content></dlg>";
-
return;
}
function edit() {
global $access_level_names;
- header("Content-Type: text/xml");
-
- $id = db_escape_string($_REQUEST["id"]);
-
- print "<dlg id=\"$method\">";
- print "<title>".__('User Editor')."</title>";
- print "<content><![CDATA[";
-
+ $id = $this->dbh->escape_string($_REQUEST["id"]);
print "<form id=\"user_edit_form\" onsubmit='return false'>";
print "<input type=\"hidden\" name=\"id\" value=\"$id\">";
print "<input type=\"hidden\" name=\"op\" value=\"pref-users\">";
print "<input type=\"hidden\" name=\"method\" value=\"editSave\">";
- $result = db_query($this->link, "SELECT * FROM ttrss_users WHERE id = '$id'");
+ $result = $this->dbh->query("SELECT * FROM ttrss_users WHERE id = '$id'");
- $login = db_fetch_result($result, 0, "login");
- $access_level = db_fetch_result($result, 0, "access_level");
- $email = db_fetch_result($result, 0, "email");
+ $login = $this->dbh->fetch_result($result, 0, "login");
+ $access_level = $this->dbh->fetch_result($result, 0, "access_level");
+ $email = $this->dbh->fetch_result($result, 0, "email");
$sel_disabled = ($id == $_SESSION["uid"]) ? "disabled" : "";
@@ -193,17 +173,15 @@ class Pref_Users extends Handler_Protected {
<button onclick=\"return userEditCancel()\">".
__('Cancel')."</button></div>";
- print "]]></content></dlg>";
-
return;
}
function editSave() {
- $login = db_escape_string(trim($_REQUEST["login"]));
- $uid = db_escape_string($_REQUEST["id"]);
+ $login = $this->dbh->escape_string(trim($_REQUEST["login"]));
+ $uid = $this->dbh->escape_string($_REQUEST["id"]);
$access_level = (int) $_REQUEST["access_level"];
- $email = db_escape_string(trim($_REQUEST["email"]));
- $password = db_escape_string(trim($_REQUEST["password"]));
+ $email = $this->dbh->escape_string(trim($_REQUEST["email"]));
+ $password = $_REQUEST["password"];
if ($password) {
$salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
@@ -213,52 +191,52 @@ class Pref_Users extends Handler_Protected {
$pass_query_part = "";
}
- db_query($this->link, "UPDATE ttrss_users SET $pass_query_part login = '$login',
- access_level = '$access_level', email = '$email', otp_enabled = 'false'
+ $this->dbh->query("UPDATE ttrss_users SET $pass_query_part login = '$login',
+ access_level = '$access_level', email = '$email', otp_enabled = false
WHERE id = '$uid'");
}
function remove() {
- $ids = split(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) {
if ($id != $_SESSION["uid"] && $id != 1) {
- db_query($this->link, "DELETE FROM ttrss_tags WHERE owner_uid = '$id'");
- db_query($this->link, "DELETE FROM ttrss_feeds WHERE owner_uid = '$id'");
- db_query($this->link, "DELETE FROM ttrss_users WHERE id = '$id'");
+ $this->dbh->query("DELETE FROM ttrss_tags WHERE owner_uid = '$id'");
+ $this->dbh->query("DELETE FROM ttrss_feeds WHERE owner_uid = '$id'");
+ $this->dbh->query("DELETE FROM ttrss_users WHERE id = '$id'");
}
}
}
function add() {
- $login = db_escape_string(trim($_REQUEST["login"]));
+ $login = $this->dbh->escape_string(trim($_REQUEST["login"]));
$tmp_user_pwd = make_password(8);
$salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
$pwd_hash = encrypt_password($tmp_user_pwd, $salt, true);
- $result = db_query($this->link, "SELECT id FROM ttrss_users WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_users WHERE
login = '$login'");
- if (db_num_rows($result) == 0) {
+ if ($this->dbh->num_rows($result) == 0) {
- db_query($this->link, "INSERT INTO ttrss_users
+ $this->dbh->query("INSERT INTO ttrss_users
(login,pwd_hash,access_level,last_login,created, salt)
VALUES ('$login', '$pwd_hash', 0, null, NOW(), '$salt')");
- $result = db_query($this->link, "SELECT id FROM ttrss_users WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_users WHERE
login = '$login' AND pwd_hash = '$pwd_hash'");
- if (db_num_rows($result) == 1) {
+ if ($this->dbh->num_rows($result) == 1) {
- $new_uid = db_fetch_result($result, 0, "id");
+ $new_uid = $this->dbh->fetch_result($result, 0, "id");
print format_notice(T_sprintf("Added user <b>%s</b> with password <b>%s</b>",
$login, $tmp_user_pwd));
- initialize_user($this->link, $new_uid);
+ initialize_user($new_uid);
} else {
@@ -270,11 +248,9 @@ class Pref_Users extends Handler_Protected {
}
}
- function resetPass() {
-
- $uid = db_escape_string($_REQUEST["id"]);
+ static function resetUserPassword($uid, $show_password) {
- $result = db_query($this->link, "SELECT login,email
+ $result = db_query("SELECT login,email
FROM ttrss_users WHERE id = '$uid'");
$login = db_fetch_result($result, 0, "login");
@@ -286,18 +262,18 @@ class Pref_Users extends Handler_Protected {
$pwd_hash = encrypt_password($tmp_user_pwd, $new_salt, true);
- db_query($this->link, "UPDATE ttrss_users SET pwd_hash = '$pwd_hash', salt = '$new_salt'
+ db_query("UPDATE ttrss_users SET pwd_hash = '$pwd_hash', salt = '$new_salt'
WHERE id = '$uid'");
- print T_sprintf("Changed password of user <b>%s</b>
- to <b>%s</b>", $login, $tmp_user_pwd);
+ if ($show_password) {
+ print T_sprintf("Changed password of user <b>%s</b> to <b>%s</b>", $login, $tmp_user_pwd);
+ } else {
+ print_notice(T_sprintf("Sending new password of user <b>%s</b> to <b>%s</b>", $login, $email));
+ }
- require_once 'lib/phpmailer/class.phpmailer.php';
+ require_once 'classes/ttrssmailer.php';
if ($email) {
- print " ";
- print T_sprintf("Notifying <b>%s</b>.", $email);
-
require_once "lib/MiniTemplator.class.php";
$tpl = new MiniTemplator;
@@ -313,35 +289,19 @@ class Pref_Users extends Handler_Protected {
$tpl->generateOutputToString($message);
- $mail = new PHPMailer();
-
- $mail->PluginDir = "lib/phpmailer/";
- $mail->SetLanguage("en", "lib/phpmailer/language/");
-
- $mail->CharSet = "UTF-8";
-
- $mail->From = SMTP_FROM_ADDRESS;
- $mail->FromName = SMTP_FROM_NAME;
- $mail->AddAddress($email, $login);
+ $mail = new ttrssMailer();
- if (SMTP_HOST) {
- $mail->Host = SMTP_HOST;
- $mail->Mailer = "smtp";
- $mail->SMTPAuth = SMTP_LOGIN != '';
- $mail->Username = SMTP_LOGIN;
- $mail->Password = SMTP_PASSWORD;
- }
-
- $mail->IsHTML(false);
- $mail->Subject = __("[tt-rss] Password change notification");
- $mail->Body = $message;
-
- $rc = $mail->Send();
+ $rc = $mail->quickMail($email, $login,
+ __("[tt-rss] Password change notification"),
+ $message, false);
if (!$rc) print_error($mail->ErrorInfo);
}
+ }
- print "</div>";
+ function resetPass() {
+ $uid = $this->dbh->escape_string($_REQUEST["id"]);
+ Pref_Users::resetUserPassword($uid, true);
}
function index() {
@@ -353,7 +313,7 @@ class Pref_Users extends Handler_Protected {
print "<div id=\"pref-user-toolbar\" dojoType=\"dijit.Toolbar\">";
- $user_search = db_escape_string($_REQUEST["search"]);
+ $user_search = $this->dbh->escape_string($_REQUEST["search"]);
if (array_key_exists("search", $_REQUEST)) {
$_SESSION["prefs_user_search"] = $user_search;
@@ -368,7 +328,7 @@ class Pref_Users extends Handler_Protected {
__('Search')."</button>
</div>";
- $sort = db_escape_string($_REQUEST["sort"]);
+ $sort = $this->dbh->escape_string($_REQUEST["sort"]);
if (!$sort || $sort == "undefined") {
$sort = "login";
@@ -403,7 +363,7 @@ class Pref_Users extends Handler_Protected {
if ($user_search) {
- $user_search = split(" ", $user_search);
+ $user_search = explode(" ", $user_search);
$tokens = array();
foreach ($user_search as $token) {
@@ -417,7 +377,7 @@ class Pref_Users extends Handler_Protected {
$user_search_query = "";
}
- $result = db_query($this->link, "SELECT
+ $result = $this->dbh->query("SELECT
id,login,access_level,email,
".SUBSTRING_FOR_DATE."(last_login,1,16) as last_login,
".SUBSTRING_FOR_DATE."(created,1,16) as created
@@ -428,7 +388,7 @@ class Pref_Users extends Handler_Protected {
id > 0
ORDER BY $sort");
- if (db_num_rows($result) > 0) {
+ if ($this->dbh->num_rows($result) > 0) {
print "<p><table width=\"100%\" cellspacing=\"0\"
class=\"prefUserList\" id=\"prefUserList\">";
@@ -442,9 +402,7 @@ class Pref_Users extends Handler_Protected {
$lnum = 0;
- while ($line = db_fetch_assoc($result)) {
-
- $class = ($lnum % 2) ? "even" : "odd";
+ while ($line = $this->dbh->fetch_assoc($result)) {
$uid = $line["id"];
@@ -452,8 +410,8 @@ class Pref_Users extends Handler_Protected {
$line["login"] = htmlspecialchars($line["login"]);
- $line["created"] = make_local_datetime($this->link, $line["created"], false);
- $line["last_login"] = make_local_datetime($this->link, $line["last_login"], false);
+ $line["created"] = make_local_datetime($line["created"], false);
+ $line["last_login"] = make_local_datetime($line["last_login"], false);
print "<td align='center'><input onclick='toggleSelectRow2(this);'
dojoType=\"dijit.form.CheckBox\" type=\"checkbox\"
@@ -489,8 +447,7 @@ class Pref_Users extends Handler_Protected {
print "</div>"; #pane
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefUsers");
print "</div>"; #container
diff --git a/classes/rpc.php b/classes/rpc.php
index 46c8b0d85..46583feb5 100644
--- a/classes/rpc.php
+++ b/classes/rpc.php
@@ -8,18 +8,17 @@ class RPC extends Handler_Protected {
}
function setprofile() {
- $id = db_escape_string($_REQUEST["id"]);
+ $id = $this->dbh->escape_string($_REQUEST["id"]);
$_SESSION["profile"] = $id;
- $_SESSION["prefs_cache"] = array();
}
function remprofiles() {
- $ids = explode(",", db_escape_string(trim($_REQUEST["ids"])));
+ $ids = explode(",", $this->dbh->escape_string(trim($_REQUEST["ids"])));
foreach ($ids as $id) {
if ($_SESSION["profile"] != $id) {
- db_query($this->link, "DELETE FROM ttrss_settings_profiles WHERE id = '$id' AND
+ $this->dbh->query("DELETE FROM ttrss_settings_profiles WHERE id = '$id' AND
owner_uid = " . $_SESSION["uid"]);
}
}
@@ -27,38 +26,38 @@ class RPC extends Handler_Protected {
// Silent
function addprofile() {
- $title = db_escape_string(trim($_REQUEST["title"]));
+ $title = $this->dbh->escape_string(trim($_REQUEST["title"]));
if ($title) {
- db_query($this->link, "BEGIN");
+ $this->dbh->query("BEGIN");
- $result = db_query($this->link, "SELECT id FROM ttrss_settings_profiles
+ $result = $this->dbh->query("SELECT id FROM ttrss_settings_profiles
WHERE title = '$title' AND owner_uid = " . $_SESSION["uid"]);
- if (db_num_rows($result) == 0) {
+ if ($this->dbh->num_rows($result) == 0) {
- db_query($this->link, "INSERT INTO ttrss_settings_profiles (title, owner_uid)
+ $this->dbh->query("INSERT INTO ttrss_settings_profiles (title, owner_uid)
VALUES ('$title', ".$_SESSION["uid"] .")");
- $result = db_query($this->link, "SELECT id FROM ttrss_settings_profiles WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_settings_profiles WHERE
title = '$title'");
- if (db_num_rows($result) != 0) {
- $profile_id = db_fetch_result($result, 0, "id");
+ if ($this->dbh->num_rows($result) != 0) {
+ $profile_id = $this->dbh->fetch_result($result, 0, "id");
if ($profile_id) {
- initialize_user_prefs($this->link, $_SESSION["uid"], $profile_id);
+ initialize_user_prefs($_SESSION["uid"], $profile_id);
}
}
}
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
}
}
// Silent
function saveprofile() {
- $id = db_escape_string($_REQUEST["id"]);
- $title = db_escape_string(trim($_REQUEST["value"]));
+ $id = $this->dbh->escape_string($_REQUEST["id"]);
+ $title = $this->dbh->escape_string(trim($_REQUEST["value"]));
if ($id == 0) {
print __("Default profile");
@@ -66,56 +65,55 @@ class RPC extends Handler_Protected {
}
if ($title) {
- db_query($this->link, "BEGIN");
+ $this->dbh->query("BEGIN");
- $result = db_query($this->link, "SELECT id FROM ttrss_settings_profiles
+ $result = $this->dbh->query("SELECT id FROM ttrss_settings_profiles
WHERE title = '$title' AND owner_uid =" . $_SESSION["uid"]);
- if (db_num_rows($result) == 0) {
- db_query($this->link, "UPDATE ttrss_settings_profiles
+ if ($this->dbh->num_rows($result) == 0) {
+ $this->dbh->query("UPDATE ttrss_settings_profiles
SET title = '$title' WHERE id = '$id' AND
owner_uid = " . $_SESSION["uid"]);
print $title;
} else {
- $result = db_query($this->link, "SELECT title FROM ttrss_settings_profiles
+ $result = $this->dbh->query("SELECT title FROM ttrss_settings_profiles
WHERE id = '$id' AND owner_uid =" . $_SESSION["uid"]);
- print db_fetch_result($result, 0, "title");
+ print $this->dbh->fetch_result($result, 0, "title");
}
- db_query($this->link, "COMMIT");
+ $this->dbh->query("COMMIT");
}
}
// Silent
function remarchive() {
- $ids = explode(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) {
- $result = db_query($this->link, "DELETE FROM ttrss_archived_feeds WHERE
+ $result = $this->dbh->query("DELETE FROM ttrss_archived_feeds WHERE
(SELECT COUNT(*) FROM ttrss_user_entries
WHERE orig_feed_id = '$id') = 0 AND
id = '$id' AND owner_uid = ".$_SESSION["uid"]);
- $rc = db_affected_rows($this->link, $result);
+ $rc = $this->dbh->affected_rows($result);
}
}
function addfeed() {
- $feed = db_escape_string($_REQUEST['feed']);
- $cat = db_escape_string($_REQUEST['cat']);
- $login = db_escape_string($_REQUEST['login']);
- $pass = db_escape_string($_REQUEST['pass']);
- $need_auth = db_escape_string($_REQUEST['need_auth']) != "";
+ $feed = $this->dbh->escape_string($_REQUEST['feed']);
+ $cat = $this->dbh->escape_string($_REQUEST['cat']);
+ $login = $this->dbh->escape_string($_REQUEST['login']);
+ $pass = trim($_REQUEST['pass']); // escaped later
- $rc = subscribe_to_feed($this->link, $feed, $cat, $login, $pass, $need_auth);
+ $rc = subscribe_to_feed($feed, $cat, $login, $pass);
print json_encode(array("result" => $rc));
}
function togglepref() {
- $key = db_escape_string($_REQUEST["key"]);
- set_pref($this->link, $key, !get_pref($this->link, $key));
- $value = get_pref($this->link, $key);
+ $key = $this->dbh->escape_string($_REQUEST["key"]);
+ set_pref($key, !get_pref($key));
+ $value = get_pref($key);
print json_encode(array("param" =>$key, "value" => $value));
}
@@ -125,14 +123,14 @@ class RPC extends Handler_Protected {
$key = $_REQUEST['key'];
$value = str_replace("\n", "<br/>", $_REQUEST['value']);
- set_pref($this->link, $key, $value, $_SESSION['uid'], $key != 'USER_STYLESHEET');
+ set_pref($key, $value, $_SESSION['uid'], $key != 'USER_STYLESHEET');
print json_encode(array("param" =>$key, "value" => $value));
}
function mark() {
$mark = $_REQUEST["mark"];
- $id = db_escape_string($_REQUEST["id"]);
+ $id = $this->dbh->escape_string($_REQUEST["id"]);
if ($mark == "1") {
$mark = "true";
@@ -140,77 +138,127 @@ class RPC extends Handler_Protected {
$mark = "false";
}
- $result = db_query($this->link, "UPDATE ttrss_user_entries SET marked = $mark
+ $result = $this->dbh->query("UPDATE ttrss_user_entries SET marked = $mark,
+ last_marked = NOW()
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
print json_encode(array("message" => "UPDATE_COUNTERS"));
}
function delete() {
- $ids = db_escape_string($_REQUEST["ids"]);
+ $ids = $this->dbh->escape_string($_REQUEST["ids"]);
- $result = db_query($this->link, "DELETE FROM ttrss_user_entries
+ $result = $this->dbh->query("DELETE FROM ttrss_user_entries
WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]);
+ purge_orphans();
+
print json_encode(array("message" => "UPDATE_COUNTERS"));
}
function unarchive() {
- $ids = db_escape_string($_REQUEST["ids"]);
+ $ids = explode(",", $_REQUEST["ids"]);
+
+ foreach ($ids as $id) {
+ $id = $this->dbh->escape_string(trim($id));
+ $this->dbh->query("BEGIN");
+
+ $result = $this->dbh->query("SELECT feed_url,site_url,title FROM ttrss_archived_feeds
+ WHERE id = (SELECT orig_feed_id FROM ttrss_user_entries WHERE ref_id = $id
+ AND owner_uid = ".$_SESSION["uid"].")");
+
+ if ($this->dbh->num_rows($result) != 0) {
+ $feed_url = $this->dbh->escape_string(db_fetch_result($result, 0, "feed_url"));
+ $site_url = $this->dbh->escape_string(db_fetch_result($result, 0, "site_url"));
+ $title = $this->dbh->escape_string(db_fetch_result($result, 0, "title"));
- $result = db_query($this->link, "UPDATE ttrss_user_entries
- SET feed_id = orig_feed_id, orig_feed_id = NULL
- WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]);
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds WHERE feed_url = '$feed_url'
+ AND owner_uid = " .$_SESSION["uid"]);
+
+ if ($this->dbh->num_rows($result) == 0) {
+
+ if (!$title) $title = '[Unknown]';
+
+ $result = $this->dbh->query(
+ "INSERT INTO ttrss_feeds
+ (owner_uid,feed_url,site_url,title,cat_id,auth_login,auth_pass,update_method)
+ VALUES (".$_SESSION["uid"].",
+ '$feed_url',
+ '$site_url',
+ '$title',
+ NULL, '', '', 0)");
+
+ $result = $this->dbh->query(
+ "SELECT id FROM ttrss_feeds WHERE feed_url = '$feed_url'
+ AND owner_uid = ".$_SESSION["uid"]);
+
+ if ($this->dbh->num_rows($result) != 0) {
+ $feed_id = $this->dbh->fetch_result($result, 0, "id");
+ }
+
+ } else {
+ $feed_id = $this->dbh->fetch_result($result, 0, "id");
+ }
+
+ if ($feed_id) {
+ $result = $this->dbh->query("UPDATE ttrss_user_entries
+ SET feed_id = '$feed_id', orig_feed_id = NULL
+ WHERE ref_id = $id AND owner_uid = " . $_SESSION["uid"]);
+ }
+ }
+
+ $this->dbh->query("COMMIT");
+ }
print json_encode(array("message" => "UPDATE_COUNTERS"));
}
function archive() {
- $ids = explode(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) {
- $this->archive_article($this->link, $id, $_SESSION["uid"]);
+ $this->archive_article($id, $_SESSION["uid"]);
}
print json_encode(array("message" => "UPDATE_COUNTERS"));
}
- private function archive_article($link, $id, $owner_uid) {
- db_query($link, "BEGIN");
+ private function archive_article($id, $owner_uid) {
+ $this->dbh->query("BEGIN");
- $result = db_query($link, "SELECT feed_id FROM ttrss_user_entries
+ $result = $this->dbh->query("SELECT feed_id FROM ttrss_user_entries
WHERE ref_id = '$id' AND owner_uid = $owner_uid");
- if (db_num_rows($result) != 0) {
+ if ($this->dbh->num_rows($result) != 0) {
/* prepare the archived table */
- $feed_id = (int) db_fetch_result($result, 0, "feed_id");
+ $feed_id = (int) $this->dbh->fetch_result($result, 0, "feed_id");
if ($feed_id) {
- $result = db_query($link, "SELECT id FROM ttrss_archived_feeds
+ $result = $this->dbh->query("SELECT id FROM ttrss_archived_feeds
WHERE id = '$feed_id'");
- if (db_num_rows($result) == 0) {
- db_query($link, "INSERT INTO ttrss_archived_feeds
+ if ($this->dbh->num_rows($result) == 0) {
+ $this->dbh->query("INSERT INTO ttrss_archived_feeds
(id, owner_uid, title, feed_url, site_url)
SELECT id, owner_uid, title, feed_url, site_url from ttrss_feeds
WHERE id = '$feed_id'");
}
- db_query($link, "UPDATE ttrss_user_entries
+ $this->dbh->query("UPDATE ttrss_user_entries
SET orig_feed_id = feed_id, feed_id = NULL
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
}
}
- db_query($link, "COMMIT");
+ $this->dbh->query("COMMIT");
}
function publ() {
$pub = $_REQUEST["pub"];
- $id = db_escape_string($_REQUEST["id"]);
- $note = trim(strip_tags(db_escape_string($_REQUEST["note"])));
+ $id = $this->dbh->escape_string($_REQUEST["id"]);
+ $note = trim(strip_tags($this->dbh->escape_string($_REQUEST["note"])));
if ($pub == "1") {
$pub = "true";
@@ -218,8 +266,8 @@ class RPC extends Handler_Protected {
$pub = "false";
}
- $result = db_query($this->link, "UPDATE ttrss_user_entries SET
- published = $pub, last_read = NOW()
+ $result = $this->dbh->query("UPDATE ttrss_user_entries SET
+ published = $pub, last_published = NOW()
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
$pubsub_result = false;
@@ -227,7 +275,7 @@ class RPC extends Handler_Protected {
if (PUBSUBHUBBUB_HUB) {
$rss_link = get_self_url_prefix() .
"/public.php?op=rss&id=-2&key=" .
- get_feed_access_key($this->link, -2, false);
+ get_feed_access_key(-2, false);
$p = new Publisher(PUBSUBHUBBUB_HUB);
@@ -243,251 +291,103 @@ class RPC extends Handler_Protected {
$reply = array();
- if ($seq) $reply['seq'] = $seq;
+ if (!empty($_REQUEST['seq'])) $reply['seq'] = (int) $_REQUEST['seq'];
- if ($last_article_id != getLastArticleId($this->link)) {
- $reply['counters'] = getAllCounters($this->link);
+ if ($last_article_id != getLastArticleId()) {
+ $reply['counters'] = getAllCounters();
}
- $reply['runtime-info'] = make_runtime_info($this->link);
+ $reply['runtime-info'] = make_runtime_info();
print json_encode($reply);
}
/* GET["cmode"] = 0 - mark as read, 1 - as unread, 2 - toggle */
function catchupSelected() {
- $ids = explode(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
$cmode = sprintf("%d", $_REQUEST["cmode"]);
- catchupArticlesById($this->link, $ids, $cmode);
+ catchupArticlesById($ids, $cmode);
- print json_encode(array("message" => "UPDATE_COUNTERS"));
+ print json_encode(array("message" => "UPDATE_COUNTERS", "ids" => $ids));
}
function markSelected() {
- $ids = explode(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
$cmode = sprintf("%d", $_REQUEST["cmode"]);
- $this->markArticlesById($this->link, $ids, $cmode);
+ $this->markArticlesById($ids, $cmode);
print json_encode(array("message" => "UPDATE_COUNTERS"));
}
function publishSelected() {
- $ids = explode(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
$cmode = sprintf("%d", $_REQUEST["cmode"]);
- $this->publishArticlesById($this->link, $ids, $cmode);
+ $this->publishArticlesById($ids, $cmode);
print json_encode(array("message" => "UPDATE_COUNTERS"));
}
function sanityCheck() {
$_SESSION["hasAudio"] = $_REQUEST["hasAudio"] === "true";
+ $_SESSION["hasSandbox"] = $_REQUEST["hasSandbox"] === "true";
+ $_SESSION["hasMp3"] = $_REQUEST["hasMp3"] === "true";
+ $_SESSION["clientTzOffset"] = $_REQUEST["clientTzOffset"];
$reply = array();
- $reply['error'] = sanity_check($this->link);
+ $reply['error'] = sanity_check();
if ($reply['error']['code'] == 0) {
- $reply['init-params'] = make_init_params($this->link);
- $reply['runtime-info'] = make_runtime_info($this->link);
+ $reply['init-params'] = make_init_params();
+ $reply['runtime-info'] = make_runtime_info();
}
print json_encode($reply);
}
- function setArticleTags() {
-
- $id = db_escape_string($_REQUEST["id"]);
-
- $tags_str = db_escape_string($_REQUEST["tags_str"]);
- $tags = array_unique(trim_array(explode(",", $tags_str)));
-
- db_query($this->link, "BEGIN");
-
- $result = db_query($this->link, "SELECT int_id FROM ttrss_user_entries WHERE
- ref_id = '$id' AND owner_uid = '".$_SESSION["uid"]."' LIMIT 1");
-
- if (db_num_rows($result) == 1) {
-
- $tags_to_cache = array();
-
- $int_id = db_fetch_result($result, 0, "int_id");
-
- db_query($this->link, "DELETE FROM ttrss_tags WHERE
- post_int_id = $int_id AND owner_uid = '".$_SESSION["uid"]."'");
-
- foreach ($tags as $tag) {
- $tag = sanitize_tag($tag);
-
- if (!tag_is_valid($tag)) {
- continue;
- }
-
- if (preg_match("/^[0-9]*$/", $tag)) {
- continue;
- }
-
- // print "<!-- $id : $int_id : $tag -->";
-
- if ($tag != '') {
- db_query($this->link, "INSERT INTO ttrss_tags
- (post_int_id, owner_uid, tag_name) VALUES ('$int_id', '".$_SESSION["uid"]."', '$tag')");
- }
-
- array_push($tags_to_cache, $tag);
- }
-
- /* update tag cache */
-
- sort($tags_to_cache);
- $tags_str = join(",", $tags_to_cache);
-
- db_query($this->link, "UPDATE ttrss_user_entries
- SET tag_cache = '$tags_str' WHERE ref_id = '$id'
- AND owner_uid = " . $_SESSION["uid"]);
- }
-
- db_query($this->link, "COMMIT");
-
- $tags = get_article_tags($this->link, $id);
- $tags_str = format_tags_string($tags, $id);
- $tags_str_full = join(", ", $tags);
-
- if (!$tags_str_full) $tags_str_full = __("no tags");
-
- print json_encode(array("tags_str" => array("id" => $id,
- "content" => $tags_str, "content_full" => $tags_str_full)));
- }
-
- function regenOPMLKey() {
- $this->update_feed_access_key($this->link, 'OPML:Publish',
- false, $_SESSION["uid"]);
-
- $new_link = Opml::opml_publish_url($this->link);
-
- print json_encode(array("link" => $new_link));
- }
-
function completeLabels() {
- $search = db_escape_string($_REQUEST["search"]);
+ $search = $this->dbh->escape_string($_REQUEST["search"]);
- $result = db_query($this->link, "SELECT DISTINCT caption FROM
+ $result = $this->dbh->query("SELECT DISTINCT caption FROM
ttrss_labels2
WHERE owner_uid = '".$_SESSION["uid"]."' AND
LOWER(caption) LIKE LOWER('$search%') ORDER BY caption
LIMIT 5");
print "<ul>";
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
print "<li>" . $line["caption"] . "</li>";
}
print "</ul>";
}
-
- function completeTags() {
- $search = db_escape_string($_REQUEST["search"]);
-
- $result = db_query($this->link, "SELECT DISTINCT tag_name FROM ttrss_tags
- WHERE owner_uid = '".$_SESSION["uid"]."' AND
- tag_name LIKE '$search%' ORDER BY tag_name
- LIMIT 10");
-
- print "<ul>";
- while ($line = db_fetch_assoc($result)) {
- print "<li>" . $line["tag_name"] . "</li>";
- }
- print "</ul>";
- }
-
function purge() {
- $ids = explode(",", db_escape_string($_REQUEST["ids"]));
+ $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
$days = sprintf("%d", $_REQUEST["days"]);
foreach ($ids as $id) {
- $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds WHERE
id = '$id' AND owner_uid = ".$_SESSION["uid"]);
- if (db_num_rows($result) == 1) {
- purge_feed($this->link, $id, $days);
- }
- }
- }
-
- function getArticles() {
- $ids = explode(",", db_escape_string($_REQUEST["ids"]));
- $articles = array();
-
- foreach ($ids as $id) {
- if ($id) {
- array_push($articles, format_article($this->link, $id, 0, false));
- }
- }
-
- print json_encode($articles);
- }
-
- function checkDate() {
- $date = db_escape_string($_REQUEST["date"]);
- $date_parsed = strtotime($date);
-
- print json_encode(array("result" => (bool)$date_parsed,
- "date" => date("c", $date_parsed)));
- }
-
- function assigntolabel() {
- return $this->labelops(true);
- }
-
- function removefromlabel() {
- return $this->labelops(false);
- }
-
- function labelops($assign) {
- $reply = array();
-
- $ids = explode(",", db_escape_string($_REQUEST["ids"]));
- $label_id = db_escape_string($_REQUEST["lid"]);
-
- $label = db_escape_string(label_find_caption($this->link, $label_id,
- $_SESSION["uid"]));
-
- $reply["info-for-headlines"] = array();
-
- if ($label) {
-
- foreach ($ids as $id) {
-
- if ($assign)
- label_add_article($this->link, $id, $label, $_SESSION["uid"]);
- else
- label_remove_article($this->link, $id, $label, $_SESSION["uid"]);
-
- $labels = get_article_labels($this->link, $id, $_SESSION["uid"]);
-
- array_push($reply["info-for-headlines"],
- array("id" => $id, "labels" => format_article_labels($labels, $id)));
-
+ if ($this->dbh->num_rows($result) == 1) {
+ purge_feed($id, $days);
}
}
-
- $reply["message"] = "UPDATE_COUNTERS";
-
- print json_encode($reply);
}
function updateFeedBrowser() {
- $search = db_escape_string($_REQUEST["search"]);
- $limit = db_escape_string($_REQUEST["limit"]);
- $mode = (int) db_escape_string($_REQUEST["mode"]);
+ $search = $this->dbh->escape_string($_REQUEST["search"]);
+ $limit = $this->dbh->escape_string($_REQUEST["limit"]);
+ $mode = (int) $this->dbh->escape_string($_REQUEST["mode"]);
require_once "feedbrowser.php";
print json_encode(array("content" =>
- make_feed_browser($this->link, $search, $limit, $mode),
+ make_feed_browser($search, $limit, $mode),
"mode" => $mode));
}
@@ -502,14 +402,14 @@ class RPC extends Handler_Protected {
if ($mode == 1) {
foreach ($payload as $feed) {
- $title = db_escape_string($feed[0]);
- $feed_url = db_escape_string($feed[1]);
+ $title = $this->dbh->escape_string($feed[0]);
+ $feed_url = $this->dbh->escape_string($feed[1]);
- $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds WHERE
feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"]);
- if (db_num_rows($result) == 0) {
- $result = db_query($this->link, "INSERT INTO ttrss_feeds
+ if ($this->dbh->num_rows($result) == 0) {
+ $result = $this->dbh->query("INSERT INTO ttrss_feeds
(owner_uid,feed_url,title,cat_id,site_url)
VALUES ('".$_SESSION["uid"]."',
'$feed_url', '$title', NULL, '')");
@@ -518,19 +418,19 @@ class RPC extends Handler_Protected {
} else if ($mode == 2) {
// feed archive
foreach ($payload as $id) {
- $result = db_query($this->link, "SELECT * FROM ttrss_archived_feeds
+ $result = $this->dbh->query("SELECT * FROM ttrss_archived_feeds
WHERE id = '$id' AND owner_uid = " . $_SESSION["uid"]);
- if (db_num_rows($result) != 0) {
- $site_url = db_escape_string(db_fetch_result($result, 0, "site_url"));
- $feed_url = db_escape_string(db_fetch_result($result, 0, "feed_url"));
- $title = db_escape_string(db_fetch_result($result, 0, "title"));
+ if ($this->dbh->num_rows($result) != 0) {
+ $site_url = $this->dbh->escape_string(db_fetch_result($result, 0, "site_url"));
+ $feed_url = $this->dbh->escape_string(db_fetch_result($result, 0, "feed_url"));
+ $title = $this->dbh->escape_string(db_fetch_result($result, 0, "title"));
- $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_feeds WHERE
feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"]);
- if (db_num_rows($result) == 0) {
- $result = db_query($this->link, "INSERT INTO ttrss_feeds
+ if ($this->dbh->num_rows($result) == 0) {
+ $result = $this->dbh->query("INSERT INTO ttrss_feeds
(owner_uid,feed_url,title,cat_id,site_url)
VALUES ('$id','".$_SESSION["uid"]."',
'$feed_url', '$title', NULL, '$site_url')");
@@ -541,134 +441,45 @@ class RPC extends Handler_Protected {
}
function catchupFeed() {
- $feed_id = db_escape_string($_REQUEST['feed_id']);
- $is_cat = db_escape_string($_REQUEST['is_cat']) == "true";
- $max_id = (int) db_escape_string($_REQUEST['max_id']);
+ $feed_id = $this->dbh->escape_string($_REQUEST['feed_id']);
+ $is_cat = $this->dbh->escape_string($_REQUEST['is_cat']) == "true";
+ $mode = $this->dbh->escape_string($_REQUEST['mode']);
- catchup_feed($this->link, $feed_id, $is_cat, false, $max_id);
+ catchup_feed($feed_id, $is_cat, false, false, $mode);
print json_encode(array("message" => "UPDATE_COUNTERS"));
}
function quickAddCat() {
- $cat = db_escape_string($_REQUEST["cat"]);
+ $cat = $this->dbh->escape_string($_REQUEST["cat"]);
- add_feed_category($this->link, $cat);
+ add_feed_category($cat);
- $result = db_query($this->link, "SELECT id FROM ttrss_feed_categories WHERE
+ $result = $this->dbh->query("SELECT id FROM ttrss_feed_categories WHERE
title = '$cat' AND owner_uid = " . $_SESSION["uid"]);
- if (db_num_rows($result) == 1) {
- $id = db_fetch_result($result, 0, "id");
+ if ($this->dbh->num_rows($result) == 1) {
+ $id = $this->dbh->fetch_result($result, 0, "id");
} else {
$id = 0;
}
- print_feed_cat_select($this->link, "cat_id", $id);
- }
-
- function regenFeedKey() {
- $feed_id = db_escape_string($_REQUEST['id']);
- $is_cat = db_escape_string($_REQUEST['is_cat']) == "true";
-
- $new_key = $this->update_feed_access_key($this->link, $feed_id, $is_cat);
-
- print json_encode(array("link" => $new_key));
- }
-
- // Silent
- function clearKeys() {
- db_query($this->link, "DELETE FROM ttrss_access_keys WHERE
- owner_uid = " . $_SESSION["uid"]);
+ print_feed_cat_select("cat_id", $id, '');
}
// Silent
function clearArticleKeys() {
- db_query($this->link, "UPDATE ttrss_user_entries SET uuid = '' WHERE
+ $this->dbh->query("UPDATE ttrss_user_entries SET uuid = '' WHERE
owner_uid = " . $_SESSION["uid"]);
return;
}
- function verifyRegexp() {
- $reg_exp = $_REQUEST["reg_exp"];
-
- $status = @preg_match("/$reg_exp/i", "TEST") !== false;
-
- print json_encode(array("status" => $status));
- }
-
- /* function buttonPlugin() {
- $pclass = "button_" . basename($_REQUEST['plugin']);
- $method = $_REQUEST['plugin_method'];
-
- if (class_exists($pclass)) {
- $plugin = new $pclass($this->link);
- if (method_exists($plugin, $method)) {
- return $plugin->$method();
- }
- }
- } */
-
- function genHash() {
- $hash = sha1(uniqid(rand(), true));
-
- print json_encode(array("hash" => $hash));
- }
-
- function batchAddFeeds() {
- $cat_id = db_escape_string($_REQUEST['cat']);
- $feeds = explode("\n", db_escape_string($_REQUEST['feeds']));
- $login = db_escape_string($_REQUEST['login']);
- $pass = db_escape_string($_REQUEST['pass']);
- $need_auth = db_escape_string($_REQUEST['need_auth']) != "";
-
- foreach ($feeds as $feed) {
- $feed = trim($feed);
-
- if (validate_feed_url($feed)) {
-
- db_query($this->link, "BEGIN");
-
- if ($cat_id == "0" || !$cat_id) {
- $cat_qpart = "NULL";
- } else {
- $cat_qpart = "'$cat_id'";
- }
-
- $result = db_query($this->link,
- "SELECT id FROM ttrss_feeds
- WHERE feed_url = '$feed' AND owner_uid = ".$_SESSION["uid"]);
-
- if (db_num_rows($result) == 0) {
- $result = db_query($this->link,
- "INSERT INTO ttrss_feeds
- (owner_uid,feed_url,title,cat_id,auth_login,auth_pass,update_method)
- VALUES ('".$_SESSION["uid"]."', '$feed',
- '[Unknown]', $cat_qpart, '$login', '$pass', 0)");
- }
-
- db_query($this->link, "COMMIT");
- }
- }
- }
-
- function setScore() {
- $ids = db_escape_string($_REQUEST['id']);
- $score = (int)db_escape_string($_REQUEST['score']);
-
- db_query($this->link, "UPDATE ttrss_user_entries SET
- score = '$score' WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]);
-
- print json_encode(array("id" => $id,
- "score_pic" => theme_image($link, get_score_pic($score))));
- }
-
function setpanelmode() {
$wide = (int) $_REQUEST["wide"];
setcookie("ttrss_widescreen", $wide,
- time() + SESSION_COOKIE_LIFETIME);
+ time() + COOKIE_LIFETIME_LONG);
print json_encode(array("wide" => $wide));
}
@@ -705,7 +516,7 @@ class RPC extends Handler_Protected {
$random_qpart = sql_random_function();
// We search for feed needing update.
- $result = db_query($this->link, "SELECT ttrss_feeds.feed_url,ttrss_feeds.id
+ $result = $this->dbh->query("SELECT ttrss_feeds.feed_url,ttrss_feeds.id
FROM
ttrss_feeds, ttrss_users, ttrss_user_prefs
WHERE
@@ -724,17 +535,21 @@ class RPC extends Handler_Protected {
$tstart = time();
- while ($line = db_fetch_assoc($result)) {
+ while ($line = $this->dbh->fetch_assoc($result)) {
$feed_id = $line["id"];
if (time() - $tstart < ini_get("max_execution_time") * 0.7) {
- update_rss_feed($this->link, $feed_id, true);
+ update_rss_feed($feed_id, true);
++$num_updated;
} else {
break;
}
}
+ // Purge orphans and cleanup tags
+ purge_orphans();
+ cleanup_tags(14, 50000);
+
if ($num_updated > 0) {
print json_encode(array("message" => "UPDATE_COUNTERS",
"num_updated" => $num_updated));
@@ -744,30 +559,7 @@ class RPC extends Handler_Protected {
}
- function update_feed_access_key($link, $feed_id, $is_cat, $owner_uid = false) {
- if (!$owner_uid) $owner_uid = $_SESSION["uid"];
-
- $sql_is_cat = bool_to_sql_bool($is_cat);
-
- $result = db_query($link, "SELECT access_key FROM ttrss_access_keys
- WHERE feed_id = '$feed_id' AND is_cat = $sql_is_cat
- AND owner_uid = " . $owner_uid);
-
- if (db_num_rows($result) == 1) {
- $key = db_escape_string(sha1(uniqid(rand(), true)));
-
- db_query($link, "UPDATE ttrss_access_keys SET access_key = '$key'
- WHERE feed_id = '$feed_id' AND is_cat = $sql_is_cat
- AND owner_uid = " . $owner_uid);
-
- return $key;
-
- } else {
- return get_feed_access_key($link, $feed_id, $is_cat, $owner_uid);
- }
- }
-
- private function markArticlesById($link, $ids, $cmode) {
+ private function markArticlesById($ids, $cmode) {
$tmp_ids = array();
@@ -778,21 +570,21 @@ class RPC extends Handler_Protected {
$ids_qpart = join(" OR ", $tmp_ids);
if ($cmode == 0) {
- db_query($link, "UPDATE ttrss_user_entries SET
- marked = false,last_read = NOW()
+ $this->dbh->query("UPDATE ttrss_user_entries SET
+ marked = false, last_marked = NOW()
WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]);
} else if ($cmode == 1) {
- db_query($link, "UPDATE ttrss_user_entries SET
- marked = true
+ $this->dbh->query("UPDATE ttrss_user_entries SET
+ marked = true, last_marked = NOW()
WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]);
} else {
- db_query($link, "UPDATE ttrss_user_entries SET
- marked = NOT marked,last_read = NOW()
+ $this->dbh->query("UPDATE ttrss_user_entries SET
+ marked = NOT marked,last_marked = NOW()
WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]);
}
}
- private function publishArticlesById($link, $ids, $cmode) {
+ private function publishArticlesById($ids, $cmode) {
$tmp_ids = array();
@@ -803,23 +595,23 @@ class RPC extends Handler_Protected {
$ids_qpart = join(" OR ", $tmp_ids);
if ($cmode == 0) {
- db_query($link, "UPDATE ttrss_user_entries SET
- published = false,last_read = NOW()
+ $this->dbh->query("UPDATE ttrss_user_entries SET
+ published = false,last_published = NOW()
WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]);
} else if ($cmode == 1) {
- db_query($link, "UPDATE ttrss_user_entries SET
- published = true,last_read = NOW()
+ $this->dbh->query("UPDATE ttrss_user_entries SET
+ published = true,last_published = NOW()
WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]);
} else {
- db_query($link, "UPDATE ttrss_user_entries SET
- published = NOT published,last_read = NOW()
+ $this->dbh->query("UPDATE ttrss_user_entries SET
+ published = NOT published,last_published = NOW()
WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]);
}
if (PUBSUBHUBBUB_HUB) {
$rss_link = get_self_url_prefix() .
"/public.php?op=rss&id=-2&key=" .
- get_feed_access_key($link, -2, false);
+ get_feed_access_key(-2, false);
$p = new Publisher(PUBSUBHUBBUB_HUB);
@@ -827,5 +619,32 @@ class RPC extends Handler_Protected {
}
}
+ function getlinktitlebyid() {
+ $id = $this->dbh->escape_string($_REQUEST['id']);
+
+ $result = $this->dbh->query("SELECT link, title FROM ttrss_entries, ttrss_user_entries
+ WHERE ref_id = '$id' AND ref_id = id AND owner_uid = ". $_SESSION["uid"]);
+
+ if ($this->dbh->num_rows($result) != 0) {
+ $link = $this->dbh->fetch_result($result, 0, "link");
+ $title = $this->dbh->fetch_result($result, 0, "title");
+
+ echo json_encode(array("link" => $link, "title" => $title));
+ } else {
+ echo json_encode(array("error" => "ARTICLE_NOT_FOUND"));
+ }
+ }
+
+ function log() {
+ $logmsg = $this->dbh->escape_string($_REQUEST['logmsg']);
+
+ if ($logmsg) {
+ Logger::get()->log_error(E_USER_WARNING,
+ $logmsg, '[client-js]', 0, false);
+ }
+
+ echo json_encode(array("message" => "HOST_ERROR_LOGGED"));
+
+ }
}
?>
diff --git a/classes/sanitizedummy.php b/classes/sanitizedummy.php
deleted file mode 100644
index 7182fb7f5..000000000
--- a/classes/sanitizedummy.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class SanitizeDummy extends SimplePie_Sanitize {
- function sanitize($data, $type, $base = '') {
- return $data;
- }
-}
-?>
diff --git a/classes/ttrssmailer.php b/classes/ttrssmailer.php
new file mode 100644
index 000000000..1e8d07723
--- /dev/null
+++ b/classes/ttrssmailer.php
@@ -0,0 +1,62 @@
+<?php
+/* @class ttrssMailer
+* @brief A TTRSS extension to the PHPMailer class
+* Configures default values through the __construct() function
+* @author Derek Murawsky
+* @version .1 (alpha)
+*
+*/
+require_once 'lib/phpmailer/class.phpmailer.php';
+require_once "config.php";
+
+class ttrssMailer extends PHPMailer {
+
+ //define all items that we want to override with defaults in PHPMailer
+ public $From = SMTP_FROM_ADDRESS;
+ public $FromName = SMTP_FROM_NAME;
+ public $CharSet = "UTF-8";
+ public $PluginDir = "lib/phpmailer/";
+ public $ContentType = "text/html"; //default email type is HTML
+
+ function __construct() {
+ $this->SetLanguage("en", "lib/phpmailer/language/");
+
+ if (SMTP_SERVER) {
+ $pair = explode(":", SMTP_SERVER, 2);
+ $this->Mailer = "smtp";
+
+ $this->Host = $pair[0];
+ $this->Port = $pair[1];
+
+ if (!$this->Port) $this->Port = 25;
+ } else {
+ $this->Host = '';
+ $this->Port = '';
+ }
+
+
+ //if SMTP_LOGIN is specified, set credentials and enable auth
+ if(SMTP_LOGIN){
+ $this->SMTPAuth = true;
+ $this->Username = SMTP_LOGIN;
+ $this->Password = SMTP_PASSWORD;
+ }
+ }
+ /* @brief a simple mail function to send email using the defaults
+ * This will send an HTML email using the configured defaults
+ * @param $toAddress A string with the recipients email address
+ * @param $toName A string with the recipients name
+ * @param $subject A string with the emails subject
+ * @param $body A string containing the body of the email
+ */
+ public function quickMail ($toAddress, $toName, $subject, $body, $altbody=""){
+ $this->addAddress($toAddress, $toName);
+ $this->Subject = $subject;
+ $this->Body = $body;
+ $this->IsHTML($altbody != '');
+ $rc=$this->send();
+ return $rc;
+ }
+}
+
+?>
diff --git a/config.php-dist b/config.php-dist
index eaaaa3d69..58218bab1 100644
--- a/config.php-dist
+++ b/config.php-dist
@@ -8,7 +8,7 @@
define('DB_USER', "fox");
define('DB_NAME', "fox");
define('DB_PASS', "XXXXXX");
- //define('DB_PORT', '5432'); // when neeeded, PG-only
+ define('DB_PORT', ''); // usually 5432 for PostgreSQL, 3306 for MySQL
define('MYSQL_CHARSET', 'UTF8');
// Connection charset for MySQL. If you have a legacy database and/or experience
@@ -24,9 +24,17 @@
// You need to set this option correctly otherwise several features
// including PUSH, bookmarklets and browser integration will not work properly.
+ define('FEED_CRYPT_KEY', '');
+ // Key used for encryption of passwords for password-protected feeds
+ // in the database. A string of 24 random characters. If left blank, encryption
+ // is not used. Requires mcrypt functions.
+ // Warning: changing this key will make your stored feed passwords impossible
+ // to decrypt.
+
define('SINGLE_USER_MODE', false);
// Operate in single user mode, disables all functionality related to
- // multiple users.
+ // multiple users and authentication. Enabling this assumes you have
+ // your tt-rss directory protected by other means (e.g. http auth).
define('SIMPLE_UPDATE_MODE', false);
// Enables fallback update mode where tt-rss tries to update feeds in
@@ -100,6 +108,9 @@
// Enable fulltext search using Sphinx (http://www.sphinxsearch.com)
// Please see http://tt-rss.org/wiki/SphinxSearch for more information.
+ define('SPHINX_SERVER', 'localhost:9312');
+ // Hostname:port combination for the Sphinx server.
+
define('SPHINX_INDEX', 'ttrss');
// Index name in Sphinx configuration. You can specify multiple indexes
// as a comma-separated string.
@@ -109,7 +120,7 @@
// ***********************************
define('ENABLE_REGISTRATION', false);
- // Allow users to register themselves. Please be vary that allowing
+ // Allow users to register themselves. Please be aware that allowing
// random people to access your tt-rss installation is a security risk
// and potentially might lead to data loss or server exploit. Disabled
// by default.
@@ -125,14 +136,10 @@
// *** Cookies and login sessions ***
// **********************************
- define('SESSION_COOKIE_LIFETIME', 86400*30);
+ define('SESSION_COOKIE_LIFETIME', 86400);
// Default lifetime of a session (e.g. login) cookie. In seconds,
// 0 means cookie will be deleted when browser closes.
- define('SESSION_EXPIRE_TIME', 86400*30);
- // Hard expiration limit for sessions. Should be
- // greater or equal to SESSION_COOKIE_LIFETIME
-
define('SESSION_CHECK_ADDRESS', 1);
// Check client IP address when validating session:
// 0 - disable checking
@@ -152,13 +159,14 @@
define('DIGEST_SUBJECT', '[tt-rss] New headlines for last 24 hours');
// Subject line for email digests
- define('SMTP_HOST', '');
- // SMTP Host to send outgoing mail. Blank - use system MTA.
-
+ define('SMTP_SERVER', '');
+ // Hostname:port combination to send outgoing mail (i.e. localhost:25).
+ // Blank - use system MTA.
+
define('SMTP_LOGIN', '');
define('SMTP_PASSWORD', '');
// These two options enable SMTP authentication when sending
- // outgoing mail. Only used with SMTP_HOST
+ // outgoing mail. Only used with SMTP_SERVER.
// ***************************************
// *** Other settings (less important) ***
@@ -174,12 +182,20 @@
// if you experience weird errors and tt-rss failing to start, blank pages
// after login, or content encoding errors, disable it.
- define('PLUGINS', 'auth_remote, auth_internal, note');
+ define('PLUGINS', 'auth_internal, note, updater');
// Comma-separated list of plugins to load automatically for all users.
// System plugins have to be specified here. Please enable at least one
// authentication plugin here (auth_*).
// Users may enable other user plugins from Preferences/Plugins but may not
// disable plugins specified in this list.
+ // Disabling auth_internal in this list would automatically disable
+ // reset password link on the login form.
+
+ define('LOG_DESTINATION', 'sql');
+ // Log destination to use. Possible values: sql (uses internal logging
+ // you can read in Preferences -> System), syslog - logs to system log.
+ // Setting this to blank uses PHP logging (usually to http server
+ // error.log).
define('CONFIG_VERSION', 26);
// Expected config version. Please update this option in config.php
diff --git a/db-updater.php b/db-updater.php
deleted file mode 100644
index e6b3db06a..000000000
--- a/db-updater.php
+++ /dev/null
@@ -1,186 +0,0 @@
-<?php
- set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
- get_include_path());
-
- require_once "functions.php";
- require_once "sessions.php";
- require_once "sanity_check.php";
- require_once "config.php";
- require_once "db.php";
-
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- if (!init_connection($link)) return;
- login_sequence($link);
-
- $owner_uid = $_SESSION["uid"];
-
- if (!SINGLE_USER_MODE && $_SESSION["access_level"] < 10) {
- $_SESSION["login_error_msg"] = __("Your access level is insufficient to run this script.");
- render_login_form($link);
- exit;
- }
-
-
-?>
-
-<html>
-<head>
-<title>Database Updater</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="stylesheet" type="text/css" href="utility.css">
-</head>
-
-<body>
-
-<script type='text/javascript'>
-function confirmOP() {
- return confirm(__("Update the database?"));
-}
-</script>
-
-<div class="floatingLogo"><img src="images/logo_wide.png"></div>
-
-<h1><?php echo __("Database Updater") ?></h1>
-
-<?php
- function getline($fp, $delim) {
- $result = "";
- while(!feof($fp)) {
- $tmp = fgetc($fp);
-
- if($tmp == $delim) {
- return $result;
- }
- $result .= $tmp;
- }
- return $result;
- }
-
- $op = $_POST["op"];
-
- $result = db_query($link, "SELECT schema_version FROM ttrss_version");
- $version = db_fetch_result($result, 0, "schema_version");
-
- $update_files = glob("schema/versions/".DB_TYPE."/*sql");
- $update_versions = array();
-
- foreach ($update_files as $f) {
- $m = array();
- preg_match_all("/schema\/versions\/".DB_TYPE."\/(\d*)\.sql/", $f, $m,
- PREG_PATTERN_ORDER);
-
- if ($m[1][0]) {
- $update_versions[$m[1][0]] = $f;
- }
- }
-
- ksort($update_versions, SORT_NUMERIC);
-
- $latest_version = max(array_keys($update_versions));
-
- if ($version == $latest_version) {
-
- if ($version != SCHEMA_VERSION) {
- print_error(__("Could not update database"));
-
- print "<p>" .
- __("Could not find necessary schema file, need version:") .
- " " . SCHEMA_VERSION . __(", found: ") . $latest_version . "</p>";
-
- } else {
- print_notice(__("Tiny Tiny RSS database is up to date."));
- print "<form method=\"GET\" action=\"index.php\">
- <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
- </form>";
- }
-
- } else if ($version <= $latest_version && !$op) {
-
- print_warning(__("Please backup your database before proceeding."));
-
- print "<p>" . T_sprintf("Your Tiny Tiny RSS database needs update to the latest version (<b>%d</b> to <b>%d</b>).", $version, $latest_version) . "</p>";
-
- /* print "<p>Available incremental updates:";
-
- foreach (array_keys($update_versions) as $v) {
- if ($v > $version) {
- print " <a href='$update_versions[$v]'>$v</a>";
- }
- } */
-
- print "</p>";
-
- print "<form method='POST'>
- <input type='hidden' name='op' value='do'>
- <input type='submit' onclick='return confirmOP()' value='".__("Perform updates")."'>
- </form>";
-
- } else if ($op == "do") {
-
- print "<p>".__("Performing updates...")."</p>";
-
- $num_updates = 0;
-
- foreach (array_keys($update_versions) as $v) {
- if ($v == $version + 1) {
- print "<p>".T_sprintf("Updating to version %d...", $v)."</p>";
- db_query($link, "BEGIN");
- $fp = fopen($update_versions[$v], "r");
- if ($fp) {
- while (!feof($fp)) {
- $query = trim(getline($fp, ";"));
- if ($query != "") {
- print "<p class='query'>$query</p>";
- db_query($link, $query);
- }
- }
- }
- fclose($fp);
- db_query($link, "COMMIT");
-
- print "<p>".__("Checking version... ");
-
- $result = db_query($link, "SELECT schema_version FROM ttrss_version");
- $version = db_fetch_result($result, 0, "schema_version");
-
- if ($version == $v) {
- print __("OK!");
- } else {
- print "<b>".__("ERROR!")."</b>";
- return;
- }
-
- $num_updates++;
- }
- }
-
- print "<p>".T_sprintf("Finished. Performed <b>%d</b> update(s) up to schema
- version <b>%d</b>.", $num_updates, $version)."</p>";
-
- print "<form method=\"GET\" action=\"backend.php\">
- <input type=\"hidden\" name=\"op\" value=\"logout\">
- <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
- </form>";
-
- } else if ($version >= $latest_version) {
-
- print_error(__("Your database schema is from a newer version of Tiny Tiny RSS."));
-
- print "<p>" . T_sprintf("Found schema version: <b>%d</b>, required: <b>%d</b>.", $version, $latest_version) . "</p>";
-
- print "<p>" . __("Schema upgrade impossible. Please update Tiny Tiny RSS files to the newer version and continue.") . "</p>";
-
- print "<form method=\"GET\" action=\"backend.php\">
- <input type=\"hidden\" name=\"op\" value=\"logout\">
- <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
- </form>";
-
-
- }
-
-?>
-
-</body>
-</html>
-
diff --git a/errors.php b/errors.php
index 8f4fd94fa..405da09cc 100644
--- a/errors.php
+++ b/errors.php
@@ -12,7 +12,7 @@
$ERRORS[2] = __("This program requires cookies " .
"to function properly. Your browser doesn't seem to support them.");
- $ERRORS[3] = __("Backend sanity check failed");
+ $ERRORS[3] = __("Backend sanity check failed.");
$ERRORS[4] = __("Frontend sanity check failed.");
@@ -28,8 +28,7 @@
$ERRORS[9] = __("Configuration check failed");
- $ERRORS[10] = __("Your version of MySQL is not currently supported. Please see
- official site for more information.");
+ $ERRORS[10] = __("Your version of MySQL is not currently supported. Please see official site for more information.");
$ERRORS[11] = "[This error is not returned by server]";
diff --git a/feed-icons/.empty b/feed-icons/.empty
index e69de29bb..e69de29bb 100644..100755
--- a/feed-icons/.empty
+++ b/feed-icons/.empty
diff --git a/feed-icons/index.html b/feed-icons/index.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/feed-icons/index.html
diff --git a/image.php b/image.php
index 91490ea22..dcc7d806d 100644
--- a/image.php
+++ b/image.php
@@ -4,14 +4,49 @@
require_once "config.php";
- $url = base64_decode($_GET['url']);
+ // backwards compatible wrapper for old-style image caching
+ /* if (isset($_GET['url'])) {
+ $url = base64_decode($_GET['url']);
- $filename = CACHE_DIR . '/images/' . sha1($url) . '.png';
+ $filename = CACHE_DIR . '/images/' . sha1($url) . '.png';
- if (file_exists($filename)) {
- header("Content-type: image/png");
- echo file_get_contents($filename);
- } else {
- header("Location: $url");
+ if (file_exists($filename)) {
+ header("Content-type: image/png");
+ echo file_get_contents($filename);
+ } else {
+ header("Location: $url");
+ }
+
+ return;
+ } */
+
+ @$hash = basename($_GET['hash']);
+
+ if ($hash) {
+
+ $filename = CACHE_DIR . '/images/' . $hash . '.png';
+
+ if (file_exists($filename)) {
+ /* See if we can use X-Sendfile */
+ $xsendfile = false;
+ if (function_exists('apache_get_modules') &&
+ array_search('mod_xsendfile', apache_get_modules()))
+ $xsendfile = true;
+
+ if ($xsendfile) {
+ header("X-Sendfile: $filename");
+ header("Content-type: application/octet-stream");
+ header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
+ } else {
+ header("Content-type: image/png");
+ $stamp = gmdate("D, d M Y H:i:s", filemtime($filename)). " GMT";
+ header("Last-Modified: $stamp", true);
+ readfile($filename);
+ }
+ } else {
+ header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
+ echo "File not found.";
+ }
}
+
?>
diff --git a/images/cdm_footer_tile.png b/images/cdm_footer_tile.png
deleted file mode 100644
index 4410afed9..000000000
--- a/images/cdm_footer_tile.png
+++ /dev/null
Binary files differ
diff --git a/images/close_notify.svg b/images/close_notify.svg
new file mode 100644
index 000000000..b3a17e02e
--- /dev/null
+++ b/images/close_notify.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg2985"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ sodipodi:docname="close_notify.svg">
+ <defs
+ id="defs2987" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#88b0f0"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.197802"
+ inkscape:cx="0.97227717"
+ inkscape:cy="8"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1138"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata2990">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#454545;stroke-width:0.73948608000000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path2997"
+ sodipodi:cx="6.6673269"
+ sodipodi:cy="7.1702971"
+ sodipodi:rx="5.270792"
+ sodipodi:ry="5.270792"
+ d="m 11.938119,7.1702971 a 5.270792,5.270792 0 1 1 -10.5415841,0 5.270792,5.270792 0 1 1 10.5415841,0 z"
+ transform="matrix(1.3522905,0,0,1.3522905,-1.0161629,-1.6963247)" />
+ <path
+ style="fill:none;stroke:#454545;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;opacity:1"
+ d="M 4.4322613,4.4322611 11.567739,11.567739"
+ id="path3771"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#454545;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;opacity:1"
+ d="M 11.567739,4.432261 4.432261,11.567739"
+ id="path3771-1"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/images/collapse.png b/images/collapse.png
new file mode 100644
index 000000000..5adbd5e1c
--- /dev/null
+++ b/images/collapse.png
Binary files differ
diff --git a/images/favicon-72px.png b/images/favicon-72px.png
new file mode 100644
index 000000000..421e10996
--- /dev/null
+++ b/images/favicon-72px.png
Binary files differ
diff --git a/images/favicon.png b/images/favicon.png
index 99d65e429..b2df2ebb5 100644
--- a/images/favicon.png
+++ b/images/favicon.png
Binary files differ
diff --git a/images/logo_small.png b/images/logo_small.png
new file mode 100644
index 000000000..f7f28a687
--- /dev/null
+++ b/images/logo_small.png
Binary files differ
diff --git a/images/overlay.png b/images/overlay.png
deleted file mode 100644
index be35e4453..000000000
--- a/images/overlay.png
+++ /dev/null
Binary files differ
diff --git a/images/piggie.png b/images/piggie.png
deleted file mode 100644
index 3cb7c6531..000000000
--- a/images/piggie.png
+++ /dev/null
Binary files differ
diff --git a/images/piggie_icon.png b/images/piggie_icon.png
deleted file mode 100644
index 9b5481b33..000000000
--- a/images/piggie_icon.png
+++ /dev/null
Binary files differ
diff --git a/include/autoload.php b/include/autoload.php
new file mode 100644
index 000000000..505b44477
--- /dev/null
+++ b/include/autoload.php
@@ -0,0 +1,14 @@
+<?php
+ require_once "functions.php";
+
+ function __autoload($class) {
+ $class_file = str_replace("_", "/", strtolower(basename($class)));
+
+ $file = dirname(__FILE__)."/../classes/$class_file.php";
+
+ if (file_exists($file)) {
+ require $file;
+ }
+
+ }
+?>
diff --git a/include/ccache.php b/include/ccache.php
index c53b1a08c..d89b9efe0 100644
--- a/include/ccache.php
+++ b/include/ccache.php
@@ -1,19 +1,19 @@
<?php
- /* function ccache_zero($link, $feed_id, $owner_uid) {
- db_query($link, "UPDATE ttrss_counters_cache SET
+ /* function ccache_zero($feed_id, $owner_uid) {
+ db_query("UPDATE ttrss_counters_cache SET
value = 0, updated = NOW() WHERE
feed_id = '$feed_id' AND owner_uid = '$owner_uid'");
} */
- function ccache_zero_all($link, $owner_uid) {
- db_query($link, "UPDATE ttrss_counters_cache SET
+ function ccache_zero_all($owner_uid) {
+ db_query("UPDATE ttrss_counters_cache SET
value = 0 WHERE owner_uid = '$owner_uid'");
- db_query($link, "UPDATE ttrss_cat_counters_cache SET
+ db_query("UPDATE ttrss_cat_counters_cache SET
value = 0 WHERE owner_uid = '$owner_uid'");
}
- function ccache_remove($link, $feed_id, $owner_uid, $is_cat = false) {
+ function ccache_remove($feed_id, $owner_uid, $is_cat = false) {
if (!$is_cat) {
$table = "ttrss_counters_cache";
@@ -21,39 +21,39 @@
$table = "ttrss_cat_counters_cache";
}
- db_query($link, "DELETE FROM $table WHERE
+ db_query("DELETE FROM $table WHERE
feed_id = '$feed_id' AND owner_uid = '$owner_uid'");
}
- function ccache_update_all($link, $owner_uid) {
+ function ccache_update_all($owner_uid) {
- if (get_pref($link, 'ENABLE_FEED_CATS', $owner_uid)) {
+ if (get_pref('ENABLE_FEED_CATS', $owner_uid)) {
- $result = db_query($link, "SELECT feed_id FROM ttrss_cat_counters_cache
+ $result = db_query("SELECT feed_id FROM ttrss_cat_counters_cache
WHERE feed_id > 0 AND owner_uid = '$owner_uid'");
while ($line = db_fetch_assoc($result)) {
- ccache_update($link, $line["feed_id"], $owner_uid, true);
+ ccache_update($line["feed_id"], $owner_uid, true);
}
/* We have to manually include category 0 */
- ccache_update($link, 0, $owner_uid, true);
+ ccache_update(0, $owner_uid, true);
} else {
- $result = db_query($link, "SELECT feed_id FROM ttrss_counters_cache
+ $result = db_query("SELECT feed_id FROM ttrss_counters_cache
WHERE feed_id > 0 AND owner_uid = '$owner_uid'");
while ($line = db_fetch_assoc($result)) {
- print ccache_update($link, $line["feed_id"], $owner_uid);
+ print ccache_update($line["feed_id"], $owner_uid);
}
}
}
- function ccache_find($link, $feed_id, $owner_uid, $is_cat = false,
+ function ccache_find($feed_id, $owner_uid, $is_cat = false,
$no_update = false) {
if (!is_numeric($feed_id)) return;
@@ -61,7 +61,7 @@
if (!$is_cat) {
$table = "ttrss_counters_cache";
/* if ($feed_id > 0) {
- $tmp_result = db_query($link, "SELECT owner_uid FROM ttrss_feeds
+ $tmp_result = db_query("SELECT owner_uid FROM ttrss_feeds
WHERE id = '$feed_id'");
$owner_uid = db_fetch_result($tmp_result, 0, "owner_uid");
} */
@@ -75,7 +75,7 @@
$date_qpart = "updated > DATE_SUB(NOW(), INTERVAL 15 MINUTE)";
}
- $result = db_query($link, "SELECT value FROM $table
+ $result = db_query("SELECT value FROM $table
WHERE owner_uid = '$owner_uid' AND feed_id = '$feed_id'
LIMIT 1");
@@ -85,30 +85,30 @@
if ($no_update) {
return -1;
} else {
- return ccache_update($link, $feed_id, $owner_uid, $is_cat);
+ return ccache_update($feed_id, $owner_uid, $is_cat);
}
}
}
- function ccache_update($link, $feed_id, $owner_uid, $is_cat = false,
+ function ccache_update($feed_id, $owner_uid, $is_cat = false,
$update_pcat = true) {
if (!is_numeric($feed_id)) return;
/* if (!$is_cat && $feed_id > 0) {
- $tmp_result = db_query($link, "SELECT owner_uid FROM ttrss_feeds
+ $tmp_result = db_query("SELECT owner_uid FROM ttrss_feeds
WHERE id = '$feed_id'");
$owner_uid = db_fetch_result($tmp_result, 0, "owner_uid");
} */
- $prev_unread = ccache_find($link, $feed_id, $owner_uid, $is_cat, true);
+ $prev_unread = ccache_find($feed_id, $owner_uid, $is_cat, true);
/* When updating a label, all we need to do is recalculate feed counters
* because labels are not cached */
if ($feed_id < 0) {
- ccache_update_all($link, $owner_uid);
+ ccache_update_all($owner_uid);
return;
}
@@ -127,14 +127,14 @@
/* Recalculate counters for child feeds */
- $result = db_query($link, "SELECT id FROM ttrss_feeds
+ $result = db_query("SELECT id FROM ttrss_feeds
WHERE owner_uid = '$owner_uid' AND $cat_qpart");
while ($line = db_fetch_assoc($result)) {
- ccache_update($link, $line["id"], $owner_uid, false, false);
+ ccache_update($line["id"], $owner_uid, false, false);
}
- $result = db_query($link, "SELECT SUM(value) AS sv
+ $result = db_query("SELECT SUM(value) AS sv
FROM ttrss_counters_cache, ttrss_feeds
WHERE id = feed_id AND $cat_qpart AND
ttrss_feeds.owner_uid = '$owner_uid'");
@@ -142,27 +142,27 @@
$unread = (int) db_fetch_result($result, 0, "sv");
} else {
- $unread = (int) getFeedArticles($link, $feed_id, $is_cat, true, $owner_uid);
+ $unread = (int) getFeedArticles($feed_id, $is_cat, true, $owner_uid);
}
- db_query($link, "BEGIN");
+ db_query("BEGIN");
- $result = db_query($link, "SELECT feed_id FROM $table
+ $result = db_query("SELECT feed_id FROM $table
WHERE owner_uid = '$owner_uid' AND feed_id = '$feed_id' LIMIT 1");
if (db_num_rows($result) == 1) {
- db_query($link, "UPDATE $table SET
+ db_query("UPDATE $table SET
value = '$unread', updated = NOW() WHERE
feed_id = '$feed_id' AND owner_uid = '$owner_uid'");
} else {
- db_query($link, "INSERT INTO $table
+ db_query("INSERT INTO $table
(feed_id, value, owner_uid, updated)
VALUES
($feed_id, $unread, $owner_uid, NOW())");
}
- db_query($link, "COMMIT");
+ db_query("COMMIT");
if ($feed_id > 0 && $prev_unread != $unread) {
@@ -172,36 +172,36 @@
if ($update_pcat) {
- $result = db_query($link, "SELECT cat_id FROM ttrss_feeds
+ $result = db_query("SELECT cat_id FROM ttrss_feeds
WHERE owner_uid = '$owner_uid' AND id = '$feed_id'");
$cat_id = (int) db_fetch_result($result, 0, "cat_id");
- ccache_update($link, $cat_id, $owner_uid, true);
+ ccache_update($cat_id, $owner_uid, true);
}
}
} else if ($feed_id < 0) {
- ccache_update_all($link, $owner_uid);
+ ccache_update_all($owner_uid);
}
return $unread;
}
- /* function ccache_cleanup($link, $owner_uid) {
+ /* function ccache_cleanup($owner_uid) {
if (DB_TYPE == "pgsql") {
- db_query($link, "DELETE FROM ttrss_counters_cache AS c1 WHERE
+ db_query("DELETE FROM ttrss_counters_cache AS c1 WHERE
(SELECT count(*) FROM ttrss_counters_cache AS c2
WHERE c1.feed_id = c2.feed_id AND c2.owner_uid = c1.owner_uid) > 1
AND owner_uid = '$owner_uid'");
- db_query($link, "DELETE FROM ttrss_cat_counters_cache AS c1 WHERE
+ db_query("DELETE FROM ttrss_cat_counters_cache AS c1 WHERE
(SELECT count(*) FROM ttrss_cat_counters_cache AS c2
WHERE c1.feed_id = c2.feed_id AND c2.owner_uid = c1.owner_uid) > 1
AND owner_uid = '$owner_uid'");
} else {
- db_query($link, "DELETE c1 FROM
+ db_query("DELETE c1 FROM
ttrss_counters_cache AS c1,
ttrss_counters_cache AS c2
WHERE
@@ -209,7 +209,7 @@
c1.owner_uid = c2.owner_uid AND
c1.feed_id = c2.feed_id");
- db_query($link, "DELETE c1 FROM
+ db_query("DELETE c1 FROM
ttrss_cat_counters_cache AS c1,
ttrss_cat_counters_cache AS c2
WHERE
diff --git a/include/colors.php b/include/colors.php
index d1e970728..41bf7b819 100644
--- a/include/colors.php
+++ b/include/colors.php
@@ -1,5 +1,7 @@
<?php
+require_once "lib/floIcon.php";
+
function _resolve_htmlcolor($color) {
$htmlcolors = array ("aliceblue" => "#f0f8ff",
"antiquewhite" => "#faebd7",
@@ -235,16 +237,16 @@ function rgb2hsl($arr) {
} else {
$s = $del_Max / $var_Max;
- $del_R = ( ( ( $max - $var_R ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;
- $del_G = ( ( ( $max - $var_G ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;
- $del_B = ( ( ( $max - $var_B ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;
+ $del_R = ((($var_Max - $var_R ) / 6 ) + ($del_Max / 2 ) ) / $del_Max;
+ $del_G = ((($var_Max - $var_G ) / 6 ) + ($del_Max / 2 ) ) / $del_Max;
+ $del_B = ((($var_Max - $var_B ) / 6 ) + ($del_Max / 2 ) ) / $del_Max;
if ($var_R == $var_Max) $h = $del_B - $del_G;
- else if ($var_G == $var_Max) $h = ( 1 / 3 ) + $del_R - $del_B;
- else if ($var_B == $var_Max) $h = ( 2 / 3 ) + $del_G - $del_R;
+ else if ($var_G == $var_Max) $h = (1 / 3 ) + $del_R - $del_B;
+ else if ($var_B == $var_Max) $h = (2 / 3 ) + $del_G - $del_R;
- if ($H < 0) $h++;
- if ($H > 1) $h--;
+ if ($h < 0) $h++;
+ if ($h > 1) $h--;
}
return array($h, $s, $v);
@@ -259,10 +261,10 @@ function hsl2rgb($arr) {
$r = $g = $B = $v * 255;
} else {
$var_H = $h * 6;
- $var_i = floor( $var_H );
- $var_1 = $v * ( 1 - $s );
- $var_2 = $v * ( 1 - $s * ( $var_H - $var_i ) );
- $var_3 = $v * ( 1 - $s * (1 - ( $var_H - $var_i ) ) );
+ $var_i = floor($var_H );
+ $var_1 = $v * (1 - $s );
+ $var_2 = $v * (1 - $s * ($var_H - $var_i ) );
+ $var_3 = $v * (1 - $s * (1 - ($var_H - $var_i ) ) );
if ($var_i == 0) { $var_R = $v ; $var_G = $var_3 ; $var_B = $var_1 ; }
else if ($var_i == 1) { $var_R = $var_2 ; $var_G = $v ; $var_B = $var_1 ; }
@@ -278,4 +280,62 @@ function hsl2rgb($arr) {
return array($r, $g, $B);
}
+ function colorPalette($imageFile, $numColors, $granularity = 5) {
+ $granularity = max(1, abs((int)$granularity));
+ $colors = array();
+
+ $size = @getimagesize($imageFile);
+
+ if (!defined('_DISABLE_FLOICON') && strtolower($size['mime']) == 'image/vnd.microsoft.icon') {
+ $ico = new floIcon();
+ @$ico->readICO($imageFile);
+
+ if(count($ico->images)==0)
+ return null;
+ else
+ $img = @$ico->images[count($ico->images)-1]->getImageResource();
+
+ } else {
+ $img = @imagecreatefromstring(file_get_contents($imageFile));
+ }
+
+ if (!$img) return false;
+
+ for($x = 0; $x < $size[0]; $x += $granularity) {
+ for($y = 0; $y < $size[1]; $y += $granularity) {
+ $thisColor = imagecolorat($img, $x, $y);
+ $rgb = imagecolorsforindex($img, $thisColor);
+ $red = round(round(($rgb['red'] / 0x33)) * 0x33);
+ $green = round(round(($rgb['green'] / 0x33)) * 0x33);
+ $blue = round(round(($rgb['blue'] / 0x33)) * 0x33);
+ $thisRGB = sprintf('%02X%02X%02X', $red, $green, $blue);
+ if(array_key_exists($thisRGB, $colors)) {
+ $colors[$thisRGB]++;
+ } else{
+ $colors[$thisRGB] = 1;
+ }
+ }
+ }
+
+ arsort($colors);
+ return array_slice(array_keys($colors), 0, $numColors);
+ }
+
+ function calculate_avg_color($iconFile) {
+ $palette = colorPalette($iconFile, 4, 4);
+
+ if (is_array($palette)) {
+ foreach ($palette as $p) {
+ $hsl = rgb2hsl(_color_unpack("#$p"));
+
+ if ($hsl[1] > 0.25 && $hsl[2] > 0.25 &&
+ !($hsl[0] >= 0 && $hsl[0] < 0.01 && $hsl[1] < 0.01) &&
+ !($hsl[0] >= 0 && $hsl[0] < 0.01 && $hsl[2] > 0.99)) {
+
+ return _color_pack(hsl2rgb($hsl));
+ }
+ }
+ }
+ return '';
+ }
?>
diff --git a/include/crypt.php b/include/crypt.php
new file mode 100644
index 000000000..f06483ef1
--- /dev/null
+++ b/include/crypt.php
@@ -0,0 +1,36 @@
+<?php
+ function decrypt_string($str) {
+ $pair = explode(":", $str);
+
+ if (count($pair) == 2) {
+ @$iv = base64_decode($pair[0]);
+ @$encstr = base64_decode($pair[1]);
+
+ if ($iv && $encstr) {
+ $key = hash('SHA256', FEED_CRYPT_KEY, true);
+
+ $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encstr,
+ MCRYPT_MODE_CBC, $iv);
+
+ if ($str) return rtrim($str);
+ }
+ }
+
+ return false;
+ }
+
+ function encrypt_string($str) {
+ $key = hash('SHA256', FEED_CRYPT_KEY, true);
+
+ $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,
+ MCRYPT_MODE_CBC), MCRYPT_RAND);
+
+ $encstr = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str,
+ MCRYPT_MODE_CBC, $iv);
+
+ $iv_base64 = base64_encode($iv);
+ $encstr_base64 = base64_encode($encstr);
+
+ return "$iv_base64:$encstr_base64";
+ }
+?>
diff --git a/include/db-prefs.php b/include/db-prefs.php
index 641e9d1dd..d122f3baf 100644
--- a/include/db-prefs.php
+++ b/include/db-prefs.php
@@ -1,190 +1,11 @@
<?php
- require_once "config.php";
require_once "db.php";
- if (!defined('DISABLE_SESSIONS') && !defined('PREFS_NO_CACHE')) {
- if (!$_SESSION["prefs_cache"])
- $_SESSION["prefs_cache"] = array();
+ function get_pref($pref_name, $user_id = false, $die_on_error = false) {
+ return Db_Prefs::get()->read($pref_name, $user_id, $die_on_error);
}
- function cache_prefs($link) {
- $profile = false;
-
- $user_id = $_SESSION["uid"];
- @$profile = $_SESSION["profile"];
-
- if ($profile) {
- $profile_qpart = "profile = '$profile' AND";
- } else {
- $profile_qpart = "profile IS NULL AND";
- }
-
- if (get_schema_version($link) < 63) $profile_qpart = "";
-
- $result = db_query($link, "SELECT
- value,ttrss_prefs_types.type_name as type_name,ttrss_prefs.pref_name AS pref_name
- FROM
- ttrss_user_prefs,ttrss_prefs,ttrss_prefs_types
- WHERE
- $profile_qpart
- ttrss_prefs.pref_name NOT LIKE '_MOBILE%' AND
- ttrss_prefs_types.id = type_id AND
- owner_uid = '$user_id' AND
- ttrss_user_prefs.pref_name = ttrss_prefs.pref_name");
-
- while ($line = db_fetch_assoc($result)) {
- if ($user_id == $_SESSION["uid"]) {
- $pref_name = $line["pref_name"];
-
- $_SESSION["prefs_cache"][$pref_name]["type"] = $line["type_name"];
- $_SESSION["prefs_cache"][$pref_name]["value"] = $line["value"];
- }
- }
- }
-
- function get_pref($link, $pref_name, $user_id = false, $die_on_error = false) {
-
- $pref_name = db_escape_string($pref_name);
- $prefs_cache = true;
- $profile = false;
-
- if (!$user_id) {
- $user_id = $_SESSION["uid"];
- @$profile = $_SESSION["profile"];
- } else {
- $user_id = sprintf("%d", $user_id);
- //$prefs_cache = false;
- }
-
- if ($prefs_cache && !defined('DISABLE_SESSIONS') && !defined('PREFS_NO_CACHE')) {
- if ($_SESSION["prefs_cache"] && @$_SESSION["prefs_cache"][$pref_name]) {
- $tuple = $_SESSION["prefs_cache"][$pref_name];
- return convert_pref_type($tuple["value"], $tuple["type"]);
- }
- }
-
- if ($profile) {
- $profile_qpart = "profile = '$profile' AND";
- } else {
- $profile_qpart = "profile IS NULL AND";
- }
-
- if (get_schema_version($link) < 63) $profile_qpart = "";
-
- $result = db_query($link, "SELECT
- value,ttrss_prefs_types.type_name as type_name
- FROM
- ttrss_user_prefs,ttrss_prefs,ttrss_prefs_types
- WHERE
- $profile_qpart
- ttrss_user_prefs.pref_name = '$pref_name' AND
- ttrss_prefs_types.id = type_id AND
- owner_uid = '$user_id' AND
- ttrss_user_prefs.pref_name = ttrss_prefs.pref_name");
-
- if (db_num_rows($result) > 0) {
- $value = db_fetch_result($result, 0, "value");
- $type_name = db_fetch_result($result, 0, "type_name");
-
- if (!defined('DISABLE_SESSIONS')) {
- if ($user_id == $_SESSION["uid"]) {
- $_SESSION["prefs_cache"][$pref_name]["type"] = $type_name;
- $_SESSION["prefs_cache"][$pref_name]["value"] = $value;
- }
- }
-
- return convert_pref_type($value, $type_name);
-
- } else {
- if ($die_on_error) {
- die("Fatal error, unknown preferences key: $pref_name");
- } else {
- return null;
- }
- }
- }
-
- function convert_pref_type($value, $type_name) {
- if ($type_name == "bool") {
- return $value == "true";
- } else if ($type_name == "integer") {
- return sprintf("%d", $value);
- } else {
- return $value;
- }
- }
-
- function set_pref($link, $pref_name, $value, $user_id = false, $strip_tags = true) {
- $pref_name = db_escape_string($pref_name);
- $value = db_escape_string($value, $strip_tags);
-
- if (!$user_id) {
- $user_id = $_SESSION["uid"];
- @$profile = $_SESSION["profile"];
- } else {
- $user_id = sprintf("%d", $user_id);
- $prefs_cache = false;
- }
-
- if ($profile) {
- $profile_qpart = "AND profile = '$profile'";
- } else {
- $profile_qpart = "AND profile IS NULL";
- }
-
- if (get_schema_version($link) < 63) $profile_qpart = "";
-
- $type_name = "";
- $current_value = "";
-
- if (!defined('DISABLE_SESSIONS') && !defined('PREFS_NO_CACHE')) {
- if ($_SESSION["prefs_cache"] && @$_SESSION["prefs_cache"][$pref_name]) {
- $type_name = $_SESSION["prefs_cache"][$pref_name]["type"];
- $current_value = $_SESSION["prefs_cache"][$pref_name]["value"];
- }
- }
-
- if (!$type_name) {
- $result = db_query($link, "SELECT type_name
- FROM ttrss_prefs,ttrss_prefs_types
- WHERE pref_name = '$pref_name' AND type_id = ttrss_prefs_types.id");
-
- if (db_num_rows($result) > 0)
- $type_name = db_fetch_result($result, 0, "type_name");
- } else if ($current_value == $value) {
- return;
- }
-
- if ($type_name) {
- if ($type_name == "bool") {
- if ($value == "1" || $value == "true") {
- $value = "true";
- } else {
- $value = "false";
- }
- } else if ($type_name == "integer") {
- $value = sprintf("%d", $value);
- }
-
- if ($pref_name == 'DEFAULT_ARTICLE_LIMIT' && $value == 0) {
- $value = 30;
- }
-
- if ($pref_name == 'USER_TIMEZONE' && $value == '') {
- $value = 'UTC';
- }
-
- db_query($link, "UPDATE ttrss_user_prefs SET
- value = '$value' WHERE pref_name = '$pref_name'
- $profile_qpart
- AND owner_uid = " . $_SESSION["uid"]);
-
- if (!defined('DISABLE_SESSIONS')) {
- if ($user_id == $_SESSION["uid"]) {
- $_SESSION["prefs_cache"][$pref_name]["type"] = $type_name;
- $_SESSION["prefs_cache"][$pref_name]["value"] = $value;
- }
- }
- }
+ function set_pref($pref_name, $value, $user_id = false, $strip_tags = true) {
+ return Db_Prefs::get()->write($pref_name, $value, $user_id, $strip_tags);
}
?>
diff --git a/include/db.php b/include/db.php
index f1a7af363..55d1d654e 100644
--- a/include/db.php
+++ b/include/db.php
@@ -1,138 +1,36 @@
<?php
-require_once "config.php";
-
-function db_connect($host, $user, $pass, $db) {
- if (DB_TYPE == "pgsql") {
-
- $string = "dbname=$db user=$user";
-
- if ($pass) {
- $string .= " password=$pass";
- }
-
- if ($host) {
- $string .= " host=$host";
- }
-
- if (defined('DB_PORT')) {
- $string = "$string port=" . DB_PORT;
- }
-
- $link = pg_connect($string);
-
- if (!$link) {
- die("Unable to connect to database (as $user to $host, database $db):" . pg_last_error());
- }
-
- return $link;
-
- } else if (DB_TYPE == "mysql") {
- $link = mysql_connect($host, $user, $pass);
- if ($link) {
- $result = mysql_select_db($db, $link);
- if (!$result) {
- die("Can't select DB: " . mysql_error($link));
- }
- return $link;
- } else {
- die("Unable to connect to database (as $user to $host, database $db): " . mysql_error());
- }
- }
-}
-
function db_escape_string($s, $strip_tags = true) {
- if ($strip_tags) $s = strip_tags($s);
-
- if (DB_TYPE == "pgsql") {
- return pg_escape_string($s);
- } else {
- return mysql_real_escape_string($s);
- }
+ return Db::get()->escape_string($s, $strip_tags);
}
-function db_query($link, $query, $die_on_error = true) {
- if (DB_TYPE == "pgsql") {
- $result = pg_query($link, $query);
- if (!$result) {
- $query = htmlspecialchars($query); // just in case
- if ($die_on_error) {
- die("Query <i>$query</i> failed [$result]: " . ($link ? pg_last_error($link) : "No connection"));
- }
- }
- return $result;
- } else if (DB_TYPE == "mysql") {
- $result = mysql_query($query, $link);
- if (!$result) {
- $query = htmlspecialchars($query);
- if ($die_on_error) {
- die("Query <i>$query</i> failed: " . ($link ? mysql_error($link) : "No connection"));
- }
- }
- return $result;
- }
+function db_query($query, $die_on_error = true) {
+ return Db::get()->query($query, $die_on_error);
}
function db_fetch_assoc($result) {
- if (DB_TYPE == "pgsql") {
- return pg_fetch_assoc($result);
- } else if (DB_TYPE == "mysql") {
- return mysql_fetch_assoc($result);
- }
+ return Db::get()->fetch_assoc($result);
}
function db_num_rows($result) {
- if (DB_TYPE == "pgsql") {
- return pg_num_rows($result);
- } else if (DB_TYPE == "mysql") {
- return mysql_num_rows($result);
- }
+ return Db::get()->num_rows($result);
}
function db_fetch_result($result, $row, $param) {
- if (DB_TYPE == "pgsql") {
- return pg_fetch_result($result, $row, $param);
- } else if (DB_TYPE == "mysql") {
- // I hate incoherent naming of PHP functions
- return mysql_result($result, $row, $param);
- }
-}
-
-function db_unescape_string($str) {
- $tmp = str_replace("\\\"", "\"", $str);
- $tmp = str_replace("\\'", "'", $tmp);
- return $tmp;
-}
-
-function db_close($link) {
- if (DB_TYPE == "pgsql") {
-
- return pg_close($link);
-
- } else if (DB_TYPE == "mysql") {
- return mysql_close($link);
- }
+ return Db::get()->fetch_result($result, $row, $param);
}
-function db_affected_rows($link, $result) {
- if (DB_TYPE == "pgsql") {
- return pg_affected_rows($result);
- } else if (DB_TYPE == "mysql") {
- return mysql_affected_rows($link);
- }
+function db_affected_rows($result) {
+ return Db::get()->affected_rows($result);
}
-function db_last_error($link) {
- if (DB_TYPE == "pgsql") {
- return pg_last_error($link);
- } else if (DB_TYPE == "mysql") {
- return mysql_error($link);
- }
+function db_last_error() {
+ return Db::get()->last_error();
}
function db_quote($str){
- return("'$str'");
+ return Db::get()->quote($str);
}
?>
diff --git a/include/digest.php b/include/digest.php
index 93ce373a2..965fd1a79 100644
--- a/include/digest.php
+++ b/include/digest.php
@@ -6,9 +6,9 @@
* @param integer $limit The maximum number of articles by digest.
* @return boolean Return false if digests are not enabled.
*/
- function send_headlines_digests($link, $debug = false) {
+ function send_headlines_digests($debug = false) {
- require_once 'lib/phpmailer/class.phpmailer.php';
+ require_once 'classes/ttrssmailer.php';
$user_limit = 15; // amount of users to process (e.g. emails to send out)
$limit = 1000; // maximum amount of headlines to include
@@ -21,28 +21,28 @@
$interval_query = "last_digest_sent < DATE_SUB(NOW(), INTERVAL 1 DAY)";
}
- $result = db_query($link, "SELECT id,email FROM ttrss_users
+ $result = db_query("SELECT id,email FROM ttrss_users
WHERE email != '' AND (last_digest_sent IS NULL OR $interval_query)");
while ($line = db_fetch_assoc($result)) {
- if (get_pref($link, 'DIGEST_ENABLE', $line['id'], false)) {
- $preferred_ts = strtotime(get_pref($link, 'DIGEST_PREFERRED_TIME', $line['id'], '00:00'));
+ if (get_pref('DIGEST_ENABLE', $line['id'], false)) {
+ $preferred_ts = strtotime(get_pref('DIGEST_PREFERRED_TIME', $line['id'], '00:00'));
// try to send digests within 2 hours of preferred time
if ($preferred_ts && time() >= $preferred_ts &&
time() - $preferred_ts <= 7200) {
- if ($debug) print "Sending digest for UID:" . $line['id'] . " - " . $line["email"] . " ... ";
+ if ($debug) _debug("Sending digest for UID:" . $line['id'] . " - " . $line["email"]);
- $do_catchup = get_pref($link, 'DIGEST_CATCHUP', $line['id'], false);
+ $do_catchup = get_pref('DIGEST_CATCHUP', $line['id'], false);
global $tz_offset;
// reset tz_offset global to prevent tz cache clash between users
$tz_offset = -1;
- $tuple = prepare_headlines_digest($link, $line["id"], 1, $limit);
+ $tuple = prepare_headlines_digest($line["id"], 1, $limit);
$digest = $tuple[0];
$headlines_count = $tuple[1];
$affected_ids = $tuple[2];
@@ -50,45 +50,23 @@
if ($headlines_count > 0) {
- $mail = new PHPMailer();
+ $mail = new ttrssMailer();
- $mail->PluginDir = "lib/phpmailer/";
- $mail->SetLanguage("en", "lib/phpmailer/language/");
+ $rc = $mail->quickMail($line["email"], $line["login"] , DIGEST_SUBJECT, $digest, $digest_text);
- $mail->CharSet = "UTF-8";
+ if (!$rc && $debug) _debug("ERROR: " . $mail->ErrorInfo);
- $mail->From = SMTP_FROM_ADDRESS;
- $mail->FromName = SMTP_FROM_NAME;
- $mail->AddAddress($line["email"], $line["login"]);
-
- if (SMTP_HOST) {
- $mail->Host = SMTP_HOST;
- $mail->Mailer = "smtp";
- $mail->SMTPAuth = SMTP_LOGIN != '';
- $mail->Username = SMTP_LOGIN;
- $mail->Password = SMTP_PASSWORD;
- }
-
- $mail->IsHTML(true);
- $mail->Subject = DIGEST_SUBJECT;
- $mail->Body = $digest;
- $mail->AltBody = $digest_text;
-
- $rc = $mail->Send();
-
- if (!$rc && $debug) print "ERROR: " . $mail->ErrorInfo;
-
- if ($debug) print "RC=$rc\n";
+ if ($debug) _debug("RC=$rc");
if ($rc && $do_catchup) {
- if ($debug) print "Marking affected articles as read...\n";
- catchupArticlesById($link, $affected_ids, 0, $line["id"]);
+ if ($debug) _debug("Marking affected articles as read...");
+ catchupArticlesById($affected_ids, 0, $line["id"]);
}
} else {
- if ($debug) print "No headlines\n";
+ if ($debug) _debug("No headlines");
}
- db_query($link, "UPDATE ttrss_users SET last_digest_sent = NOW()
+ db_query("UPDATE ttrss_users SET last_digest_sent = NOW()
WHERE id = " . $line["id"]);
}
@@ -99,7 +77,7 @@
}
- function prepare_headlines_digest($link, $user_id, $days = 1, $limit = 1000) {
+ function prepare_headlines_digest($user_id, $days = 1, $limit = 1000) {
require_once "lib/MiniTemplator.class.php";
@@ -109,7 +87,7 @@
$tpl->readTemplateFromFile("templates/digest_template_html.txt");
$tpl_t->readTemplateFromFile("templates/digest_template.txt");
- $user_tz_string = get_pref($link, 'USER_TIMEZONE', $user_id);
+ $user_tz_string = get_pref('USER_TIMEZONE', $user_id);
$local_ts = convert_timestamp(time(), 'UTC', $user_tz_string);
$tpl->setVariable('CUR_DATE', date('Y/m/d', $local_ts));
@@ -126,7 +104,7 @@
$interval_query = "ttrss_entries.date_updated > DATE_SUB(NOW(), INTERVAL $days DAY)";
}
- $result = db_query($link, "SELECT ttrss_entries.title,
+ $result = db_query("SELECT ttrss_entries.title,
ttrss_feeds.title AS feed_title,
COALESCE(ttrss_feed_categories.title, '".__('Uncategorized')."') AS cat_title,
date_updated,
@@ -165,7 +143,7 @@
array_push($affected_ids, $line["ref_id"]);
- $updated = make_local_datetime($link, $line['last_updated'], false,
+ $updated = make_local_datetime($line['last_updated'], false,
$user_id);
/* if ($line["score"] != 0) {
@@ -174,7 +152,7 @@
$line["title"] .= " (".$line['score'].")";
} */
- if (get_pref($link, 'ENABLE_FEED_CATS', $user_id)) {
+ if (get_pref('ENABLE_FEED_CATS', $user_id)) {
$line['feed_title'] = $line['cat_title'] . " / " . $line['feed_title'];
}
diff --git a/include/errorhandler.php b/include/errorhandler.php
new file mode 100644
index 000000000..52431c2de
--- /dev/null
+++ b/include/errorhandler.php
@@ -0,0 +1,39 @@
+<?php
+function ttrss_error_handler($errno, $errstr, $file, $line, $context) {
+ global $logger;
+
+ if (error_reporting() == 0 || !$errno) return false;
+
+ $file = substr(str_replace(dirname(dirname(__FILE__)), "", $file), 1);
+
+ if (class_exists("Logger"))
+ return Logger::get()->log_error($errno, $errstr, $file, $line, $context);
+}
+
+function ttrss_fatal_handler() {
+ global $logger;
+
+ $error = error_get_last();
+
+ if ($error !== NULL) {
+ $errno = $error["type"];
+ $file = $error["file"];
+ $line = $error["line"];
+ $errstr = $error["message"];
+
+ if (!$errno) return false;
+
+ $context = debug_backtrace();
+
+ $file = substr(str_replace(dirname(dirname(__FILE__)), "", $file), 1);
+
+ if (class_exists("Logger"))
+ return Logger::get()->log_error($errno, $errstr, $file, $line, $context);
+ }
+
+ return false;
+}
+
+register_shutdown_function('ttrss_fatal_handler');
+set_error_handler('ttrss_error_handler');
+?>
diff --git a/include/feedbrowser.php b/include/feedbrowser.php
index 5b33fb73c..6c245121f 100644
--- a/include/feedbrowser.php
+++ b/include/feedbrowser.php
@@ -1,5 +1,5 @@
<?php
- function make_feed_browser($link, $search, $limit, $mode = 1) {
+ function make_feed_browser($search, $limit, $mode = 1) {
$owner_uid = $_SESSION["uid"];
$rv = '';
@@ -12,13 +12,13 @@
}
if ($mode == 1) {
- /* $result = db_query($link, "SELECT feed_url, subscribers FROM
+ /* $result = db_query("SELECT feed_url, subscribers FROM
ttrss_feedbrowser_cache WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
WHERE tf.feed_url = ttrss_feedbrowser_cache.feed_url
AND owner_uid = '$owner_uid') $search_qpart
ORDER BY subscribers DESC LIMIT $limit"); */
- $result = db_query($link, "SELECT feed_url, site_url, title, SUM(subscribers) AS subscribers FROM
+ $result = db_query("SELECT feed_url, site_url, title, SUM(subscribers) AS subscribers FROM
(SELECT feed_url, site_url, title, subscribers FROM ttrss_feedbrowser_cache UNION ALL
SELECT feed_url, site_url, title, subscribers FROM ttrss_linked_feeds) AS qqq
WHERE
@@ -28,7 +28,7 @@
GROUP BY feed_url, site_url, title ORDER BY subscribers DESC LIMIT $limit");
} else if ($mode == 2) {
- $result = db_query($link, "SELECT *,
+ $result = db_query("SELECT *,
(SELECT COUNT(*) FROM ttrss_user_entries WHERE
orig_feed_id = ttrss_archived_feeds.id) AS articles_archived
FROM
@@ -80,7 +80,7 @@
$class = ($feedctr % 2) ? "even" : "odd";
if ($line['articles_archived'] > 0) {
- $archived = sprintf(__("%d archived articles"), $line['articles_archived']);
+ $archived = sprintf(ngettext("%d archived article", "%d archived articles", $line['articles_archived']), $line['articles_archived']);
$archived = "&nbsp;<span class='subscribers'>($archived)</span>";
} else {
$archived = '';
diff --git a/include/functions.php b/include/functions.php
index f17828d1d..149809a35 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -1,20 +1,16 @@
<?php
define('EXPECTED_CONFIG_VERSION', 26);
- define('SCHEMA_VERSION', 104);
+ define('SCHEMA_VERSION', 120);
- $fetch_last_error = false;
- $pluginhost = false;
-
- function __autoload($class) {
- $class_file = str_replace("_", "/", strtolower(basename($class)));
-
- $file = dirname(__FILE__)."/../classes/$class_file.php";
+ define('LABEL_BASE_INDEX', -1024);
+ define('PLUGIN_FEED_BASE_INDEX', -128);
- if (file_exists($file)) {
- require $file;
- }
+ define('COOKIE_LIFETIME_LONG', 86400*365);
- }
+ $fetch_last_error = false;
+ $fetch_last_error_code = false;
+ $fetch_last_content_type = false;
+ $fetch_curl_used = false;
mb_internal_encoding("UTF-8");
date_default_timezone_set('UTC');
@@ -26,14 +22,37 @@
require_once 'config.php';
+ /**
+ * Define a constant if not already defined
+ *
+ * @param string $name The constant name.
+ * @param mixed $value The constant value.
+ * @access public
+ * @return boolean True if defined successfully or not.
+ */
+ function define_default($name, $value) {
+ defined($name) or define($name, $value);
+ }
+
+ ///// Some defaults that you can override in config.php //////
+
+ define_default('FEED_FETCH_TIMEOUT', 45);
+ // How may seconds to wait for response when requesting feed from a site
+ define_default('FEED_FETCH_NO_CACHE_TIMEOUT', 15);
+ // How may seconds to wait for response when requesting feed from a
+ // site when that feed wasn't cached before
+ define_default('FILE_FETCH_TIMEOUT', 45);
+ // Default timeout when fetching files from remote sites
+ define_default('FILE_FETCH_CONNECT_TIMEOUT', 15);
+ // How many seconds to wait for initial response from website when
+ // fetching files from remote sites
+
if (DB_TYPE == "pgsql") {
define('SUBSTRING_FOR_DATE', 'SUBSTRING_FOR_DATE');
} else {
define('SUBSTRING_FOR_DATE', 'SUBSTRING');
}
- define('THEME_VERSION_REQUIRED', 1.1);
-
/**
* Return available translations names.
*
@@ -44,6 +63,7 @@
$tr = array(
"auto" => "Detect automatically",
"ca_CA" => "Català",
+ "cs_CZ" => "Česky",
"en_US" => "English",
"es_ES" => "Español",
"de_DE" => "Deutsch",
@@ -51,11 +71,15 @@
"hu_HU" => "Magyar (Hungarian)",
"it_IT" => "Italiano",
"ja_JP" => "日本語 (Japanese)",
+ "lv_LV" => "Latviešu",
"nb_NO" => "Norwegian bokmål",
+ "nl_NL" => "Dutch",
"pl_PL" => "Polski",
"ru_RU" => "Русский",
"pt_BR" => "Portuguese/Brazil",
- "zh_CN" => "Simplified Chinese");
+ "zh_CN" => "Simplified Chinese",
+ "sv_SE" => "Svenska",
+ "fi_FI" => "Suomi");
return $tr;
}
@@ -73,11 +97,12 @@
$lang = _TRANSLATION_OVERRIDE_DEFAULT;
}
- /* In login action of mobile version */
- if ($_POST["language"] && defined('MOBILE_VERSION')) {
- $lang = $_POST["language"];
- } else if ($_SESSION["language"] && $_SESSION["language"] != "auto") {
- $lang = $_SESSION["language"];
+ if ($_SESSION["uid"] && get_schema_version() >= 120) {
+ $pref_lang = get_pref("USER_LANGUAGE", $_SESSION["uid"]);
+
+ if ($pref_lang) {
+ $lang = $pref_lang;
+ }
}
if ($lang) {
@@ -87,19 +112,13 @@
_setlocale(LC_ALL, $lang);
}
- if (defined('MOBILE_VERSION')) {
- _bindtextdomain("messages", "../locale");
- } else {
- _bindtextdomain("messages", "locale");
- }
+ _bindtextdomain("messages", "locale");
_textdomain("messages");
_bind_textdomain_codeset("messages", "UTF-8");
}
}
- startup_gettext();
-
require_once 'db-prefs.php';
require_once 'version.php';
require_once 'ccache.php';
@@ -109,10 +128,7 @@
ini_set('user_agent', SELF_USER_AGENT);
require_once 'lib/pubsubhubbub/publisher.php';
- require_once 'lib/htmLawed.php';
- $tz_offset = -1;
- $utc_tz = new DateTimeZone('UTC');
$schema_version = false;
/**
@@ -121,15 +137,26 @@
* @param string $msg The debug message.
* @return void
*/
- function _debug($msg) {
- if (defined('QUIET') && QUIET) {
- return;
- }
+ function _debug($msg, $show = true) {
+
$ts = strftime("%H:%M:%S", time());
if (function_exists('posix_getpid')) {
$ts = "$ts/" . posix_getpid();
}
- print "[$ts] $msg\n";
+
+ if ($show && !(defined('QUIET') && QUIET)) {
+ print "[$ts] $msg\n";
+ }
+
+ if (defined('LOGFILE')) {
+ $fp = fopen(LOGFILE, 'a+');
+
+ if ($fp) {
+ fputs($fp, "[$ts] $msg\n");
+ fclose($fp);
+ }
+ }
+
} // function _debug
/**
@@ -142,13 +169,13 @@
* @access public
* @return void
*/
- function purge_feed($link, $feed_id, $purge_interval, $debug = false) {
+ function purge_feed($feed_id, $purge_interval, $debug = false) {
- if (!$purge_interval) $purge_interval = feed_purge_interval($link, $feed_id);
+ if (!$purge_interval) $purge_interval = feed_purge_interval($feed_id);
$rows = -1;
- $result = db_query($link,
+ $result = db_query(
"SELECT owner_uid FROM ttrss_feeds WHERE id = '$feed_id'");
$owner_uid = false;
@@ -159,7 +186,7 @@
if ($purge_interval == -1 || !$purge_interval) {
if ($owner_uid) {
- ccache_update($link, $feed_id, $owner_uid);
+ ccache_update($feed_id, $owner_uid);
}
return;
}
@@ -167,7 +194,7 @@
if (!$owner_uid) return;
if (FORCE_ARTICLE_PURGE == 0) {
- $purge_unread = get_pref($link, "PURGE_UNREAD_ARTICLES",
+ $purge_unread = get_pref("PURGE_UNREAD_ARTICLES",
$owner_uid, false);
} else {
$purge_unread = true;
@@ -177,11 +204,11 @@
if (!$purge_unread) $query_limit = " unread = false AND ";
if (DB_TYPE == "pgsql") {
- $pg_version = get_pgsql_version($link);
+ $pg_version = get_pgsql_version();
if (preg_match("/^7\./", $pg_version) || preg_match("/^8\.0/", $pg_version)) {
- $result = db_query($link, "DELETE FROM ttrss_user_entries WHERE
+ $result = db_query("DELETE FROM ttrss_user_entries WHERE
ttrss_entries.id = ref_id AND
marked = false AND
feed_id = '$feed_id' AND
@@ -190,7 +217,7 @@
} else {
- $result = db_query($link, "DELETE FROM ttrss_user_entries
+ $result = db_query("DELETE FROM ttrss_user_entries
USING ttrss_entries
WHERE ttrss_entries.id = ref_id AND
marked = false AND
@@ -199,28 +226,25 @@
ttrss_entries.date_updated < NOW() - INTERVAL '$purge_interval days'");
}
- $rows = pg_affected_rows($result);
-
} else {
-/* $result = db_query($link, "DELETE FROM ttrss_user_entries WHERE
+/* $result = db_query("DELETE FROM ttrss_user_entries WHERE
marked = false AND feed_id = '$feed_id' AND
(SELECT date_updated FROM ttrss_entries WHERE
id = ref_id) < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)"); */
- $result = db_query($link, "DELETE FROM ttrss_user_entries
+ $result = db_query("DELETE FROM ttrss_user_entries
USING ttrss_user_entries, ttrss_entries
WHERE ttrss_entries.id = ref_id AND
marked = false AND
feed_id = '$feed_id' AND
$query_limit
ttrss_entries.date_updated < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)");
-
- $rows = mysql_affected_rows($link);
-
}
- ccache_update($link, $feed_id, $owner_uid);
+ $rows = db_affected_rows($result);
+
+ ccache_update($feed_id, $owner_uid);
if ($debug) {
_debug("Purged feed $feed_id ($purge_interval): deleted $rows articles");
@@ -229,16 +253,16 @@
return $rows;
} // function purge_feed
- function feed_purge_interval($link, $feed_id) {
+ function feed_purge_interval($feed_id) {
- $result = db_query($link, "SELECT purge_interval, owner_uid FROM ttrss_feeds
+ $result = db_query("SELECT purge_interval, owner_uid FROM ttrss_feeds
WHERE id = '$feed_id'");
if (db_num_rows($result) == 1) {
$purge_interval = db_fetch_result($result, 0, "purge_interval");
$owner_uid = db_fetch_result($result, 0, "owner_uid");
- if ($purge_interval == 0) $purge_interval = get_pref($link,
+ if ($purge_interval == 0) $purge_interval = get_pref(
'PURGE_OLD_DAYS', $owner_uid);
return $purge_interval;
@@ -248,20 +272,20 @@
}
}
- function purge_orphans($link, $do_output = false) {
+ function purge_orphans($do_output = false) {
// purge orphaned posts in main content table
- $result = db_query($link, "DELETE FROM ttrss_entries WHERE
+ $result = db_query("DELETE FROM ttrss_entries WHERE
(SELECT COUNT(int_id) FROM ttrss_user_entries WHERE ref_id = id) = 0");
if ($do_output) {
- $rows = db_affected_rows($link, $result);
+ $rows = db_affected_rows($result);
_debug("Purged $rows orphaned posts.");
}
}
- function get_feed_update_interval($link, $feed_id) {
- $result = db_query($link, "SELECT owner_uid, update_interval FROM
+ function get_feed_update_interval($feed_id) {
+ $result = db_query("SELECT owner_uid, update_interval FROM
ttrss_feeds WHERE id = '$feed_id'");
if (db_num_rows($result) == 1) {
@@ -271,7 +295,7 @@
if ($update_interval != 0) {
return $update_interval;
} else {
- return get_pref($link, 'DEFAULT_UPDATE_INTERVAL', $owner_uid, false);
+ return get_pref('DEFAULT_UPDATE_INTERVAL', $owner_uid, false);
}
} else {
@@ -279,25 +303,40 @@
}
}
- function fetch_file_contents($url, $type = false, $login = false, $pass = false, $post_query = false, $timeout = false) {
- $login = urlencode($login);
- $pass = urlencode($pass);
+ function fetch_file_contents($url, $type = false, $login = false, $pass = false, $post_query = false, $timeout = false, $timestamp = 0) {
global $fetch_last_error;
+ global $fetch_last_error_code;
+ global $fetch_last_content_type;
+ global $fetch_curl_used;
+
+ $url = str_replace(' ', '%20', $url);
- if (function_exists('curl_init') && !ini_get("open_basedir")) {
- $ch = curl_init($url);
+ if (!defined('NO_CURL') && function_exists('curl_init')) {
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout ? $timeout : 15);
- curl_setopt($ch, CURLOPT_TIMEOUT, $timeout ? $timeout : 45);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
+ $fetch_curl_used = true;
+
+ if (ini_get("safe_mode") || ini_get("open_basedir")) {
+ $ch = curl_init(geturl($url));
+ } else {
+ $ch = curl_init($url);
+ }
+
+ if ($timestamp && !$post_query) {
+ curl_setopt($ch, CURLOPT_HTTPHEADER,
+ array("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T', $timestamp)));
+ }
+
+ curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout ? $timeout : FILE_FETCH_CONNECT_TIMEOUT);
+ curl_setopt($ch, CURLOPT_TIMEOUT, $timeout ? $timeout : FILE_FETCH_TIMEOUT);
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, !ini_get("safe_mode") && !ini_get("open_basedir"));
curl_setopt($ch, CURLOPT_MAXREDIRS, 20);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERAGENT, SELF_USER_AGENT);
- curl_setopt($ch, CURLOPT_ENCODING , "gzip");
+ curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_REFERER, $url);
if ($post_query) {
@@ -322,9 +361,11 @@
}
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- $content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
+ $fetch_last_content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
- if ($http_code != 200 || $type && strpos($content_type, "$type") === false) {
+ $fetch_last_error_code = $http_code;
+
+ if ($http_code != 200 || $type && strpos($fetch_last_content_type, "$type") === false) {
if (curl_errno($ch) != 0) {
$fetch_last_error = curl_errno($ch) . " " . curl_error($ch);
} else {
@@ -338,21 +379,58 @@
return $contents;
} else {
- if ($login && $pass ){
+
+ $fetch_curl_used = false;
+
+ if ($login && $pass){
$url_parts = array();
preg_match("/(^[^:]*):\/\/(.*)/", $url, $url_parts);
+ $pass = urlencode($pass);
+
if ($url_parts[1] && $url_parts[2]) {
$url = $url_parts[1] . "://$login:$pass@" . $url_parts[2];
}
}
- $data = @file_get_contents($url);
+ if (!$post_query && $timestamp) {
+ $context = stream_context_create(array(
+ 'http' => array(
+ 'method' => 'GET',
+ 'header' => "If-Modified-Since: ".gmdate("D, d M Y H:i:s \\G\\M\\T\r\n", $timestamp)
+ )));
+ } else {
+ $context = NULL;
+ }
+
+ $old_error = error_get_last();
+
+ $data = @file_get_contents($url, false, $context);
+
+ $fetch_last_content_type = false; // reset if no type was sent from server
+ if (isset($http_response_header) && is_array($http_response_header)) {
+ foreach ($http_response_header as $h) {
+ if (substr(strtolower($h), 0, 13) == 'content-type:') {
+ $fetch_last_content_type = substr($h, 14);
+ // don't abort here b/c there might be more than one
+ // e.g. if we were being redirected -- last one is the right one
+ }
+
+ if (substr(strtolower($h), 0, 7) == 'http/1.') {
+ $fetch_last_error_code = (int) substr($h, 9, 3);
+ }
+ }
+ }
- if (!$data && function_exists('error_get_last')) {
+ if (!$data) {
$error = error_get_last();
- $fetch_last_error = $error["message"];
+
+ if ($error['message'] != $old_error['message']) {
+ $fetch_last_error = $error["message"];
+ } else {
+ $fetch_last_error = "HTTP Code: $fetch_last_error_code";
+ }
}
return $data;
}
@@ -401,7 +479,7 @@
return $favicon_url;
} // function get_favicon_url
- function check_feed_favicon($site_url, $feed, $link) {
+ function check_feed_favicon($site_url, $feed) {
# print "FAVICON [$site_url]: $favicon_url\n";
$icon_file = ICONS_DIR . "/$feed.ico";
@@ -448,6 +526,7 @@
}
}
}
+ return $icon_file;
}
}
@@ -459,6 +538,8 @@
else
$sel = "";
+ $v = trim($v);
+
print "<option value=\"$v\" $sel>$v</option>";
}
print "</select>";
@@ -472,6 +553,8 @@
else
$sel = "";
+ $v = trim($v);
+
print "<option $sel value=\"$v\">".$values[$v]."</option>";
}
@@ -498,7 +581,7 @@
}
}
- function initialize_user_prefs($link, $uid, $profile = false) {
+ function initialize_user_prefs($uid, $profile = false) {
$uid = db_escape_string($uid);
@@ -509,13 +592,13 @@
$profile_qpart = "AND profile = '$profile'";
}
- if (get_schema_version($link) < 63) $profile_qpart = "";
+ if (get_schema_version() < 63) $profile_qpart = "";
- db_query($link, "BEGIN");
+ db_query("BEGIN");
- $result = db_query($link, "SELECT pref_name,def_value FROM ttrss_prefs");
+ $result = db_query("SELECT pref_name,def_value FROM ttrss_prefs");
- $u_result = db_query($link, "SELECT pref_name
+ $u_result = db_query("SELECT pref_name
FROM ttrss_user_prefs WHERE owner_uid = '$uid' $profile_qpart");
$active_prefs = array();
@@ -528,13 +611,16 @@
if (array_search($line["pref_name"], $active_prefs) === FALSE) {
// print "adding " . $line["pref_name"] . "<br>";
- if (get_schema_version($link) < 63) {
- db_query($link, "INSERT INTO ttrss_user_prefs
+ $line["def_value"] = db_escape_string($line["def_value"]);
+ $line["pref_name"] = db_escape_string($line["pref_name"]);
+
+ if (get_schema_version() < 63) {
+ db_query("INSERT INTO ttrss_user_prefs
(owner_uid,pref_name,value) VALUES
('$uid', '".$line["pref_name"]."','".$line["def_value"]."')");
} else {
- db_query($link, "INSERT INTO ttrss_user_prefs
+ db_query("INSERT INTO ttrss_user_prefs
(owner_uid,pref_name,value, profile) VALUES
('$uid', '".$line["pref_name"]."','".$line["def_value"]."', $profile)");
}
@@ -542,7 +628,7 @@
}
}
- db_query($link, "COMMIT");
+ db_query("COMMIT");
}
@@ -556,14 +642,12 @@
return "";
}
- function authenticate_user($link, $login, $password, $check_only = false) {
+ function authenticate_user($login, $password, $check_only = false) {
if (!SINGLE_USER_MODE) {
-
$user_id = false;
- global $pluginhost;
- foreach ($pluginhost->get_hooks($pluginhost::HOOK_AUTH_USER) as $plugin) {
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_AUTH_USER) as $plugin) {
$user_id = (int) $plugin->authenticate($login, $password);
@@ -574,24 +658,28 @@
}
if ($user_id && !$check_only) {
+ @session_start();
+
$_SESSION["uid"] = $user_id;
+ $_SESSION["version"] = VERSION_STATIC;
- $result = db_query($link, "SELECT login,access_level,pwd_hash FROM ttrss_users
+ $result = db_query("SELECT login,access_level,pwd_hash FROM ttrss_users
WHERE id = '$user_id'");
$_SESSION["name"] = db_fetch_result($result, 0, "login");
$_SESSION["access_level"] = db_fetch_result($result, 0, "access_level");
$_SESSION["csrf_token"] = sha1(uniqid(rand(), true));
- db_query($link, "UPDATE ttrss_users SET last_login = NOW() WHERE id = " .
+ db_query("UPDATE ttrss_users SET last_login = NOW() WHERE id = " .
$_SESSION["uid"]);
$_SESSION["ip_address"] = $_SERVER["REMOTE_ADDR"];
+ $_SESSION["user_agent"] = sha1($_SERVER['HTTP_USER_AGENT']);
$_SESSION["pwd_hash"] = db_fetch_result($result, 0, "pwd_hash");
$_SESSION["last_version_check"] = time();
- initialize_user_prefs($link, $_SESSION["uid"]);
+ initialize_user_prefs($_SESSION["uid"]);
return true;
}
@@ -615,7 +703,7 @@
$_SESSION["ip_address"] = $_SERVER["REMOTE_ADDR"];
- initialize_user_prefs($link, $_SESSION["uid"]);
+ initialize_user_prefs($_SESSION["uid"]);
return true;
}
@@ -644,13 +732,13 @@
// user preferences are checked on every login, not here
- function initialize_user($link, $uid) {
+ function initialize_user($uid) {
- db_query($link, "insert into ttrss_feeds (owner_uid,title,feed_url)
+ db_query("insert into ttrss_feeds (owner_uid,title,feed_url)
values ('$uid', 'Tiny Tiny RSS: New Releases',
'http://tt-rss.org/releases.rss')");
- db_query($link, "insert into ttrss_feeds (owner_uid,title,feed_url)
+ db_query("insert into ttrss_feeds (owner_uid,title,feed_url)
values ('$uid', 'Tiny Tiny RSS: Forum',
'http://tt-rss.org/forum/rss.php')");
}
@@ -666,103 +754,67 @@
return $csrf_token == $_SESSION['csrf_token'];
}
- function validate_session($link) {
- if (SINGLE_USER_MODE) return true;
-
- $check_ip = $_SESSION['ip_address'];
-
- switch (SESSION_CHECK_ADDRESS) {
- case 0:
- $check_ip = '';
- break;
- case 1:
- $check_ip = substr($check_ip, 0, strrpos($check_ip, '.')+1);
- break;
- case 2:
- $check_ip = substr($check_ip, 0, strrpos($check_ip, '.'));
- $check_ip = substr($check_ip, 0, strrpos($check_ip, '.')+1);
- break;
- };
-
- if ($check_ip && strpos($_SERVER['REMOTE_ADDR'], $check_ip) !== 0) {
- $_SESSION["login_error_msg"] =
- __("Session failed to validate (incorrect IP)");
- return false;
- }
-
- if ($_SESSION["ref_schema_version"] != get_schema_version($link, true))
- return false;
-
- if ($_SESSION["uid"]) {
-
- $result = db_query($link,
- "SELECT pwd_hash FROM ttrss_users WHERE id = '".$_SESSION["uid"]."'");
-
- $pwd_hash = db_fetch_result($result, 0, "pwd_hash");
-
- if ($pwd_hash != $_SESSION["pwd_hash"]) {
- return false;
- }
- }
-
-/* if ($_SESSION["cookie_lifetime"] && $_SESSION["uid"]) {
-
- //print_r($_SESSION);
-
- if (time() > $_SESSION["cookie_lifetime"]) {
- return false;
- }
- } */
-
- return true;
- }
-
- function load_user_plugins($link, $owner_uid) {
+ function load_user_plugins($owner_uid) {
if ($owner_uid) {
- $plugins = get_pref($link, "_ENABLED_PLUGINS", $owner_uid);
+ $plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
- global $pluginhost;
- $pluginhost->load($plugins, $pluginhost::KIND_USER, $owner_uid);
+ PluginHost::getInstance()->load($plugins, PluginHost::KIND_USER, $owner_uid);
- if (get_schema_version($link) > 100) {
- $pluginhost->load_data();
+ if (get_schema_version() > 100) {
+ PluginHost::getInstance()->load_data();
}
}
}
- function login_sequence($link, $login_form = 0) {
- $_SESSION["prefs_cache"] = false;
-
+ function login_sequence() {
if (SINGLE_USER_MODE) {
- authenticate_user($link, "admin", null);
- cache_prefs($link);
- load_user_plugins($link, $_SESSION["uid"]);
+ @session_start();
+ authenticate_user("admin", null);
+ load_user_plugins($_SESSION["uid"]);
} else {
- if (!$_SESSION["uid"] || !validate_session($link)) {
+ if (!validate_session()) $_SESSION["uid"] = false;
+
+ if (!$_SESSION["uid"]) {
- if (AUTH_AUTO_LOGIN && authenticate_user($link, null, null)) {
- $_SESSION["ref_schema_version"] = get_schema_version($link, true);
+ if (AUTH_AUTO_LOGIN && authenticate_user(null, null)) {
+ $_SESSION["ref_schema_version"] = get_schema_version(true);
} else {
- authenticate_user($link, null, null, true);
+ authenticate_user(null, null, true);
}
- if (!$_SESSION["uid"]) render_login_form($link, $login_form);
+ if (!$_SESSION["uid"]) {
+ @session_destroy();
+ setcookie(session_name(), '', time()-42000, '/');
+
+ render_login_form();
+ exit;
+ }
} else {
/* bump login timestamp */
- db_query($link, "UPDATE ttrss_users SET last_login = NOW() WHERE id = " .
+ db_query("UPDATE ttrss_users SET last_login = NOW() WHERE id = " .
$_SESSION["uid"]);
- }
-
- if ($_SESSION["uid"] && $_SESSION["language"] && SESSION_COOKIE_LIFETIME > 0) {
- setcookie("ttrss_lang", $_SESSION["language"],
- time() + SESSION_COOKIE_LIFETIME);
+ $_SESSION["last_login_update"] = time();
}
if ($_SESSION["uid"]) {
- cache_prefs($link);
- load_user_plugins($link, $_SESSION["uid"]);
+ startup_gettext();
+ load_user_plugins($_SESSION["uid"]);
+
+ /* cleanup ccache */
+
+ db_query("DELETE FROM ttrss_counters_cache WHERE owner_uid = ".
+ $_SESSION["uid"] . " AND
+ (SELECT COUNT(id) FROM ttrss_feeds WHERE
+ ttrss_feeds.id = feed_id) = 0");
+
+ db_query("DELETE FROM ttrss_cat_counters_cache WHERE owner_uid = ".
+ $_SESSION["uid"] . " AND
+ (SELECT COUNT(id) FROM ttrss_feed_categories WHERE
+ ttrss_feed_categories.id = feed_id) = 0");
+
}
+
}
}
@@ -774,11 +826,6 @@
}
}
- // Deprecated, TODO: remove
- function theme_image($link, $filename) {
- return $filename;
- }
-
function convert_timestamp($timestamp, $source_tz, $dest_tz) {
try {
@@ -797,62 +844,68 @@
return $dt->format('U') + $dest_tz->getOffset($dt);
}
- function make_local_datetime($link, $timestamp, $long, $owner_uid = false,
+ function make_local_datetime($timestamp, $long, $owner_uid = false,
$no_smart_dt = false) {
if (!$owner_uid) $owner_uid = $_SESSION['uid'];
if (!$timestamp) $timestamp = '1970-01-01 0:00';
global $utc_tz;
- global $tz_offset;
+ global $user_tz;
+
+ if (!$utc_tz) $utc_tz = new DateTimeZone('UTC');
+
+ $timestamp = substr($timestamp, 0, 19);
# We store date in UTC internally
$dt = new DateTime($timestamp, $utc_tz);
- if ($tz_offset == -1) {
+ $user_tz_string = get_pref('USER_TIMEZONE', $owner_uid);
- $user_tz_string = get_pref($link, 'USER_TIMEZONE', $owner_uid);
+ if ($user_tz_string != 'Automatic') {
try {
- $user_tz = new DateTimeZone($user_tz_string);
+ if (!$user_tz) $user_tz = new DateTimeZone($user_tz_string);
} catch (Exception $e) {
$user_tz = $utc_tz;
}
$tz_offset = $user_tz->getOffset($dt);
+ } else {
+ $tz_offset = (int) -$_SESSION["clientTzOffset"];
}
$user_timestamp = $dt->format('U') + $tz_offset;
if (!$no_smart_dt) {
- return smart_date_time($link, $user_timestamp,
+ return smart_date_time($user_timestamp,
$tz_offset, $owner_uid);
} else {
if ($long)
- $format = get_pref($link, 'LONG_DATE_FORMAT', $owner_uid);
+ $format = get_pref('LONG_DATE_FORMAT', $owner_uid);
else
- $format = get_pref($link, 'SHORT_DATE_FORMAT', $owner_uid);
+ $format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
return date($format, $user_timestamp);
}
}
- function smart_date_time($link, $timestamp, $tz_offset = 0, $owner_uid = false) {
+ function smart_date_time($timestamp, $tz_offset = 0, $owner_uid = false) {
if (!$owner_uid) $owner_uid = $_SESSION['uid'];
if (date("Y.m.d", $timestamp) == date("Y.m.d", time() + $tz_offset)) {
return date("G:i", $timestamp);
} else if (date("Y", $timestamp) == date("Y", time() + $tz_offset)) {
- $format = get_pref($link, 'SHORT_DATE_FORMAT', $owner_uid);
+ $format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
return date($format, $timestamp);
} else {
- $format = get_pref($link, 'LONG_DATE_FORMAT', $owner_uid);
+ $format = get_pref('LONG_DATE_FORMAT', $owner_uid);
return date($format, $timestamp);
}
}
function sql_bool_to_bool($s) {
- if ($s == "t" || $s == "1" || $s == "true") {
+ if ($s == "t" || $s == "1" || strtolower($s) == "true") {
return true;
} else {
return false;
@@ -870,11 +923,11 @@
// Session caching removed due to causing wrong redirects to upgrade
// script when get_schema_version() is called on an obsolete session
// created on a previous schema version.
- function get_schema_version($link, $nocache = false) {
+ function get_schema_version($nocache = false) {
global $schema_version;
- if (!$schema_version) {
- $result = db_query($link, "SELECT schema_version FROM ttrss_version");
+ if (!$schema_version && !$nocache) {
+ $result = db_query("SELECT schema_version FROM ttrss_version");
$version = db_fetch_result($result, 0, "schema_version");
$schema_version = $version;
return $version;
@@ -883,18 +936,18 @@
}
}
- function sanity_check($link) {
+ function sanity_check() {
require_once 'errors.php';
$error_code = 0;
- $schema_version = get_schema_version($link, true);
+ $schema_version = get_schema_version(true);
if ($schema_version != SCHEMA_VERSION) {
$error_code = 5;
}
if (DB_TYPE == "mysql") {
- $result = db_query($link, "SELECT true", false);
+ $result = db_query("SELECT true", false);
if (db_num_rows($result) != 1) {
$error_code = 10;
}
@@ -959,14 +1012,41 @@
}
}
- function catchup_feed($link, $feed, $cat_view, $owner_uid = false, $max_id = false) {
+ function catchup_feed($feed, $cat_view, $owner_uid = false, $max_id = false, $mode = 'all') {
if (!$owner_uid) $owner_uid = $_SESSION['uid'];
//if (preg_match("/^-?[0-9][0-9]*$/", $feed) != false) {
- $ref_check_qpart = ($max_id &&
- !get_pref($link, 'REVERSE_HEADLINES')) ? "ref_id <= '$max_id'" : "true";
+ // Todo: all this interval stuff needs some generic generator function
+
+ $date_qpart = "false";
+
+ switch ($mode) {
+ case "1day":
+ if (DB_TYPE == "pgsql") {
+ $date_qpart = "date_entered < NOW() - INTERVAL '1 day' ";
+ } else {
+ $date_qpart = "date_entered < DATE_SUB(NOW(), INTERVAL 1 DAY) ";
+ }
+ break;
+ case "1week":
+ if (DB_TYPE == "pgsql") {
+ $date_qpart = "date_entered < NOW() - INTERVAL '1 week' ";
+ } else {
+ $date_qpart = "date_entered < DATE_SUB(NOW(), INTERVAL 1 WEEK) ";
+ }
+ break;
+ case "2weeks":
+ if (DB_TYPE == "pgsql") {
+ $date_qpart = "date_entered < NOW() - INTERVAL '2 week' ";
+ } else {
+ $date_qpart = "date_entered < DATE_SUB(NOW(), INTERVAL 2 WEEK) ";
+ }
+ break;
+ default:
+ $date_qpart = "true";
+ }
if (is_numeric($feed)) {
if ($cat_view) {
@@ -974,7 +1054,7 @@
if ($feed >= 0) {
if ($feed > 0) {
- $children = getChildCategories($link, $feed, $owner_uid);
+ $children = getChildCategories($feed, $owner_uid);
array_push($children, $feed);
$children = join(",", $children);
@@ -984,124 +1064,111 @@
$cat_qpart = "cat_id IS NULL";
}
- db_query($link, "UPDATE ttrss_user_entries
- SET unread = false,last_read = NOW()
- WHERE feed_id IN (SELECT id FROM ttrss_feeds WHERE $cat_qpart)
- AND $ref_check_qpart AND unread = true
- AND owner_uid = $owner_uid");
+ db_query("UPDATE ttrss_user_entries
+ SET unread = false, last_read = NOW() WHERE ref_id IN
+ (SELECT id FROM
+ (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id
+ AND owner_uid = $owner_uid AND unread = true AND feed_id IN
+ (SELECT id FROM ttrss_feeds WHERE $cat_qpart) AND $date_qpart) as tmp)");
} else if ($feed == -2) {
- db_query($link, "UPDATE ttrss_user_entries
+ db_query("UPDATE ttrss_user_entries
SET unread = false,last_read = NOW() WHERE (SELECT COUNT(*)
FROM ttrss_user_labels2 WHERE article_id = ref_id) > 0
- AND $ref_check_qpart
- AND unread = true AND owner_uid = $owner_uid");
+ AND unread = true AND $date_qpart AND owner_uid = $owner_uid");
}
} else if ($feed > 0) {
- db_query($link, "UPDATE ttrss_user_entries
- SET unread = false,last_read = NOW()
- WHERE feed_id = '$feed'
- AND $ref_check_qpart AND unread = true
- AND owner_uid = $owner_uid");
+ db_query("UPDATE ttrss_user_entries
+ SET unread = false, last_read = NOW() WHERE ref_id IN
+ (SELECT id FROM
+ (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id
+ AND owner_uid = $owner_uid AND unread = true AND feed_id = $feed AND $date_qpart) as tmp)");
- } else if ($feed < 0 && $feed > -10) { // special, like starred
+ } else if ($feed < 0 && $feed > LABEL_BASE_INDEX) { // special, like starred
if ($feed == -1) {
- db_query($link, "UPDATE ttrss_user_entries
- SET unread = false,last_read = NOW()
- WHERE marked = true
- AND $ref_check_qpart AND unread = true
- AND owner_uid = $owner_uid");
+ db_query("UPDATE ttrss_user_entries
+ SET unread = false, last_read = NOW() WHERE ref_id IN
+ (SELECT id FROM
+ (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id
+ AND owner_uid = $owner_uid AND unread = true AND marked = true AND $date_qpart) as tmp)");
}
if ($feed == -2) {
- db_query($link, "UPDATE ttrss_user_entries
- SET unread = false,last_read = NOW()
- WHERE published = true
- AND $ref_check_qpart AND unread = true
- AND owner_uid = $owner_uid");
+ db_query("UPDATE ttrss_user_entries
+ SET unread = false, last_read = NOW() WHERE ref_id IN
+ (SELECT id FROM
+ (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id
+ AND owner_uid = $owner_uid AND unread = true AND published = true AND $date_qpart) as tmp)");
}
if ($feed == -3) {
- $intl = get_pref($link, "FRESH_ARTICLE_MAX_AGE");
+ $intl = get_pref("FRESH_ARTICLE_MAX_AGE");
if (DB_TYPE == "pgsql") {
- $match_part = "updated > NOW() - INTERVAL '$intl hour' ";
+ $match_part = "date_entered > NOW() - INTERVAL '$intl hour' ";
} else {
- $match_part = "updated > DATE_SUB(NOW(),
+ $match_part = "date_entered > DATE_SUB(NOW(),
INTERVAL $intl HOUR) ";
}
- $result = db_query($link, "SELECT id FROM ttrss_entries,
- ttrss_user_entries WHERE $match_part AND
- unread = true AND
- ttrss_user_entries.ref_id = ttrss_entries.id AND
- owner_uid = $owner_uid");
-
- $affected_ids = array();
-
- while ($line = db_fetch_assoc($result)) {
- array_push($affected_ids, $line["id"]);
- }
-
- catchupArticlesById($link, $affected_ids, 0);
+ db_query("UPDATE ttrss_user_entries
+ SET unread = false, last_read = NOW() WHERE ref_id IN
+ (SELECT id FROM
+ (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id
+ AND owner_uid = $owner_uid AND unread = true AND $date_qpart AND $match_part) as tmp)");
}
if ($feed == -4) {
- db_query($link, "UPDATE ttrss_user_entries
- SET unread = false,last_read = NOW()
- WHERE $ref_check_qpart AND unread = true AND
- owner_uid = $owner_uid");
+ db_query("UPDATE ttrss_user_entries
+ SET unread = false, last_read = NOW() WHERE ref_id IN
+ (SELECT id FROM
+ (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id
+ AND owner_uid = $owner_uid AND unread = true AND $date_qpart) as tmp)");
}
- } else if ($feed < -10) { // label
+ } else if ($feed < LABEL_BASE_INDEX) { // label
- $label_id = -$feed - 11;
+ $label_id = feed_to_label_id($feed);
- db_query($link, "UPDATE ttrss_user_entries, ttrss_user_labels2
- SET unread = false, last_read = NOW()
- WHERE label_id = '$label_id' AND unread = true
- AND $ref_check_qpart
- AND owner_uid = '$owner_uid' AND ref_id = article_id");
+ db_query("UPDATE ttrss_user_entries
+ SET unread = false, last_read = NOW() WHERE ref_id IN
+ (SELECT id FROM
+ (SELECT ttrss_entries.id FROM ttrss_entries, ttrss_user_entries, ttrss_user_labels2 WHERE ref_id = id
+ AND label_id = '$label_id' AND ref_id = article_id
+ AND owner_uid = $owner_uid AND unread = true AND $date_qpart) as tmp)");
}
- ccache_update($link, $feed, $owner_uid, $cat_view);
+ ccache_update($feed, $owner_uid, $cat_view);
} else { // tag
- db_query($link, "BEGIN");
-
- $tag_name = db_escape_string($feed);
-
- $result = db_query($link, "SELECT post_int_id FROM ttrss_tags
- WHERE tag_name = '$tag_name' AND owner_uid = $owner_uid");
+ db_query("UPDATE ttrss_user_entries
+ SET unread = false, last_read = NOW() WHERE ref_id IN
+ (SELECT id FROM
+ (SELECT ttrss_entries.id FROM ttrss_entries, ttrss_user_entries, ttrss_tags WHERE ref_id = ttrss_entries.id
+ AND post_int_id = int_id AND tag_name = '$feed'
+ AND ttrss_user_entries.owner_uid = $owner_uid AND unread = true AND $date_qpart) as tmp)");
- while ($line = db_fetch_assoc($result)) {
- db_query($link, "UPDATE ttrss_user_entries SET
- unread = false, last_read = NOW()
- WHERE $ref_check_qpart AND unread = true
- AND int_id = " . $line["post_int_id"]);
- }
- db_query($link, "COMMIT");
}
}
- function getAllCounters($link) {
- $data = getGlobalCounters($link);
+ function getAllCounters() {
+ $data = getGlobalCounters();
- $data = array_merge($data, getVirtCounters($link));
- $data = array_merge($data, getLabelCounters($link));
- $data = array_merge($data, getFeedCounters($link, $active_feed));
- $data = array_merge($data, getCategoryCounters($link));
+ $data = array_merge($data, getVirtCounters());
+ $data = array_merge($data, getLabelCounters());
+ $data = array_merge($data, getFeedCounters());
+ $data = array_merge($data, getCategoryCounters());
return $data;
}
- function getCategoryTitle($link, $cat_id) {
+ function getCategoryTitle($cat_id) {
if ($cat_id == -1) {
return __("Special");
@@ -1109,7 +1176,7 @@
return __("Labels");
} else {
- $result = db_query($link, "SELECT title FROM ttrss_feed_categories WHERE
+ $result = db_query("SELECT title FROM ttrss_feed_categories WHERE
id = '$cat_id'");
if (db_num_rows($result) == 1) {
@@ -1121,17 +1188,17 @@
}
- function getCategoryCounters($link) {
+ function getCategoryCounters() {
$ret_arr = array();
/* Labels category */
$cv = array("id" => -2, "kind" => "cat",
- "counter" => getCategoryUnread($link, -2));
+ "counter" => getCategoryUnread(-2));
array_push($ret_arr, $cv);
- $result = db_query($link, "SELECT id AS cat_id, value AS unread,
+ $result = db_query("SELECT id AS cat_id, value AS unread,
(SELECT COUNT(id) FROM ttrss_feed_categories AS c2
WHERE c2.parent_cat = ttrss_feed_categories.id) AS num_children
FROM ttrss_feed_categories, ttrss_cat_counters_cache
@@ -1143,7 +1210,7 @@
$line["cat_id"] = (int) $line["cat_id"];
if ($line["num_children"] > 0) {
- $child_counter = getCategoryChildrenUnread($link, $line["cat_id"], $_SESSION["uid"]);
+ $child_counter = getCategoryChildrenUnread($line["cat_id"], $_SESSION["uid"]);
} else {
$child_counter = 0;
}
@@ -1157,7 +1224,7 @@
/* Special case: NULL category doesn't actually exist in the DB */
$cv = array("id" => 0, "kind" => "cat",
- "counter" => (int) ccache_find($link, 0, $_SESSION["uid"], true));
+ "counter" => (int) ccache_find(0, $_SESSION["uid"], true));
array_push($ret_arr, $cv);
@@ -1165,23 +1232,23 @@
}
// only accepts real cats (>= 0)
- function getCategoryChildrenUnread($link, $cat, $owner_uid = false) {
+ function getCategoryChildrenUnread($cat, $owner_uid = false) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
- $result = db_query($link, "SELECT id FROM ttrss_feed_categories WHERE parent_cat = '$cat'
+ $result = db_query("SELECT id FROM ttrss_feed_categories WHERE parent_cat = '$cat'
AND owner_uid = $owner_uid");
$unread = 0;
while ($line = db_fetch_assoc($result)) {
- $unread += getCategoryUnread($link, $line["id"], $owner_uid);
- $unread += getCategoryChildrenUnread($link, $line["id"], $owner_uid);
+ $unread += getCategoryUnread($line["id"], $owner_uid);
+ $unread += getCategoryChildrenUnread($line["id"], $owner_uid);
}
return $unread;
}
- function getCategoryUnread($link, $cat, $owner_uid = false) {
+ function getCategoryUnread($cat, $owner_uid = false) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
@@ -1193,7 +1260,7 @@
$cat_query = "cat_id IS NULL";
}
- $result = db_query($link, "SELECT id FROM ttrss_feeds WHERE $cat_query
+ $result = db_query("SELECT id FROM ttrss_feeds WHERE $cat_query
AND owner_uid = " . $owner_uid);
$cat_feeds = array();
@@ -1205,7 +1272,7 @@
$match_part = implode(" OR ", $cat_feeds);
- $result = db_query($link, "SELECT COUNT(int_id) AS unread
+ $result = db_query("SELECT COUNT(int_id) AS unread
FROM ttrss_user_entries
WHERE unread = true AND ($match_part)
AND owner_uid = " . $owner_uid);
@@ -1219,10 +1286,10 @@
return $unread;
} else if ($cat == -1) {
- return getFeedUnread($link, -1) + getFeedUnread($link, -2) + getFeedUnread($link, -3) + getFeedUnread($link, 0);
+ return getFeedUnread(-1) + getFeedUnread(-2) + getFeedUnread(-3) + getFeedUnread(0);
} else if ($cat == -2) {
- $result = db_query($link, "
+ $result = db_query("
SELECT COUNT(unread) AS unread FROM
ttrss_user_entries, ttrss_user_labels2
WHERE article_id = ref_id AND unread = true
@@ -1235,14 +1302,14 @@
}
}
- function getFeedUnread($link, $feed, $is_cat = false) {
- return getFeedArticles($link, $feed, $is_cat, true, $_SESSION["uid"]);
+ function getFeedUnread($feed, $is_cat = false) {
+ return getFeedArticles($feed, $is_cat, true, $_SESSION["uid"]);
}
- function getLabelUnread($link, $label_id, $owner_uid = false) {
+ function getLabelUnread($label_id, $owner_uid = false) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
- $result = db_query($link, "SELECT COUNT(ref_id) AS unread FROM ttrss_user_entries, ttrss_user_labels2
+ $result = db_query("SELECT COUNT(ref_id) AS unread FROM ttrss_user_entries, ttrss_user_labels2
WHERE owner_uid = '$owner_uid' AND unread = true AND label_id = '$label_id' AND article_id = ref_id");
if (db_num_rows($result) != 0) {
@@ -1252,7 +1319,7 @@
}
}
- function getFeedArticles($link, $feed, $is_cat = false, $unread_only = false,
+ function getFeedArticles($feed, $is_cat = false, $unread_only = false,
$owner_uid = false) {
$n_feed = (int) $feed;
@@ -1267,14 +1334,14 @@
}
if ($is_cat) {
- return getCategoryUnread($link, $n_feed, $owner_uid);
+ return getCategoryUnread($n_feed, $owner_uid);
} else if ($n_feed == -6) {
return 0;
} else if ($feed != "0" && $n_feed == 0) {
$feed = db_escape_string($feed);
- $result = db_query($link, "SELECT SUM((SELECT COUNT(int_id)
+ $result = db_query("SELECT SUM((SELECT COUNT(int_id)
FROM ttrss_user_entries,ttrss_entries WHERE int_id = post_int_id
AND ref_id = id AND $unread_qpart)) AS count FROM ttrss_tags
WHERE owner_uid = $owner_uid AND tag_name = '$feed'");
@@ -1287,7 +1354,7 @@
} else if ($n_feed == -3) {
$match_part = "unread = true AND score >= 0";
- $intl = get_pref($link, "FRESH_ARTICLE_MAX_AGE", $owner_uid);
+ $intl = get_pref("FRESH_ARTICLE_MAX_AGE", $owner_uid);
if (DB_TYPE == "pgsql") {
$match_part .= " AND updated > NOW() - INTERVAL '$intl hour' ";
@@ -1307,11 +1374,11 @@
$match_part = "feed_id IS NULL";
}
- } else if ($feed < -10) {
+ } else if ($feed < LABEL_BASE_INDEX) {
- $label_id = -$feed - 11;
+ $label_id = feed_to_label_id($feed);
- return getLabelUnread($link, $label_id, $owner_uid);
+ return getLabelUnread($label_id, $owner_uid);
}
@@ -1330,11 +1397,11 @@
//echo "[$feed/$query]\n";
- $result = db_query($link, $query);
+ $result = db_query($query);
} else {
- $result = db_query($link, "SELECT COUNT(post_int_id) AS unread
+ $result = db_query("SELECT COUNT(post_int_id) AS unread
FROM ttrss_tags,ttrss_user_entries,ttrss_entries
WHERE tag_name = '$feed' AND post_int_id = int_id AND ref_id = ttrss_entries.id
AND $unread_qpart AND ttrss_tags.owner_uid = " . $owner_uid);
@@ -1345,13 +1412,13 @@
return $unread;
}
- function getGlobalUnread($link, $user_id = false) {
+ function getGlobalUnread($user_id = false) {
if (!$user_id) {
$user_id = $_SESSION["uid"];
}
- $result = db_query($link, "SELECT SUM(value) AS c_id FROM ttrss_counters_cache
+ $result = db_query("SELECT SUM(value) AS c_id FROM ttrss_counters_cache
WHERE owner_uid = '$user_id' AND feed_id > 0");
$c_id = db_fetch_result($result, 0, "c_id");
@@ -1359,11 +1426,11 @@
return $c_id;
}
- function getGlobalCounters($link, $global_unread = -1) {
+ function getGlobalCounters($global_unread = -1) {
$ret_arr = array();
if ($global_unread == -1) {
- $global_unread = getGlobalUnread($link);
+ $global_unread = getGlobalUnread();
}
$cv = array("id" => "global-unread",
@@ -1371,7 +1438,7 @@
array_push($ret_arr, $cv);
- $result = db_query($link, "SELECT COUNT(id) AS fn FROM
+ $result = db_query("SELECT COUNT(id) AS fn FROM
ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"]);
$subscribed_feeds = db_fetch_result($result, 0, "fn");
@@ -1384,42 +1451,53 @@
return $ret_arr;
}
- function getVirtCounters($link) {
+ function getVirtCounters() {
$ret_arr = array();
for ($i = 0; $i >= -4; $i--) {
- $count = getFeedUnread($link, $i);
+ $count = getFeedUnread($i);
$cv = array("id" => $i,
"counter" => (int) $count);
-// if (get_pref($link, 'EXTENDED_FEEDLIST'))
-// $cv["xmsg"] = getFeedArticles($link, $i)." ".__("total");
+// if (get_pref('EXTENDED_FEEDLIST'))
+// $cv["xmsg"] = getFeedArticles($i)." ".__("total");
array_push($ret_arr, $cv);
}
+ $feeds = PluginHost::getInstance()->get_feeds(-1);
+
+ if (is_array($feeds)) {
+ foreach ($feeds as $feed) {
+ $cv = array("id" => PluginHost::pfeed_to_feed_id($feed['id']),
+ "counter" => $feed['sender']->get_unread($feed['id']));
+ array_push($ret_arr, $cv);
+ }
+ }
+
return $ret_arr;
}
- function getLabelCounters($link, $descriptions = false) {
+ function getLabelCounters($descriptions = false) {
$ret_arr = array();
$owner_uid = $_SESSION["uid"];
- $result = db_query($link, "SELECT id,caption,COUNT(unread) AS unread
+ $result = db_query("SELECT id,caption,COUNT(unread) AS unread
FROM ttrss_labels2 LEFT JOIN ttrss_user_labels2 ON
(ttrss_labels2.id = label_id)
- LEFT JOIN ttrss_user_entries ON (ref_id = article_id AND unread = true)
+ LEFT JOIN ttrss_user_entries ON (ref_id = article_id AND unread = true
+ AND ttrss_user_entries.owner_uid = $owner_uid)
WHERE ttrss_labels2.owner_uid = $owner_uid GROUP BY ttrss_labels2.id,
ttrss_labels2.caption");
while ($line = db_fetch_assoc($result)) {
- $id = -$line["id"] - 11;
+ $id = label_to_feed_id($line["id"]);
$label_name = $line["caption"];
$count = $line["unread"];
@@ -1430,8 +1508,8 @@
if ($descriptions)
$cv["description"] = $label_name;
-// if (get_pref($link, 'EXTENDED_FEEDLIST'))
-// $cv["xmsg"] = getFeedArticles($link, $id)." ".__("total");
+// if (get_pref('EXTENDED_FEEDLIST'))
+// $cv["xmsg"] = getFeedArticles($id)." ".__("total");
array_push($ret_arr, $cv);
}
@@ -1439,7 +1517,7 @@
return $ret_arr;
}
- function getFeedCounters($link, $active_feed = false) {
+ function getFeedCounters($active_feed = false) {
$ret_arr = array();
@@ -1452,7 +1530,7 @@
AND ttrss_counters_cache.owner_uid = ttrss_feeds.owner_uid
AND ttrss_counters_cache.feed_id = id";
- $result = db_query($link, $query);
+ $result = db_query($query);
$fctrs_modified = false;
while ($line = db_fetch_assoc($result)) {
@@ -1461,7 +1539,7 @@
$count = $line["count"];
$last_error = htmlspecialchars($line["last_error"]);
- $last_updated = make_local_datetime($link, $line['last_updated'], false);
+ $last_updated = make_local_datetime($line['last_updated'], false);
$has_img = feed_has_icon($id);
@@ -1476,8 +1554,8 @@
if ($last_error)
$cv["error"] = $last_error;
-// if (get_pref($link, 'EXTENDED_FEEDLIST'))
-// $cv["xmsg"] = getFeedArticles($link, $id)." ".__("total");
+// if (get_pref('EXTENDED_FEEDLIST'))
+// $cv["xmsg"] = getFeedArticles($id)." ".__("total");
if ($active_feed && $id == $active_feed)
$cv["title"] = truncate_string($line["title"], 30);
@@ -1489,8 +1567,8 @@
return $ret_arr;
}
- function get_pgsql_version($link) {
- $result = db_query($link, "SELECT version() AS version");
+ function get_pgsql_version() {
+ $result = db_query("SELECT version() AS version");
$version = explode(" ", db_fetch_result($result, 0, "version"));
return $version[1];
}
@@ -1506,9 +1584,10 @@
* Here you should call extractfeedurls in rpc-backend
* to get all possible feeds.
* 5 - Couldn't download the URL content.
+ * 6 - Content is an invalid XML.
*/
- function subscribe_to_feed($link, $url, $cat_id = 0,
- $auth_login = '', $auth_pass = '', $need_auth = false) {
+ function subscribe_to_feed($url, $cat_id = 0,
+ $auth_login = '', $auth_pass = '') {
global $fetch_last_error;
@@ -1536,31 +1615,53 @@
$url = key($feedUrls);
}
+ /* libxml_use_internal_errors(true);
+ $doc = new DOMDocument();
+ $doc->loadXML($contents);
+ $error = libxml_get_last_error();
+ libxml_clear_errors();
+
+ if ($error) {
+ $error_message = format_libxml_error($error);
+
+ return array("code" => 6, "message" => $error_message);
+ } */
+
if ($cat_id == "0" || !$cat_id) {
$cat_qpart = "NULL";
} else {
$cat_qpart = "'$cat_id'";
}
- $result = db_query($link,
+ $result = db_query(
"SELECT id FROM ttrss_feeds
WHERE feed_url = '$url' AND owner_uid = ".$_SESSION["uid"]);
+ if (strlen(FEED_CRYPT_KEY) > 0) {
+ require_once "crypt.php";
+ $auth_pass = substr(encrypt_string($auth_pass), 0, 250);
+ $auth_pass_encrypted = 'true';
+ } else {
+ $auth_pass_encrypted = 'false';
+ }
+
+ $auth_pass = db_escape_string($auth_pass);
+
if (db_num_rows($result) == 0) {
- $result = db_query($link,
+ $result = db_query(
"INSERT INTO ttrss_feeds
- (owner_uid,feed_url,title,cat_id, auth_login,auth_pass,update_method)
+ (owner_uid,feed_url,title,cat_id, auth_login,auth_pass,update_method,auth_pass_encrypted)
VALUES ('".$_SESSION["uid"]."', '$url',
- '[Unknown]', $cat_qpart, '$auth_login', '$auth_pass', 0)");
+ '[Unknown]', $cat_qpart, '$auth_login', '$auth_pass', 0, $auth_pass_encrypted)");
- $result = db_query($link,
+ $result = db_query(
"SELECT id FROM ttrss_feeds WHERE feed_url = '$url'
AND owner_uid = " . $_SESSION["uid"]);
$feed_id = db_fetch_result($result, 0, "id");
if ($feed_id) {
- update_rss_feed($link, $feed_id, true);
+ update_rss_feed($feed_id, true);
}
return array("code" => 1);
@@ -1569,7 +1670,7 @@
}
}
- function print_feed_select($link, $id, $default_id = "",
+ function print_feed_select($id, $default_id = "",
$attributes = "", $include_all_feeds = true,
$root_id = false, $nest_level = 0) {
@@ -1581,14 +1682,14 @@
}
}
- if (get_pref($link, 'ENABLE_FEED_CATS')) {
+ if (get_pref('ENABLE_FEED_CATS')) {
if ($root_id)
$parent_qpart = "parent_cat = '$root_id'";
else
$parent_qpart = "parent_cat IS NULL";
- $result = db_query($link, "SELECT id,title,
+ $result = db_query("SELECT id,title,
(SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE
c2.parent_cat = ttrss_feed_categories.id) AS num_children
FROM ttrss_feed_categories
@@ -1605,10 +1706,10 @@
$line["id"], htmlspecialchars($line["title"]));
if ($line["num_children"] > 0)
- print_feed_select($link, $id, $default_id, $attributes,
+ print_feed_select($id, $default_id, $attributes,
$include_all_feeds, $line["id"], $nest_level+1);
- $feed_result = db_query($link, "SELECT id,title FROM ttrss_feeds
+ $feed_result = db_query("SELECT id,title FROM ttrss_feeds
WHERE cat_id = '".$line["id"]."' AND owner_uid = ".$_SESSION["uid"] . " ORDER BY title");
while ($fline = db_fetch_assoc($feed_result)) {
@@ -1625,12 +1726,13 @@
}
if (!$root_id) {
- $is_selected = ($default_id == "CAT:0") ? "selected=\"1\"" : "";
+ $default_is_cat = ($default_id == "CAT:0");
+ $is_selected = $default_is_cat ? "selected=\"1\"" : "";
printf("<option $is_selected value='CAT:0'>%s</option>",
__("Uncategorized"));
- $feed_result = db_query($link, "SELECT id,title FROM ttrss_feeds
+ $feed_result = db_query("SELECT id,title FROM ttrss_feeds
WHERE cat_id IS NULL AND owner_uid = ".$_SESSION["uid"] . " ORDER BY title");
while ($fline = db_fetch_assoc($feed_result)) {
@@ -1647,7 +1749,7 @@
}
} else {
- $result = db_query($link, "SELECT id,title FROM ttrss_feeds
+ $result = db_query("SELECT id,title FROM ttrss_feeds
WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
while ($line = db_fetch_assoc($result)) {
@@ -1664,7 +1766,7 @@
}
}
- function print_feed_cat_select($link, $id, $default_id,
+ function print_feed_cat_select($id, $default_id,
$attributes, $include_all_cats = true, $root_id = false, $nest_level = 0) {
if (!$root_id) {
@@ -1676,7 +1778,7 @@
else
$parent_qpart = "parent_cat IS NULL";
- $result = db_query($link, "SELECT id,title,
+ $result = db_query("SELECT id,title,
(SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE
c2.parent_cat = ttrss_feed_categories.id) AS num_children
FROM ttrss_feed_categories
@@ -1697,7 +1799,7 @@
$line["id"], htmlspecialchars($line["title"]));
if ($line["num_children"] > 0)
- print_feed_cat_select($link, $id, $default_id, $attributes,
+ print_feed_cat_select($id, $default_id, $attributes,
$include_all_cats, $line["id"], $nest_level+1);
}
@@ -1723,13 +1825,13 @@
return ($val == "on") ? "true" : "false";
}
- function getFeedCatTitle($link, $id) {
+ function getFeedCatTitle($id) {
if ($id == -1) {
return __("Special");
- } else if ($id < -10) {
+ } else if ($id < LABEL_BASE_INDEX) {
return __("Labels");
} else if ($id > 0) {
- $result = db_query($link, "SELECT ttrss_feed_categories.title
+ $result = db_query("SELECT ttrss_feed_categories.title
FROM ttrss_feeds, ttrss_feed_categories WHERE ttrss_feeds.id = '$id' AND
cat_id = ttrss_feed_categories.id");
if (db_num_rows($result) == 1) {
@@ -1764,7 +1866,7 @@
return "images/recently_read.png";
break;
default:
- if ($id < -10) {
+ if ($id < LABEL_BASE_INDEX) {
return "images/label.png";
} else {
if (file_exists(ICONS_DIR . "/$id.ico"))
@@ -1772,11 +1874,13 @@
}
break;
}
+
+ return false;
}
- function getFeedTitle($link, $id, $cat = false) {
+ function getFeedTitle($id, $cat = false) {
if ($cat) {
- return getCategoryTitle($link, $id);
+ return getCategoryTitle($id);
} else if ($id == -1) {
return __("Starred articles");
} else if ($id == -2) {
@@ -1789,9 +1893,9 @@
return __("Archived articles");
} else if ($id == -6) {
return __("Recently read");
- } else if ($id < -10) {
- $label_id = -$id - 11;
- $result = db_query($link, "SELECT caption FROM ttrss_labels2 WHERE id = '$label_id'");
+ } else if ($id < LABEL_BASE_INDEX) {
+ $label_id = feed_to_label_id($id);
+ $result = db_query("SELECT caption FROM ttrss_labels2 WHERE id = '$label_id'");
if (db_num_rows($result) == 1) {
return db_fetch_result($result, 0, "caption");
} else {
@@ -1799,7 +1903,7 @@
}
} else if (is_numeric($id) && $id > 0) {
- $result = db_query($link, "SELECT title FROM ttrss_feeds WHERE id = '$id'");
+ $result = db_query("SELECT title FROM ttrss_feeds WHERE id = '$id'");
if (db_num_rows($result) == 1) {
return db_fetch_result($result, 0, "title");
} else {
@@ -1810,30 +1914,26 @@
}
}
- function make_init_params($link) {
+ function make_init_params() {
$params = array();
- $params["sign_progress"] = theme_image($link, "images/indicator_white.gif");
- $params["sign_progress_tiny"] = theme_image($link, "images/indicator_tiny.gif");
- $params["sign_excl"] = theme_image($link, "images/sign_excl.svg");
- $params["sign_info"] = theme_image($link, "images/sign_info.svg");
-
foreach (array("ON_CATCHUP_SHOW_NEXT_FEED", "HIDE_READ_FEEDS",
"ENABLE_FEED_CATS", "FEEDS_SORT_BY_UNREAD", "CONFIRM_FEED_CATCHUP",
- "CDM_AUTO_CATCHUP", "FRESH_ARTICLE_MAX_AGE", "DEFAULT_ARTICLE_LIMIT",
+ "CDM_AUTO_CATCHUP", "FRESH_ARTICLE_MAX_AGE",
"HIDE_READ_SHOWS_SPECIAL", "COMBINED_DISPLAY_MODE") as $param) {
- $params[strtolower($param)] = (int) get_pref($link, $param);
+ $params[strtolower($param)] = (int) get_pref($param);
}
$params["icons_url"] = ICONS_URL;
$params["cookie_lifetime"] = SESSION_COOKIE_LIFETIME;
- $params["default_view_mode"] = get_pref($link, "_DEFAULT_VIEW_MODE");
- $params["default_view_limit"] = (int) get_pref($link, "_DEFAULT_VIEW_LIMIT");
- $params["default_view_order_by"] = get_pref($link, "_DEFAULT_VIEW_ORDER_BY");
+ $params["default_view_mode"] = get_pref("_DEFAULT_VIEW_MODE");
+ $params["default_view_limit"] = (int) get_pref("_DEFAULT_VIEW_LIMIT");
+ $params["default_view_order_by"] = get_pref("_DEFAULT_VIEW_ORDER_BY");
$params["bw_limit"] = (int) $_SESSION["bw_limit"];
+ $params["label_base_index"] = (int) LABEL_BASE_INDEX;
- $result = db_query($link, "SELECT MAX(id) AS mid, COUNT(*) AS nf FROM
+ $result = db_query("SELECT MAX(id) AS mid, COUNT(*) AS nf FROM
ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"]);
$max_feed_id = db_fetch_result($result, 0, "mid");
@@ -1842,8 +1942,8 @@
$params["max_feed_id"] = (int) $max_feed_id;
$params["num_feeds"] = (int) $num_feeds;
- $params["collapsed_feedlist"] = (int) get_pref($link, "_COLLAPSED_FEEDLIST");
- $params["hotkeys"] = get_hotkeys_map($link);
+ $params["collapsed_feedlist"] = (int) get_pref("_COLLAPSED_FEEDLIST");
+ $params["hotkeys"] = get_hotkeys_map();
$params["csrf_token"] = $_SESSION["csrf_token"];
$params["widescreen"] = (int) $_COOKIE["ttrss_widescreen"];
@@ -1853,7 +1953,7 @@
return $params;
}
- function get_hotkeys_info($link) {
+ function get_hotkeys_info() {
$hotkeys = array(
__("Navigation") => array(
"next_feed" => __("Open next feed"),
@@ -1862,6 +1962,8 @@
"prev_article" => __("Open previous article"),
"next_article_noscroll" => __("Open next article (don't scroll long articles)"),
"prev_article_noscroll" => __("Open previous article (don't scroll long articles)"),
+ "next_article_noexpand" => __("Move to next article (don't expand or mark read)"),
+ "prev_article_noexpand" => __("Move to previous article (don't expand or mark read)"),
"search_dialog" => __("Show search dialog")),
__("Article") => array(
"toggle_mark" => __("Toggle starred"),
@@ -1877,8 +1979,10 @@
"article_scroll_up" => __("Scroll up"),
"select_article_cursor" => __("Select article under cursor"),
"email_article" => __("Email article"),
- "close_article" => __("Close article"),
- "toggle_widescreen" => __("Toggle widescreen mode")),
+ "close_article" => __("Close/collapse article"),
+ "toggle_expand" => __("Toggle article expansion (combined mode)"),
+ "toggle_widescreen" => __("Toggle widescreen mode"),
+ "toggle_embed_original" => __("Toggle embed original")),
__("Article selection") => array(
"select_all" => __("Select all articles"),
"select_unread" => __("Select unread"),
@@ -1896,7 +2000,8 @@
"feed_debug_update" => __("Debug feed update"),
"catchup_all" => __("Mark all feeds as read"),
"cat_toggle_collapse" => __("Un/collapse current category"),
- "toggle_combined_mode" => __("Toggle combined mode")),
+ "toggle_combined_mode" => __("Toggle combined mode"),
+ "toggle_cdm_expanded" => __("Toggle auto expand in combined mode")),
__("Go to") => array(
"goto_all" => __("All articles"),
"goto_fresh" => __("Fresh"),
@@ -1911,10 +2016,14 @@
"help_dialog" => __("Show help dialog"))
);
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HOTKEY_INFO) as $plugin) {
+ $hotkeys = $plugin->hook_hotkey_info($hotkeys);
+ }
+
return $hotkeys;
}
- function get_hotkeys_map($link) {
+ function get_hotkeys_map() {
$hotkeys = array(
// "navigation" => array(
"k" => "next_feed",
@@ -1928,23 +2037,26 @@
"(191)|/" => "search_dialog",
// "article" => array(
"s" => "toggle_mark",
- "S" => "toggle_publ",
+ "*s" => "toggle_publ",
"u" => "toggle_unread",
- "T" => "edit_tags",
- "D" => "dismiss_selected",
- "X" => "dismiss_read",
+ "*t" => "edit_tags",
+ "*d" => "dismiss_selected",
+ "*x" => "dismiss_read",
"o" => "open_in_new_window",
"c p" => "catchup_below",
"c n" => "catchup_above",
- "N" => "article_scroll_down",
- "P" => "article_scroll_up",
- "a W" => "toggle_widescreen",
+ "*n" => "article_scroll_down",
+ "*p" => "article_scroll_up",
+ "*(38)|Shift+up" => "article_scroll_up",
+ "*(40)|Shift+down" => "article_scroll_down",
+ "a *w" => "toggle_widescreen",
+ "a e" => "toggle_embed_original",
"e" => "email_article",
"a q" => "close_article",
// "article_selection" => array(
"a a" => "select_all",
"a u" => "select_unread",
- "a U" => "select_marked",
+ "a *u" => "select_marked",
"a p" => "select_published",
"a i" => "select_invert",
"a n" => "select_none",
@@ -1955,9 +2067,10 @@
"f e" => "feed_edit",
"f q" => "feed_catchup",
"f x" => "feed_reverse",
- "f D" => "feed_debug_update",
- "f C" => "toggle_combined_mode",
- "Q" => "catchup_all",
+ "f *d" => "feed_debug_update",
+ "f *c" => "toggle_combined_mode",
+ "f c" => "toggle_cdm_expanded",
+ "*q" => "catchup_all",
"x" => "cat_toggle_collapse",
// "goto" => array(
"g a" => "goto_all",
@@ -1965,7 +2078,7 @@
"g s" => "goto_marked",
"g p" => "goto_published",
"g t" => "goto_tagcloud",
- "g P" => "goto_prefs",
+ "g *p" => "goto_prefs",
// "other" => array(
"(9)|Tab" => "select_article_cursor", // tab
"c l" => "create_label",
@@ -1974,13 +2087,12 @@
"^(191)|Ctrl+/" => "help_dialog",
);
- if (get_pref($link, 'COMBINED_DISPLAY_MODE')) {
+ if (get_pref('COMBINED_DISPLAY_MODE')) {
$hotkeys["^(38)|Ctrl-up"] = "prev_article_noscroll";
$hotkeys["^(40)|Ctrl-down"] = "next_article_noscroll";
}
- global $pluginhost;
- foreach ($pluginhost->get_hooks($pluginhost::HOOK_HOTKEY_MAP) as $plugin) {
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HOTKEY_MAP) as $plugin) {
$hotkeys = $plugin->hook_hotkey_map($hotkeys);
}
@@ -1997,10 +2109,10 @@
return array($prefixes, $hotkeys);
}
- function make_runtime_info($link) {
+ function make_runtime_info() {
$data = array();
- $result = db_query($link, "SELECT MAX(id) AS mid, COUNT(*) AS nf FROM
+ $result = db_query("SELECT MAX(id) AS mid, COUNT(*) AS nf FROM
ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"]);
$max_feed_id = db_fetch_result($result, 0, "mid");
@@ -2009,8 +2121,11 @@
$data["max_feed_id"] = (int) $max_feed_id;
$data["num_feeds"] = (int) $num_feeds;
- $data['last_article_id'] = getLastArticleId($link);
- $data['cdm_expanded'] = get_pref($link, 'CDM_EXPANDED');
+ $data['last_article_id'] = getLastArticleId();
+ $data['cdm_expanded'] = get_pref('CDM_EXPANDED');
+
+ $data['dep_ts'] = calculate_dep_timestamp();
+ $data['reload_on_ts_change'] = !defined('_NO_RELOAD_ON_TS_CHANGE');
if (file_exists(LOCK_DIRECTORY . "/update_daemon.lock")) {
@@ -2040,7 +2155,7 @@
}
if ($_SESSION["last_version_check"] + 86400 + rand(-1000, 1000) < time()) {
- $new_version_details = @check_for_update($link);
+ $new_version_details = @check_for_update();
$data['new_version_available'] = (int) ($new_version_details != false);
@@ -2051,7 +2166,7 @@
return $data;
}
- function search_to_sql($link, $search, $match_on) {
+ function search_to_sql($search) {
$search_query_part = "";
@@ -2068,43 +2183,77 @@
$commandpair = explode(":", mb_strtolower($k), 2);
- if ($commandpair[0] == "note" && $commandpair[1]) {
-
- if ($commandpair[1] == "true")
- array_push($query_keywords, "($not (note IS NOT NULL AND note != ''))");
- else
- array_push($query_keywords, "($not (note IS NULL OR note = ''))");
-
- } else if ($commandpair[0] == "star" && $commandpair[1]) {
-
- if ($commandpair[1] == "true")
- array_push($query_keywords, "($not (marked = true))");
- else
- array_push($query_keywords, "($not (marked = false))");
-
- } else if ($commandpair[0] == "pub" && $commandpair[1]) {
+ switch ($commandpair[0]) {
+ case "title":
+ if ($commandpair[1]) {
+ array_push($query_keywords, "($not (LOWER(ttrss_entries.title) LIKE '%".
+ db_escape_string(mb_strtolower($commandpair[1]))."%'))");
+ } else {
+ array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%')
+ OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
+ }
+ break;
+ case "author":
+ if ($commandpair[1]) {
+ array_push($query_keywords, "($not (LOWER(author) LIKE '%".
+ db_escape_string(mb_strtolower($commandpair[1]))."%'))");
+ } else {
+ array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%')
+ OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
+ }
+ break;
+ case "note":
+ if ($commandpair[1]) {
+ if ($commandpair[1] == "true")
+ array_push($query_keywords, "($not (note IS NOT NULL AND note != ''))");
+ else if ($commandpair[1] == "false")
+ array_push($query_keywords, "($not (note IS NULL OR note = ''))");
+ else
+ array_push($query_keywords, "($not (LOWER(note) LIKE '%".
+ db_escape_string(mb_strtolower($commandpair[1]))."%'))");
+ } else {
+ array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%')
+ OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
+ }
+ break;
+ case "star":
- if ($commandpair[1] == "true")
- array_push($query_keywords, "($not (published = true))");
- else
- array_push($query_keywords, "($not (published = false))");
+ if ($commandpair[1]) {
+ if ($commandpair[1] == "true")
+ array_push($query_keywords, "($not (marked = true))");
+ else
+ array_push($query_keywords, "($not (marked = false))");
+ } else {
+ array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%')
+ OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
+ }
+ break;
+ case "pub":
+ if ($commandpair[1]) {
+ if ($commandpair[1] == "true")
+ array_push($query_keywords, "($not (published = true))");
+ else
+ array_push($query_keywords, "($not (published = false))");
- } else if (strpos($k, "@") === 0) {
+ } else {
+ array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%')
+ OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
+ }
+ break;
+ default:
+ if (strpos($k, "@") === 0) {
- $user_tz_string = get_pref($link, 'USER_TIMEZONE', $_SESSION['uid']);
- $orig_ts = strtotime(substr($k, 1));
- $k = date("Y-m-d", convert_timestamp($orig_ts, $user_tz_string, 'UTC'));
+ $user_tz_string = get_pref('USER_TIMEZONE', $_SESSION['uid']);
+ $orig_ts = strtotime(substr($k, 1));
+ $k = date("Y-m-d", convert_timestamp($orig_ts, $user_tz_string, 'UTC'));
- //$k = date("Y-m-d", strtotime(substr($k, 1)));
+ //$k = date("Y-m-d", strtotime(substr($k, 1)));
- array_push($query_keywords, "(".SUBSTRING_FOR_DATE."(updated,1,LENGTH('$k')) $not = '$k')");
- } else if ($match_on == "both") {
- array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%')
- OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
- } else if ($match_on == "title") {
- array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%'))");
- } else if ($match_on == "content") {
- array_push($query_keywords, "(UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
+ array_push($query_keywords, "(".SUBSTRING_FOR_DATE."(updated,1,LENGTH('$k')) $not = '$k')");
+ } else {
+ array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%')
+ OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
+ }
}
}
@@ -2113,35 +2262,35 @@
return $search_query_part;
}
- function getParentCategories($link, $cat, $owner_uid) {
+ function getParentCategories($cat, $owner_uid) {
$rv = array();
- $result = db_query($link, "SELECT parent_cat FROM ttrss_feed_categories
+ $result = db_query("SELECT parent_cat FROM ttrss_feed_categories
WHERE id = '$cat' AND parent_cat IS NOT NULL AND owner_uid = $owner_uid");
while ($line = db_fetch_assoc($result)) {
array_push($rv, $line["parent_cat"]);
- $rv = array_merge($rv, getParentCategories($link, $line["parent_cat"], $owner_uid));
+ $rv = array_merge($rv, getParentCategories($line["parent_cat"], $owner_uid));
}
return $rv;
}
- function getChildCategories($link, $cat, $owner_uid) {
+ function getChildCategories($cat, $owner_uid) {
$rv = array();
- $result = db_query($link, "SELECT id FROM ttrss_feed_categories
+ $result = db_query("SELECT id FROM ttrss_feed_categories
WHERE parent_cat = '$cat' AND owner_uid = $owner_uid");
while ($line = db_fetch_assoc($result)) {
array_push($rv, $line["id"]);
- $rv = array_merge($rv, getChildCategories($link, $line["id"], $owner_uid));
+ $rv = array_merge($rv, getChildCategories($line["id"], $owner_uid));
}
return $rv;
}
- function queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view, $search, $search_mode, $match_on, $override_order = false, $offset = 0, $owner_uid = 0, $filter = false, $since_id = 0, $include_children = false, $ignore_vfeed_group = false) {
+ function queryFeedHeadlines($feed, $limit, $view_mode, $cat_view, $search, $search_mode, $override_order = false, $offset = 0, $owner_uid = 0, $filter = false, $since_id = 0, $include_children = false, $ignore_vfeed_group = false) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
@@ -2158,7 +2307,7 @@
$search_query_part = "ref_id = -1 AND ";
} else {
- $search_query_part = search_to_sql($link, $search, $match_on);
+ $search_query_part = search_to_sql($search);
$search_query_part .= " AND ";
}
@@ -2176,10 +2325,10 @@
$override_order = "updated DESC";
- $filter_query_part = filter_to_sql($link, $filter, $owner_uid);
+ $filter_query_part = filter_to_sql($filter, $owner_uid);
// Try to check if SQL regexp implementation chokes on a valid regexp
- $result = db_query($link, "SELECT true AS true_val FROM ttrss_entries,
+ $result = db_query("SELECT true AS true_val FROM ttrss_entries,
ttrss_user_entries, ttrss_feeds, ttrss_feed_categories
WHERE $filter_query_part LIMIT 1", false);
@@ -2207,18 +2356,19 @@
$view_query_part = "";
- if ($view_mode == "adaptive" || $view_query_part == "noscores") {
+ if ($view_mode == "adaptive") {
if ($search) {
$view_query_part = " ";
} else if ($feed != -1) {
- $unread = getFeedUnread($link, $feed, $cat_view);
+
+ $unread = getFeedUnread($feed, $cat_view);
if ($cat_view && $feed > 0 && $include_children)
- $unread += getCategoryChildrenUnread($link, $feed);
+ $unread += getCategoryChildrenUnread($feed);
+
+ if ($unread > 0)
+ $view_query_part = " unread = true AND ";
- if ($unread > 0) {
- $view_query_part = " unread = true AND ";
- }
}
}
@@ -2226,18 +2376,18 @@
$view_query_part = " marked = true AND ";
}
+ if ($view_mode == "has_note") {
+ $view_query_part = " (note IS NOT NULL AND note != '') AND ";
+ }
+
if ($view_mode == "published") {
$view_query_part = " published = true AND ";
}
- if ($view_mode == "unread") {
+ if ($view_mode == "unread" && $feed != -6) {
$view_query_part = " unread = true AND ";
}
- if ($view_mode == "updated") {
- $view_query_part = " (last_read is null and unread = false) AND ";
- }
-
if ($limit > 0) {
$limit_query_part = "LIMIT " . $limit;
}
@@ -2260,7 +2410,7 @@
if ($feed > 0) {
if ($include_children) {
- $subcats = getChildCategories($link, $feed, $owner_uid);
+ $subcats = getChildCategories($feed, $owner_uid);
array_push($subcats, $feed);
$cats_qpart = join(",", $subcats);
} else {
@@ -2280,7 +2430,7 @@
if ($feed > 0) {
if ($include_children) {
# sub-cats
- $subcats = getChildCategories($link, $feed, $owner_uid);
+ $subcats = getChildCategories($feed, $owner_uid);
array_push($subcats, $feed);
$query_strategy_part = "cat_id IN (".
@@ -2310,6 +2460,10 @@
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
$allow_archived = true;
+ if (!$override_order) {
+ $override_order = "last_marked DESC, date_entered DESC, updated DESC";
+ }
+
} else if ($feed == -2) { // published virtual feed OR labels category
if (!$cat_view) {
@@ -2317,7 +2471,10 @@
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
$allow_archived = true;
- if (!$override_order) $override_order = "last_read DESC, updated DESC";
+ if (!$override_order) {
+ $override_order = "last_published DESC, date_entered DESC, updated DESC";
+ }
+
} else {
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
@@ -2336,20 +2493,21 @@
} else if ($feed == -3) { // fresh virtual feed
$query_strategy_part = "unread = true AND score >= 0";
- $intl = get_pref($link, "FRESH_ARTICLE_MAX_AGE", $owner_uid);
+ $intl = get_pref("FRESH_ARTICLE_MAX_AGE", $owner_uid);
if (DB_TYPE == "pgsql") {
- $query_strategy_part .= " AND updated > NOW() - INTERVAL '$intl hour' ";
+ $query_strategy_part .= " AND date_entered > NOW() - INTERVAL '$intl hour' ";
} else {
- $query_strategy_part .= " AND updated > DATE_SUB(NOW(), INTERVAL $intl HOUR) ";
+ $query_strategy_part .= " AND date_entered > DATE_SUB(NOW(), INTERVAL $intl HOUR) ";
}
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
} else if ($feed == -4) { // all articles virtual feed
+ $allow_archived = true;
$query_strategy_part = "true";
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
- } else if ($feed <= -10) { // labels
- $label_id = -$feed - 11;
+ } else if ($feed <= LABEL_BASE_INDEX) { // labels
+ $label_id = feed_to_label_id($feed);
$query_strategy_part = "label_id = '$label_id' AND
ttrss_labels2.id = ttrss_user_labels2.label_id AND
@@ -2363,20 +2521,10 @@
$query_strategy_part = "true";
}
- if (get_pref($link, "SORT_HEADLINES_BY_FEED_DATE", $owner_uid)) {
- $date_sort_field = "updated";
- } else {
- $date_sort_field = "date_entered";
- }
-
- if (get_pref($link, 'REVERSE_HEADLINES', $owner_uid)) {
- $order_by = "$date_sort_field";
- } else {
- $order_by = "$date_sort_field DESC";
- }
+ $order_by = "score DESC, date_entered DESC, updated DESC";
- if ($view_mode != "noscores") {
- $order_by = "score DESC, $order_by";
+ if ($view_mode == "unread_first") {
+ $order_by = "unread DESC, $order_by";
}
if ($override_order) {
@@ -2389,17 +2537,18 @@
$feed_title = T_sprintf("Search results: %s", $search);
} else {
if ($cat_view) {
- $feed_title = getCategoryTitle($link, $feed);
+ $feed_title = getCategoryTitle($feed);
} else {
if (is_numeric($feed) && $feed > 0) {
- $result = db_query($link, "SELECT title,site_url,last_error
+ $result = db_query("SELECT title,site_url,last_error,last_updated
FROM ttrss_feeds WHERE id = '$feed' AND owner_uid = $owner_uid");
$feed_title = db_fetch_result($result, 0, "title");
$feed_site_url = db_fetch_result($result, 0, "site_url");
$last_error = db_fetch_result($result, 0, "last_error");
+ $last_updated = db_fetch_result($result, 0, "last_updated");
} else {
- $feed_title = getFeedTitle($link, $feed);
+ $feed_title = getFeedTitle($feed);
}
}
}
@@ -2419,7 +2568,7 @@
}
// proper override_order applied above
- if ($vfeed_query_part && !$ignore_vfeed_group && get_pref($link, 'VFEED_GROUP_BY_FEED', $owner_uid)) {
+ if ($vfeed_query_part && !$ignore_vfeed_group && get_pref('VFEED_GROUP_BY_FEED', $owner_uid)) {
if (!$override_order) {
$order_by = "ttrss_feeds.title, $order_by";
} else {
@@ -2436,6 +2585,9 @@
LEFT JOIN ttrss_feeds ON (feed_id = ttrss_feeds.id)";
}
+ if ($vfeed_query_part)
+ $vfeed_query_part .= "favicon_avg_color,";
+
$query = "SELECT DISTINCT
date_entered,
guid,
@@ -2449,11 +2601,11 @@
num_comments,
comments,
int_id,
+ hide_images,
unread,feed_id,marked,published,link,last_read,orig_feed_id,
- ".SUBSTRING_FOR_DATE."(last_read,1,19) as last_read_noms,
+ last_marked, last_published,
$vfeed_query_part
$content_query_part
- ".SUBSTRING_FOR_DATE."(updated,1,19) as updated_noms,
author,score
FROM
$from_qpart
@@ -2470,7 +2622,7 @@
if ($_REQUEST["debug"]) print $query;
- $result = db_query($link, $query);
+ $result = db_query($query);
} else {
// browsing by tag
@@ -2492,11 +2644,11 @@
"label_cache," .
"link," .
"last_read," .
- SUBSTRING_FOR_DATE . "(last_read,1,19) as last_read_noms," .
+ "(SELECT hide_images FROM ttrss_feeds WHERE id = feed_id) AS hide_images," .
+ "last_marked, last_published, " .
$since_id_part .
$vfeed_query_part .
$content_query_part .
- SUBSTRING_FOR_DATE . "(updated,1,19) as updated_noms," .
"score ";
$feed_kind = "Tags";
@@ -2539,26 +2691,18 @@
// $tag_sql = "tag_name = '$feed'"; DEFAULT way
// error_log("[". $select_qpart . "][" . $from_qpart . "][" .$where_qpart . "]");
- $result = db_query($link, $select_qpart . $from_qpart . $where_qpart);
+ $result = db_query($select_qpart . $from_qpart . $where_qpart);
}
- return array($result, $feed_title, $feed_site_url, $last_error);
+ return array($result, $feed_title, $feed_site_url, $last_error, $last_updated);
}
- function sanitize($link, $str, $force_strip_tags = false, $owner = false, $site_url = false) {
+ function sanitize($str, $force_remove_images = false, $owner = false, $site_url = false) {
if (!$owner) $owner = $_SESSION["uid"];
$res = trim($str); if (!$res) return '';
- $config = array('safe' => 1, 'deny_attribute' => 'style, width, height, class, id', 'comment' => 1, 'cdata' => 1, 'balance' => 0);
- $spec = 'img=width,height';
- $res = htmLawed($res, $config, $spec);
-
- if (get_pref($link, "STRIP_IMAGES", $owner)) {
- $res = preg_replace('/<img[^>]+>/is', '', $res);
- }
-
if (strpos($res, "href=") === false)
$res = rewrite_urls($res);
@@ -2584,10 +2728,35 @@
$entry->setAttribute('href',
rewrite_relative_url($site_url, $entry->getAttribute('href')));
- if ($entry->hasAttribute('src'))
- if (preg_match('/^image.php\?i=[a-z0-9]+$/', $entry->getAttribute('src')) == 0)
- $entry->setAttribute('src',
- rewrite_relative_url($site_url, $entry->getAttribute('src')));
+ if ($entry->hasAttribute('src')) {
+ $src = rewrite_relative_url($site_url, $entry->getAttribute('src'));
+
+ $cached_filename = CACHE_DIR . '/images/' . sha1($src) . '.png';
+
+ if (file_exists($cached_filename)) {
+ $src = SELF_URL_PATH . '/image.php?hash=' . sha1($src);
+ }
+
+ $entry->setAttribute('src', $src);
+ }
+
+ if ($entry->nodeName == 'img') {
+ if (($owner && get_pref("STRIP_IMAGES", $owner)) ||
+ $force_remove_images || $_SESSION["bw_limit"]) {
+
+ $p = $doc->createElement('p');
+
+ $a = $doc->createElement('a');
+ $a->setAttribute('href', $entry->getAttribute('src'));
+
+ $a->appendChild(new DOMText($entry->getAttribute('src')));
+ $a->setAttribute('target', '_blank');
+
+ $p->appendChild($a);
+
+ $entry->parentNode->replaceChild($p, $entry);
+ }
+ }
}
if (strtolower($entry->nodeName) == "a") {
@@ -2595,12 +2764,78 @@
}
}
- $node = $doc->getElementsByTagName('body')->item(0);
+ $entries = $xpath->query('//iframe');
+ foreach ($entries as $entry) {
+ $entry->setAttribute('sandbox', 'allow-scripts');
+
+ }
+
+ $allowed_elements = array('a', 'address', 'audio', 'article', 'aside',
+ 'b', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br',
+ 'caption', 'cite', 'center', 'code', 'col', 'colgroup',
+ 'data', 'dd', 'del', 'details', 'div', 'dl', 'font',
+ 'dt', 'em', 'footer', 'figure', 'figcaption',
+ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'html', 'i',
+ 'img', 'ins', 'kbd', 'li', 'main', 'mark', 'nav', 'noscript',
+ 'ol', 'p', 'pre', 'q', 'ruby', 'rp', 'rt', 's', 'samp', 'section',
+ 'small', 'source', 'span', 'strike', 'strong', 'sub', 'summary',
+ 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'time',
+ 'tr', 'track', 'tt', 'u', 'ul', 'var', 'wbr', 'video' );
+
+ if ($_SESSION['hasSandbox']) $allowed_elements[] = 'iframe';
+
+ $disallowed_attributes = array('id', 'style', 'class');
+
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_SANITIZE) as $plugin) {
+ $retval = $plugin->hook_sanitize($doc, $site_url, $allowed_elements, $disallowed_attributes);
+ if (is_array($retval)) {
+ $doc = $retval[0];
+ $allowed_elements = $retval[1];
+ $disallowed_attributes = $retval[2];
+ } else {
+ $doc = $retval;
+ }
+ }
+
+ $doc->removeChild($doc->firstChild); //remove doctype
+ $doc = strip_harmful_tags($doc, $allowed_elements, $disallowed_attributes);
+ $res = $doc->saveHTML();
+ return $res;
+ }
+
+ function strip_harmful_tags($doc, $allowed_elements, $disallowed_attributes) {
+ $xpath = new DOMXPath($doc);
+ $entries = $xpath->query('//*');
+
+ foreach ($entries as $entry) {
+ if (!in_array($entry->nodeName, $allowed_elements)) {
+ $entry->parentNode->removeChild($entry);
+ }
+
+ if ($entry->hasAttributes()) {
+ $attrs_to_remove = array();
- return $doc->saveXML($node);
+ foreach ($entry->attributes as $attr) {
+
+ if (strpos($attr->nodeName, 'on') === 0) {
+ array_push($attrs_to_remove, $attr);
+ }
+
+ if (in_array($attr->nodeName, $disallowed_attributes)) {
+ array_push($attrs_to_remove, $attr);
+ }
+ }
+
+ foreach ($attrs_to_remove as $attr) {
+ $entry->removeAttributeNode($attr);
+ }
+ }
+ }
+
+ return $doc;
}
- function check_for_update($link) {
+ function check_for_update() {
if (CHECK_FOR_NEW_VERSION && $_SESSION['access_level'] >= 10) {
$version_url = "http://tt-rss.org/version.php?ver=" . VERSION .
"&iid=" . sha1(SELF_URL_PATH);
@@ -2610,8 +2845,7 @@
if ($version_data) {
$version_data = json_decode($version_data, true);
if ($version_data && $version_data['version']) {
-
- if (version_compare(VERSION, $version_data['version']) == -1) {
+ if (version_compare(VERSION_STATIC, $version_data['version']) == -1) {
return $version_data;
}
}
@@ -2620,7 +2854,7 @@
return false;
}
- function catchupArticlesById($link, $ids, $cmode, $owner_uid = false) {
+ function catchupArticlesById($ids, $cmode, $owner_uid = false) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
if (count($ids) == 0) return;
@@ -2634,30 +2868,30 @@
$ids_qpart = join(" OR ", $tmp_ids);
if ($cmode == 0) {
- db_query($link, "UPDATE ttrss_user_entries SET
+ db_query("UPDATE ttrss_user_entries SET
unread = false,last_read = NOW()
WHERE ($ids_qpart) AND owner_uid = $owner_uid");
} else if ($cmode == 1) {
- db_query($link, "UPDATE ttrss_user_entries SET
+ db_query("UPDATE ttrss_user_entries SET
unread = true
WHERE ($ids_qpart) AND owner_uid = $owner_uid");
} else {
- db_query($link, "UPDATE ttrss_user_entries SET
+ db_query("UPDATE ttrss_user_entries SET
unread = NOT unread,last_read = NOW()
WHERE ($ids_qpart) AND owner_uid = $owner_uid");
}
/* update ccache */
- $result = db_query($link, "SELECT DISTINCT feed_id FROM ttrss_user_entries
+ $result = db_query("SELECT DISTINCT feed_id FROM ttrss_user_entries
WHERE ($ids_qpart) AND owner_uid = $owner_uid");
while ($line = db_fetch_assoc($result)) {
- ccache_update($link, $line["feed_id"], $owner_uid);
+ ccache_update($line["feed_id"], $owner_uid);
}
}
- function get_article_tags($link, $id, $owner_uid = 0, $tag_cache = false) {
+ function get_article_tags($id, $owner_uid = 0, $tag_cache = false) {
$a_id = db_escape_string($id);
@@ -2668,13 +2902,12 @@
ttrss_tags WHERE post_int_id = (SELECT int_id FROM ttrss_user_entries WHERE
ref_id = '$a_id' AND owner_uid = '$owner_uid' LIMIT 1) ORDER BY tag_name";
- $obj_id = md5("TAGS:$owner_uid:$id");
$tags = array();
/* check cache first */
if ($tag_cache === false) {
- $result = db_query($link, "SELECT tag_cache FROM ttrss_user_entries
+ $result = db_query("SELECT tag_cache FROM ttrss_user_entries
WHERE ref_id = '$id' AND owner_uid = $owner_uid");
$tag_cache = db_fetch_result($result, 0, "tag_cache");
@@ -2686,7 +2919,7 @@
/* do it the hard way */
- $tmp_result = db_query($link, $query);
+ $tmp_result = db_query($query);
while ($tmp_line = db_fetch_assoc($tmp_result)) {
array_push($tags, $tmp_line["tag_name"]);
@@ -2696,7 +2929,7 @@
$tags_str = db_escape_string(join(",", $tags));
- db_query($link, "UPDATE ttrss_user_entries
+ db_query("UPDATE ttrss_user_entries
SET tag_cache = '$tags_str' WHERE ref_id = '$id'
AND owner_uid = $owner_uid");
}
@@ -2724,43 +2957,29 @@
return true;
}
- function render_login_form($link, $form_id = 0) {
- switch ($form_id) {
- case 0:
- require_once "login_form.php";
- break;
- case 1:
- require_once "mobile/login_form.php";
- break;
- }
- exit;
- }
+ function render_login_form() {
+ header('Cache-Control: public');
- // from http://developer.apple.com/internet/safari/faq.html
- function no_cache_incantation() {
- header("Expires: Mon, 22 Dec 1980 00:00:00 GMT"); // Happy birthday to me :)
- header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
- header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); // HTTP/1.1
- header("Cache-Control: post-check=0, pre-check=0", false);
- header("Pragma: no-cache"); // HTTP/1.0
+ require_once "login_form.php";
+ exit;
}
function format_warning($msg, $id = "") {
global $link;
return "<div class=\"warning\" id=\"$id\">
- <img src=\"".theme_image($link, "images/sign_excl.svg")."\">$msg</div>";
+ <span><img src=\"images/sign_excl.svg\"></span><span>$msg</span></div>";
}
function format_notice($msg, $id = "") {
global $link;
return "<div class=\"notice\" id=\"$id\">
- <img src=\"".theme_image($link, "images/sign_info.svg")."\">$msg</div>";
+ <span><img src=\"images/sign_info.svg\"></span><span>$msg</span></div>";
}
function format_error($msg, $id = "") {
global $link;
return "<div class=\"error\" id=\"$id\">
- <img src=\"".theme_image($link, "images/sign_excl.svg")."\">$msg</div>";
+ <span><img src=\"images/sign_excl.svg\"></span><span>$msg</span></div>";
}
function print_notice($msg) {
@@ -2781,26 +3000,21 @@
return vsprintf(__(array_shift($args)), $args);
}
- function format_inline_player($link, $url, $ctype) {
+ function format_inline_player($url, $ctype) {
$entry = "";
+ $url = htmlspecialchars($url);
+
if (strpos($ctype, "audio/") === 0) {
if ($_SESSION["hasAudio"] && (strpos($ctype, "ogg") !== false ||
- strpos($_SERVER['HTTP_USER_AGENT'], "Chrome") !== false ||
- strpos($_SERVER['HTTP_USER_AGENT'], "Safari") !== false )) {
-
- $id = 'AUDIO-' . uniqid();
+ $_SESSION["hasMp3"])) {
- $entry .= "<audio id=\"$id\"\" controls style='display : none'>
+ $entry .= "<audio controls>
<source type=\"$ctype\" src=\"$url\"></source>
</audio>";
- $entry .= "<span onclick=\"player(this)\"
- title=\"".__("Click to play")."\" status=\"0\"
- class=\"player\" audio-id=\"$id\">".__("Play")."</span>";
-
} else {
$entry .= "<object type=\"application/x-shockwave-flash\"
@@ -2811,7 +3025,8 @@
</object>";
}
- if ($entry) $entry .= "&nbsp;" . basename($url);
+ if ($entry) $entry .= "&nbsp; <a target=\"_blank\"
+ href=\"$url\">" . basename($url) . "</a>";
return $entry;
@@ -2826,7 +3041,7 @@
}
- function format_article($link, $id, $mark_as_read = true, $zoom_mode = false, $owner_uid = false) {
+ function format_article($id, $mark_as_read = true, $zoom_mode = false, $owner_uid = false) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
$rv = array();
@@ -2834,9 +3049,9 @@
$rv['id'] = $id;
/* we can figure out feed_id from article id anyway, why do we
- * pass feed_id here? let's ignore the argument :( */
+ * pass feed_id here? let's ignore the argument :(*/
- $result = db_query($link, "SELECT feed_id FROM ttrss_user_entries
+ $result = db_query("SELECT feed_id FROM ttrss_user_entries
WHERE ref_id = '$id'");
$feed_id = (int) db_fetch_result($result, 0, "feed_id");
@@ -2846,16 +3061,18 @@
//if (!$zoom_mode) { print "<article id='$id'><![CDATA["; };
if ($mark_as_read) {
- $result = db_query($link, "UPDATE ttrss_user_entries
+ $result = db_query("UPDATE ttrss_user_entries
SET unread = false,last_read = NOW()
WHERE ref_id = '$id' AND owner_uid = $owner_uid");
- ccache_update($link, $feed_id, $owner_uid);
+ ccache_update($feed_id, $owner_uid);
}
- $result = db_query($link, "SELECT id,title,link,content,feed_id,comments,int_id,
+ $result = db_query("SELECT id,title,link,content,feed_id,comments,int_id,
".SUBSTRING_FOR_DATE."(updated,1,16) as updated,
(SELECT site_url FROM ttrss_feeds WHERE id = feed_id) as site_url,
+ (SELECT hide_images FROM ttrss_feeds WHERE id = feed_id) as hide_images,
+ (SELECT always_display_enclosures FROM ttrss_feeds WHERE id = feed_id) as always_display_enclosures,
num_comments,
tag_cache,
author,
@@ -2871,14 +3088,12 @@
$tag_cache = $line["tag_cache"];
- $line["tags"] = get_article_tags($link, $id, $owner_uid, $line["tag_cache"]);
+ $line["tags"] = get_article_tags($id, $owner_uid, $line["tag_cache"]);
unset($line["tag_cache"]);
- $line["content"] = sanitize($link, $line["content"], false, $owner_uid, $line["site_url"]);
+ $line["content"] = sanitize($line["content"], false, $owner_uid, $line["site_url"]);
- global $pluginhost;
-
- foreach ($pluginhost->get_hooks($pluginhost::HOOK_RENDER_ARTICLE) as $p) {
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE) as $p) {
$line = $p->hook_render_article($line);
}
@@ -2904,14 +3119,9 @@
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
<title>Tiny Tiny RSS - ".$line["title"]."</title>
<link rel=\"stylesheet\" type=\"text/css\" href=\"tt-rss.css\">
- </head><body>";
+ </head><body id=\"ttrssZoom\">";
}
- $title_escaped = htmlspecialchars($line['title']);
-
- $rv['content'] .= "<div id=\"PTITLE-FULL-$id\" style=\"display : none\">" .
- strip_tags($line['title']) . "</div>";
-
$rv['content'] .= "<div class=\"postReply\" id=\"POST-$id\">";
$rv['content'] .= "<div class=\"postHeader\" id=\"POSTHDR-$id\">";
@@ -2922,7 +3132,7 @@
$entry_author = __(" - ") . $entry_author;
}
- $parsed_updated = make_local_datetime($link, $line["updated"], true,
+ $parsed_updated = make_local_datetime($line["updated"], true,
$owner_uid, true);
$rv['content'] .= "<div class=\"postDate\">$parsed_updated</div>";
@@ -2932,8 +3142,8 @@
title=\"".htmlspecialchars($line['title'])."\"
href=\"" .
htmlspecialchars($line["link"]) . "\">" .
- $line["title"] .
- "<span class='author'>$entry_author</span></a></div>";
+ $line["title"] . "</a>" .
+ "<span class='author'>$entry_author</span></div>";
} else {
$rv['content'] .= "<div class='postTitle'>" . $line["title"] . "$entry_author</div>";
}
@@ -2946,7 +3156,7 @@
if (!$entry_comments) $entry_comments = "&nbsp;"; # placeholder
$rv['content'] .= "<div class='postTags' style='float : right'>
- <img src='".theme_image($link, 'images/tag.png')."'
+ <img src='images/tag.png'
class='tagsPic' alt='Tags' title='Tags'>&nbsp;";
if (!$zoom_mode) {
@@ -2958,23 +3168,26 @@
id=\"ATSTRTIP-$id\" connectId=\"ATSTR-$id\"
position=\"below\">$tags_str_full</div>";
- global $pluginhost;
-
- foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_BUTTON) as $p) {
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_BUTTON) as $p) {
$rv['content'] .= $p->hook_article_button($line);
}
-
} else {
$tags_str = strip_tags($tags_str);
$rv['content'] .= "<span id=\"ATSTR-$id\">$tags_str</span>";
}
$rv['content'] .= "</div>";
- $rv['content'] .= "<div clear='both'>$entry_comments</div>";
+ $rv['content'] .= "<div clear='both'>";
+
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_LEFT_BUTTON) as $p) {
+ $rv['content'] .= $p->hook_article_left_button($line);
+ }
+
+ $rv['content'] .= "$entry_comments</div>";
if ($line["orig_feed_id"]) {
- $tmp_result = db_query($link, "SELECT * FROM ttrss_archived_feeds
+ $tmp_result = db_query("SELECT * FROM ttrss_archived_feeds
WHERE id = ".$line["orig_feed_id"]);
if (db_num_rows($tmp_result) != 0) {
@@ -3009,35 +3222,11 @@
$rv['content'] .= "<div class=\"postContent\">";
- // N-grams
-
- if (DB_TYPE == "pgsql" and defined('_NGRAM_TITLE_RELATED_THRESHOLD')) {
-
- $ngram_result = db_query($link, "SELECT id,title FROM
- ttrss_entries,ttrss_user_entries
- WHERE ref_id = id AND updated >= NOW() - INTERVAL '7 day'
- AND similarity(title, '$title_escaped') >= "._NGRAM_TITLE_RELATED_THRESHOLD."
- AND title != '$title_escaped'
- AND owner_uid = $owner_uid");
-
- if (db_num_rows($ngram_result) > 0) {
- $rv['content'] .= "<div dojoType=\"dijit.form.DropDownButton\">".
- "<span>" . __('Related')."</span>";
- $rv['content'] .= "<div dojoType=\"dijit.Menu\" style=\"display: none;\">";
-
- while ($nline = db_fetch_assoc($ngram_result)) {
- $rv['content'] .= "<div onclick=\"hlOpenInNewTab(null,".$nline['id'].")\"
- dojoType=\"dijit.MenuItem\">".$nline['title']."</div>";
-
- }
- $rv['content'] .= "</div></div><br/";
- }
- }
-
$rv['content'] .= $line["content"];
-
- $rv['content'] .= format_article_enclosures($link, $id,
- $always_display_enclosures, $line["content"]);
+ $rv['content'] .= format_article_enclosures($id,
+ sql_bool_to_bool($line["always_display_enclosures"]),
+ $line["content"],
+ sql_bool_to_bool($line["hide_images"]));
$rv['content'] .= "</div>";
@@ -3047,7 +3236,7 @@
if ($zoom_mode) {
$rv['content'] .= "
- <div style=\"text-align : center\">
+ <div class='footer'>
<button onclick=\"return window.close()\">".
__("Close this window")."</button></div>";
$rv['content'] .= "</body></html>";
@@ -3059,7 +3248,7 @@
function print_checkpoint($n, $s) {
$ts = microtime(true);
- echo sprintf("<!-- CP[$n] %.4f seconds -->", $ts - $s);
+ echo sprintf("<!-- CP[$n] %.4f seconds -->\n", $ts - $s);
return $ts;
}
@@ -3108,23 +3297,23 @@
}
} // function encrypt_password
- function load_filters($link, $feed_id, $owner_uid, $action_id = false) {
+ function load_filters($feed_id, $owner_uid, $action_id = false) {
$filters = array();
- $cat_id = (int)getFeedCategory($link, $feed_id);
+ $cat_id = (int)getFeedCategory($feed_id);
- $result = db_query($link, "SELECT * FROM ttrss_filters2 WHERE
- owner_uid = $owner_uid AND enabled = true");
+ $result = db_query("SELECT * FROM ttrss_filters2 WHERE
+ owner_uid = $owner_uid AND enabled = true ORDER BY order_id, title");
$check_cats = join(",", array_merge(
- getParentCategories($link, $cat_id, $owner_uid),
+ getParentCategories($cat_id, $owner_uid),
array($cat_id)));
while ($line = db_fetch_assoc($result)) {
$filter_id = $line["id"];
- $result2 = db_query($link, "SELECT
- r.reg_exp, r.feed_id, r.cat_id, r.cat_filter, t.name AS type_name
+ $result2 = db_query("SELECT
+ r.reg_exp, r.inverse, r.feed_id, r.cat_id, r.cat_filter, t.name AS type_name
FROM ttrss_filters2_rules AS r,
ttrss_filter_types AS t
WHERE
@@ -3141,11 +3330,12 @@
$rule = array();
$rule["reg_exp"] = $rule_line["reg_exp"];
$rule["type"] = $rule_line["type_name"];
+ $rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]);
array_push($rules, $rule);
}
- $result2 = db_query($link, "SELECT a.action_param,t.name AS type_name
+ $result2 = db_query("SELECT a.action_param,t.name AS type_name
FROM ttrss_filters2_actions AS a,
ttrss_filter_actions AS t
WHERE
@@ -3164,6 +3354,7 @@
$filter = array();
$filter["match_any_rule"] = sql_bool_to_bool($line["match_any_rule"]);
+ $filter["inverse"] = sql_bool_to_bool($line["inverse"]);
$filter["rules"] = $rules;
$filter["actions"] = $actions;
@@ -3193,80 +3384,35 @@
return is_file(ICONS_DIR . "/$id.ico") && filesize(ICONS_DIR . "/$id.ico") > 0;
}
- function init_connection($link) {
- if ($link) {
-
- if (DB_TYPE == "pgsql") {
- pg_query($link, "set client_encoding = 'UTF-8'");
- pg_set_client_encoding("UNICODE");
- pg_query($link, "set datestyle = 'ISO, european'");
- pg_query($link, "set TIME ZONE 0");
- } else {
- db_query($link, "SET time_zone = '+0:0'");
-
- if (defined('MYSQL_CHARSET') && MYSQL_CHARSET) {
- db_query($link, "SET NAMES " . MYSQL_CHARSET);
- }
- }
+ function init_plugins() {
+ PluginHost::getInstance()->load(PLUGINS, PluginHost::KIND_ALL);
- global $pluginhost;
-
- $pluginhost = new PluginHost($link);
- $pluginhost->load(PLUGINS, $pluginhost::KIND_ALL);
-
- return true;
- } else {
- print "Unable to connect to database:" . db_last_error();
- return false;
- }
+ return true;
}
function format_tags_string($tags, $id) {
+ if (!is_array($tags) || count($tags) == 0) {
+ return __("no tags");
+ } else {
+ $maxtags = min(5, count($tags));
- $tags_str = "";
- $tags_nolinks_str = "";
-
- $num_tags = 0;
-
- $tag_limit = 6;
-
- $formatted_tags = array();
-
- foreach ($tags as $tag) {
- $num_tags++;
- $tag_escaped = str_replace("'", "\\'", $tag);
-
- if (mb_strlen($tag) > 30) {
- $tag = truncate_string($tag, 30);
+ for ($i = 0; $i < $maxtags; $i++) {
+ $tags_str .= "<a class=\"tag\" href=\"#\" onclick=\"viewfeed('".$tags[$i]."'\")>" . $tags[$i] . "</a>, ";
}
- $tag_str = "<a href=\"javascript:viewfeed('$tag_escaped')\">$tag</a>";
-
- array_push($formatted_tags, $tag_str);
+ $tags_str = mb_substr($tags_str, 0, mb_strlen($tags_str)-2);
- $tmp_tags_str = implode(", ", $formatted_tags);
+ if (count($tags) > $maxtags)
+ $tags_str .= ", &hellip;";
- if ($num_tags == $tag_limit || mb_strlen($tmp_tags_str) > 150) {
- break;
- }
+ return $tags_str;
}
-
- $tags_str = implode(", ", $formatted_tags);
-
- if ($num_tags < count($tags)) {
- $tags_str .= ", &hellip;";
- }
-
- if ($num_tags == 0) {
- $tags_str = __("no tags");
- }
-
- return $tags_str;
-
}
function format_article_labels($labels, $id) {
+ if (!is_array($labels)) return '';
+
$labels_str = "";
foreach ($labels as $l) {
@@ -3289,7 +3435,7 @@
}
- function get_feed_category($link, $feed_cat, $parent_cat_id = false) {
+ function get_feed_category($feed_cat, $parent_cat_id = false) {
if ($parent_cat_id) {
$parent_qpart = "parent_cat = '$parent_cat_id'";
$parent_insert = "'$parent_cat_id'";
@@ -3298,7 +3444,7 @@
$parent_insert = "NULL";
}
- $result = db_query($link,
+ $result = db_query(
"SELECT id FROM ttrss_feed_categories
WHERE $parent_qpart AND title = '$feed_cat' AND owner_uid = ".$_SESSION["uid"]);
@@ -3309,11 +3455,11 @@
}
}
- function add_feed_category($link, $feed_cat, $parent_cat_id = false) {
+ function add_feed_category($feed_cat, $parent_cat_id = false) {
if (!$feed_cat) return false;
- db_query($link, "BEGIN");
+ db_query("BEGIN");
if ($parent_cat_id) {
$parent_qpart = "parent_cat = '$parent_cat_id'";
@@ -3323,17 +3469,19 @@
$parent_insert = "NULL";
}
- $result = db_query($link,
+ $feed_cat = mb_substr($feed_cat, 0, 250);
+
+ $result = db_query(
"SELECT id FROM ttrss_feed_categories
WHERE $parent_qpart AND title = '$feed_cat' AND owner_uid = ".$_SESSION["uid"]);
if (db_num_rows($result) == 0) {
- $result = db_query($link,
+ $result = db_query(
"INSERT INTO ttrss_feed_categories (owner_uid,title,parent_cat)
VALUES ('".$_SESSION["uid"]."', '$feed_cat', $parent_insert)");
- db_query($link, "COMMIT");
+ db_query("COMMIT");
return true;
}
@@ -3341,8 +3489,8 @@
return false;
}
- function getArticleFeed($link, $id) {
- $result = db_query($link, "SELECT feed_id FROM ttrss_user_entries
+ function getArticleFeed($id) {
+ $result = db_query("SELECT feed_id FROM ttrss_user_entries
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
if (db_num_rows($result) != 0) {
@@ -3387,14 +3535,14 @@
}
- function get_article_enclosures($link, $id) {
+ function get_article_enclosures($id) {
$query = "SELECT * FROM ttrss_enclosures
WHERE post_id = '$id' AND content_url != ''";
$rv = array();
- $result = db_query($link, $query);
+ $result = db_query($query);
if (db_num_rows($result) > 0) {
while ($line = db_fetch_assoc($result)) {
@@ -3405,7 +3553,7 @@
return $rv;
}
- function save_email_address($link, $email) {
+ function save_email_address($email) {
// FIXME: implement persistent storage of emails
if (!$_SESSION['stored_emails'])
@@ -3416,13 +3564,13 @@
}
- function get_feed_access_key($link, $feed_id, $is_cat, $owner_uid = false) {
+ function get_feed_access_key($feed_id, $is_cat, $owner_uid = false) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
$sql_is_cat = bool_to_sql_bool($is_cat);
- $result = db_query($link, "SELECT access_key FROM ttrss_access_keys
+ $result = db_query("SELECT access_key FROM ttrss_access_keys
WHERE feed_id = '$feed_id' AND is_cat = $sql_is_cat
AND owner_uid = " . $owner_uid);
@@ -3431,7 +3579,7 @@
} else {
$key = db_escape_string(sha1(uniqid(rand(), true)));
- $result = db_query($link, "INSERT INTO ttrss_access_keys
+ $result = db_query("INSERT INTO ttrss_access_keys
(access_key, feed_id, is_cat, owner_uid)
VALUES ('$key', '$feed_id', $sql_is_cat, '$owner_uid')");
@@ -3475,9 +3623,9 @@
return is_html(fetch_file_contents($url, false, $login, $pass));
}
- function print_label_select($link, $name, $value, $attributes = "") {
+ function print_label_select($name, $value, $attributes = "") {
- $result = db_query($link, "SELECT caption FROM ttrss_labels2
+ $result = db_query("SELECT caption FROM ttrss_labels2
WHERE owner_uid = '".$_SESSION["uid"]."' ORDER BY caption");
print "<select default=\"$value\" name=\"" . htmlspecialchars($name) .
@@ -3499,10 +3647,10 @@
}
- function format_article_enclosures($link, $id, $always_display_enclosures,
- $article_content) {
+ function format_article_enclosures($id, $always_display_enclosures,
+ $article_content, $hide_images = false) {
- $result = get_article_enclosures($link, $id);
+ $result = get_article_enclosures($id);
$rv = '';
if (count($result) > 0) {
@@ -3520,7 +3668,7 @@
$filename = substr($url, strrpos($url, "/")+1);
- $player = format_inline_player($link, $url, $ctype);
+ $player = format_inline_player($url, $ctype);
if ($player) array_push($entries_inline, $player);
@@ -3541,7 +3689,7 @@
array_push($entries, $entry);
}
- if (!get_pref($link, "STRIP_IMAGES")) {
+ if ($_SESSION['uid'] && !get_pref("STRIP_IMAGES") && !$_SESSION["bw_limit"]) {
if ($always_display_enclosures ||
!preg_match("/<img/i", $article_content)) {
@@ -3550,10 +3698,16 @@
if (preg_match("/image/", $entry["type"]) ||
preg_match("/\.(jpg|png|gif|bmp)/i", $entry["filename"])) {
- $rv .= "<p><img
- alt=\"".htmlspecialchars($entry["filename"])."\"
- src=\"" .htmlspecialchars($entry["url"]) . "\"/></p>";
+ if (!$hide_images) {
+ $rv .= "<p><img
+ alt=\"".htmlspecialchars($entry["filename"])."\"
+ src=\"" .htmlspecialchars($entry["url"]) . "\"/></p>";
+ } else {
+ $rv .= "<p><a target=\"_blank\"
+ href=\"".htmlspecialchars($entry["url"])."\"
+ >" .htmlspecialchars($entry["url"]) . "</a></p>";
+ }
}
}
}
@@ -3565,20 +3719,22 @@
$rv .= "<hr clear='both'/>";
}
- $rv .= "<br/><div dojoType=\"dijit.form.DropDownButton\">".
- "<span>" . __('Attachments')."</span>";
- $rv .= "<div dojoType=\"dijit.Menu\" style=\"display: none;\">";
+ $rv .= "<select class=\"attachments\" onchange=\"openSelectedAttachment(this)\">".
+ "<option value=''>" . __('Attachments')."</option>";
+
+ foreach ($entries as $entry) {
+ $rv .= "<option value=\"".htmlspecialchars($entry["url"])."\">" . htmlspecialchars($entry["filename"]) . "</option>";
- foreach ($entries_html as $entry) { $rv .= $entry; };
+ };
- $rv .= "</div></div>";
+ $rv .= "</select>";
}
return $rv;
}
- function getLastArticleId($link) {
- $result = db_query($link, "SELECT MAX(ref_id) AS id FROM ttrss_user_entries
+ function getLastArticleId() {
+ $result = db_query("SELECT MAX(ref_id) AS id FROM ttrss_user_entries
WHERE owner_uid = " . $_SESSION["uid"]);
if (db_num_rows($result) == 1) {
@@ -3636,7 +3792,9 @@
$sphinxClient = new SphinxClient();
- $sphinxClient->SetServer('localhost', 9312);
+ $sphinxpair = explode(":", SPHINX_SERVER, 2);
+
+ $sphinxClient->SetServer($sphinxpair[0], $sphinxpair[1]);
$sphinxClient->SetConnectTimeout(1);
$sphinxClient->SetFieldWeights(array('title' => 70, 'content' => 30,
@@ -3662,7 +3820,7 @@
return $ids;
}
- function cleanup_tags($link, $days = 14, $limit = 1000) {
+ function cleanup_tags($days = 14, $limit = 1000) {
if (DB_TYPE == "pgsql") {
$interval_query = "date_updated < NOW() - INTERVAL '$days days'";
@@ -3680,7 +3838,7 @@
WHERE post_int_id = int_id AND $interval_query AND
ref_id = ttrss_entries.id AND tag_cache != '' LIMIT $limit_part";
- $result = db_query($link, $query);
+ $result = db_query($query);
$ids = array();
@@ -3690,10 +3848,9 @@
if (count($ids) > 0) {
$ids = join(",", $ids);
- print ".";
- $tmp_result = db_query($link, "DELETE FROM ttrss_tags WHERE id IN ($ids)");
- $tags_deleted += db_affected_rows($link, $tmp_result);
+ $tmp_result = db_query("DELETE FROM ttrss_tags WHERE id IN ($ids)");
+ $tags_deleted += db_affected_rows($tmp_result);
} else {
break;
}
@@ -3701,13 +3858,11 @@
$limit -= $limit_part;
}
- print "\n";
-
return $tags_deleted;
}
- function print_user_stylesheet($link) {
- $value = get_pref($link, 'USER_STYLESHEET');
+ function print_user_stylesheet() {
+ $value = get_pref('USER_STYLESHEET');
if ($value) {
print "<style type=\"text/css\">";
@@ -3763,7 +3918,7 @@
return $html;
}
- function filter_to_sql($link, $filter, $owner_uid) {
+ function filter_to_sql($filter, $owner_uid) {
$query = array();
if (DB_TYPE == "pgsql")
@@ -3779,7 +3934,7 @@
$rule['reg_exp'] = db_escape_string($rule['reg_exp']);
- switch ($rule["type"]) {
+ switch ($rule["type"]) {
case "title":
$qpart = "LOWER(ttrss_entries.title) $reg_qpart LOWER('".
$rule['reg_exp'] . "')";
@@ -3807,6 +3962,8 @@
break;
}
+ if (isset($rule['inverse'])) $qpart = "NOT ($qpart)";
+
if (isset($rule["feed_id"]) && $rule["feed_id"] > 0) {
$qpart .= " AND feed_id = " . db_escape_string($rule["feed_id"]);
}
@@ -3814,7 +3971,7 @@
if (isset($rule["cat_id"])) {
if ($rule["cat_id"] > 0) {
- $children = getChildCategories($link, $rule["cat_id"], $owner_uid);
+ $children = getChildCategories($rule["cat_id"], $owner_uid);
array_push($children, $rule["cat_id"]);
$children = join(",", $children);
@@ -3833,10 +3990,14 @@
}
if (count($query) > 0) {
- return "(" . join($filter["match_any_rule"] ? "OR" : "AND", $query) . ")";
+ $fullquery = "(" . join($filter["match_any_rule"] ? "OR" : "AND", $query) . ")";
} else {
- return "(false)";
+ $fullquery = "(false)";
}
+
+ if ($filter['inverse']) $fullquery = "(NOT $fullquery)";
+
+ return $fullquery;
}
if (!function_exists('gzdecode')) {
@@ -3884,8 +4045,8 @@
return $tempname;
}
- function getFeedCategory($link, $feed) {
- $result = db_query($link, "SELECT cat_id FROM ttrss_feeds
+ function getFeedCategory($feed) {
+ $result = db_query("SELECT cat_id FROM ttrss_feeds
WHERE id = '$feed'");
if (db_num_rows($result) > 0) {
@@ -3900,4 +4061,167 @@
return in_array($interface, class_implements($class));
}
+ function geturl($url){
+
+ if (!function_exists('curl_init'))
+ return user_error('CURL Must be installed for geturl function to work. Ask your host to enable it or uncomment extension=php_curl.dll in php.ini', E_USER_ERROR);
+
+ $curl = curl_init();
+ $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
+ $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
+ $header[] = "Cache-Control: max-age=0";
+ $header[] = "Connection: keep-alive";
+ $header[] = "Keep-Alive: 300";
+ $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
+ $header[] = "Accept-Language: en-us,en;q=0.5";
+ $header[] = "Pragma: ";
+
+ curl_setopt($curl, CURLOPT_URL, $url);
+ curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Firefox/5.0');
+ curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
+ curl_setopt($curl, CURLOPT_HEADER, true);
+ curl_setopt($curl, CURLOPT_REFERER, $url);
+ curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
+ curl_setopt($curl, CURLOPT_AUTOREFERER, true);
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+ //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); //CURLOPT_FOLLOWLOCATION Disabled...
+ curl_setopt($curl, CURLOPT_TIMEOUT, 60);
+
+ $html = curl_exec($curl);
+
+ $status = curl_getinfo($curl);
+ curl_close($curl);
+
+ if($status['http_code']!=200){
+ if($status['http_code'] == 301 || $status['http_code'] == 302) {
+ list($header) = explode("\r\n\r\n", $html, 2);
+ $matches = array();
+ preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches);
+ $url = trim(str_replace($matches[1],"",$matches[0]));
+ $url_parsed = parse_url($url);
+ return (isset($url_parsed))? geturl($url):'';
+ }
+ $oline='';
+ foreach($status as $key=>$eline){$oline.='['.$key.']'.$eline.' ';}
+ $line =$oline." \r\n ".$url."\r\n-----------------\r\n";
+# $handle = @fopen('./curl.error.log', 'a');
+# fwrite($handle, $line);
+ return FALSE;
+ }
+ return $url;
+ }
+
+ function get_minified_js($files) {
+ require_once 'lib/jshrink/Minifier.php';
+
+ $rv = '';
+
+ foreach ($files as $js) {
+ if (!isset($_GET['debug'])) {
+ $cached_file = CACHE_DIR . "/js/".basename($js).".js";
+
+ if (file_exists($cached_file) &&
+ is_readable($cached_file) &&
+ filemtime($cached_file) >= filemtime("js/$js.js")) {
+
+ $rv .= file_get_contents($cached_file);
+
+ } else {
+ $minified = JShrink\Minifier::minify(file_get_contents("js/$js.js"));
+ file_put_contents($cached_file, $minified);
+ $rv .= $minified;
+ }
+ } else {
+ $rv .= file_get_contents("js/$js.js");
+ }
+ }
+
+ return $rv;
+ }
+
+ function stylesheet_tag($filename) {
+ $timestamp = filemtime($filename);
+
+ echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$filename?$timestamp\"/>\n";
+ }
+
+ function javascript_tag($filename) {
+ $query = "";
+
+ if (!(strpos($filename, "?") === FALSE)) {
+ $query = substr($filename, strpos($filename, "?")+1);
+ $filename = substr($filename, 0, strpos($filename, "?"));
+ }
+
+ $timestamp = filemtime($filename);
+
+ if ($query) $timestamp .= "&$query";
+
+ echo "<script type=\"text/javascript\" charset=\"utf-8\" src=\"$filename?$timestamp\"></script>\n";
+ }
+
+ function calculate_dep_timestamp() {
+ $files = array_merge(glob("js/*.js"), glob("*.css"));
+
+ $max_ts = -1;
+
+ foreach ($files as $file) {
+ if (filemtime($file) > $max_ts) $max_ts = filemtime($file);
+ }
+
+ return $max_ts;
+ }
+
+ function T_js_decl($s1, $s2) {
+ if ($s1 && $s2) {
+ $s1 = preg_replace("/\n/", "", $s1);
+ $s2 = preg_replace("/\n/", "", $s2);
+
+ $s1 = preg_replace("/\"/", "\\\"", $s1);
+ $s2 = preg_replace("/\"/", "\\\"", $s2);
+
+ return "T_messages[\"$s1\"] = \"$s2\";\n";
+ }
+ }
+
+ function init_js_translations() {
+
+ print 'var T_messages = new Object();
+
+ function __(msg) {
+ if (T_messages[msg]) {
+ return T_messages[msg];
+ } else {
+ return msg;
+ }
+ }
+
+ function ngettext(msg1, msg2, n) {
+ return (parseInt(n) > 1) ? msg2 : msg1;
+ }';
+
+ $l10n = _get_reader();
+
+ for ($i = 0; $i < $l10n->total; $i++) {
+ $orig = $l10n->get_original_string($i);
+ $translation = __($orig);
+
+ print T_js_decl($orig, $translation);
+ }
+ }
+
+ function label_to_feed_id($label) {
+ return LABEL_BASE_INDEX - 1 - abs($label);
+ }
+
+ function feed_to_label_id($feed) {
+ return LABEL_BASE_INDEX - 1 + abs($feed);
+ }
+
+ function format_libxml_error($error) {
+ return T_sprintf("LibXML error %s at line %d (column %d): %s",
+ $error->code, $error->line, $error->column,
+ $error->message);
+ }
+
?>
diff --git a/include/labels.php b/include/labels.php
index da7e3f97b..c2a48a338 100644
--- a/include/labels.php
+++ b/include/labels.php
@@ -1,6 +1,6 @@
<?php
- function label_find_id($link, $label, $owner_uid) {
- $result = db_query($link,
+ function label_find_id($label, $owner_uid) {
+ $result = db_query(
"SELECT id FROM ttrss_labels2 WHERE caption = '$label'
AND owner_uid = '$owner_uid' LIMIT 1");
@@ -11,12 +11,12 @@
}
}
- function get_article_labels($link, $id, $owner_uid = false) {
+ function get_article_labels($id, $owner_uid = false) {
$rv = array();
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
- $result = db_query($link, "SELECT label_cache FROM
+ $result = db_query("SELECT label_cache FROM
ttrss_user_entries WHERE ref_id = '$id' AND owner_uid = " .
$owner_uid);
@@ -33,7 +33,7 @@
}
}
- $result = db_query($link,
+ $result = db_query(
"SELECT DISTINCT label_id,caption,fg_color,bg_color
FROM ttrss_labels2, ttrss_user_labels2
WHERE id = label_id
@@ -48,16 +48,16 @@
}
if (count($rv) > 0)
- label_update_cache($link, $owner_uid, $id, $rv);
+ label_update_cache($owner_uid, $id, $rv);
else
- label_update_cache($link, $owner_uid, $id, array("no-labels" => 1));
+ label_update_cache($owner_uid, $id, array("no-labels" => 1));
return $rv;
}
- function label_find_caption($link, $label, $owner_uid) {
- $result = db_query($link,
+ function label_find_caption($label, $owner_uid) {
+ $result = db_query(
"SELECT caption FROM ttrss_labels2 WHERE id = '$label'
AND owner_uid = '$owner_uid' LIMIT 1");
@@ -68,10 +68,10 @@
}
}
- function get_all_labels($link, $owner_uid) {
+ function get_all_labels($owner_uid) {
$rv = array();
- $result = db_query($link, "SELECT fg_color, bg_color, caption FROM ttrss_labels2 WHERE owner_uid = " . $owner_uid);
+ $result = db_query("SELECT fg_color, bg_color, caption FROM ttrss_labels2 WHERE owner_uid = " . $owner_uid);
while ($line = db_fetch_assoc($result)) {
array_push($rv, $line);
@@ -80,50 +80,50 @@
return $rv;
}
- function label_update_cache($link, $owner_uid, $id, $labels = false, $force = false) {
+ function label_update_cache($owner_uid, $id, $labels = false, $force = false) {
if ($force)
- label_clear_cache($link, $id);
+ label_clear_cache($id);
if (!$labels)
- $labels = get_article_labels($link, $id);
+ $labels = get_article_labels($id);
$labels = db_escape_string(json_encode($labels));
- db_query($link, "UPDATE ttrss_user_entries SET
+ db_query("UPDATE ttrss_user_entries SET
label_cache = '$labels' WHERE ref_id = '$id' AND owner_uid = '$owner_uid'");
}
- function label_clear_cache($link, $id) {
+ function label_clear_cache($id) {
- db_query($link, "UPDATE ttrss_user_entries SET
+ db_query("UPDATE ttrss_user_entries SET
label_cache = '' WHERE ref_id = '$id'");
}
- function label_remove_article($link, $id, $label, $owner_uid) {
+ function label_remove_article($id, $label, $owner_uid) {
- $label_id = label_find_id($link, $label, $owner_uid);
+ $label_id = label_find_id($label, $owner_uid);
if (!$label_id) return;
- $result = db_query($link,
+ $result = db_query(
"DELETE FROM ttrss_user_labels2
WHERE
label_id = '$label_id' AND
article_id = '$id'");
- label_clear_cache($link, $id);
+ label_clear_cache($id);
}
- function label_add_article($link, $id, $label, $owner_uid) {
+ function label_add_article($id, $label, $owner_uid) {
- $label_id = label_find_id($link, $label, $owner_uid);
+ $label_id = label_find_id($label, $owner_uid);
if (!$label_id) return;
- $result = db_query($link,
+ $result = db_query(
"SELECT
article_id FROM ttrss_labels2, ttrss_user_labels2
WHERE
@@ -133,73 +133,66 @@
LIMIT 1");
if (db_num_rows($result) == 0) {
- db_query($link, "INSERT INTO ttrss_user_labels2
+ db_query("INSERT INTO ttrss_user_labels2
(label_id, article_id) VALUES ('$label_id', '$id')");
}
- label_clear_cache($link, $id);
+ label_clear_cache($id);
}
- function label_remove($link, $id, $owner_uid) {
+ function label_remove($id, $owner_uid) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
- db_query($link, "BEGIN");
+ db_query("BEGIN");
- $result = db_query($link, "SELECT caption FROM ttrss_labels2
+ $result = db_query("SELECT caption FROM ttrss_labels2
WHERE id = '$id'");
$caption = db_fetch_result($result, 0, "caption");
- $result = db_query($link, "DELETE FROM ttrss_labels2 WHERE id = '$id'
+ $result = db_query("DELETE FROM ttrss_labels2 WHERE id = '$id'
AND owner_uid = " . $owner_uid);
- if (db_affected_rows($link, $result) != 0 && $caption) {
+ if (db_affected_rows($result) != 0 && $caption) {
/* Remove access key for the label */
- $ext_id = -11 - $id;
+ $ext_id = LABEL_BASE_INDEX - 1 - $id;
- db_query($link, "DELETE FROM ttrss_access_keys WHERE
+ db_query("DELETE FROM ttrss_access_keys WHERE
feed_id = '$ext_id' AND owner_uid = $owner_uid");
- /* Disable filters that reference label being removed */
-
- db_query($link, "UPDATE ttrss_filters SET
- enabled = false WHERE action_param = '$caption'
- AND action_id = 7
- AND owner_uid = " . $owner_uid);
-
/* Remove cached data */
- db_query($link, "UPDATE ttrss_user_entries SET label_cache = ''
+ db_query("UPDATE ttrss_user_entries SET label_cache = ''
WHERE label_cache LIKE '%$caption%' AND owner_uid = " . $owner_uid);
}
- db_query($link, "COMMIT");
+ db_query("COMMIT");
}
- function label_create($link, $caption, $fg_color = '', $bg_color = '', $owner_uid) {
+ function label_create($caption, $fg_color = '', $bg_color = '', $owner_uid = false) {
if (!$owner_uid) $owner_uid = $_SESSION['uid'];
- db_query($link, "BEGIN");
+ db_query("BEGIN");
$result = false;
- $result = db_query($link, "SELECT id FROM ttrss_labels2
+ $result = db_query("SELECT id FROM ttrss_labels2
WHERE caption = '$caption' AND owner_uid = $owner_uid");
if (db_num_rows($result) == 0) {
- $result = db_query($link,
+ $result = db_query(
"INSERT INTO ttrss_labels2 (caption,owner_uid,fg_color,bg_color)
VALUES ('$caption', '$owner_uid', '$fg_color', '$bg_color')");
- $result = db_affected_rows($link, $result) != 0;
+ $result = db_affected_rows($result) != 0;
}
- db_query($link, "COMMIT");
+ db_query("COMMIT");
return $result;
}
diff --git a/include/localized_schema.php b/include/localized_schema.php
deleted file mode 100644
index 3497c9c27..000000000
--- a/include/localized_schema.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php # This file has been generated at: Sun Feb 17 13:58:53 MSK 2013
-
-__("Title");
-__("Title or Content");
-__("Link");
-__("Content");
-__("Article Date");
-
-__("Delete article");
-__("Mark as read");
-__("Set starred");
-__("Publish article");
-__("Assign tags");
-__("Assign label");
-__("Modify score");
-
-__("General");
-__("Interface");
-__("Advanced");
-
-__('This option is useful when you are reading several planet-type aggregators with partially colliding userbase. When disabled, it forces same posts from different feeds to appear only once.');
-__('Display expanded list of feed articles, instead of separate displays for headlines and article content');
-__('Automatically open next feed with unread articles after marking one as read');
-__('This option enables sending daily digest of new (and unread) headlines on your configured e-mail address');
-__('This option enables marking articles as read automatically while you scroll article list.');
-__('Strip all but most common HTML tags when reading articles.');
-__('When auto-detecting tags in articles these tags will not be applied (comma-separated list).');
-__('When this option is enabled, headlines in Special feeds and Labels are grouped by feeds');
-__('Customize CSS stylesheet to your liking');
-__('Use feed-specified date to sort headlines instead of local import date.');
-__('Click to register your SSL client certificate with tt-rss');
-__('Uses UTC timezone');
-__('Purge articles after this number of days (0 - disables)');
-__('Default interval between feed updates');
-__('Amount of articles to display at once');
-__('Allow duplicate posts');
-__('Enable feed categories');
-__('Show content preview in headlines list');
-__('Short date format');
-__('Long date format');
-__('Combined feed display');
-__('Hide feeds with no unread messages');
-__('On catchup show next feed');
-__('Sort feeds by unread articles count');
-__('Reverse headline order (oldest first)');
-__('Enable e-mail digest');
-__('Confirm marking feed as read');
-__('Automatically mark articles as read');
-__('Strip unsafe tags from articles');
-__('Blacklisted tags');
-__('Maximum age of fresh articles (in hours)');
-__('Mark articles in e-mail digest as read');
-__('Automatically expand articles in combined mode');
-__('Purge unread articles');
-__('Show special feeds when hiding read feeds');
-__('Group headlines in virtual feeds');
-__('Do not show images in articles');
-__('Enable external API');
-__('User timezone');
-__('Customize stylesheet');
-__('Sort headlines by feed date');
-__('Login with an SSL certificate');
-__('Try to send digests around specified time');
-__('Assign articles to labels automatically');
-?>
diff --git a/include/login_form.php b/include/login_form.php
index 68df544e3..b7dae1016 100644
--- a/include/login_form.php
+++ b/include/login_form.php
@@ -65,6 +65,20 @@
font-size : 12px;
}
+ a.forgotpass {
+ text-align : right;
+ font-size : 11px;
+ display : inline-block;
+ }
+
+ a {
+ color : #4684ff;
+ }
+
+ a:hover {
+ color : black;
+ }
+
div.footer a {
color : gray;
}
@@ -108,7 +122,7 @@ function init() {
function fetchProfiles() {
try {
- var query = "?op=getProfiles&login=" + param_escape(document.forms["loginForm"].login.value);
+ var query = "op=getProfiles&login=" + param_escape(document.forms["loginForm"].login.value);
if (query) {
new Ajax.Request("public.php", {
@@ -174,20 +188,18 @@ function bwLimitChange(elem) {
value="<?php echo $_SESSION["fake_login"] ?>" />
</div>
+ <?php if (strpos(PLUGINS, "auth_internal") !== FALSE) { ?>
+
<div class="row">
<label><?php echo __("Password:") ?></label>
<input type="password" name="password" required="1"
style="width : 220px" class="input"
value="<?php echo $_SESSION["fake_password"] ?>"/>
+ <label></label>
+ <a class='forgotpass' href="public.php?op=forgotpass"><?php echo __("I forgot my password") ?></a>
</div>
- <div class="row">
- <label><?php echo __("Language:") ?></label>
- <?php
- print_select_hash("language", $_COOKIE["ttrss_lang"], get_translations(),
- "style='width : 220px; margin : 0px' dojoType='dijit.form.Select'");
- ?>
- </div>
+ <?php } ?>
<div class="row">
<label><?php echo __("Profile:") ?></label>
@@ -202,9 +214,23 @@ function bwLimitChange(elem) {
<label>&nbsp;</label>
<input dojoType="dijit.form.CheckBox" name="bw_limit" id="bw_limit" type="checkbox"
onchange="bwLimitChange(this)">
- <label style='display : inline' for="bw_limit"><?php echo __("Use less traffic") ?></label>
+ <label id="bw_limit_label" style='display : inline' for="bw_limit"><?php echo __("Use less traffic") ?></label>
+ </div>
+
+ <div dojoType="dijit.Tooltip" connectId="bw_limit_label" position="below">
+<?php echo __("Does not display images in articles, reduces automatic refreshes."); ?>
+ </div>
+
+ <?php if (SESSION_COOKIE_LIFETIME > 0) { ?>
+
+ <div class="row">
+ <label>&nbsp;</label>
+ <input dojoType="dijit.form.CheckBox" name="remember_me" id="remember_me" type="checkbox">
+ <label style='display : inline' for="remember_me"><?php echo __("Remember me") ?></label>
</div>
+ <?php } ?>
+
<div class="row" style='text-align : right'>
<button dojoType="dijit.form.Button" type="submit"><?php echo __('Log in') ?></button>
<?php if (defined('ENABLE_REGISTRATION') && ENABLE_REGISTRATION) { ?>
diff --git a/include/rssfuncs.php b/include/rssfuncs.php
index 5c49008c5..612c914c0 100644
--- a/include/rssfuncs.php
+++ b/include/rssfuncs.php
@@ -1,19 +1,19 @@
<?php
- define('DAEMON_UPDATE_LOGIN_LIMIT', 30);
- define('DAEMON_FEED_LIMIT', 100);
- define('DAEMON_SLEEP_INTERVAL', 60);
+ define_default('DAEMON_UPDATE_LOGIN_LIMIT', 30);
+ define_default('DAEMON_FEED_LIMIT', 500);
+ define_default('DAEMON_SLEEP_INTERVAL', 120);
- function update_feedbrowser_cache($link) {
+ function update_feedbrowser_cache() {
- $result = db_query($link, "SELECT feed_url, site_url, title, COUNT(id) AS subscribers
+ $result = db_query("SELECT feed_url, site_url, title, COUNT(id) AS subscribers
FROM ttrss_feeds WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
WHERE tf.feed_url = ttrss_feeds.feed_url
AND (private IS true OR auth_login != '' OR auth_pass != '' OR feed_url LIKE '%:%@%/%'))
GROUP BY feed_url, site_url, title ORDER BY subscribers DESC LIMIT 1000");
- db_query($link, "BEGIN");
+ db_query("BEGIN");
- db_query($link, "DELETE FROM ttrss_feedbrowser_cache");
+ db_query("DELETE FROM ttrss_feedbrowser_cache");
$count = 0;
@@ -23,12 +23,12 @@
$title = db_escape_string($line["title"]);
$site_url = db_escape_string($line["site_url"]);
- $tmp_result = db_query($link, "SELECT subscribers FROM
+ $tmp_result = db_query("SELECT subscribers FROM
ttrss_feedbrowser_cache WHERE feed_url = '$feed_url'");
if (db_num_rows($tmp_result) == 0) {
- db_query($link, "INSERT INTO ttrss_feedbrowser_cache
+ db_query("INSERT INTO ttrss_feedbrowser_cache
(feed_url, site_url, title, subscribers) VALUES ('$feed_url',
'$site_url', '$title', '$subscribers')");
@@ -38,7 +38,7 @@
}
- db_query($link, "COMMIT");
+ db_query("COMMIT");
return $count;
@@ -57,9 +57,15 @@
* @param boolean $debug Set to false to disable debug output. Default to true.
* @return void
*/
- function update_daemon_common($link, $limit = DAEMON_FEED_LIMIT, $from_http = false, $debug = true) {
+ function update_daemon_common($limit = DAEMON_FEED_LIMIT, $from_http = false, $debug = true) {
// Process all other feeds using last_updated and interval parameters
+ $schema_version = get_schema_version();
+
+ if ($schema_version != SCHEMA_VERSION) {
+ die("Schema version is wrong, please upgrade the database.\n");
+ }
+
define('PREFS_NO_CACHE', true);
// Test if the user has loggued in recently. If not, it does not update its feeds.
@@ -77,6 +83,7 @@
if (DB_TYPE == "pgsql") {
$update_limit_qpart = "AND ((
ttrss_feeds.update_interval = 0
+ AND ttrss_user_prefs.value != '-1'
AND ttrss_feeds.last_updated < NOW() - CAST((ttrss_user_prefs.value || ' minutes') AS INTERVAL)
) OR (
ttrss_feeds.update_interval > 0
@@ -86,6 +93,7 @@
} else {
$update_limit_qpart = "AND ((
ttrss_feeds.update_interval = 0
+ AND ttrss_user_prefs.value != '-1'
AND ttrss_feeds.last_updated < DATE_SUB(NOW(), INTERVAL CONVERT(ttrss_user_prefs.value, SIGNED INTEGER) MINUTE)
) OR (
ttrss_feeds.update_interval > 0
@@ -96,21 +104,16 @@
// Test if feed is currently being updated by another process.
if (DB_TYPE == "pgsql") {
- $updstart_thresh_qpart = "AND (ttrss_feeds.last_update_started IS NULL OR ttrss_feeds.last_update_started < NOW() - INTERVAL '5 minutes')";
+ $updstart_thresh_qpart = "AND (ttrss_feeds.last_update_started IS NULL OR ttrss_feeds.last_update_started < NOW() - INTERVAL '10 minutes')";
} else {
- $updstart_thresh_qpart = "AND (ttrss_feeds.last_update_started IS NULL OR ttrss_feeds.last_update_started < DATE_SUB(NOW(), INTERVAL 5 MINUTE))";
+ $updstart_thresh_qpart = "AND (ttrss_feeds.last_update_started IS NULL OR ttrss_feeds.last_update_started < DATE_SUB(NOW(), INTERVAL 10 MINUTE))";
}
// Test if there is a limit to number of updated feeds
$query_limit = "";
if($limit) $query_limit = sprintf("LIMIT %d", $limit);
- $random_qpart = sql_random_function();
-
- // We search for feed needing update.
- $result = db_query($link, "SELECT ttrss_feeds.feed_url,ttrss_feeds.id, ttrss_feeds.owner_uid,
- ".SUBSTRING_FOR_DATE."(ttrss_feeds.last_updated,1,19) AS last_updated,
- ttrss_feeds.update_interval
+ $query = "SELECT DISTINCT ttrss_feeds.feed_url, ttrss_feeds.last_updated
FROM
ttrss_feeds, ttrss_users, ttrss_user_prefs
WHERE
@@ -118,187 +121,261 @@
AND ttrss_users.id = ttrss_user_prefs.owner_uid
AND ttrss_user_prefs.pref_name = 'DEFAULT_UPDATE_INTERVAL'
$login_thresh_qpart $update_limit_qpart
- $updstart_thresh_qpart
- ORDER BY $random_qpart $query_limit");
+ $updstart_thresh_qpart
+ ORDER BY last_updated $query_limit";
- $user_prefs_cache = array();
+ // We search for feed needing update.
+ $result = db_query($query);
- if($debug) _debug(sprintf("Scheduled %d feeds to update...\n", db_num_rows($result)));
+ if($debug) _debug(sprintf("Scheduled %d feeds to update...", db_num_rows($result)));
// Here is a little cache magic in order to minimize risk of double feed updates.
$feeds_to_update = array();
while ($line = db_fetch_assoc($result)) {
- $feeds_to_update[$line['id']] = $line;
+ array_push($feeds_to_update, db_escape_string($line['feed_url']));
}
// We update the feed last update started date before anything else.
// There is no lag due to feed contents downloads
// It prevent an other process to update the same feed.
- $feed_ids = array_keys($feeds_to_update);
- if($feed_ids) {
- db_query($link, sprintf("UPDATE ttrss_feeds SET last_update_started = NOW()
- WHERE id IN (%s)", implode(',', $feed_ids)));
- }
- expire_cached_files($debug);
- expire_lock_files($debug);
+ if(count($feeds_to_update) > 0) {
+ $feeds_quoted = array();
- // For each feed, we call the feed update function.
- while ($line = array_pop($feeds_to_update)) {
+ foreach ($feeds_to_update as $feed) {
+ array_push($feeds_quoted, "'" . db_escape_string($feed) . "'");
+ }
- if($debug) _debug("Feed: " . $line["feed_url"] . ", " . $line["last_updated"]);
+ db_query(sprintf("UPDATE ttrss_feeds SET last_update_started = NOW()
+ WHERE feed_url IN (%s)", implode(',', $feeds_quoted)));
+ }
- update_rss_feed($link, $line["id"], true);
+ $nf = 0;
- sleep(1); // prevent flood (FIXME make this an option?)
+ // For each feed, we call the feed update function.
+ foreach ($feeds_to_update as $feed) {
+ if($debug) _debug("Base feed: $feed");
+
+ //update_rss_feed($line["id"], true);
+
+ // since we have the data cached, we can deal with other feeds with the same url
+
+ $tmp_result = db_query("SELECT DISTINCT ttrss_feeds.id,last_updated,ttrss_feeds.owner_uid
+ FROM ttrss_feeds, ttrss_users, ttrss_user_prefs WHERE
+ ttrss_user_prefs.owner_uid = ttrss_feeds.owner_uid AND
+ ttrss_users.id = ttrss_user_prefs.owner_uid AND
+ ttrss_user_prefs.pref_name = 'DEFAULT_UPDATE_INTERVAL' AND
+ feed_url = '".db_escape_string($feed)."' AND
+ (ttrss_feeds.update_interval > 0 OR
+ ttrss_user_prefs.value != '-1')
+ $login_thresh_qpart
+ ORDER BY ttrss_feeds.id $query_limit");
+
+ if (db_num_rows($tmp_result) > 0) {
+ while ($tline = db_fetch_assoc($tmp_result)) {
+ if($debug) _debug(" => " . $tline["last_updated"] . ", " . $tline["id"] . " " . $tline["owner_uid"]);
+ update_rss_feed($tline["id"], true);
+ ++$nf;
+ }
+ }
}
require_once "digest.php";
// Send feed digests by email if needed.
- send_headlines_digests($link, $debug);
+ send_headlines_digests($debug);
+
+ return $nf;
} // function update_daemon_common
// ignore_daemon is not used
- function update_rss_feed($link, $feed, $ignore_daemon = false, $no_cache = false,
+ function update_rss_feed($feed, $ignore_daemon = false, $no_cache = false,
$override_url = false) {
- require_once "lib/simplepie/simplepie.inc";
-
$debug_enabled = defined('DAEMON_EXTENDED_DEBUG') || $_REQUEST['xdebug'];
- if ($debug_enabled) {
- _debug("update_rss_feed: start");
- }
+ _debug("start", $debug_enabled);
- $result = db_query($link, "SELECT id,update_interval,auth_login,
+ $result = db_query("SELECT id,update_interval,auth_login,
feed_url,auth_pass,cache_images,last_updated,
mark_unread_on_update, owner_uid,
- pubsub_state
+ pubsub_state, auth_pass_encrypted,
+ (SELECT max(date_entered) FROM
+ ttrss_entries, ttrss_user_entries where ref_id = id AND feed_id = '$feed') AS last_article_timestamp
FROM ttrss_feeds WHERE id = '$feed'");
if (db_num_rows($result) == 0) {
- if ($debug_enabled) {
- _debug("update_rss_feed: feed $feed NOT FOUND/SKIPPED");
- }
+ _debug("feed $feed NOT FOUND/SKIPPED", $debug_enabled);
return false;
}
$last_updated = db_fetch_result($result, 0, "last_updated");
+ $last_article_timestamp = @strtotime(db_fetch_result($result, 0, "last_article_timestamp"));
+
+ if (defined('_DISABLE_HTTP_304'))
+ $last_article_timestamp = 0;
+
$owner_uid = db_fetch_result($result, 0, "owner_uid");
$mark_unread_on_update = sql_bool_to_bool(db_fetch_result($result,
0, "mark_unread_on_update"));
$pubsub_state = db_fetch_result($result, 0, "pubsub_state");
+ $auth_pass_encrypted = sql_bool_to_bool(db_fetch_result($result,
+ 0, "auth_pass_encrypted"));
- db_query($link, "UPDATE ttrss_feeds SET last_update_started = NOW()
+ db_query("UPDATE ttrss_feeds SET last_update_started = NOW()
WHERE id = '$feed'");
$auth_login = db_fetch_result($result, 0, "auth_login");
$auth_pass = db_fetch_result($result, 0, "auth_pass");
+ if ($auth_pass_encrypted) {
+ require_once "crypt.php";
+ $auth_pass = decrypt_string($auth_pass);
+ }
+
$cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images"));
$fetch_url = db_fetch_result($result, 0, "feed_url");
$feed = db_escape_string($feed);
- /* if ($auth_login && $auth_pass ){
- $url_parts = array();
- preg_match("/(^[^:]*):\/\/(.*)/", $fetch_url, $url_parts);
+ if ($override_url) $fetch_url = $override_url;
- if ($url_parts[1] && $url_parts[2]) {
- $fetch_url = $url_parts[1] . "://$auth_login:$auth_pass@" . $url_parts[2];
- }
- } */
+ $date_feed_processed = date('Y-m-d H:i');
- if ($override_url)
- $fetch_url = $override_url;
+ $cache_filename = CACHE_DIR . "/simplepie/" . sha1($fetch_url) . ".xml";
- if ($debug_enabled) {
- _debug("update_rss_feed: fetching [$fetch_url]...");
- }
+ $rss = false;
+ $rss_hash = false;
+ $cache_timestamp = file_exists($cache_filename) ? filemtime($cache_filename) : 0;
+
+ $force_refetch = isset($_REQUEST["force_refetch"]);
- // Ignore cache if new feed or manual update.
- $cache_age = (is_null($last_updated) || $last_updated == '1970-01-01 00:00:00') ?
- -1 : get_feed_update_interval($link, $feed) * 60;
+ if (file_exists($cache_filename) &&
+ is_readable($cache_filename) &&
+ !$auth_login && !$auth_pass &&
+ filemtime($cache_filename) > time() - 30) {
- $simplepie_cache_dir = CACHE_DIR . "/simplepie";
+ _debug("using local cache.", $debug_enabled);
- if (!is_dir($simplepie_cache_dir)) {
- mkdir($simplepie_cache_dir);
+ @$feed_data = file_get_contents($cache_filename);
+
+ if ($feed_data) {
+ $rss_hash = sha1($feed_data);
+ }
+
+ } else {
+ _debug("local cache will not be used for this feed", $debug_enabled);
}
- $feed_data = fetch_file_contents($fetch_url, false,
- $auth_login, $auth_pass, false, $no_cache ? 15 : 45);
+ if (!$rss) {
+
+ if (!$feed_data) {
+ _debug("fetching [$fetch_url]...", $debug_enabled);
+ _debug("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T', $last_article_timestamp), $debug_enabled);
+
+ $feed_data = fetch_file_contents($fetch_url, false,
+ $auth_login, $auth_pass, false,
+ $no_cache ? FEED_FETCH_NO_CACHE_TIMEOUT : FEED_FETCH_TIMEOUT,
+ $force_refetch ? 0 : $last_article_timestamp);
+
+ global $fetch_curl_used;
+
+ if (!$fetch_curl_used) {
+ $tmp = @gzdecode($feed_data);
+
+ if ($tmp) $feed_data = $tmp;
+ }
+
+ $feed_data = trim($feed_data);
+
+ _debug("fetch done.", $debug_enabled);
+
+ if ($feed_data) {
+ $error = verify_feed_xml($feed_data);
+
+ if ($error) {
+ _debug("error verifying XML, code: " . $error->code, $debug_enabled);
+
+ if ($error->code == 26) {
+ _debug("got error 26, trying to decode entities...", $debug_enabled);
- if (!$feed_data) {
- global $fetch_last_error;
+ $feed_data = html_entity_decode($feed_data, ENT_COMPAT, 'UTF-8');
- if ($debug_enabled) {
- _debug("update_rss_feed: unable to fetch: $fetch_last_error");
+ $error = verify_feed_xml($feed_data);
+
+ if ($error) $feed_data = '';
+ }
+ }
+ }
}
- $error_escaped = db_escape_string($fetch_last_error);
+ if (!$feed_data) {
+ global $fetch_last_error;
+ global $fetch_last_error_code;
- db_query($link,
- "UPDATE ttrss_feeds SET last_error = '$error_escaped',
- last_updated = NOW() WHERE id = '$feed'");
+ _debug("unable to fetch: $fetch_last_error [$fetch_last_error_code]", $debug_enabled);
+
+ $error_escaped = '';
- return;
+ // If-Modified-Since
+ if ($fetch_last_error_code != 304) {
+ $error_escaped = db_escape_string($fetch_last_error);
+ } else {
+ _debug("source claims data not modified, nothing to do.", $debug_enabled);
+ }
+
+ db_query(
+ "UPDATE ttrss_feeds SET last_error = '$error_escaped',
+ last_updated = NOW() WHERE id = '$feed'");
+
+ return;
+ }
}
- $pluginhost = new PluginHost($link);
+ $pluginhost = new PluginHost();
$pluginhost->set_debug($debug_enabled);
- $user_plugins = get_pref($link, "_ENABLED_PLUGINS", $owner_uid);
+ $user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
- $pluginhost->load(PLUGINS, $pluginhost::KIND_ALL);
- $pluginhost->load($user_plugins, $pluginhost::KIND_USER, $owner_uid);
+ $pluginhost->load(PLUGINS, PluginHost::KIND_ALL);
+ $pluginhost->load($user_plugins, PluginHost::KIND_USER, $owner_uid);
$pluginhost->load_data();
- foreach ($pluginhost->get_hooks($pluginhost::HOOK_FEED_FETCHED) as $plugin) {
+ foreach ($pluginhost->get_hooks(PluginHost::HOOK_FEED_FETCHED) as $plugin) {
$feed_data = $plugin->hook_feed_fetched($feed_data);
}
- if ($debug_enabled) {
- _debug("update_rss_feed: fetch done, parsing...");
- }
+ // set last update to now so if anything *simplepie* crashes later we won't be
+ // continuously failing on the same feed
+ //db_query("UPDATE ttrss_feeds SET last_updated = NOW() WHERE id = '$feed'");
- $rss = new SimplePie();
- $rss->set_sanitize_class("SanitizeDummy");
- // simplepie ignores the above and creates default sanitizer anyway,
- // so let's override it...
- $rss->sanitize = new SanitizeDummy();
- $rss->set_output_encoding('UTF-8');
- $rss->set_raw_data($feed_data);
-
- if ($debug_enabled) {
- _debug("feed update interval (sec): " .
- get_feed_update_interval($link, $feed)*60);
+ if (!$rss) {
+ $rss = new FeedParser($feed_data);
+ $rss->init();
}
- $rss->enable_cache(!$no_cache);
-
- if (!$no_cache) {
- $rss->set_cache_location($simplepie_cache_dir);
- $rss->set_cache_duration($cache_age);
- }
-
- @$rss->init();
-
// print_r($rss);
$feed = db_escape_string($feed);
if (!$rss->error()) {
- // We use local pluginhost here because we need to load different per-user feed plugins
- $pluginhost->run_hooks($pluginhost::HOOK_FEED_PARSED, "hook_feed_parsed", $rss);
+ // cache data for later
+ if (!$auth_pass && !$auth_login && is_writable(CACHE_DIR . "/simplepie")) {
+ $new_rss_hash = sha1($rss_data);
- if ($debug_enabled) {
- _debug("update_rss_feed: processing feed data...");
+ if ($new_rss_hash != $rss_hash && count($rss->get_items()) > 0 ) {
+ _debug("saving $cache_filename", $debug_enabled);
+ @file_put_contents($cache_filename, $feed_data);
+ }
}
-// db_query($link, "BEGIN");
+ // We use local pluginhost here because we need to load different per-user feed plugins
+ $pluginhost->run_hooks(PluginHost::HOOK_FEED_PARSED, "hook_feed_parsed", $rss);
+
+ _debug("processing feed data...", $debug_enabled);
+
+// db_query("BEGIN");
if (DB_TYPE == "pgsql") {
$favicon_interval_qpart = "favicon_last_checked < NOW() - INTERVAL '12 hour'";
@@ -306,7 +383,7 @@
$favicon_interval_qpart = "favicon_last_checked < DATE_SUB(NOW(), INTERVAL 12 HOUR)";
}
- $result = db_query($link, "SELECT title,site_url,owner_uid,
+ $result = db_query("SELECT title,site_url,owner_uid,favicon_avg_color,
(favicon_last_checked IS NULL OR $favicon_interval_qpart) AS
favicon_needs_check
FROM ttrss_feeds WHERE id = '$feed'");
@@ -315,19 +392,47 @@
$orig_site_url = db_fetch_result($result, 0, "site_url");
$favicon_needs_check = sql_bool_to_bool(db_fetch_result($result, 0,
"favicon_needs_check"));
+ $favicon_avg_color = db_fetch_result($result, 0, "favicon_avg_color");
$owner_uid = db_fetch_result($result, 0, "owner_uid");
$site_url = db_escape_string(mb_substr(rewrite_relative_url($fetch_url, $rss->get_link()), 0, 245));
- if ($debug_enabled) {
- _debug("update_rss_feed: checking favicon...");
- }
+ _debug("site_url: $site_url", $debug_enabled);
+ _debug("feed_title: " . $rss->get_title(), $debug_enabled);
+
+ if ($favicon_needs_check || $force_refetch) {
+
+ /* terrible hack: if we crash on floicon shit here, we won't check
+ * the icon avgcolor again (unless the icon got updated) */
+
+ $favicon_file = ICONS_DIR . "/$feed.ico";
+ $favicon_modified = @filemtime($favicon_file);
+
+ _debug("checking favicon...", $debug_enabled);
+
+ check_feed_favicon($site_url, $feed);
+ $favicon_modified_new = @filemtime($favicon_file);
+
+ if ($favicon_modified_new > $favicon_modified)
+ $favicon_avg_color = '';
+
+ if (file_exists($favicon_file) && function_exists("imagecreatefromstring") && $favicon_avg_color == '') {
+ require_once "colors.php";
+
+ db_query("UPDATE ttrss_feeds SET favicon_avg_color = 'fail' WHERE
+ id = '$feed'");
+
+ $favicon_color = db_escape_string(
+ calculate_avg_color($favicon_file));
- if ($favicon_needs_check) {
- check_feed_favicon($site_url, $feed, $link);
+ $favicon_colorstring = ",favicon_avg_color = '".$favicon_color."'";
+ } else if ($favicon_avg_color == 'fail') {
+ _debug("floicon failed on this file, not trying to recalculate avg color", $debug_enabled);
+ }
- db_query($link, "UPDATE ttrss_feeds SET favicon_last_checked = NOW()
+ db_query("UPDATE ttrss_feeds SET favicon_last_checked = NOW()
+ $favicon_colorstring
WHERE id = '$feed'");
}
@@ -335,39 +440,32 @@
$feed_title = db_escape_string($rss->get_title());
- if ($debug_enabled) {
- _debug("update_rss_feed: registering title: $feed_title");
- }
+ if ($feed_title) {
+ _debug("registering title: $feed_title", $debug_enabled);
- db_query($link, "UPDATE ttrss_feeds SET
- title = '$feed_title' WHERE id = '$feed'");
+ db_query("UPDATE ttrss_feeds SET
+ title = '$feed_title' WHERE id = '$feed'");
+ }
}
if ($site_url && $orig_site_url != $site_url) {
- db_query($link, "UPDATE ttrss_feeds SET
+ db_query("UPDATE ttrss_feeds SET
site_url = '$site_url' WHERE id = '$feed'");
}
- if ($debug_enabled) {
- _debug("update_rss_feed: loading filters & labels...");
- }
+ _debug("loading filters & labels...", $debug_enabled);
- $filters = load_filters($link, $feed, $owner_uid);
- $labels = get_all_labels($link, $owner_uid);
+ $filters = load_filters($feed, $owner_uid);
+ $labels = get_all_labels($owner_uid);
- if ($debug_enabled) {
- //print_r($filters);
- _debug("update_rss_feed: " . count($filters) . " filters loaded.");
- }
+ _debug("" . count($filters) . " filters loaded.", $debug_enabled);
$items = $rss->get_items();
if (!is_array($items)) {
- if ($debug_enabled) {
- _debug("update_rss_feed: no articles found.");
- }
+ _debug("no articles found.", $debug_enabled);
- db_query($link, "UPDATE ttrss_feeds
+ db_query("UPDATE ttrss_feeds
SET last_updated = NOW(), last_error = '' WHERE id = '$feed'");
return; // no articles
@@ -375,7 +473,7 @@
if ($pubsub_state != 2 && PUBSUBHUBBUB_ENABLED) {
- if ($debug_enabled) _debug("update_rss_feed: checking for PUSH hub...");
+ _debug("checking for PUSH hub...", $debug_enabled);
$feed_hub_url = false;
@@ -388,7 +486,7 @@
}
}
- if ($debug_enabled) _debug("update_rss_feed: feed hub url: $feed_hub_url");
+ _debug("feed hub url: $feed_hub_url", $debug_enabled);
if ($feed_hub_url && function_exists('curl_init') &&
!ini_get("open_basedir")) {
@@ -402,17 +500,14 @@
$rc = $s->subscribe($fetch_url);
- if ($debug_enabled)
- _debug("update_rss_feed: feed hub url found, subscribe request sent.");
+ _debug("feed hub url found, subscribe request sent.", $debug_enabled);
- db_query($link, "UPDATE ttrss_feeds SET pubsub_state = 1
+ db_query("UPDATE ttrss_feeds SET pubsub_state = 1
WHERE id = '$feed'");
}
}
- if ($debug_enabled) {
- _debug("update_rss_feed: processing articles...");
- }
+ _debug("processing articles...", $debug_enabled);
foreach ($items as $item) {
if ($_REQUEST['xdebug'] == 3) {
@@ -423,19 +518,23 @@
if (!$entry_guid) $entry_guid = $item->get_link();
if (!$entry_guid) $entry_guid = make_guid_from_title($item->get_title());
- if ($debug_enabled) {
- _debug("update_rss_feed: guid $entry_guid");
- }
+ _debug("f_guid $entry_guid", $debug_enabled);
if (!$entry_guid) continue;
$entry_guid = "$owner_uid,$entry_guid";
+ $entry_guid_hashed = db_escape_string('SHA1:' . sha1($entry_guid));
+
+ _debug("guid $entry_guid / $entry_guid_hashed", $debug_enabled);
+
$entry_timestamp = "";
- $entry_timestamp = strtotime($item->get_date());
+ $entry_timestamp = $item->get_date();
- if ($entry_timestamp == -1 || !$entry_timestamp) {
+ _debug("orig date: " . $item->get_date(), $debug_enabled);
+
+ if ($entry_timestamp == -1 || !$entry_timestamp || $entry_timestamp > time()) {
$entry_timestamp = time();
$no_orig_date = 'true';
} else {
@@ -444,18 +543,16 @@
$entry_timestamp_fmt = strftime("%Y/%m/%d %H:%M:%S", $entry_timestamp);
- if ($debug_enabled) {
- _debug("update_rss_feed: date $entry_timestamp [$entry_timestamp_fmt]");
- }
+ _debug("date $entry_timestamp [$entry_timestamp_fmt]", $debug_enabled);
+// $entry_title = html_entity_decode($item->get_title(), ENT_COMPAT, 'UTF-8');
+// $entry_title = decode_numeric_entities($entry_title);
$entry_title = $item->get_title();
$entry_link = rewrite_relative_url($site_url, $item->get_link());
- if ($debug_enabled) {
- _debug("update_rss_feed: title $entry_title");
- _debug("update_rss_feed: link $entry_link");
- }
+ _debug("title $entry_title", $debug_enabled);
+ _debug("link $entry_link", $debug_enabled);
if (!$entry_title) $entry_title = date("Y-m-d H:i:s", $entry_timestamp);;
@@ -463,38 +560,24 @@
if (!$entry_content) $entry_content = $item->get_description();
if ($_REQUEST["xdebug"] == 2) {
- print "update_rss_feed: content: ";
+ print "content: ";
print $entry_content;
print "\n";
}
- $entry_comments = $item->data["comments"];
-
- if ($item->get_author()) {
- $entry_author_item = $item->get_author();
- $entry_author = $entry_author_item->get_name();
- if (!$entry_author) $entry_author = $entry_author_item->get_email();
-
- $entry_author = db_escape_string($entry_author);
- }
+ $entry_comments = $item->get_comments_url();
+ $entry_author = $item->get_author();
$entry_guid = db_escape_string(mb_substr($entry_guid, 0, 245));
- $entry_comments = db_escape_string(mb_substr($entry_comments, 0, 245));
- $entry_author = db_escape_string(mb_substr($entry_author, 0, 245));
+ $entry_comments = db_escape_string(mb_substr(trim($entry_comments), 0, 245));
+ $entry_author = db_escape_string(mb_substr(trim($entry_author), 0, 245));
- $num_comments = $item->get_item_tags('http://purl.org/rss/1.0/modules/slash/', 'comments');
+ $num_comments = (int) $item->get_comments_count();
- if (is_array($num_comments) && is_array($num_comments[0])) {
- $num_comments = (int) $num_comments[0]["data"];
- } else {
- $num_comments = 0;
- }
-
- if ($debug_enabled) {
- _debug("update_rss_feed: num_comments: $num_comments");
- _debug("update_rss_feed: looking for tags [1]...");
- }
+ _debug("author $entry_author", $debug_enabled);
+ _debug("num_comments: $num_comments", $debug_enabled);
+ _debug("looking for tags...", $debug_enabled);
// parse <category> entries into tags
@@ -504,42 +587,26 @@
if (is_array($additional_tags_src)) {
foreach ($additional_tags_src as $tobj) {
- array_push($additional_tags, $tobj->get_term());
+ array_push($additional_tags, $tobj);
}
}
- if ($debug_enabled) {
- _debug("update_rss_feed: category tags:");
- print_r($additional_tags);
- }
-
- if ($debug_enabled) {
- _debug("update_rss_feed: looking for tags [2]...");
- }
-
$entry_tags = array_unique($additional_tags);
for ($i = 0; $i < count($entry_tags); $i++)
$entry_tags[$i] = mb_strtolower($entry_tags[$i], 'utf-8');
- if ($debug_enabled) {
- //_debug("update_rss_feed: unfiltered tags found:");
- //print_r($entry_tags);
- }
+ _debug("tags found: " . join(",", $entry_tags), $debug_enabled);
- if ($debug_enabled) {
- _debug("update_rss_feed: done collecting data.");
- }
+ _debug("done collecting data.", $debug_enabled);
// TODO: less memory-hungry implementation
- if ($debug_enabled) {
- _debug("update_rss_feed: applying plugin filters..");
- }
+ _debug("applying plugin filters..", $debug_enabled);
// FIXME not sure if owner_uid is a good idea here, we may have a base entry without user entry (?)
- $result = db_query($link, "SELECT plugin_data,title,content,link,tag_cache,author FROM ttrss_entries, ttrss_user_entries
- WHERE ref_id = id AND guid = '".db_escape_string($entry_guid)."' AND owner_uid = $owner_uid");
+ $result = db_query("SELECT plugin_data,title,content,link,tag_cache,author FROM ttrss_entries, ttrss_user_entries
+ WHERE ref_id = id AND (guid = '".db_escape_string($entry_guid)."' OR guid = '$entry_guid_hashed') AND owner_uid = $owner_uid");
if (db_num_rows($result) != 0) {
$entry_plugin_data = db_fetch_result($result, 0, "plugin_data");
@@ -563,7 +630,7 @@
"author" => $entry_author,
"stored" => $stored_article);
- foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_FILTER) as $plugin) {
+ foreach ($pluginhost->get_hooks(PluginHost::HOOK_ARTICLE_FILTER) as $plugin) {
$article = $plugin->hook_article_filter($article);
}
@@ -573,32 +640,30 @@
$entry_author = db_escape_string($article["author"]);
$entry_link = db_escape_string($article["link"]);
$entry_plugin_data = db_escape_string($article["plugin_data"]);
+ $entry_content = $article["content"]; // escaped below
- if ($debug_enabled) {
- _debug("update_rss_feed: plugin data: $entry_plugin_data");
- }
+
+ _debug("plugin data: $entry_plugin_data", $debug_enabled);
if ($cache_images && is_writable(CACHE_DIR . '/images'))
- $entry_content = cache_images($entry_content, $site_url, $debug_enabled);
+ cache_images($entry_content, $site_url, $debug_enabled);
- $entry_content = db_escape_string($article["content"], false);
+ $entry_content = db_escape_string($entry_content, false);
$content_hash = "SHA1:" . sha1($entry_content);
- db_query($link, "BEGIN");
+ db_query("BEGIN");
- $result = db_query($link, "SELECT id FROM ttrss_entries
- WHERE guid = '$entry_guid'");
+ $result = db_query("SELECT id FROM ttrss_entries
+ WHERE (guid = '$entry_guid' OR guid = '$entry_guid_hashed')");
if (db_num_rows($result) == 0) {
- if ($debug_enabled) {
- _debug("update_rss_feed: base guid [$entry_guid] not found");
- }
+ _debug("base guid [$entry_guid] not found", $debug_enabled);
// base post entry does not exist, create it
- $result = db_query($link,
+ $result = db_query(
"INSERT INTO ttrss_entries
(title,
guid,
@@ -616,7 +681,7 @@
author)
VALUES
('$entry_title',
- '$entry_guid',
+ '$entry_guid_hashed',
'$entry_link',
'$entry_timestamp_fmt',
'$entry_content',
@@ -624,7 +689,7 @@
'',
$no_orig_date,
NOW(),
- NOW(),
+ '$date_feed_processed',
'$entry_comments',
'$num_comments',
'$entry_plugin_data',
@@ -640,31 +705,29 @@
$base_entry_id = db_fetch_result($result, 0, "id");
- db_query($link, "UPDATE ttrss_entries SET date_updated = NOW()
+ db_query("UPDATE ttrss_entries SET date_updated = NOW()
WHERE id = '$base_entry_id'");
- $article_labels = get_article_labels($link, $base_entry_id, $owner_uid);
+ $article_labels = get_article_labels($base_entry_id, $owner_uid);
}
// now it should exist, if not - bad luck then
- $result = db_query($link, "SELECT
- id,content_hash,no_orig_date,title,plugin_data,
+ $result = db_query("SELECT
+ id,content_hash,no_orig_date,title,plugin_data,guid,
".SUBSTRING_FOR_DATE."(date_updated,1,19) as date_updated,
".SUBSTRING_FOR_DATE."(updated,1,19) as updated,
num_comments
FROM
ttrss_entries
- WHERE guid = '$entry_guid'");
+ WHERE guid = '$entry_guid' OR guid = '$entry_guid_hashed'");
$entry_ref_id = 0;
$entry_int_id = 0;
if (db_num_rows($result) == 1) {
- if ($debug_enabled) {
- _debug("update_rss_feed: base guid [$entry_guid] found, checking for user record");
- }
+ _debug("base guid found, checking for user record", $debug_enabled);
// this will be used below in update handler
$orig_content_hash = db_fetch_result($result, 0, "content_hash");
@@ -677,10 +740,18 @@
$ref_id = db_fetch_result($result, 0, "id");
$entry_ref_id = $ref_id;
+ /* $stored_guid = db_fetch_result($result, 0, "guid");
+ if ($stored_guid != $entry_guid_hashed) {
+ if ($debug_enabled) _debug("upgrading compat guid to hashed one", $debug_enabled);
+
+ db_query("UPDATE ttrss_entries SET guid = '$entry_guid_hashed' WHERE
+ id = '$ref_id'");
+ } */
+
// check for user post link to main table
// do we allow duplicate posts with same GUID in different feeds?
- if (get_pref($link, "ALLOW_DUPLICATE_POSTS", $owner_uid, false)) {
+ if (get_pref("ALLOW_DUPLICATE_POSTS", $owner_uid, false)) {
$dupcheck_qpart = "AND (feed_id = '$feed' OR feed_id IS NULL)";
} else {
$dupcheck_qpart = "";
@@ -693,22 +764,20 @@
$entry_tags);
if ($debug_enabled) {
- _debug("update_rss_feed: article filters: ");
+ _debug("article filters: ", $debug_enabled);
if (count($article_filters) != 0) {
print_r($article_filters);
}
}
if (find_article_filter($article_filters, "filter")) {
- db_query($link, "COMMIT"); // close transaction in progress
+ db_query("COMMIT"); // close transaction in progress
continue;
}
$score = calculate_article_score($article_filters);
- if ($debug_enabled) {
- _debug("update_rss_feed: initial score: $score");
- }
+ _debug("initial score: $score", $debug_enabled);
$query = "SELECT ref_id, int_id FROM ttrss_user_entries WHERE
ref_id = '$ref_id' AND owner_uid = '$owner_uid'
@@ -716,14 +785,12 @@
// if ($_REQUEST["xdebug"]) print "$query\n";
- $result = db_query($link, $query);
+ $result = db_query($query);
// okay it doesn't exist - create user entry
if (db_num_rows($result) == 0) {
- if ($debug_enabled) {
- _debug("update_rss_feed: user record not found, creating...");
- }
+ _debug("user record not found, creating...", $debug_enabled);
if ($score >= -500 && !find_article_filter($article_filters, 'catchup')) {
$unread = 'true';
@@ -749,7 +816,7 @@
if (DB_TYPE == "pgsql" and defined('_NGRAM_TITLE_DUPLICATE_THRESHOLD')) {
- $result = db_query($link, "SELECT COUNT(*) AS similar FROM
+ $result = db_query("SELECT COUNT(*) AS similar FROM
ttrss_entries,ttrss_user_entries
WHERE ref_id = id AND updated >= NOW() - INTERVAL '7 day'
AND similarity(title, '$entry_title') >= "._NGRAM_TITLE_DUPLICATE_THRESHOLD."
@@ -757,33 +824,36 @@
$ngram_similar = db_fetch_result($result, 0, "similar");
- if ($debug_enabled) {
- _debug("update_rss_feed: N-gram similar results: $ngram_similar");
- }
+ _debug("N-gram similar results: $ngram_similar", $debug_enabled);
if ($ngram_similar > 0) {
$unread = 'false';
}
}
- $result = db_query($link,
+ $last_marked = ($marked == 'true') ? 'NOW()' : 'NULL';
+ $last_published = ($published == 'true') ? 'NOW()' : 'NULL';
+
+ $result = db_query(
"INSERT INTO ttrss_user_entries
(ref_id, owner_uid, feed_id, unread, last_read, marked,
- published, score, tag_cache, label_cache, uuid)
+ published, score, tag_cache, label_cache, uuid,
+ last_marked, last_published)
VALUES ('$ref_id', '$owner_uid', '$feed', $unread,
- $last_read_qpart, $marked, $published, '$score', '', '', '')");
+ $last_read_qpart, $marked, $published, '$score', '', '',
+ '', $last_marked, $last_published)");
if (PUBSUBHUBBUB_HUB && $published == 'true') {
$rss_link = get_self_url_prefix() .
"/public.php?op=rss&id=-2&key=" .
- get_feed_access_key($link, -2, false, $owner_uid);
+ get_feed_access_key(-2, false, $owner_uid);
$p = new Publisher(PUBSUBHUBBUB_HUB);
$pubsub_result = $p->publish_update($rss_link);
}
- $result = db_query($link,
+ $result = db_query(
"SELECT int_id FROM ttrss_user_entries WHERE
ref_id = '$ref_id' AND owner_uid = '$owner_uid' AND
feed_id = '$feed' LIMIT 1");
@@ -792,17 +862,13 @@
$entry_int_id = db_fetch_result($result, 0, "int_id");
}
} else {
- if ($debug_enabled) {
- _debug("update_rss_feed: user record FOUND");
- }
+ _debug("user record FOUND", $debug_enabled);
$entry_ref_id = db_fetch_result($result, 0, "ref_id");
$entry_int_id = db_fetch_result($result, 0, "int_id");
}
- if ($debug_enabled) {
- _debug("update_rss_feed: RID: $entry_ref_id, IID: $entry_int_id");
- }
+ _debug("RID: $entry_ref_id, IID: $entry_int_id", $debug_enabled);
$post_needs_update = false;
$update_insignificant = false;
@@ -832,12 +898,12 @@
if ($post_needs_update) {
if (defined('DAEMON_EXTENDED_DEBUG')) {
- _debug("update_rss_feed: post $entry_guid needs update...");
+ _debug("post $entry_guid_hashed needs update...", $debug_enabled);
}
// print "<!-- post $orig_title needs update : $post_needs_update -->";
- db_query($link, "UPDATE ttrss_entries
+ db_query("UPDATE ttrss_entries
SET title = '$entry_title', content = '$entry_content',
content_hash = '$content_hash',
updated = '$entry_timestamp_fmt',
@@ -847,25 +913,21 @@
if (!$update_insignificant) {
if ($mark_unread_on_update) {
- db_query($link, "UPDATE ttrss_user_entries
+ db_query("UPDATE ttrss_user_entries
SET last_read = null, unread = true WHERE ref_id = '$ref_id'");
}
}
}
}
- db_query($link, "COMMIT");
+ db_query("COMMIT");
- if ($debug_enabled) {
- _debug("update_rss_feed: assigning labels...");
- }
+ _debug("assigning labels...", $debug_enabled);
- assign_article_to_label_filters($link, $entry_ref_id, $article_filters,
+ assign_article_to_label_filters($entry_ref_id, $article_filters,
$owner_uid, $article_labels);
- if ($debug_enabled) {
- _debug("update_rss_feed: looking for enclosures...");
- }
+ _debug("looking for enclosures...", $debug_enabled);
// enclosures
@@ -882,28 +944,28 @@
}
if ($debug_enabled) {
- _debug("update_rss_feed: article enclosures:");
+ _debug("article enclosures:", $debug_enabled);
print_r($enclosures);
}
- db_query($link, "BEGIN");
+ db_query("BEGIN");
foreach ($enclosures as $enc) {
$enc_url = db_escape_string($enc[0]);
$enc_type = db_escape_string($enc[1]);
$enc_dur = db_escape_string($enc[2]);
- $result = db_query($link, "SELECT id FROM ttrss_enclosures
+ $result = db_query("SELECT id FROM ttrss_enclosures
WHERE content_url = '$enc_url' AND post_id = '$entry_ref_id'");
if (db_num_rows($result) == 0) {
- db_query($link, "INSERT INTO ttrss_enclosures
+ db_query("INSERT INTO ttrss_enclosures
(content_url, content_type, title, duration, post_id) VALUES
('$enc_url', '$enc_type', '', '$enc_dur', '$entry_ref_id')");
}
}
- db_query($link, "COMMIT");
+ db_query("COMMIT");
// check for manual tags (we have to do it here since they're loaded from filters)
@@ -922,7 +984,7 @@
// Skip boring tags
- $boring_tags = trim_array(explode(",", mb_strtolower(get_pref($link,
+ $boring_tags = trim_array(explode(",", mb_strtolower(get_pref(
'BLACKLISTED_TAGS', $owner_uid, ''), 'utf-8')));
$filtered_tags = array();
@@ -939,7 +1001,7 @@
$filtered_tags = array_unique($filtered_tags);
if ($debug_enabled) {
- _debug("update_rss_feed: filtered article tags:");
+ _debug("filtered article tags:", $debug_enabled);
print_r($filtered_tags);
}
@@ -947,7 +1009,7 @@
if (count($filtered_tags) > 0) {
- db_query($link, "BEGIN");
+ db_query("BEGIN");
foreach ($filtered_tags as $tag) {
@@ -956,13 +1018,13 @@
if (!tag_is_valid($tag)) continue;
- $result = db_query($link, "SELECT id FROM ttrss_tags
+ $result = db_query("SELECT id FROM ttrss_tags
WHERE tag_name = '$tag' AND post_int_id = '$entry_int_id' AND
owner_uid = '$owner_uid' LIMIT 1");
if ($result && db_num_rows($result) == 0) {
- db_query($link, "INSERT INTO ttrss_tags
+ db_query("INSERT INTO ttrss_tags
(owner_uid,tag_name,post_int_id)
VALUES ('$owner_uid','$tag', '$entry_int_id')");
}
@@ -976,71 +1038,58 @@
$tags_str = db_escape_string(join(",", $tags_to_cache));
- db_query($link, "UPDATE ttrss_user_entries
+ db_query("UPDATE ttrss_user_entries
SET tag_cache = '$tags_str' WHERE ref_id = '$entry_ref_id'
AND owner_uid = $owner_uid");
- db_query($link, "COMMIT");
+ db_query("COMMIT");
}
- if (get_pref($link, "AUTO_ASSIGN_LABELS", $owner_uid, false)) {
- if ($debug_enabled) {
- _debug("update_rss_feed: auto-assigning labels...");
- }
+ if (get_pref("AUTO_ASSIGN_LABELS", $owner_uid, false)) {
+ _debug("auto-assigning labels...", $debug_enabled);
foreach ($labels as $label) {
- $caption = $label["caption"];
+ $caption = preg_quote($label["caption"]);
- if (preg_match("/\b$caption\b/i", "$tags_str " . strip_tags($entry_content) . " $entry_title")) {
+ if ($caption && preg_match("/\b$caption\b/i", "$tags_str " . strip_tags($entry_content) . " $entry_title")) {
if (!labels_contains_caption($article_labels, $caption)) {
- label_add_article($link, $entry_ref_id, $caption, $owner_uid);
+ label_add_article($entry_ref_id, $caption, $owner_uid);
}
}
}
}
- if ($debug_enabled) {
- _debug("update_rss_feed: article processed");
- }
+ _debug("article processed", $debug_enabled);
}
if (!$last_updated) {
- if ($debug_enabled) {
- _debug("update_rss_feed: new feed, catching it up...");
- }
- catchup_feed($link, $feed, false, $owner_uid);
+ _debug("new feed, catching it up...", $debug_enabled);
+ catchup_feed($feed, false, $owner_uid);
}
- if ($debug_enabled) {
- _debug("purging feed...");
- }
+ _debug("purging feed...", $debug_enabled);
- purge_feed($link, $feed, 0, $debug_enabled);
+ purge_feed($feed, 0, $debug_enabled);
- db_query($link, "UPDATE ttrss_feeds
+ db_query("UPDATE ttrss_feeds
SET last_updated = NOW(), last_error = '' WHERE id = '$feed'");
-// db_query($link, "COMMIT");
+// db_query("COMMIT");
} else {
$error_msg = db_escape_string(mb_substr($rss->error(), 0, 245));
- if ($debug_enabled) {
- _debug("update_rss_feed: error fetching feed: $error_msg");
- }
+ _debug("error fetching feed: $error_msg", $debug_enabled);
- db_query($link,
+ db_query(
"UPDATE ttrss_feeds SET last_error = '$error_msg',
last_updated = NOW() WHERE id = '$feed'");
}
unset($rss);
- if ($debug_enabled) {
- _debug("update_rss_feed: done");
- }
-
+ _debug("done", $debug_enabled);
}
function cache_images($html, $site_url, $debug) {
@@ -1086,8 +1135,21 @@
return $doc->saveXML($node);
}
+ function expire_error_log($debug) {
+ if ($debug) _debug("Removing old error log entries...");
+
+ if (DB_TYPE == "pgsql") {
+ db_query("DELETE FROM ttrss_error_log
+ WHERE created_at < NOW() - INTERVAL '7 days'");
+ } else {
+ db_query("DELETE FROM ttrss_error_log
+ WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY)");
+ }
+
+ }
+
function expire_lock_files($debug) {
- if ($debug) _debug("Removing old lock files...");
+ //if ($debug) _debug("Removing old lock files...");
$num_deleted = 0;
@@ -1096,7 +1158,7 @@
if ($files) {
foreach ($files as $file) {
- if (!file_is_locked($file) && time() - filemtime($file) > 86400*2) {
+ if (!file_is_locked(basename($file)) && time() - filemtime($file) > 86400*2) {
unlink($file);
++$num_deleted;
}
@@ -1104,14 +1166,14 @@
}
}
- if ($debug) _debug("Removed $num_deleted files.");
+ if ($debug) _debug("Removed $num_deleted old lock files.");
}
function expire_cached_files($debug) {
- foreach (array("simplepie", "images", "export") as $dir) {
+ foreach (array("simplepie", "images", "export", "upload") as $dir) {
$cache_dir = CACHE_DIR . "/$dir";
- if ($debug) _debug("Expiring $cache_dir");
+// if ($debug) _debug("Expiring $cache_dir");
$num_deleted = 0;
@@ -1129,7 +1191,7 @@
}
}
- if ($debug) _debug("Removed $num_deleted files.");
+ if ($debug) _debug("$cache_dir: removed $num_deleted files.");
}
}
@@ -1158,11 +1220,13 @@
foreach ($filters as $filter) {
$match_any_rule = $filter["match_any_rule"];
+ $inverse = $filter["inverse"];
$filter_match = false;
foreach ($filter["rules"] as $rule) {
$match = false;
- $reg_exp = $rule["reg_exp"];
+ $reg_exp = str_replace('/', '\/', $rule["reg_exp"]);
+ $rule_inverse = $rule["inverse"];
if (!$reg_exp)
continue;
@@ -1190,11 +1254,17 @@
$match = @preg_match("/$reg_exp/i", $author);
break;
case "tag":
- $tag_string = join(",", $tags);
- $match = @preg_match("/$reg_exp/i", $tag_string);
+ foreach ($tags as $tag) {
+ if (@preg_match("/$reg_exp/i", $tag)) {
+ $match = true;
+ break;
+ }
+ }
break;
}
+ if ($rule_inverse) $match = !$match;
+
if ($match_any_rule) {
if ($match) {
$filter_match = true;
@@ -1208,9 +1278,14 @@
}
}
+ if ($inverse) $filter_match = !$filter_match;
+
if ($filter_match) {
foreach ($filter["actions"] AS $action) {
array_push($matches, $action);
+
+ // if Stop action encountered, perform no further processing
+ if ($action["type"] == "stop") return $matches;
}
}
}
@@ -1259,11 +1334,11 @@
return false;
}
- function assign_article_to_label_filters($link, $id, $filters, $owner_uid, $article_labels) {
+ function assign_article_to_label_filters($id, $filters, $owner_uid, $article_labels) {
foreach ($filters as $f) {
if ($f["type"] == "label") {
if (!labels_contains_caption($article_labels, $f["param"])) {
- label_add_article($link, $id, $f["param"], $owner_uid);
+ label_add_article($id, $f["param"], $owner_uid);
}
}
}
@@ -1274,5 +1349,26 @@
mb_strtolower(strip_tags($title), 'utf-8'));
}
+ function verify_feed_xml($feed_data) {
+ libxml_use_internal_errors(true);
+ $doc = new DOMDocument();
+ $doc->loadXML($feed_data);
+ $error = libxml_get_last_error();
+ libxml_clear_errors();
+ return $error;
+ }
+
+ function housekeeping_common($debug) {
+ expire_cached_files($debug);
+ expire_lock_files($debug);
+ expire_error_log($debug);
+
+ $count = update_feedbrowser_cache();
+ _debug("Feedbrowser updated, $count feeds processed.");
+ purge_orphans( true);
+ $rc = cleanup_tags( 14, 50000);
+
+ _debug("Cleaned $rc cached tags.");
+ }
?>
diff --git a/include/sanity_check.php b/include/sanity_check.php
index 5cb556746..b2888b1d7 100644
--- a/include/sanity_check.php
+++ b/include/sanity_check.php
@@ -1,8 +1,27 @@
<?php
- // WARNING: Don't ask for help on tt-rss.org forums or the bugtracker if you have
- // modified this file.
+ /*
+ * WARNING!
+ *
+ * If you modify this file, you are ON YOUR OWN!
+ *
+ * Believe it or not, all of the checks below are required to succeed for
+ * tt-rss to actually function properly.
+ *
+ * If you think you have a better idea about what is or isn't required, feel
+ * free to modify the file, note though that you are therefore automatically
+ * disqualified from any further support by official channels, e.g. tt-rss.org
+ * issue tracker or the forums.
+ *
+ * If you come crying when stuff inevitably breaks, you will be mocked and told
+ * to get out. */
+
+ function make_self_url_path() {
+ $url_path = ($_SERVER['HTTPS'] != "on" ? 'http://' : 'https://') . $_SERVER["HTTP_HOST"] . parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
+
+ return $url_path;
+ }
- function initial_sanity_check($link) {
+ function initial_sanity_check() {
$errors = array();
@@ -12,6 +31,10 @@
require_once "sanity_config.php";
+ if (file_exists("install") && !file_exists("config.php")) {
+ array_push($errors, "Please copy config.php-dist to config.php or run the installer in install/");
+ }
+
if (strpos(PLUGINS, "auth_") === FALSE) {
array_push($errors, "Please enable at least one authentication module via PLUGINS constant in config.php");
}
@@ -32,10 +55,26 @@
array_push($errors, "Image cache is not writable (chmod -R 777 ".CACHE_DIR."/images)");
}
+ if (!is_writable(CACHE_DIR . "/upload")) {
+ array_push($errors, "Upload cache is not writable (chmod -R 777 ".CACHE_DIR."/upload)");
+ }
+
if (!is_writable(CACHE_DIR . "/export")) {
array_push($errors, "Data export cache is not writable (chmod -R 777 ".CACHE_DIR."/export)");
}
+ if (!is_writable(CACHE_DIR . "/js")) {
+ array_push($errors, "Javascript cache is not writable (chmod -R 777 ".CACHE_DIR."/js)");
+ }
+
+ if (strlen(FEED_CRYPT_KEY) > 0 && strlen(FEED_CRYPT_KEY) != 24) {
+ array_push($errors, "FEED_CRYPT_KEY should be exactly 24 characters in length.");
+ }
+
+ if (strlen(FEED_CRYPT_KEY) > 0 && !function_exists("mcrypt_decrypt")) {
+ array_push($errors, "FEED_CRYPT_KEY requires mcrypt functions which are not found.");
+ }
+
if (GENERATED_CONFIG_CHECK != EXPECTED_CONFIG_VERSION) {
array_push($errors,
"Configuration option checker sanity_config.php is outdated, please recreate it using ./utils/regen_config_checks.sh");
@@ -48,33 +87,19 @@
}
}
- if (SESSION_EXPIRE_TIME < 60) {
- array_push($errors, "SESSION_EXPIRE_TIME set in config.php is too low, please set it to an integer value >= 60");
- }
-
- if (SESSION_EXPIRE_TIME < SESSION_COOKIE_LIFETIME) {
- array_push($errors, "SESSION_EXPIRE_TIME set in config.php should be >= to SESSION_COOKIE_LIFETIME");
- }
-
if (SINGLE_USER_MODE) {
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
+ $result = db_query("SELECT id FROM ttrss_users WHERE id = 1");
- if ($link) {
- $result = db_query($link, "SELECT id FROM ttrss_users WHERE id = 1");
-
- if (db_num_rows($result) != 1) {
- array_push($errors, "SINGLE_USER_MODE is enabled in config.php but default admin account is not found.");
- }
+ if (db_num_rows($result) != 1) {
+ array_push($errors, "SINGLE_USER_MODE is enabled in config.php but default admin account is not found.");
}
}
if (SELF_URL_PATH == "http://yourserver/tt-rss/") {
- if ($_SERVER['HTTP_REFERER']) {
- array_push($errors,
- "Please set SELF_URL_PATH to the correct value for your server (possible value: <b>" . $_SERVER['HTTP_REFERER'] . "</b>)");
- } else {
- array_push($errors, "Please set SELF_URL_PATH to the correct value for your server.");
- }
+ $urlpath = preg_replace("/\w+\.php$/", "", make_self_url_path());
+
+ array_push($errors,
+ "Please set SELF_URL_PATH to the correct value for your server (possible value: <b>$urlpath</b>)");
}
if (!is_writable(ICONS_DIR)) {
@@ -85,10 +110,6 @@
array_push($errors, "LOCK_DIRECTORY defined in config.php is not writable (chmod -R 777 ".LOCK_DIRECTORY.").\n");
}
- if (ini_get("open_basedir")) {
- array_push($errors, "PHP configuration option open_basedir is not supported. Please disable this in PHP settings file (php.ini).");
- }
-
if (!function_exists("curl_init") && !ini_get("allow_url_fopen")) {
array_push($errors, "PHP configuration option allow_url_fopen is disabled, and CURL functions are not present. Either enable allow_url_fopen or install PHP extension for CURL.");
}
@@ -97,7 +118,7 @@
array_push($errors, "PHP support for JSON is required, but was not found.");
}
- if (DB_TYPE == "mysql" && !function_exists("mysql_connect")) {
+ if (DB_TYPE == "mysql" && !function_exists("mysql_connect") && !function_exists("mysqli_connect")) {
array_push($errors, "PHP support for MySQL is required for configured DB_TYPE in config.php.");
}
@@ -117,10 +138,14 @@
array_push($errors, "PHP support for ctype functions are required by HTMLPurifier.");
}
- if (ini_get("safe_mode")) {
- array_push($errors, "PHP safe mode setting is not supported.");
+ if (!function_exists("iconv")) {
+ array_push($errors, "PHP support for iconv is required to handle multiple charsets.");
}
+ /* if (ini_get("safe_mode")) {
+ array_push($errors, "PHP safe mode setting is not supported.");
+ } */
+
if ((PUBSUBHUBBUB_HUB || PUBSUBHUBBUB_ENABLED) && !function_exists("curl_init")) {
array_push($errors, "PHP support for CURL is required for PubSubHubbub.");
}
@@ -138,7 +163,8 @@
<link rel="stylesheet" type="text/css" href="utility.css">
</head>
<body>
- <div class="floatingLogo"><img src="images/logo_wide.png"></div>
+ <div class="floatingLogo"><img src="images/logo_small.png"></div>
+ <div class="content">
<h1>Startup failed</h1>
@@ -150,6 +176,8 @@
<p>You might want to check tt-rss <a href="http://tt-rss.org/wiki">wiki</a> or the
<a href="http://tt-rss.org/forum">forums</a> for more information. Please search the forums before creating new topic
for your question.</p>
+
+ </div>
</body>
</html>
@@ -170,6 +198,6 @@
}
}
- initial_sanity_check($link);
+ initial_sanity_check();
?>
diff --git a/include/sanity_config.php b/include/sanity_config.php
index d4a468f6d..7d8afe102 100644
--- a/include/sanity_config.php
+++ b/include/sanity_config.php
@@ -1,3 +1,3 @@
-<?php # This file has been generated at: Sat Feb 9 22:34:30 MSK 2013
+<?php # This file has been generated at: Fri Apr 19 09:22:33 MSK 2013
define('GENERATED_CONFIG_CHECK', 26);
-$requred_defines = array( 'DB_TYPE', 'DB_HOST', 'DB_USER', 'DB_NAME', 'DB_PASS', 'MYSQL_CHARSET', 'SELF_URL_PATH', 'SINGLE_USER_MODE', 'SIMPLE_UPDATE_MODE', 'PHP_EXECUTABLE', 'LOCK_DIRECTORY', 'CACHE_DIR', 'ICONS_DIR', 'ICONS_URL', 'AUTH_AUTO_CREATE', 'AUTH_AUTO_LOGIN', 'FORCE_ARTICLE_PURGE', 'PUBSUBHUBBUB_HUB', 'PUBSUBHUBBUB_ENABLED', 'SPHINX_ENABLED', 'SPHINX_INDEX', 'ENABLE_REGISTRATION', 'REG_NOTIFY_ADDRESS', 'REG_MAX_USERS', 'SESSION_COOKIE_LIFETIME', 'SESSION_EXPIRE_TIME', 'SESSION_CHECK_ADDRESS', 'SMTP_FROM_NAME', 'SMTP_FROM_ADDRESS', 'DIGEST_SUBJECT', 'SMTP_HOST', 'SMTP_LOGIN', 'SMTP_PASSWORD', 'CHECK_FOR_NEW_VERSION', 'ENABLE_GZIP_OUTPUT', 'PLUGINS', 'CONFIG_VERSION'); ?>
+$requred_defines = array( 'DB_TYPE', 'DB_HOST', 'DB_USER', 'DB_NAME', 'DB_PASS', 'MYSQL_CHARSET', 'SELF_URL_PATH', 'FEED_CRYPT_KEY', 'SINGLE_USER_MODE', 'SIMPLE_UPDATE_MODE', 'PHP_EXECUTABLE', 'LOCK_DIRECTORY', 'CACHE_DIR', 'ICONS_DIR', 'ICONS_URL', 'AUTH_AUTO_CREATE', 'AUTH_AUTO_LOGIN', 'FORCE_ARTICLE_PURGE', 'PUBSUBHUBBUB_HUB', 'PUBSUBHUBBUB_ENABLED', 'SPHINX_ENABLED', 'SPHINX_SERVER', 'SPHINX_INDEX', 'ENABLE_REGISTRATION', 'REG_NOTIFY_ADDRESS', 'REG_MAX_USERS', 'SESSION_COOKIE_LIFETIME', 'SESSION_CHECK_ADDRESS', 'SMTP_FROM_NAME', 'SMTP_FROM_ADDRESS', 'DIGEST_SUBJECT', 'SMTP_SERVER', 'SMTP_LOGIN', 'SMTP_PASSWORD', 'CHECK_FOR_NEW_VERSION', 'ENABLE_GZIP_OUTPUT', 'PLUGINS', 'LOG_DESTINATION', 'CONFIG_VERSION'); ?>
diff --git a/include/sessions.php b/include/sessions.php
index 2cef1d91b..423ef0eda 100644
--- a/include/sessions.php
+++ b/include/sessions.php
@@ -2,9 +2,14 @@
// Original from http://www.daniweb.com/code/snippet43.html
require_once "config.php";
- require_once "db.php";
-
- $session_expire = SESSION_EXPIRE_TIME; //seconds
+ require_once "classes/db.php";
+ require_once "autoload.php";
+ require_once "errorhandler.php";
+ require_once "lib/accept-to-gettext.php";
+ require_once "lib/gettext/gettext.inc";
+ require_once "version.php";
+
+ $session_expire = max(SESSION_COOKIE_LIFETIME, 86400);
$session_name = (!defined('TTRSS_SESSION_NAME')) ? "ttrss_sid" : TTRSS_SESSION_NAME;
if (@$_SERVER['HTTPS'] == "on") {
@@ -12,99 +17,135 @@
ini_set("session.cookie_secure", true);
}
- ini_set("session.gc_probability", 50);
+ ini_set("session.gc_probability", 75);
ini_set("session.name", $session_name);
ini_set("session.use_only_cookies", true);
- ini_set("session.gc_maxlifetime", SESSION_EXPIRE_TIME);
+ ini_set("session.gc_maxlifetime", $session_expire);
+ ini_set("session.cookie_lifetime", min(0, SESSION_COOKIE_LIFETIME));
- function ttrss_open ($s, $n) {
+ function session_get_schema_version($nocache = false) {
+ global $schema_version;
+
+ if (!$schema_version) {
+ $result = Db::get()->query("SELECT schema_version FROM ttrss_version");
+ $version = Db::get()->fetch_result($result, 0, "schema_version");
+ $schema_version = $version;
+ return $version;
+ } else {
+ return $schema_version;
+ }
+ }
+
+ function validate_session() {
+ if (SINGLE_USER_MODE) return true;
+
+ if (VERSION_STATIC != $_SESSION["version"]) return false;
+
+ $check_ip = $_SESSION['ip_address'];
+
+ switch (SESSION_CHECK_ADDRESS) {
+ case 0:
+ $check_ip = '';
+ break;
+ case 1:
+ $check_ip = substr($check_ip, 0, strrpos($check_ip, '.')+1);
+ break;
+ case 2:
+ $check_ip = substr($check_ip, 0, strrpos($check_ip, '.'));
+ $check_ip = substr($check_ip, 0, strrpos($check_ip, '.')+1);
+ break;
+ };
+
+ if ($check_ip && strpos($_SERVER['REMOTE_ADDR'], $check_ip) !== 0) {
+ $_SESSION["login_error_msg"] =
+ __("Session failed to validate (incorrect IP)");
+ return false;
+ }
+
+ if ($_SESSION["ref_schema_version"] != session_get_schema_version(true))
+ return false;
+
+ if (sha1($_SERVER['HTTP_USER_AGENT']) != $_SESSION["user_agent"])
+ return false;
+
+ if ($_SESSION["uid"]) {
+ $result = Db::get()->query(
+ "SELECT pwd_hash FROM ttrss_users WHERE id = '".$_SESSION["uid"]."'");
+
+ // user not found
+ if (Db::get()->num_rows($result) == 0) {
+ return false;
+ } else {
+ $pwd_hash = Db::get()->fetch_result($result, 0, "pwd_hash");
- global $session_connection;
+ if ($pwd_hash != $_SESSION["pwd_hash"]) {
+ return false;
+ }
+ }
+ }
- $session_connection = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
+ return true;
+ }
+
+ function ttrss_open ($s, $n) {
return true;
}
function ttrss_read ($id){
+ global $session_expire;
- global $session_connection,$session_read;
+ $res = Db::get()->query("SELECT data FROM ttrss_sessions WHERE id='$id'");
- $query = "SELECT data FROM ttrss_sessions WHERE id='$id'";
+ if (Db::get()->num_rows($res) != 1) {
- $res = db_query($session_connection, $query);
+ $expire = time() + $session_expire;
+
+ Db::get()->query("INSERT INTO ttrss_sessions (id, data, expire)
+ VALUES ('$id', '', '$expire')");
- if (db_num_rows($res) != 1) {
return "";
} else {
- $session_read = db_fetch_assoc($res);
- $session_read["data"] = base64_decode($session_read["data"]);
- return $session_read["data"];
+ return base64_decode(Db::get()->fetch_result($res, 0, "data"));
}
+
}
function ttrss_write ($id, $data) {
+ global $session_expire;
- if (! $data) {
- return false;
- }
-
- global $session_connection, $session_read, $session_expire;
-
+ $data = base64_encode($data);
$expire = time() + $session_expire;
- $data = db_escape_string(base64_encode($data), $session_connection);
+ Db::get()->query("UPDATE ttrss_sessions SET data='$data', expire='$expire' WHERE id='$id'");
- if ($session_read) {
- $query = "UPDATE ttrss_sessions SET data='$data',
- expire='$expire' WHERE id='$id'";
- } else {
- $query = "INSERT INTO ttrss_sessions (id, data, expire)
- VALUES ('$id', '$data', '$expire')";
- }
-
- db_query($session_connection, $query);
return true;
}
function ttrss_close () {
-
- global $session_connection;
-
- db_close($session_connection);
-
return true;
}
- function ttrss_destroy ($id) {
-
- global $session_connection;
-
- $query = "DELETE FROM ttrss_sessions WHERE id = '$id'";
-
- db_query($session_connection, $query);
+ function ttrss_destroy($id) {
+ Db::get()->query("DELETE FROM ttrss_sessions WHERE id = '$id'");
return true;
}
function ttrss_gc ($expire) {
-
- global $session_connection;
-
- $query = "DELETE FROM ttrss_sessions WHERE expire < " . time();
-
- db_query($session_connection, $query);
+ Db::get()->query("DELETE FROM ttrss_sessions WHERE expire < " . time());
}
- if (!SINGLE_USER_MODE && DB_TYPE == "pgsql") {
+ if (!SINGLE_USER_MODE /* && DB_TYPE == "pgsql" */) {
session_set_save_handler("ttrss_open",
"ttrss_close", "ttrss_read", "ttrss_write",
"ttrss_destroy", "ttrss_gc");
+ register_shutdown_function('session_write_close');
}
- session_set_cookie_params(SESSION_COOKIE_LIFETIME);
-
- if (!defined('TTRSS_SESSION_NAME') || TTRSS_SESSION_NAME != 'ttrss_api_sid') {
- @session_start();
+ if (!defined('NO_SESSION_AUTOSTART')) {
+ if (isset($_COOKIE[session_name()])) {
+ @session_start();
+ }
}
?>
diff --git a/include/version.php b/include/version.php
index 65af7f452..7396f81e0 100644
--- a/include/version.php
+++ b/include/version.php
@@ -1,3 +1,19 @@
<?php
- define('VERSION', "1.7.4");
+ define('VERSION_STATIC', '1.7.9');
+
+ function get_version() {
+ date_default_timezone_set('UTC');
+ $root_dir = dirname(dirname(__FILE__));
+
+ if (is_dir("$root_dir/.git") && file_exists("$root_dir/.git/ORIG_HEAD")) {
+
+ $suffix = substr(trim(file_get_contents("$root_dir/.git/ORIG_HEAD")), 0, 7);
+
+ return VERSION_STATIC . ".$suffix";
+ } else {
+ return VERSION_STATIC;
+ }
+ }
+
+ define('VERSION', get_version());
?>
diff --git a/index.php b/index.php
index 6584d8d2e..c43d2db4a 100644
--- a/index.php
+++ b/index.php
@@ -1,4 +1,8 @@
<?php
+ if (file_exists("install") && !file_exists("config.php")) {
+ header("Location: install/");
+ }
+
if (!file_exists("config.php")) {
print "<b>Fatal Error</b>: You forgot to copy
<b>config.php-dist</b> to <b>config.php</b> and edit it.\n";
@@ -15,6 +19,7 @@
set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
get_include_path());
+ require_once "autoload.php";
require_once "sessions.php";
require_once "functions.php";
require_once "sanity_check.php";
@@ -25,28 +30,22 @@
$mobile = new Mobile_Detect();
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- if (!init_connection($link)) return;
-
- global $pluginhost;
+ if (!init_plugins()) return;
if (!$_REQUEST['mobile']) {
- if ($mobile->isTablet() && $pluginhost->get_plugin("digest")) {
+ if ($mobile->isTablet() && PluginHost::getInstance()->get_plugin("digest")) {
header('Location: backend.php?op=digest');
exit;
- } else if ($mobile->isMobile()) {
- header('Location: mobile/index.php');
+ } else if ($mobile->isMobile() && PluginHost::getInstance()->get_plugin("mobile")) {
+ header('Location: backend.php?op=mobile');
+ exit;
+ } else if ($mobile->isMobile() && PluginHost::getInstance()->get_plugin("digest")) {
+ header('Location: backend.php?op=digest');
exit;
}
}
-
- login_sequence($link);
-
- $dt_add = time();
-
- no_cache_incantation();
+ login_sequence();
header('Content-Type: text/html; charset=utf-8');
@@ -56,45 +55,60 @@
<html>
<head>
<title>Tiny Tiny RSS</title>
- <link rel="stylesheet" type="text/css" href="lib/dijit/themes/claro/claro.css"/>
- <link rel="stylesheet" type="text/css" href="tt-rss.css?<?php echo $dt_add ?>"/>
- <link rel="stylesheet" type="text/css" href="cdm.css?<?php echo $dt_add ?>"/>
- <?php print_user_stylesheet($link) ?>
+ <?php stylesheet_tag("lib/dijit/themes/claro/claro.css"); ?>
+ <?php stylesheet_tag("tt-rss.css"); ?>
+ <?php stylesheet_tag("cdm.css"); ?>
- <script type="text/javascript">
- </script>
+ <?php if ($_SESSION["uid"]) {
+ $theme = get_pref( "USER_CSS_THEME", $_SESSION["uid"], false);
+ if ($theme) {
+ stylesheet_tag("themes/$theme");
+ }
+ }
+ ?>
+
+ <?php print_user_stylesheet() ?>
+
+ <style type="text/css">
+ <?php
+ foreach (PluginHost::getInstance()->get_plugins() as $n => $p) {
+ if (method_exists($p, "get_css")) {
+ echo $p->get_css();
+ }
+ }
+ ?>
+ </style>
<link rel="shortcut icon" type="image/png" href="images/favicon.png"/>
+ <link rel="icon" type="image/png" sizes="72x72" href="images/favicon-72px.png" />
- <script type="text/javascript" src="lib/prototype.js"></script>
- <script type="text/javascript" src="lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"></script>
- <script type="text/javascript" src="lib/dojo/dojo.js"></script>
- <script type="text/javascript" src="lib/dijit/dijit.js"></script>
- <script type="text/javascript" src="lib/dojo/tt-rss-layer.js"></script>
+ <?php
+ foreach (array("lib/prototype.js",
+ "lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls",
+ "lib/dojo/dojo.js",
+ "lib/dojo/tt-rss-layer.js",
+ "errors.php?mode=js") as $jsfile) {
+
+ javascript_tag($jsfile);
- <script type="text/javascript" charset="utf-8" src="localized_js.php?<?php echo $dt_add ?>"></script>
- <script type="text/javascript" charset="utf-8" src="errors.php?mode=js"></script>
+ } ?>
<script type="text/javascript">
+ require({cache:{}});
<?php
- require 'lib/jsmin.php';
+ require 'lib/jshrink/Minifier.php';
- global $pluginhost;
+ print get_minified_js(array("tt-rss",
+ "functions", "feedlist", "viewfeed", "FeedTree", "PluginHost"));
- foreach ($pluginhost->get_plugins() as $n => $p) {
+ foreach (PluginHost::getInstance()->get_plugins() as $n => $p) {
if (method_exists($p, "get_js")) {
- echo JSMin::minify($p->get_js());
+ echo JShrink\Minifier::minify($p->get_js());
}
}
- foreach (array("tt-rss", "functions", "feedlist", "viewfeed", "FeedTree") as $js) {
- if (!isset($_GET['debug'])) {
- echo JSMin::minify(file_get_contents("js/$js.js"));
- } else {
- echo file_get_contents("js/$js.js");
- }
- }
+ init_js_translations();
?>
</script>
@@ -119,21 +133,8 @@
</div>
</div>
-<div id="header">
- <img id="net-alert" style="display : none"
- title="<?php echo __("Communication problem with server.") ?>"
- src="<?php echo theme_image($link, 'images/alert.png') ?>"/>
-
- <img id="newVersionIcon" style="display:none" onclick="newVersionDlg()"
- width="13" height="13"
- src="<?php echo theme_image($link, 'images/new_version.png') ?>"
- title="<?php echo __('New version of Tiny Tiny RSS is available!') ?>"
- alt="new_version_icon"/>
-</div>
-
-<div id="notify" class="notify"><span id="notify_body">&nbsp;</span></div>
+<div id="notify" class="notify" style="display : none"></div>
<div id="cmdline" style="display : none"></div>
-<div id="auxDlg" style="display : none"></div>
<div id="headlines-tmp" style="display : none"></div>
<div id="main" dojoType="dijit.layout.BorderContainer">
@@ -166,40 +167,54 @@
<option value="marked"><?php echo __('Starred') ?></option>
<option value="published"><?php echo __('Published') ?></option>
<option value="unread"><?php echo __('Unread') ?></option>
+ <option value="unread_first"><?php echo __('Unread First') ?></option>
+ <option value="has_note"><?php echo __('With Note') ?></option>
<!-- <option value="noscores"><?php echo __('Ignore Scoring') ?></option> -->
- <option value="updated"><?php echo __('Updated') ?></option>
</select>
<select title="<?php echo __('Sort articles') ?>"
onchange="viewModeChanged()"
dojoType="dijit.form.Select" name="order_by">
<option selected="selected" value="default"><?php echo __('Default') ?></option>
- <option value="date"><?php echo __('Date') ?></option>
+ <option value="feed_dates"><?php echo __('Newest first') ?></option>
+ <option value="date_reverse"><?php echo __('Oldest first') ?></option>
<option value="title"><?php echo __('Title') ?></option>
- <option value="score"><?php echo __('Score') ?></option>
</select>
- <button dojoType="dijit.form.Button" name="update"
- onclick="viewCurrentFeed()">
- <?php echo __('Update') ?></button>
-
- <button dojoType="dijit.form.Button"
- onclick="catchupCurrentFeed()">
- <?php echo __('Mark as read') ?></button>
+ <div dojoType="dijit.form.ComboButton" onclick="catchupCurrentFeed()">
+ <span><?php echo __('Mark as read') ?></span>
+ <div dojoType="dijit.DropDownMenu">
+ <div dojoType="dijit.MenuItem" onclick="catchupCurrentFeed('1day')">
+ <?php echo __('Older than one day') ?>
+ </div>
+ <div dojoType="dijit.MenuItem" onclick="catchupCurrentFeed('1week')">
+ <?php echo __('Older than one week') ?>
+ </div>
+ <div dojoType="dijit.MenuItem" onclick="catchupCurrentFeed('2week')">
+ <?php echo __('Older than two weeks') ?>
+ </div>
+ </div>
+ </div>
</form>
<div class="actionChooser">
+ <?php
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_TOOLBAR_BUTTON) as $p) {
+ echo $p->hook_toolbar_button();
+ }
+ ?>
+
<button id="net-alert" dojoType="dijit.form.Button" style="display : none" disabled="true"
title="<?php echo __("Communication problem with server.") ?>">
<img
- src="<?php echo theme_image($link, 'images/alert.png') ?>" />
+ src="images/alert.png" />
</button>
<button id="newVersionIcon" dojoType="dijit.form.Button" style="display : none">
<img onclick="newVersionDlg()"
- src="<?php echo theme_image($link, 'images/new_version.png') ?>"
+ src="images/new_version.png"
title="<?php echo __('New version of Tiny Tiny RSS is available!') ?>" />
</button>
@@ -212,23 +227,24 @@
<div dojoType="dijit.MenuItem" disabled="1"><?php echo __('Feed actions:') ?></div>
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcAddFeed')"><?php echo __('Subscribe to feed...') ?></div>
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcEditFeed')"><?php echo __('Edit this feed...') ?></div>
- <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcRescoreFeed')"><?php echo __('Rescore feed') ?></div>
+ <!-- <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcRescoreFeed')"><?php echo __('Rescore feed') ?></div> -->
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcRemoveFeed')"><?php echo __('Unsubscribe') ?></div>
<div dojoType="dijit.MenuItem" disabled="1"><?php echo __('All feeds:') ?></div>
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcCatchupAll')"><?php echo __('Mark as read') ?></div>
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcShowOnlyUnread')"><?php echo __('(Un)hide read feeds') ?></div>
<div dojoType="dijit.MenuItem" disabled="1"><?php echo __('Other actions:') ?></div>
- <?php if ($pluginhost->get_plugin("digest")) { ?>
- <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcDigest')"><?php echo __('Switch to digest...') ?></div>
- <?php } ?>
- <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcTagCloud')"><?php echo __('Show tag cloud...') ?></div>
- <?php if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) { ?>
- <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcToggleWidescreen')"><?php echo __('Toggle widescreen mode') ?></div>
- <?php } ?>
+ <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcToggleWidescreen')"><?php echo __('Toggle widescreen mode') ?></div>
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcTagSelect')"><?php echo __('Select by tags...') ?></div>
- <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcAddLabel')"><?php echo __('Create label...') ?></div>
- <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcAddFilter')"><?php echo __('Create filter...') ?></div>
+ <!-- <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcAddLabel')"><?php echo __('Create label...') ?></div>
+ <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcAddFilter')"><?php echo __('Create filter...') ?></div> -->
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcHKhelp')"><?php echo __('Keyboard shortcuts help') ?></div>
+
+ <?php
+ foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ACTION_ITEM) as $p) {
+ echo $p->hook_action_item();
+ }
+ ?>
+
<?php if (!$_SESSION["hide_logout"]) { ?>
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcLogout')"><?php echo __('Logout') ?></div>
<?php } ?>
@@ -250,17 +266,13 @@
</div>
</div>
- <?php if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) { ?>
<div id="content-insert" dojoType="dijit.layout.ContentPane" region="bottom"
style="height : 50%" splitter="true"></div>
- <?php } ?>
</div>
</div>
</div>
</div>
-<?php db_close($link); ?>
-
</body>
</html>
diff --git a/install/index.php b/install/index.php
new file mode 100644
index 000000000..6cb2ace4f
--- /dev/null
+++ b/install/index.php
@@ -0,0 +1,498 @@
+<html>
+<head>
+ <title>Tiny Tiny RSS - Installer</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <link rel="stylesheet" type="text/css" href="../utility.css">
+ <style type="text/css">
+ textarea { font-size : 12px; }
+ </style>
+</head>
+<body>
+
+<?php
+ function make_password($length = 8) {
+
+ $password = "";
+ $possible = "0123456789abcdfghjkmnpqrstvwxyzABCDFGHJKMNPQRSTVWXYZ*%+^";
+
+ $i = 0;
+
+ while ($i < $length) {
+ $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
+
+ if (!strstr($password, $char)) {
+ $password .= $char;
+ $i++;
+ }
+ }
+ return $password;
+ }
+
+
+ function sanity_check($db_type) {
+ $errors = array();
+
+ if (version_compare(PHP_VERSION, '5.3.0', '<')) {
+ array_push($errors, "PHP version 5.3.0 or newer required.");
+ }
+
+ if (!function_exists("curl_init") && !ini_get("allow_url_fopen")) {
+ array_push($errors, "PHP configuration option allow_url_fopen is disabled, and CURL functions are not present. Either enable allow_url_fopen or install PHP extension for CURL.");
+ }
+
+ if (!function_exists("json_encode")) {
+ array_push($errors, "PHP support for JSON is required, but was not found.");
+ }
+
+ if ($db_type == "mysql" && !function_exists("mysql_connect") && !function_exists("mysqli_connect")) {
+ array_push($errors, "PHP support for MySQL is required for configured $db_type in config.php.");
+ }
+
+ if ($db_type == "pgsql" && !function_exists("pg_connect")) {
+ array_push($errors, "PHP support for PostgreSQL is required for configured $db_type in config.php");
+ }
+
+ if (!function_exists("mb_strlen")) {
+ array_push($errors, "PHP support for mbstring functions is required but was not found.");
+ }
+
+ if (!function_exists("hash")) {
+ array_push($errors, "PHP support for hash() function is required but was not found.");
+ }
+
+ if (!function_exists("ctype_lower")) {
+ array_push($errors, "PHP support for ctype functions are required by HTMLPurifier.");
+ }
+
+ if (!function_exists("iconv")) {
+ array_push($errors, "PHP support for iconv is required to handle multiple charsets.");
+ }
+
+ /* if (ini_get("safe_mode")) {
+ array_push($errors, "PHP safe mode setting is not supported.");
+ } */
+
+ if (!class_exists("DOMDocument")) {
+ array_push($errors, "PHP support for DOMDocument is required, but was not found.");
+ }
+
+ return $errors;
+ }
+
+ function print_error($msg) {
+ print "<div class='error'><span><img src='../images/sign_excl.svg'></span>
+ <span>$msg</span></div>";
+ }
+
+ function print_notice($msg) {
+ print "<div class=\"notice\">
+ <span><img src=\"../images/sign_info.svg\"></span><span>$msg</span></div>";
+ }
+
+ function db_connect($host, $user, $pass, $db, $type, $port = false) {
+ if ($type == "pgsql") {
+
+ $string = "dbname=$db user=$user";
+
+ if ($pass) {
+ $string .= " password=$pass";
+ }
+
+ if ($host) {
+ $string .= " host=$host";
+ }
+
+ if ($port) {
+ $string = "$string port=" . $port;
+ }
+
+ $link = pg_connect($string);
+
+ return $link;
+
+ } else if ($type == "mysql") {
+ if (function_exists("mysqli_connect")) {
+ if ($port)
+ return mysqli_connect($host, $user, $pass, $db, $port);
+ else
+ return mysqli_connect($host, $user, $pass, $db);
+
+ } else {
+ $link = mysql_connect($host, $user, $pass);
+ if ($link) {
+ $result = mysql_select_db($db, $link);
+ if ($result) return $link;
+ }
+ }
+ }
+ }
+
+ function make_config($DB_TYPE, $DB_HOST, $DB_USER, $DB_NAME, $DB_PASS,
+ $DB_PORT, $SELF_URL_PATH) {
+
+ $data = explode("\n", file_get_contents("../config.php-dist"));
+
+ $rv = "";
+
+ $finished = false;
+
+ if (function_exists("mcrypt_decrypt")) {
+ $crypt_key = make_password(24);
+ } else {
+ $crypt_key = "";
+ }
+
+ foreach ($data as $line) {
+ if (preg_match("/define\('DB_TYPE'/", $line)) {
+ $rv .= "\tdefine('DB_TYPE', '$DB_TYPE');\n";
+ } else if (preg_match("/define\('DB_HOST'/", $line)) {
+ $rv .= "\tdefine('DB_HOST', '$DB_HOST');\n";
+ } else if (preg_match("/define\('DB_USER'/", $line)) {
+ $rv .= "\tdefine('DB_USER', '$DB_USER');\n";
+ } else if (preg_match("/define\('DB_NAME'/", $line)) {
+ $rv .= "\tdefine('DB_NAME', '$DB_NAME');\n";
+ } else if (preg_match("/define\('DB_PASS'/", $line)) {
+ $rv .= "\tdefine('DB_PASS', '$DB_PASS');\n";
+ } else if (preg_match("/define\('DB_PORT'/", $line)) {
+ $rv .= "\tdefine('DB_PORT', '$DB_PORT');\n";
+ } else if (preg_match("/define\('SELF_URL_PATH'/", $line)) {
+ $rv .= "\tdefine('SELF_URL_PATH', '$SELF_URL_PATH');\n";
+ } else if (preg_match("/define\('FEED_CRYPT_KEY'/", $line)) {
+ $rv .= "\tdefine('FEED_CRYPT_KEY', '$crypt_key');\n";
+ } else if (!$finished) {
+ $rv .= "$line\n";
+ }
+
+ if (preg_match("/\?\>/", $line)) {
+ $finished = true;
+ }
+ }
+
+ return $rv;
+ }
+
+ function db_query($link, $query, $type, $die_on_error = true) {
+ if ($type == "pgsql") {
+ $result = pg_query($link, $query);
+ if (!$result) {
+ $query = htmlspecialchars($query); // just in case
+ if ($die_on_error) {
+ die("Query <i>$query</i> failed [$result]: " . ($link ? pg_last_error($link) : "No connection"));
+ }
+ }
+ return $result;
+ } else if ($type == "mysql") {
+
+ if (function_exists("mysqli_connect")) {
+ $result = mysqli_query($link, $query);
+ } else {
+ $result = mysql_query($query, $link);
+ }
+ if (!$result) {
+ $query = htmlspecialchars($query);
+ if ($die_on_error) {
+ die("Query <i>$query</i> failed: " . ($link ? mysql_error($link) : "No connection"));
+ }
+ }
+ return $result;
+ }
+ }
+
+ function make_self_url_path() {
+ $url_path = ($_SERVER['HTTPS'] != "on" ? 'http://' : 'https://') . $_SERVER["HTTP_HOST"] . parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
+
+ return $url_path;
+ }
+
+?>
+
+<div class="floatingLogo"><img src="../images/logo_small.png"></div>
+
+<h1>Tiny Tiny RSS Installer</h1>
+
+<div class='content'>
+
+<?php
+
+ if (file_exists("../config.php")) {
+ require "../config.php";
+
+ if (!defined('_INSTALLER_IGNORE_CONFIG_CHECK')) {
+ print_error("Error: config.php already exists in tt-rss directory; aborting.");
+ exit;
+ }
+ }
+
+ @$op = $_REQUEST['op'];
+
+ @$DB_HOST = strip_tags($_POST['DB_HOST']);
+ @$DB_TYPE = strip_tags($_POST['DB_TYPE']);
+ @$DB_USER = strip_tags($_POST['DB_USER']);
+ @$DB_NAME = strip_tags($_POST['DB_NAME']);
+ @$DB_PASS = strip_tags($_POST['DB_PASS']);
+ @$DB_PORT = strip_tags($_POST['DB_PORT']);
+ @$SELF_URL_PATH = strip_tags($_POST['SELF_URL_PATH']);
+
+ if (!$SELF_URL_PATH) {
+ $SELF_URL_PATH = preg_replace("/\/install\/$/", "/", make_self_url_path());
+ }
+?>
+
+<form action="" method="post">
+<input type="hidden" name="op" value="testconfig">
+
+<h2>Database settings</h2>
+
+<?php
+ $issel_pgsql = $DB_TYPE == "pgsql" ? "selected" : "";
+ $issel_mysql = $DB_TYPE == "mysql" ? "selected" : "";
+?>
+
+<fieldset>
+ <label>Database type</label>
+ <select name="DB_TYPE">
+ <option <?php echo $issel_pgsql ?> value="pgsql">PostgreSQL</option>
+ <option <?php echo $issel_mysql ?> value="mysql">MySQL</option>
+ </select>
+</fieldset>
+
+<fieldset>
+ <label>Username</label>
+ <input required name="DB_USER" size="20" value="<?php echo $DB_USER ?>"/>
+</fieldset>
+
+<fieldset>
+ <label>Password</label>
+ <input required name="DB_PASS" size="20" type="password" value="<?php echo $DB_PASS ?>"/>
+</fieldset>
+
+<fieldset>
+ <label>Database name</label>
+ <input required name="DB_NAME" size="20" value="<?php echo $DB_NAME ?>"/>
+</fieldset>
+
+<fieldset>
+ <label>Host name</label>
+ <input name="DB_HOST" size="20" value="<?php echo $DB_HOST ?>"/>
+ <span class="hint">If needed</span>
+</fieldset>
+
+<fieldset>
+ <label>Port</label>
+ <input name="DB_PORT" type="number" size="20" value="<?php echo $DB_PORT ?>"/>
+ <span class="hint">Usually 3306 for MySQL or 5432 for PostgreSQL</span>
+</fieldset>
+
+<h2>Other settings</h2>
+
+<p>This should be set to the location your Tiny Tiny RSS will be available on.</p>
+
+<fieldset>
+ <label>Tiny Tiny RSS URL</label>
+ <input type="url" name="SELF_URL_PATH" placeholder="<?php echo $SELF_URL_PATH; ?>" size="60" value="<?php echo $SELF_URL_PATH ?>"/>
+</fieldset>
+
+
+<p><input type="submit" value="Test configuration"></p>
+
+</form>
+
+<?php if ($op == 'testconfig') { ?>
+
+ <h2>Checking configuration</h2>
+
+ <?php
+ $errors = sanity_check($DB_TYPE);
+
+ if (count($errors) > 0) {
+ print "<p>Some configuration tests failed. Please correct them before continuing.</p>";
+
+ print "<ul>";
+
+ foreach ($errors as $error) {
+ print "<li style='color : red'>$error</li>";
+ }
+
+ print "</ul>";
+
+ exit;
+ }
+
+ $notices = array();
+
+ if (!function_exists("curl_init")) {
+ array_push($notices, "It is highly recommended to enable support for CURL in PHP.");
+ }
+
+ if (count($notices) > 0) {
+ print_notice("Configuration check succeeded with minor problems:");
+
+ print "<ul>";
+
+ foreach ($notices as $notice) {
+ print "<li>$notice</li>";
+ }
+
+ print "</ul>";
+ } else {
+ print_notice("Configuration check succeeded.");
+ }
+
+ ?>
+
+ <h2>Checking database</h2>
+
+ <?php
+ $link = db_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, $DB_TYPE, $DB_PORT);
+
+ if (!$link) {
+ print_error("Unable to connect to database using specified parameters.");
+ exit;
+ }
+
+ print_notice("Database test succeeded."); ?>
+
+ <h2>Initialize database</h2>
+
+ <p>Before you can start using tt-rss, database needs to be initialized. Click on the button below to do that now.</p>
+
+ <?php
+ $result = db_query($link, "SELECT true FROM ttrss_feeds", $DB_TYPE, false);
+
+ if ($result) {
+ print_error("Existing tt-rss tables will be removed from the database. If you would like to keep your data, skip database initialization.");
+ $need_confirm = true;
+ } else {
+ $need_confirm = false;
+ }
+ ?>
+
+ <table><tr><td>
+ <form method="post">
+ <input type="hidden" name="op" value="installschema">
+
+ <input type="hidden" name="DB_USER" value="<?php echo $DB_USER ?>"/>
+ <input type="hidden" name="DB_PASS" value="<?php echo $DB_PASS ?>"/>
+ <input type="hidden" name="DB_NAME" value="<?php echo $DB_NAME ?>"/>
+ <input type="hidden" name="DB_HOST" value="<?php echo $DB_HOST ?>"/>
+ <input type="hidden" name="DB_PORT" value="<?php echo $DB_PORT ?>"/>
+ <input type="hidden" name="DB_TYPE" value="<?php echo $DB_TYPE ?>"/>
+ <input type="hidden" name="SELF_URL_PATH" value="<?php echo $SELF_URL_PATH ?>"/>
+
+ <?php if ($need_confirm) { ?>
+ <p><input onclick="return confirm('Please read the warning above. Continue?')" type="submit" value="Initialize database" style="color : red"></p>
+ <?php } else { ?>
+ <p><input type="submit" value="Initialize database" style="color : red"></p>
+ <?php } ?>
+ </form>
+
+ </td><td>
+ <form method="post">
+ <input type="hidden" name="DB_USER" value="<?php echo $DB_USER ?>"/>
+ <input type="hidden" name="DB_PASS" value="<?php echo $DB_PASS ?>"/>
+ <input type="hidden" name="DB_NAME" value="<?php echo $DB_NAME ?>"/>
+ <input type="hidden" name="DB_HOST" value="<?php echo $DB_HOST ?>"/>
+ <input type="hidden" name="DB_PORT" value="<?php echo $DB_PORT ?>"/>
+ <input type="hidden" name="DB_TYPE" value="<?php echo $DB_TYPE ?>"/>
+ <input type="hidden" name="SELF_URL_PATH" value="<?php echo $SELF_URL_PATH ?>"/>
+
+ <input type="hidden" name="op" value="skipschema">
+ <p><input type="submit" value="Skip initialization"></p>
+ </form>
+
+ </td></tr></table>
+
+ <?php
+
+ } else if ($op == 'installschema' || $op == 'skipschema') {
+
+ $link = db_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, $DB_TYPE);
+
+ if (!$link) {
+ print_error("Unable to connect to database using specified parameters.");
+ exit;
+ }
+
+ if ($op == 'installschema') {
+
+ print "<h2>Initializing database...</h2>";
+
+ $lines = explode(";", preg_replace("/[\r\n]/", "", file_get_contents("../schema/ttrss_schema_".basename($DB_TYPE).".sql")));
+
+ foreach ($lines as $line) {
+ if (strpos($line, "--") !== 0 && $line) {
+ db_query($link, $line, $DB_TYPE);
+ }
+ }
+
+ print_notice("Database initialization completed.");
+
+ } else {
+ print_notice("Database initialization skipped.");
+ }
+
+ print "<h2>Generated configuration file</h2>";
+
+ print "<p>Copy following text and save as <code>config.php</code> in tt-rss main directory. It is suggested to read through the file to the end in case you need any options changed fom default values.</p>";
+
+ print "<p>After copying the file, you will be able to login with default username and password combination: <code>admin</code> and <code>password</code>. Don't forget to change the password immediately!</p>"; ?>
+
+ <form action="" method="post">
+ <input type="hidden" name="op" value="saveconfig">
+ <input type="hidden" name="DB_USER" value="<?php echo $DB_USER ?>"/>
+ <input type="hidden" name="DB_PASS" value="<?php echo $DB_PASS ?>"/>
+ <input type="hidden" name="DB_NAME" value="<?php echo $DB_NAME ?>"/>
+ <input type="hidden" name="DB_HOST" value="<?php echo $DB_HOST ?>"/>
+ <input type="hidden" name="DB_PORT" value="<?php echo $DB_PORT ?>"/>
+ <input type="hidden" name="DB_TYPE" value="<?php echo $DB_TYPE ?>"/>
+ <input type="hidden" name="SELF_URL_PATH" value="<?php echo $SELF_URL_PATH ?>"/>
+ <?php print "<textarea cols=\"80\" rows=\"20\">";
+ echo make_config($DB_TYPE, $DB_HOST, $DB_USER, $DB_NAME, $DB_PASS,
+ $DB_PORT, $SELF_URL_PATH);
+ print "</textarea>"; ?>
+
+ <?php if (is_writable("..")) { ?>
+ <p>We can also try saving the file automatically now.</p>
+
+ <p><input type="submit" value="Save configuration"></p>
+ </form>
+ <?php } else {
+ print_error("Unfortunately, parent directory is not writable, so we're unable to save config.php automatically.");
+ }
+
+ print_notice("You can generate the file again by changing the form above.");
+
+ } else if ($op == "saveconfig") {
+
+ print "<h2>Saving configuration file to parent directory...</h2>";
+
+ if (!file_exists("../config.php")) {
+
+ $fp = fopen("../config.php", "w");
+
+ if ($fp) {
+ $written = fwrite($fp, make_config($DB_TYPE, $DB_HOST,
+ $DB_USER, $DB_NAME, $DB_PASS,
+ $DB_PORT, $SELF_URL_PATH));
+
+ if ($written > 0) {
+ print_notice("Successfully saved config.php. You can try <a href=\"..\">loading tt-rss now</a>.");
+
+ } else {
+ print_notice("Unable to write into config.php in tt-rss directory.");
+ }
+
+ fclose($fp);
+ } else {
+ print_error("Unable to open config.php in tt-rss directory for writing.");
+ }
+ } else {
+ print_error("config.php already present in tt-rss directory, refusing to overwrite.");
+ }
+ }
+ ?>
+
+</div>
+
+</body>
+</html>
diff --git a/js/FeedTree.js b/js/FeedTree.js
index 2cb6346e4..d80f46062 100644
--- a/js/FeedTree.js
+++ b/js/FeedTree.js
@@ -100,13 +100,13 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
_createTreeNode: function(args) {
var tnode = new dijit._TreeNode(args);
- if (args.item.icon)
+ if (args.item.icon && args.item.icon[0])
tnode.iconNode.src = args.item.icon[0];
var id = args.item.id[0];
var bare_id = parseInt(id.substr(id.indexOf(':')+1));
- if (bare_id < -10) {
+ if (bare_id < _label_base_index) {
var span = dojo.doc.createElement('span');
var fg_color = args.item.fg_color[0];
var bg_color = args.item.bg_color[0];
@@ -162,6 +162,14 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
tnode._menu = menu;
}
+ if (id.match("CAT:")) {
+ loading = dojo.doc.createElement('img');
+ loading.className = 'loadingNode';
+ loading.src = 'images/blank_icon.gif';
+ dojo.place(loading, tnode.labelNode, 'after');
+ tnode.loadingNode = loading;
+ }
+
if (id.match("CAT:") && bare_id == -1) {
var menu = new dijit.Menu();
menu.row_id = bare_id;
@@ -176,10 +184,51 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
tnode._menu = menu;
}
+ ctr = dojo.doc.createElement('span');
+ ctr.className = 'counterNode';
+ ctr.innerHTML = args.item.unread;
+
+ //args.item.unread > 0 ? ctr.addClassName("unread") : ctr.removeClassName("unread");
+
+ args.item.unread > 0 ? Element.show(ctr) : Element.hide(ctr);
+
+ dojo.place(ctr, tnode.rowNode, 'first');
+ tnode.counterNode = ctr;
//tnode.labelNode.innerHTML = args.label;
return tnode;
},
+ postCreate: function() {
+ this.connect(this.model, "onChange", "updateCounter");
+
+ this.inherited(arguments);
+ },
+ updateCounter: function (item) {
+ var tree = this;
+
+ //console.log("updateCounter: " + item.id[0] + " " + item.unread + " " + tree);
+
+ var node = tree._itemNodesMap[item.id];
+
+ if (node) {
+ node = node[0];
+
+ if (node.counterNode) {
+ ctr = node.counterNode;
+ ctr.innerHTML = item.unread;
+ item.unread > 0 ? Effect.Appear(ctr, {duration : 0.3,
+ queue: { position: 'end', scope: 'CAPPEAR-' + item.id, limit: 1 }}) :
+ Element.hide(ctr);
+ }
+ }
+
+ },
+ getTooltip: function (item) {
+ if (item.updated)
+ return item.updated;
+ else
+ return "";
+ },
getIconClass: function (item, opened) {
return (!item || this.model.mayHaveChildren(item)) ? (opened ? "dijitFolderOpened" : "dijitFolderClosed") : "feedIcon";
},
@@ -187,8 +236,12 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
return (item.unread == 0) ? "dijitTreeLabel" : "dijitTreeLabel Unread";
},
getRowClass: function (item, opened) {
- return (!item.error || item.error == '') ? "dijitTreeRow" :
+ var rc = (!item.error || item.error == '') ? "dijitTreeRow" :
"dijitTreeRow Error";
+
+ if (item.unread > 0) rc += " Unread";
+
+ return rc;
},
getLabel: function(item) {
var name = String(item.name);
@@ -200,17 +253,73 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
name = name.replace(/&lt;/g, "<");
name = name.replace(/&gt;/g, ">");
- var label;
+ /* var label;
if (item.unread > 0) {
label = name + " (" + item.unread + ")";
} else {
label = name;
+ } */
+
+ return name;
+ },
+ expandParentNodes: function(feed, is_cat, list) {
+ try {
+ for (var i = 0; i < list.length; i++) {
+ var id = String(list[i].id);
+ var item = this._itemNodesMap[id];
+
+ if (item) {
+ item = item[0];
+ this._expandNode(item);
+ }
+ }
+ } catch (e) {
+ exception_error("expandParentNodes", e);
}
+ },
+ findNodeParentsAndExpandThem: function(feed, is_cat, root, parents) {
+ // expands all parents of specified feed to properly mark it as active
+ // my fav thing about frameworks is doing everything myself
+ try {
+ var test_id = is_cat ? 'CAT:' + feed : 'FEED:' + feed;
+
+ if (!root) {
+ if (!this.model || !this.model.store) return false;
+
+ var items = this.model.store._arrayOfTopLevelItems;
- return label;
+ for (var i = 0; i < items.length; i++) {
+ if (String(items[i].id) == test_id) {
+ this.expandParentNodes(feed, is_cat, parents);
+ } else {
+ this.findNodeParentsAndExpandThem(feed, is_cat, items[i], []);
+ }
+ }
+ } else {
+ if (root.items) {
+ parents.push(root);
+
+ for (var i = 0; i < root.items.length; i++) {
+ if (String(root.items[i].id) == test_id) {
+ this.expandParentNodes(feed, is_cat, parents);
+ } else {
+ this.findNodeParentsAndExpandThem(feed, is_cat, root.items[i], parents.slice(0));
+ }
+ }
+ } else {
+ if (String(root.id) == test_id) {
+ this.expandParentNodes(feed, is_cat, parents.slice(0));
+ }
+ }
+ }
+ } catch (e) {
+ exception_error("findNodeParentsAndExpandThem", e);
+ }
},
selectFeed: function(feed, is_cat) {
+ this.findNodeParentsAndExpandThem(feed, is_cat, false, false);
+
if (is_cat)
treeNode = this._itemNodesMap['CAT:' + feed];
else
@@ -243,8 +352,13 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
if (treeNode) {
treeNode = treeNode[0];
- treeNode.expandoNode.src = src;
- return true;
+ if (treeNode.loadingNode) {
+ treeNode.loadingNode.src = src;
+ return true;
+ } else {
+ treeNode.expandoNode.src = src;
+ return true;
+ }
}
return false;
@@ -309,7 +423,7 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
var node = tree._itemNodesMap[id];
if (node) {
- if (hide && unread == 0 && (bare_id > 0 || !show_special)) {
+ if (hide && unread == 0 && (bare_id > 0 || bare_id < _label_base_index || !show_special)) {
Effect.Fade(node[0].rowNode, {duration : 0.3,
queue: { position: 'end', scope: 'FFADE-' + id, limit: 1 }});
} else {
diff --git a/js/PluginHost.js b/js/PluginHost.js
new file mode 100644
index 000000000..668d215f9
--- /dev/null
+++ b/js/PluginHost.js
@@ -0,0 +1,34 @@
+// based on http://www.velvetcache.org/2010/08/19/a-simple-javascript-hooks-system
+
+var PluginHost = {
+ HOOK_ARTICLE_RENDERED: 1,
+ HOOK_ARTICLE_RENDERED_CDM: 2,
+ HOOK_ARTICLE_SET_ACTIVE: 3,
+ HOOK_FEED_SET_ACTIVE: 4,
+ HOOK_FEED_LOADED: 5,
+ HOOK_ARTICLE_EXPANDED: 6,
+ HOOK_ARTICLE_COLLAPSED: 7,
+ HOOK_PARAMS_LOADED: 8,
+ HOOK_RUNTIME_INFO_LOADED: 9,
+ hooks: [],
+ register: function (name, callback) {
+ if (typeof(this.hooks[name]) == 'undefined')
+ this.hooks[name] = [];
+
+ this.hooks[name].push(callback);
+ },
+ run: function (name, args) {
+ console.warn('PluginHost::run ' + name);
+
+ if (typeof(this.hooks[name]) != 'undefined')
+ for (i = 0; i < this.hooks[name].length; i++)
+ if (!this.hooks[name][i](args)) break;
+ }
+};
+
+/* PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED,
+ function (args) { console.log('ARTICLE_RENDERED: ' + args); return true; });
+
+PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED_CDM,
+ function (args) { console.log('ARTICLE_RENDERED_CDM: ' + args); return true; }); */
+
diff --git a/js/PrefFilterTree.js b/js/PrefFilterTree.js
index afa2f445a..3546e30fb 100644
--- a/js/PrefFilterTree.js
+++ b/js/PrefFilterTree.js
@@ -1,6 +1,22 @@
dojo.provide("fox.PrefFilterTree");
dojo.require("lib.CheckBoxTree");
+dojo.require("dojo.data.ItemFileWriteStore");
+
+dojo.declare("fox.PrefFilterStore", dojo.data.ItemFileWriteStore, {
+
+ _saveEverything: function(saveCompleteCallback, saveFailedCallback,
+ newFileContentString) {
+
+ dojo.xhrPost({
+ url: "backend.php",
+ content: {op: "pref-filters", method: "savefilterorder",
+ payload: newFileContentString},
+ error: saveFailedCallback,
+ load: saveCompleteCallback});
+ },
+
+});
dojo.declare("fox.PrefFilterTree", lib.CheckBoxTree, {
_createTreeNode: function(args) {
@@ -48,5 +64,17 @@ dojo.declare("fox.PrefFilterTree", lib.CheckBoxTree, {
return (!item.error || item.error == '') ? "dijitTreeRow" :
"dijitTreeRow Error";
},
+ checkItemAcceptance: function(target, source, position) {
+ var item = dijit.getEnclosingWidget(target).item;
+
+ // disable copying items
+ source.copyState = function() { return false; };
+
+ return position != 'over';
+ },
+ onDndDrop: function() {
+ this.inherited(arguments);
+ this.tree.model.store.save();
+ },
});
diff --git a/js/feedlist.js b/js/feedlist.js
index e227c9386..51082f827 100644
--- a/js/feedlist.js
+++ b/js/feedlist.js
@@ -88,8 +88,6 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
_infscroll_request_sent = timestamp;
}
-
- hideAuxDlg();
}
Form.enable("main_toolbar_form");
@@ -125,24 +123,23 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
Form.enable("main_toolbar_form");
- if (!offset)
- if (!is_cat) {
- if (!setFeedExpandoIcon(feed, is_cat, 'images/indicator_white.gif'))
- notify_progress("Loading, please wait...", true);
- } else {
+ if (!setFeedExpandoIcon(feed, is_cat,
+ (is_cat) ? 'images/indicator_tiny.gif' : 'images/indicator_white.gif'))
notify_progress("Loading, please wait...", true);
- }
}
query += "&cat=" + is_cat;
console.log(query);
+ setActiveFeedId(feed, is_cat);
+
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
setFeedExpandoIcon(feed, is_cat, 'images/blank_icon.gif');
headlines_callback2(transport, offset, background, infscroll_req);
+ PluginHost.run(PluginHost.HOOK_FEED_LOADED, [feed, is_cat]);
} });
} catch (e) {
@@ -154,7 +151,8 @@ function feedlist_init() {
try {
console.log("in feedlist init");
- hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
+ loading_set_progress(50);
+
document.onkeydown = hotkey_handler;
setTimeout("hotkey_prefix_timeout()", 5*1000);
@@ -211,23 +209,6 @@ function request_counters(force) {
}
}
-function displayNewContentPrompt(id) {
- try {
-
- var msg = "<a href='#' onclick='viewCurrentFeed()'>" +
- __("New articles available in this feed (click to show)") + "</a>";
-
- msg = msg.replace("%s", getFeedName(id));
-
- $('auxDlg').innerHTML = msg;
-
- new Effect.Appear('auxDlg', {duration : 0.5});
-
- } catch (e) {
- exception_error("displayNewContentPrompt", e);
- }
-}
-
function parse_counters(elems, scheduled_call) {
try {
for (var l = 0; l < elems.length; l++) {
@@ -250,10 +231,6 @@ function parse_counters(elems, scheduled_call) {
continue;
}
- if (id == getActiveFeedId() && ctr > getFeedUnread(id) && scheduled_call) {
- displayNewContentPrompt(id);
- }
-
if (getFeedUnread(id, (kind == "cat")) != ctr ||
(kind == "cat")) {
}
@@ -408,8 +385,8 @@ function getNextUnreadFeed(feed, is_cat) {
}
}
-function catchupCurrentFeed() {
- return catchupFeed(getActiveFeedId(), activeFeedIsCat());
+function catchupCurrentFeed(mode) {
+ catchupFeed(getActiveFeedId(), activeFeedIsCat(), mode);
}
function catchupFeedInGroup(id) {
@@ -428,11 +405,26 @@ function catchupFeedInGroup(id) {
}
}
-function catchupFeed(feed, is_cat) {
+function catchupFeed(feed, is_cat, mode) {
try {
if (is_cat == undefined) is_cat = false;
- var str = __("Mark all articles in %s as read?");
+ var str = false;
+
+ switch (mode) {
+ case "1day":
+ str = __("Mark all articles in %s older than 1 day as read?");
+ break;
+ case "1week":
+ str = __("Mark all articles in %s older than 1 week as read?");
+ break;
+ case "2week":
+ str = __("Mark all articles in %s older than 2 weeks as read?");
+ break;
+ default:
+ str = __("Mark all articles in %s as read?");
+ }
+
var fn = getFeedName(feed, is_cat);
str = str.replace("%s", fn);
@@ -441,20 +433,8 @@ function catchupFeed(feed, is_cat) {
return;
}
- var max_id = 0;
-
- if (feed == getActiveFeedId() && is_cat == activeFeedIsCat()) {
- $$("#headlines-frame > div[id*=RROW]").each(
- function(child) {
- var id = parseInt(child.id.replace("RROW-", ""));
-
- if (id > max_id) max_id = id;
- }
- );
- }
-
var catchup_query = "?op=rpc&method=catchupFeed&feed_id=" +
- feed + "&is_cat=" + is_cat + "&max_id=" + max_id;
+ feed + "&is_cat=" + is_cat + "&mode=" + mode;
console.log(catchup_query);
@@ -465,15 +445,6 @@ function catchupFeed(feed, is_cat) {
onComplete: function(transport) {
handle_rpc_json(transport);
- if (feed == getActiveFeedId() && is_cat == activeFeedIsCat()) {
-
- $$("#headlines-frame > div[id*=RROW][class*=Unread]").each(
- function(child) {
- child.removeClassName("Unread");
- }
- );
- }
-
var show_next_feed = getInitParam("on_catchup_show_next_feed") == "1";
if (show_next_feed) {
@@ -482,6 +453,10 @@ function catchupFeed(feed, is_cat) {
if (nuf) {
viewfeed(nuf, '', is_cat);
}
+ } else {
+ if (feed == getActiveFeedId() && is_cat == activeFeedIsCat()) {
+ viewCurrentFeed();
+ }
}
notify("");
@@ -518,3 +493,5 @@ function decrementFeedCounter(feed, is_cat) {
exception_error("decrement_feed_counter", e);
}
}
+
+
diff --git a/js/functions.js b/js/functions.js
index 72f72ddaa..8691c1ee5 100644
--- a/js/functions.js
+++ b/js/functions.js
@@ -1,7 +1,8 @@
-var notify_silent = false;
var loading_progress = 0;
var sanity_check_done = false;
var init_params = {};
+var _label_base_index = -1024;
+var notify_hide_timerid = false;
Ajax.Base.prototype.initialize = Ajax.Base.prototype.initialize.wrap(
function (callOriginal, options) {
@@ -49,6 +50,21 @@ function exception_error(location, e, ext_info) {
}
}
+ try {
+ new Ajax.Request("backend.php", {
+ parameters: {op: "rpc", method: "log", logmsg: msg},
+ onComplete: function (transport) {
+ console.log(transport.responseText);
+ } });
+
+ } catch (eii) {
+ console.log("Exception while trying to log the error.");
+ console.log(eii);
+ }
+
+ msg += "<p>"+ __("The error will be reported to the configured log destination.") +
+ "</p>";
+
var content = "<div class=\"fatalError\">" +
"<pre>" + msg + "</pre>";
@@ -105,7 +121,28 @@ function exception_error(location, e, ext_info) {
dialog.show();
- } catch (e) {
+ } catch (ei) {
+ console.log("Exception while trying to report an exception. Oh boy.");
+ console.log(ei);
+ console.log("Original exception:");
+ console.log(e);
+
+ msg += "\n\nAdditional exception caught while trying to show the error dialog.\n\n" + format_exception_error('exception_error', ei);
+
+ try {
+ new Ajax.Request("backend.php", {
+ parameters: {op: "rpc", method: "log", logmsg: msg},
+ onComplete: function (transport) {
+ console.log(transport.responseText);
+ } });
+
+ } catch (eii) {
+ console.log("Third exception while trying to log the error! Seriously?");
+ console.log(eii);
+ }
+
+ msg += "\n\nThe error will be reported to the configured log destination.";
+
alert(msg);
}
@@ -146,42 +183,28 @@ function param_unescape(arg) {
return unescape(arg);
}
-var notify_hide_timerid = false;
function hide_notify() {
- var n = $("notify");
- if (n) {
- n.style.display = "none";
- }
-}
-
-function notify_silent_next() {
- notify_silent = true;
+ Element.hide('notify');
}
function notify_real(msg, no_hide, n_type) {
- if (notify_silent) {
- notify_silent = false;
- return;
- }
-
var n = $("notify");
- var nb = $("notify_body");
- if (!n || !nb) return;
+ if (!n) return;
if (notify_hide_timerid) {
window.clearTimeout(notify_hide_timerid);
}
if (msg == "") {
- if (n.style.display == "block") {
+ if (Element.visible(n)) {
notify_hide_timerid = window.setTimeout("hide_notify()", 0);
}
return;
} else {
- n.style.display = "block";
+ Element.show(n);
}
/* types:
@@ -193,29 +216,31 @@ function notify_real(msg, no_hide, n_type) {
*/
- if (typeof __ != 'undefined') {
- msg = __(msg);
- }
+ msg = "<span class=\"msg\"> " + __(msg) + "</span>";
if (n_type == 1) {
n.className = "notify";
} else if (n_type == 2) {
- n.className = "notifyProgress";
- msg = "<img src='"+getInitParam("sign_progress")+"'> " + msg;
+ n.className = "notify progress";
+ msg = "<span><img src='images/indicator_white.gif'></span>" + msg;
+ no_hide = true;
} else if (n_type == 3) {
- n.className = "notifyError";
- msg = "<img src='"+getInitParam("sign_excl")+"'> " + msg;
+ n.className = "notify error";
+ msg = "<span><img src='images/sign_excl.svg'></span>" + msg;
} else if (n_type == 4) {
- n.className = "notifyInfo";
- msg = "<img src='"+getInitParam("sign_info")+"'> " + msg;
+ n.className = "notify info";
+ msg = "<span><img src='images/sign_info.svg'></span>" + msg;
}
+ msg += " <span><img src=\"images/close_notify.svg\" class=\"close\" title=\"" +
+ __("Click to close") + "\" onclick=\"notify('')\"></span>";
+
// msg = "<img src='images/live_com_loading.gif'> " + msg;
- nb.innerHTML = msg;
+ n.innerHTML = msg;
if (!no_hide) {
- notify_hide_timerid = window.setTimeout("hide_notify()", 3000);
+ notify_hide_timerid = window.setTimeout("hide_notify()", 5*1000);
}
}
@@ -363,6 +388,9 @@ function toggleSelectRow2(sender, row, is_cdm) {
row.addClassName('Selected');
else
row.removeClassName('Selected');
+
+ if (typeof updateSelectedPrompt != undefined)
+ updateSelectedPrompt();
}
@@ -374,6 +402,9 @@ function toggleSelectRow(sender, row) {
row.addClassName('Selected');
else
row.removeClassName('Selected');
+
+ if (typeof updateSelectedPrompt != undefined)
+ updateSelectedPrompt();
}
function checkboxToggleElement(elem, id) {
@@ -410,7 +441,7 @@ function closeInfoBox(cleanup) {
}
-function displayDlg(id, param, callback) {
+function displayDlg(title, id, param, callback) {
notify_progress("Loading, please wait...", true);
@@ -420,14 +451,14 @@ function displayDlg(id, param, callback) {
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function (transport) {
- infobox_callback2(transport);
+ infobox_callback2(transport, title);
if (callback) callback(transport);
} });
return false;
}
-function infobox_callback2(transport) {
+function infobox_callback2(transport, title) {
try {
var dialog = false;
@@ -438,13 +469,7 @@ function infobox_callback2(transport) {
//console.log("infobox_callback2");
notify('');
- var title = transport.responseXML.getElementsByTagName("title")[0];
- if (title)
- title = title.firstChild.nodeValue;
-
- var content = transport.responseXML.getElementsByTagName("content")[0];
-
- content = content.firstChild.nodeValue;
+ var content = transport.responseText;
if (!dialog) {
dialog = new dijit.Dialog({
@@ -509,7 +534,7 @@ function fatalError(code, msg, ext_info) {
if (code == 6) {
window.location.href = "index.php";
} else if (code == 5) {
- window.location.href = "db-updater.php";
+ window.location.href = "public.php?op=dbupdate";
} else {
if (msg == "") msg = "Unknown error";
@@ -549,28 +574,6 @@ function fatalError(code, msg, ext_info) {
}
}
-/* function filterDlgCheckType(sender) {
-
- try {
-
- var ftype = sender.value;
-
- // if selected filter type is 5 (Date) enable the modifier dropbox
- if (ftype == 5) {
- Element.show("filterDlg_dateModBox");
- Element.show("filterDlg_dateChkBox");
- } else {
- Element.hide("filterDlg_dateModBox");
- Element.hide("filterDlg_dateChkBox");
-
- }
-
- } catch (e) {
- exception_error("filterDlgCheckType", e);
- }
-
-} */
-
function filterDlgCheckAction(sender) {
try {
@@ -604,37 +607,9 @@ function filterDlgCheckAction(sender) {
}
-function filterDlgCheckDate() {
- try {
- var dialog = dijit.byId("filterEditDlg");
-
- var reg_exp = dialog.attr('value').reg_exp;
-
- var query = "?op=rpc&method=checkDate&date=" + reg_exp;
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
-
- var reply = JSON.parse(transport.responseText);
-
- if (reply['result'] == true) {
- alert(__("Date syntax appears to be correct:") + " " + reply['date']);
- return;
- } else {
- alert(__("Date syntax is incorrect."));
- }
-
- } });
-
-
- } catch (e) {
- exception_error("filterDlgCheckDate", e);
- }
-}
function explainError(code) {
- return displayDlg("explainError", code);
+ return displayDlg(__("Error explained"), "explainError", code);
}
function loading_set_progress(p) {
@@ -712,15 +687,6 @@ function hotkey_prefix_timeout() {
}
}
-function hideAuxDlg() {
- try {
- Element.hide('auxDlg');
- } catch (e) {
- exception_error("hideAuxDlg", e);
- }
-}
-
-
function uploadIconHandler(rc) {
try {
switch (rc) {
@@ -840,7 +806,7 @@ function addLabel(select, callback) {
function quickAddFeed() {
try {
- var query = "backend.php?op=dlg&method=quickAddFeed";
+ var query = "backend.php?op=feeds&method=quickAddFeed";
// overlapping widgets
if (dijit.byId("batchSubDlg")) dijit.byId("batchSubDlg").destroyRecursive();
@@ -870,7 +836,7 @@ function quickAddFeed() {
notify('');
Element.hide("feed_add_spinner");
- console.log("GOT RC: " + rc);
+ console.log(rc);
switch (parseInt(rc['code'])) {
case 1:
@@ -886,39 +852,6 @@ function quickAddFeed() {
alert(__("Specified URL doesn't seem to contain any feeds."));
break;
case 4:
- /* notify_progress("Searching for feed urls...", true);
-
- new Ajax.Request("backend.php", {
- parameters: 'op=rpc&method=extractfeedurls&url=' + param_escape(feed_url),
- onComplete: function(transport, dialog, feed_url) {
-
- notify('');
-
- var reply = JSON.parse(transport.responseText);
-
- var feeds = reply['urls'];
-
- console.log(transport.responseText);
-
- var select = dijit.byId("feedDlg_feedContainerSelect");
-
- while (select.getOptions().length > 0)
- select.removeOption(0);
-
- var count = 0;
- for (var feedUrl in feeds) {
- select.addOption({value: feedUrl, label: feeds[feedUrl]});
- count++;
- }
-
-// if (count > 5) count = 5;
-// select.size = count;
-
- Effect.Appear('feedDlg_feedsContainer', {duration : 0.5});
- }
- });
- break; */
-
feeds = rc['feeds'];
var select = dijit.byId("feedDlg_feedContainerSelect");
@@ -926,6 +859,8 @@ function quickAddFeed() {
while (select.getOptions().length > 0)
select.removeOption(0);
+ select.addOption({value: '', label: __("Expand to select feed")});
+
var count = 0;
for (var feedUrl in feeds) {
select.addOption({value: feedUrl, label: feeds[feedUrl]});
@@ -939,6 +874,11 @@ function quickAddFeed() {
alert(__("Couldn't download the specified URL: %s").
replace("%s", rc['message']));
break;
+ case 6:
+ alert(__("XML validation failed: %s").
+ replace("%s", rc['message']));
+ break;
+ break;
case 0:
alert(__("You are already subscribed to this feed."));
break;
@@ -964,6 +904,8 @@ function createNewRuleElement(parentNode, replaceNode) {
try {
var form = document.forms["filter_new_rule_form"];
+ form.reg_exp.value = form.reg_exp.value.replace(/(<([^>]+)>)/ig,"");
+
var query = "backend.php?op=pref-filters&method=printrulename&rule="+
param_escape(dojo.formToJson(form));
@@ -1209,20 +1151,31 @@ function quickAddFilter() {
var lh = dojo.connect(dialog, "onLoad", function(){
dojo.disconnect(lh);
- var title = $("PTITLE-FULL-" + getActiveArticleId());
+ var query = "op=rpc&method=getlinktitlebyid&id=" + getActiveArticleId();
- if (title || getActiveFeedId() || activeFeedIsCat()) {
- if (title) title = title.innerHTML;
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ var reply = JSON.parse(transport.responseText);
- console.log(title + " " + getActiveFeedId());
+ var title = false;
- var feed_id = activeFeedIsCat() ? 'CAT:' + parseInt(getActiveFeedId()) :
- getActiveFeedId();
+ if (reply && reply) title = reply.title;
- var rule = { reg_exp: title, feed_id: feed_id, filter_type: 1 };
+ if (title || getActiveFeedId() || activeFeedIsCat()) {
+
+ console.log(title + " " + getActiveFeedId());
+
+ var feed_id = activeFeedIsCat() ? 'CAT:' + parseInt(getActiveFeedId()) :
+ getActiveFeedId();
+
+ var rule = { reg_exp: title, feed_id: feed_id, filter_type: 1 };
+
+ addFilterRule(null, dojo.toJson(rule));
+ }
+
+ } });
- addFilterRule(null, dojo.toJson(rule));
- }
});
}
@@ -1316,14 +1269,17 @@ function backend_sanity_check_callback(transport) {
if (params) {
console.log('reading init-params...');
- if (params) {
- for (k in params) {
- var v = params[k];
- console.log("IP: " + k + " => " + v);
- }
+ for (k in params) {
+ var v = params[k];
+ console.log("IP: " + k + " => " + v);
+
+ if (k == "label_base_index") _label_base_index = parseInt(v);
}
init_params = params;
+
+ // PluginHost might not be available on non-index pages
+ window.PluginHost && PluginHost.run(PluginHost.HOOK_PARAMS_LOADED, init_params);
}
sanity_check_done = true;
@@ -1402,7 +1358,7 @@ function genUrlChangeKey(feed, is_cat) {
notify_progress("Trying to change address...", true);
- var query = "?op=rpc&method=regenFeedKey&id=" + param_escape(feed) +
+ var query = "?op=pref-feeds&method=regenFeedKey&id=" + param_escape(feed) +
"&is_cat=" + param_escape(is_cat);
new Ajax.Request("backend.php", {
@@ -1630,7 +1586,7 @@ function editFeed(feed, event) {
function feedBrowser() {
try {
- var query = "backend.php?op=dlg&method=feedBrowser";
+ var query = "backend.php?op=feeds&method=feedBrowser";
if (dijit.byId("feedAddDlg"))
dijit.byId("feedAddDlg").hide();
@@ -1739,7 +1695,7 @@ function feedBrowser() {
} });
},
removeFromArchive: function() {
- var selected = this.getSelectedFeeds();
+ var selected = this.getSelectedFeedIds();
if (selected.length > 0) {
@@ -1748,7 +1704,7 @@ function feedBrowser() {
if (confirm(pr)) {
Element.show('feed_browser_spinner');
- var query = "?op=rpc&method=remarchived&ids=" +
+ var query = "?op=rpc&method=remarchive&ids=" +
param_escape(selected.toString());;
new Ajax.Request("backend.php", {
@@ -1906,3 +1862,75 @@ function helpDialog(topic) {
}
}
+function htmlspecialchars_decode (string, quote_style) {
+ // http://kevin.vanzonneveld.net
+ // + original by: Mirek Slugen
+ // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
+ // + bugfixed by: Mateusz "loonquawl" Zalega
+ // + input by: ReverseSyntax
+ // + input by: Slawomir Kaniecki
+ // + input by: Scott Cariss
+ // + input by: Francois
+ // + bugfixed by: Onno Marsman
+ // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
+ // + bugfixed by: Brett Zamir (http://brett-zamir.me)
+ // + input by: Ratheous
+ // + input by: Mailfaker (http://www.weedem.fr/)
+ // + reimplemented by: Brett Zamir (http://brett-zamir.me)
+ // + bugfixed by: Brett Zamir (http://brett-zamir.me)
+ // * example 1: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES');
+ // * returns 1: '<p>this -> &quot;</p>'
+ // * example 2: htmlspecialchars_decode("&amp;quot;");
+ // * returns 2: '&quot;'
+ var optTemp = 0,
+ i = 0,
+ noquotes = false;
+ if (typeof quote_style === 'undefined') {
+ quote_style = 2;
+ }
+ string = string.toString().replace(/&lt;/g, '<').replace(/&gt;/g, '>');
+ var OPTS = {
+ 'ENT_NOQUOTES': 0,
+ 'ENT_HTML_QUOTE_SINGLE': 1,
+ 'ENT_HTML_QUOTE_DOUBLE': 2,
+ 'ENT_COMPAT': 2,
+ 'ENT_QUOTES': 3,
+ 'ENT_IGNORE': 4
+ };
+ if (quote_style === 0) {
+ noquotes = true;
+ }
+ if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
+ quote_style = [].concat(quote_style);
+ for (i = 0; i < quote_style.length; i++) {
+ // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
+ if (OPTS[quote_style[i]] === 0) {
+ noquotes = true;
+ } else if (OPTS[quote_style[i]]) {
+ optTemp = optTemp | OPTS[quote_style[i]];
+ }
+ }
+ quote_style = optTemp;
+ }
+ if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
+ string = string.replace(/&#0*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
+ // string = string.replace(/&apos;|&#x0*27;/g, "'"); // This would also be useful here, but not a part of PHP
+ }
+ if (!noquotes) {
+ string = string.replace(/&quot;/g, '"');
+ }
+ // Put this in last place to avoid escape being double-decoded
+ string = string.replace(/&amp;/g, '&');
+
+ return string;
+}
+
+
+function label_to_feed_id(label) {
+ return _label_base_index - 1 - Math.abs(label);
+}
+
+function feed_to_label_id(feed) {
+ return _label_base_index - 1 + Math.abs(feed);
+}
+
diff --git a/js/index.html b/js/index.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/index.html
diff --git a/js/prefs.js b/js/prefs.js
index 676fb914a..e226459fc 100644
--- a/js/prefs.js
+++ b/js/prefs.js
@@ -91,7 +91,7 @@ function editUser(id, event) {
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
- infobox_callback2(transport);
+ infobox_callback2(transport, __("User Editor"));
document.forms['user_edit_form'].login.focus();
} });
@@ -547,7 +547,7 @@ function resetSelectedUserPass() {
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
- notify_info(transport.responseText);
+ notify_info(transport.responseText, true);
} });
}
@@ -582,7 +582,7 @@ function selectedUserDetails() {
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
- infobox_callback2(transport);
+ infobox_callback2(transport, __("User details"));
} });
} catch (e) {
exception_error("selectedUserDetails", e);
@@ -722,6 +722,13 @@ function editSelectedFeeds() {
}
} catch (e) { }
+ try {
+ if (!query.match("&hide_images=") &&
+ this.getChildByName('hide_images').attr('disabled') == false) {
+ query = query + "&hide_images=false";
+ }
+ } catch (e) { }
+
if (!query.match("&include_in_digest=") &&
this.getChildByName('include_in_digest').attr('disabled') == false) {
query = query + "&include_in_digest=false";
@@ -760,18 +767,6 @@ function editSelectedFeeds() {
}
}
-function piggie(enable) {
- if (enable) {
- console.log("I LOVEDED IT!");
- var piggie = $("piggie");
-
- Element.show(piggie);
- Position.Center(piggie);
- Effect.Puff(piggie);
-
- }
-}
-
function opmlImportComplete(iframe) {
try {
if (!iframe.contentDocument.body.innerHTML) return false;
@@ -857,6 +852,15 @@ function updatePrefsList() {
} });
}
+function updateSystemList() {
+ new Ajax.Request("backend.php", {
+ parameters: "?op=pref-system",
+ onComplete: function(transport) {
+ dijit.byId('systemConfigTab').attr('content', transport.responseText);
+ notify("");
+ } });
+}
+
function selectTab(id, noupdate, method) {
try {
if (!noupdate) {
@@ -872,6 +876,8 @@ function selectTab(id, noupdate, method) {
updatePrefsList();
} else if (id == "userConfig") {
updateUsersList();
+ } else if (id == "systemConfig") {
+ updateSystemList();
}
var tab = dijit.byId(id + "Tab");
@@ -956,8 +962,11 @@ function init() {
dojo.addOnLoad(function() {
loading_set_progress(50);
+ var clientTzOffset = new Date().getTimezoneOffset() * 60;
+
new Ajax.Request("backend.php", {
- parameters: {op: "rpc", method: "sanityCheck"},
+ parameters: {op: "rpc", method: "sanityCheck",
+ clientTzOffset: clientTzOffset },
onComplete: function(transport) {
backend_sanity_check_callback(transport);
} });
@@ -980,13 +989,8 @@ function validatePrefsReset() {
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
- var msg = transport.responseText;
- if (msg.match("PREFS_THEME_CHANGED")) {
- window.location.reload();
- } else {
- notify_info(msg);
- selectTab();
- }
+ updatePrefsList();
+ notify_info(transport.responseText);
} });
}
@@ -1226,7 +1230,7 @@ function opmlRegenKey() {
notify_progress("Trying to change address...", true);
- var query = "?op=rpc&method=regenOPMLKey";
+ var query = "?op=pref-feeds&method=regenOPMLKey";
new Ajax.Request("backend.php", {
parameters: query,
@@ -1405,7 +1409,7 @@ function editProfiles() {
if (dijit.byId("profileEditDlg"))
dijit.byId("profileEditDlg").destroyRecursive();
- var query = "backend.php?op=dlg&method=editPrefProfiles";
+ var query = "backend.php?op=pref-prefs&method=editPrefProfiles";
dialog = new dijit.Dialog({
id: "profileEditDlg",
@@ -1526,7 +1530,7 @@ function clearFeedAccessKeys() {
if (ok) {
notify_progress("Clearing URLs...");
- var query = "?op=rpc&method=clearKeys";
+ var query = "?op=pref-feeds&method=clearKeys";
new Ajax.Request("backend.php", {
parameters: query,
@@ -1556,50 +1560,53 @@ function clearArticleAccessKeys() {
return false;
}
-function resetFeedOrder() {
+
+function resetFilterOrder() {
try {
notify_progress("Loading, please wait...");
new Ajax.Request("backend.php", {
- parameters: "?op=pref-feeds&method=feedsortreset",
+ parameters: "?op=pref-filters&method=filtersortreset",
onComplete: function(transport) {
- updateFeedList();
+ updateFilterList();
} });
} catch (e) {
- exception_error("resetFeedOrder");
+ exception_error("resetFilterOrder");
}
}
-function resetCatOrder() {
+
+function resetFeedOrder() {
try {
notify_progress("Loading, please wait...");
new Ajax.Request("backend.php", {
- parameters: "?op=pref-feeds&method=catsortreset",
+ parameters: "?op=pref-feeds&method=feedsortreset",
onComplete: function(transport) {
updateFeedList();
} });
} catch (e) {
- exception_error("resetCatOrder");
+ exception_error("resetFeedOrder");
}
}
-function toggleHiddenFeedCats() {
+function resetCatOrder() {
try {
notify_progress("Loading, please wait...");
new Ajax.Request("backend.php", {
- parameters: "?op=pref-feeds&method=togglehiddenfeedcats",
+ parameters: "?op=pref-feeds&method=catsortreset",
onComplete: function(transport) {
updateFeedList();
} });
+
} catch (e) {
- exception_error("toggleHiddenFeedCats");
+ exception_error("resetCatOrder");
}
}
@@ -1699,31 +1706,10 @@ function editLabel(id, event) {
}
}
-function clearTwitterCredentials() {
- try {
- var ok = confirm(__("This will clear your stored authentication information for Twitter. Continue?"));
-
- if (ok) {
- notify_progress("Clearing credentials...");
-
- var query = "?op=pref-feeds&method=remtwitterinfo";
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- notify_info("Twitter credentials have been cleared.");
- updateFeedList();
- } });
- }
-
- } catch (e) {
- exception_error("clearTwitterCredentials", e);
- }
-}
function customizeCSS() {
try {
- var query = "backend.php?op=dlg&method=customizeCSS";
+ var query = "backend.php?op=pref-prefs&method=customizeCSS";
if (dijit.byId("cssEditDlg"))
dijit.byId("cssEditDlg").destroyRecursive();
@@ -1767,7 +1753,7 @@ function gotoExportOpml(filename, settings) {
function batchSubscribe() {
try {
- var query = "backend.php?op=dlg&method=batchSubscribe";
+ var query = "backend.php?op=pref-feeds&method=batchSubscribe";
// overlapping widgets
if (dijit.byId("batchSubDlg")) dijit.byId("batchSubDlg").destroyRecursive();
@@ -1832,3 +1818,21 @@ function clearPluginData(name) {
exception_error("clearPluginData", e);
}
}
+
+function clearSqlLog() {
+
+ if (confirm(__("Clear all messages in the error log?"))) {
+
+ notify_progress("Loading, please wait...");
+ var query = "?op=pref-system&method=clearLog";
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ updateSystemList();
+ } });
+
+ }
+}
+
+
diff --git a/js/tt-rss.js b/js/tt-rss.js
index badfe8707..e3731c0cb 100644
--- a/js/tt-rss.js
+++ b/js/tt-rss.js
@@ -1,6 +1,7 @@
var global_unread = -1;
var hotkey_prefix = false;
var hotkey_prefix_pressed = false;
+var hotkey_actions = {};
var _widescreen_mode = false;
var _rpc_seq = 0;
var _active_feed_id = 0;
@@ -35,7 +36,12 @@ function setActiveFeedId(id, is_cat) {
_active_feed_id = id;
_active_feed_is_cat = is_cat;
+ $("headlines-frame").setAttribute("feed-id", id);
+ $("headlines-frame").setAttribute("is-cat", is_cat ? 1 : 0);
+
selectFeed(id, is_cat);
+
+ PluginHost.run(PluginHost.HOOK_FEED_SET_ACTIVE, _active_article_id);
} catch (e) {
exception_error("setActiveFeedId", e);
}
@@ -110,6 +116,7 @@ function updateFeedList() {
tree.startup();
+
} catch (e) {
exception_error("updateFeedList", e);
}
@@ -130,7 +137,8 @@ function catchupAllFeeds() {
new Ajax.Request("backend.php", {
parameters: query_str,
onComplete: function(transport) {
- feedlist_callback2(transport);
+ request_counters(true);
+ viewCurrentFeed();
} });
global_unread = 0;
@@ -155,7 +163,7 @@ function timeout() {
}
function search() {
- var query = "backend.php?op=dlg&method=search&param=" +
+ var query = "backend.php?op=feeds&method=search&param=" +
param_escape(getActiveFeedId() + ":" + activeFeedIsCat());
if (dijit.byId("searchDlg"))
@@ -181,7 +189,7 @@ function updateTitle() {
var tmp = "Tiny Tiny RSS";
if (global_unread > 0) {
- tmp = tmp + " (" + global_unread + ")";
+ tmp = "(" + global_unread + ") " + tmp;
}
if (window.fluid) {
@@ -205,6 +213,7 @@ function genericSanityCheck() {
return true;
}
+
function init() {
try {
//dojo.registerModulePath("fox", "../../js/");
@@ -241,16 +250,291 @@ function init() {
if (!genericSanityCheck())
return false;
- loading_set_progress(20);
+ loading_set_progress(30);
+
+ var a = document.createElement('audio');
- var hasAudio = !!((myAudioTag = document.createElement('audio')).canPlayType);
+ var hasAudio = !!a.canPlayType;
+ var hasSandbox = "sandbox" in document.createElement("iframe");
+ var hasMp3 = !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
+ var clientTzOffset = new Date().getTimezoneOffset() * 60;
new Ajax.Request("backend.php", {
- parameters: {op: "rpc", method: "sanityCheck", hasAudio: hasAudio},
+ parameters: {op: "rpc", method: "sanityCheck", hasAudio: hasAudio,
+ hasMp3: hasMp3,
+ clientTzOffset: clientTzOffset,
+ hasSandbox: hasSandbox},
onComplete: function(transport) {
backend_sanity_check_callback(transport);
} });
+ hotkey_actions["next_feed"] = function() {
+ var rv = dijit.byId("feedTree").getNextFeed(
+ getActiveFeedId(), activeFeedIsCat());
+
+ if (rv) viewfeed(rv[0], '', rv[1]);
+ };
+ hotkey_actions["prev_feed"] = function() {
+ var rv = dijit.byId("feedTree").getPreviousFeed(
+ getActiveFeedId(), activeFeedIsCat());
+
+ if (rv) viewfeed(rv[0], '', rv[1]);
+ };
+ hotkey_actions["next_article"] = function() {
+ moveToPost('next');
+ };
+ hotkey_actions["prev_article"] = function() {
+ moveToPost('prev');
+ };
+ hotkey_actions["next_article_noscroll"] = function() {
+ moveToPost('next', true);
+ };
+ hotkey_actions["prev_article_noscroll"] = function() {
+ moveToPost('prev', true);
+ };
+ hotkey_actions["next_article_noexpand"] = function() {
+ moveToPost('next', true, true);
+ };
+ hotkey_actions["prev_article_noexpand"] = function() {
+ moveToPost('prev', true, true);
+ };
+ hotkey_actions["collapse_article"] = function() {
+ var id = getActiveArticleId();
+ var elem = $("CICD-"+id);
+ if(elem.visible()) {
+ cdmCollapseArticle(null, id);
+ }
+ else {
+ cdmExpandArticle(id);
+ }
+ };
+ hotkey_actions["toggle_expand"] = function() {
+ var id = getActiveArticleId();
+ var elem = $("CICD-"+id);
+ if(elem.visible()) {
+ cdmCollapseArticle(null, id, false);
+ }
+ else {
+ cdmExpandArticle(id);
+ }
+ };
+ hotkey_actions["search_dialog"] = function() {
+ search();
+ };
+ hotkey_actions["toggle_mark"] = function() {
+ selectionToggleMarked(undefined, false, true);
+ };
+ hotkey_actions["toggle_publ"] = function() {
+ selectionTogglePublished(undefined, false, true);
+ };
+ hotkey_actions["toggle_unread"] = function() {
+ selectionToggleUnread(undefined, false, true);
+ };
+ hotkey_actions["edit_tags"] = function() {
+ var id = getActiveArticleId();
+ if (id) {
+ editArticleTags(id);
+ };
+ }
+ hotkey_actions["dismiss_selected"] = function() {
+ dismissSelectedArticles();
+ };
+ hotkey_actions["open_in_new_window"] = function() {
+ if (getActiveArticleId()) {
+ openArticleInNewWindow(getActiveArticleId());
+ return;
+ }
+ };
+ hotkey_actions["catchup_below"] = function() {
+ catchupRelativeToArticle(1);
+ };
+ hotkey_actions["catchup_above"] = function() {
+ catchupRelativeToArticle(0);
+ };
+ hotkey_actions["article_scroll_down"] = function() {
+ var ctr = $("content_insert") ? $("content_insert") : $("headlines-frame");
+
+ scrollArticle(40);
+ };
+ hotkey_actions["article_scroll_up"] = function() {
+ var ctr = $("content_insert") ? $("content_insert") : $("headlines-frame");
+
+ scrollArticle(-40);
+ };
+ hotkey_actions["close_article"] = function() {
+ if (isCdmMode()) {
+ if (!getInitParam("cdm_expanded")) {
+ cdmCollapseArticle(false, getActiveArticleId());
+ } else {
+ dismissArticle(getActiveArticleId());
+ }
+ } else {
+ closeArticlePanel();
+ }
+ };
+ hotkey_actions["email_article"] = function() {
+ if (typeof emailArticle != "undefined") {
+ emailArticle();
+ } else if (typeof mailtoArticle != "undefined") {
+ mailtoArticle();
+ } else {
+ alert(__("Please enable mail plugin first."));
+ }
+ };
+ hotkey_actions["select_all"] = function() {
+ selectArticles('all');
+ };
+ hotkey_actions["select_unread"] = function() {
+ selectArticles('unread');
+ };
+ hotkey_actions["select_marked"] = function() {
+ selectArticles('marked');
+ };
+ hotkey_actions["select_published"] = function() {
+ selectArticles('published');
+ };
+ hotkey_actions["select_invert"] = function() {
+ selectArticles('invert');
+ };
+ hotkey_actions["select_none"] = function() {
+ selectArticles('none');
+ };
+ hotkey_actions["feed_refresh"] = function() {
+ if (getActiveFeedId() != undefined) {
+ viewfeed(getActiveFeedId(), '', activeFeedIsCat());
+ return;
+ }
+ };
+ hotkey_actions["feed_unhide_read"] = function() {
+ toggleDispRead();
+ };
+ hotkey_actions["feed_subscribe"] = function() {
+ quickAddFeed();
+ };
+ hotkey_actions["feed_debug_update"] = function() {
+ window.open("backend.php?op=feeds&method=view&feed=" + getActiveFeedId() +
+ "&view_mode=adaptive&order_by=default&update=&m=ForceUpdate&cat=" +
+ activeFeedIsCat() + "&DevForceUpdate=1&debug=1&xdebug=1&csrf_token=" +
+ getInitParam("csrf_token"));
+ };
+ hotkey_actions["feed_edit"] = function() {
+ if (activeFeedIsCat())
+ alert(__("You can't edit this kind of feed."));
+ else
+ editFeed(getActiveFeedId());
+ };
+ hotkey_actions["feed_catchup"] = function() {
+ if (getActiveFeedId() != undefined) {
+ catchupCurrentFeed();
+ return;
+ }
+ };
+ hotkey_actions["feed_reverse"] = function() {
+ reverseHeadlineOrder();
+ };
+ hotkey_actions["catchup_all"] = function() {
+ catchupAllFeeds();
+ };
+ hotkey_actions["cat_toggle_collapse"] = function() {
+ if (activeFeedIsCat()) {
+ dijit.byId("feedTree").collapseCat(getActiveFeedId());
+ return;
+ }
+ };
+ hotkey_actions["goto_all"] = function() {
+ viewfeed(-4);
+ };
+ hotkey_actions["goto_fresh"] = function() {
+ viewfeed(-3);
+ };
+ hotkey_actions["goto_marked"] = function() {
+ viewfeed(-1);
+ };
+ hotkey_actions["goto_published"] = function() {
+ viewfeed(-2);
+ };
+ hotkey_actions["goto_tagcloud"] = function() {
+ displayDlg(__("Tag cloud"), "printTagCloud");
+ };
+ hotkey_actions["goto_prefs"] = function() {
+ gotoPreferences();
+ };
+ hotkey_actions["select_article_cursor"] = function() {
+ var id = getArticleUnderPointer();
+ if (id) {
+ var row = $("RROW-" + id);
+
+ if (row) {
+ var cb = dijit.getEnclosingWidget(
+ row.getElementsByClassName("rchk")[0]);
+
+ if (cb) {
+ cb.attr("checked", !cb.attr("checked"));
+ toggleSelectRowById(cb, "RROW-" + id);
+ return false;
+ }
+ }
+ }
+ };
+ hotkey_actions["create_label"] = function() {
+ addLabel();
+ };
+ hotkey_actions["create_filter"] = function() {
+ quickAddFilter();
+ };
+ hotkey_actions["collapse_sidebar"] = function() {
+ collapse_feedlist();
+ };
+ hotkey_actions["toggle_embed_original"] = function() {
+ if (typeof embedOriginalArticle != "undefined") {
+ if (getActiveArticleId())
+ embedOriginalArticle(getActiveArticleId());
+ } else {
+ alert(__("Please enable embed_original plugin first."));
+ }
+ };
+ hotkey_actions["toggle_widescreen"] = function() {
+ if (!isCdmMode()) {
+ _widescreen_mode = !_widescreen_mode;
+
+ switchPanelMode(_widescreen_mode);
+ }
+ };
+ hotkey_actions["help_dialog"] = function() {
+ helpDialog("main");
+ };
+ hotkey_actions["toggle_combined_mode"] = function() {
+ notify_progress("Loading, please wait...");
+
+ var value = isCdmMode() ? "false" : "true";
+ var query = "?op=rpc&method=setpref&key=COMBINED_DISPLAY_MODE&value=" + value;
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ setInitParam("combined_display_mode",
+ !getInitParam("combined_display_mode"));
+
+ closeArticlePanel();
+ viewCurrentFeed();
+
+ } });
+ };
+ hotkey_actions["toggle_cdm_expanded"] = function() {
+ notify_progress("Loading, please wait...");
+
+ var value = getInitParam("cdm_expanded") ? "false" : "true";
+ var query = "?op=rpc&method=setpref&key=CDM_EXPANDED&value=" + value;
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ setInitParam("cdm_expanded", !getInitParam("cdm_expanded"));
+ viewCurrentFeed();
+ } });
+ };
+
+
} catch (e) {
exception_error("init", e);
}
@@ -264,11 +548,37 @@ function init_second_stage() {
closeArticlePanel();
_widescreen_mode = getInitParam("widescreen");
+ switchPanelMode(_widescreen_mode);
- if (_widescreen_mode) {
- switchPanelMode(_widescreen_mode);
+ if (parseInt(getCookie("ttrss_fh_width")) > 0) {
+ dijit.byId("feeds-holder").domNode.setStyle(
+ {width: getCookie("ttrss_fh_width") + "px" });
}
+ if (parseInt(getCookie("ttrss_ci_width")) > 0) {
+ if (_widescreen_mode) {
+ dijit.byId("content-insert").domNode.setStyle(
+ {width: getCookie("ttrss_ci_width") + "px" });
+
+ } else {
+ dijit.byId("content-insert").domNode.setStyle(
+ {height: getCookie("ttrss_ci_height") + "px" });
+ }
+ }
+
+ dijit.byId("main").resize();
+
+ var tmph = dojo.connect(dijit.byId('feeds-holder'), 'resize',
+ function (args) {
+ setCookie("ttrss_fh_width", args.w, getInitParam("cookie_lifetime"));
+ });
+
+ var tmph = dojo.connect(dijit.byId('content-insert'), 'resize',
+ function (args) {
+ setCookie("ttrss_ci_width", args.w, getInitParam("cookie_lifetime"));
+ setCookie("ttrss_ci_height", args.h, getInitParam("cookie_lifetime"));
+ });
+
});
delCookie("ttrss_test");
@@ -290,7 +600,7 @@ function init_second_stage() {
setActiveFeedId(hash_feed_id, hash_feed_is_cat);
}
- loading_set_progress(30);
+ loading_set_progress(50);
// can't use cache_clear() here because viewfeed might not have initialized yet
if ('sessionStorage' in window && window['sessionStorage'] !== null)
@@ -329,10 +639,10 @@ function quickMenuGo(opid) {
gotoLogout();
break;
case "qmcTagCloud":
- displayDlg("printTagCloud");
+ displayDlg(__("Tag cloud"), "printTagCloud");
break;
case "qmcTagSelect":
- displayDlg("printTagSelect");
+ displayDlg(__("Select item(s) by tags"), "printTagSelect");
break;
case "qmcSearch":
search();
@@ -444,6 +754,12 @@ function parse_runtime_info(data) {
return;
}
+ if (k == "dep_ts" && parseInt(getInitParam("dep_ts")) > 0) {
+ if (parseInt(getInitParam("dep_ts")) < parseInt(v) && getInitParam("reload_on_ts_change")) {
+ window.location.reload();
+ }
+ }
+
if (k == "daemon_is_running" && v != 1) {
notify_error("<span onclick=\"javascript:explainError(1)\">Update daemon is not running.</span>", true);
return;
@@ -464,6 +780,8 @@ function parse_runtime_info(data) {
init_params[k] = v;
notify('');
}
+
+ PluginHost.run(PluginHost.HOOK_RUNTIME_INFO_LOADED, data);
}
function collapse_feedlist() {
@@ -494,10 +812,6 @@ function viewModeChanged() {
return viewCurrentFeed('');
}
-function viewLimitChanged() {
- return viewCurrentFeed('');
-}
-
function rescoreCurrentFeed() {
var actid = getActiveFeedId();
@@ -556,7 +870,7 @@ function hotkey_handler(e) {
if (keycode == 16) return; // ignore lone shift
if (keycode == 17) return; // ignore lone ctrl
- if (!shift_key) keychar = keychar.toLowerCase();
+ keychar = keychar.toLowerCase();
var hotkeys = getInitParam("hotkeys");
@@ -577,7 +891,11 @@ function hotkey_handler(e) {
Element.hide(cmdline);
var hotkey = keychar.search(/[a-zA-Z0-9]/) != -1 ? keychar : "(" + keycode + ")";
+
+ // ensure ^*char notation
+ if (shift_key) hotkey = "*" + hotkey;
if (ctrl_key) hotkey = "^" + hotkey;
+
hotkey = hotkey_prefix ? hotkey_prefix + " " + hotkey : hotkey;
hotkey_prefix = false;
@@ -591,206 +909,11 @@ function hotkey_handler(e) {
}
}
- switch (hotkey_action) {
- case "next_feed":
- var rv = dijit.byId("feedTree").getNextFeed(
- getActiveFeedId(), activeFeedIsCat());
-
- if (rv) viewfeed(rv[0], '', rv[1]);
- return false;
- case "prev_feed":
- var rv = dijit.byId("feedTree").getPreviousFeed(
- getActiveFeedId(), activeFeedIsCat());
+ var action = hotkey_actions[hotkey_action];
- if (rv) viewfeed(rv[0], '', rv[1]);
- return false;
- case "next_article":
- moveToPost('next');
- return false;
- case "prev_article":
- moveToPost('prev');
- return false;
- case "next_article_noscroll":
- moveToPost('next', true);
- return false;
- case "prev_article_noscroll":
- moveToPost('prev', true);
- return false;
- case "search_dialog":
- search();
- return ;
- case "toggle_mark":
- selectionToggleMarked(undefined, false, true);
- return false;
- case "toggle_publ":
- selectionTogglePublished(undefined, false, true);
- return false;
- case "toggle_unread":
- selectionToggleUnread(undefined, false, true);
- return false;
- case "edit_tags":
- var id = getActiveArticleId();
- if (id) {
- editArticleTags(id, getActiveFeedId(), isCdmMode());
- return;
- }
- return false;
- case "dismiss_selected":
- dismissSelectedArticles();
- return false;
- case "dismiss_read":
- return false;
- case "open_in_new_window":
- if (getActiveArticleId()) {
- openArticleInNewWindow(getActiveArticleId());
- return;
- }
- return false;
- case "catchup_below":
- catchupRelativeToArticle(1);
- return false;
- case "catchup_above":
- catchupRelativeToArticle(0);
- return false;
- case "article_scroll_down":
- scrollArticle(50);
- return false;
- case "article_scroll_up":
- scrollArticle(-50);
- return false;
- case "close_article":
- closeArticlePanel();
- return false;
- case "email_article":
- if (typeof emailArticle != "undefined") {
- emailArticle();
- } else {
- alert(__("Please enable mail plugin first."));
- }
- return false;
- case "select_all":
- selectArticles('all');
+ if (action != null) {
+ action();
return false;
- case "select_unread":
- selectArticles('unread');
- return false;
- case "select_marked":
- selectArticles('marked');
- return false;
- case "select_published":
- selectArticles('published');
- return false;
- case "select_invert":
- selectArticles('invert');
- return false;
- case "select_none":
- selectArticles('none');
- return false;
- case "feed_refresh":
- if (getActiveFeedId() != undefined) {
- viewfeed(getActiveFeedId(), '', activeFeedIsCat());
- return;
- }
- return false;
- case "feed_unhide_read":
- toggleDispRead();
- return false;
- case "feed_subscribe":
- quickAddFeed();
- return false;
- case "feed_debug_update":
- window.open("backend.php?op=feeds&method=view&feed=" + getActiveFeedId() +
- "&view_mode=adaptive&order_by=default&update=&m=ForceUpdate&cat=" +
- activeFeedIsCat() + "&DevForceUpdate=1&debug=1&xdebug=1&csrf_token=" +
- getInitParam("csrf_token"));
- return false;
- case "feed_edit":
- if (activeFeedIsCat())
- alert(__("You can't edit this kind of feed."));
- else
- editFeed(getActiveFeedId());
- return false;
- case "feed_catchup":
- if (getActiveFeedId() != undefined) {
- catchupCurrentFeed();
- return;
- }
- return false;
- case "feed_reverse":
- reverseHeadlineOrder();
- return false;
- case "catchup_all":
- catchupAllFeeds();
- return false;
- case "cat_toggle_collapse":
- if (activeFeedIsCat()) {
- dijit.byId("feedTree").collapseCat(getActiveFeedId());
- return;
- }
- return false;
- case "goto_all":
- viewfeed(-4);
- return false;
- case "goto_fresh":
- viewfeed(-3);
- return false;
- case "goto_marked":
- viewfeed(-1);
- return false;
- case "goto_published":
- viewfeed(-2);
- return false;
- case "goto_tagcloud":
- displayDlg("printTagCloud");
- return false;
- case "goto_prefs":
- gotoPreferences();
- return false;
- case "select_article_cursor":
- var id = getArticleUnderPointer();
- if (id) {
- var cb = dijit.byId("RCHK-" + id);
- if (cb) {
- cb.attr("checked", !cb.attr("checked"));
- toggleSelectRowById(cb, "RROW-" + id);
- return false;
- }
- }
- return false;
- case "create_label":
- addLabel();
- return false;
- case "create_filter":
- quickAddFilter();
- return false;
- case "collapse_sidebar":
- collapse_feedlist();
- return false;
- case "toggle_widescreen":
- if (!isCdmMode()) {
- _widescreen_mode = !_widescreen_mode;
-
- switchPanelMode(_widescreen_mode);
- }
- return false;
- case "help_dialog":
- helpDialog("main");
- return false;
- case "toggle_combined_mode":
- notify_progress("Loading, please wait...");
-
- var value = isCdmMode() ? "false" : "true";
- var query = "?op=rpc&method=setpref&key=COMBINED_DISPLAY_MODE&value=" + value;
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- window.location.reload();
- } });
-
- return false;
- default:
- console.log("unhandled action: " + hotkey_action + "; hotkey: " + hotkey);
}
} catch (e) {
@@ -805,13 +928,27 @@ function inPreferences() {
function reverseHeadlineOrder() {
try {
- var query_str = "?op=rpc&method=togglepref&key=REVERSE_HEADLINES";
+ /* var query_str = "?op=rpc&method=togglepref&key=REVERSE_HEADLINES";
new Ajax.Request("backend.php", {
parameters: query_str,
onComplete: function(transport) {
viewCurrentFeed();
- } });
+ } }); */
+
+ var toolbar = document.forms["main_toolbar_form"];
+ var order_by = dijit.getEnclosingWidget(toolbar.order_by);
+
+ var value = order_by.attr('value');
+
+ if (value == "date_reverse")
+ value = "default";
+ else
+ value = "date_reverse";
+
+ order_by.attr('value', value);
+
+ viewCurrentFeed();
} catch (e) {
exception_error("reverseHeadlineOrder", e);
@@ -884,13 +1021,11 @@ function handle_rpc_json(transport, scheduled_call) {
if (counters)
parse_counters(counters, scheduled_call);
- var runtime_info = reply['runtime-info'];;
+ var runtime_info = reply['runtime-info'];
if (runtime_info)
parse_runtime_info(runtime_info);
- hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
-
Element.hide(dijit.byId("net-alert").domNode);
} else {
@@ -910,6 +1045,8 @@ function handle_rpc_json(transport, scheduled_call) {
function switchPanelMode(wide) {
try {
+ if (isCdmMode()) return;
+
article_id = getActiveArticleId();
if (wide) {
@@ -923,6 +1060,7 @@ function switchPanelMode(wide) {
borderTopWidth: '0px' });
$("headlines-toolbar").setStyle({ borderBottomWidth: '0px' });
+ $("headlines-frame").setStyle({ borderBottomWidth: '0px' });
} else {
@@ -934,6 +1072,8 @@ function switchPanelMode(wide) {
borderTopWidth: '1px'});
$("headlines-toolbar").setStyle({ borderBottomWidth: '1px' });
+
+ $("headlines-frame").setStyle({ borderBottomWidth: '1px' });
}
closeArticlePanel();
@@ -973,7 +1113,7 @@ function hash_get(key) {
kv = window.location.hash.substring(1).toQueryParams();
return kv[key];
} catch (e) {
- exception_error("hash_set", e);
+ exception_error("hash_get", e);
}
}
function hash_set(key, value) {
diff --git a/js/viewfeed.js b/js/viewfeed.js
index 622a8109f..dc8d3fe88 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -12,6 +12,7 @@ var catchup_timeout_id = false;
var cids_requested = [];
var loaded_article_ids = [];
+var _last_headlines_update = 0;
var has_storage = 'sessionStorage' in window && window['sessionStorage'] !== null;
@@ -19,8 +20,6 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
try {
handle_rpc_json(transport);
- loading_set_progress(25);
-
console.log("headlines_callback2 [offset=" + offset + "] B:" + background + " I:" + infscroll_req);
var is_cat = false;
@@ -42,17 +41,16 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
if (background) {
var content = reply['headlines']['content'];
- if (getInitParam("cdm_auto_catchup") == 1) {
- content = content + "<div id='headlines-spacer'></div>";
- }
+ content = content + "<div id='headlines-spacer'></div>";
return;
}
- setActiveFeedId(feed_id, is_cat);
+ if (feed_id != getActiveFeedId() || is_cat != activeFeedIsCat())
+ return;
- dijit.getEnclosingWidget(
+ /* dijit.getEnclosingWidget(
document.forms["main_toolbar_form"].update).attr('disabled',
- is_cat || feed_id <= 0);
+ is_cat || feed_id <= 0); */
try {
if (infscroll_req == false) {
@@ -60,11 +58,16 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
}
} catch (e) { };
+ $("headlines-frame").removeClassName("cdm");
+ $("headlines-frame").removeClassName("normal");
+
+ $("headlines-frame").addClassName(isCdmMode() ? "cdm" : "normal");
+
var headlines_count = reply['headlines-info']['count'];
vgroup_last_feed = reply['headlines-info']['vgroup_last_feed'];
- if (parseInt(headlines_count) < getInitParam("default_article_limit")) {
+ if (parseInt(headlines_count) < 30) {
_infscroll_disable = 1;
} else {
_infscroll_disable = 0;
@@ -91,11 +94,9 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
}
});
- if (getInitParam("cdm_auto_catchup") == 1) {
- var hsp = $("headlines-spacer");
- if (!hsp) hsp = new Element("DIV", {"id": "headlines-spacer"});
- dijit.byId('headlines-frame').domNode.appendChild(hsp);
- }
+ var hsp = $("headlines-spacer");
+ if (!hsp) hsp = new Element("DIV", {"id": "headlines-spacer"});
+ dijit.byId('headlines-frame').domNode.appendChild(hsp);
initHeadlinesMenu();
@@ -138,8 +139,6 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
if (!hsp) hsp = new Element("DIV", {"id": "headlines-spacer"});
- fixHeadlinesOrder(getLoadedArticleIds());
-
if (getInitParam("cdm_auto_catchup") == 1) {
c.domNode.appendChild(hsp);
}
@@ -158,16 +157,10 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
initHeadlinesMenu();
new_elems.each(function(child) {
- var cb = dijit.byId(child.id.replace("RROW-", "RCHK-"));
-
- if (!cb) {
- dojo.parser.parse(child);
+ dojo.parser.parse(child);
- if (!Element.visible(child))
- new Effect.Appear(child, { duration : 0.5 });
- } else {
- c.domNode.removeChild(child);
- }
+ if (!Element.visible(child))
+ new Effect.Appear(child, { duration : 0.5 });
});
} else {
@@ -204,6 +197,19 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
}
_infscroll_request_sent = 0;
+ _last_headlines_update = new Date().getTime();
+
+ unpackVisibleHeadlines();
+
+ // if we have some more space in the buffer, why not try to fill it
+
+ if (!_infscroll_disable && $("headlines-spacer") &&
+ $("headlines-spacer").offsetTop < $("headlines-frame").offsetHeight) {
+
+ window.setTimeout(function() {
+ loadMoreHeadlines();
+ }, 250);
+ }
notify("");
@@ -223,6 +229,8 @@ function render_article(article) {
c.domNode.scrollTop = 0;
} catch (e) { };
+ PluginHost.run(PluginHost.HOOK_ARTICLE_RENDERED, article);
+
c.attr('content', article);
correctHeadlinesOffset(getActiveArticleId());
@@ -236,10 +244,9 @@ function render_article(article) {
}
}
-function showArticleInHeadlines(id) {
+function showArticleInHeadlines(id, noexpand) {
try {
-
selectArticles("none");
var crow = $("RROW-" + id);
@@ -248,7 +255,9 @@ function showArticleInHeadlines(id) {
var article_is_unread = crow.hasClassName("Unread");
- crow.removeClassName("Unread");
+ if (!noexpand)
+ crow.removeClassName("Unread");
+ crow.addClassName("active");
selectArticles('none');
@@ -263,7 +272,7 @@ function showArticleInHeadlines(id) {
markHeadline(id);
- if (article_is_unread)
+ if (article_is_unread && !noexpand)
_force_scheduled_update = true;
} catch (e) {
@@ -313,7 +322,7 @@ function article_callback2(transport, id) {
var unread_in_buffer = $$("#headlines-frame > div[id*=RROW][class*=Unread]").length
request_counters(unread_in_buffer == 0);
- headlines_scroll_handler($("headlines-frame"));
+ //headlines_scroll_handler($("headlines-frame"));
/* try {
if (!_infscroll_disable &&
@@ -331,11 +340,19 @@ function article_callback2(transport, id) {
}
}
-function view(id) {
+function view(id, activefeed, noexpand) {
try {
+ var oldrow = $("RROW-" + getActiveArticleId());
+ if (oldrow) oldrow.removeClassName("active");
+
var crow = $("RROW-" + id);
if (!crow) return;
+ if (noexpand) {
+ setActiveArticleId(id);
+ showArticleInHeadlines(id, noexpand);
+ return;
+ }
console.log("loading article: " + id);
@@ -343,8 +360,6 @@ function view(id) {
console.log("cache check result: " + (cached_article != false));
- hideAuxDlg();
-
var query = "?op=article&method=view&id=" + param_escape(id);
var neighbor_ids = getRelativePostIds(id);
@@ -395,7 +410,7 @@ function view(id) {
console.warn(e);
} */
- headlines_scroll_handler($("headlines-frame"));
+ //headlines_scroll_handler($("headlines-frame"));
return;
}
@@ -426,21 +441,27 @@ function toggleMark(id, client_only) {
try {
var query = "?op=rpc&id=" + id + "&method=mark";
- var img = $("FMPIC-" + id);
+ var row = $("RROW-" + id);
+ if (!row) return;
- if (!img) return;
+ var imgs = row.getElementsByClassName("markedPic");
- if (img.src.match("mark_unset")) {
- img.src = img.src.replace("mark_unset", "mark_set");
- img.alt = __("Unstar article");
- query = query + "&mark=1";
+ for (i = 0; i < imgs.length; i++) {
+ var img = imgs[i];
- } else {
- img.src = img.src.replace("mark_set", "mark_unset");
- img.alt = __("Star article");
- query = query + "&mark=0";
+ if (!row.hasClassName("marked")) {
+ img.src = img.src.replace("mark_unset", "mark_set");
+ img.alt = __("Unstar article");
+ query = query + "&mark=1";
+ } else {
+ img.src = img.src.replace("mark_set", "mark_unset");
+ img.alt = __("Star article");
+ query = query + "&mark=0";
+ }
}
+ row.toggleClassName("marked");
+
if (!client_only) {
new Ajax.Request("backend.php", {
parameters: query,
@@ -464,22 +485,30 @@ function togglePub(id, client_only, no_effects, note) {
query = query + "&note=undefined";
}
- var img = $("FPPIC-" + id);
-
- if (!img) return;
+ var row = $("RROW-" + id);
+ if (!row) return;
- if (img.src.match("pub_unset") || note != undefined) {
- img.src = img.src.replace("pub_unset", "pub_set");
- img.alt = __("Unpublish article");
- query = query + "&pub=1";
+ var imgs = row.getElementsByClassName("pubPic");
- } else {
- img.src = img.src.replace("pub_set", "pub_unset");
- img.alt = __("Publish article");
+ for (i = 0; i < imgs.length; i++) {
+ var img = imgs[i];
- query = query + "&pub=0";
+ if (!row.hasClassName("published") || note != undefined) {
+ img.src = img.src.replace("pub_unset", "pub_set");
+ img.alt = __("Unpublish article");
+ query = query + "&pub=1";
+ } else {
+ img.src = img.src.replace("pub_set", "pub_unset");
+ img.alt = __("Publish article");
+ query = query + "&pub=0";
+ }
}
+ if (note != undefined)
+ row.addClassName("published");
+ else
+ row.toggleClassName("published");
+
if (!client_only) {
new Ajax.Request("backend.php", {
parameters: query,
@@ -493,7 +522,7 @@ function togglePub(id, client_only, no_effects, note) {
}
}
-function moveToPost(mode, noscroll) {
+function moveToPost(mode, noscroll, noexpand) {
try {
@@ -537,16 +566,16 @@ function moveToPost(mode, noscroll) {
if (!noscroll && article && article.offsetTop + article.offsetHeight >
ctr.scrollTop + ctr.offsetHeight) {
- scrollArticle(ctr.offsetHeight/2);
+ scrollArticle(ctr.offsetHeight/4);
} else if (next_id) {
- cdmExpandArticle(next_id);
- cdmScrollToArticleId(next_id, noscroll);
+ cdmExpandArticle(next_id, noexpand);
+ cdmScrollToArticleId(next_id, true);
}
} else if (next_id) {
correctHeadlinesOffset(next_id);
- view(next_id, getActiveFeedId());
+ view(next_id, getActiveFeedId(), noexpand);
}
}
}
@@ -559,19 +588,31 @@ function moveToPost(mode, noscroll) {
var prev_article = $("RROW-" + prev_id);
var ctr = $("headlines-frame");
- if (!noscroll && article && article.offsetTop < ctr.scrollTop) {
- scrollArticle(-ctr.offsetHeight/2);
- } else if (!noscroll && prev_article &&
- prev_article.offsetTop < ctr.scrollTop) {
- cdmExpandArticle(prev_id);
- scrollArticle(-ctr.offsetHeight/2);
- } else if (prev_id) {
- cdmExpandArticle(prev_id);
- cdmScrollToArticleId(prev_id, noscroll);
+ if (!getInitParam("cdm_expanded")) {
+
+ if (!noscroll && article.offsetTop < ctr.scrollTop) {
+ scrollArticle(-ctr.offsetHeight/4);
+ } else {
+ cdmExpandArticle(prev_id, noexpand);
+ cdmScrollToArticleId(prev_id, true);
+ }
+ } else {
+
+ if (!noscroll && article && article.offsetTop < ctr.scrollTop) {
+ scrollArticle(-ctr.offsetHeight/3);
+ } else if (!noscroll && prev_article &&
+ prev_article.offsetTop < ctr.scrollTop) {
+ cdmExpandArticle(prev_id, noexpand);
+ scrollArticle(-ctr.offsetHeight/4);
+ } else if (prev_id) {
+ cdmExpandArticle(prev_id, noexpand);
+ cdmScrollToArticleId(prev_id, noscroll);
+ }
}
+
} else if (prev_id) {
correctHeadlinesOffset(prev_id);
- view(prev_id, getActiveFeedId());
+ view(prev_id, getActiveFeedId(), noexpand);
}
}
}
@@ -583,11 +624,12 @@ function moveToPost(mode, noscroll) {
function toggleSelected(id, force_on) {
try {
-
- var cb = dijit.byId("RCHK-" + id);
var row = $("RROW-" + id);
if (row) {
+ var cb = dijit.getEnclosingWidget(
+ row.getElementsByClassName("rchk")[0]);
+
if (row.hasClassName('Selected') && !force_on) {
row.removeClassName('Selected');
if (cb) cb.attr("checked", false);
@@ -596,11 +638,33 @@ function toggleSelected(id, force_on) {
if (cb) cb.attr("checked", true);
}
}
+
+ updateSelectedPrompt();
} catch (e) {
exception_error("toggleSelected", e);
}
}
+function updateSelectedPrompt() {
+ try {
+ var count = getSelectedArticleIds2().size();
+ var elem = $("selected_prompt");
+
+ if (elem) {
+ elem.innerHTML = ngettext("%d article selected",
+ "%d articles selected", count).replace("%d", count);
+
+ if (count > 0)
+ Element.show(elem);
+ else
+ Element.hide(elem);
+ }
+
+ } catch (e) {
+ exception_error("updateSelectedPrompt", e);
+ }
+}
+
function toggleUnread_afh(effect) {
try {
@@ -621,12 +685,6 @@ function toggleUnread(id, cmode, effect) {
if (row.hasClassName("Unread")) {
row.removeClassName("Unread");
- if (effect) {
- new Effect.Highlight(row, {duration: 1, startcolor: "#fff7d5",
- afterFinish: toggleUnread_afh,
- queue: { position:'end', scope: 'TMRQ-' + id, limit: 1 } } );
- }
-
} else {
row.addClassName("Unread");
}
@@ -635,12 +693,6 @@ function toggleUnread(id, cmode, effect) {
row.removeClassName("Unread");
- if (effect) {
- new Effect.Highlight(row, {duration: 1, startcolor: "#fff7d5",
- afterFinish: toggleUnread_afh,
- queue: { position:'end', scope: 'TMRQ-' + id, limit: 1 } } );
- }
-
} else if (cmode == 1) {
row.addClassName("Unread");
}
@@ -675,7 +727,7 @@ function selectionRemoveLabel(id, ids) {
return;
}
- var query = "?op=rpc&method=removeFromLabel&ids=" +
+ var query = "?op=article&method=removeFromLabel&ids=" +
param_escape(ids.toString()) + "&lid=" + param_escape(id);
console.log(query);
@@ -703,7 +755,7 @@ function selectionAssignLabel(id, ids) {
return;
}
- var query = "?op=rpc&method=assignToLabel&ids=" +
+ var query = "?op=article&method=assignToLabel&ids=" +
param_escape(ids.toString()) + "&lid=" + param_escape(id);
console.log(query);
@@ -721,9 +773,9 @@ function selectionAssignLabel(id, ids) {
}
}
-function selectionToggleUnread(set_state, callback, no_error) {
+function selectionToggleUnread(set_state, callback, no_error, ids) {
try {
- var rows = getSelectedArticleIds2();
+ var rows = ids ? ids : getSelectedArticleIds2();
if (rows.length == 0 && !no_error) {
alert(__("No articles are selected."));
@@ -782,12 +834,13 @@ function selectionToggleUnread(set_state, callback, no_error) {
}
}
-function selectionToggleMarked() {
+// sel_state ignored
+function selectionToggleMarked(sel_state, callback, no_error, ids) {
try {
- var rows = getSelectedArticleIds2();
+ var rows = ids ? ids : getSelectedArticleIds2();
- if (rows.length == 0) {
+ if (rows.length == 0 && !no_error) {
alert(__("No articles are selected."));
return;
}
@@ -805,6 +858,7 @@ function selectionToggleMarked() {
parameters: query,
onComplete: function(transport) {
handle_rpc_json(transport);
+ if (callback) callback(transport);
} });
}
@@ -814,12 +868,13 @@ function selectionToggleMarked() {
}
}
-function selectionTogglePublished() {
+// sel_state ignored
+function selectionTogglePublished(sel_state, callback, no_error, ids) {
try {
- var rows = getSelectedArticleIds2();
+ var rows = ids ? ids : getSelectedArticleIds2();
- if (rows.length == 0) {
+ if (rows.length == 0 && !no_error) {
alert(__("No articles are selected."));
return;
}
@@ -879,7 +934,9 @@ function selectArticles(mode) {
children.each(function(child) {
var id = child.id.replace("RROW-", "");
- var cb = dijit.byId("RCHK-" + id);
+
+ var cb = dijit.getEnclosingWidget(
+ child.getElementsByClassName("rchk")[0]);
if (mode == "all") {
child.addClassName("Selected");
@@ -893,9 +950,7 @@ function selectArticles(mode) {
if (cb) cb.attr("checked", false);
}
} else if (mode == "marked") {
- var img = $("FMPIC-" + child.id.replace("RROW-", ""));
-
- if (img && img.src.match("mark_set")) {
+ if (child.hasClassName("marked")) {
child.addClassName("Selected");
if (cb) cb.attr("checked", true);
} else {
@@ -903,9 +958,7 @@ function selectArticles(mode) {
if (cb) cb.attr("checked", false);
}
} else if (mode == "published") {
- var img = $("FPPIC-" + child.id.replace("RROW-", ""));
-
- if (img && img.src.match("pub_set")) {
+ if (child.hasClassName("published")) {
child.addClassName("Selected");
if (cb) cb.attr("checked", true);
} else {
@@ -928,28 +981,13 @@ function selectArticles(mode) {
}
});
+ updateSelectedPrompt();
+
} catch (e) {
exception_error("selectArticles", e);
}
}
-function catchupPage() {
-
- var fn = getFeedName(getActiveFeedId(), activeFeedIsCat());
-
- var str = __("Mark all visible articles in %s as read?");
-
- str = str.replace("%s", fn);
-
- if (getInitParam("confirm_feed_catchup") == 1 && !confirm(str)) {
- return;
- }
-
- selectArticles('all');
- selectionToggleUnread(false, 'viewCurrentFeed()', true);
- selectArticles('none');
-}
-
function deleteSelection() {
try {
@@ -965,9 +1003,9 @@ function deleteSelection() {
var str;
if (getActiveFeedId() != 0) {
- str = __("Delete %d selected articles in %s?");
+ str = ngettext("Delete %d selected article in %s?", "Delete %d selected articles in %s?" , rows.length);
} else {
- str = __("Delete %d selected articles?");
+ str = ngettext("Delete %d selected article?", "Delete %d selected articles?", rows.length);
}
str = str.replace("%d", rows.length);
@@ -1009,10 +1047,13 @@ function archiveSelection() {
var op;
if (getActiveFeedId() != 0) {
- str = __("Archive %d selected articles in %s?");
+ str = ngettext("Archive %d selected article in %s?", "Archive %d selected articles in %s?", rows.length);
op = "archive";
} else {
- str = __("Move %d archived articles back?");
+ str = ngettext("Move %d archived article back?", "Move %d archived articles back?", rows.length);
+
+ str += " " + __("Please note that unstarred articles might get purged on next feed update.");
+
op = "unarchive";
}
@@ -1056,7 +1097,7 @@ function catchupSelection() {
var fn = getFeedName(getActiveFeedId(), activeFeedIsCat());
- var str = __("Mark %d selected articles in %s as read?");
+ var str = ngettext("Mark %d selected article in %s as read?", "Mark %d selected articles in %s as read?", rows.length);
str = str.replace("%d", rows.length);
str = str.replace("%s", fn);
@@ -1073,7 +1114,7 @@ function catchupSelection() {
}
function editArticleTags(id) {
- var query = "backend.php?op=dlg&method=editArticleTags&param=" + param_escape(id);
+ var query = "backend.php?op=article&method=editArticleTags&param=" + param_escape(id);
if (dijit.byId("editTagsDlg"))
dijit.byId("editTagsDlg").destroyRecursive();
@@ -1091,22 +1132,25 @@ function editArticleTags(id) {
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
- notify('');
- dialog.hide();
+ try {
+ notify('');
+ dialog.hide();
- var data = JSON.parse(transport.responseText);
+ var data = JSON.parse(transport.responseText);
- if (data) {
- var tags_str = article.tags;
- var id = tags_str.id;
+ if (data) {
+ var id = data.id;
- var tags = $("ATSTR-" + id);
- var tooltip = dijit.byId("ATSTRTIP-" + id);
+ console.log(id);
- if (tags) tags.innerHTML = tags_str.content;
- if (tooltip) tooltip.attr('label', tags_str.content_full);
+ var tags = $("ATSTR-" + id);
+ var tooltip = dijit.byId("ATSTRTIP-" + id);
- cache_delete("article:" + id);
+ if (tags) tags.innerHTML = data.content;
+ if (tooltip) tooltip.attr('label', data.content_full);
+ }
+ } catch (e) {
+ exception_error("editArticleTags/inner", e);
}
}});
@@ -1119,7 +1163,7 @@ function editArticleTags(id) {
dojo.disconnect(tmph);
new Ajax.Autocompleter('tags_str', 'tags_choices',
- "backend.php?op=rpc&method=completeTags",
+ "backend.php?op=article&method=completeTags",
{ tokens: ',', paramName: "search" });
});
@@ -1136,7 +1180,9 @@ function cdmScrollToArticleId(id, force) {
if (force || e.offsetTop+e.offsetHeight > (ctr.scrollTop+ctr.offsetHeight) ||
e.offsetTop < ctr.scrollTop) {
- ctr.scrollTop = e.offsetTop;
+
+ // expanded cdm has a 4px margin now
+ ctr.scrollTop = parseInt(e.offsetTop) - 4;
}
} catch (e) {
@@ -1146,13 +1192,14 @@ function cdmScrollToArticleId(id, force) {
function setActiveArticleId(id) {
_active_article_id = id;
+ PluginHost.run(PluginHost.HOOK_ARTICLE_SET_ACTIVE, _active_article_id);
}
function getActiveArticleId() {
return _active_article_id;
}
-function postMouseIn(id) {
+function postMouseIn(e, id) {
post_under_pointer = id;
}
@@ -1160,10 +1207,39 @@ function postMouseOut(id) {
post_under_pointer = false;
}
+function unpackVisibleHeadlines() {
+ try {
+ if (!isCdmMode()) return;
+
+ $$("#headlines-frame > div[id*=RROW]").each(
+ function(child) {
+ if (child.offsetTop <= $("headlines-frame").scrollTop +
+ $("headlines-frame").offsetHeight) {
+
+ var cencw = $("CENCW-" + child.id.replace("RROW-", ""));
+
+ if (cencw) {
+ PluginHost.run(PluginHost.HOOK_ARTICLE_RENDERED_CDM, child);
+
+ cencw.innerHTML = htmlspecialchars_decode(cencw.innerHTML);
+ cencw.setAttribute('id', '');
+ Element.show(cencw);
+ }
+ }
+ }
+ );
+
+ } catch (e) {
+ exception_error("unpackVisibleHeadlines", e);
+ }
+}
+
function headlines_scroll_handler(e) {
try {
var hsp = $("headlines-spacer");
+ unpackVisibleHeadlines();
+
if (!_infscroll_disable) {
if ((hsp && e.scrollTop + e.offsetHeight >= hsp.offsetTop - hsp.offsetHeight) ||
(e.scrollHeight != 0 &&
@@ -1183,9 +1259,13 @@ function headlines_scroll_handler(e) {
if (getInitParam("cdm_auto_catchup") == 1) {
+ // let's get DOM some time to settle down
+ var ts = new Date().getTime();
+ if (ts - _last_headlines_update < 100) return;
+
$$("#headlines-frame > div[id*=RROW][class*=Unread]").each(
function(child) {
- if ($("headlines-frame").scrollTop >
+ if (child.hasClassName("Unread") && $("headlines-frame").scrollTop >
(child.offsetTop + child.offsetHeight/2)) {
var id = child.id.replace("RROW-", "");
@@ -1202,7 +1282,7 @@ function headlines_scroll_handler(e) {
if (!_infscroll_request_sent) {
catchup_timeout_id = window.setTimeout('catchupBatchedArticles()',
- 2000);
+ 500);
}
}
}
@@ -1228,7 +1308,11 @@ function catchupBatchedArticles() {
onComplete: function(transport) {
handle_rpc_json(transport);
+ reply = JSON.parse(transport.responseText);
+ var batch = reply.ids;
+
batch.each(function(id) {
+ console.log(id);
var elem = $("RROW-" + id);
if (elem) elem.removeClassName("Unread");
catchup_id_batch.remove(id);
@@ -1286,7 +1370,7 @@ function catchupRelativeToArticle(below, id) {
if (ids_to_mark.length == 0) {
alert(__("No articles found to mark"));
} else {
- var msg = __("Mark %d article(s) as read?").replace("%d", ids_to_mark.length);
+ var msg = ngettext("Mark %d article as read?", "Mark %d articles as read?", ids_to_mark.length).replace("%d", ids_to_mark.length);
if (getInitParam("confirm_feed_catchup") != 1 || confirm(msg)) {
@@ -1312,10 +1396,50 @@ function catchupRelativeToArticle(below, id) {
}
}
-function cdmExpandArticle(id) {
+function cdmCollapseArticle(event, id, unmark) {
try {
+ if (unmark == undefined) unmark = true;
- hideAuxDlg();
+ var row = $("RROW-" + id);
+ var elem = $("CICD-" + id);
+
+ if (elem && row) {
+ var collapse = $$("div#RROW-" + id +
+ " span[class='collapseBtn']")[0];
+
+ Element.hide(elem);
+ Element.show("CEXC-" + id);
+ Element.hide(collapse);
+
+ if (unmark) {
+ row.removeClassName("active");
+
+ markHeadline(id, false);
+
+ if (id == getActiveArticleId()) {
+ setActiveArticleId(0);
+ }
+
+ updateSelectedPrompt();
+ }
+
+ if (event) Event.stop(event);
+
+ PluginHost.run(PluginHost.HOOK_ARTICLE_COLLAPSED, id);
+ }
+
+ } catch (e) {
+ exception_error("cdmCollapseArticle", e);
+ }
+}
+
+function cdmExpandArticle(id, noexpand) {
+ try {
+ console.log("cdmExpandArticle " + id);
+
+ if (!$("RROW-" + id)) return false;
+
+ var oldrow = $("RROW-" + getActiveArticleId());
var elem = $("CICD-" + getActiveArticleId());
@@ -1327,28 +1451,48 @@ function cdmExpandArticle(id) {
var old_offset = $("RROW-" + id).offsetTop;
if (getActiveArticleId() && elem && !getInitParam("cdm_expanded")) {
+ var collapse = $$("div#RROW-" + getActiveArticleId() +
+ " span[class='collapseBtn']")[0];
+
Element.hide(elem);
Element.show("CEXC-" + getActiveArticleId());
+ Element.hide(collapse);
}
+ if (oldrow) oldrow.removeClassName("active");
+
setActiveArticleId(id);
elem = $("CICD-" + id);
- if (!Element.visible(elem)) {
+ var collapse = $$("div#RROW-" + id +
+ " span[class='collapseBtn']")[0];
+
+ var cencw = $("CENCW-" + id);
+
+ if (!Element.visible(elem) && !noexpand) {
+ if (cencw) {
+ cencw.innerHTML = htmlspecialchars_decode(cencw.innerHTML);
+ cencw.setAttribute('id', '');
+ Element.show(cencw);
+ }
+
Element.show(elem);
Element.hide("CEXC-" + id);
+ Element.show(collapse);
}
- /* var new_offset = $("RROW-" + id).offsetTop;
-
- $("headlines-frame").scrollTop += (new_offset-old_offset);
+ var new_offset = $("RROW-" + id).offsetTop;
- if ($("RROW-" + id).offsetTop != old_offset)
- $("headlines-frame").scrollTop = new_offset; */
+ if (old_offset > new_offset)
+ $("headlines-frame").scrollTop -= (old_offset-new_offset);
- toggleUnread(id, 0, true);
+ if (!noexpand)
+ toggleUnread(id, 0, true);
toggleSelected(id);
+ $("RROW-" + id).addClassName("active");
+
+ PluginHost.run(PluginHost.HOOK_ARTICLE_EXPANDED, id);
} catch (e) {
exception_error("cdmExpandArticle", e);
@@ -1357,26 +1501,6 @@ function cdmExpandArticle(id) {
return false;
}
-function fixHeadlinesOrder(ids) {
- try {
- for (var i = 0; i < ids.length; i++) {
- var e = $("RROW-" + ids[i]);
-
- if (e) {
- if (i % 2 == 0) {
- e.removeClassName("even");
- e.addClassName("odd");
- } else {
- e.removeClassName("odd");
- e.addClassName("even");
- }
- }
- }
- } catch (e) {
- exception_error("fixHeadlinesOrder", e);
- }
-}
-
function getArticleUnderPointer() {
return post_under_pointer;
}
@@ -1420,6 +1544,8 @@ function dismissArticle(id) {
try {
var elem = $("RROW-" + id);
+ if (!elem) return;
+
toggleUnread(id, 0, true);
new Effect.Fade(elem, {duration : 0.5});
@@ -1455,7 +1581,6 @@ function dismissSelectedArticles() {
if (sel.length > 0)
selectionToggleUnread(false);
- fixHeadlinesOrder(tmp);
} catch (e) {
exception_error("dismissSelectedArticles", e);
@@ -1480,8 +1605,6 @@ function dismissReadArticles() {
}
}
- fixHeadlinesOrder(tmp);
-
} catch (e) {
exception_error("dismissSelectedArticles", e);
}
@@ -1509,22 +1632,24 @@ function cdmClicked(event, id) {
try {
//var shift_key = event.shiftKey;
- hideAuxDlg();
-
if (!event.ctrlKey) {
if (!getInitParam("cdm_expanded")) {
return cdmExpandArticle(id);
} else {
+ var elem = $("RROW-" + getActiveArticleId());
+
+ if (elem) elem.removeClassName("active");
+
selectArticles("none");
toggleSelected(id);
var elem = $("RROW-" + id);
var article_is_unread = elem.hasClassName("Unread");
- if (elem)
- elem.removeClassName("Unread");
+ elem.removeClassName("Unread");
+ elem.addClassName("active");
setActiveArticleId(id);
@@ -1609,16 +1734,22 @@ function isCdmMode() {
return getInitParam("combined_display_mode");
}
-function markHeadline(id) {
+function markHeadline(id, marked) {
+ if (marked == undefined) marked = true;
+
var row = $("RROW-" + id);
if (row) {
- var check = dijit.byId("RCHK-" + id);
+ var check = dijit.getEnclosingWidget(
+ row.getElementsByClassName("rchk")[0]);
if (check) {
- check.attr("checked", true);
+ check.attr("checked", marked);
}
- row.addClassName("Selected");
+ if (marked)
+ row.addClassName("Selected");
+ else
+ row.removeClassName("Selected");
}
}
@@ -1746,6 +1877,47 @@ function initHeadlinesMenu() {
openArticleInNewWindow(this.getParent().callerRowId);
}}));
+ menu.addChild(new dijit.MenuItem({
+ label: __("Display article URL"),
+ onClick: function(event) {
+ displayArticleUrl(this.getParent().callerRowId);
+ }}));
+
+ menu.addChild(new dijit.MenuSeparator());
+
+ menu.addChild(new dijit.MenuItem({
+ label: __("Toggle unread"),
+ onClick: function(event) {
+ var ids = getSelectedArticleIds2();
+ // cast to string
+ var id = this.getParent().callerRowId + "";
+ ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
+
+ selectionToggleUnread(undefined, false, true, ids);
+ }}));
+
+ menu.addChild(new dijit.MenuItem({
+ label: __("Toggle marked"),
+ onClick: function(event) {
+ var ids = getSelectedArticleIds2();
+ // cast to string
+ var id = this.getParent().callerRowId + "";
+ ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
+
+ selectionToggleMarked(undefined, false, true, ids);
+ }}));
+
+ menu.addChild(new dijit.MenuItem({
+ label: __("Toggle published"),
+ onClick: function(event) {
+ var ids = getSelectedArticleIds2();
+ // cast to string
+ var id = this.getParent().callerRowId + "";
+ ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
+
+ selectionTogglePublished(undefined, false, true, ids);
+ }}));
+
menu.addChild(new dijit.MenuSeparator());
menu.addChild(new dijit.MenuItem({
@@ -1775,7 +1947,7 @@ function initHeadlinesMenu() {
var bare_id = id.substr(id.indexOf(":")+1);
var name = label.name[0];
- bare_id = -11-bare_id;
+ bare_id = feed_to_label_id(bare_id);
labelAddMenu.addChild(new dijit.MenuItem({
label: name,
@@ -1824,34 +1996,6 @@ function initHeadlinesMenu() {
}
}
-
-function player(elem) {
- var aid = elem.getAttribute("audio-id");
- var status = elem.getAttribute("status");
-
- var audio = $(aid);
-
- if (audio) {
- if (status == 0) {
- audio.play();
- status = 1;
- elem.innerHTML = __("Playing...");
- elem.title = __("Click to pause");
- elem.addClassName("playing");
- } else {
- audio.pause();
- status = 0;
- elem.innerHTML = __("Play");
- elem.title = __("Click to play");
- elem.removeClassName("playing");
- }
-
- elem.setAttribute("status", status);
- } else {
- alert("Your browser doesn't seem to support HTML5 audio.");
- }
-}
-
function cache_set(id, obj) {
//console.log("cache_set: " + id);
if (has_storage)
@@ -1896,7 +2040,7 @@ function setSelectionScore() {
var score = prompt(__("Please enter new score for selected articles:"), score);
if (score != undefined) {
- var query = "op=rpc&method=setScore&id=" + param_escape(ids.toString()) +
+ var query = "op=article&method=setScore&id=" + param_escape(ids.toString()) +
"&score=" + param_escape(score);
new Ajax.Request("backend.php", {
@@ -1939,7 +2083,7 @@ function changeScore(id, pic) {
if (new_score != undefined) {
- var query = "op=rpc&method=setScore&id=" + param_escape(id) +
+ var query = "op=article&method=setScore&id=" + param_escape(id) +
"&score=" + param_escape(new_score);
new Ajax.Request("backend.php", {
@@ -1957,3 +2101,35 @@ function changeScore(id, pic) {
exception_error("changeScore", e);
}
}
+
+function displayArticleUrl(id) {
+ try {
+ var query = "op=rpc&method=getlinktitlebyid&id=" + param_escape(id);
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ var reply = JSON.parse(transport.responseText);
+
+ if (reply && reply.link) {
+ prompt(__("Article URL:"), reply.link);
+ }
+ } });
+ } catch (e) {
+ exception_error("changeScore", e);
+ }
+}
+
+function openSelectedAttachment(elem) {
+ try {
+ var url = elem[elem.selectedIndex].value;
+
+ if (url) {
+ window.open(url);
+ elem.selectedIndex = 0;
+ }
+
+ } catch (e) {
+ exception_error("openSelectedAttachment", e);
+ }
+}
diff --git a/lib/MiniTemplator.class.php b/lib/MiniTemplator.class.php
index 69281cb5e..a139473f9 100644
--- a/lib/MiniTemplator.class.php
+++ b/lib/MiniTemplator.class.php
@@ -336,7 +336,7 @@ function processBeginBlockCmd ($parms, $cmdTPosBegin, $cmdTPosEnd) {
$this->openBlocksTab[$this->currentNestingLevel] = $blockNo;
$this->currentNestingLevel += 1;
if ($this->currentNestingLevel > $this->maxNestingLevel) {
- $trhis->triggerError ("Block nesting overflow in template at offset $cmdTPosBegin.");
+ $this->triggerError ("Block nesting overflow in template at offset $cmdTPosBegin.");
return false; }
return true; }
@@ -844,7 +844,7 @@ function readFileIntoString ($fileName, &$s) {
$fh = fopen($fileName,"rb");
if ($fh === false) return false;
$fileSize = filesize($fileName);
- if ($fileSize === false) {close ($fh); return false; }
+ if ($fileSize === false) {fclose ($fh); return false; }
$s = fread($fh,$fileSize);
fclose ($fh);
if (strlen($s) != $fileSize) return false;
diff --git a/lib/dijit/BackgroundIframe.js b/lib/dijit/BackgroundIframe.js
index 4823973ad..8b6f3f856 100644
--- a/lib/dijit/BackgroundIframe.js
+++ b/lib/dijit/BackgroundIframe.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/BackgroundIframe",["require",".","dojo/_base/config","dojo/dom-construct","dojo/dom-style","dojo/_base/lang","dojo/on","dojo/_base/sniff","dojo/_base/window"],function(_1,_2,_3,_4,_5,_6,on,_7,_8){var _9=new function(){var _a=[];this.pop=function(){var _b;if(_a.length){_b=_a.pop();_b.style.display="";}else{if(_7("ie")<9){var _c=_3["dojoBlankHtmlUrl"]||_1.toUrl("dojo/resources/blank.html")||"javascript:\"\"";var _d="<iframe src='"+_c+"' role='presentation'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_b=_8.doc.createElement(_d);}else{_b=_4.create("iframe");_b.src="javascript:\"\"";_b.className="dijitBackgroundIframe";_b.setAttribute("role","presentation");_5.set(_b,"opacity",0.1);}_b.tabIndex=-1;}return _b;};this.push=function(_e){_e.style.display="none";_a.push(_e);};}();_2.BackgroundIframe=function(_f){if(!_f.id){throw new Error("no id");}if(_7("ie")||_7("mozilla")){var _10=(this.iframe=_9.pop());_f.appendChild(_10);if(_7("ie")<7||_7("quirks")){this.resize(_f);this._conn=on(_f,"resize",_6.hitch(this,function(){this.resize(_f);}));}else{_5.set(_10,{width:"100%",height:"100%"});}}};_6.extend(_2.BackgroundIframe,{resize:function(_11){if(this.iframe){_5.set(this.iframe,{width:_11.offsetWidth+"px",height:_11.offsetHeight+"px"});}},destroy:function(){if(this._conn){this._conn.remove();this._conn=null;}if(this.iframe){_9.push(this.iframe);delete this.iframe;}}});return _2.BackgroundIframe;}); \ No newline at end of file
+define("dijit/BackgroundIframe",["require","./main","dojo/_base/config","dojo/dom-construct","dojo/dom-style","dojo/_base/lang","dojo/on","dojo/sniff","dojo/_base/window"],function(_1,_2,_3,_4,_5,_6,on,_7,_8){var _9=new function(){var _a=[];this.pop=function(){var _b;if(_a.length){_b=_a.pop();_b.style.display="";}else{if(_7("ie")<9){var _c=_3["dojoBlankHtmlUrl"]||_1.toUrl("dojo/resources/blank.html")||"javascript:\"\"";var _d="<iframe src='"+_c+"' role='presentation'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_b=_8.doc.createElement(_d);}else{_b=_4.create("iframe");_b.src="javascript:\"\"";_b.className="dijitBackgroundIframe";_b.setAttribute("role","presentation");_5.set(_b,"opacity",0.1);}_b.tabIndex=-1;}return _b;};this.push=function(_e){_e.style.display="none";_a.push(_e);};}();_2.BackgroundIframe=function(_f){if(!_f.id){throw new Error("no id");}if(_7("ie")||_7("mozilla")){var _10=(this.iframe=_9.pop());_f.appendChild(_10);if(_7("ie")<7||_7("quirks")){this.resize(_f);this._conn=on(_f,"resize",_6.hitch(this,function(){this.resize(_f);}));}else{_5.set(_10,{width:"100%",height:"100%"});}}};_6.extend(_2.BackgroundIframe,{resize:function(_11){if(this.iframe){_5.set(this.iframe,{width:_11.offsetWidth+"px",height:_11.offsetHeight+"px"});}},destroy:function(){if(this._conn){this._conn.remove();this._conn=null;}if(this.iframe){_9.push(this.iframe);delete this.iframe;}}});return _2.BackgroundIframe;}); \ No newline at end of file
diff --git a/lib/dijit/Calendar.js b/lib/dijit/Calendar.js
index 9c86805d9..64f058010 100644
--- a/lib/dijit/Calendar.js
+++ b/lib/dijit/Calendar.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/Calendar",["dojo/_base/array","dojo/date","dojo/date/locale","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/_base/event","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/_base/sniff","./CalendarLite","./_Widget","./_CssStateMixin","./_TemplatedMixin","./form/DropDownButton","./hccss"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10){var _11=_4("dijit.Calendar",[_c,_d,_e],{cssStateNodes:{"decrementMonth":"dijitCalendarArrow","incrementMonth":"dijitCalendarArrow","previousYearLabelNode":"dijitCalendarPreviousYear","nextYearLabelNode":"dijitCalendarNextYear"},setValue:function(_12){_8.deprecated("dijit.Calendar:setValue() is deprecated. Use set('value', ...) instead.","","2.0");this.set("value",_12);},_createMonthWidget:function(){return new _11._MonthDropDownButton({id:this.id+"_mddb",tabIndex:-1,onMonthSelect:_a.hitch(this,"_onMonthSelect"),lang:this.lang,dateLocaleModule:this.dateLocaleModule},this.monthNode);},buildRendering:function(){this.inherited(arguments);this.connect(this.domNode,"onkeypress","_onKeyPress");this.connect(this.dateRowsNode,"onmouseover","_onDayMouseOver");this.connect(this.dateRowsNode,"onmouseout","_onDayMouseOut");this.connect(this.dateRowsNode,"onmousedown","_onDayMouseDown");this.connect(this.dateRowsNode,"onmouseup","_onDayMouseUp");},_onMonthSelect:function(_13){this._setCurrentFocusAttr(this.dateFuncObj.add(this.currentFocus,"month",_13-this.currentFocus.getMonth()));},_onDayMouseOver:function(evt){var _14=_6.contains(evt.target,"dijitCalendarDateLabel")?evt.target.parentNode:evt.target;if(_14&&((_14.dijitDateValue&&!_6.contains(_14,"dijitCalendarDisabledDate"))||_14==this.previousYearLabelNode||_14==this.nextYearLabelNode)){_6.add(_14,"dijitCalendarHoveredDate");this._currentNode=_14;}},_onDayMouseOut:function(evt){if(!this._currentNode){return;}if(evt.relatedTarget&&evt.relatedTarget.parentNode==this._currentNode){return;}var cls="dijitCalendarHoveredDate";if(_6.contains(this._currentNode,"dijitCalendarActiveDate")){cls+=" dijitCalendarActiveDate";}_6.remove(this._currentNode,cls);this._currentNode=null;},_onDayMouseDown:function(evt){var _15=evt.target.parentNode;if(_15&&_15.dijitDateValue&&!_6.contains(_15,"dijitCalendarDisabledDate")){_6.add(_15,"dijitCalendarActiveDate");this._currentNode=_15;}},_onDayMouseUp:function(evt){var _16=evt.target.parentNode;if(_16&&_16.dijitDateValue){_6.remove(_16,"dijitCalendarActiveDate");}},handleKey:function(evt){var _17=-1,_18,_19=this.currentFocus;switch(evt.charOrCode){case _9.RIGHT_ARROW:_17=1;case _9.LEFT_ARROW:_18="day";if(!this.isLeftToRight()){_17*=-1;}break;case _9.DOWN_ARROW:_17=1;case _9.UP_ARROW:_18="week";break;case _9.PAGE_DOWN:_17=1;case _9.PAGE_UP:_18=evt.ctrlKey||evt.altKey?"year":"month";break;case _9.END:_19=this.dateFuncObj.add(_19,"month",1);_18="day";case _9.HOME:_19=new this.dateClassObj(_19);_19.setDate(1);break;case _9.ENTER:case " ":this.set("value",this.currentFocus);break;default:return true;}if(_18){_19=this.dateFuncObj.add(_19,_18,_17);}this._setCurrentFocusAttr(_19);return false;},_onKeyPress:function(evt){if(!this.handleKey(evt)){_7.stop(evt);}},onValueSelected:function(){},onChange:function(_1a){this.onValueSelected(_1a);},getClassForDate:function(){}});_11._MonthDropDownButton=_4("dijit.Calendar._MonthDropDownButton",_10,{onMonthSelect:function(){},postCreate:function(){this.inherited(arguments);this.dropDown=new _11._MonthDropDown({id:this.id+"_mdd",onChange:this.onMonthSelect});},_setMonthAttr:function(_1b){var _1c=this.dateLocaleModule.getNames("months","wide","standAlone",this.lang,_1b);this.dropDown.set("months",_1c);this.containerNode.innerHTML=(_b("ie")==6?"":"<div class='dijitSpacer'>"+this.dropDown.domNode.innerHTML+"</div>")+"<div class='dijitCalendarMonthLabel dijitCalendarCurrentMonthLabel'>"+_1c[_1b.getMonth()]+"</div>";}});_11._MonthDropDown=_4("dijit.Calendar._MonthDropDown",[_d,_f],{months:[],templateString:"<div class='dijitCalendarMonthMenu dijitMenu' "+"data-dojo-attach-event='onclick:_onClick,onmouseover:_onMenuHover,onmouseout:_onMenuHover'></div>",_setMonthsAttr:function(_1d){this.domNode.innerHTML=_1.map(_1d,function(_1e,idx){return _1e?"<div class='dijitCalendarMonthLabel' month='"+idx+"'>"+_1e+"</div>":"";}).join("");},_onClick:function(evt){this.onChange(_5.get(evt.target,"month"));},onChange:function(){},_onMenuHover:function(evt){_6.toggle(evt.target,"dijitCalendarMonthLabelHover",evt.type=="mouseover");}});return _11;}); \ No newline at end of file
+define("dijit/Calendar",["dojo/_base/array","dojo/date","dojo/date/locale","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/_base/event","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/sniff","./CalendarLite","./_Widget","./_CssStateMixin","./_TemplatedMixin","./form/DropDownButton"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10){var _11=_4("dijit.Calendar",[_c,_d,_e],{cssStateNodes:{"decrementMonth":"dijitCalendarArrow","incrementMonth":"dijitCalendarArrow","previousYearLabelNode":"dijitCalendarPreviousYear","nextYearLabelNode":"dijitCalendarNextYear"},setValue:function(_12){_8.deprecated("dijit.Calendar:setValue() is deprecated. Use set('value', ...) instead.","","2.0");this.set("value",_12);},_createMonthWidget:function(){return new _11._MonthDropDownButton({id:this.id+"_mddb",tabIndex:-1,onMonthSelect:_a.hitch(this,"_onMonthSelect"),lang:this.lang,dateLocaleModule:this.dateLocaleModule},this.monthNode);},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onkeydown","_onKeyDown");this.connect(this.dateRowsNode,"onmouseover","_onDayMouseOver");this.connect(this.dateRowsNode,"onmouseout","_onDayMouseOut");this.connect(this.dateRowsNode,"onmousedown","_onDayMouseDown");this.connect(this.dateRowsNode,"onmouseup","_onDayMouseUp");},_onMonthSelect:function(_13){var _14=new this.dateClassObj(this.currentFocus);_14.setDate(1);_14.setMonth(_13);var _15=this.dateModule.getDaysInMonth(_14);var _16=this.currentFocus.getDate();_14.setDate(Math.min(_16,_15));this._setCurrentFocusAttr(_14);},_onDayMouseOver:function(evt){var _17=_6.contains(evt.target,"dijitCalendarDateLabel")?evt.target.parentNode:evt.target;if(_17&&((_17.dijitDateValue&&!_6.contains(_17,"dijitCalendarDisabledDate"))||_17==this.previousYearLabelNode||_17==this.nextYearLabelNode)){_6.add(_17,"dijitCalendarHoveredDate");this._currentNode=_17;}},_onDayMouseOut:function(evt){if(!this._currentNode){return;}if(evt.relatedTarget&&evt.relatedTarget.parentNode==this._currentNode){return;}var cls="dijitCalendarHoveredDate";if(_6.contains(this._currentNode,"dijitCalendarActiveDate")){cls+=" dijitCalendarActiveDate";}_6.remove(this._currentNode,cls);this._currentNode=null;},_onDayMouseDown:function(evt){var _18=evt.target.parentNode;if(_18&&_18.dijitDateValue&&!_6.contains(_18,"dijitCalendarDisabledDate")){_6.add(_18,"dijitCalendarActiveDate");this._currentNode=_18;}},_onDayMouseUp:function(evt){var _19=evt.target.parentNode;if(_19&&_19.dijitDateValue){_6.remove(_19,"dijitCalendarActiveDate");}},handleKey:function(evt){var _1a=-1,_1b,_1c=this.currentFocus;switch(evt.keyCode){case _9.RIGHT_ARROW:_1a=1;case _9.LEFT_ARROW:_1b="day";if(!this.isLeftToRight()){_1a*=-1;}break;case _9.DOWN_ARROW:_1a=1;case _9.UP_ARROW:_1b="week";break;case _9.PAGE_DOWN:_1a=1;case _9.PAGE_UP:_1b=evt.ctrlKey||evt.altKey?"year":"month";break;case _9.END:_1c=this.dateModule.add(_1c,"month",1);_1b="day";case _9.HOME:_1c=new this.dateClassObj(_1c);_1c.setDate(1);break;case _9.ENTER:case _9.SPACE:this.set("value",this.currentFocus);break;default:return true;}if(_1b){_1c=this.dateModule.add(_1c,_1b,_1a);}this._setCurrentFocusAttr(_1c);return false;},_onKeyDown:function(evt){if(!this.handleKey(evt)){_7.stop(evt);}},onValueSelected:function(){},onChange:function(_1d){this.onValueSelected(_1d);},getClassForDate:function(){}});_11._MonthDropDownButton=_4("dijit.Calendar._MonthDropDownButton",_10,{onMonthSelect:function(){},postCreate:function(){this.inherited(arguments);this.dropDown=new _11._MonthDropDown({id:this.id+"_mdd",onChange:this.onMonthSelect});},_setMonthAttr:function(_1e){var _1f=this.dateLocaleModule.getNames("months","wide","standAlone",this.lang,_1e);this.dropDown.set("months",_1f);this.containerNode.innerHTML=(_b("ie")==6?"":"<div class='dijitSpacer'>"+this.dropDown.domNode.innerHTML+"</div>")+"<div class='dijitCalendarMonthLabel dijitCalendarCurrentMonthLabel'>"+_1f[_1e.getMonth()]+"</div>";}});_11._MonthDropDown=_4("dijit.Calendar._MonthDropDown",[_d,_f],{months:[],templateString:"<div class='dijitCalendarMonthMenu dijitMenu' "+"data-dojo-attach-event='onclick:_onClick,onmouseover:_onMenuHover,onmouseout:_onMenuHover'></div>",_setMonthsAttr:function(_20){this.domNode.innerHTML=_1.map(_20,function(_21,idx){return _21?"<div class='dijitCalendarMonthLabel' month='"+idx+"'>"+_21+"</div>":"";}).join("");},_onClick:function(evt){this.onChange(_5.get(evt.target,"month"));},onChange:function(){},_onMenuHover:function(evt){_6.toggle(evt.target,"dijitCalendarMonthLabelHover",evt.type=="mouseover");}});return _11;}); \ No newline at end of file
diff --git a/lib/dijit/CalendarLite.js b/lib/dijit/CalendarLite.js
index bd84f6d87..48c05d224 100644
--- a/lib/dijit/CalendarLite.js
+++ b/lib/dijit/CalendarLite.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/Calendar.html":"<table cellspacing=\"0\" cellpadding=\"0\" class=\"dijitCalendarContainer\" role=\"grid\" aria-labelledby=\"${id}_mddb ${id}_year\">\n\t<thead>\n\t\t<tr class=\"dijitReset dijitCalendarMonthContainer\" valign=\"top\">\n\t\t\t<th class='dijitReset dijitCalendarArrow' data-dojo-attach-point=\"decrementMonth\">\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarDecrease\" role=\"presentation\"/>\n\t\t\t\t<span data-dojo-attach-point=\"decreaseArrowNode\" class=\"dijitA11ySideArrow\">-</span>\n\t\t\t</th>\n\t\t\t<th class='dijitReset' colspan=\"5\">\n\t\t\t\t<div data-dojo-attach-point=\"monthNode\">\n\t\t\t\t</div>\n\t\t\t</th>\n\t\t\t<th class='dijitReset dijitCalendarArrow' data-dojo-attach-point=\"incrementMonth\">\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarIncrease\" role=\"presentation\"/>\n\t\t\t\t<span data-dojo-attach-point=\"increaseArrowNode\" class=\"dijitA11ySideArrow\">+</span>\n\t\t\t</th>\n\t\t</tr>\n\t\t<tr>\n\t\t\t${!dayCellsHtml}\n\t\t</tr>\n\t</thead>\n\t<tbody data-dojo-attach-point=\"dateRowsNode\" data-dojo-attach-event=\"onclick: _onDayClick\" class=\"dijitReset dijitCalendarBodyContainer\">\n\t\t\t${!dateRowsHtml}\n\t</tbody>\n\t<tfoot class=\"dijitReset dijitCalendarYearContainer\">\n\t\t<tr>\n\t\t\t<td class='dijitReset' valign=\"top\" colspan=\"7\" role=\"presentation\">\n\t\t\t\t<div class=\"dijitCalendarYearLabel\">\n\t\t\t\t\t<span data-dojo-attach-point=\"previousYearLabelNode\" class=\"dijitInline dijitCalendarPreviousYear\" role=\"button\"></span>\n\t\t\t\t\t<span data-dojo-attach-point=\"currentYearLabelNode\" class=\"dijitInline dijitCalendarSelectedYear\" role=\"button\" id=\"${id}_year\"></span>\n\t\t\t\t\t<span data-dojo-attach-point=\"nextYearLabelNode\" class=\"dijitInline dijitCalendarNextYear\" role=\"button\"></span>\n\t\t\t\t</div>\n\t\t\t</td>\n\t\t</tr>\n\t</tfoot>\n</table>\n"}});define("dijit/CalendarLite",["dojo/_base/array","dojo/_base/declare","dojo/cldr/supplemental","dojo/date","dojo/date/locale","dojo/dom","dojo/dom-class","dojo/_base/event","dojo/_base/lang","dojo/_base/sniff","dojo/string","dojo/_base/window","./_WidgetBase","./_TemplatedMixin","dojo/text!./templates/Calendar.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f){var _10=_2("dijit.CalendarLite",[_d,_e],{templateString:_f,dowTemplateString:"<th class=\"dijitReset dijitCalendarDayLabelTemplate\" role=\"columnheader\"><span class=\"dijitCalendarDayLabel\">${d}</span></th>",dateTemplateString:"<td class=\"dijitReset\" role=\"gridcell\" data-dojo-attach-point=\"dateCells\"><span class=\"dijitCalendarDateLabel\" data-dojo-attach-point=\"dateLabels\"></span></td>",weekTemplateString:"<tr class=\"dijitReset dijitCalendarWeekTemplate\" role=\"row\">${d}${d}${d}${d}${d}${d}${d}</tr>",value:new Date(""),datePackage:_4,dayWidth:"narrow",tabIndex:"0",currentFocus:new Date(),baseClass:"dijitCalendar",_isValidDate:function(_11){return _11&&!isNaN(_11)&&typeof _11=="object"&&_11.toString()!=this.constructor.prototype.value.toString();},_getValueAttr:function(){if(this.value&&!isNaN(this.value)){var _12=new this.dateClassObj(this.value);_12.setHours(0,0,0,0);if(_12.getDate()<this.value.getDate()){_12=this.dateFuncObj.add(_12,"hour",1);}return _12;}else{return null;}},_setValueAttr:function(_13,_14){if(_13){_13=new this.dateClassObj(_13);}if(this._isValidDate(_13)){if(!this._isValidDate(this.value)||this.dateFuncObj.compare(_13,this.value)){_13.setHours(1,0,0,0);if(!this.isDisabledDate(_13,this.lang)){this._set("value",_13);this.set("currentFocus",_13);if(_14||typeof _14=="undefined"){this.onChange(this.get("value"));}}}}else{this._set("value",null);this.set("currentFocus",this.currentFocus);}},_setText:function(_15,_16){while(_15.firstChild){_15.removeChild(_15.firstChild);}_15.appendChild(_c.doc.createTextNode(_16));},_populateGrid:function(){var _17=new this.dateClassObj(this.currentFocus);_17.setDate(1);var _18=_17.getDay(),_19=this.dateFuncObj.getDaysInMonth(_17),_1a=this.dateFuncObj.getDaysInMonth(this.dateFuncObj.add(_17,"month",-1)),_1b=new this.dateClassObj(),_1c=_3.getFirstDayOfWeek(this.lang);if(_1c>_18){_1c-=7;}this._date2cell={};_1.forEach(this.dateCells,function(_1d,idx){var i=idx+_1c;var _1e=new this.dateClassObj(_17),_1f,_20="dijitCalendar",adj=0;if(i<_18){_1f=_1a-_18+i+1;adj=-1;_20+="Previous";}else{if(i>=(_18+_19)){_1f=i-_18-_19+1;adj=1;_20+="Next";}else{_1f=i-_18+1;_20+="Current";}}if(adj){_1e=this.dateFuncObj.add(_1e,"month",adj);}_1e.setDate(_1f);if(!this.dateFuncObj.compare(_1e,_1b,"date")){_20="dijitCalendarCurrentDate "+_20;}if(this._isSelectedDate(_1e,this.lang)){_20="dijitCalendarSelectedDate "+_20;_1d.setAttribute("aria-selected",true);}else{_1d.setAttribute("aria-selected",false);}if(this.isDisabledDate(_1e,this.lang)){_20="dijitCalendarDisabledDate "+_20;_1d.setAttribute("aria-disabled",true);}else{_20="dijitCalendarEnabledDate "+_20;_1d.removeAttribute("aria-disabled");}var _21=this.getClassForDate(_1e,this.lang);if(_21){_20=_21+" "+_20;}_1d.className=_20+"Month dijitCalendarDateTemplate";var _22=_1e.valueOf();this._date2cell[_22]=_1d;_1d.dijitDateValue=_22;this._setText(this.dateLabels[idx],_1e.getDateLocalized?_1e.getDateLocalized(this.lang):_1e.getDate());},this);this.monthWidget.set("month",_17);var y=_17.getFullYear()-1;var d=new this.dateClassObj();_1.forEach(["previous","current","next"],function(_23){d.setFullYear(y++);this._setText(this[_23+"YearLabelNode"],this.dateLocaleModule.format(d,{selector:"year",locale:this.lang}));},this);},goToToday:function(){this.set("value",new this.dateClassObj());},constructor:function(_24){this.datePackage=_24.datePackage||this.datePackage;this.dateFuncObj=typeof this.datePackage=="string"?_9.getObject(this.datePackage,false):this.datePackage;this.dateClassObj=this.dateFuncObj.Date||Date;this.dateLocaleModule=_9.getObject("locale",false,this.dateFuncObj);},_createMonthWidget:function(){return _10._MonthWidget({id:this.id+"_mw",lang:this.lang,dateLocaleModule:this.dateLocaleModule},this.monthNode);},buildRendering:function(){var d=this.dowTemplateString,_25=this.dateLocaleModule.getNames("days",this.dayWidth,"standAlone",this.lang),_26=_3.getFirstDayOfWeek(this.lang);this.dayCellsHtml=_b.substitute([d,d,d,d,d,d,d].join(""),{d:""},function(){return _25[_26++%7];});var r=_b.substitute(this.weekTemplateString,{d:this.dateTemplateString});this.dateRowsHtml=[r,r,r,r,r,r].join("");this.dateCells=[];this.dateLabels=[];this.inherited(arguments);_6.setSelectable(this.domNode,false);var _27=new this.dateClassObj(this.currentFocus);this._supportingWidgets.push(this.monthWidget=this._createMonthWidget());this.set("currentFocus",_27,false);var _28=_9.hitch(this,function(_29,_2a,_2b){this.connect(this[_29],"onclick",function(){this._setCurrentFocusAttr(this.dateFuncObj.add(this.currentFocus,_2a,_2b));});});_28("incrementMonth","month",1);_28("decrementMonth","month",-1);_28("nextYearLabelNode","year",1);_28("previousYearLabelNode","year",-1);},_setCurrentFocusAttr:function(_2c,_2d){var _2e=this.currentFocus,_2f=_2e&&this._date2cell?this._date2cell[_2e.valueOf()]:null;_2c=new this.dateClassObj(_2c);_2c.setHours(1,0,0,0);this._set("currentFocus",_2c);this._populateGrid();var _30=this._date2cell[_2c.valueOf()];_30.setAttribute("tabIndex",this.tabIndex);if(this.focused||_2d){_30.focus();}if(_2f&&_2f!=_30){if(_a("webkit")){_2f.setAttribute("tabIndex","-1");}else{_2f.removeAttribute("tabIndex");}}},focus:function(){this._setCurrentFocusAttr(this.currentFocus,true);},_onDayClick:function(evt){_8.stop(evt);for(var _31=evt.target;_31&&!_31.dijitDateValue;_31=_31.parentNode){}if(_31&&!_7.contains(_31,"dijitCalendarDisabledDate")){this.set("value",_31.dijitDateValue);}},onChange:function(){},_isSelectedDate:function(_32){return this._isValidDate(this.value)&&!this.dateFuncObj.compare(_32,this.value,"date");},isDisabledDate:function(){},getClassForDate:function(){}});_10._MonthWidget=_2("dijit.CalendarLite._MonthWidget",_d,{_setMonthAttr:function(_33){var _34=this.dateLocaleModule.getNames("months","wide","standAlone",this.lang,_33),_35=(_a("ie")==6?"":"<div class='dijitSpacer'>"+_1.map(_34,function(s){return "<div>"+s+"</div>";}).join("")+"</div>");this.domNode.innerHTML=_35+"<div class='dijitCalendarMonthLabel dijitCalendarCurrentMonthLabel'>"+_34[_33.getMonth()]+"</div>";}});return _10;}); \ No newline at end of file
+require({cache:{"url:dijit/templates/Calendar.html":"<table cellspacing=\"0\" cellpadding=\"0\" class=\"dijitCalendarContainer\" role=\"grid\" aria-labelledby=\"${id}_mddb ${id}_year\">\n\t<thead>\n\t\t<tr class=\"dijitReset dijitCalendarMonthContainer\" valign=\"top\">\n\t\t\t<th class='dijitReset dijitCalendarArrow' data-dojo-attach-point=\"decrementMonth\">\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarDecrease\" role=\"presentation\"/>\n\t\t\t\t<span data-dojo-attach-point=\"decreaseArrowNode\" class=\"dijitA11ySideArrow\">-</span>\n\t\t\t</th>\n\t\t\t<th class='dijitReset' colspan=\"5\">\n\t\t\t\t<div data-dojo-attach-point=\"monthNode\">\n\t\t\t\t</div>\n\t\t\t</th>\n\t\t\t<th class='dijitReset dijitCalendarArrow' data-dojo-attach-point=\"incrementMonth\">\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarIncrease\" role=\"presentation\"/>\n\t\t\t\t<span data-dojo-attach-point=\"increaseArrowNode\" class=\"dijitA11ySideArrow\">+</span>\n\t\t\t</th>\n\t\t</tr>\n\t\t<tr role=\"row\">\n\t\t\t${!dayCellsHtml}\n\t\t</tr>\n\t</thead>\n\t<tbody data-dojo-attach-point=\"dateRowsNode\" data-dojo-attach-event=\"onclick: _onDayClick\" class=\"dijitReset dijitCalendarBodyContainer\">\n\t\t\t${!dateRowsHtml}\n\t</tbody>\n\t<tfoot class=\"dijitReset dijitCalendarYearContainer\">\n\t\t<tr>\n\t\t\t<td class='dijitReset' valign=\"top\" colspan=\"7\" role=\"presentation\">\n\t\t\t\t<div class=\"dijitCalendarYearLabel\">\n\t\t\t\t\t<span data-dojo-attach-point=\"previousYearLabelNode\" class=\"dijitInline dijitCalendarPreviousYear\" role=\"button\"></span>\n\t\t\t\t\t<span data-dojo-attach-point=\"currentYearLabelNode\" class=\"dijitInline dijitCalendarSelectedYear\" role=\"button\" id=\"${id}_year\"></span>\n\t\t\t\t\t<span data-dojo-attach-point=\"nextYearLabelNode\" class=\"dijitInline dijitCalendarNextYear\" role=\"button\"></span>\n\t\t\t\t</div>\n\t\t\t</td>\n\t\t</tr>\n\t</tfoot>\n</table>\n"}});define("dijit/CalendarLite",["dojo/_base/array","dojo/_base/declare","dojo/cldr/supplemental","dojo/date","dojo/date/locale","dojo/date/stamp","dojo/dom","dojo/dom-class","dojo/_base/event","dojo/_base/lang","dojo/sniff","dojo/string","./_WidgetBase","./_TemplatedMixin","dojo/text!./templates/Calendar.html","./hccss"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f){var _10=_2("dijit.CalendarLite",[_d,_e],{templateString:_f,dowTemplateString:"<th class=\"dijitReset dijitCalendarDayLabelTemplate\" role=\"columnheader\"><span class=\"dijitCalendarDayLabel\">${d}</span></th>",dateTemplateString:"<td class=\"dijitReset\" role=\"gridcell\" data-dojo-attach-point=\"dateCells\"><span class=\"dijitCalendarDateLabel\" data-dojo-attach-point=\"dateLabels\"></span></td>",weekTemplateString:"<tr class=\"dijitReset dijitCalendarWeekTemplate\" role=\"row\">${d}${d}${d}${d}${d}${d}${d}</tr>",value:new Date(""),datePackage:"",dayWidth:"narrow",tabIndex:"0",currentFocus:new Date(),baseClass:"dijitCalendar",_isValidDate:function(_11){return _11&&!isNaN(_11)&&typeof _11=="object"&&_11.toString()!=this.constructor.prototype.value.toString();},_getValueAttr:function(){if(this.value&&!isNaN(this.value)){var _12=new this.dateClassObj(this.value);_12.setHours(0,0,0,0);if(_12.getDate()<this.value.getDate()){_12=this.dateModule.add(_12,"hour",1);}return _12;}else{return null;}},_setValueAttr:function(_13,_14){if(typeof _13=="string"){_13=_6.fromISOString(_13);}_13=this._patchDate(_13);if(this._isValidDate(_13)&&!this.isDisabledDate(_13,this.lang)){this._set("value",_13);this.set("currentFocus",_13);this._markSelectedDates([_13]);if(this._created&&(_14||typeof _14=="undefined")){this.onChange(this.get("value"));}}else{this._set("value",null);this._markSelectedDates([]);}},_patchDate:function(_15){if(_15){_15=new this.dateClassObj(_15);_15.setHours(1,0,0,0);}return _15;},_setText:function(_16,_17){while(_16.firstChild){_16.removeChild(_16.firstChild);}_16.appendChild(_16.ownerDocument.createTextNode(_17));},_populateGrid:function(){var _18=new this.dateClassObj(this.currentFocus);_18.setDate(1);var _19=_18.getDay(),_1a=this.dateModule.getDaysInMonth(_18),_1b=this.dateModule.getDaysInMonth(this.dateModule.add(_18,"month",-1)),_1c=new this.dateClassObj(),_1d=_3.getFirstDayOfWeek(this.lang);if(_1d>_19){_1d-=7;}this._date2cell={};_1.forEach(this.dateCells,function(_1e,idx){var i=idx+_1d;var _1f=new this.dateClassObj(_18),_20,_21="dijitCalendar",adj=0;if(i<_19){_20=_1b-_19+i+1;adj=-1;_21+="Previous";}else{if(i>=(_19+_1a)){_20=i-_19-_1a+1;adj=1;_21+="Next";}else{_20=i-_19+1;_21+="Current";}}if(adj){_1f=this.dateModule.add(_1f,"month",adj);}_1f.setDate(_20);if(!this.dateModule.compare(_1f,_1c,"date")){_21="dijitCalendarCurrentDate "+_21;}if(this.isDisabledDate(_1f,this.lang)){_21="dijitCalendarDisabledDate "+_21;_1e.setAttribute("aria-disabled","true");}else{_21="dijitCalendarEnabledDate "+_21;_1e.removeAttribute("aria-disabled");_1e.setAttribute("aria-selected","false");}var _22=this.getClassForDate(_1f,this.lang);if(_22){_21=_22+" "+_21;}_1e.className=_21+"Month dijitCalendarDateTemplate";var _23=_1f.valueOf();this._date2cell[_23]=_1e;_1e.dijitDateValue=_23;this._setText(this.dateLabels[idx],_1f.getDateLocalized?_1f.getDateLocalized(this.lang):_1f.getDate());},this);},_populateControls:function(){var _24=new this.dateClassObj(this.currentFocus);_24.setDate(1);this.monthWidget.set("month",_24);var y=_24.getFullYear()-1;var d=new this.dateClassObj();_1.forEach(["previous","current","next"],function(_25){d.setFullYear(y++);this._setText(this[_25+"YearLabelNode"],this.dateLocaleModule.format(d,{selector:"year",locale:this.lang}));},this);},goToToday:function(){this.set("value",new this.dateClassObj());},constructor:function(_26){this.dateModule=_26.datePackage?_a.getObject(_26.datePackage,false):_4;this.dateClassObj=this.dateModule.Date||Date;this.dateLocaleModule=_26.datePackage?_a.getObject(_26.datePackage+".locale",false):_5;},_createMonthWidget:function(){return _10._MonthWidget({id:this.id+"_mw",lang:this.lang,dateLocaleModule:this.dateLocaleModule},this.monthNode);},buildRendering:function(){var d=this.dowTemplateString,_27=this.dateLocaleModule.getNames("days",this.dayWidth,"standAlone",this.lang),_28=_3.getFirstDayOfWeek(this.lang);this.dayCellsHtml=_c.substitute([d,d,d,d,d,d,d].join(""),{d:""},function(){return _27[_28++%7];});var r=_c.substitute(this.weekTemplateString,{d:this.dateTemplateString});this.dateRowsHtml=[r,r,r,r,r,r].join("");this.dateCells=[];this.dateLabels=[];this.inherited(arguments);_7.setSelectable(this.domNode,false);var _29=new this.dateClassObj(this.currentFocus);this.monthWidget=this._createMonthWidget();this.set("currentFocus",_29,false);},postCreate:function(){this.inherited(arguments);this._connectControls();},_connectControls:function(){var _2a=_a.hitch(this,function(_2b,_2c,_2d){this.connect(this[_2b],"onclick",function(){this._setCurrentFocusAttr(this.dateModule.add(this.currentFocus,_2c,_2d));});});_2a("incrementMonth","month",1);_2a("decrementMonth","month",-1);_2a("nextYearLabelNode","year",1);_2a("previousYearLabelNode","year",-1);},_setCurrentFocusAttr:function(_2e,_2f){var _30=this.currentFocus,_31=this._getNodeByDate(_30);_2e=this._patchDate(_2e);this._set("currentFocus",_2e);if(!this._date2cell||this.dateModule.difference(_30,_2e,"month")!=0){this._populateGrid();this._populateControls();this._markSelectedDates([this.value]);}var _32=this._getNodeByDate(_2e);_32.setAttribute("tabIndex",this.tabIndex);if(this.focused||_2f){_32.focus();}if(_31&&_31!=_32){if(_b("webkit")){_31.setAttribute("tabIndex","-1");}else{_31.removeAttribute("tabIndex");}}},focus:function(){this._setCurrentFocusAttr(this.currentFocus,true);},_onDayClick:function(evt){_9.stop(evt);for(var _33=evt.target;_33&&!_33.dijitDateValue;_33=_33.parentNode){}if(_33&&!_8.contains(_33,"dijitCalendarDisabledDate")){this.set("value",_33.dijitDateValue);}},_getNodeByDate:function(_34){_34=this._patchDate(_34);return _34&&this._date2cell?this._date2cell[_34.valueOf()]:null;},_markSelectedDates:function(_35){function _36(_37,_38){_8.toggle(_38,"dijitCalendarSelectedDate",_37);_38.setAttribute("aria-selected",_37?"true":"false");};_1.forEach(this._selectedCells||[],_a.partial(_36,false));this._selectedCells=_1.filter(_1.map(_35,this._getNodeByDate,this),function(n){return n;});_1.forEach(this._selectedCells,_a.partial(_36,true));},onChange:function(){},isDisabledDate:function(){},getClassForDate:function(){}});_10._MonthWidget=_2("dijit.CalendarLite._MonthWidget",_d,{_setMonthAttr:function(_39){var _3a=this.dateLocaleModule.getNames("months","wide","standAlone",this.lang,_39),_3b=(_b("ie")==6?"":"<div class='dijitSpacer'>"+_1.map(_3a,function(s){return "<div>"+s+"</div>";}).join("")+"</div>");this.domNode.innerHTML=_3b+"<div class='dijitCalendarMonthLabel dijitCalendarCurrentMonthLabel'>"+_3a[_39.getMonth()]+"</div>";}});return _10;}); \ No newline at end of file
diff --git a/lib/dijit/CheckedMenuItem.js b/lib/dijit/CheckedMenuItem.js
index 30ea390dc..acb134479 100644
--- a/lib/dijit/CheckedMenuItem.js
+++ b/lib/dijit/CheckedMenuItem.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/CheckedMenuItem.html":"<tr class=\"dijitReset dijitMenuItem\" data-dojo-attach-point=\"focusNode\" role=\"menuitemcheckbox\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-event=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">&#10003;</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">&#160;</td>\n</tr>\n"}});define("dijit/CheckedMenuItem",["dojo/_base/declare","dojo/dom-class","./MenuItem","dojo/text!./templates/CheckedMenuItem.html","./hccss"],function(_1,_2,_3,_4){return _1("dijit.CheckedMenuItem",_3,{templateString:_4,checked:false,_setCheckedAttr:function(_5){_2.toggle(this.domNode,"dijitCheckedMenuItemChecked",_5);this.domNode.setAttribute("aria-checked",_5);this._set("checked",_5);},iconClass:"",onChange:function(){},_onClick:function(e){if(!this.disabled){this.set("checked",!this.checked);this.onChange(this.checked);}this.inherited(arguments);}});}); \ No newline at end of file
+require({cache:{"url:dijit/templates/CheckedMenuItem.html":"<tr class=\"dijitReset dijitMenuItem\" data-dojo-attach-point=\"focusNode\" role=\"menuitemcheckbox\" tabIndex=\"-1\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">&#10003;</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">&#160;</td>\n</tr>\n"}});define("dijit/CheckedMenuItem",["dojo/_base/declare","dojo/dom-class","./MenuItem","dojo/text!./templates/CheckedMenuItem.html","./hccss"],function(_1,_2,_3,_4){return _1("dijit.CheckedMenuItem",_3,{templateString:_4,checked:false,_setCheckedAttr:function(_5){_2.toggle(this.domNode,"dijitCheckedMenuItemChecked",_5);this.domNode.setAttribute("aria-checked",_5?"true":"false");this._set("checked",_5);},iconClass:"",onChange:function(){},_onClick:function(_6){if(!this.disabled){this.set("checked",!this.checked);this.onChange(this.checked);}this.onClick(_6);}});}); \ No newline at end of file
diff --git a/lib/dijit/ColorPalette.js b/lib/dijit/ColorPalette.js
index 22e4e3a81..16669a4ac 100644
--- a/lib/dijit/ColorPalette.js
+++ b/lib/dijit/ColorPalette.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/ColorPalette.html":"<div class=\"dijitInline dijitColorPalette\">\n\t<table dojoAttachPoint=\"paletteTableNode\" class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\" role=\"grid\">\n\t\t<tbody data-dojo-attach-point=\"gridNode\"></tbody>\n\t</table>\n</div>\n"}});define("dijit/ColorPalette",["require","dojo/text!./templates/ColorPalette.html","./_Widget","./_TemplatedMixin","./_PaletteMixin","dojo/i18n","dojo/_base/Color","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/_base/window","dojo/string","dojo/i18n!dojo/nls/colors","dojo/colors"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){var _d=_8("dijit.ColorPalette",[_3,_4,_5],{palette:"7x10",_palettes:{"7x10":[["white","seashell","cornsilk","lemonchiffon","lightyellow","palegreen","paleturquoise","lightcyan","lavender","plum"],["lightgray","pink","bisque","moccasin","khaki","lightgreen","lightseagreen","lightskyblue","cornflowerblue","violet"],["silver","lightcoral","sandybrown","orange","palegoldenrod","chartreuse","mediumturquoise","skyblue","mediumslateblue","orchid"],["gray","red","orangered","darkorange","yellow","limegreen","darkseagreen","royalblue","slateblue","mediumorchid"],["dimgray","crimson","chocolate","coral","gold","forestgreen","seagreen","blue","blueviolet","darkorchid"],["darkslategray","firebrick","saddlebrown","sienna","olive","green","darkcyan","mediumblue","darkslateblue","darkmagenta"],["black","darkred","maroon","brown","darkolivegreen","darkgreen","midnightblue","navy","indigo","purple"]],"3x4":[["white","lime","green","blue"],["silver","yellow","fuchsia","navy"],["gray","red","purple","black"]]},templateString:_2,baseClass:"dijitColorPalette",_dyeFactory:function(_e,_f,col){return new this._dyeClass(_e,_f,col);},buildRendering:function(){this.inherited(arguments);this._dyeClass=_8(_d._Color,{hc:_9.contains(_b.body(),"dijit_a11y"),palette:this.palette});this._preparePalette(this._palettes[this.palette],_6.getLocalization("dojo","colors",this.lang));}});_d._Color=_8("dijit._Color",_7,{template:"<span class='dijitInline dijitPaletteImg'>"+"<img src='${blankGif}' alt='${alt}' class='dijitColorPaletteSwatch' style='background-color: ${color}'/>"+"</span>",hcTemplate:"<span class='dijitInline dijitPaletteImg' style='position: relative; overflow: hidden; height: 12px; width: 14px;'>"+"<img src='${image}' alt='${alt}' style='position: absolute; left: ${left}px; top: ${top}px; ${size}'/>"+"</span>",_imagePaths:{"7x10":_1.toUrl("./themes/a11y/colors7x10.png"),"3x4":_1.toUrl("./themes/a11y/colors3x4.png")},constructor:function(_10,row,col){this._alias=_10;this._row=row;this._col=col;this.setColor(_7.named[_10]);},getValue:function(){return this.toHex();},fillCell:function(_11,_12){var _13=_c.substitute(this.hc?this.hcTemplate:this.template,{color:this.toHex(),blankGif:_12,alt:this._alias,image:this._imagePaths[this.palette].toString(),left:this._col*-20-5,top:this._row*-20-5,size:this.palette=="7x10"?"height: 145px; width: 206px":"height: 64px; width: 86px"});_a.place(_13,_11);}});return _d;}); \ No newline at end of file
+require({cache:{"url:dijit/templates/ColorPalette.html":"<div class=\"dijitInline dijitColorPalette\">\n\t<table dojoAttachPoint=\"paletteTableNode\" class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\" role=\"grid\">\n\t\t<tbody data-dojo-attach-point=\"gridNode\"></tbody>\n\t</table>\n</div>\n"}});define("dijit/ColorPalette",["require","dojo/text!./templates/ColorPalette.html","./_Widget","./_TemplatedMixin","./_PaletteMixin","./hccss","dojo/i18n","dojo/_base/Color","dojo/_base/declare","dojo/dom-construct","dojo/string","dojo/i18n!dojo/nls/colors","dojo/colors"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){var _c=_9("dijit.ColorPalette",[_3,_4,_5],{palette:"7x10",_palettes:{"7x10":[["white","seashell","cornsilk","lemonchiffon","lightyellow","palegreen","paleturquoise","lightcyan","lavender","plum"],["lightgray","pink","bisque","moccasin","khaki","lightgreen","lightseagreen","lightskyblue","cornflowerblue","violet"],["silver","lightcoral","sandybrown","orange","palegoldenrod","chartreuse","mediumturquoise","skyblue","mediumslateblue","orchid"],["gray","red","orangered","darkorange","yellow","limegreen","darkseagreen","royalblue","slateblue","mediumorchid"],["dimgray","crimson","chocolate","coral","gold","forestgreen","seagreen","blue","blueviolet","darkorchid"],["darkslategray","firebrick","saddlebrown","sienna","olive","green","darkcyan","mediumblue","darkslateblue","darkmagenta"],["black","darkred","maroon","brown","darkolivegreen","darkgreen","midnightblue","navy","indigo","purple"]],"3x4":[["white","lime","green","blue"],["silver","yellow","fuchsia","navy"],["gray","red","purple","black"]]},templateString:_2,baseClass:"dijitColorPalette",_dyeFactory:function(_d,_e,_f,_10){return new this._dyeClass(_d,_e,_f,_10);},buildRendering:function(){this.inherited(arguments);this._dyeClass=_9(_c._Color,{palette:this.palette});this._preparePalette(this._palettes[this.palette],_7.getLocalization("dojo","colors",this.lang));}});_c._Color=_9("dijit._Color",_8,{template:"<span class='dijitInline dijitPaletteImg'>"+"<img src='${blankGif}' alt='${alt}' title='${title}' class='dijitColorPaletteSwatch' style='background-color: ${color}'/>"+"</span>",hcTemplate:"<span class='dijitInline dijitPaletteImg' style='position: relative; overflow: hidden; height: 12px; width: 14px;'>"+"<img src='${image}' alt='${alt}' title='${title}' style='position: absolute; left: ${left}px; top: ${top}px; ${size}'/>"+"</span>",_imagePaths:{"7x10":_1.toUrl("./themes/a11y/colors7x10.png"),"3x4":_1.toUrl("./themes/a11y/colors3x4.png")},constructor:function(_11,row,col,_12){this._title=_12;this._row=row;this._col=col;this.setColor(_8.named[_11]);},getValue:function(){return this.toHex();},fillCell:function(_13,_14){var _15=_b.substitute(_6("highcontrast")?this.hcTemplate:this.template,{color:this.toHex(),blankGif:_14,alt:this._title,title:this._title,image:this._imagePaths[this.palette].toString(),left:this._col*-20-5,top:this._row*-20-5,size:this.palette=="7x10"?"height: 145px; width: 206px":"height: 64px; width: 86px"});_a.place(_15,_13);}});return _c;}); \ No newline at end of file
diff --git a/lib/dijit/Declaration.js b/lib/dijit/Declaration.js
index 833489d99..5d2a1ac25 100644
--- a/lib/dijit/Declaration.js
+++ b/lib/dijit/Declaration.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/Declaration",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","dojo/parser","dojo/query","./_Widget","./_TemplatedMixin","./_WidgetsInTemplateMixin","dojo/NodeList-dom"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _3("dijit.Declaration",_7,{_noScript:true,stopParser:true,widgetClass:"",defaults:null,mixins:[],buildRendering:function(){var _a=this.srcNodeRef.parentNode.removeChild(this.srcNodeRef),_b=_6("> script[type^='dojo/method']",_a).orphan(),_c=_6("> script[type^='dojo/connect']",_a).orphan(),_d=_a.nodeName;var _e=this.defaults||{};_1.forEach(_b,function(s){var _f=s.getAttribute("event")||s.getAttribute("data-dojo-event"),_10=_5._functionFromScript(s);if(_f){_e[_f]=_10;}else{_c.push(s);}});this.mixins=this.mixins.length?_1.map(this.mixins,function(_11){return _4.getObject(_11);}):[_7,_8,_9];_e._skipNodeCache=true;_e.templateString="<"+_d+" class='"+_a.className+"'"+" data-dojo-attach-point='"+(_a.getAttribute("data-dojo-attach-point")||_a.getAttribute("dojoAttachPoint")||"")+"' data-dojo-attach-event='"+(_a.getAttribute("data-dojo-attach-event")||_a.getAttribute("dojoAttachEvent")||"")+"' >"+_a.innerHTML.replace(/\%7B/g,"{").replace(/\%7D/g,"}")+"</"+_d+">";var wc=_3(this.widgetClass,this.mixins,_e);_1.forEach(_c,function(s){var evt=s.getAttribute("event")||s.getAttribute("data-dojo-event")||"postscript",_12=_5._functionFromScript(s);_2.connect(wc.prototype,evt,_12);});}});}); \ No newline at end of file
+define("dijit/Declaration",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","dojo/parser","dojo/query","./_Widget","./_TemplatedMixin","./_WidgetsInTemplateMixin","dojo/NodeList-dom"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _3("dijit.Declaration",_7,{_noScript:true,stopParser:true,widgetClass:"",defaults:null,mixins:[],buildRendering:function(){var _a=this.srcNodeRef.parentNode.removeChild(this.srcNodeRef),_b=_6("> script[type^='dojo/method']",_a).orphan(),_c=_6("> script[type^='dojo/connect']",_a).orphan(),_d=_a.nodeName;var _e=this.defaults||{};_1.forEach(_b,function(s){var _f=s.getAttribute("event")||s.getAttribute("data-dojo-event"),_10=_5._functionFromScript(s);if(_f){_e[_f]=_10;}else{_c.push(s);}});if(this.mixins.length){this.mixins=_1.map(this.mixins,function(_11){return _4.getObject(_11);});}else{this.mixins=[_7,_8,_9];}_e._skipNodeCache=true;_e.templateString="<"+_d+" class='"+_a.className+"'"+" data-dojo-attach-point='"+(_a.getAttribute("data-dojo-attach-point")||_a.getAttribute("dojoAttachPoint")||"")+"' data-dojo-attach-event='"+(_a.getAttribute("data-dojo-attach-event")||_a.getAttribute("dojoAttachEvent")||"")+"' >"+_a.innerHTML.replace(/\%7B/g,"{").replace(/\%7D/g,"}")+"</"+_d+">";var wc=_3(this.widgetClass,this.mixins,_e);_1.forEach(_c,function(s){var evt=s.getAttribute("event")||s.getAttribute("data-dojo-event")||"postscript",_12=_5._functionFromScript(s);_2.connect(wc.prototype,evt,_12);});}});}); \ No newline at end of file
diff --git a/lib/dijit/Destroyable.js b/lib/dijit/Destroyable.js
new file mode 100644
index 000000000..b58101cc7
--- /dev/null
+++ b/lib/dijit/Destroyable.js
@@ -0,0 +1,2 @@
+//>>built
+define("dijit/Destroyable",["dojo/_base/array","dojo/aspect","dojo/_base/declare"],function(_1,_2,_3){return _3("dijit.Destroyable",null,{destroy:function(_4){this._destroyed=true;},own:function(){_1.forEach(arguments,function(_5){var _6="destroyRecursive" in _5?"destroyRecursive":"destroy" in _5?"destroy":"remove";var _7=_2.before(this,"destroy",function(_8){_5[_6](_8);});var _9=_2.after(_5,_6,function(){_7.remove();_9.remove();},true);},this);return arguments;}});}); \ No newline at end of file
diff --git a/lib/dijit/Dialog.js b/lib/dijit/Dialog.js
index 919f4b551..8f1959ddf 100644
--- a/lib/dijit/Dialog.js
+++ b/lib/dijit/Dialog.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/Dialog.html":"<div class=\"dijitDialog\" role=\"dialog\" aria-labelledby=\"${id}_title\">\n\t<div data-dojo-attach-point=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span data-dojo-attach-point=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span data-dojo-attach-point=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" data-dojo-attach-event=\"ondijitclick: onCancel\" title=\"${buttonCancel}\" role=\"button\" tabIndex=\"-1\">\n\t\t<span data-dojo-attach-point=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"}});define("dijit/Dialog",["require","dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/Deferred","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/_base/fx","dojo/i18n","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/ready","dojo/_base/sniff","dojo/_base/window","dojo/window","dojo/dnd/Moveable","dojo/dnd/TimedMoveable","./focus","./_base/manager","./_Widget","./_TemplatedMixin","./_CssStateMixin","./form/_FormMixin","./_DialogMixin","./DialogUnderlay","./layout/ContentPane","dojo/text!./templates/Dialog.html",".","dojo/i18n!./nls/common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,fx,_b,_c,_d,_e,on,_f,has,win,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_1a,_1b,_1c,_1d){var _1e=_4("dijit._DialogBase",[_16,_18,_19,_17],{templateString:_1c,baseClass:"dijitDialog",cssStateNodes:{closeButtonNode:"dijitDialogCloseIcon"},_setTitleAttr:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],open:false,duration:_14.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,"aria-describedby":"",postMixInProperties:function(){var _1f=_b.getLocalization("dijit","common");_e.mixin(this,_1f);this.inherited(arguments);},postCreate:function(){_9.set(this.domNode,{display:"none",position:"absolute"});win.body().appendChild(this.domNode);this.inherited(arguments);this.connect(this,"onExecute","hide");this.connect(this,"onCancel","hide");this._modalconnects=[];},onLoad:function(){this._position();if(this.autofocus&&_20.isTop(this)){this._getFocusItems(this.domNode);_13.focus(this._firstFocusItem);}this.inherited(arguments);},_endDrag:function(){var _21=_8.position(this.domNode),_22=_10.getBox();_21.y=Math.min(Math.max(_21.y,0),(_22.h-_21.h));_21.x=Math.min(Math.max(_21.x,0),(_22.w-_21.w));this._relativePosition=_21;this._position();},_setup:function(){var _23=this.domNode;if(this.titleBar&&this.draggable){this._moveable=new ((has("ie")==6)?_12:_11)(_23,{handle:this.titleBar});this.connect(this._moveable,"onMoveStop","_endDrag");}else{_7.add(_23,"dijitDialogFixed");}this.underlayAttrs={dialogId:this.id,"class":_2.map(this["class"].split(/\s/),function(s){return s+"_underlay";}).join(" ")};},_size:function(){this._checkIfSingleChild();if(this._singleChild){if(this._singleChildOriginalStyle){this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle;}delete this._singleChildOriginalStyle;}else{_9.set(this.containerNode,{width:"auto",height:"auto"});}var bb=_8.position(this.domNode);var _24=_10.getBox();if(bb.w>=_24.w||bb.h>=_24.h){var w=Math.min(bb.w,Math.floor(_24.w*0.75)),h=Math.min(bb.h,Math.floor(_24.h*0.75));if(this._singleChild&&this._singleChild.resize){this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;this._singleChild.resize({w:w,h:h});}else{_9.set(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"});}}else{if(this._singleChild&&this._singleChild.resize){this._singleChild.resize();}}},_position:function(){if(!_7.contains(win.body(),"dojoMove")){var _25=this.domNode,_26=_10.getBox(),p=this._relativePosition,bb=p?null:_8.position(_25),l=Math.floor(_26.l+(p?p.x:(_26.w-bb.w)/2)),t=Math.floor(_26.t+(p?p.y:(_26.h-bb.h)/2));_9.set(_25,{left:l+"px",top:t+"px"});}},_onKey:function(evt){if(evt.charOrCode){var _27=evt.target;if(evt.charOrCode===_d.TAB){this._getFocusItems(this.domNode);}var _28=(this._firstFocusItem==this._lastFocusItem);if(_27==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===_d.TAB){if(!_28){_13.focus(this._lastFocusItem);}_a.stop(evt);}else{if(_27==this._lastFocusItem&&evt.charOrCode===_d.TAB&&!evt.shiftKey){if(!_28){_13.focus(this._firstFocusItem);}_a.stop(evt);}else{while(_27){if(_27==this.domNode||_7.contains(_27,"dijitPopup")){if(evt.charOrCode==_d.ESCAPE){this.onCancel();}else{return;}}_27=_27.parentNode;}if(evt.charOrCode!==_d.TAB){_a.stop(evt);}else{if(!has("opera")){try{this._firstFocusItem.focus();}catch(e){}}}}}}},show:function(){if(this.open){return;}if(!this._started){this.startup();}if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true;}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();}this._modalconnects.push(on(window,"scroll",_e.hitch(this,"layout")));this._modalconnects.push(on(window,"resize",_e.hitch(this,function(){var _29=_10.getBox();if(!this._oldViewport||_29.h!=this._oldViewport.h||_29.w!=this._oldViewport.w){this.layout();this._oldViewport=_29;}})));this._modalconnects.push(on(this.domNode,_3._keypress,_e.hitch(this,"_onKey")));_9.set(this.domNode,{opacity:0,display:""});this._set("open",true);this._onShow();this._size();this._position();var _2a;this._fadeInDeferred=new _5(_e.hitch(this,function(){_2a.stop();delete this._fadeInDeferred;}));_2a=fx.fadeIn({node:this.domNode,duration:this.duration,beforeBegin:_e.hitch(this,function(){_20.show(this,this.underlayAttrs);}),onEnd:_e.hitch(this,function(){if(this.autofocus&&_20.isTop(this)){this._getFocusItems(this.domNode);_13.focus(this._firstFocusItem);}this._fadeInDeferred.callback(true);delete this._fadeInDeferred;})}).play();return this._fadeInDeferred;},hide:function(){if(!this._alreadyInitialized){return;}if(this._fadeInDeferred){this._fadeInDeferred.cancel();}var _2b;this._fadeOutDeferred=new _5(_e.hitch(this,function(){_2b.stop();delete this._fadeOutDeferred;}));this._fadeOutDeferred.then(_e.hitch(this,"onHide"));_2b=fx.fadeOut({node:this.domNode,duration:this.duration,onEnd:_e.hitch(this,function(){this.domNode.style.display="none";_20.hide(this);this._fadeOutDeferred.callback(true);delete this._fadeOutDeferred;})}).play();if(this._scrollConnected){this._scrollConnected=false;}var h;while(h=this._modalconnects.pop()){h.remove();}if(this._relativePosition){delete this._relativePosition;}this._set("open",false);return this._fadeOutDeferred;},layout:function(){if(this.domNode.style.display!="none"){if(_1d._underlay){_1d._underlay.layout();}this._position();}},destroy:function(){if(this._fadeInDeferred){this._fadeInDeferred.cancel();}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();}if(this._moveable){this._moveable.destroy();}var h;while(h=this._modalconnects.pop()){h.remove();}_20.hide(this);this.inherited(arguments);}});var _2c=_4("dijit.Dialog",[_1b,_1e],{});_2c._DialogBase=_1e;var _20=_2c._DialogLevelManager={_beginZIndex:950,show:function(_2d,_2e){ds[ds.length-1].focus=_13.curNode;var _2f=_1d._underlay;if(!_2f||_2f._destroyed){_2f=_1d._underlay=new _1a(_2e);}else{_2f.set(_2d.underlayAttrs);}var _30=ds[ds.length-1].dialog?ds[ds.length-1].zIndex+2:_2c._DialogLevelManager._beginZIndex;if(ds.length==1){_2f.show();}_9.set(_1d._underlay.domNode,"zIndex",_30-1);_9.set(_2d.domNode,"zIndex",_30);ds.push({dialog:_2d,underlayAttrs:_2e,zIndex:_30});},hide:function(_31){if(ds[ds.length-1].dialog==_31){ds.pop();var pd=ds[ds.length-1];if(ds.length==1){if(!_1d._underlay._destroyed){_1d._underlay.hide();}}else{_9.set(_1d._underlay.domNode,"zIndex",pd.zIndex-1);_1d._underlay.set(pd.underlayAttrs);}if(_31.refocus){var _32=pd.focus;if(pd.dialog&&(!_32||!_6.isDescendant(_32,pd.dialog.domNode))){pd.dialog._getFocusItems(pd.dialog.domNode);_32=pd.dialog._firstFocusItem;}if(_32){try{_32.focus();}catch(e){}}}}else{var idx=_2.indexOf(_2.map(ds,function(_33){return _33.dialog;}),_31);if(idx!=-1){ds.splice(idx,1);}}},isTop:function(_34){return ds[ds.length-1].dialog==_34;}};var ds=_2c._dialogStack=[{dialog:null,focus:null,underlayAttrs:null}];if(!_c.isAsync){_f(0,function(){var _35=["dijit/TooltipDialog"];_1(_35);});}return _2c;}); \ No newline at end of file
+require({cache:{"url:dijit/templates/Dialog.html":"<div class=\"dijitDialog\" role=\"dialog\" aria-labelledby=\"${id}_title\">\n\t<div data-dojo-attach-point=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t\t<span data-dojo-attach-point=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"\n\t\t\t\trole=\"heading\" level=\"1\"></span>\n\t\t<span data-dojo-attach-point=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" data-dojo-attach-event=\"ondijitclick: onCancel\" title=\"${buttonCancel}\" role=\"button\" tabIndex=\"-1\">\n\t\t\t<span data-dojo-attach-point=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t\t</span>\n\t</div>\n\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"}});define("dijit/Dialog",["require","dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/Deferred","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/_base/fx","dojo/i18n","dojo/keys","dojo/_base/lang","dojo/on","dojo/ready","dojo/sniff","dojo/window","dojo/dnd/Moveable","dojo/dnd/TimedMoveable","./focus","./_base/manager","./_Widget","./_TemplatedMixin","./_CssStateMixin","./form/_FormMixin","./_DialogMixin","./DialogUnderlay","./layout/ContentPane","dojo/text!./templates/Dialog.html","./main","dojo/i18n!./nls/common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,fx,_b,_c,_d,on,_e,_f,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_1a,_1b,_1c,_1d){var _1e=_4("dijit._DialogBase",[_16,_18,_19,_17],{templateString:_1c,baseClass:"dijitDialog",cssStateNodes:{closeButtonNode:"dijitDialogCloseIcon"},_setTitleAttr:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],open:false,duration:_14.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,_setDraggableAttr:function(val){this._set("draggable",val);},"aria-describedby":"",maxRatio:0.9,postMixInProperties:function(){var _1f=_b.getLocalization("dijit","common");_d.mixin(this,_1f);this.inherited(arguments);},postCreate:function(){_9.set(this.domNode,{display:"none",position:"absolute"});this.ownerDocumentBody.appendChild(this.domNode);this.inherited(arguments);this.connect(this,"onExecute","hide");this.connect(this,"onCancel","hide");this._modalconnects=[];},onLoad:function(){this._position();if(this.autofocus&&_20.isTop(this)){this._getFocusItems(this.domNode);_13.focus(this._firstFocusItem);}this.inherited(arguments);},_onBlur:function(by){this.inherited(arguments);var _21=_d.hitch(this,function(){if(this.open&&!this._destroyed&&_20.isTop(this)){this._getFocusItems(this.domNode);_13.focus(this._firstFocusItem);}});if(by=="mouse"){on.once(this.ownerDocument,"mouseup",_21);}else{_21();}},_endDrag:function(){var _22=_8.position(this.domNode),_23=_10.getBox(this.ownerDocument);_22.y=Math.min(Math.max(_22.y,0),(_23.h-_22.h));_22.x=Math.min(Math.max(_22.x,0),(_23.w-_22.w));this._relativePosition=_22;this._position();},_setup:function(){var _24=this.domNode;if(this.titleBar&&this.draggable){this._moveable=new ((_f("ie")==6)?_12:_11)(_24,{handle:this.titleBar});this.connect(this._moveable,"onMoveStop","_endDrag");}else{_7.add(_24,"dijitDialogFixed");}this.underlayAttrs={dialogId:this.id,"class":_2.map(this["class"].split(/\s/),function(s){return s+"_underlay";}).join(" "),ownerDocument:this.ownerDocument};},_size:function(){this._checkIfSingleChild();if(this._singleChild){if(typeof this._singleChildOriginalStyle!="undefined"){this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle;delete this._singleChildOriginalStyle;}}else{_9.set(this.containerNode,{width:"auto",height:"auto"});}var bb=_8.position(this.domNode);var _25=_10.getBox(this.ownerDocument);_25.w*=this.maxRatio;_25.h*=this.maxRatio;if(bb.w>=_25.w||bb.h>=_25.h){var _26=_8.position(this.containerNode),w=Math.min(bb.w,_25.w)-(bb.w-_26.w),h=Math.min(bb.h,_25.h)-(bb.h-_26.h);if(this._singleChild&&this._singleChild.resize){if(typeof this._singleChildOriginalStyle=="undefined"){this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;}this._singleChild.resize({w:w,h:h});}else{_9.set(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"});}}else{if(this._singleChild&&this._singleChild.resize){this._singleChild.resize();}}},_position:function(){if(!_7.contains(this.ownerDocumentBody,"dojoMove")){var _27=this.domNode,_28=_10.getBox(this.ownerDocument),p=this._relativePosition,bb=p?null:_8.position(_27),l=Math.floor(_28.l+(p?p.x:(_28.w-bb.w)/2)),t=Math.floor(_28.t+(p?p.y:(_28.h-bb.h)/2));_9.set(_27,{left:l+"px",top:t+"px"});}},_onKey:function(evt){if(evt.charOrCode){var _29=evt.target;if(evt.charOrCode===_c.TAB){this._getFocusItems(this.domNode);}var _2a=(this._firstFocusItem==this._lastFocusItem);if(_29==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===_c.TAB){if(!_2a){_13.focus(this._lastFocusItem);}_a.stop(evt);}else{if(_29==this._lastFocusItem&&evt.charOrCode===_c.TAB&&!evt.shiftKey){if(!_2a){_13.focus(this._firstFocusItem);}_a.stop(evt);}else{while(_29){if(_29==this.domNode||_7.contains(_29,"dijitPopup")){if(evt.charOrCode==_c.ESCAPE){this.onCancel();}else{return;}}_29=_29.parentNode;}if(evt.charOrCode!==_c.TAB){_a.stop(evt);}else{if(!_f("opera")){try{this._firstFocusItem.focus();}catch(e){}}}}}}},show:function(){if(this.open){return;}if(!this._started){this.startup();}if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true;}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();}var win=_10.get(this.ownerDocument);this._modalconnects.push(on(win,"scroll",_d.hitch(this,"resize")));this._modalconnects.push(on(this.domNode,_3._keypress,_d.hitch(this,"_onKey")));_9.set(this.domNode,{opacity:0,display:""});this._set("open",true);this._onShow();this._size();this._position();var _2b;this._fadeInDeferred=new _5(_d.hitch(this,function(){_2b.stop();delete this._fadeInDeferred;}));_2b=fx.fadeIn({node:this.domNode,duration:this.duration,beforeBegin:_d.hitch(this,function(){_20.show(this,this.underlayAttrs);}),onEnd:_d.hitch(this,function(){if(this.autofocus&&_20.isTop(this)){this._getFocusItems(this.domNode);_13.focus(this._firstFocusItem);}this._fadeInDeferred.resolve(true);delete this._fadeInDeferred;})}).play();return this._fadeInDeferred;},hide:function(){if(!this._alreadyInitialized||!this.open){return;}if(this._fadeInDeferred){this._fadeInDeferred.cancel();}var _2c;this._fadeOutDeferred=new _5(_d.hitch(this,function(){_2c.stop();delete this._fadeOutDeferred;}));this._fadeOutDeferred.then(_d.hitch(this,"onHide"));_2c=fx.fadeOut({node:this.domNode,duration:this.duration,onEnd:_d.hitch(this,function(){this.domNode.style.display="none";_20.hide(this);this._fadeOutDeferred.resolve(true);delete this._fadeOutDeferred;})}).play();if(this._scrollConnected){this._scrollConnected=false;}var h;while(h=this._modalconnects.pop()){h.remove();}if(this._relativePosition){delete this._relativePosition;}this._set("open",false);return this._fadeOutDeferred;},resize:function(){if(this.domNode.style.display!="none"){if(_1a._singleton){_1a._singleton.layout();}this._position();this._size();}},destroy:function(){if(this._fadeInDeferred){this._fadeInDeferred.cancel();}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();}if(this._moveable){this._moveable.destroy();}var h;while(h=this._modalconnects.pop()){h.remove();}_20.hide(this);this.inherited(arguments);}});var _2d=_4("dijit.Dialog",[_1b,_1e],{});_2d._DialogBase=_1e;var _20=_2d._DialogLevelManager={_beginZIndex:950,show:function(_2e,_2f){ds[ds.length-1].focus=_13.curNode;var _30=_1a._singleton;if(!_30||_30._destroyed){_30=_1d._underlay=_1a._singleton=new _1a(_2f);}else{_30.set(_2e.underlayAttrs);}var _31=ds[ds.length-1].dialog?ds[ds.length-1].zIndex+2:_2d._DialogLevelManager._beginZIndex;if(ds.length==1){_30.show();}_9.set(_1a._singleton.domNode,"zIndex",_31-1);_9.set(_2e.domNode,"zIndex",_31);ds.push({dialog:_2e,underlayAttrs:_2f,zIndex:_31});},hide:function(_32){if(ds[ds.length-1].dialog==_32){ds.pop();var pd=ds[ds.length-1];if(!_1a._singleton._destroyed){if(ds.length==1){_1a._singleton.hide();}else{_9.set(_1a._singleton.domNode,"zIndex",pd.zIndex-1);_1a._singleton.set(pd.underlayAttrs);}}if(_32.refocus){var _33=pd.focus;if(pd.dialog&&(!_33||!_6.isDescendant(_33,pd.dialog.domNode))){pd.dialog._getFocusItems(pd.dialog.domNode);_33=pd.dialog._firstFocusItem;}if(_33){try{_33.focus();}catch(e){}}}}else{var idx=_2.indexOf(_2.map(ds,function(_34){return _34.dialog;}),_32);if(idx!=-1){ds.splice(idx,1);}}},isTop:function(_35){return ds[ds.length-1].dialog==_35;}};var ds=_2d._dialogStack=[{dialog:null,focus:null,underlayAttrs:null}];if(_f("dijit-legacy-requires")){_e(0,function(){var _36=["dijit/TooltipDialog"];_1(_36);});}return _2d;}); \ No newline at end of file
diff --git a/lib/dijit/DialogUnderlay.js b/lib/dijit/DialogUnderlay.js
index 0321e512c..d078422b4 100644
--- a/lib/dijit/DialogUnderlay.js
+++ b/lib/dijit/DialogUnderlay.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/DialogUnderlay",["dojo/_base/declare","dojo/dom-attr","dojo/_base/window","dojo/window","./_Widget","./_TemplatedMixin","./BackgroundIframe"],function(_1,_2,_3,_4,_5,_6,_7){return _1("dijit.DialogUnderlay",[_5,_6],{templateString:"<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' data-dojo-attach-point='node'></div></div>",dialogId:"","class":"",_setDialogIdAttr:function(id){_2.set(this.node,"id",id+"_underlay");this._set("dialogId",id);},_setClassAttr:function(_8){this.node.className="dijitDialogUnderlay "+_8;this._set("class",_8);},postCreate:function(){_3.body().appendChild(this.domNode);},layout:function(){var is=this.node.style,os=this.domNode.style;os.display="none";var _9=_4.getBox();os.top=_9.t+"px";os.left=_9.l+"px";is.width=_9.w+"px";is.height=_9.h+"px";os.display="block";},show:function(){this.domNode.style.display="block";this.layout();this.bgIframe=new _7(this.domNode);},hide:function(){this.bgIframe.destroy();delete this.bgIframe;this.domNode.style.display="none";}});}); \ No newline at end of file
+define("dijit/DialogUnderlay",["dojo/_base/declare","dojo/dom-attr","dojo/window","./_Widget","./_TemplatedMixin","./BackgroundIframe"],function(_1,_2,_3,_4,_5,_6){return _1("dijit.DialogUnderlay",[_4,_5],{templateString:"<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' data-dojo-attach-point='node'></div></div>",dialogId:"","class":"",_setDialogIdAttr:function(id){_2.set(this.node,"id",id+"_underlay");this._set("dialogId",id);},_setClassAttr:function(_7){this.node.className="dijitDialogUnderlay "+_7;this._set("class",_7);},postCreate:function(){this.ownerDocumentBody.appendChild(this.domNode);},layout:function(){var is=this.node.style,os=this.domNode.style;os.display="none";var _8=_3.getBox(this.ownerDocument);os.top=_8.t+"px";os.left=_8.l+"px";is.width=_8.w+"px";is.height=_8.h+"px";os.display="block";},show:function(){this.domNode.style.display="block";this.layout();this.bgIframe=new _6(this.domNode);},hide:function(){this.bgIframe.destroy();delete this.bgIframe;this.domNode.style.display="none";}});}); \ No newline at end of file
diff --git a/lib/dijit/DropDownMenu.js b/lib/dijit/DropDownMenu.js
index b58d9ae4a..dd60d3c93 100644
--- a/lib/dijit/DropDownMenu.js
+++ b/lib/dijit/DropDownMenu.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/Menu.html":"<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" role=\"menu\" tabIndex=\"${tabIndex}\" data-dojo-attach-event=\"onkeypress:_onKeyPress\" cellspacing=\"0\">\n\t<tbody class=\"dijitReset\" data-dojo-attach-point=\"containerNode\"></tbody>\n</table>\n"}});define("dijit/DropDownMenu",["dojo/_base/declare","dojo/_base/event","dojo/keys","dojo/text!./templates/Menu.html","./_OnDijitClickMixin","./_MenuBase"],function(_1,_2,_3,_4,_5,_6){return _1("dijit.DropDownMenu",[_6,_5],{templateString:_4,baseClass:"dijitMenu",postCreate:function(){var l=this.isLeftToRight();this._openSubMenuKey=l?_3.RIGHT_ARROW:_3.LEFT_ARROW;this._closeSubMenuKey=l?_3.LEFT_ARROW:_3.RIGHT_ARROW;this.connectKeyNavHandlers([_3.UP_ARROW],[_3.DOWN_ARROW]);},_onKeyPress:function(_7){if(_7.ctrlKey||_7.altKey){return;}switch(_7.charOrCode){case this._openSubMenuKey:this._moveToPopup(_7);_2.stop(_7);break;case this._closeSubMenuKey:if(this.parentMenu){if(this.parentMenu._isMenuBar){this.parentMenu.focusPrev();}else{this.onCancel(false);}}else{_2.stop(_7);}break;}}});}); \ No newline at end of file
+require({cache:{"url:dijit/templates/Menu.html":"<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" role=\"menu\" tabIndex=\"${tabIndex}\"\n\t data-dojo-attach-event=\"onkeypress:_onKeyPress\" cellspacing=\"0\">\n\t<tbody class=\"dijitReset\" data-dojo-attach-point=\"containerNode\"></tbody>\n</table>\n"}});define("dijit/DropDownMenu",["dojo/_base/declare","dojo/_base/event","dojo/keys","dojo/text!./templates/Menu.html","./_OnDijitClickMixin","./_MenuBase"],function(_1,_2,_3,_4,_5,_6){return _1("dijit.DropDownMenu",[_6,_5],{templateString:_4,baseClass:"dijitMenu",postCreate:function(){this.inherited(arguments);var l=this.isLeftToRight();this._openSubMenuKey=l?_3.RIGHT_ARROW:_3.LEFT_ARROW;this._closeSubMenuKey=l?_3.LEFT_ARROW:_3.RIGHT_ARROW;this.connectKeyNavHandlers([_3.UP_ARROW],[_3.DOWN_ARROW]);},_onKeyPress:function(_7){if(_7.ctrlKey||_7.altKey){return;}switch(_7.charOrCode){case this._openSubMenuKey:this._moveToPopup(_7);_2.stop(_7);break;case this._closeSubMenuKey:if(this.parentMenu){if(this.parentMenu._isMenuBar){this.parentMenu.focusPrev();}else{this.onCancel(false);}}else{_2.stop(_7);}break;}}});}); \ No newline at end of file
diff --git a/lib/dijit/Editor.js b/lib/dijit/Editor.js
index 8ad9b2b4a..c95c46377 100644
--- a/lib/dijit/Editor.js
+++ b/lib/dijit/Editor.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/Editor",["dojo/_base/array","dojo/_base/declare","dojo/_base/Deferred","dojo/i18n","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/_base/sniff","dojo/string","dojo/topic","dojo/_base/window","./_base/focus","./_Container","./Toolbar","./ToolbarSeparator","./layout/_LayoutWidget","./form/ToggleButton","./_editor/_Plugin","./_editor/plugins/EnterKeyHandling","./_editor/html","./_editor/range","./_editor/RichText",".","dojo/i18n!./_editor/nls/commands"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_1a,_1b){var _1c=_2("dijit.Editor",_1a,{plugins:null,extraPlugins:null,constructor:function(){if(!_b.isArray(this.plugins)){this.plugins=["undo","redo","|","cut","copy","paste","|","bold","italic","underline","strikethrough","|","insertOrderedList","insertUnorderedList","indent","outdent","|","justifyLeft","justifyRight","justifyCenter","justifyFull",_17];}this._plugins=[];this._editInterval=this.editActionInterval*1000;if(_c("ie")){this.events.push("onBeforeDeactivate");this.events.push("onBeforeActivate");}},postMixInProperties:function(){this.setValueDeferred=new _3();this.inherited(arguments);},postCreate:function(){this._steps=this._steps.slice(0);this._undoedSteps=this._undoedSteps.slice(0);if(_b.isArray(this.extraPlugins)){this.plugins=this.plugins.concat(this.extraPlugins);}this.inherited(arguments);this.commands=_4.getLocalization("dijit._editor","commands",this.lang);if(!this.toolbar){this.toolbar=new _12({dir:this.dir,lang:this.lang});this.header.appendChild(this.toolbar.domNode);}_1.forEach(this.plugins,this.addPlugin,this);this.setValueDeferred.callback(true);_6.add(this.iframe.parentNode,"dijitEditorIFrameContainer");_6.add(this.iframe,"dijitEditorIFrame");_5.set(this.iframe,"allowTransparency",true);if(_c("webkit")){_8.set(this.domNode,"KhtmlUserSelect","none");}this.toolbar.startup();this.onNormalizedDisplayChanged();},destroy:function(){_1.forEach(this._plugins,function(p){if(p&&p.destroy){p.destroy();}});this._plugins=[];this.toolbar.destroyRecursive();delete this.toolbar;this.inherited(arguments);},addPlugin:function(_1d,_1e){var _1f=_b.isString(_1d)?{name:_1d}:_b.isFunction(_1d)?{ctor:_1d}:_1d;if(!_1f.setEditor){var o={"args":_1f,"plugin":null,"editor":this};if(_1f.name){if(_16.registry[_1f.name]){o.plugin=_16.registry[_1f.name](_1f);}else{_e.publish(_1b._scopeName+".Editor.getPlugin",o);}}if(!o.plugin){var pc=_1f.ctor||_b.getObject(_1f.name);if(pc){o.plugin=new pc(_1f);}}if(!o.plugin){console.warn("Cannot find plugin",_1d);return;}_1d=o.plugin;}if(arguments.length>1){this._plugins[_1e]=_1d;}else{this._plugins.push(_1d);}_1d.setEditor(this);if(_b.isFunction(_1d.setToolbar)){_1d.setToolbar(this.toolbar);}},resize:function(_20){if(_20){_14.prototype.resize.apply(this,arguments);}},layout:function(){var _21=(this._contentBox.h-(this.getHeaderHeight()+this.getFooterHeight()+_7.getPadBorderExtents(this.iframe.parentNode).h+_7.getMarginExtents(this.iframe.parentNode).h));this.editingArea.style.height=_21+"px";if(this.iframe){this.iframe.style.height="100%";}this._layoutMode=true;},_onIEMouseDown:function(e){var _22;var b=this.document.body;var _23=b.clientWidth;var _24=b.clientHeight;var _25=b.clientLeft;var _26=b.offsetWidth;var _27=b.offsetHeight;var _28=b.offsetLeft;if(/^rtl$/i.test(b.dir||"")){if(_23<_26&&e.x>_23&&e.x<_26){_22=true;}}else{if(e.x<_25&&e.x>_28){_22=true;}}if(!_22){if(_24<_27&&e.y>_24&&e.y<_27){_22=true;}}if(!_22){delete this._cursorToStart;delete this._savedSelection;if(e.target.tagName=="BODY"){setTimeout(_b.hitch(this,"placeCursorAtEnd"),0);}this.inherited(arguments);}},onBeforeActivate:function(){this._restoreSelection();},onBeforeDeactivate:function(e){if(this.customUndo){this.endEditing(true);}if(e.target.tagName!="BODY"){this._saveSelection();}},customUndo:true,editActionInterval:3,beginEditing:function(cmd){if(!this._inEditing){this._inEditing=true;this._beginEditing(cmd);}if(this.editActionInterval>0){if(this._editTimer){clearTimeout(this._editTimer);}this._editTimer=setTimeout(_b.hitch(this,this.endEditing),this._editInterval);}},_steps:[],_undoedSteps:[],execCommand:function(cmd){if(this.customUndo&&(cmd=="undo"||cmd=="redo")){return this[cmd]();}else{if(this.customUndo){this.endEditing();this._beginEditing();}var r=this.inherited(arguments);if(this.customUndo){this._endEditing();}return r;}},_pasteImpl:function(){return this._clipboardCommand("paste");},_cutImpl:function(){return this._clipboardCommand("cut");},_copyImpl:function(){return this._clipboardCommand("copy");},_clipboardCommand:function(cmd){var r;try{r=this.document.execCommand(cmd,false,null);if(_c("webkit")&&!r){throw {code:1011};}}catch(e){if(e.code==1011){var sub=_d.substitute,_29={cut:"X",copy:"C",paste:"V"};alert(sub(this.commands.systemShortcut,[this.commands[cmd],sub(this.commands[_c("mac")?"appleKey":"ctrlKey"],[_29[cmd]])]));}r=false;}return r;},queryCommandEnabled:function(cmd){if(this.customUndo&&(cmd=="undo"||cmd=="redo")){return cmd=="undo"?(this._steps.length>1):(this._undoedSteps.length>0);}else{return this.inherited(arguments);}},_moveToBookmark:function(b){var _2a=b.mark;var _2b=b.mark;var col=b.isCollapsed;var r,_2c,_2d,sel;if(_2b){if(_c("ie")<9){if(_b.isArray(_2b)){_2a=[];_1.forEach(_2b,function(n){_2a.push(_19.getNode(n,this.editNode));},this);_f.withGlobal(this.window,"moveToBookmark",_1b,[{mark:_2a,isCollapsed:col}]);}else{if(_2b.startContainer&&_2b.endContainer){sel=_19.getSelection(this.window);if(sel&&sel.removeAllRanges){sel.removeAllRanges();r=_19.create(this.window);_2c=_19.getNode(_2b.startContainer,this.editNode);_2d=_19.getNode(_2b.endContainer,this.editNode);if(_2c&&_2d){r.setStart(_2c,_2b.startOffset);r.setEnd(_2d,_2b.endOffset);sel.addRange(r);}}}}}else{sel=_19.getSelection(this.window);if(sel&&sel.removeAllRanges){sel.removeAllRanges();r=_19.create(this.window);_2c=_19.getNode(_2b.startContainer,this.editNode);_2d=_19.getNode(_2b.endContainer,this.editNode);if(_2c&&_2d){r.setStart(_2c,_2b.startOffset);r.setEnd(_2d,_2b.endOffset);sel.addRange(r);}}}}},_changeToStep:function(_2e,to){this.setValue(to.text);var b=to.bookmark;if(!b){return;}this._moveToBookmark(b);},undo:function(){var ret=false;if(!this._undoRedoActive){this._undoRedoActive=true;this.endEditing(true);var s=this._steps.pop();if(s&&this._steps.length>0){this.focus();this._changeToStep(s,this._steps[this._steps.length-1]);this._undoedSteps.push(s);this.onDisplayChanged();delete this._undoRedoActive;ret=true;}delete this._undoRedoActive;}return ret;},redo:function(){var ret=false;if(!this._undoRedoActive){this._undoRedoActive=true;this.endEditing(true);var s=this._undoedSteps.pop();if(s&&this._steps.length>0){this.focus();this._changeToStep(this._steps[this._steps.length-1],s);this._steps.push(s);this.onDisplayChanged();ret=true;}delete this._undoRedoActive;}return ret;},endEditing:function(_2f){if(this._editTimer){clearTimeout(this._editTimer);}if(this._inEditing){this._endEditing(_2f);this._inEditing=false;}},_getBookmark:function(){var b=_f.withGlobal(this.window,_10.getBookmark);var tmp=[];if(b&&b.mark){var _30=b.mark;if(_c("ie")<9){var sel=_19.getSelection(this.window);if(!_b.isArray(_30)){if(sel){var _31;if(sel.rangeCount){_31=sel.getRangeAt(0);}if(_31){b.mark=_31.cloneRange();}else{b.mark=_f.withGlobal(this.window,_10.getBookmark);}}}else{_1.forEach(b.mark,function(n){tmp.push(_19.getIndex(n,this.editNode).o);},this);b.mark=tmp;}}try{if(b.mark&&b.mark.startContainer){tmp=_19.getIndex(b.mark.startContainer,this.editNode).o;b.mark={startContainer:tmp,startOffset:b.mark.startOffset,endContainer:b.mark.endContainer===b.mark.startContainer?tmp:_19.getIndex(b.mark.endContainer,this.editNode).o,endOffset:b.mark.endOffset};}}catch(e){b.mark=null;}}return b;},_beginEditing:function(){if(this._steps.length===0){this._steps.push({"text":_18.getChildrenHtml(this.editNode),"bookmark":this._getBookmark()});}},_endEditing:function(){var v=_18.getChildrenHtml(this.editNode);this._undoedSteps=[];this._steps.push({text:v,bookmark:this._getBookmark()});},onKeyDown:function(e){if(!_c("ie")&&!this.iframe&&e.keyCode==_a.TAB&&!this.tabIndent){this._saveSelection();}if(!this.customUndo){this.inherited(arguments);return;}var k=e.keyCode;if(e.ctrlKey&&!e.altKey){if(k==90||k==122){_9.stop(e);this.undo();return;}else{if(k==89||k==121){_9.stop(e);this.redo();return;}}}this.inherited(arguments);switch(k){case _a.ENTER:case _a.BACKSPACE:case _a.DELETE:this.beginEditing();break;case 88:case 86:if(e.ctrlKey&&!e.altKey&&!e.metaKey){this.endEditing();if(e.keyCode==88){this.beginEditing("cut");setTimeout(_b.hitch(this,this.endEditing),1);}else{this.beginEditing("paste");setTimeout(_b.hitch(this,this.endEditing),1);}break;}default:if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&(e.keyCode<_a.F1||e.keyCode>_a.F15)){this.beginEditing();break;}case _a.ALT:this.endEditing();break;case _a.UP_ARROW:case _a.DOWN_ARROW:case _a.LEFT_ARROW:case _a.RIGHT_ARROW:case _a.HOME:case _a.END:case _a.PAGE_UP:case _a.PAGE_DOWN:this.endEditing(true);break;case _a.CTRL:case _a.SHIFT:case _a.TAB:break;}},_onBlur:function(){this.inherited(arguments);this.endEditing(true);},_saveSelection:function(){try{this._savedSelection=this._getBookmark();}catch(e){}},_restoreSelection:function(){if(this._savedSelection){delete this._cursorToStart;if(_f.withGlobal(this.window,"isCollapsed",_1b)){this._moveToBookmark(this._savedSelection);}delete this._savedSelection;}},onClick:function(){this.endEditing(true);this.inherited(arguments);},replaceValue:function(_32){if(!this.customUndo){this.inherited(arguments);}else{if(this.isClosed){this.setValue(_32);}else{this.beginEditing();if(!_32){_32="&#160;";}this.setValue(_32);this.endEditing();}}},_setDisabledAttr:function(_33){var _34=_b.hitch(this,function(){if((!this.disabled&&_33)||(!this._buttonEnabledPlugins&&_33)){_1.forEach(this._plugins,function(p){p.set("disabled",true);});}else{if(this.disabled&&!_33){_1.forEach(this._plugins,function(p){p.set("disabled",false);});}}});this.setValueDeferred.addCallback(_34);this.inherited(arguments);},_setStateClass:function(){try{this.inherited(arguments);if(this.document&&this.document.body){_8.set(this.document.body,"color",_8.get(this.iframe,"color"));}}catch(e){}}});function _35(_36){return new _16({command:_36.name});};function _37(_38){return new _16({buttonClass:_15,command:_38.name});};_b.mixin(_16.registry,{"undo":_35,"redo":_35,"cut":_35,"copy":_35,"paste":_35,"insertOrderedList":_35,"insertUnorderedList":_35,"indent":_35,"outdent":_35,"justifyCenter":_35,"justifyFull":_35,"justifyLeft":_35,"justifyRight":_35,"delete":_35,"selectAll":_35,"removeFormat":_35,"unlink":_35,"insertHorizontalRule":_35,"bold":_37,"italic":_37,"underline":_37,"strikethrough":_37,"subscript":_37,"superscript":_37,"|":function(){return new _16({button:new _13(),setEditor:function(_39){this.editor=_39;}});}});return _1c;}); \ No newline at end of file
+define("dijit/Editor",["require","dojo/_base/array","dojo/_base/declare","dojo/_base/Deferred","dojo/i18n","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/string","dojo/topic","dojo/_base/window","./_base/focus","./_Container","./Toolbar","./ToolbarSeparator","./layout/_LayoutWidget","./form/ToggleButton","./_editor/_Plugin","./_editor/plugins/EnterKeyHandling","./_editor/html","./_editor/range","./_editor/RichText","./main","dojo/i18n!./_editor/nls/commands"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,win,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_1a,_1b){var _1c=_3("dijit.Editor",_1a,{plugins:null,extraPlugins:null,constructor:function(){if(!_c.isArray(this.plugins)){this.plugins=["undo","redo","|","cut","copy","paste","|","bold","italic","underline","strikethrough","|","insertOrderedList","insertUnorderedList","indent","outdent","|","justifyLeft","justifyRight","justifyCenter","justifyFull",_17];}this._plugins=[];this._editInterval=this.editActionInterval*1000;if(_d("ie")){this.events.push("onBeforeDeactivate");this.events.push("onBeforeActivate");}},postMixInProperties:function(){this.setValueDeferred=new _4();this.inherited(arguments);},postCreate:function(){this._steps=this._steps.slice(0);this._undoedSteps=this._undoedSteps.slice(0);if(_c.isArray(this.extraPlugins)){this.plugins=this.plugins.concat(this.extraPlugins);}this.inherited(arguments);this.commands=_5.getLocalization("dijit._editor","commands",this.lang);if(!this.toolbar){this.toolbar=new _12({ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang});this.header.appendChild(this.toolbar.domNode);}_2.forEach(this.plugins,this.addPlugin,this);this.setValueDeferred.resolve(true);_7.add(this.iframe.parentNode,"dijitEditorIFrameContainer");_7.add(this.iframe,"dijitEditorIFrame");_6.set(this.iframe,"allowTransparency",true);if(_d("webkit")){_9.set(this.domNode,"KhtmlUserSelect","none");}this.toolbar.startup();this.onNormalizedDisplayChanged();},destroy:function(){_2.forEach(this._plugins,function(p){if(p&&p.destroy){p.destroy();}});this._plugins=[];this.toolbar.destroyRecursive();delete this.toolbar;this.inherited(arguments);},addPlugin:function(_1d,_1e){var _1f=_c.isString(_1d)?{name:_1d}:_c.isFunction(_1d)?{ctor:_1d}:_1d;if(!_1f.setEditor){var o={"args":_1f,"plugin":null,"editor":this};if(_1f.name){if(_16.registry[_1f.name]){o.plugin=_16.registry[_1f.name](_1f);}else{_f.publish(_1b._scopeName+".Editor.getPlugin",o);}}if(!o.plugin){try{var pc=_1f.ctor||_c.getObject(_1f.name)||_1(_1f.name);if(pc){o.plugin=new pc(_1f);}}catch(e){throw new Error(this.id+": cannot find plugin ["+_1f.name+"]");}}if(!o.plugin){throw new Error(this.id+": cannot find plugin ["+_1f.name+"]");}_1d=o.plugin;}if(arguments.length>1){this._plugins[_1e]=_1d;}else{this._plugins.push(_1d);}_1d.setEditor(this);if(_c.isFunction(_1d.setToolbar)){_1d.setToolbar(this.toolbar);}},resize:function(_20){if(_20){_14.prototype.resize.apply(this,arguments);}},layout:function(){var _21=(this._contentBox.h-(this.getHeaderHeight()+this.getFooterHeight()+_8.getPadBorderExtents(this.iframe.parentNode).h+_8.getMarginExtents(this.iframe.parentNode).h));this.editingArea.style.height=_21+"px";if(this.iframe){this.iframe.style.height="100%";}this._layoutMode=true;},_onIEMouseDown:function(e){var _22;var b=this.document.body;var _23=b.clientWidth;var _24=b.clientHeight;var _25=b.clientLeft;var _26=b.offsetWidth;var _27=b.offsetHeight;var _28=b.offsetLeft;if(/^rtl$/i.test(b.dir||"")){if(_23<_26&&e.x>_23&&e.x<_26){_22=true;}}else{if(e.x<_25&&e.x>_28){_22=true;}}if(!_22){if(_24<_27&&e.y>_24&&e.y<_27){_22=true;}}if(!_22){delete this._cursorToStart;delete this._savedSelection;if(e.target.tagName=="BODY"){this.defer("placeCursorAtEnd");}this.inherited(arguments);}},onBeforeActivate:function(){this._restoreSelection();},onBeforeDeactivate:function(e){if(this.customUndo){this.endEditing(true);}if(e.target.tagName!="BODY"){this._saveSelection();}},customUndo:true,editActionInterval:3,beginEditing:function(cmd){if(!this._inEditing){this._inEditing=true;this._beginEditing(cmd);}if(this.editActionInterval>0){if(this._editTimer){this._editTimer.remove();}this._editTimer=this.defer("endEditing",this._editInterval);}},_steps:[],_undoedSteps:[],execCommand:function(cmd){if(this.customUndo&&(cmd=="undo"||cmd=="redo")){return this[cmd]();}else{if(this.customUndo){this.endEditing();this._beginEditing();}var r=this.inherited(arguments);if(this.customUndo){this._endEditing();}return r;}},_pasteImpl:function(){return this._clipboardCommand("paste");},_cutImpl:function(){return this._clipboardCommand("cut");},_copyImpl:function(){return this._clipboardCommand("copy");},_clipboardCommand:function(cmd){var r;try{r=this.document.execCommand(cmd,false,null);if(_d("webkit")&&!r){throw {code:1011};}}catch(e){if(e.code==1011||(e.code==9&&_d("opera"))){var sub=_e.substitute,_29={cut:"X",copy:"C",paste:"V"};alert(sub(this.commands.systemShortcut,[this.commands[cmd],sub(this.commands[_d("mac")?"appleKey":"ctrlKey"],[_29[cmd]])]));}r=false;}return r;},queryCommandEnabled:function(cmd){if(this.customUndo&&(cmd=="undo"||cmd=="redo")){return cmd=="undo"?(this._steps.length>1):(this._undoedSteps.length>0);}else{return this.inherited(arguments);}},_moveToBookmark:function(b){var _2a=b.mark;var _2b=b.mark;var col=b.isCollapsed;var r,_2c,_2d,sel;if(_2b){if(_d("ie")<9){if(_c.isArray(_2b)){_2a=[];_2.forEach(_2b,function(n){_2a.push(_19.getNode(n,this.editNode));},this);win.withGlobal(this.window,"moveToBookmark",_10,[{mark:_2a,isCollapsed:col}]);}else{if(_2b.startContainer&&_2b.endContainer){sel=_19.getSelection(this.window);if(sel&&sel.removeAllRanges){sel.removeAllRanges();r=_19.create(this.window);_2c=_19.getNode(_2b.startContainer,this.editNode);_2d=_19.getNode(_2b.endContainer,this.editNode);if(_2c&&_2d){r.setStart(_2c,_2b.startOffset);r.setEnd(_2d,_2b.endOffset);sel.addRange(r);}}}}}else{sel=_19.getSelection(this.window);if(sel&&sel.removeAllRanges){sel.removeAllRanges();r=_19.create(this.window);_2c=_19.getNode(_2b.startContainer,this.editNode);_2d=_19.getNode(_2b.endContainer,this.editNode);if(_2c&&_2d){r.setStart(_2c,_2b.startOffset);r.setEnd(_2d,_2b.endOffset);sel.addRange(r);}}}}},_changeToStep:function(_2e,to){this.setValue(to.text);var b=to.bookmark;if(!b){return;}this._moveToBookmark(b);},undo:function(){var ret=false;if(!this._undoRedoActive){this._undoRedoActive=true;this.endEditing(true);var s=this._steps.pop();if(s&&this._steps.length>0){this.focus();this._changeToStep(s,this._steps[this._steps.length-1]);this._undoedSteps.push(s);this.onDisplayChanged();delete this._undoRedoActive;ret=true;}delete this._undoRedoActive;}return ret;},redo:function(){var ret=false;if(!this._undoRedoActive){this._undoRedoActive=true;this.endEditing(true);var s=this._undoedSteps.pop();if(s&&this._steps.length>0){this.focus();this._changeToStep(this._steps[this._steps.length-1],s);this._steps.push(s);this.onDisplayChanged();ret=true;}delete this._undoRedoActive;}return ret;},endEditing:function(_2f){if(this._editTimer){this._editTimer=this._editTimer.remove();}if(this._inEditing){this._endEditing(_2f);this._inEditing=false;}},_getBookmark:function(){var b=win.withGlobal(this.window,_10.getBookmark);var tmp=[];if(b&&b.mark){var _30=b.mark;if(_d("ie")<9){var sel=_19.getSelection(this.window);if(!_c.isArray(_30)){if(sel){var _31;if(sel.rangeCount){_31=sel.getRangeAt(0);}if(_31){b.mark=_31.cloneRange();}else{b.mark=win.withGlobal(this.window,_10.getBookmark);}}}else{_2.forEach(b.mark,function(n){tmp.push(_19.getIndex(n,this.editNode).o);},this);b.mark=tmp;}}try{if(b.mark&&b.mark.startContainer){tmp=_19.getIndex(b.mark.startContainer,this.editNode).o;b.mark={startContainer:tmp,startOffset:b.mark.startOffset,endContainer:b.mark.endContainer===b.mark.startContainer?tmp:_19.getIndex(b.mark.endContainer,this.editNode).o,endOffset:b.mark.endOffset};}}catch(e){b.mark=null;}}return b;},_beginEditing:function(){if(this._steps.length===0){this._steps.push({"text":_18.getChildrenHtml(this.editNode),"bookmark":this._getBookmark()});}},_endEditing:function(){var v=_18.getChildrenHtml(this.editNode);this._undoedSteps=[];this._steps.push({text:v,bookmark:this._getBookmark()});},onKeyDown:function(e){if(!_d("ie")&&!this.iframe&&e.keyCode==_b.TAB&&!this.tabIndent){this._saveSelection();}if(!this.customUndo){this.inherited(arguments);return;}var k=e.keyCode;if(e.ctrlKey&&!e.altKey){if(k==90||k==122){_a.stop(e);this.undo();return;}else{if(k==89||k==121){_a.stop(e);this.redo();return;}}}this.inherited(arguments);switch(k){case _b.ENTER:case _b.BACKSPACE:case _b.DELETE:this.beginEditing();break;case 88:case 86:if(e.ctrlKey&&!e.altKey&&!e.metaKey){this.endEditing();if(e.keyCode==88){this.beginEditing("cut");}else{this.beginEditing("paste");}this.defer("endEditing",1);break;}default:if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&(e.keyCode<_b.F1||e.keyCode>_b.F15)){this.beginEditing();break;}case _b.ALT:this.endEditing();break;case _b.UP_ARROW:case _b.DOWN_ARROW:case _b.LEFT_ARROW:case _b.RIGHT_ARROW:case _b.HOME:case _b.END:case _b.PAGE_UP:case _b.PAGE_DOWN:this.endEditing(true);break;case _b.CTRL:case _b.SHIFT:case _b.TAB:break;}},_onBlur:function(){this.inherited(arguments);this.endEditing(true);},_saveSelection:function(){try{this._savedSelection=this._getBookmark();}catch(e){}},_restoreSelection:function(){if(this._savedSelection){delete this._cursorToStart;if(win.withGlobal(this.window,"isCollapsed",_10)){this._moveToBookmark(this._savedSelection);}delete this._savedSelection;}},onClick:function(){this.endEditing(true);this.inherited(arguments);},replaceValue:function(_32){if(!this.customUndo){this.inherited(arguments);}else{if(this.isClosed){this.setValue(_32);}else{this.beginEditing();if(!_32){_32="&#160;";}this.setValue(_32);this.endEditing();}}},_setDisabledAttr:function(_33){this.setValueDeferred.then(_c.hitch(this,function(){if((!this.disabled&&_33)||(!this._buttonEnabledPlugins&&_33)){_2.forEach(this._plugins,function(p){p.set("disabled",true);});}else{if(this.disabled&&!_33){_2.forEach(this._plugins,function(p){p.set("disabled",false);});}}}));this.inherited(arguments);},_setStateClass:function(){try{this.inherited(arguments);if(this.document&&this.document.body){_9.set(this.document.body,"color",_9.get(this.iframe,"color"));}}catch(e){}}});function _34(_35){return new _16({command:_35.name});};function _36(_37){return new _16({buttonClass:_15,command:_37.name});};_c.mixin(_16.registry,{"undo":_34,"redo":_34,"cut":_34,"copy":_34,"paste":_34,"insertOrderedList":_34,"insertUnorderedList":_34,"indent":_34,"outdent":_34,"justifyCenter":_34,"justifyFull":_34,"justifyLeft":_34,"justifyRight":_34,"delete":_34,"selectAll":_34,"removeFormat":_34,"unlink":_34,"insertHorizontalRule":_34,"bold":_36,"italic":_36,"underline":_36,"strikethrough":_36,"subscript":_36,"superscript":_36,"|":function(){return new _16({setEditor:function(_38){this.editor=_38;this.button=new _13({ownerDocument:_38.ownerDocument});}});}});return _1c;}); \ No newline at end of file
diff --git a/lib/dijit/InlineEditBox.js b/lib/dijit/InlineEditBox.js
index 58f842efb..1034989d5 100644
--- a/lib/dijit/InlineEditBox.js
+++ b/lib/dijit/InlineEditBox.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/InlineEditBox.html":"<span data-dojo-attach-point=\"editNode\" role=\"presentation\" style=\"position: absolute; visibility:hidden\" class=\"dijitReset dijitInline\"\n\tdata-dojo-attach-event=\"onkeypress: _onKeyPress\"\n\t><span data-dojo-attach-point=\"editorPlaceholder\"></span\n\t><span data-dojo-attach-point=\"buttonContainer\"\n\t\t><button data-dojo-type=\"dijit.form.Button\" data-dojo-props=\"label: '${buttonSave}', 'class': 'saveButton'\"\n\t\t\tdata-dojo-attach-point=\"saveButton\" data-dojo-attach-event=\"onClick:save\"></button\n\t\t><button data-dojo-type=\"dijit.form.Button\" data-dojo-props=\"label: '${buttonCancel}', 'class': 'cancelButton'\"\n\t\t\tdata-dojo-attach-point=\"cancelButton\" data-dojo-attach-event=\"onClick:cancel\"></button\n\t></span\n></span>\n"}});define("dijit/InlineEditBox",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/_base/event","dojo/i18n","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/_base/sniff","./focus","./_Widget","./_TemplatedMixin","./_WidgetsInTemplateMixin","./_Container","./form/Button","./form/_TextBoxMixin","./form/TextBox","dojo/text!./templates/InlineEditBox.html","dojo/i18n!./nls/common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,fm,_d,_e,_f,_10,_11,_12,_13,_14){var _15=_2("dijit._InlineEditor",[_d,_e,_f],{templateString:_14,postMixInProperties:function(){this.inherited(arguments);this.messages=_8.getLocalization("dijit","common",this.lang);_1.forEach(["buttonSave","buttonCancel"],function(_16){if(!this[_16]){this[_16]=this.messages[_16];}},this);},buildRendering:function(){this.inherited(arguments);var cls=typeof this.editor=="string"?_b.getObject(this.editor):this.editor;var _17=this.sourceStyle,_18="line-height:"+_17.lineHeight+";",_19=_6.getComputedStyle(this.domNode);_1.forEach(["Weight","Family","Size","Style"],function(_1a){var _1b=_17["font"+_1a],_1c=_19["font"+_1a];if(_1c!=_1b){_18+="font-"+_1a+":"+_17["font"+_1a]+";";}},this);_1.forEach(["marginTop","marginBottom","marginLeft","marginRight"],function(_1d){this.domNode.style[_1d]=_17[_1d];},this);var _1e=this.inlineEditBox.width;if(_1e=="100%"){_18+="width:100%;";this.domNode.style.display="block";}else{_18+="width:"+(_1e+(Number(_1e)==_1e?"px":""))+";";}var _1f=_b.delegate(this.inlineEditBox.editorParams,{style:_18,dir:this.dir,lang:this.lang,textDir:this.textDir});_1f["displayedValue" in cls.prototype?"displayedValue":"value"]=this.value;this.editWidget=new cls(_1f,this.editorPlaceholder);if(this.inlineEditBox.autoSave){_5.destroy(this.buttonContainer);}},postCreate:function(){this.inherited(arguments);var ew=this.editWidget;if(this.inlineEditBox.autoSave){this.connect(ew,"onChange","_onChange");this.connect(ew,"onKeyPress","_onKeyPress");}else{if("intermediateChanges" in ew){ew.set("intermediateChanges",true);this.connect(ew,"onChange","_onIntermediateChange");this.saveButton.set("disabled",true);}}},_onIntermediateChange:function(){this.saveButton.set("disabled",(this.getValue()==this._resetValue)||!this.enableSave());},destroy:function(){this.editWidget.destroy(true);this.inherited(arguments);},getValue:function(){var ew=this.editWidget;return String(ew.get("displayedValue" in ew?"displayedValue":"value"));},_onKeyPress:function(e){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(e.altKey||e.ctrlKey){return;}if(e.charOrCode==_a.ESCAPE){_7.stop(e);this.cancel(true);}else{if(e.charOrCode==_a.ENTER&&e.target.tagName=="INPUT"){_7.stop(e);this._onChange();}}}},_onBlur:function(){this.inherited(arguments);if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(this.getValue()==this._resetValue){this.cancel(false);}else{if(this.enableSave()){this.save(false);}}}},_onChange:function(){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing&&this.enableSave()){fm.focus(this.inlineEditBox.displayNode);}},enableSave:function(){return (this.editWidget.isValid?this.editWidget.isValid():true);},focus:function(){this.editWidget.focus();setTimeout(_b.hitch(this,function(){if(this.editWidget.focusNode&&this.editWidget.focusNode.tagName=="INPUT"){_12.selectInputText(this.editWidget.focusNode);}}),0);}});var _20=_2("dijit.InlineEditBox",_d,{editing:false,autoSave:true,buttonSave:"",buttonCancel:"",renderAsHtml:false,editor:_13,editorWrapper:_15,editorParams:{},disabled:false,onChange:function(){},onCancel:function(){},width:"100%",value:"",noValueIndicator:_c("ie")<=6?"<span style='font-family: wingdings; text-decoration: underline;'>&#160;&#160;&#160;&#160;&#x270d;&#160;&#160;&#160;&#160;</span>":"<span style='text-decoration: underline;'>&#160;&#160;&#160;&#160;&#x270d;&#160;&#160;&#160;&#160;</span>",constructor:function(){this.editorParams={};},postMixInProperties:function(){this.inherited(arguments);this.displayNode=this.srcNodeRef;var _21={ondijitclick:"_onClick",onmouseover:"_onMouseOver",onmouseout:"_onMouseOut",onfocus:"_onMouseOver",onblur:"_onMouseOut"};for(var _22 in _21){this.connect(this.displayNode,_22,_21[_22]);}this.displayNode.setAttribute("role","button");if(!this.displayNode.getAttribute("tabIndex")){this.displayNode.setAttribute("tabIndex",0);}if(!this.value&&!("value" in this.params)){this.value=_b.trim(this.renderAsHtml?this.displayNode.innerHTML:(this.displayNode.innerText||this.displayNode.textContent||""));}if(!this.value){this.displayNode.innerHTML=this.noValueIndicator;}_4.add(this.displayNode,"dijitInlineEditBoxDisplayMode");},setDisabled:function(_23){_9.deprecated("dijit.InlineEditBox.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_23);},_setDisabledAttr:function(_24){this.domNode.setAttribute("aria-disabled",_24);if(_24){this.displayNode.removeAttribute("tabIndex");}else{this.displayNode.setAttribute("tabIndex",0);}_4.toggle(this.displayNode,"dijitInlineEditBoxDisplayModeDisabled",_24);this._set("disabled",_24);},_onMouseOver:function(){if(!this.disabled){_4.add(this.displayNode,"dijitInlineEditBoxDisplayModeHover");}},_onMouseOut:function(){_4.remove(this.displayNode,"dijitInlineEditBoxDisplayModeHover");},_onClick:function(e){if(this.disabled){return;}if(e){_7.stop(e);}this._onMouseOut();setTimeout(_b.hitch(this,"edit"),0);},edit:function(){if(this.disabled||this.editing){return;}this._set("editing",true);this._savedPosition=_6.get(this.displayNode,"position")||"static";this._savedOpacity=_6.get(this.displayNode,"opacity")||"1";this._savedTabIndex=_3.get(this.displayNode,"tabIndex")||"0";if(this.wrapperWidget){var ew=this.wrapperWidget.editWidget;ew.set("displayedValue" in ew?"displayedValue":"value",this.value);}else{var _25=_5.create("span",null,this.domNode,"before");var ewc=typeof this.editorWrapper=="string"?_b.getObject(this.editorWrapper):this.editorWrapper;this.wrapperWidget=new ewc({value:this.value,buttonSave:this.buttonSave,buttonCancel:this.buttonCancel,dir:this.dir,lang:this.lang,tabIndex:this._savedTabIndex,editor:this.editor,inlineEditBox:this,sourceStyle:_6.getComputedStyle(this.displayNode),save:_b.hitch(this,"save"),cancel:_b.hitch(this,"cancel"),textDir:this.textDir},_25);if(!this._started){this.startup();}}var ww=this.wrapperWidget;_6.set(this.displayNode,{position:"absolute",opacity:"0"});_6.set(ww.domNode,{position:this._savedPosition,visibility:"visible",opacity:"1"});_3.set(this.displayNode,"tabIndex","-1");setTimeout(_b.hitch(ww,function(){this.focus();this._resetValue=this.getValue();}),0);},_onBlur:function(){this.inherited(arguments);if(!this.editing){}},destroy:function(){if(this.wrapperWidget&&!this.wrapperWidget._destroyed){this.wrapperWidget.destroy();delete this.wrapperWidget;}this.inherited(arguments);},_showText:function(_26){var ww=this.wrapperWidget;_6.set(ww.domNode,{position:"absolute",visibility:"hidden",opacity:"0"});_6.set(this.displayNode,{position:this._savedPosition,opacity:this._savedOpacity});_3.set(this.displayNode,"tabIndex",this._savedTabIndex);if(_26){fm.focus(this.displayNode);}},save:function(_27){if(this.disabled||!this.editing){return;}this._set("editing",false);var ww=this.wrapperWidget;var _28=ww.getValue();this.set("value",_28);this._showText(_27);},setValue:function(val){_9.deprecated("dijit.InlineEditBox.setValue() is deprecated. Use set('value', ...) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(val){val=_b.trim(val);var _29=this.renderAsHtml?val:val.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;").replace(/\n/g,"<br>");this.displayNode.innerHTML=_29||this.noValueIndicator;this._set("value",val);if(this._started){setTimeout(_b.hitch(this,"onChange",val),0);}if(this.textDir=="auto"){this.applyTextDir(this.displayNode,this.displayNode.innerText);}},getValue:function(){_9.deprecated("dijit.InlineEditBox.getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},cancel:function(_2a){if(this.disabled||!this.editing){return;}this._set("editing",false);setTimeout(_b.hitch(this,"onCancel"),0);this._showText(_2a);},_setTextDirAttr:function(_2b){if(!this._created||this.textDir!=_2b){this._set("textDir",_2b);this.applyTextDir(this.displayNode,this.displayNode.innerText);this.displayNode.align=this.dir=="rtl"?"right":"left";}}});_20._InlineEditor=_15;return _20;}); \ No newline at end of file
+require({cache:{"url:dijit/templates/InlineEditBox.html":"<span data-dojo-attach-point=\"editNode\" role=\"presentation\" class=\"dijitReset dijitInline dijitOffScreen\"\n\tdata-dojo-attach-event=\"onkeypress: _onKeyPress\"\n\t><span data-dojo-attach-point=\"editorPlaceholder\"></span\n\t><span data-dojo-attach-point=\"buttonContainer\"\n\t\t><button data-dojo-type=\"dijit/form/Button\" data-dojo-props=\"label: '${buttonSave}', 'class': 'saveButton'\"\n\t\t\tdata-dojo-attach-point=\"saveButton\" data-dojo-attach-event=\"onClick:save\"></button\n\t\t><button data-dojo-type=\"dijit/form/Button\" data-dojo-props=\"label: '${buttonCancel}', 'class': 'cancelButton'\"\n\t\t\tdata-dojo-attach-point=\"cancelButton\" data-dojo-attach-event=\"onClick:cancel\"></button\n\t></span\n></span>\n"}});define("dijit/InlineEditBox",["require","dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/_base/event","dojo/i18n","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/when","./focus","./_Widget","./_TemplatedMixin","./_WidgetsInTemplateMixin","./_Container","./form/Button","./form/_TextBoxMixin","./form/TextBox","dojo/text!./templates/InlineEditBox.html","dojo/i18n!./nls/common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,fm,_f,_10,_11,_12,_13,_14,_15,_16){var _17=_3("dijit._InlineEditor",[_f,_10,_11],{templateString:_16,postMixInProperties:function(){this.inherited(arguments);this.messages=_9.getLocalization("dijit","common",this.lang);_2.forEach(["buttonSave","buttonCancel"],function(_18){if(!this[_18]){this[_18]=this.messages[_18];}},this);},buildRendering:function(){this.inherited(arguments);var Cls=typeof this.editor=="string"?(_c.getObject(this.editor)||_1(this.editor)):this.editor;var _19=this.sourceStyle,_1a="line-height:"+_19.lineHeight+";",_1b=_7.getComputedStyle(this.domNode);_2.forEach(["Weight","Family","Size","Style"],function(_1c){var _1d=_19["font"+_1c],_1e=_1b["font"+_1c];if(_1e!=_1d){_1a+="font-"+_1c+":"+_19["font"+_1c]+";";}},this);_2.forEach(["marginTop","marginBottom","marginLeft","marginRight","position","left","top","right","bottom","float","clear","display"],function(_1f){this.domNode.style[_1f]=_19[_1f];},this);var _20=this.inlineEditBox.width;if(_20=="100%"){_1a+="width:100%;";this.domNode.style.display="block";}else{_1a+="width:"+(_20+(Number(_20)==_20?"px":""))+";";}var _21=_c.delegate(this.inlineEditBox.editorParams,{style:_1a,dir:this.dir,lang:this.lang,textDir:this.textDir});_21["displayedValue" in Cls.prototype?"displayedValue":"value"]=this.value;this.editWidget=new Cls(_21,this.editorPlaceholder);if(this.inlineEditBox.autoSave){_6.destroy(this.buttonContainer);}},postCreate:function(){this.inherited(arguments);var ew=this.editWidget;if(this.inlineEditBox.autoSave){this.connect(ew,"onChange","_onChange");this.connect(ew,"onKeyPress","_onKeyPress");}else{if("intermediateChanges" in ew){ew.set("intermediateChanges",true);this.connect(ew,"onChange","_onIntermediateChange");this.saveButton.set("disabled",true);}}},startup:function(){this.editWidget.startup();this.inherited(arguments);},_onIntermediateChange:function(){this.saveButton.set("disabled",(this.getValue()==this._resetValue)||!this.enableSave());},destroy:function(){this.editWidget.destroy(true);this.inherited(arguments);},getValue:function(){var ew=this.editWidget;return String(ew.get("displayedValue" in ew?"displayedValue":"value"));},_onKeyPress:function(e){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(e.altKey||e.ctrlKey){return;}if(e.charOrCode==_b.ESCAPE){_8.stop(e);this.cancel(true);}else{if(e.charOrCode==_b.ENTER&&e.target.tagName=="INPUT"){_8.stop(e);this._onChange();}}}},_onBlur:function(){this.inherited(arguments);if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(this.getValue()==this._resetValue){this.cancel(false);}else{if(this.enableSave()){this.save(false);}}}},_onChange:function(){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing&&this.enableSave()){fm.focus(this.inlineEditBox.displayNode);}},enableSave:function(){return this.editWidget.isValid?this.editWidget.isValid():true;},focus:function(){this.editWidget.focus();if(this.editWidget.focusNode){fm._onFocusNode(this.editWidget.focusNode);if(this.editWidget.focusNode.tagName=="INPUT"){this.defer(function(){_14.selectInputText(this.editWidget.focusNode);});}}}});var _22=_3("dijit.InlineEditBox",_f,{editing:false,autoSave:true,buttonSave:"",buttonCancel:"",renderAsHtml:false,editor:_15,editorWrapper:_17,editorParams:{},disabled:false,onChange:function(){},onCancel:function(){},width:"100%",value:"",noValueIndicator:_d("ie")<=6?"<span style='font-family: wingdings; text-decoration: underline;'>&#160;&#160;&#160;&#160;&#x270d;&#160;&#160;&#160;&#160;</span>":"<span style='text-decoration: underline;'>&#160;&#160;&#160;&#160;&#x270d;&#160;&#160;&#160;&#160;</span>",constructor:function(){this.editorParams={};},postMixInProperties:function(){this.inherited(arguments);this.displayNode=this.srcNodeRef;var _23={ondijitclick:"_onClick",onmouseover:"_onMouseOver",onmouseout:"_onMouseOut",onfocus:"_onMouseOver",onblur:"_onMouseOut"};for(var _24 in _23){this.connect(this.displayNode,_24,_23[_24]);}this.displayNode.setAttribute("role","button");if(!this.displayNode.getAttribute("tabIndex")){this.displayNode.setAttribute("tabIndex",0);}if(!this.value&&!("value" in this.params)){this.value=_c.trim(this.renderAsHtml?this.displayNode.innerHTML:(this.displayNode.innerText||this.displayNode.textContent||""));}if(!this.value){this.displayNode.innerHTML=this.noValueIndicator;}_5.add(this.displayNode,"dijitInlineEditBoxDisplayMode");},setDisabled:function(_25){_a.deprecated("dijit.InlineEditBox.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_25);},_setDisabledAttr:function(_26){this.domNode.setAttribute("aria-disabled",_26?"true":"false");if(_26){this.displayNode.removeAttribute("tabIndex");}else{this.displayNode.setAttribute("tabIndex",0);}_5.toggle(this.displayNode,"dijitInlineEditBoxDisplayModeDisabled",_26);this._set("disabled",_26);},_onMouseOver:function(){if(!this.disabled){_5.add(this.displayNode,"dijitInlineEditBoxDisplayModeHover");}},_onMouseOut:function(){_5.remove(this.displayNode,"dijitInlineEditBoxDisplayModeHover");},_onClick:function(e){if(this.disabled){return;}if(e){_8.stop(e);}this._onMouseOut();this.defer("edit");},edit:function(){if(this.disabled||this.editing){return;}this._set("editing",true);this._savedTabIndex=_4.get(this.displayNode,"tabIndex")||"0";if(this.wrapperWidget){var ew=this.wrapperWidget.editWidget;ew.set("displayedValue" in ew?"displayedValue":"value",this.value);}else{var _27=_6.create("span",null,this.domNode,"before");var Ewc=typeof this.editorWrapper=="string"?_c.getObject(this.editorWrapper):this.editorWrapper;this.wrapperWidget=new Ewc({value:this.value,buttonSave:this.buttonSave,buttonCancel:this.buttonCancel,dir:this.dir,lang:this.lang,tabIndex:this._savedTabIndex,editor:this.editor,inlineEditBox:this,sourceStyle:_7.getComputedStyle(this.displayNode),save:_c.hitch(this,"save"),cancel:_c.hitch(this,"cancel"),textDir:this.textDir},_27);if(!this.wrapperWidget._started){this.wrapperWidget.startup();}if(!this._started){this.startup();}}var ww=this.wrapperWidget;_5.add(this.displayNode,"dijitOffScreen");_5.remove(ww.domNode,"dijitOffScreen");_7.set(ww.domNode,{visibility:"visible"});_4.set(this.displayNode,"tabIndex","-1");_e(ww.editWidget.onLoadDeferred,_c.hitch(ww,function(){this.defer(function(){this.focus();this._resetValue=this.getValue();});}));},_onBlur:function(){this.inherited(arguments);if(!this.editing){}},destroy:function(){if(this.wrapperWidget&&!this.wrapperWidget._destroyed){this.wrapperWidget.destroy();delete this.wrapperWidget;}this.inherited(arguments);},_showText:function(_28){var ww=this.wrapperWidget;_7.set(ww.domNode,{visibility:"hidden"});_5.add(ww.domNode,"dijitOffScreen");_5.remove(this.displayNode,"dijitOffScreen");_4.set(this.displayNode,"tabIndex",this._savedTabIndex);if(_28){fm.focus(this.displayNode);}},save:function(_29){if(this.disabled||!this.editing){return;}this._set("editing",false);var ww=this.wrapperWidget;var _2a=ww.getValue();this.set("value",_2a);this._showText(_29);},setValue:function(val){_a.deprecated("dijit.InlineEditBox.setValue() is deprecated. Use set('value', ...) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(val){val=_c.trim(val);var _2b=this.renderAsHtml?val:val.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;").replace(/\n/g,"<br>");this.displayNode.innerHTML=_2b||this.noValueIndicator;this._set("value",val);if(this._started){this.defer(function(){this.onChange(val);});}if(this.textDir=="auto"){this.applyTextDir(this.displayNode,this.displayNode.innerText);}},getValue:function(){_a.deprecated("dijit.InlineEditBox.getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},cancel:function(_2c){if(this.disabled||!this.editing){return;}this._set("editing",false);this.defer("onCancel");this._showText(_2c);},_setTextDirAttr:function(_2d){if(!this._created||this.textDir!=_2d){this._set("textDir",_2d);this.applyTextDir(this.displayNode,this.displayNode.innerText);this.displayNode.align=this.dir=="rtl"?"right":"left";}}});_22._InlineEditor=_17;return _22;}); \ No newline at end of file
diff --git a/lib/dijit/LICENSE b/lib/dijit/LICENSE
index aa6b39f8c..483ea9b52 100644
--- a/lib/dijit/LICENSE
+++ b/lib/dijit/LICENSE
@@ -13,7 +13,7 @@ The text of the AFL and BSD licenses is reproduced below.
The "New" BSD License:
**********************
-Copyright (c) 2005-2011, The Dojo Foundation
+Copyright (c) 2005-2012, The Dojo Foundation
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/lib/dijit/Menu.js b/lib/dijit/Menu.js
index a576da5c3..8e9ade0e9 100644
--- a/lib/dijit/Menu.js
+++ b/lib/dijit/Menu.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/Menu",["require","dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/dom","dojo/dom-attr","dojo/dom-geometry","dojo/dom-style","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/_base/sniff","dojo/_base/window","dojo/window","./popup","./DropDownMenu","dojo/ready"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,on,_c,_d,_e,pm,_f,_10){if(!_9.isAsync){_10(0,function(){var _11=["dijit/MenuItem","dijit/PopupMenuItem","dijit/CheckedMenuItem","dijit/MenuSeparator"];_1(_11);});}return _3("dijit.Menu",_f,{constructor:function(){this._bindings=[];},targetNodeIds:[],contextMenuForWindow:false,leftClickToOpen:false,refocus:true,postCreate:function(){if(this.contextMenuForWindow){this.bindDomNode(_d.body());}else{_2.forEach(this.targetNodeIds,this.bindDomNode,this);}this.inherited(arguments);},_iframeContentWindow:function(_12){return _e.get(this._iframeContentDocument(_12))||this._iframeContentDocument(_12)["__parent__"]||(_12.name&&_d.doc.frames[_12.name])||null;},_iframeContentDocument:function(_13){return _13.contentDocument||(_13.contentWindow&&_13.contentWindow.document)||(_13.name&&_d.doc.frames[_13.name]&&_d.doc.frames[_13.name].document)||null;},bindDomNode:function(_14){_14=_5.byId(_14);var cn;if(_14.tagName.toLowerCase()=="iframe"){var _15=_14,_16=this._iframeContentWindow(_15);cn=_d.withGlobal(_16,_d.body);}else{cn=(_14==_d.body()?_d.doc.documentElement:_14);}var _17={node:_14,iframe:_15};_6.set(_14,"_dijitMenu"+this.id,this._bindings.push(_17));var _18=_b.hitch(this,function(cn){return [on(cn,this.leftClickToOpen?"click":"contextmenu",_b.hitch(this,function(evt){_4.stop(evt);this._scheduleOpen(evt.target,_15,{x:evt.pageX,y:evt.pageY});})),on(cn,"keydown",_b.hitch(this,function(evt){if(evt.shiftKey&&evt.keyCode==_a.F10){_4.stop(evt);this._scheduleOpen(evt.target,_15);}}))];});_17.connects=cn?_18(cn):[];if(_15){_17.onloadHandler=_b.hitch(this,function(){var _19=this._iframeContentWindow(_15);cn=_d.withGlobal(_19,_d.body);_17.connects=_18(cn);});if(_15.addEventListener){_15.addEventListener("load",_17.onloadHandler,false);}else{_15.attachEvent("onload",_17.onloadHandler);}}},unBindDomNode:function(_1a){var _1b;try{_1b=_5.byId(_1a);}catch(e){return;}var _1c="_dijitMenu"+this.id;if(_1b&&_6.has(_1b,_1c)){var bid=_6.get(_1b,_1c)-1,b=this._bindings[bid],h;while(h=b.connects.pop()){h.remove();}var _1d=b.iframe;if(_1d){if(_1d.removeEventListener){_1d.removeEventListener("load",b.onloadHandler,false);}else{_1d.detachEvent("onload",b.onloadHandler);}}_6.remove(_1b,_1c);delete this._bindings[bid];}},_scheduleOpen:function(_1e,_1f,_20){if(!this._openTimer){this._openTimer=setTimeout(_b.hitch(this,function(){delete this._openTimer;this._openMyself({target:_1e,iframe:_1f,coords:_20});}),1);}},_openMyself:function(_21){var _22=_21.target,_23=_21.iframe,_24=_21.coords;if(_24){if(_23){var ifc=_7.position(_23,true),_25=this._iframeContentWindow(_23),_26=_d.withGlobal(_25,"_docScroll",dojo);var cs=_8.getComputedStyle(_23),tp=_8.toPixelValue,_27=(_c("ie")&&_c("quirks")?0:tp(_23,cs.paddingLeft))+(_c("ie")&&_c("quirks")?tp(_23,cs.borderLeftWidth):0),top=(_c("ie")&&_c("quirks")?0:tp(_23,cs.paddingTop))+(_c("ie")&&_c("quirks")?tp(_23,cs.borderTopWidth):0);_24.x+=ifc.x+_27-_26.x;_24.y+=ifc.y+top-_26.y;}}else{_24=_7.position(_22,true);_24.x+=10;_24.y+=10;}var _28=this;var _29=this._focusManager.get("prevNode");var _2a=this._focusManager.get("curNode");var _2b=!_2a||(_5.isDescendant(_2a,this.domNode))?_29:_2a;function _2c(){if(_28.refocus&&_2b){_2b.focus();}pm.close(_28);};pm.open({popup:this,x:_24.x,y:_24.y,onExecute:_2c,onCancel:_2c,orient:this.isLeftToRight()?"L":"R"});this.focus();this._onBlur=function(){this.inherited("_onBlur",arguments);pm.close(this);};},uninitialize:function(){_2.forEach(this._bindings,function(b){if(b){this.unBindDomNode(b.node);}},this);this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/Menu",["require","dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/dom","dojo/dom-attr","dojo/dom-geometry","dojo/dom-style","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","dojo/_base/window","dojo/window","./popup","./DropDownMenu","dojo/ready"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,on,_b,_c,_d,pm,_e,_f){if(_b("dijit-legacy-requires")){_f(0,function(){var _10=["dijit/MenuItem","dijit/PopupMenuItem","dijit/CheckedMenuItem","dijit/MenuSeparator"];_1(_10);});}return _3("dijit.Menu",_e,{constructor:function(){this._bindings=[];},targetNodeIds:[],selector:"",contextMenuForWindow:false,leftClickToOpen:false,refocus:true,postCreate:function(){if(this.contextMenuForWindow){this.bindDomNode(this.ownerDocumentBody);}else{_2.forEach(this.targetNodeIds,this.bindDomNode,this);}this.inherited(arguments);},_iframeContentWindow:function(_11){return _d.get(this._iframeContentDocument(_11))||this._iframeContentDocument(_11)["__parent__"]||(_11.name&&_c.doc.frames[_11.name])||null;},_iframeContentDocument:function(_12){return _12.contentDocument||(_12.contentWindow&&_12.contentWindow.document)||(_12.name&&_c.doc.frames[_12.name]&&_c.doc.frames[_12.name].document)||null;},bindDomNode:function(_13){_13=_5.byId(_13,this.ownerDocument);var cn;if(_13.tagName.toLowerCase()=="iframe"){var _14=_13,_15=this._iframeContentWindow(_14);cn=_c.body(_15.document);}else{cn=(_13==_c.body(this.ownerDocument)?this.ownerDocument.documentElement:_13);}var _16={node:_13,iframe:_14};_6.set(_13,"_dijitMenu"+this.id,this._bindings.push(_16));var _17=_a.hitch(this,function(cn){var _18=this.selector,_19=_18?function(_1a){return on.selector(_18,_1a);}:function(_1b){return _1b;},_1c=this;return [on(cn,_19(this.leftClickToOpen?"click":"contextmenu"),function(evt){_4.stop(evt);_1c._scheduleOpen(this,_14,{x:evt.pageX,y:evt.pageY});}),on(cn,_19("keydown"),function(evt){if(evt.shiftKey&&evt.keyCode==_9.F10){_4.stop(evt);_1c._scheduleOpen(this,_14);}})];});_16.connects=cn?_17(cn):[];if(_14){_16.onloadHandler=_a.hitch(this,function(){var _1d=this._iframeContentWindow(_14);cn=_c.body(_1d.document);_16.connects=_17(cn);});if(_14.addEventListener){_14.addEventListener("load",_16.onloadHandler,false);}else{_14.attachEvent("onload",_16.onloadHandler);}}},unBindDomNode:function(_1e){var _1f;try{_1f=_5.byId(_1e,this.ownerDocument);}catch(e){return;}var _20="_dijitMenu"+this.id;if(_1f&&_6.has(_1f,_20)){var bid=_6.get(_1f,_20)-1,b=this._bindings[bid],h;while((h=b.connects.pop())){h.remove();}var _21=b.iframe;if(_21){if(_21.removeEventListener){_21.removeEventListener("load",b.onloadHandler,false);}else{_21.detachEvent("onload",b.onloadHandler);}}_6.remove(_1f,_20);delete this._bindings[bid];}},_scheduleOpen:function(_22,_23,_24){if(!this._openTimer){this._openTimer=this.defer(function(){delete this._openTimer;this._openMyself({target:_22,iframe:_23,coords:_24});},1);}},_openMyself:function(_25){var _26=_25.target,_27=_25.iframe,_28=_25.coords;this.currentTarget=_26;if(_28){if(_27){var ifc=_7.position(_27,true),_29=this._iframeContentWindow(_27),_2a=_7.docScroll(_29.document);var cs=_8.getComputedStyle(_27),tp=_8.toPixelValue,_2b=(_b("ie")&&_b("quirks")?0:tp(_27,cs.paddingLeft))+(_b("ie")&&_b("quirks")?tp(_27,cs.borderLeftWidth):0),top=(_b("ie")&&_b("quirks")?0:tp(_27,cs.paddingTop))+(_b("ie")&&_b("quirks")?tp(_27,cs.borderTopWidth):0);_28.x+=ifc.x+_2b-_2a.x;_28.y+=ifc.y+top-_2a.y;}}else{_28=_7.position(_26,true);_28.x+=10;_28.y+=10;}var _2c=this;var _2d=this._focusManager.get("prevNode");var _2e=this._focusManager.get("curNode");var _2f=!_2e||(_5.isDescendant(_2e,this.domNode))?_2d:_2e;function _30(){if(_2c.refocus&&_2f){_2f.focus();}pm.close(_2c);};pm.open({popup:this,x:_28.x,y:_28.y,onExecute:_30,onCancel:_30,orient:this.isLeftToRight()?"L":"R"});this.focus();this._onBlur=function(){this.inherited("_onBlur",arguments);pm.close(this);};},destroy:function(){_2.forEach(this._bindings,function(b){if(b){this.unBindDomNode(b.node);}},this);this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/MenuBar.js b/lib/dijit/MenuBar.js
index b6a1dfebe..8483d34db 100644
--- a/lib/dijit/MenuBar.js
+++ b/lib/dijit/MenuBar.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/MenuBar.html":"<div class=\"dijitMenuBar dijitMenuPassive\" data-dojo-attach-point=\"containerNode\" role=\"menubar\" tabIndex=\"${tabIndex}\" data-dojo-attach-event=\"onkeypress: _onKeyPress\"></div>\n"}});define("dijit/MenuBar",["dojo/_base/declare","dojo/_base/event","dojo/keys","./_MenuBase","dojo/text!./templates/MenuBar.html"],function(_1,_2,_3,_4,_5){return _1("dijit.MenuBar",_4,{templateString:_5,baseClass:"dijitMenuBar",_isMenuBar:true,postCreate:function(){var l=this.isLeftToRight();this.connectKeyNavHandlers(l?[_3.LEFT_ARROW]:[_3.RIGHT_ARROW],l?[_3.RIGHT_ARROW]:[_3.LEFT_ARROW]);this._orient=["below"];},focusChild:function(_6){var _7=this.focusedChild,_8=_7&&_7.popup&&_7.popup.isShowingNow;this.inherited(arguments);if(_8&&_6.popup&&!_6.disabled){this._openPopup();}},_onKeyPress:function(_9){if(_9.ctrlKey||_9.altKey){return;}switch(_9.charOrCode){case _3.DOWN_ARROW:this._moveToPopup(_9);_2.stop(_9);}},onItemClick:function(_a,_b){if(_a.popup&&_a.popup.isShowingNow){_a.popup.onCancel();}else{this.inherited(arguments);}}});}); \ No newline at end of file
+require({cache:{"url:dijit/templates/MenuBar.html":"<div class=\"dijitMenuBar dijitMenuPassive\" data-dojo-attach-point=\"containerNode\" role=\"menubar\" tabIndex=\"${tabIndex}\" data-dojo-attach-event=\"onkeypress: _onKeyPress\"></div>\n"}});define("dijit/MenuBar",["dojo/_base/declare","dojo/_base/event","dojo/keys","./_MenuBase","dojo/text!./templates/MenuBar.html"],function(_1,_2,_3,_4,_5){return _1("dijit.MenuBar",_4,{templateString:_5,baseClass:"dijitMenuBar",_isMenuBar:true,postCreate:function(){this.inherited(arguments);var l=this.isLeftToRight();this.connectKeyNavHandlers(l?[_3.LEFT_ARROW]:[_3.RIGHT_ARROW],l?[_3.RIGHT_ARROW]:[_3.LEFT_ARROW]);this._orient=["below"];},_moveToPopup:function(_6){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.onItemClick(this.focusedChild,_6);}},focusChild:function(_7){var _8=this.focusedChild,_9=_8&&_8.popup&&_8.popup.isShowingNow;this.inherited(arguments);if(_9&&_7.popup&&!_7.disabled){this._openPopup(true);}},_onKeyPress:function(_a){if(_a.ctrlKey||_a.altKey){return;}switch(_a.charOrCode){case _3.DOWN_ARROW:this._moveToPopup(_a);_2.stop(_a);}},onItemClick:function(_b,_c){if(_b.popup&&_b.popup.isShowingNow&&(_c.type!=="keypress"||_c.keyCode!==_3.DOWN_ARROW)){_b.popup.onCancel();}else{this.inherited(arguments);}}});}); \ No newline at end of file
diff --git a/lib/dijit/MenuBarItem.js b/lib/dijit/MenuBarItem.js
index 27038e623..dc4e451c1 100644
--- a/lib/dijit/MenuBarItem.js
+++ b/lib/dijit/MenuBarItem.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/MenuBarItem.html":"<div class=\"dijitReset dijitInline dijitMenuItem dijitMenuItemLabel\" data-dojo-attach-point=\"focusNode\" role=\"menuitem\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-event=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<span data-dojo-attach-point=\"containerNode\"></span>\n</div>\n"}});define("dijit/MenuBarItem",["dojo/_base/declare","./MenuItem","dojo/text!./templates/MenuBarItem.html"],function(_1,_2,_3){var _4=_1("dijit._MenuBarItemMixin",null,{templateString:_3,_setIconClassAttr:null});var _5=_1("dijit.MenuBarItem",[_2,_4],{});_5._MenuBarItemMixin=_4;return _5;}); \ No newline at end of file
+require({cache:{"url:dijit/templates/MenuBarItem.html":"<div class=\"dijitReset dijitInline dijitMenuItem dijitMenuItemLabel\" data-dojo-attach-point=\"focusNode\"\n\t \trole=\"menuitem\" tabIndex=\"-1\">\n\t<span data-dojo-attach-point=\"containerNode\"></span>\n</div>\n"}});define("dijit/MenuBarItem",["dojo/_base/declare","./MenuItem","dojo/text!./templates/MenuBarItem.html"],function(_1,_2,_3){var _4=_1("dijit._MenuBarItemMixin",null,{templateString:_3,_setIconClassAttr:null});var _5=_1("dijit.MenuBarItem",[_2,_4],{});_5._MenuBarItemMixin=_4;return _5;}); \ No newline at end of file
diff --git a/lib/dijit/MenuItem.js b/lib/dijit/MenuItem.js
index d68ed0557..ffc1999f1 100644
--- a/lib/dijit/MenuItem.js
+++ b/lib/dijit/MenuItem.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/MenuItem.html":"<tr class=\"dijitReset dijitMenuItem\" data-dojo-attach-point=\"focusNode\" role=\"menuitem\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-event=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">\n\t\t<div data-dojo-attach-point=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"}});define("dijit/MenuItem",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/event","dojo/_base/kernel","dojo/_base/sniff","./_Widget","./_TemplatedMixin","./_Contained","./_CssStateMixin","dojo/text!./templates/MenuItem.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){return _1("dijit.MenuItem",[_8,_9,_a,_b],{templateString:_c,baseClass:"dijitMenuItem",label:"",_setLabelAttr:{node:"containerNode",type:"innerHTML"},iconClass:"dijitNoIcon",_setIconClassAttr:{node:"iconNode",type:"class"},accelKey:"",disabled:false,_fillContent:function(_d){if(_d&&!("label" in this.params)){this.set("label",_d.innerHTML);}},buildRendering:function(){this.inherited(arguments);var _e=this.id+"_text";_3.set(this.containerNode,"id",_e);if(this.accelKeyNode){_3.set(this.accelKeyNode,"id",this.id+"_accel");_e+=" "+this.id+"_accel";}this.domNode.setAttribute("aria-labelledby",_e);_2.setSelectable(this.domNode,false);},_onHover:function(){this.getParent().onItemHover(this);},_onUnhover:function(){this.getParent().onItemUnhover(this);this._set("hovering",false);},_onClick:function(_f){this.getParent().onItemClick(this,_f);_5.stop(_f);},onClick:function(){},focus:function(){try{if(_7("ie")==8){this.containerNode.focus();}this.focusNode.focus();}catch(e){}},_onFocus:function(){this._setSelected(true);this.getParent()._onItemFocus(this);this.inherited(arguments);},_setSelected:function(_10){_4.toggle(this.domNode,"dijitMenuItemSelected",_10);},setLabel:function(_11){_6.deprecated("dijit.MenuItem.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_11);},setDisabled:function(_12){_6.deprecated("dijit.Menu.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_12);},_setDisabledAttr:function(_13){this.focusNode.setAttribute("aria-disabled",_13?"true":"false");this._set("disabled",_13);},_setAccelKeyAttr:function(_14){this.accelKeyNode.style.display=_14?"":"none";this.accelKeyNode.innerHTML=_14;_3.set(this.containerNode,"colSpan",_14?"1":"2");this._set("accelKey",_14);}});}); \ No newline at end of file
+require({cache:{"url:dijit/templates/MenuItem.html":"<tr class=\"dijitReset dijitMenuItem\" data-dojo-attach-point=\"focusNode\" role=\"menuitem\" tabIndex=\"-1\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">\n\t\t<div data-dojo-attach-point=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"}});define("dijit/MenuItem",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/kernel","dojo/sniff","./_Widget","./_TemplatedMixin","./_Contained","./_CssStateMixin","dojo/text!./templates/MenuItem.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){return _1("dijit.MenuItem",[_7,_8,_9,_a],{templateString:_b,baseClass:"dijitMenuItem",label:"",_setLabelAttr:function(_c){this.containerNode.innerHTML=_c;this._set("label",_c);if(this.textDir==="auto"){this.applyTextDir(this.focusNode,this.label);}},iconClass:"dijitNoIcon",_setIconClassAttr:{node:"iconNode",type:"class"},accelKey:"",disabled:false,_fillContent:function(_d){if(_d&&!("label" in this.params)){this.set("label",_d.innerHTML);}},buildRendering:function(){this.inherited(arguments);var _e=this.id+"_text";_3.set(this.containerNode,"id",_e);if(this.accelKeyNode){_3.set(this.accelKeyNode,"id",this.id+"_accel");_e+=" "+this.id+"_accel";}this.domNode.setAttribute("aria-labelledby",_e);_2.setSelectable(this.domNode,false);},onClick:function(){},focus:function(){try{if(_6("ie")==8){this.containerNode.focus();}this.focusNode.focus();}catch(e){}},_onFocus:function(){this._setSelected(true);this.getParent()._onItemFocus(this);this.inherited(arguments);},_setSelected:function(_f){_4.toggle(this.domNode,"dijitMenuItemSelected",_f);},setLabel:function(_10){_5.deprecated("dijit.MenuItem.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_10);},setDisabled:function(_11){_5.deprecated("dijit.Menu.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_11);},_setDisabledAttr:function(_12){this.focusNode.setAttribute("aria-disabled",_12?"true":"false");this._set("disabled",_12);},_setAccelKeyAttr:function(_13){this.accelKeyNode.style.display=_13?"":"none";this.accelKeyNode.innerHTML=_13;_3.set(this.containerNode,"colSpan",_13?"1":"2");this._set("accelKey",_13);},_setTextDirAttr:function(_14){if(!this._created||this.textDir!=_14){this._set("textDir",_14);this.applyTextDir(this.focusNode,this.label);}}});}); \ No newline at end of file
diff --git a/lib/dijit/PopupMenuItem.js b/lib/dijit/PopupMenuItem.js
index 296da1a2e..665fa5b94 100644
--- a/lib/dijit/PopupMenuItem.js
+++ b/lib/dijit/PopupMenuItem.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/PopupMenuItem",["dojo/_base/declare","dojo/dom-style","dojo/query","dojo/_base/window","./registry","./MenuItem","./hccss"],function(_1,_2,_3,_4,_5,_6){return _1("dijit.PopupMenuItem",_6,{_fillContent:function(){if(this.srcNodeRef){var _7=_3("*",this.srcNodeRef);this.inherited(arguments,[_7[0]]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}this.inherited(arguments);if(!this.popup){var _8=_3("[widgetId]",this.dropDownContainer)[0];this.popup=_5.byNode(_8);}_4.body().appendChild(this.popup.domNode);this.popup.startup();this.popup.domNode.style.display="none";if(this.arrowWrapper){_2.set(this.arrowWrapper,"visibility","");}this.focusNode.setAttribute("aria-haspopup","true");},destroyDescendants:function(_9){if(this.popup){if(!this.popup._destroyed){this.popup.destroyRecursive(_9);}delete this.popup;}this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/PopupMenuItem",["dojo/_base/declare","dojo/dom-style","dojo/query","./registry","./MenuItem","./hccss"],function(_1,_2,_3,_4,_5){return _1("dijit.PopupMenuItem",_5,{_fillContent:function(){if(this.srcNodeRef){var _6=_3("*",this.srcNodeRef);this.inherited(arguments,[_6[0]]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}this.inherited(arguments);if(!this.popup){var _7=_3("[widgetId]",this.dropDownContainer)[0];this.popup=_4.byNode(_7);}this.ownerDocumentBody.appendChild(this.popup.domNode);this.popup.startup();this.popup.domNode.style.display="none";if(this.arrowWrapper){_2.set(this.arrowWrapper,"visibility","");}this.focusNode.setAttribute("aria-haspopup","true");},destroyDescendants:function(_8){if(this.popup){if(!this.popup._destroyed){this.popup.destroyRecursive(_8);}delete this.popup;}this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/ProgressBar.js b/lib/dijit/ProgressBar.js
index ff60e1da1..3f5f77339 100644
--- a/lib/dijit/ProgressBar.js
+++ b/lib/dijit/ProgressBar.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/ProgressBar.html":"<div class=\"dijitProgressBar dijitProgressBarEmpty\" role=\"progressbar\"\n\t><div data-dojo-attach-point=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\" role=\"presentation\"></div\n\t\t><span style=\"visibility:hidden\">&#160;</span\n\t></div\n\t><div data-dojo-attach-point=\"labelNode\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"></div\n\t><img data-dojo-attach-point=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"}});define("dijit/ProgressBar",["require","dojo/_base/declare","dojo/dom-class","dojo/_base/lang","dojo/number","./_Widget","./_TemplatedMixin","dojo/text!./templates/ProgressBar.html"],function(_1,_2,_3,_4,_5,_6,_7,_8){return _2("dijit.ProgressBar",[_6,_7],{progress:"0",value:"",maximum:100,places:0,indeterminate:false,label:"",name:"",templateString:_8,_indeterminateHighContrastImagePath:_1.toUrl("./themes/a11y/indeterminate_progress.gif"),postMixInProperties:function(){this.inherited(arguments);if(!("value" in this.params)){this.value=this.indeterminate?Infinity:this.progress;}},buildRendering:function(){this.inherited(arguments);this.indeterminateHighContrastImage.setAttribute("src",this._indeterminateHighContrastImagePath.toString());this.update();},update:function(_9){_4.mixin(this,_9||{});var _a=this.internalProgress,ap=this.domNode;var _b=1;if(this.indeterminate){ap.removeAttribute("aria-valuenow");ap.removeAttribute("aria-valuemin");ap.removeAttribute("aria-valuemax");}else{if(String(this.progress).indexOf("%")!=-1){_b=Math.min(parseFloat(this.progress)/100,1);this.progress=_b*this.maximum;}else{this.progress=Math.min(this.progress,this.maximum);_b=this.maximum?this.progress/this.maximum:0;}ap.setAttribute("aria-describedby",this.labelNode.id);ap.setAttribute("aria-valuenow",this.progress);ap.setAttribute("aria-valuemin",0);ap.setAttribute("aria-valuemax",this.maximum);}this.labelNode.innerHTML=this.report(_b);_3.toggle(this.domNode,"dijitProgressBarIndeterminate",this.indeterminate);_a.style.width=(_b*100)+"%";this.onChange();},_setValueAttr:function(v){this._set("value",v);if(v==Infinity){this.update({indeterminate:true});}else{this.update({indeterminate:false,progress:v});}},_setLabelAttr:function(_c){this._set("label",_c);this.update();},_setIndeterminateAttr:function(_d){this.indeterminate=_d;this.update();},report:function(_e){return this.label?this.label:(this.indeterminate?"&#160;":_5.format(_e,{type:"percent",places:this.places,locale:this.lang}));},onChange:function(){}});}); \ No newline at end of file
+require({cache:{"url:dijit/templates/ProgressBar.html":"<div class=\"dijitProgressBar dijitProgressBarEmpty\" role=\"progressbar\"\n\t><div data-dojo-attach-point=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\" role=\"presentation\"></div\n\t\t><span style=\"visibility:hidden\">&#160;</span\n\t></div\n\t><div data-dojo-attach-point=\"labelNode\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"></div\n\t><img data-dojo-attach-point=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"}});define("dijit/ProgressBar",["require","dojo/_base/declare","dojo/dom-class","dojo/_base/lang","dojo/number","./_Widget","./_TemplatedMixin","dojo/text!./templates/ProgressBar.html"],function(_1,_2,_3,_4,_5,_6,_7,_8){return _2("dijit.ProgressBar",[_6,_7],{progress:"0",value:"",maximum:100,places:0,indeterminate:false,label:"",name:"",templateString:_8,_indeterminateHighContrastImagePath:_1.toUrl("./themes/a11y/indeterminate_progress.gif"),postMixInProperties:function(){this.inherited(arguments);if(!(this.params&&"value" in this.params)){this.value=this.indeterminate?Infinity:this.progress;}},buildRendering:function(){this.inherited(arguments);this.indeterminateHighContrastImage.setAttribute("src",this._indeterminateHighContrastImagePath.toString());this.update();},update:function(_9){_4.mixin(this,_9||{});var _a=this.internalProgress,ap=this.domNode;var _b=1;if(this.indeterminate){ap.removeAttribute("aria-valuenow");}else{if(String(this.progress).indexOf("%")!=-1){_b=Math.min(parseFloat(this.progress)/100,1);this.progress=_b*this.maximum;}else{this.progress=Math.min(this.progress,this.maximum);_b=this.maximum?this.progress/this.maximum:0;}ap.setAttribute("aria-valuenow",this.progress);}ap.setAttribute("aria-describedby",this.labelNode.id);ap.setAttribute("aria-valuemin",0);ap.setAttribute("aria-valuemax",this.maximum);this.labelNode.innerHTML=this.report(_b);_3.toggle(this.domNode,"dijitProgressBarIndeterminate",this.indeterminate);_a.style.width=(_b*100)+"%";this.onChange();},_setValueAttr:function(v){this._set("value",v);if(v==Infinity){this.update({indeterminate:true});}else{this.update({indeterminate:false,progress:v});}},_setLabelAttr:function(_c){this._set("label",_c);this.update();},_setIndeterminateAttr:function(_d){this.indeterminate=_d;this.update();},report:function(_e){return this.label?this.label:(this.indeterminate?"&#160;":_5.format(_e,{type:"percent",places:this.places,locale:this.lang}));},onChange:function(){}});}); \ No newline at end of file
diff --git a/lib/dijit/TitlePane.js b/lib/dijit/TitlePane.js
index 917af039d..ebd3a5a20 100644
--- a/lib/dijit/TitlePane.js
+++ b/lib/dijit/TitlePane.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/TitlePane.html":"<div>\n\t<div data-dojo-attach-event=\"onclick:_onTitleClick, onkeypress:_onTitleKey\"\n\t\t\tclass=\"dijitTitlePaneTitle\" data-dojo-attach-point=\"titleBarNode\">\n\t\t<div class=\"dijitTitlePaneTitleFocus\" data-dojo-attach-point=\"focusNode\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"arrowNode\" class=\"dijitArrowNode\" role=\"presentation\"\n\t\t\t/><span data-dojo-attach-point=\"arrowNodeInner\" class=\"dijitArrowNodeInner\"></span\n\t\t\t><span data-dojo-attach-point=\"titleNode\" class=\"dijitTitlePaneTextNode\"></span>\n\t\t</div>\n\t</div>\n\t<div class=\"dijitTitlePaneContentOuter\" data-dojo-attach-point=\"hideNode\" role=\"presentation\">\n\t\t<div class=\"dijitReset\" data-dojo-attach-point=\"wipeNode\" role=\"presentation\">\n\t\t\t<div class=\"dijitTitlePaneContentInner\" data-dojo-attach-point=\"containerNode\" role=\"region\" id=\"${id}_pane\">\n\t\t\t\t<!-- nested divs because wipeIn()/wipeOut() doesn't work right on node w/padding etc. Put padding on inner div. -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n"}});define("dijit/TitlePane",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/_base/event","dojo/fx","dojo/_base/kernel","dojo/keys","./_CssStateMixin","./_TemplatedMixin","./layout/ContentPane","dojo/text!./templates/TitlePane.html","./_base/manager"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f){return _2("dijit.TitlePane",[_d,_c,_b],{title:"",_setTitleAttr:{node:"titleNode",type:"innerHTML"},open:true,toggleable:true,tabIndex:"0",duration:_f.defaultDuration,baseClass:"dijitTitlePane",templateString:_e,doLayout:false,_setTooltipAttr:{node:"focusNode",type:"attribute",attribute:"title"},buildRendering:function(){this.inherited(arguments);_3.setSelectable(this.titleNode,false);},postCreate:function(){this.inherited(arguments);if(this.toggleable){this._trackMouseState(this.titleBarNode,"dijitTitlePaneTitle");}var _10=this.hideNode,_11=this.wipeNode;this._wipeIn=_8.wipeIn({node:_11,duration:this.duration,beforeBegin:function(){_10.style.display="";}});this._wipeOut=_8.wipeOut({node:_11,duration:this.duration,onEnd:function(){_10.style.display="none";}});},_setOpenAttr:function(_12,_13){_1.forEach([this._wipeIn,this._wipeOut],function(_14){if(_14&&_14.status()=="playing"){_14.stop();}});if(_13){var _15=this[_12?"_wipeIn":"_wipeOut"];_15.play();}else{this.hideNode.style.display=this.wipeNode.style.display=_12?"":"none";}if(this._started){if(_12){this._onShow();}else{this.onHide();}}this.arrowNodeInner.innerHTML=_12?"-":"+";this.containerNode.setAttribute("aria-hidden",_12?"false":"true");this.focusNode.setAttribute("aria-pressed",_12?"true":"false");this._set("open",_12);this._setCss();},_setToggleableAttr:function(_16){this.focusNode.setAttribute("role",_16?"button":"heading");if(_16){this.focusNode.setAttribute("aria-controls",this.id+"_pane");_4.set(this.focusNode,"tabIndex",this.tabIndex);}else{_4.remove(this.focusNode,"tabIndex");}this._set("toggleable",_16);this._setCss();},_setContentAttr:function(_17){if(!this.open||!this._wipeOut||this._wipeOut.status()=="playing"){this.inherited(arguments);}else{if(this._wipeIn&&this._wipeIn.status()=="playing"){this._wipeIn.stop();}_6.setMarginBox(this.wipeNode,{h:_6.getMarginBox(this.wipeNode).h});this.inherited(arguments);if(this._wipeIn){this._wipeIn.play();}else{this.hideNode.style.display="";}}},toggle:function(){this._setOpenAttr(!this.open,true);},_setCss:function(){var _18=this.titleBarNode||this.focusNode;var _19=this._titleBarClass;this._titleBarClass="dijit"+(this.toggleable?"":"Fixed")+(this.open?"Open":"Closed");_5.replace(_18,this._titleBarClass,_19||"");this.arrowNodeInner.innerHTML=this.open?"-":"+";},_onTitleKey:function(e){if(e.charOrCode==_a.ENTER||e.charOrCode==" "){if(this.toggleable){this.toggle();}_7.stop(e);}else{if(e.charOrCode==_a.DOWN_ARROW&&this.open){this.containerNode.focus();e.preventDefault();}}},_onTitleClick:function(){if(this.toggleable){this.toggle();}},setTitle:function(_1a){_9.deprecated("dijit.TitlePane.setTitle() is deprecated. Use set('title', ...) instead.","","2.0");this.set("title",_1a);}});}); \ No newline at end of file
+require({cache:{"url:dijit/templates/TitlePane.html":"<div>\n\t<div data-dojo-attach-event=\"onclick:_onTitleClick, onkeydown:_onTitleKey\"\n\t\t\tclass=\"dijitTitlePaneTitle\" data-dojo-attach-point=\"titleBarNode\" id=\"${id}_titleBarNode\">\n\t\t<div class=\"dijitTitlePaneTitleFocus\" data-dojo-attach-point=\"focusNode\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"arrowNode\" class=\"dijitArrowNode\" role=\"presentation\"\n\t\t\t/><span data-dojo-attach-point=\"arrowNodeInner\" class=\"dijitArrowNodeInner\"></span\n\t\t\t><span data-dojo-attach-point=\"titleNode\" class=\"dijitTitlePaneTextNode\"></span>\n\t\t</div>\n\t</div>\n\t<div class=\"dijitTitlePaneContentOuter\" data-dojo-attach-point=\"hideNode\" role=\"presentation\">\n\t\t<div class=\"dijitReset\" data-dojo-attach-point=\"wipeNode\" role=\"presentation\">\n\t\t\t<div class=\"dijitTitlePaneContentInner\" data-dojo-attach-point=\"containerNode\" role=\"region\" id=\"${id}_pane\" aria-labelledby=\"${id}_titleBarNode\">\n\t\t\t\t<!-- nested divs because wipeIn()/wipeOut() doesn't work right on node w/padding etc. Put padding on inner div. -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n"}});define("dijit/TitlePane",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/_base/event","dojo/fx","dojo/_base/kernel","dojo/keys","./_CssStateMixin","./_TemplatedMixin","./layout/ContentPane","dojo/text!./templates/TitlePane.html","./_base/manager"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f){return _2("dijit.TitlePane",[_d,_c,_b],{title:"",_setTitleAttr:{node:"titleNode",type:"innerHTML"},open:true,toggleable:true,tabIndex:"0",duration:_f.defaultDuration,baseClass:"dijitTitlePane",templateString:_e,doLayout:false,_setTooltipAttr:{node:"focusNode",type:"attribute",attribute:"title"},buildRendering:function(){this.inherited(arguments);_3.setSelectable(this.titleNode,false);},postCreate:function(){this.inherited(arguments);if(this.toggleable){this._trackMouseState(this.titleBarNode,"dijitTitlePaneTitle");}var _10=this.hideNode,_11=this.wipeNode;this._wipeIn=_8.wipeIn({node:_11,duration:this.duration,beforeBegin:function(){_10.style.display="";}});this._wipeOut=_8.wipeOut({node:_11,duration:this.duration,onEnd:function(){_10.style.display="none";}});},_setOpenAttr:function(_12,_13){_1.forEach([this._wipeIn,this._wipeOut],function(_14){if(_14&&_14.status()=="playing"){_14.stop();}});if(_13){var _15=this[_12?"_wipeIn":"_wipeOut"];_15.play();}else{this.hideNode.style.display=this.wipeNode.style.display=_12?"":"none";}if(this._started){if(_12){this._onShow();}else{this.onHide();}}this.containerNode.setAttribute("aria-hidden",_12?"false":"true");this.focusNode.setAttribute("aria-pressed",_12?"true":"false");this._set("open",_12);this._setCss();},_setToggleableAttr:function(_16){this.focusNode.setAttribute("role",_16?"button":"heading");if(_16){this.focusNode.setAttribute("aria-controls",this.id+"_pane");this.focusNode.setAttribute("tabIndex",this.tabIndex);this.focusNode.setAttribute("aria-pressed",this.open);}else{_4.remove(this.focusNode,"aria-controls");_4.remove(this.focusNode,"tabIndex");_4.remove(this.focusNode,"aria-pressed");}this._set("toggleable",_16);this._setCss();},_setContentAttr:function(_17){if(!this.open||!this._wipeOut||this._wipeOut.status()=="playing"){this.inherited(arguments);}else{if(this._wipeIn&&this._wipeIn.status()=="playing"){this._wipeIn.stop();}_6.setMarginBox(this.wipeNode,{h:_6.getMarginBox(this.wipeNode).h});this.inherited(arguments);if(this._wipeIn){this._wipeIn.play();}else{this.hideNode.style.display="";}}},toggle:function(){this._setOpenAttr(!this.open,true);},_setCss:function(){var _18=this.titleBarNode||this.focusNode;var _19=this._titleBarClass;this._titleBarClass="dijit"+(this.toggleable?"":"Fixed")+(this.open?"Open":"Closed");_5.replace(_18,this._titleBarClass,_19||"");this.arrowNodeInner.innerHTML=this.open?"-":"+";},_onTitleKey:function(e){if(e.keyCode==_a.ENTER||e.keyCode==_a.SPACE){if(this.toggleable){this.toggle();_7.stop(e);}}else{if(e.keyCode==_a.DOWN_ARROW&&this.open){this.containerNode.focus();e.preventDefault();}}},_onTitleClick:function(){if(this.toggleable){this.toggle();}},setTitle:function(_1a){_9.deprecated("dijit.TitlePane.setTitle() is deprecated. Use set('title', ...) instead.","","2.0");this.set("title",_1a);}});}); \ No newline at end of file
diff --git a/lib/dijit/Toolbar.js b/lib/dijit/Toolbar.js
index e0904f0a2..f01f8e996 100644
--- a/lib/dijit/Toolbar.js
+++ b/lib/dijit/Toolbar.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/Toolbar",["require","dojo/_base/declare","dojo/_base/kernel","dojo/keys","dojo/ready","./_Widget","./_KeyNavContainer","./_TemplatedMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8){if(!_3.isAsync){_5(0,function(){var _9=["dijit/ToolbarSeparator"];_1(_9);});}return _2("dijit.Toolbar",[_6,_8,_7],{templateString:"<div class=\"dijit\" role=\"toolbar\" tabIndex=\"${tabIndex}\" data-dojo-attach-point=\"containerNode\">"+"</div>",baseClass:"dijitToolbar",postCreate:function(){this.inherited(arguments);this.connectKeyNavHandlers(this.isLeftToRight()?[_4.LEFT_ARROW]:[_4.RIGHT_ARROW],this.isLeftToRight()?[_4.RIGHT_ARROW]:[_4.LEFT_ARROW]);}});}); \ No newline at end of file
+define("dijit/Toolbar",["require","dojo/_base/declare","dojo/has","dojo/keys","dojo/ready","./_Widget","./_KeyNavContainer","./_TemplatedMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8){if(_3("dijit-legacy-requires")){_5(0,function(){var _9=["dijit/ToolbarSeparator"];_1(_9);});}return _2("dijit.Toolbar",[_6,_8,_7],{templateString:"<div class=\"dijit\" role=\"toolbar\" tabIndex=\"${tabIndex}\" data-dojo-attach-point=\"containerNode\">"+"</div>",baseClass:"dijitToolbar",postCreate:function(){this.inherited(arguments);this.connectKeyNavHandlers(this.isLeftToRight()?[_4.LEFT_ARROW]:[_4.RIGHT_ARROW],this.isLeftToRight()?[_4.RIGHT_ARROW]:[_4.LEFT_ARROW]);}});}); \ No newline at end of file
diff --git a/lib/dijit/Tooltip.js b/lib/dijit/Tooltip.js
index 94a8d1c15..5b91d8b0a 100644
--- a/lib/dijit/Tooltip.js
+++ b/lib/dijit/Tooltip.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/Tooltip.html":"<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\"\n\t><div class=\"dijitTooltipContainer dijitTooltipContents\" data-dojo-attach-point=\"containerNode\" role='alert'></div\n\t><div class=\"dijitTooltipConnector\" data-dojo-attach-point=\"connectorNode\"></div\n></div>\n"}});define("dijit/Tooltip",["dojo/_base/array","dojo/_base/declare","dojo/_base/fx","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang","dojo/_base/sniff","dojo/_base/window","./_base/manager","./place","./_Widget","./_TemplatedMixin","./BackgroundIframe","dojo/text!./templates/Tooltip.html","."],function(_1,_2,fx,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10){var _11=_2("dijit._MasterTooltip",[_c,_d],{duration:_a.defaultDuration,templateString:_f,postCreate:function(){_9.body().appendChild(this.domNode);this.bgIframe=new _e(this.domNode);this.fadeIn=fx.fadeIn({node:this.domNode,duration:this.duration,onEnd:_7.hitch(this,"_onShow")});this.fadeOut=fx.fadeOut({node:this.domNode,duration:this.duration,onEnd:_7.hitch(this,"_onHide")});},show:function(_12,_13,_14,rtl,_15){if(this.aroundNode&&this.aroundNode===_13&&this.containerNode.innerHTML==_12){return;}this.domNode.width="auto";if(this.fadeOut.status()=="playing"){this._onDeck=arguments;return;}this.containerNode.innerHTML=_12;this.set("textDir",_15);this.containerNode.align=rtl?"right":"left";var pos=_b.around(this.domNode,_13,_14&&_14.length?_14:_16.defaultPosition,!rtl,_7.hitch(this,"orient"));var _17=pos.aroundNodePos;if(pos.corner.charAt(0)=="M"&&pos.aroundCorner.charAt(0)=="M"){this.connectorNode.style.top=_17.y+((_17.h-this.connectorNode.offsetHeight)>>1)-pos.y+"px";this.connectorNode.style.left="";}else{if(pos.corner.charAt(1)=="M"&&pos.aroundCorner.charAt(1)=="M"){this.connectorNode.style.left=_17.x+((_17.w-this.connectorNode.offsetWidth)>>1)-pos.x+"px";}}_6.set(this.domNode,"opacity",0);this.fadeIn.play();this.isShowingNow=true;this.aroundNode=_13;},orient:function(_18,_19,_1a,_1b,_1c){this.connectorNode.style.top="";var _1d=_1b.w-this.connectorNode.offsetWidth;_18.className="dijitTooltip "+{"MR-ML":"dijitTooltipRight","ML-MR":"dijitTooltipLeft","TM-BM":"dijitTooltipAbove","BM-TM":"dijitTooltipBelow","BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_19+"-"+_1a];this.domNode.style.width="auto";var _1e=_5.getContentBox(this.domNode);var _1f=Math.min((Math.max(_1d,1)),_1e.w);var _20=_1f<_1e.w;this.domNode.style.width=_1f+"px";if(_20){this.containerNode.style.overflow="auto";var _21=this.containerNode.scrollWidth;this.containerNode.style.overflow="visible";if(_21>_1f){_21=_21+_6.get(this.domNode,"paddingLeft")+_6.get(this.domNode,"paddingRight");this.domNode.style.width=_21+"px";}}if(_1a.charAt(0)=="B"&&_19.charAt(0)=="B"){var mb=_5.getMarginBox(_18);var _22=this.connectorNode.offsetHeight;if(mb.h>_1b.h){var _23=_1b.h-((_1c.h+_22)>>1);this.connectorNode.style.top=_23+"px";this.connectorNode.style.bottom="";}else{this.connectorNode.style.bottom=Math.min(Math.max(_1c.h/2-_22/2,0),mb.h-_22)+"px";this.connectorNode.style.top="";}}else{this.connectorNode.style.top="";this.connectorNode.style.bottom="";}return Math.max(0,_1e.w-_1d);},_onShow:function(){if(_8("ie")){this.domNode.style.filter="";}},hide:function(_24){if(this._onDeck&&this._onDeck[1]==_24){this._onDeck=null;}else{if(this.aroundNode===_24){this.fadeIn.stop();this.isShowingNow=false;this.aroundNode=null;this.fadeOut.play();}else{}}},_onHide:function(){this.domNode.style.cssText="";this.containerNode.innerHTML="";if(this._onDeck){this.show.apply(this,this._onDeck);this._onDeck=null;}},_setAutoTextDir:function(_25){this.applyTextDir(_25,_8("ie")?_25.outerText:_25.textContent);_1.forEach(_25.children,function(_26){this._setAutoTextDir(_26);},this);},_setTextDirAttr:function(_27){this._set("textDir",typeof _27!="undefined"?_27:"");if(_27=="auto"){this._setAutoTextDir(this.containerNode);}else{this.containerNode.dir=this.textDir;}}});_10.showTooltip=function(_28,_29,_2a,rtl,_2b){if(_2a){_2a=_1.map(_2a,function(val){return {after:"after-centered",before:"before-centered"}[val]||val;});}if(!_16._masterTT){_10._masterTT=_16._masterTT=new _11();}return _16._masterTT.show(_28,_29,_2a,rtl,_2b);};_10.hideTooltip=function(_2c){return _16._masterTT&&_16._masterTT.hide(_2c);};var _16=_2("dijit.Tooltip",_c,{label:"",showDelay:400,connectId:[],position:[],_setConnectIdAttr:function(_2d){_1.forEach(this._connections||[],function(_2e){_1.forEach(_2e,_7.hitch(this,"disconnect"));},this);this._connectIds=_1.filter(_7.isArrayLike(_2d)?_2d:(_2d?[_2d]:[]),function(id){return _3.byId(id);});this._connections=_1.map(this._connectIds,function(id){var _2f=_3.byId(id);return [this.connect(_2f,"onmouseenter","_onHover"),this.connect(_2f,"onmouseleave","_onUnHover"),this.connect(_2f,"onfocus","_onHover"),this.connect(_2f,"onblur","_onUnHover")];},this);this._set("connectId",_2d);},addTarget:function(_30){var id=_30.id||_30;if(_1.indexOf(this._connectIds,id)==-1){this.set("connectId",this._connectIds.concat(id));}},removeTarget:function(_31){var id=_31.id||_31,idx=_1.indexOf(this._connectIds,id);if(idx>=0){this._connectIds.splice(idx,1);this.set("connectId",this._connectIds);}},buildRendering:function(){this.inherited(arguments);_4.add(this.domNode,"dijitTooltipData");},startup:function(){this.inherited(arguments);var ids=this.connectId;_1.forEach(_7.isArrayLike(ids)?ids:[ids],this.addTarget,this);},_onHover:function(e){if(!this._showTimer){var _32=e.target;this._showTimer=setTimeout(_7.hitch(this,function(){this.open(_32);}),this.showDelay);}},_onUnHover:function(){if(this._focus){return;}if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}this.close();},open:function(_33){if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}_16.show(this.label||this.domNode.innerHTML,_33,this.position,!this.isLeftToRight(),this.textDir);this._connectNode=_33;this.onShow(_33,this.position);},close:function(){if(this._connectNode){_16.hide(this._connectNode);delete this._connectNode;this.onHide();}if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}},onShow:function(){},onHide:function(){},uninitialize:function(){this.close();this.inherited(arguments);}});_16._MasterTooltip=_11;_16.show=_10.showTooltip;_16.hide=_10.hideTooltip;_16.defaultPosition=["after-centered","before-centered"];return _16;}); \ No newline at end of file
+require({cache:{"url:dijit/templates/Tooltip.html":"<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\"\n\t><div class=\"dijitTooltipContainer dijitTooltipContents\" data-dojo-attach-point=\"containerNode\" role='alert'></div\n\t><div class=\"dijitTooltipConnector\" data-dojo-attach-point=\"connectorNode\"></div\n></div>\n"}});define("dijit/Tooltip",["dojo/_base/array","dojo/_base/declare","dojo/_base/fx","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang","dojo/mouse","dojo/on","dojo/sniff","./_base/manager","./place","./_Widget","./_TemplatedMixin","./BackgroundIframe","dojo/text!./templates/Tooltip.html","./main"],function(_1,_2,fx,_3,_4,_5,_6,_7,_8,on,_9,_a,_b,_c,_d,_e,_f,_10){var _11=_2("dijit._MasterTooltip",[_c,_d],{duration:_a.defaultDuration,templateString:_f,postCreate:function(){this.ownerDocumentBody.appendChild(this.domNode);this.bgIframe=new _e(this.domNode);this.fadeIn=fx.fadeIn({node:this.domNode,duration:this.duration,onEnd:_7.hitch(this,"_onShow")});this.fadeOut=fx.fadeOut({node:this.domNode,duration:this.duration,onEnd:_7.hitch(this,"_onHide")});},show:function(_12,_13,_14,rtl,_15){if(this.aroundNode&&this.aroundNode===_13&&this.containerNode.innerHTML==_12){return;}if(this.fadeOut.status()=="playing"){this._onDeck=arguments;return;}this.containerNode.innerHTML=_12;if(_15){this.set("textDir",_15);}this.containerNode.align=rtl?"right":"left";var pos=_b.around(this.domNode,_13,_14&&_14.length?_14:_16.defaultPosition,!rtl,_7.hitch(this,"orient"));var _17=pos.aroundNodePos;if(pos.corner.charAt(0)=="M"&&pos.aroundCorner.charAt(0)=="M"){this.connectorNode.style.top=_17.y+((_17.h-this.connectorNode.offsetHeight)>>1)-pos.y+"px";this.connectorNode.style.left="";}else{if(pos.corner.charAt(1)=="M"&&pos.aroundCorner.charAt(1)=="M"){this.connectorNode.style.left=_17.x+((_17.w-this.connectorNode.offsetWidth)>>1)-pos.x+"px";}else{this.connectorNode.style.left="";this.connectorNode.style.top="";}}_6.set(this.domNode,"opacity",0);this.fadeIn.play();this.isShowingNow=true;this.aroundNode=_13;},orient:function(_18,_19,_1a,_1b,_1c){this.connectorNode.style.top="";var _1d=_1b.h,_1e=_1b.w;_18.className="dijitTooltip "+{"MR-ML":"dijitTooltipRight","ML-MR":"dijitTooltipLeft","TM-BM":"dijitTooltipAbove","BM-TM":"dijitTooltipBelow","BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_19+"-"+_1a];this.domNode.style.width="auto";var _1f=_5.position(this.domNode);if(_9("ie")==9){_1f.w+=2;}var _20=Math.min((Math.max(_1e,1)),_1f.w);_5.setMarginBox(this.domNode,{w:_20});if(_1a.charAt(0)=="B"&&_19.charAt(0)=="B"){var bb=_5.position(_18);var _21=this.connectorNode.offsetHeight;if(bb.h>_1d){var _22=_1d-((_1c.h+_21)>>1);this.connectorNode.style.top=_22+"px";this.connectorNode.style.bottom="";}else{this.connectorNode.style.bottom=Math.min(Math.max(_1c.h/2-_21/2,0),bb.h-_21)+"px";this.connectorNode.style.top="";}}else{this.connectorNode.style.top="";this.connectorNode.style.bottom="";}return Math.max(0,_1f.w-_1e);},_onShow:function(){if(_9("ie")){this.domNode.style.filter="";}},hide:function(_23){if(this._onDeck&&this._onDeck[1]==_23){this._onDeck=null;}else{if(this.aroundNode===_23){this.fadeIn.stop();this.isShowingNow=false;this.aroundNode=null;this.fadeOut.play();}else{}}},_onHide:function(){this.domNode.style.cssText="";this.containerNode.innerHTML="";if(this._onDeck){this.show.apply(this,this._onDeck);this._onDeck=null;}},_setAutoTextDir:function(_24){this.applyTextDir(_24,_9("ie")?_24.outerText:_24.textContent);_1.forEach(_24.children,function(_25){this._setAutoTextDir(_25);},this);},_setTextDirAttr:function(_26){this._set("textDir",_26);if(_26=="auto"){this._setAutoTextDir(this.containerNode);}else{this.containerNode.dir=this.textDir;}}});_10.showTooltip=function(_27,_28,_29,rtl,_2a){if(_29){_29=_1.map(_29,function(val){return {after:"after-centered",before:"before-centered"}[val]||val;});}if(!_16._masterTT){_10._masterTT=_16._masterTT=new _11();}return _16._masterTT.show(_27,_28,_29,rtl,_2a);};_10.hideTooltip=function(_2b){return _16._masterTT&&_16._masterTT.hide(_2b);};var _16=_2("dijit.Tooltip",_c,{label:"",showDelay:400,connectId:[],position:[],selector:"",_setConnectIdAttr:function(_2c){_1.forEach(this._connections||[],function(_2d){_1.forEach(_2d,function(_2e){_2e.remove();});},this);this._connectIds=_1.filter(_7.isArrayLike(_2c)?_2c:(_2c?[_2c]:[]),function(id){return _3.byId(id,this.ownerDocument);},this);this._connections=_1.map(this._connectIds,function(id){var _2f=_3.byId(id,this.ownerDocument),_30=this.selector,_31=_30?function(_32){return on.selector(_30,_32);}:function(_33){return _33;},_34=this;return [on(_2f,_31(_8.enter),function(){_34._onHover(this);}),on(_2f,_31("focusin"),function(){_34._onHover(this);}),on(_2f,_31(_8.leave),_7.hitch(_34,"_onUnHover")),on(_2f,_31("focusout"),_7.hitch(_34,"_onUnHover"))];},this);this._set("connectId",_2c);},addTarget:function(_35){var id=_35.id||_35;if(_1.indexOf(this._connectIds,id)==-1){this.set("connectId",this._connectIds.concat(id));}},removeTarget:function(_36){var id=_36.id||_36,idx=_1.indexOf(this._connectIds,id);if(idx>=0){this._connectIds.splice(idx,1);this.set("connectId",this._connectIds);}},buildRendering:function(){this.inherited(arguments);_4.add(this.domNode,"dijitTooltipData");},startup:function(){this.inherited(arguments);var ids=this.connectId;_1.forEach(_7.isArrayLike(ids)?ids:[ids],this.addTarget,this);},getContent:function(_37){return this.label||this.domNode.innerHTML;},_onHover:function(_38){if(!this._showTimer){this._showTimer=this.defer(function(){this.open(_38);},this.showDelay);}},_onUnHover:function(){if(this._showTimer){this._showTimer.remove();delete this._showTimer;}this.close();},open:function(_39){if(this._showTimer){this._showTimer.remove();delete this._showTimer;}var _3a=this.getContent(_39);if(!_3a){return;}_16.show(_3a,_39,this.position,!this.isLeftToRight(),this.textDir);this._connectNode=_39;this.onShow(_39,this.position);},close:function(){if(this._connectNode){_16.hide(this._connectNode);delete this._connectNode;this.onHide();}if(this._showTimer){this._showTimer.remove();delete this._showTimer;}},onShow:function(){},onHide:function(){},destroy:function(){this.close();_1.forEach(this._connections||[],function(_3b){_1.forEach(_3b,function(_3c){_3c.remove();});},this);this.inherited(arguments);}});_16._MasterTooltip=_11;_16.show=_10.showTooltip;_16.hide=_10.hideTooltip;_16.defaultPosition=["after-centered","before-centered"];return _16;}); \ No newline at end of file
diff --git a/lib/dijit/TooltipDialog.js b/lib/dijit/TooltipDialog.js
index df4d9893e..b4cd2c599 100644
--- a/lib/dijit/TooltipDialog.js
+++ b/lib/dijit/TooltipDialog.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/TooltipDialog.html":"<div role=\"presentation\" tabIndex=\"-1\">\n\t<div class=\"dijitTooltipContainer\" role=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" data-dojo-attach-point=\"containerNode\" role=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" role=\"presentation\"></div>\n</div>\n"}});define("dijit/TooltipDialog",["dojo/_base/declare","dojo/dom-class","dojo/_base/event","dojo/keys","dojo/_base/lang","./focus","./layout/ContentPane","./_DialogMixin","./form/_FormMixin","./_TemplatedMixin","dojo/text!./templates/TooltipDialog.html","."],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){return _1("dijit.TooltipDialog",[_7,_a,_9,_8],{title:"",doLayout:false,autofocus:true,baseClass:"dijitTooltipDialog",_firstFocusItem:null,_lastFocusItem:null,templateString:_b,_setTitleAttr:function(_d){this.containerNode.title=_d;this._set("title",_d);},postCreate:function(){this.inherited(arguments);this.connect(this.containerNode,"onkeypress","_onKey");},orient:function(_e,_f,_10){var _11="dijitTooltipAB"+(_10.charAt(1)=="L"?"Left":"Right")+" dijitTooltip"+(_10.charAt(0)=="T"?"Below":"Above");_2.replace(this.domNode,_11,this._currentOrientClass||"");this._currentOrientClass=_11;},focus:function(){this._getFocusItems(this.containerNode);_6.focus(this._firstFocusItem);},onOpen:function(pos){this.orient(this.domNode,pos.aroundCorner,pos.corner);this._onShow();},onClose:function(){this.onHide();},_onKey:function(evt){var _12=evt.target;if(evt.charOrCode===_4.TAB){this._getFocusItems(this.containerNode);}var _13=(this._firstFocusItem==this._lastFocusItem);if(evt.charOrCode==_4.ESCAPE){setTimeout(_5.hitch(this,"onCancel"),0);_3.stop(evt);}else{if(_12==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===_4.TAB){if(!_13){_6.focus(this._lastFocusItem);}_3.stop(evt);}else{if(_12==this._lastFocusItem&&evt.charOrCode===_4.TAB&&!evt.shiftKey){if(!_13){_6.focus(this._firstFocusItem);}_3.stop(evt);}else{if(evt.charOrCode===_4.TAB){evt.stopPropagation();}}}}}});}); \ No newline at end of file
+require({cache:{"url:dijit/templates/TooltipDialog.html":"<div role=\"presentation\" tabIndex=\"-1\">\n\t<div class=\"dijitTooltipContainer\" role=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" data-dojo-attach-point=\"containerNode\" role=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" role=\"presentation\" data-dojo-attach-point=\"connectorNode\"></div>\n</div>\n"}});define("dijit/TooltipDialog",["dojo/_base/declare","dojo/dom-class","dojo/_base/event","dojo/keys","dojo/_base/lang","./focus","./layout/ContentPane","./_DialogMixin","./form/_FormMixin","./_TemplatedMixin","dojo/text!./templates/TooltipDialog.html","./main"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){return _1("dijit.TooltipDialog",[_7,_a,_9,_8],{title:"",doLayout:false,autofocus:true,baseClass:"dijitTooltipDialog",_firstFocusItem:null,_lastFocusItem:null,templateString:_b,_setTitleAttr:function(_d){this.containerNode.title=_d;this._set("title",_d);},postCreate:function(){this.inherited(arguments);this.connect(this.containerNode,"onkeypress","_onKey");},orient:function(_e,_f,_10){var _11={"MR-ML":"dijitTooltipRight","ML-MR":"dijitTooltipLeft","TM-BM":"dijitTooltipAbove","BM-TM":"dijitTooltipBelow","BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_f+"-"+_10];_2.replace(this.domNode,_11,this._currentOrientClass||"");this._currentOrientClass=_11;},focus:function(){this._getFocusItems(this.containerNode);_6.focus(this._firstFocusItem);},onOpen:function(pos){this.orient(this.domNode,pos.aroundCorner,pos.corner);var _12=pos.aroundNodePos;if(pos.corner.charAt(0)=="M"&&pos.aroundCorner.charAt(0)=="M"){this.connectorNode.style.top=_12.y+((_12.h-this.connectorNode.offsetHeight)>>1)-pos.y+"px";this.connectorNode.style.left="";}else{if(pos.corner.charAt(1)=="M"&&pos.aroundCorner.charAt(1)=="M"){this.connectorNode.style.left=_12.x+((_12.w-this.connectorNode.offsetWidth)>>1)-pos.x+"px";}}this._onShow();},onClose:function(){this.onHide();},_onKey:function(evt){var _13=evt.target;if(evt.charOrCode===_4.TAB){this._getFocusItems(this.containerNode);}var _14=(this._firstFocusItem==this._lastFocusItem);if(evt.charOrCode==_4.ESCAPE){this.defer("onCancel");_3.stop(evt);}else{if(_13==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===_4.TAB){if(!_14){_6.focus(this._lastFocusItem);}_3.stop(evt);}else{if(_13==this._lastFocusItem&&evt.charOrCode===_4.TAB&&!evt.shiftKey){if(!_14){_6.focus(this._firstFocusItem);}_3.stop(evt);}else{if(evt.charOrCode===_4.TAB){evt.stopPropagation();}}}}}});}); \ No newline at end of file
diff --git a/lib/dijit/Tree.js b/lib/dijit/Tree.js
index 25c44568a..4eb9e4ba8 100644
--- a/lib/dijit/Tree.js
+++ b/lib/dijit/Tree.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/TreeNode.html":"<div class=\"dijitTreeNode\" role=\"presentation\"\n\t><div data-dojo-attach-point=\"rowNode\" class=\"dijitTreeRow\" role=\"presentation\" data-dojo-attach-event=\"onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick\"\n\t\t><img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"expandoNode\" class=\"dijitTreeExpando\" role=\"presentation\"\n\t\t/><span data-dojo-attach-point=\"expandoNodeText\" class=\"dijitExpandoText\" role=\"presentation\"\n\t\t></span\n\t\t><span data-dojo-attach-point=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" role=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" role=\"presentation\"\n\t\t\t/><span data-dojo-attach-point=\"labelNode\" class=\"dijitTreeLabel\" role=\"treeitem\" tabindex=\"-1\" aria-selected=\"false\" data-dojo-attach-event=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitTreeContainer\" role=\"presentation\" style=\"display: none;\"></div>\n</div>\n","url:dijit/templates/Tree.html":"<div class=\"dijitTree dijitTreeContainer\" role=\"tree\"\n\tdata-dojo-attach-event=\"onkeypress:_onKeyPress\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" data-dojo-attach-point=\"indentDetector\"></div>\n</div>\n"}});define("dijit/Tree",["dojo/_base/array","dojo/_base/connect","dojo/cookie","dojo/_base/declare","dojo/_base/Deferred","dojo/DeferredList","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/fx","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/topic","./focus","./registry","./_base/manager","./_Widget","./_TemplatedMixin","./_Container","./_Contained","./_CssStateMixin","dojo/text!./templates/TreeNode.html","dojo/text!./templates/Tree.html","./tree/TreeStoreModel","./tree/ForestStoreModel","./tree/_dndSelector"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_1a,_1b,_1c,_1d){var _1e=_4("dijit._TreeNode",[_14,_15,_16,_17,_18],{item:null,isTreeNode:true,label:"",_setLabelAttr:{node:"labelNode",type:"innerText"},isExpandable:null,isExpanded:false,state:"UNCHECKED",templateString:_19,baseClass:"dijitTreeNode",cssStateNodes:{rowNode:"dijitTreeRow",labelNode:"dijitTreeLabel"},_setTooltipAttr:{node:"rowNode",type:"attribute",attribute:"title"},buildRendering:function(){this.inherited(arguments);this._setExpando();this._updateItemClasses(this.item);if(this.isExpandable){this.labelNode.setAttribute("aria-expanded",this.isExpanded);}this.setSelected(false);},_setIndentAttr:function(_1f){var _20=(Math.max(_1f,0)*this.tree._nodePixelIndent)+"px";_a.set(this.domNode,"backgroundPosition",_20+" 0px");_a.set(this.rowNode,this.isLeftToRight()?"paddingLeft":"paddingRight",_20);_1.forEach(this.getChildren(),function(_21){_21.set("indent",_1f+1);});this._set("indent",_1f);},markProcessing:function(){this.state="LOADING";this._setExpando(true);},unmarkProcessing:function(){this._setExpando(false);},_updateItemClasses:function(_22){var _23=this.tree,_24=_23.model;if(_23._v10Compat&&_22===_24.root){_22=null;}this._applyClassAndStyle(_22,"icon","Icon");this._applyClassAndStyle(_22,"label","Label");this._applyClassAndStyle(_22,"row","Row");},_applyClassAndStyle:function(_25,_26,_27){var _28="_"+_26+"Class";var _29=_26+"Node";var _2a=this[_28];this[_28]=this.tree["get"+_27+"Class"](_25,this.isExpanded);_8.replace(this[_29],this[_28]||"",_2a||"");_a.set(this[_29],this.tree["get"+_27+"Style"](_25,this.isExpanded)||{});},_updateLayout:function(){var _2b=this.getParent();if(!_2b||!_2b.rowNode||_2b.rowNode.style.display=="none"){_8.add(this.domNode,"dijitTreeIsRoot");}else{_8.toggle(this.domNode,"dijitTreeIsLast",!this.getNextSibling());}},_setExpando:function(_2c){var _2d=["dijitTreeExpandoLoading","dijitTreeExpandoOpened","dijitTreeExpandoClosed","dijitTreeExpandoLeaf"],_2e=["*","-","+","*"],idx=_2c?0:(this.isExpandable?(this.isExpanded?1:2):3);_8.replace(this.expandoNode,_2d[idx],_2d);this.expandoNodeText.innerHTML=_2e[idx];},expand:function(){if(this._expandDeferred){return this._expandDeferred;}this._wipeOut&&this._wipeOut.stop();this.isExpanded=true;this.labelNode.setAttribute("aria-expanded","true");if(this.tree.showRoot||this!==this.tree.rootNode){this.containerNode.setAttribute("role","group");}_8.add(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(this==this.tree.rootNode){this.tree.domNode.setAttribute("aria-expanded","true");}var def,_2f=_c.wipeIn({node:this.containerNode,duration:_13.defaultDuration,onEnd:function(){def.callback(true);}});def=(this._expandDeferred=new _5(function(){_2f.stop();}));_2f.play();return def;},collapse:function(){if(!this.isExpanded){return;}if(this._expandDeferred){this._expandDeferred.cancel();delete this._expandDeferred;}this.isExpanded=false;this.labelNode.setAttribute("aria-expanded","false");if(this==this.tree.rootNode){this.tree.domNode.setAttribute("aria-expanded","false");}_8.remove(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(!this._wipeOut){this._wipeOut=_c.wipeOut({node:this.containerNode,duration:_13.defaultDuration});}this._wipeOut.play();},indent:0,setChildItems:function(_30){var _31=this.tree,_32=_31.model,_33=[];_1.forEach(this.getChildren(),function(_34){_16.prototype.removeChild.call(this,_34);},this);this.state="LOADED";if(_30&&_30.length>0){this.isExpandable=true;_1.forEach(_30,function(_35){var id=_32.getIdentity(_35),_36=_31._itemNodesMap[id],_37;if(_36){for(var i=0;i<_36.length;i++){if(_36[i]&&!_36[i].getParent()){_37=_36[i];_37.set("indent",this.indent+1);break;}}}if(!_37){_37=this.tree._createTreeNode({item:_35,tree:_31,isExpandable:_32.mayHaveChildren(_35),label:_31.getLabel(_35),tooltip:_31.getTooltip(_35),dir:_31.dir,lang:_31.lang,textDir:_31.textDir,indent:this.indent+1});if(_36){_36.push(_37);}else{_31._itemNodesMap[id]=[_37];}}this.addChild(_37);if(this.tree.autoExpand||this.tree._state(_37)){_33.push(_31._expandNode(_37));}},this);_1.forEach(this.getChildren(),function(_38){_38._updateLayout();});}else{this.isExpandable=false;}if(this._setExpando){this._setExpando(false);}this._updateItemClasses(this.item);if(this==_31.rootNode){var fc=this.tree.showRoot?this:this.getChildren()[0];if(fc){fc.setFocusable(true);_31.lastFocused=fc;}else{_31.domNode.setAttribute("tabIndex","0");}}return new _6(_33);},getTreePath:function(){var _39=this;var _3a=[];while(_39&&_39!==this.tree.rootNode){_3a.unshift(_39.item);_39=_39.getParent();}_3a.unshift(this.tree.rootNode.item);return _3a;},getIdentity:function(){return this.tree.model.getIdentity(this.item);},removeChild:function(_3b){this.inherited(arguments);var _3c=this.getChildren();if(_3c.length==0){this.isExpandable=false;this.collapse();}_1.forEach(_3c,function(_3d){_3d._updateLayout();});},makeExpandable:function(){this.isExpandable=true;this._setExpando(false);},_onLabelFocus:function(){this.tree._onNodeFocus(this);},setSelected:function(_3e){this.labelNode.setAttribute("aria-selected",_3e);_8.toggle(this.rowNode,"dijitTreeRowSelected",_3e);},setFocusable:function(_3f){this.labelNode.setAttribute("tabIndex",_3f?"0":"-1");},_onClick:function(evt){this.tree._onClick(this,evt);},_onDblClick:function(evt){this.tree._onDblClick(this,evt);},_onMouseEnter:function(evt){this.tree._onNodeMouseEnter(this,evt);},_onMouseLeave:function(evt){this.tree._onNodeMouseLeave(this,evt);},_setTextDirAttr:function(_40){if(_40&&((this.textDir!=_40)||!this._created)){this._set("textDir",_40);this.applyTextDir(this.labelNode,this.labelNode.innerText||this.labelNode.textContent||"");_1.forEach(this.getChildren(),function(_41){_41.set("textDir",_40);},this);}}});var _42=_4("dijit.Tree",[_14,_15],{store:null,model:null,query:null,label:"",showRoot:true,childrenAttr:["children"],paths:[],path:[],selectedItems:null,selectedItem:null,openOnClick:false,openOnDblClick:false,templateString:_1a,persist:true,autoExpand:false,dndController:_1d,dndParams:["onDndDrop","itemCreator","onDndCancel","checkAcceptance","checkItemAcceptance","dragThreshold","betweenThreshold"],onDndDrop:null,itemCreator:null,onDndCancel:null,checkAcceptance:null,checkItemAcceptance:null,dragThreshold:5,betweenThreshold:0,_nodePixelIndent:19,_publish:function(_43,_44){_10.publish(this.id,_f.mixin({tree:this,event:_43},_44||{}));},postMixInProperties:function(){this.tree=this;if(this.autoExpand){this.persist=false;}this._itemNodesMap={};if(!this.cookieName&&this.id){this.cookieName=this.id+"SaveStateCookie";}this._loadDeferred=new _5();this.inherited(arguments);},postCreate:function(){this._initState();if(!this.model){this._store2model();}this.connect(this.model,"onChange","_onItemChange");this.connect(this.model,"onChildrenChange","_onItemChildrenChange");this.connect(this.model,"onDelete","_onItemDelete");this._load();this.inherited(arguments);if(this.dndController){if(_f.isString(this.dndController)){this.dndController=_f.getObject(this.dndController);}var _45={};for(var i=0;i<this.dndParams.length;i++){if(this[this.dndParams[i]]){_45[this.dndParams[i]]=this[this.dndParams[i]];}}this.dndController=new this.dndController(this,_45);}},_store2model:function(){this._v10Compat=true;_d.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query");var _46={id:this.id+"_ForestStoreModel",store:this.store,query:this.query,childrenAttrs:this.childrenAttr};if(this.params.mayHaveChildren){_46.mayHaveChildren=_f.hitch(this,"mayHaveChildren");}if(this.params.getItemChildren){_46.getChildren=_f.hitch(this,function(_47,_48,_49){this.getItemChildren((this._v10Compat&&_47===this.model.root)?null:_47,_48,_49);});}this.model=new _1c(_46);this.showRoot=Boolean(this.label);},onLoad:function(){},_load:function(){this.model.getRoot(_f.hitch(this,function(_4a){var rn=(this.rootNode=this.tree._createTreeNode({item:_4a,tree:this,isExpandable:true,label:this.label||this.getLabel(_4a),textDir:this.textDir,indent:this.showRoot?0:-1}));if(!this.showRoot){rn.rowNode.style.display="none";this.domNode.setAttribute("role","presentation");rn.labelNode.setAttribute("role","presentation");rn.containerNode.setAttribute("role","tree");}this.domNode.appendChild(rn.domNode);var _4b=this.model.getIdentity(_4a);if(this._itemNodesMap[_4b]){this._itemNodesMap[_4b].push(rn);}else{this._itemNodesMap[_4b]=[rn];}rn._updateLayout();this._expandNode(rn).addCallback(_f.hitch(this,function(){this._loadDeferred.callback(true);this.onLoad();}));}),function(err){console.error(this,": error loading root: ",err);});},getNodesByItem:function(_4c){if(!_4c){return [];}var _4d=_f.isString(_4c)?_4c:this.model.getIdentity(_4c);return [].concat(this._itemNodesMap[_4d]);},_setSelectedItemAttr:function(_4e){this.set("selectedItems",[_4e]);},_setSelectedItemsAttr:function(_4f){var _50=this;this._loadDeferred.addCallback(_f.hitch(this,function(){var _51=_1.map(_4f,function(_52){return (!_52||_f.isString(_52))?_52:_50.model.getIdentity(_52);});var _53=[];_1.forEach(_51,function(id){_53=_53.concat(_50._itemNodesMap[id]||[]);});this.set("selectedNodes",_53);}));},_setPathAttr:function(_54){if(_54.length){return this.set("paths",[_54]);}else{return this.set("paths",[]);}},_setPathsAttr:function(_55){var _56=this;return new _6(_1.map(_55,function(_57){var d=new _5();_57=_1.map(_57,function(_58){return _f.isString(_58)?_58:_56.model.getIdentity(_58);});if(_57.length){_56._loadDeferred.addCallback(function(){_59(_57,[_56.rootNode],d);});}else{d.errback("Empty path");}return d;})).addCallback(_5a);function _59(_5b,_5c,def){var _5d=_5b.shift();var _5e=_1.filter(_5c,function(_5f){return _5f.getIdentity()==_5d;})[0];if(!!_5e){if(_5b.length){_56._expandNode(_5e).addCallback(function(){_59(_5b,_5e.getChildren(),def);});}else{def.callback(_5e);}}else{def.errback("Could not expand path at "+_5d);}};function _5a(_60){_56.set("selectedNodes",_1.map(_1.filter(_60,function(x){return x[0];}),function(x){return x[1];}));};},_setSelectedNodeAttr:function(_61){this.set("selectedNodes",[_61]);},_setSelectedNodesAttr:function(_62){this._loadDeferred.addCallback(_f.hitch(this,function(){this.dndController.setSelection(_62);}));},mayHaveChildren:function(){},getItemChildren:function(){},getLabel:function(_63){return this.model.getLabel(_63);},getIconClass:function(_64,_65){return (!_64||this.model.mayHaveChildren(_64))?(_65?"dijitFolderOpened":"dijitFolderClosed"):"dijitLeaf";},getLabelClass:function(){},getRowClass:function(){},getIconStyle:function(){},getLabelStyle:function(){},getRowStyle:function(){},getTooltip:function(){return "";},_onKeyPress:function(e){if(e.altKey){return;}var _66=_12.getEnclosingWidget(e.target);if(!_66){return;}var key=e.charOrCode;if(typeof key=="string"&&key!=" "){if(!e.altKey&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey){this._onLetterKeyNav({node:_66,key:key.toLowerCase()});_b.stop(e);}}else{if(this._curSearch){clearTimeout(this._curSearch.timer);delete this._curSearch;}var map=this._keyHandlerMap;if(!map){map={};map[_e.ENTER]="_onEnterKey";map[_e.SPACE]=map[" "]="_onEnterKey";map[this.isLeftToRight()?_e.LEFT_ARROW:_e.RIGHT_ARROW]="_onLeftArrow";map[this.isLeftToRight()?_e.RIGHT_ARROW:_e.LEFT_ARROW]="_onRightArrow";map[_e.UP_ARROW]="_onUpArrow";map[_e.DOWN_ARROW]="_onDownArrow";map[_e.HOME]="_onHomeKey";map[_e.END]="_onEndKey";this._keyHandlerMap=map;}if(this._keyHandlerMap[key]){this[this._keyHandlerMap[key]]({node:_66,item:_66.item,evt:e});_b.stop(e);}}},_onEnterKey:function(_67){this._publish("execute",{item:_67.item,node:_67.node});this.dndController.userSelect(_67.node,_2.isCopyKey(_67.evt),_67.evt.shiftKey);this.onClick(_67.item,_67.node,_67.evt);},_onDownArrow:function(_68){var _69=this._getNextNode(_68.node);if(_69&&_69.isTreeNode){this.focusNode(_69);}},_onUpArrow:function(_6a){var _6b=_6a.node;var _6c=_6b.getPreviousSibling();if(_6c){_6b=_6c;while(_6b.isExpandable&&_6b.isExpanded&&_6b.hasChildren()){var _6d=_6b.getChildren();_6b=_6d[_6d.length-1];}}else{var _6e=_6b.getParent();if(!(!this.showRoot&&_6e===this.rootNode)){_6b=_6e;}}if(_6b&&_6b.isTreeNode){this.focusNode(_6b);}},_onRightArrow:function(_6f){var _70=_6f.node;if(_70.isExpandable&&!_70.isExpanded){this._expandNode(_70);}else{if(_70.hasChildren()){_70=_70.getChildren()[0];if(_70&&_70.isTreeNode){this.focusNode(_70);}}}},_onLeftArrow:function(_71){var _72=_71.node;if(_72.isExpandable&&_72.isExpanded){this._collapseNode(_72);}else{var _73=_72.getParent();if(_73&&_73.isTreeNode&&!(!this.showRoot&&_73===this.rootNode)){this.focusNode(_73);}}},_onHomeKey:function(){var _74=this._getRootOrFirstNode();if(_74){this.focusNode(_74);}},_onEndKey:function(){var _75=this.rootNode;while(_75.isExpanded){var c=_75.getChildren();_75=c[c.length-1];}if(_75&&_75.isTreeNode){this.focusNode(_75);}},multiCharSearchDuration:250,_onLetterKeyNav:function(_76){var cs=this._curSearch;if(cs){cs.pattern=cs.pattern+_76.key;clearTimeout(cs.timer);}else{cs=this._curSearch={pattern:_76.key,startNode:_76.node};}var _77=this;cs.timer=setTimeout(function(){delete _77._curSearch;},this.multiCharSearchDuration);var _78=cs.startNode;do{_78=this._getNextNode(_78);if(!_78){_78=this._getRootOrFirstNode();}}while(_78!==cs.startNode&&(_78.label.toLowerCase().substr(0,cs.pattern.length)!=cs.pattern));if(_78&&_78.isTreeNode){if(_78!==cs.startNode){this.focusNode(_78);}}},isExpandoNode:function(_79,_7a){return _7.isDescendant(_79,_7a.expandoNode);},_onClick:function(_7b,e){var _7c=e.target,_7d=this.isExpandoNode(_7c,_7b);if((this.openOnClick&&_7b.isExpandable)||_7d){if(_7b.isExpandable){this._onExpandoClick({node:_7b});}}else{this._publish("execute",{item:_7b.item,node:_7b,evt:e});this.onClick(_7b.item,_7b,e);this.focusNode(_7b);}_b.stop(e);},_onDblClick:function(_7e,e){var _7f=e.target,_80=(_7f==_7e.expandoNode||_7f==_7e.expandoNodeText);if((this.openOnDblClick&&_7e.isExpandable)||_80){if(_7e.isExpandable){this._onExpandoClick({node:_7e});}}else{this._publish("execute",{item:_7e.item,node:_7e,evt:e});this.onDblClick(_7e.item,_7e,e);this.focusNode(_7e);}_b.stop(e);},_onExpandoClick:function(_81){var _82=_81.node;this.focusNode(_82);if(_82.isExpanded){this._collapseNode(_82);}else{this._expandNode(_82);}},onClick:function(){},onDblClick:function(){},onOpen:function(){},onClose:function(){},_getNextNode:function(_83){if(_83.isExpandable&&_83.isExpanded&&_83.hasChildren()){return _83.getChildren()[0];}else{while(_83&&_83.isTreeNode){var _84=_83.getNextSibling();if(_84){return _84;}_83=_83.getParent();}return null;}},_getRootOrFirstNode:function(){return this.showRoot?this.rootNode:this.rootNode.getChildren()[0];},_collapseNode:function(_85){if(_85._expandNodeDeferred){delete _85._expandNodeDeferred;}if(_85.isExpandable){if(_85.state=="LOADING"){return;}_85.collapse();this.onClose(_85.item,_85);this._state(_85,false);}},_expandNode:function(_86,_87){if(_86._expandNodeDeferred&&!_87){return _86._expandNodeDeferred;}var _88=this.model,_89=_86.item,_8a=this;switch(_86.state){case "UNCHECKED":_86.markProcessing();var def=(_86._expandNodeDeferred=new _5());_88.getChildren(_89,function(_8b){_86.unmarkProcessing();var _8c=_86.setChildItems(_8b);var ed=_8a._expandNode(_86,true);_8c.addCallback(function(){ed.addCallback(function(){def.callback();});});},function(err){console.error(_8a,": error loading root children: ",err);});break;default:def=(_86._expandNodeDeferred=_86.expand());this.onOpen(_86.item,_86);this._state(_86,true);}return def;},focusNode:function(_8d){_11.focus(_8d.labelNode);},_onNodeFocus:function(_8e){if(_8e&&_8e!=this.lastFocused){if(this.lastFocused&&!this.lastFocused._destroyed){this.lastFocused.setFocusable(false);}_8e.setFocusable(true);this.lastFocused=_8e;}},_onNodeMouseEnter:function(){},_onNodeMouseLeave:function(){},_onItemChange:function(_8f){var _90=this.model,_91=_90.getIdentity(_8f),_92=this._itemNodesMap[_91];if(_92){var _93=this.getLabel(_8f),_94=this.getTooltip(_8f);_1.forEach(_92,function(_95){_95.set({item:_8f,label:_93,tooltip:_94});_95._updateItemClasses(_8f);});}},_onItemChildrenChange:function(_96,_97){var _98=this.model,_99=_98.getIdentity(_96),_9a=this._itemNodesMap[_99];if(_9a){_1.forEach(_9a,function(_9b){_9b.setChildItems(_97);});}},_onItemDelete:function(_9c){var _9d=this.model,_9e=_9d.getIdentity(_9c),_9f=this._itemNodesMap[_9e];if(_9f){_1.forEach(_9f,function(_a0){this.dndController.removeTreeNode(_a0);var _a1=_a0.getParent();if(_a1){_a1.removeChild(_a0);}_a0.destroyRecursive();},this);delete this._itemNodesMap[_9e];}},_initState:function(){this._openedNodes={};if(this.persist&&this.cookieName){var _a2=_3(this.cookieName);if(_a2){_1.forEach(_a2.split(","),function(_a3){this._openedNodes[_a3]=true;},this);}}},_state:function(_a4,_a5){if(!this.persist){return false;}var _a6=_1.map(_a4.getTreePath(),function(_a7){return this.model.getIdentity(_a7);},this).join("/");if(arguments.length===1){return this._openedNodes[_a6];}else{if(_a5){this._openedNodes[_a6]=true;}else{delete this._openedNodes[_a6];}var ary=[];for(var id in this._openedNodes){ary.push(id);}_3(this.cookieName,ary.join(","),{expires:365});}},destroy:function(){if(this._curSearch){clearTimeout(this._curSearch.timer);delete this._curSearch;}if(this.rootNode){this.rootNode.destroyRecursive();}if(this.dndController&&!_f.isString(this.dndController)){this.dndController.destroy();}this.rootNode=null;this.inherited(arguments);},destroyRecursive:function(){this.destroy();},resize:function(_a8){if(_a8){_9.setMarginBox(this.domNode,_a8);}this._nodePixelIndent=_9.position(this.tree.indentDetector).w;if(this.tree.rootNode){this.tree.rootNode.set("indent",this.showRoot?0:-1);}},_createTreeNode:function(_a9){return new _1e(_a9);},_setTextDirAttr:function(_aa){if(_aa&&this.textDir!=_aa){this._set("textDir",_aa);this.rootNode.set("textDir",_aa);}}});_42._TreeNode=_1e;return _42;}); \ No newline at end of file
+require({cache:{"url:dijit/templates/TreeNode.html":"<div class=\"dijitTreeNode\" role=\"presentation\"\n\t><div data-dojo-attach-point=\"rowNode\" class=\"dijitTreeRow dijitInline\" role=\"presentation\"\n\t\t><div data-dojo-attach-point=\"indentNode\" class=\"dijitInline\"></div\n\t\t><img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"expandoNode\" class=\"dijitTreeExpando\" role=\"presentation\"\n\t\t/><span data-dojo-attach-point=\"expandoNodeText\" class=\"dijitExpandoText\" role=\"presentation\"\n\t\t></span\n\t\t><span data-dojo-attach-point=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" role=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" role=\"presentation\"\n\t\t\t/><span data-dojo-attach-point=\"labelNode\" class=\"dijitTreeLabel\" role=\"treeitem\" tabindex=\"-1\" aria-selected=\"false\"></span>\n\t\t</span\n\t></div>\n\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitTreeContainer\" role=\"presentation\" style=\"display: none;\"></div>\n</div>\n","url:dijit/templates/Tree.html":"<div class=\"dijitTree dijitTreeContainer\" role=\"tree\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" data-dojo-attach-point=\"indentDetector\"></div>\n</div>\n"}});define("dijit/Tree",["dojo/_base/array","dojo/_base/connect","dojo/cookie","dojo/_base/declare","dojo/Deferred","dojo/DeferredList","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/errors/create","dojo/fx","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/topic","dojo/touch","dojo/when","./focus","./registry","./_base/manager","./_Widget","./_TemplatedMixin","./_Container","./_Contained","./_CssStateMixin","dojo/text!./templates/TreeNode.html","dojo/text!./templates/Tree.html","./tree/TreeStoreModel","./tree/ForestStoreModel","./tree/_dndSelector"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,on,_11,_12,_13,_14,_15,_16,_17,_18,_19,_1a,_1b,_1c,_1d,_1e,_1f,_20){_5=_4(_5,{addCallback:function(_21){this.then(_21);},addErrback:function(_22){this.then(null,_22);}});var _23=_4("dijit._TreeNode",[_17,_18,_19,_1a,_1b],{item:null,isTreeNode:true,label:"",_setLabelAttr:{node:"labelNode",type:"innerText"},isExpandable:null,isExpanded:false,state:"UNCHECKED",templateString:_1c,baseClass:"dijitTreeNode",cssStateNodes:{rowNode:"dijitTreeRow"},_setTooltipAttr:{node:"rowNode",type:"attribute",attribute:"title"},buildRendering:function(){this.inherited(arguments);this._setExpando();this._updateItemClasses(this.item);if(this.isExpandable){this.labelNode.setAttribute("aria-expanded",this.isExpanded);}this.setSelected(false);},_setIndentAttr:function(_24){var _25=(Math.max(_24,0)*this.tree._nodePixelIndent)+"px";_a.set(this.domNode,"backgroundPosition",_25+" 0px");_a.set(this.indentNode,this.isLeftToRight()?"paddingLeft":"paddingRight",_25);_1.forEach(this.getChildren(),function(_26){_26.set("indent",_24+1);});this._set("indent",_24);},markProcessing:function(){this.state="LOADING";this._setExpando(true);},unmarkProcessing:function(){this._setExpando(false);},_updateItemClasses:function(_27){var _28=this.tree,_29=_28.model;if(_28._v10Compat&&_27===_29.root){_27=null;}this._applyClassAndStyle(_27,"icon","Icon");this._applyClassAndStyle(_27,"label","Label");this._applyClassAndStyle(_27,"row","Row");this.tree._startPaint(true);},_applyClassAndStyle:function(_2a,_2b,_2c){var _2d="_"+_2b+"Class";var _2e=_2b+"Node";var _2f=this[_2d];this[_2d]=this.tree["get"+_2c+"Class"](_2a,this.isExpanded);_8.replace(this[_2e],this[_2d]||"",_2f||"");_a.set(this[_2e],this.tree["get"+_2c+"Style"](_2a,this.isExpanded)||{});},_updateLayout:function(){var _30=this.getParent();if(!_30||!_30.rowNode||_30.rowNode.style.display=="none"){_8.add(this.domNode,"dijitTreeIsRoot");}else{_8.toggle(this.domNode,"dijitTreeIsLast",!this.getNextSibling());}},_setExpando:function(_31){var _32=["dijitTreeExpandoLoading","dijitTreeExpandoOpened","dijitTreeExpandoClosed","dijitTreeExpandoLeaf"],_33=["*","-","+","*"],idx=_31?0:(this.isExpandable?(this.isExpanded?1:2):3);_8.replace(this.expandoNode,_32[idx],_32);this.expandoNodeText.innerHTML=_33[idx];},expand:function(){if(this._expandDeferred){return this._expandDeferred;}if(this._collapseDeferred){this._collapseDeferred.cancel();delete this._collapseDeferred;}this.isExpanded=true;this.labelNode.setAttribute("aria-expanded","true");if(this.tree.showRoot||this!==this.tree.rootNode){this.containerNode.setAttribute("role","group");}_8.add(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(this==this.tree.rootNode&&this.tree.showRoot){this.tree.domNode.setAttribute("aria-expanded","true");}var def,_34=_d.wipeIn({node:this.containerNode,duration:_16.defaultDuration,onEnd:function(){def.resolve(true);}});def=(this._expandDeferred=new _5(function(){_34.stop();}));_34.play();return def;},collapse:function(){if(this._collapseDeferred){return this._collapseDeferred;}if(this._expandDeferred){this._expandDeferred.cancel();delete this._expandDeferred;}this.isExpanded=false;this.labelNode.setAttribute("aria-expanded","false");if(this==this.tree.rootNode&&this.tree.showRoot){this.tree.domNode.setAttribute("aria-expanded","false");}_8.remove(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);var def,_35=_d.wipeOut({node:this.containerNode,duration:_16.defaultDuration,onEnd:function(){def.resolve(true);}});def=(this._collapseDeferred=new _5(function(){_35.stop();}));_35.play();return def;},indent:0,setChildItems:function(_36){var _37=this.tree,_38=_37.model,_39=[];var _3a=this.getChildren();_1.forEach(_3a,function(_3b){_19.prototype.removeChild.call(this,_3b);},this);this.defer(function(){_1.forEach(_3a,function(_3c){if(!_3c._destroyed&&!_3c.getParent()){_37.dndController.removeTreeNode(_3c);var id=_38.getIdentity(_3c.item),ary=_37._itemNodesMap[id];if(ary.length==1){delete _37._itemNodesMap[id];}else{var _3d=_1.indexOf(ary,_3c);if(_3d!=-1){ary.splice(_3d,1);}}_3c.destroyRecursive();}});});this.state="LOADED";if(_36&&_36.length>0){this.isExpandable=true;_1.forEach(_36,function(_3e){var id=_38.getIdentity(_3e),_3f=_37._itemNodesMap[id],_40;if(_3f){for(var i=0;i<_3f.length;i++){if(_3f[i]&&!_3f[i].getParent()){_40=_3f[i];_40.set("indent",this.indent+1);break;}}}if(!_40){_40=this.tree._createTreeNode({item:_3e,tree:_37,isExpandable:_38.mayHaveChildren(_3e),label:_37.getLabel(_3e),tooltip:_37.getTooltip(_3e),ownerDocument:_37.ownerDocument,dir:_37.dir,lang:_37.lang,textDir:_37.textDir,indent:this.indent+1});if(_3f){_3f.push(_40);}else{_37._itemNodesMap[id]=[_40];}}this.addChild(_40);if(this.tree.autoExpand||this.tree._state(_40)){_39.push(_37._expandNode(_40));}},this);_1.forEach(this.getChildren(),function(_41){_41._updateLayout();});}else{this.isExpandable=false;}if(this._setExpando){this._setExpando(false);}this._updateItemClasses(this.item);if(this==_37.rootNode){var fc=this.tree.showRoot?this:this.getChildren()[0];if(fc){fc.setFocusable(true);_37.lastFocused=fc;}else{_37.domNode.setAttribute("tabIndex","0");}}var def=new _6(_39);this.tree._startPaint(def);return def;},getTreePath:function(){var _42=this;var _43=[];while(_42&&_42!==this.tree.rootNode){_43.unshift(_42.item);_42=_42.getParent();}_43.unshift(this.tree.rootNode.item);return _43;},getIdentity:function(){return this.tree.model.getIdentity(this.item);},removeChild:function(_44){this.inherited(arguments);var _45=this.getChildren();if(_45.length==0){this.isExpandable=false;this.collapse();}_1.forEach(_45,function(_46){_46._updateLayout();});},makeExpandable:function(){this.isExpandable=true;this._setExpando(false);},setSelected:function(_47){this.labelNode.setAttribute("aria-selected",_47?"true":"false");_8.toggle(this.rowNode,"dijitTreeRowSelected",_47);},setFocusable:function(_48){this.labelNode.setAttribute("tabIndex",_48?"0":"-1");},_setTextDirAttr:function(_49){if(_49&&((this.textDir!=_49)||!this._created)){this._set("textDir",_49);this.applyTextDir(this.labelNode,this.labelNode.innerText||this.labelNode.textContent||"");_1.forEach(this.getChildren(),function(_4a){_4a.set("textDir",_49);},this);}}});var _4b=_4("dijit.Tree",[_17,_18],{store:null,model:null,query:null,label:"",showRoot:true,childrenAttr:["children"],paths:[],path:[],selectedItems:null,selectedItem:null,openOnClick:false,openOnDblClick:false,templateString:_1d,persist:true,autoExpand:false,dndController:_20,dndParams:["onDndDrop","itemCreator","onDndCancel","checkAcceptance","checkItemAcceptance","dragThreshold","betweenThreshold"],onDndDrop:null,itemCreator:null,onDndCancel:null,checkAcceptance:null,checkItemAcceptance:null,dragThreshold:5,betweenThreshold:0,_nodePixelIndent:19,_publish:function(_4c,_4d){_11.publish(this.id,_10.mixin({tree:this,event:_4c},_4d||{}));},postMixInProperties:function(){this.tree=this;if(this.autoExpand){this.persist=false;}this._itemNodesMap={};if(!this.cookieName&&this.id){this.cookieName=this.id+"SaveStateCookie";}this.expandChildrenDeferred=new _5();this.pendingCommandsDeferred=this.expandChildrenDeferred;this.inherited(arguments);},postCreate:function(){this._initState();var _4e=this;this.own(on(this.domNode,on.selector(".dijitTreeNode",_12.enter),function(evt){_4e._onNodeMouseEnter(_15.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeNode",_12.leave),function(evt){_4e._onNodeMouseLeave(_15.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeNode","click"),function(evt){_4e._onClick(_15.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeNode","dblclick"),function(evt){_4e._onDblClick(_15.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeNode","keypress"),function(evt){_4e._onKeyPress(_15.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeNode","keydown"),function(evt){_4e._onKeyDown(_15.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeRow","focusin"),function(evt){_4e._onNodeFocus(_15.getEnclosingWidget(this),evt);}));if(!this.model){this._store2model();}this.connect(this.model,"onChange","_onItemChange");this.connect(this.model,"onChildrenChange","_onItemChildrenChange");this.connect(this.model,"onDelete","_onItemDelete");this.inherited(arguments);if(this.dndController){if(_10.isString(this.dndController)){this.dndController=_10.getObject(this.dndController);}var _4f={};for(var i=0;i<this.dndParams.length;i++){if(this[this.dndParams[i]]){_4f[this.dndParams[i]]=this[this.dndParams[i]];}}this.dndController=new this.dndController(this,_4f);}this._load();if(!this.params.path&&!this.params.paths&&this.persist){this.set("paths",this.dndController._getSavedPaths());}this.onLoadDeferred=this.pendingCommandsDeferred;this.onLoadDeferred.then(_10.hitch(this,"onLoad"));},_store2model:function(){this._v10Compat=true;_e.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query");var _50={id:this.id+"_ForestStoreModel",store:this.store,query:this.query,childrenAttrs:this.childrenAttr};if(this.params.mayHaveChildren){_50.mayHaveChildren=_10.hitch(this,"mayHaveChildren");}if(this.params.getItemChildren){_50.getChildren=_10.hitch(this,function(_51,_52,_53){this.getItemChildren((this._v10Compat&&_51===this.model.root)?null:_51,_52,_53);});}this.model=new _1f(_50);this.showRoot=Boolean(this.label);},onLoad:function(){},_load:function(){this.model.getRoot(_10.hitch(this,function(_54){var rn=(this.rootNode=this.tree._createTreeNode({item:_54,tree:this,isExpandable:true,label:this.label||this.getLabel(_54),textDir:this.textDir,indent:this.showRoot?0:-1}));if(!this.showRoot){rn.rowNode.style.display="none";this.domNode.setAttribute("role","presentation");this.domNode.removeAttribute("aria-expanded");this.domNode.removeAttribute("aria-multiselectable");rn.labelNode.setAttribute("role","presentation");rn.containerNode.setAttribute("role","tree");rn.containerNode.setAttribute("aria-expanded","true");rn.containerNode.setAttribute("aria-multiselectable",!this.dndController.singular);}else{this.domNode.setAttribute("aria-multiselectable",!this.dndController.singular);}this.domNode.appendChild(rn.domNode);var _55=this.model.getIdentity(_54);if(this._itemNodesMap[_55]){this._itemNodesMap[_55].push(rn);}else{this._itemNodesMap[_55]=[rn];}rn._updateLayout();this._expandNode(rn).then(_10.hitch(this,function(){this.expandChildrenDeferred.resolve(true);}));}),_10.hitch(this,function(err){console.error(this,": error loading root: ",err);}));},getNodesByItem:function(_56){if(!_56){return [];}var _57=_10.isString(_56)?_56:this.model.getIdentity(_56);return [].concat(this._itemNodesMap[_57]);},_setSelectedItemAttr:function(_58){this.set("selectedItems",[_58]);},_setSelectedItemsAttr:function(_59){var _5a=this;return this.pendingCommandsDeferred=this.pendingCommandsDeferred.then(_10.hitch(this,function(){var _5b=_1.map(_59,function(_5c){return (!_5c||_10.isString(_5c))?_5c:_5a.model.getIdentity(_5c);});var _5d=[];_1.forEach(_5b,function(id){_5d=_5d.concat(_5a._itemNodesMap[id]||[]);});this.set("selectedNodes",_5d);}));},_setPathAttr:function(_5e){if(_5e.length){return this.set("paths",[_5e]);}else{return this.set("paths",[]);}},_setPathsAttr:function(_5f){var _60=this;return this.pendingCommandsDeferred=this.pendingCommandsDeferred.then(function(){return new _6(_1.map(_5f,function(_61){var d=new _5();_61=_1.map(_61,function(_62){return _10.isString(_62)?_62:_60.model.getIdentity(_62);});if(_61.length){_63(_61,[_60.rootNode],d);}else{d.reject(new _4b.PathError("Empty path"));}return d;}));}).then(_64);function _63(_65,_66,def){var _67=_65.shift();var _68=_1.filter(_66,function(_69){return _69.getIdentity()==_67;})[0];if(!!_68){if(_65.length){_60._expandNode(_68).then(function(){_63(_65,_68.getChildren(),def);});}else{def.resolve(_68);}}else{def.reject(new _4b.PathError("Could not expand path at "+_67));}};function _64(_6a){_60.set("selectedNodes",_1.map(_1.filter(_6a,function(x){return x[0];}),function(x){return x[1];}));};},_setSelectedNodeAttr:function(_6b){this.set("selectedNodes",[_6b]);},_setSelectedNodesAttr:function(_6c){this.dndController.setSelection(_6c);},expandAll:function(){var _6d=this;function _6e(_6f){var def=new dojo.Deferred();_6d._expandNode(_6f).then(function(){var _70=_1.filter(_6f.getChildren()||[],function(_71){return _71.isExpandable;}),_72=_1.map(_70,_6e);new dojo.DeferredList(_72).then(function(){def.resolve(true);});});return def;};return _6e(this.rootNode);},collapseAll:function(){var _73=this;function _74(_75){var def=new dojo.Deferred();def.label="collapseAllDeferred";var _76=_1.filter(_75.getChildren()||[],function(_77){return _77.isExpandable;}),_78=_1.map(_76,_74);new dojo.DeferredList(_78).then(function(){if(!_75.isExpanded||(_75==_73.rootNode&&!_73.showRoot)){def.resolve(true);}else{_73._collapseNode(_75).then(function(){def.resolve(true);});}});return def;};return _74(this.rootNode);},mayHaveChildren:function(){},getItemChildren:function(){},getLabel:function(_79){return this.model.getLabel(_79);},getIconClass:function(_7a,_7b){return (!_7a||this.model.mayHaveChildren(_7a))?(_7b?"dijitFolderOpened":"dijitFolderClosed"):"dijitLeaf";},getLabelClass:function(){},getRowClass:function(){},getIconStyle:function(){},getLabelStyle:function(){},getRowStyle:function(){},getTooltip:function(){return "";},_onKeyPress:function(_7c,e){if(e.charCode<=32){return;}if(!e.altKey&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey){var c=String.fromCharCode(e.charCode);this._onLetterKeyNav({node:_7c,key:c.toLowerCase()});_b.stop(e);}},_onKeyDown:function(_7d,e){var key=e.keyCode;var map=this._keyHandlerMap;if(!map){map={};map[_f.ENTER]=map[_f.SPACE]=map[" "]="_onEnterKey";map[this.isLeftToRight()?_f.LEFT_ARROW:_f.RIGHT_ARROW]="_onLeftArrow";map[this.isLeftToRight()?_f.RIGHT_ARROW:_f.LEFT_ARROW]="_onRightArrow";map[_f.UP_ARROW]="_onUpArrow";map[_f.DOWN_ARROW]="_onDownArrow";map[_f.HOME]="_onHomeKey";map[_f.END]="_onEndKey";this._keyHandlerMap=map;}if(this._keyHandlerMap[key]){if(this._curSearch){this._curSearch.timer.remove();delete this._curSearch;}this[this._keyHandlerMap[key]]({node:_7d,item:_7d.item,evt:e});_b.stop(e);}},_onEnterKey:function(_7e){this._publish("execute",{item:_7e.item,node:_7e.node});this.dndController.userSelect(_7e.node,_2.isCopyKey(_7e.evt),_7e.evt.shiftKey);this.onClick(_7e.item,_7e.node,_7e.evt);},_onDownArrow:function(_7f){var _80=this._getNextNode(_7f.node);if(_80&&_80.isTreeNode){this.focusNode(_80);}},_onUpArrow:function(_81){var _82=_81.node;var _83=_82.getPreviousSibling();if(_83){_82=_83;while(_82.isExpandable&&_82.isExpanded&&_82.hasChildren()){var _84=_82.getChildren();_82=_84[_84.length-1];}}else{var _85=_82.getParent();if(!(!this.showRoot&&_85===this.rootNode)){_82=_85;}}if(_82&&_82.isTreeNode){this.focusNode(_82);}},_onRightArrow:function(_86){var _87=_86.node;if(_87.isExpandable&&!_87.isExpanded){this._expandNode(_87);}else{if(_87.hasChildren()){_87=_87.getChildren()[0];if(_87&&_87.isTreeNode){this.focusNode(_87);}}}},_onLeftArrow:function(_88){var _89=_88.node;if(_89.isExpandable&&_89.isExpanded){this._collapseNode(_89);}else{var _8a=_89.getParent();if(_8a&&_8a.isTreeNode&&!(!this.showRoot&&_8a===this.rootNode)){this.focusNode(_8a);}}},_onHomeKey:function(){var _8b=this._getRootOrFirstNode();if(_8b){this.focusNode(_8b);}},_onEndKey:function(){var _8c=this.rootNode;while(_8c.isExpanded){var c=_8c.getChildren();_8c=c[c.length-1];}if(_8c&&_8c.isTreeNode){this.focusNode(_8c);}},multiCharSearchDuration:250,_onLetterKeyNav:function(_8d){var cs=this._curSearch;if(cs){cs.pattern=cs.pattern+_8d.key;cs.timer.remove();}else{cs=this._curSearch={pattern:_8d.key,startNode:_8d.node};}cs.timer=this.defer(function(){delete this._curSearch;},this.multiCharSearchDuration);var _8e=cs.startNode;do{_8e=this._getNextNode(_8e);if(!_8e){_8e=this._getRootOrFirstNode();}}while(_8e!==cs.startNode&&(_8e.label.toLowerCase().substr(0,cs.pattern.length)!=cs.pattern));if(_8e&&_8e.isTreeNode){if(_8e!==cs.startNode){this.focusNode(_8e);}}},isExpandoNode:function(_8f,_90){return _7.isDescendant(_8f,_90.expandoNode)||_7.isDescendant(_8f,_90.expandoNodeText);},_onClick:function(_91,e){var _92=e.target,_93=this.isExpandoNode(_92,_91);if((this.openOnClick&&_91.isExpandable)||_93){if(_91.isExpandable){this._onExpandoClick({node:_91});}}else{this._publish("execute",{item:_91.item,node:_91,evt:e});this.onClick(_91.item,_91,e);this.focusNode(_91);}_b.stop(e);},_onDblClick:function(_94,e){var _95=e.target,_96=(_95==_94.expandoNode||_95==_94.expandoNodeText);if((this.openOnDblClick&&_94.isExpandable)||_96){if(_94.isExpandable){this._onExpandoClick({node:_94});}}else{this._publish("execute",{item:_94.item,node:_94,evt:e});this.onDblClick(_94.item,_94,e);this.focusNode(_94);}_b.stop(e);},_onExpandoClick:function(_97){var _98=_97.node;this.focusNode(_98);if(_98.isExpanded){this._collapseNode(_98);}else{this._expandNode(_98);}},onClick:function(){},onDblClick:function(){},onOpen:function(){},onClose:function(){},_getNextNode:function(_99){if(_99.isExpandable&&_99.isExpanded&&_99.hasChildren()){return _99.getChildren()[0];}else{while(_99&&_99.isTreeNode){var _9a=_99.getNextSibling();if(_9a){return _9a;}_99=_99.getParent();}return null;}},_getRootOrFirstNode:function(){return this.showRoot?this.rootNode:this.rootNode.getChildren()[0];},_collapseNode:function(_9b){if(_9b._expandNodeDeferred){delete _9b._expandNodeDeferred;}if(_9b.state=="LOADING"){return;}if(_9b.isExpanded){var ret=_9b.collapse();this.onClose(_9b.item,_9b);this._state(_9b,false);this._startPaint(ret);return ret;}},_expandNode:function(_9c){var def=new _5();if(_9c._expandNodeDeferred){return _9c._expandNodeDeferred;}var _9d=this.model,_9e=_9c.item,_9f=this;if(!_9c._loadDeferred){_9c.markProcessing();_9c._loadDeferred=new _5();_9d.getChildren(_9e,function(_a0){_9c.unmarkProcessing();_9c.setChildItems(_a0).then(function(){_9c._loadDeferred.resolve(_a0);});},function(err){console.error(_9f,": error loading "+_9c.label+" children: ",err);_9c._loadDeferred.reject(err);});}_9c._loadDeferred.then(_10.hitch(this,function(){_9c.expand().then(function(){def.resolve(true);});this.onOpen(_9c.item,_9c);this._state(_9c,true);}));this._startPaint(def);return def;},focusNode:function(_a1){_14.focus(_a1.labelNode);},_onNodeFocus:function(_a2){if(_a2&&_a2!=this.lastFocused){if(this.lastFocused&&!this.lastFocused._destroyed){this.lastFocused.setFocusable(false);}_a2.setFocusable(true);this.lastFocused=_a2;}},_onNodeMouseEnter:function(){},_onNodeMouseLeave:function(){},_onItemChange:function(_a3){var _a4=this.model,_a5=_a4.getIdentity(_a3),_a6=this._itemNodesMap[_a5];if(_a6){var _a7=this.getLabel(_a3),_a8=this.getTooltip(_a3);_1.forEach(_a6,function(_a9){_a9.set({item:_a3,label:_a7,tooltip:_a8});_a9._updateItemClasses(_a3);});}},_onItemChildrenChange:function(_aa,_ab){var _ac=this.model,_ad=_ac.getIdentity(_aa),_ae=this._itemNodesMap[_ad];if(_ae){_1.forEach(_ae,function(_af){_af.setChildItems(_ab);});}},_onItemDelete:function(_b0){var _b1=this.model,_b2=_b1.getIdentity(_b0),_b3=this._itemNodesMap[_b2];if(_b3){_1.forEach(_b3,function(_b4){this.dndController.removeTreeNode(_b4);var _b5=_b4.getParent();if(_b5){_b5.removeChild(_b4);}_b4.destroyRecursive();},this);delete this._itemNodesMap[_b2];}},_initState:function(){this._openedNodes={};if(this.persist&&this.cookieName){var _b6=_3(this.cookieName);if(_b6){_1.forEach(_b6.split(","),function(_b7){this._openedNodes[_b7]=true;},this);}}},_state:function(_b8,_b9){if(!this.persist){return false;}var _ba=_1.map(_b8.getTreePath(),function(_bb){return this.model.getIdentity(_bb);},this).join("/");if(arguments.length===1){return this._openedNodes[_ba];}else{if(_b9){this._openedNodes[_ba]=true;}else{delete this._openedNodes[_ba];}if(this.persist&&this.cookieName){var ary=[];for(var id in this._openedNodes){ary.push(id);}_3(this.cookieName,ary.join(","),{expires:365});}}},destroy:function(){if(this._curSearch){this._curSearch.timer.remove();delete this._curSearch;}if(this.rootNode){this.rootNode.destroyRecursive();}if(this.dndController&&!_10.isString(this.dndController)){this.dndController.destroy();}this.rootNode=null;this.inherited(arguments);},destroyRecursive:function(){this.destroy();},resize:function(_bc){if(_bc){_9.setMarginBox(this.domNode,_bc);}this._nodePixelIndent=_9.position(this.tree.indentDetector).w||this._nodePixelIndent;this.expandChildrenDeferred.then(_10.hitch(this,function(){this.rootNode.set("indent",this.showRoot?0:-1);this._adjustWidths();}));},_outstandingPaintOperations:0,_startPaint:function(p){this._outstandingPaintOperations++;if(this._adjustWidthsTimer){this._adjustWidthsTimer.remove();delete this._adjustWidthsTimer;}var oc=_10.hitch(this,function(){this._outstandingPaintOperations--;if(this._outstandingPaintOperations<=0&&!this._adjustWidthsTimer&&this._started){this._adjustWidthsTimer=this.defer("_adjustWidths");}});_13(p,oc,oc);},_adjustWidths:function(){if(this._adjustWidthsTimer){this._adjustWidthsTimer.remove();delete this._adjustWidthsTimer;}var _bd=0,_be=[];function _bf(_c0){var _c1=_c0.rowNode;_c1.style.width="auto";_bd=Math.max(_bd,_c1.clientWidth);_be.push(_c1);if(_c0.isExpanded){_1.forEach(_c0.getChildren(),_bf);}};_bf(this.rootNode);_bd=Math.max(_bd,_9.getContentBox(this.domNode).w);_1.forEach(_be,function(_c2){_c2.style.width=_bd+"px";});},_createTreeNode:function(_c3){return new _23(_c3);},_setTextDirAttr:function(_c4){if(_c4&&this.textDir!=_c4){this._set("textDir",_c4);this.rootNode.set("textDir",_c4);}}});_4b.PathError=_c("TreePathError");_4b._TreeNode=_23;return _4b;}); \ No newline at end of file
diff --git a/lib/dijit/Viewport.js b/lib/dijit/Viewport.js
new file mode 100644
index 000000000..15b4ba531
--- /dev/null
+++ b/lib/dijit/Viewport.js
@@ -0,0 +1,2 @@
+//>>built
+define("dijit/Viewport",["dojo/Evented","dojo/on","dojo/ready","dojo/sniff","dojo/_base/window","dojo/window"],function(_1,on,_2,_3,_4,_5){var _6=new _1();_2(200,function(){var _7=_5.getBox();_6._rlh=on(_4.global,"resize",function(){var _8=_5.getBox();if(_7.h==_8.h&&_7.w==_8.w){return;}_7=_8;_6.emit("resize");});if(_3("ie")==8){var _9=screen.deviceXDPI;setInterval(function(){if(screen.deviceXDPI!=_9){_9=screen.deviceXDPI;_6.emit("resize");}},500);}});return _6;}); \ No newline at end of file
diff --git a/lib/dijit/WidgetSet.js b/lib/dijit/WidgetSet.js
index bb3a98353..4c5e8622d 100644
--- a/lib/dijit/WidgetSet.js
+++ b/lib/dijit/WidgetSet.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/WidgetSet",["dojo/_base/array","dojo/_base/declare","dojo/_base/window","./registry"],function(_1,_2,_3,_4){var _5=_2("dijit.WidgetSet",null,{constructor:function(){this._hash={};this.length=0;},add:function(_6){if(this._hash[_6.id]){throw new Error("Tried to register widget with id=="+_6.id+" but that id is already registered");}this._hash[_6.id]=_6;this.length++;},remove:function(id){if(this._hash[id]){delete this._hash[id];this.length--;}},forEach:function(_7,_8){_8=_8||_3.global;var i=0,id;for(id in this._hash){_7.call(_8,this._hash[id],i++,this._hash);}return this;},filter:function(_9,_a){_a=_a||_3.global;var _b=new _5(),i=0,id;for(id in this._hash){var w=this._hash[id];if(_9.call(_a,w,i++,this._hash)){_b.add(w);}}return _b;},byId:function(id){return this._hash[id];},byClass:function(_c){var _d=new _5(),id,_e;for(id in this._hash){_e=this._hash[id];if(_e.declaredClass==_c){_d.add(_e);}}return _d;},toArray:function(){var ar=[];for(var id in this._hash){ar.push(this._hash[id]);}return ar;},map:function(_f,_10){return _1.map(this.toArray(),_f,_10);},every:function(_11,_12){_12=_12||_3.global;var x=0,i;for(i in this._hash){if(!_11.call(_12,this._hash[i],x++,this._hash)){return false;}}return true;},some:function(_13,_14){_14=_14||_3.global;var x=0,i;for(i in this._hash){if(_13.call(_14,this._hash[i],x++,this._hash)){return true;}}return false;}});_1.forEach(["forEach","filter","byClass","map","every","some"],function(_15){_4[_15]=_5.prototype[_15];});return _5;}); \ No newline at end of file
+define("dijit/WidgetSet",["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","./registry"],function(_1,_2,_3,_4){var _5=_2("dijit.WidgetSet",null,{constructor:function(){this._hash={};this.length=0;},add:function(_6){if(this._hash[_6.id]){throw new Error("Tried to register widget with id=="+_6.id+" but that id is already registered");}this._hash[_6.id]=_6;this.length++;},remove:function(id){if(this._hash[id]){delete this._hash[id];this.length--;}},forEach:function(_7,_8){_8=_8||_3.global;var i=0,id;for(id in this._hash){_7.call(_8,this._hash[id],i++,this._hash);}return this;},filter:function(_9,_a){_a=_a||_3.global;var _b=new _5(),i=0,id;for(id in this._hash){var w=this._hash[id];if(_9.call(_a,w,i++,this._hash)){_b.add(w);}}return _b;},byId:function(id){return this._hash[id];},byClass:function(_c){var _d=new _5(),id,_e;for(id in this._hash){_e=this._hash[id];if(_e.declaredClass==_c){_d.add(_e);}}return _d;},toArray:function(){var ar=[];for(var id in this._hash){ar.push(this._hash[id]);}return ar;},map:function(_f,_10){return _1.map(this.toArray(),_f,_10);},every:function(_11,_12){_12=_12||_3.global;var x=0,i;for(i in this._hash){if(!_11.call(_12,this._hash[i],x++,this._hash)){return false;}}return true;},some:function(_13,_14){_14=_14||_3.global;var x=0,i;for(i in this._hash){if(_13.call(_14,this._hash[i],x++,this._hash)){return true;}}return false;}});_1.forEach(["forEach","filter","byClass","map","every","some"],function(_15){_4[_15]=_5.prototype[_15];});return _5;}); \ No newline at end of file
diff --git a/lib/dijit/_BidiSupport.js b/lib/dijit/_BidiSupport.js
index e64895551..0176ea586 100644
--- a/lib/dijit/_BidiSupport.js
+++ b/lib/dijit/_BidiSupport.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_BidiSupport",["./_WidgetBase"],function(_1){_1.extend({getTextDir:function(_2){return this.textDir=="auto"?this._checkContextual(_2):this.textDir;},_checkContextual:function(_3){var _4=/[A-Za-z\u05d0-\u065f\u066a-\u06ef\u06fa-\u07ff\ufb1d-\ufdff\ufe70-\ufefc]/.exec(_3);return _4?(_4[0]<="z"?"ltr":"rtl"):this.dir?this.dir:this.isLeftToRight()?"ltr":"rtl";},applyTextDir:function(_5,_6){var _7=this.textDir=="auto"?this._checkContextual(_6):this.textDir;if(_5.dir!=_7){_5.dir=_7;}}});return _1;}); \ No newline at end of file
+define("dijit/_BidiSupport",["./_WidgetBase"],function(_1){_1.extend({getTextDir:function(_2){return this.textDir=="auto"?this._checkContextual(_2):this.textDir;},_checkContextual:function(_3){var _4=/[A-Za-z\u05d0-\u065f\u066a-\u06ef\u06fa-\u07ff\ufb1d-\ufdff\ufe70-\ufefc]/.exec(_3);return _4?(_4[0]<="z"?"ltr":"rtl"):this.dir?this.dir:this.isLeftToRight()?"ltr":"rtl";},applyTextDir:function(_5,_6){var _7=this.textDir=="auto"?this._checkContextual(_6):this.textDir;if(_5.dir!=_7){_5.dir=_7;}},enforceTextDirWithUcc:function(_8,_9){if(this.textDir){_8.originalText=_9;var _a=this.textDir=="auto"?this._checkContextual(_9):this.textDir;return (_a=="ltr"?_b.LRE:_b.RLE)+_9+_b.PDF;}return _9;},restoreOriginalText:function(_c){if(_c.originalText){_c.text=_c.originalText;delete _c.originalText;}return _c;}});var _b={LRM:"‎",LRE:"‪",PDF:"‬",RLM:"‏",RLE:"‫"};return _1;}); \ No newline at end of file
diff --git a/lib/dijit/_Calendar.js b/lib/dijit/_Calendar.js
index 2e4d78e3e..a2d7e48d8 100644
--- a/lib/dijit/_Calendar.js
+++ b/lib/dijit/_Calendar.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_Calendar",["dojo/_base/kernel","./Calendar","."],function(_1,_2,_3){_1.deprecated("dijit._Calendar is deprecated","dijit._Calendar moved to dijit.Calendar",2);_3._Calendar=_2;}); \ No newline at end of file
+define("dijit/_Calendar",["dojo/_base/kernel","./Calendar","./main"],function(_1,_2,_3){_1.deprecated("dijit._Calendar is deprecated","dijit._Calendar moved to dijit.Calendar",2);_3._Calendar=_2;}); \ No newline at end of file
diff --git a/lib/dijit/_Container.js b/lib/dijit/_Container.js
index bbe597fcb..0e8256517 100644
--- a/lib/dijit/_Container.js
+++ b/lib/dijit/_Container.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_Container",["dojo/_base/array","dojo/_base/declare","dojo/dom-construct","./registry"],function(_1,_2,_3,_4){return _2("dijit._Container",null,{buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},addChild:function(_5,_6){var _7=this.containerNode;if(_6&&typeof _6=="number"){var _8=this.getChildren();if(_8&&_8.length>=_6){_7=_8[_6-1].domNode;_6="after";}}_3.place(_5.domNode,_7,_6);if(this._started&&!_5._started){_5.startup();}},removeChild:function(_9){if(typeof _9=="number"){_9=this.getChildren()[_9];}if(_9){var _a=_9.domNode;if(_a&&_a.parentNode){_a.parentNode.removeChild(_a);}}},hasChildren:function(){return this.getChildren().length>0;},_getSiblingOfChild:function(_b,_c){var _d=_b.domNode,_e=(_c>0?"nextSibling":"previousSibling");do{_d=_d[_e];}while(_d&&(_d.nodeType!=1||!_4.byNode(_d)));return _d&&_4.byNode(_d);},getIndexOfChild:function(_f){return _1.indexOf(this.getChildren(),_f);}});}); \ No newline at end of file
+define("dijit/_Container",["dojo/_base/array","dojo/_base/declare","dojo/dom-construct"],function(_1,_2,_3){return _2("dijit._Container",null,{buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},addChild:function(_4,_5){var _6=this.containerNode;if(_5&&typeof _5=="number"){var _7=this.getChildren();if(_7&&_7.length>=_5){_6=_7[_5-1].domNode;_5="after";}}_3.place(_4.domNode,_6,_5);if(this._started&&!_4._started){_4.startup();}},removeChild:function(_8){if(typeof _8=="number"){_8=this.getChildren()[_8];}if(_8){var _9=_8.domNode;if(_9&&_9.parentNode){_9.parentNode.removeChild(_9);}}},hasChildren:function(){return this.getChildren().length>0;},_getSiblingOfChild:function(_a,_b){var _c=this.getChildren(),_d=_1.indexOf(this.getChildren(),_a);return _c[_d+_b];},getIndexOfChild:function(_e){return _1.indexOf(this.getChildren(),_e);}});}); \ No newline at end of file
diff --git a/lib/dijit/_CssStateMixin.js b/lib/dijit/_CssStateMixin.js
index f3e686b41..62a5eb15b 100644
--- a/lib/dijit/_CssStateMixin.js
+++ b/lib/dijit/_CssStateMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_CssStateMixin",["dojo/touch","dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/_base/lang","dojo/_base/window"],function(_1,_2,_3,_4,_5,_6){return _3("dijit._CssStateMixin",[],{cssStateNodes:{},hovering:false,active:false,_applyAttributes:function(){this.inherited(arguments);_2.forEach(["onmouseenter","onmouseleave",_1.press],function(e){this.connect(this.domNode,e,"_cssMouseEvent");},this);_2.forEach(["disabled","readOnly","checked","selected","focused","state","hovering","active"],function(_7){this.watch(_7,_5.hitch(this,"_setStateClass"));},this);for(var ap in this.cssStateNodes){this._trackMouseState(this[ap],this.cssStateNodes[ap]);}this._setStateClass();},_cssMouseEvent:function(_8){if(!this.disabled){switch(_8.type){case "mouseenter":case "mouseover":this._set("hovering",true);this._set("active",this._mouseDown);break;case "mouseleave":case "mouseout":this._set("hovering",false);this._set("active",false);break;case "mousedown":case "touchpress":this._set("active",true);this._mouseDown=true;var _9=this.connect(_6.body(),_1.release,function(){this._mouseDown=false;this._set("active",false);this.disconnect(_9);});break;}}},_setStateClass:function(){var _a=this.baseClass.split(" ");function _b(_c){_a=_a.concat(_2.map(_a,function(c){return c+_c;}),"dijit"+_c);};if(!this.isLeftToRight()){_b("Rtl");}var _d=this.checked=="mixed"?"Mixed":(this.checked?"Checked":"");if(this.checked){_b(_d);}if(this.state){_b(this.state);}if(this.selected){_b("Selected");}if(this.disabled){_b("Disabled");}else{if(this.readOnly){_b("ReadOnly");}else{if(this.active){_b("Active");}else{if(this.hovering){_b("Hover");}}}}if(this.focused){_b("Focused");}var tn=this.stateNode||this.domNode,_e={};_2.forEach(tn.className.split(" "),function(c){_e[c]=true;});if("_stateClasses" in this){_2.forEach(this._stateClasses,function(c){delete _e[c];});}_2.forEach(_a,function(c){_e[c]=true;});var _f=[];for(var c in _e){_f.push(c);}tn.className=_f.join(" ");this._stateClasses=_a;},_trackMouseState:function(_10,_11){var _12=false,_13=false,_14=false;var _15=this,cn=_5.hitch(this,"connect",_10);function _16(){var _17=("disabled" in _15&&_15.disabled)||("readonly" in _15&&_15.readonly);_4.toggle(_10,_11+"Hover",_12&&!_13&&!_17);_4.toggle(_10,_11+"Active",_13&&!_17);_4.toggle(_10,_11+"Focused",_14&&!_17);};cn("onmouseenter",function(){_12=true;_16();});cn("onmouseleave",function(){_12=false;_13=false;_16();});cn(_1.press,function(){_13=true;_16();});cn(_1.release,function(){_13=false;_16();});cn("onfocus",function(){_14=true;_16();});cn("onblur",function(){_14=false;_16();});this.watch("disabled",_16);this.watch("readOnly",_16);}});}); \ No newline at end of file
+define("dijit/_CssStateMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-class","dojo/has","dojo/_base/lang","dojo/on","dojo/ready","dojo/_base/window","./registry"],function(_1,_2,_3,_4,_5,_6,on,_7,_8,_9){var _a=_2("dijit._CssStateMixin",[],{cssStateNodes:{},hovering:false,active:false,_applyAttributes:function(){this.inherited(arguments);_1.forEach(["disabled","readOnly","checked","selected","focused","state","hovering","active","_opened"],function(_b){this.watch(_b,_6.hitch(this,"_setStateClass"));},this);for(var ap in this.cssStateNodes){this._trackMouseState(this[ap],this.cssStateNodes[ap]);}this._trackMouseState(this.domNode,this.baseClass);this._setStateClass();},_cssMouseEvent:function(_c){if(!this.disabled){switch(_c.type){case "mouseover":this._set("hovering",true);this._set("active",this._mouseDown);break;case "mouseout":this._set("hovering",false);this._set("active",false);break;case "mousedown":case "touchstart":this._set("active",true);break;case "mouseup":case "touchend":this._set("active",false);break;}}},_setStateClass:function(){var _d=this.baseClass.split(" ");function _e(_f){_d=_d.concat(_1.map(_d,function(c){return c+_f;}),"dijit"+_f);};if(!this.isLeftToRight()){_e("Rtl");}var _10=this.checked=="mixed"?"Mixed":(this.checked?"Checked":"");if(this.checked){_e(_10);}if(this.state){_e(this.state);}if(this.selected){_e("Selected");}if(this._opened){_e("Opened");}if(this.disabled){_e("Disabled");}else{if(this.readOnly){_e("ReadOnly");}else{if(this.active){_e("Active");}else{if(this.hovering){_e("Hover");}}}}if(this.focused){_e("Focused");}var tn=this.stateNode||this.domNode,_11={};_1.forEach(tn.className.split(" "),function(c){_11[c]=true;});if("_stateClasses" in this){_1.forEach(this._stateClasses,function(c){delete _11[c];});}_1.forEach(_d,function(c){_11[c]=true;});var _12=[];for(var c in _11){_12.push(c);}tn.className=_12.join(" ");this._stateClasses=_d;},_subnodeCssMouseEvent:function(_13,_14,evt){if(this.disabled||this.readOnly){return;}function _15(_16){_4.toggle(_13,_14+"Hover",_16);};function _17(_18){_4.toggle(_13,_14+"Active",_18);};function _19(_1a){_4.toggle(_13,_14+"Focused",_1a);};switch(evt.type){case "mouseover":_15(true);break;case "mouseout":_15(false);_17(false);break;case "mousedown":case "touchstart":_17(true);break;case "mouseup":case "touchend":_17(false);break;case "focus":case "focusin":_19(true);break;case "blur":case "focusout":_19(false);break;}},_trackMouseState:function(_1b,_1c){_1b._cssState=_1c;}});_7(function(){function _1d(evt){if(!_3.isDescendant(evt.relatedTarget,evt.target)){for(var _1e=evt.target;_1e&&_1e!=evt.relatedTarget;_1e=_1e.parentNode){if(_1e._cssState){var _1f=_9.getEnclosingWidget(_1e);if(_1f){if(_1e==_1f.domNode){_1f._cssMouseEvent(evt);}else{_1f._subnodeCssMouseEvent(_1e,_1e._cssState,evt);}}}}}};function _20(evt){evt.target=evt.srcElement;_1d(evt);};var _21=_8.body(),_22=(_5("touch")?[]:["mouseover","mouseout"]).concat(["mousedown","touchstart","mouseup","touchend"]);_1.forEach(_22,function(_23){if(_21.addEventListener){_21.addEventListener(_23,_1d,true);}else{_21.attachEvent("on"+_23,_20);}});on(_21,"focusin, focusout",function(evt){var _24=evt.target;if(_24._cssState&&!_24.getAttribute("widgetId")){var _25=_9.getEnclosingWidget(_24);_25._subnodeCssMouseEvent(_24,_24._cssState,evt);}});});return _a;}); \ No newline at end of file
diff --git a/lib/dijit/_HasDropDown.js b/lib/dijit/_HasDropDown.js
index bed09ec07..071344e68 100644
--- a/lib/dijit/_HasDropDown.js
+++ b/lib/dijit/_HasDropDown.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_HasDropDown",["dojo/_base/declare","dojo/_base/Deferred","dojo/_base/event","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/keys","dojo/_base/lang","dojo/touch","dojo/_base/window","dojo/window","./registry","./focus","./popup","./_FocusMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12){return _1("dijit._HasDropDown",_12,{_buttonNode:null,_arrowWrapperNode:null,_popupStateNode:null,_aroundNode:null,dropDown:null,autoWidth:true,forceWidth:false,maxHeight:0,dropDownPosition:["below","above"],_stopClickEvents:true,_onDropDownMouseDown:function(e){if(this.disabled||this.readOnly){return;}e.preventDefault();this._docHandler=this.connect(_d.doc,_c.release,"_onDropDownMouseUp");this.toggleDropDown();},_onDropDownMouseUp:function(e){if(e&&this._docHandler){this.disconnect(this._docHandler);}var _13=this.dropDown,_14=false;if(e&&this._opened){var c=_7.position(this._buttonNode,true);if(!(e.pageX>=c.x&&e.pageX<=c.x+c.w)||!(e.pageY>=c.y&&e.pageY<=c.y+c.h)){var t=e.target;while(t&&!_14){if(_6.contains(t,"dijitPopup")){_14=true;}else{t=t.parentNode;}}if(_14){t=e.target;if(_13.onItemClick){var _15;while(t&&!(_15=_f.byNode(t))){t=t.parentNode;}if(_15&&_15.onClick&&_15.getParent){_15.getParent().onItemClick(_15,e);}}return;}}}if(this._opened){if(_13.focus&&_13.autoFocus!==false){window.setTimeout(_b.hitch(_13,"focus"),1);}}else{setTimeout(_b.hitch(this,"focus"),0);}if(_9("ios")){this._justGotMouseUp=true;setTimeout(_b.hitch(this,function(){this._justGotMouseUp=false;}),0);}},_onDropDownClick:function(e){if(_9("ios")&&!this._justGotMouseUp){this._onDropDownMouseDown(e);this._onDropDownMouseUp(e);}if(this._stopClickEvents){_3.stop(e);}},buildRendering:function(){this.inherited(arguments);this._buttonNode=this._buttonNode||this.focusNode||this.domNode;this._popupStateNode=this._popupStateNode||this.focusNode||this._buttonNode;var _16={"after":this.isLeftToRight()?"Right":"Left","before":this.isLeftToRight()?"Left":"Right","above":"Up","below":"Down","left":"Left","right":"Right"}[this.dropDownPosition[0]]||this.dropDownPosition[0]||"Down";_6.add(this._arrowWrapperNode||this._buttonNode,"dijit"+_16+"ArrowButton");},postCreate:function(){this.inherited(arguments);this.connect(this._buttonNode,_c.press,"_onDropDownMouseDown");this.connect(this._buttonNode,"onclick","_onDropDownClick");this.connect(this.focusNode,"onkeypress","_onKey");this.connect(this.focusNode,"onkeyup","_onKeyUp");},destroy:function(){if(this.dropDown){if(!this.dropDown._destroyed){this.dropDown.destroyRecursive();}delete this.dropDown;}this.inherited(arguments);},_onKey:function(e){if(this.disabled||this.readOnly){return;}var d=this.dropDown,_17=e.target;if(d&&this._opened&&d.handleKey){if(d.handleKey(e)===false){_3.stop(e);return;}}if(d&&this._opened&&e.charOrCode==_a.ESCAPE){this.closeDropDown();_3.stop(e);}else{if(!this._opened&&(e.charOrCode==_a.DOWN_ARROW||((e.charOrCode==_a.ENTER||e.charOrCode==" ")&&((_17.tagName||"").toLowerCase()!=="input"||(_17.type&&_17.type.toLowerCase()!=="text"))))){this._toggleOnKeyUp=true;_3.stop(e);}}},_onKeyUp:function(){if(this._toggleOnKeyUp){delete this._toggleOnKeyUp;this.toggleDropDown();var d=this.dropDown;if(d&&d.focus){setTimeout(_b.hitch(d,"focus"),1);}}},_onBlur:function(){var _18=_10.curNode&&this.dropDown&&_4.isDescendant(_10.curNode,this.dropDown.domNode);this.closeDropDown(_18);this.inherited(arguments);},isLoaded:function(){return true;},loadDropDown:function(_19){_19();},loadAndOpenDropDown:function(){var d=new _2(),_1a=_b.hitch(this,function(){this.openDropDown();d.resolve(this.dropDown);});if(!this.isLoaded()){this.loadDropDown(_1a);}else{_1a();}return d;},toggleDropDown:function(){if(this.disabled||this.readOnly){return;}if(!this._opened){this.loadAndOpenDropDown();}else{this.closeDropDown();}},openDropDown:function(){var _1b=this.dropDown,_1c=_1b.domNode,_1d=this._aroundNode||this.domNode,_1e=this;if(!this._preparedNode){this._preparedNode=true;if(_1c.style.width){this._explicitDDWidth=true;}if(_1c.style.height){this._explicitDDHeight=true;}}if(this.maxHeight||this.forceWidth||this.autoWidth){var _1f={display:"",visibility:"hidden"};if(!this._explicitDDWidth){_1f.width="";}if(!this._explicitDDHeight){_1f.height="";}_8.set(_1c,_1f);var _20=this.maxHeight;if(_20==-1){var _21=_e.getBox(),_22=_7.position(_1d,false);_20=Math.floor(Math.max(_22.y,_21.h-(_22.y+_22.h)));}_11.moveOffScreen(_1b);if(_1b.startup&&!_1b._started){_1b.startup();}var mb=_7.getMarginSize(_1c);var _23=(_20&&mb.h>_20);_8.set(_1c,{overflowX:"hidden",overflowY:_23?"auto":"hidden"});if(_23){mb.h=_20;if("w" in mb){mb.w+=16;}}else{delete mb.h;}if(this.forceWidth){mb.w=_1d.offsetWidth;}else{if(this.autoWidth){mb.w=Math.max(mb.w,_1d.offsetWidth);}else{delete mb.w;}}if(_b.isFunction(_1b.resize)){_1b.resize(mb);}else{_7.setMarginBox(_1c,mb);}}var _24=_11.open({parent:this,popup:_1b,around:_1d,orient:this.dropDownPosition,onExecute:function(){_1e.closeDropDown(true);},onCancel:function(){_1e.closeDropDown(true);},onClose:function(){_5.set(_1e._popupStateNode,"popupActive",false);_6.remove(_1e._popupStateNode,"dijitHasDropDownOpen");_1e._opened=false;}});_5.set(this._popupStateNode,"popupActive","true");_6.add(_1e._popupStateNode,"dijitHasDropDownOpen");this._opened=true;return _24;},closeDropDown:function(_25){if(this._opened){if(_25){this.focus();}_11.close(this.dropDown);this._opened=false;}}});}); \ No newline at end of file
+define("dijit/_HasDropDown",["dojo/_base/declare","dojo/_base/Deferred","dojo/_base/event","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/keys","dojo/_base/lang","dojo/on","dojo/window","./registry","./focus","./popup","./_FocusMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,on,_c,_d,_e,_f,_10){return _1("dijit._HasDropDown",_10,{_buttonNode:null,_arrowWrapperNode:null,_popupStateNode:null,_aroundNode:null,dropDown:null,autoWidth:true,forceWidth:false,maxHeight:0,dropDownPosition:["below","above"],_stopClickEvents:true,_onDropDownMouseDown:function(e){if(this.disabled||this.readOnly){return;}e.preventDefault();this._docHandler=this.connect(this.ownerDocument,"mouseup","_onDropDownMouseUp");this.toggleDropDown();},_onDropDownMouseUp:function(e){if(e&&this._docHandler){this.disconnect(this._docHandler);}var _11=this.dropDown,_12=false;if(e&&this._opened){var c=_7.position(this._buttonNode,true);if(!(e.pageX>=c.x&&e.pageX<=c.x+c.w)||!(e.pageY>=c.y&&e.pageY<=c.y+c.h)){var t=e.target;while(t&&!_12){if(_6.contains(t,"dijitPopup")){_12=true;}else{t=t.parentNode;}}if(_12){t=e.target;if(_11.onItemClick){var _13;while(t&&!(_13=_d.byNode(t))){t=t.parentNode;}if(_13&&_13.onClick&&_13.getParent){_13.getParent().onItemClick(_13,e);}}return;}}}if(this._opened){if(_11.focus&&_11.autoFocus!==false){this._focusDropDownTimer=this.defer(function(){_11.focus();delete this._focusDropDownTimer;});}}else{this.defer("focus");}if(_9("touch")){this._justGotMouseUp=true;this.defer(function(){this._justGotMouseUp=false;});}},_onDropDownClick:function(e){if(_9("touch")&&!this._justGotMouseUp){this._onDropDownMouseDown(e);this._onDropDownMouseUp(e);}if(this._stopClickEvents){_3.stop(e);}},buildRendering:function(){this.inherited(arguments);this._buttonNode=this._buttonNode||this.focusNode||this.domNode;this._popupStateNode=this._popupStateNode||this.focusNode||this._buttonNode;var _14={"after":this.isLeftToRight()?"Right":"Left","before":this.isLeftToRight()?"Left":"Right","above":"Up","below":"Down","left":"Left","right":"Right"}[this.dropDownPosition[0]]||this.dropDownPosition[0]||"Down";_6.add(this._arrowWrapperNode||this._buttonNode,"dijit"+_14+"ArrowButton");},postCreate:function(){this.inherited(arguments);var _15=this.focusNode||this.domNode;this.own(on(this._buttonNode,"mousedown",_b.hitch(this,"_onDropDownMouseDown")),on(this._buttonNode,"click",_b.hitch(this,"_onDropDownClick")),on(_15,"keydown",_b.hitch(this,"_onKey")),on(_15,"keyup",_b.hitch(this,"_onKeyUp")));},destroy:function(){if(this.dropDown){if(!this.dropDown._destroyed){this.dropDown.destroyRecursive();}delete this.dropDown;}this.inherited(arguments);},_onKey:function(e){if(this.disabled||this.readOnly){return;}var d=this.dropDown,_16=e.target;if(d&&this._opened&&d.handleKey){if(d.handleKey(e)===false){_3.stop(e);return;}}if(d&&this._opened&&e.keyCode==_a.ESCAPE){this.closeDropDown();_3.stop(e);}else{if(!this._opened&&(e.keyCode==_a.DOWN_ARROW||((e.keyCode==_a.ENTER||e.keyCode==_a.SPACE)&&((_16.tagName||"").toLowerCase()!=="input"||(_16.type&&_16.type.toLowerCase()!=="text"))))){this._toggleOnKeyUp=true;_3.stop(e);}}},_onKeyUp:function(){if(this._toggleOnKeyUp){delete this._toggleOnKeyUp;this.toggleDropDown();var d=this.dropDown;if(d&&d.focus){this.defer(_b.hitch(d,"focus"),1);}}},_onBlur:function(){var _17=_e.curNode&&this.dropDown&&_4.isDescendant(_e.curNode,this.dropDown.domNode);this.closeDropDown(_17);this.inherited(arguments);},isLoaded:function(){return true;},loadDropDown:function(_18){_18();},loadAndOpenDropDown:function(){var d=new _2(),_19=_b.hitch(this,function(){this.openDropDown();d.resolve(this.dropDown);});if(!this.isLoaded()){this.loadDropDown(_19);}else{_19();}return d;},toggleDropDown:function(){if(this.disabled||this.readOnly){return;}if(!this._opened){this.loadAndOpenDropDown();}else{this.closeDropDown();}},openDropDown:function(){var _1a=this.dropDown,_1b=_1a.domNode,_1c=this._aroundNode||this.domNode,_1d=this;if(!this._preparedNode){this._preparedNode=true;if(_1b.style.width){this._explicitDDWidth=true;}if(_1b.style.height){this._explicitDDHeight=true;}}if(this.maxHeight||this.forceWidth||this.autoWidth){var _1e={display:"",visibility:"hidden"};if(!this._explicitDDWidth){_1e.width="";}if(!this._explicitDDHeight){_1e.height="";}_8.set(_1b,_1e);var _1f=this.maxHeight;if(_1f==-1){var _20=_c.getBox(this.ownerDocument),_21=_7.position(_1c,false);_1f=Math.floor(Math.max(_21.y,_20.h-(_21.y+_21.h)));}_f.moveOffScreen(_1a);if(_1a.startup&&!_1a._started){_1a.startup();}var mb=_7.getMarginSize(_1b);var _22=(_1f&&mb.h>_1f);_8.set(_1b,{overflowX:"visible",overflowY:_22?"auto":"visible"});if(_22){mb.h=_1f;if("w" in mb){mb.w+=16;}}else{delete mb.h;}if(this.forceWidth){mb.w=_1c.offsetWidth;}else{if(this.autoWidth){mb.w=Math.max(mb.w,_1c.offsetWidth);}else{delete mb.w;}}if(_b.isFunction(_1a.resize)){_1a.resize(mb);}else{_7.setMarginBox(_1b,mb);}}var _23=_f.open({parent:this,popup:_1a,around:_1c,orient:this.dropDownPosition,onExecute:function(){_1d.closeDropDown(true);},onCancel:function(){_1d.closeDropDown(true);},onClose:function(){_5.set(_1d._popupStateNode,"popupActive",false);_6.remove(_1d._popupStateNode,"dijitHasDropDownOpen");_1d._set("_opened",false);}});_5.set(this._popupStateNode,"popupActive","true");_6.add(this._popupStateNode,"dijitHasDropDownOpen");this._set("_opened",true);this.domNode.setAttribute("aria-expanded","true");return _23;},closeDropDown:function(_24){if(this._focusDropDownTimer){this._focusDropDownTimer.remove();delete this._focusDropDownTimer;}if(this._opened){this.domNode.setAttribute("aria-expanded","false");if(_24){this.focus();}_f.close(this.dropDown);this._opened=false;}}});}); \ No newline at end of file
diff --git a/lib/dijit/_MenuBase.js b/lib/dijit/_MenuBase.js
index 3e459f994..70e60b150 100644
--- a/lib/dijit/_MenuBase.js
+++ b/lib/dijit/_MenuBase.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_MenuBase",["./popup","dojo/window","./_Widget","./_KeyNavContainer","./_TemplatedMixin","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/lang","dojo/_base/array"],function(pm,_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){return _5("dijit._MenuBase",[_2,_4,_3],{parentMenu:null,popupDelay:500,onExecute:function(){},onCancel:function(){},_moveToPopup:function(_b){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.focusedChild._onClick(_b);}else{var _c=this._getTopMenu();if(_c&&_c._isMenuBar){_c.focusNext();}}},_onPopupHover:function(){if(this.currentPopup&&this.currentPopup._pendingClose_timer){var _d=this.currentPopup.parentMenu;if(_d.focusedChild){_d.focusedChild._setSelected(false);}_d.focusedChild=this.currentPopup.from_item;_d.focusedChild._setSelected(true);this._stopPendingCloseTimer(this.currentPopup);}},onItemHover:function(_e){if(this.isActive){this.focusChild(_e);if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){this.hover_timer=setTimeout(_9.hitch(this,"_openPopup"),this.popupDelay);}}if(this.focusedChild){this.focusChild(_e);}this._hoveredChild=_e;},_onChildBlur:function(_f){this._stopPopupTimer();_f._setSelected(false);var _10=_f.popup;if(_10){this._stopPendingCloseTimer(_10);_10._pendingClose_timer=setTimeout(function(){_10._pendingClose_timer=null;if(_10.parentMenu){_10.parentMenu.currentPopup=null;}pm.close(_10);},this.popupDelay);}},onItemUnhover:function(_11){if(this.isActive){this._stopPopupTimer();}if(this._hoveredChild==_11){this._hoveredChild=null;}},_stopPopupTimer:function(){if(this.hover_timer){clearTimeout(this.hover_timer);this.hover_timer=null;}},_stopPendingCloseTimer:function(_12){if(_12._pendingClose_timer){clearTimeout(_12._pendingClose_timer);_12._pendingClose_timer=null;}},_stopFocusTimer:function(){if(this._focus_timer){clearTimeout(this._focus_timer);this._focus_timer=null;}},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu){}return top;},onItemClick:function(_13,evt){if(typeof this.isShowingNow=="undefined"){this._markActive();}this.focusChild(_13);if(_13.disabled){return false;}if(_13.popup){this._openPopup();}else{this.onExecute();_13.onClick(evt);}},_openPopup:function(){this._stopPopupTimer();var _14=this.focusedChild;if(!_14){return;}var _15=_14.popup;if(_15.isShowingNow){return;}if(this.currentPopup){this._stopPendingCloseTimer(this.currentPopup);pm.close(this.currentPopup);}_15.parentMenu=this;_15.from_item=_14;var _16=this;pm.open({parent:this,popup:_15,around:_14.domNode,orient:this._orient||["after","before"],onCancel:function(){_16.focusChild(_14);_16._cleanUp();_14._setSelected(true);_16.focusedChild=_14;},onExecute:_9.hitch(this,"_cleanUp")});this.currentPopup=_15;_15.connect(_15.domNode,"onmouseenter",_9.hitch(_16,"_onPopupHover"));if(_15.focus){_15._focus_timer=setTimeout(_9.hitch(_15,function(){this._focus_timer=null;this.focus();}),0);}},_markActive:function(){this.isActive=true;_8.replace(this.domNode,"dijitMenuActive","dijitMenuPassive");},onOpen:function(){this.isShowingNow=true;this._markActive();},_markInactive:function(){this.isActive=false;_8.replace(this.domNode,"dijitMenuPassive","dijitMenuActive");},onClose:function(){this._stopFocusTimer();this._markInactive();this.isShowingNow=false;this.parentMenu=null;},_closeChild:function(){this._stopPopupTimer();if(this.currentPopup){if(_a.indexOf(this._focusManager.activeStack,this.id)>=0){_7.set(this.focusedChild.focusNode,"tabIndex",this.tabIndex);this.focusedChild.focusNode.focus();}pm.close(this.currentPopup);this.currentPopup=null;}if(this.focusedChild){this.focusedChild._setSelected(false);this.focusedChild._onUnhover();this.focusedChild=null;}},_onItemFocus:function(_17){if(this._hoveredChild&&this._hoveredChild!=_17){this._hoveredChild._onUnhover();}},_onBlur:function(){this._cleanUp();this.inherited(arguments);},_cleanUp:function(){this._closeChild();if(typeof this.isShowingNow=="undefined"){this._markInactive();}}});}); \ No newline at end of file
+define("dijit/_MenuBase",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/lang","dojo/mouse","dojo/on","dojo/window","./a11yclick","./popup","./registry","./_Widget","./_KeyNavContainer","./_TemplatedMixin"],function(_1,_2,_3,_4,_5,_6,_7,on,_8,_9,pm,_a,_b,_c,_d){return _2("dijit._MenuBase",[_b,_d,_c],{parentMenu:null,popupDelay:500,autoFocus:false,childSelector:function(_e){var _f=_a.byNode(_e);return _e.parentNode==this.containerNode&&_f&&_f.focus;},postCreate:function(){var _10=this,_11=typeof this.childSelector=="string"?this.childSelector:_6.hitch(this,"childSelector");this.own(on(this.containerNode,on.selector(_11,_7.enter),function(){_10.onItemHover(_a.byNode(this));}),on(this.containerNode,on.selector(_11,_7.leave),function(){_10.onItemUnhover(_a.byNode(this));}),on(this.containerNode,on.selector(_11,_9),function(evt){_10.onItemClick(_a.byNode(this),evt);evt.stopPropagation();evt.preventDefault();}));this.inherited(arguments);},onExecute:function(){},onCancel:function(){},_moveToPopup:function(evt){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.onItemClick(this.focusedChild,evt);}else{var _12=this._getTopMenu();if(_12&&_12._isMenuBar){_12.focusNext();}}},_onPopupHover:function(){if(this.currentPopup&&this.currentPopup._pendingClose_timer){var _13=this.currentPopup.parentMenu;if(_13.focusedChild){_13.focusedChild._setSelected(false);}_13.focusedChild=this.currentPopup.from_item;_13.focusedChild._setSelected(true);this._stopPendingCloseTimer(this.currentPopup);}},onItemHover:function(_14){if(this.isActive){this.focusChild(_14);if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){this.hover_timer=this.defer("_openPopup",this.popupDelay);}}if(this.focusedChild){this.focusChild(_14);}this._hoveredChild=_14;_14._set("hovering",true);},_onChildBlur:function(_15){this._stopPopupTimer();_15._setSelected(false);var _16=_15.popup;if(_16){this._stopPendingCloseTimer(_16);_16._pendingClose_timer=this.defer(function(){_16._pendingClose_timer=null;if(_16.parentMenu){_16.parentMenu.currentPopup=null;}pm.close(_16);},this.popupDelay);}},onItemUnhover:function(_17){if(this.isActive){this._stopPopupTimer();}if(this._hoveredChild==_17){this._hoveredChild=null;}_17._set("hovering",false);},_stopPopupTimer:function(){if(this.hover_timer){this.hover_timer=this.hover_timer.remove();}},_stopPendingCloseTimer:function(_18){if(_18._pendingClose_timer){_18._pendingClose_timer=_18._pendingClose_timer.remove();}},_stopFocusTimer:function(){if(this._focus_timer){this._focus_timer=this._focus_timer.remove();}},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu){}return top;},onItemClick:function(_19,evt){if(typeof this.isShowingNow=="undefined"){this._markActive();}this.focusChild(_19);if(_19.disabled){return false;}if(_19.popup){this._openPopup(evt.type=="keypress");}else{this.onExecute();_19._onClick?_19._onClick(evt):_19.onClick(evt);}},_openPopup:function(_1a){this._stopPopupTimer();var _1b=this.focusedChild;if(!_1b){return;}var _1c=_1b.popup;if(!_1c.isShowingNow){if(this.currentPopup){this._stopPendingCloseTimer(this.currentPopup);pm.close(this.currentPopup);}_1c.parentMenu=this;_1c.from_item=_1b;var _1d=this;pm.open({parent:this,popup:_1c,around:_1b.domNode,orient:this._orient||["after","before"],onCancel:function(){_1d.focusChild(_1b);_1d._cleanUp();_1b._setSelected(true);_1d.focusedChild=_1b;},onExecute:_6.hitch(this,"_cleanUp")});this.currentPopup=_1c;_1c.connect(_1c.domNode,"onmouseenter",_6.hitch(_1d,"_onPopupHover"));}if(_1a&&_1c.focus){_1c._focus_timer=this.defer(_6.hitch(_1c,function(){this._focus_timer=null;this.focus();}));}},_markActive:function(){this.isActive=true;_5.replace(this.domNode,"dijitMenuActive","dijitMenuPassive");},onOpen:function(){this.isShowingNow=true;this._markActive();},_markInactive:function(){this.isActive=false;_5.replace(this.domNode,"dijitMenuPassive","dijitMenuActive");},onClose:function(){this._stopFocusTimer();this._markInactive();this.isShowingNow=false;this.parentMenu=null;},_closeChild:function(){this._stopPopupTimer();if(this.currentPopup){if(_1.indexOf(this._focusManager.activeStack,this.id)>=0){_4.set(this.focusedChild.focusNode,"tabIndex",this.tabIndex);this.focusedChild.focusNode.focus();}pm.close(this.currentPopup);this.currentPopup=null;}if(this.focusedChild){this.focusedChild._setSelected(false);this.onItemUnhover(this.focusedChild);this.focusedChild=null;}},_onItemFocus:function(_1e){if(this._hoveredChild&&this._hoveredChild!=_1e){this.onItemUnhover(this._hoveredChild);}},_onBlur:function(){this._cleanUp();this.inherited(arguments);},_cleanUp:function(){this._closeChild();if(typeof this.isShowingNow=="undefined"){this._markInactive();}}});}); \ No newline at end of file
diff --git a/lib/dijit/_OnDijitClickMixin.js b/lib/dijit/_OnDijitClickMixin.js
index d4d8c966d..d2cde3bf9 100644
--- a/lib/dijit/_OnDijitClickMixin.js
+++ b/lib/dijit/_OnDijitClickMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_OnDijitClickMixin",["dojo/on","dojo/_base/array","dojo/keys","dojo/_base/declare","dojo/_base/sniff","dojo/_base/unload","dojo/_base/window"],function(on,_1,_2,_3,_4,_5,_6){var _7=null;if(_4("ie")){(function(){var _8=function(_9){_7=_9.srcElement;};_6.doc.attachEvent("onkeydown",_8);_5.addOnWindowUnload(function(){_6.doc.detachEvent("onkeydown",_8);});})();}else{_6.doc.addEventListener("keydown",function(_a){_7=_a.target;},true);}var _b=function(_c,_d){if(/input|button/i.test(_c.nodeName)){return on(_c,"click",_d);}else{function _e(e){return (e.keyCode==_2.ENTER||e.keyCode==_2.SPACE)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey;};var _f=[on(_c,"keypress",function(e){if(_e(e)){_7=e.target;e.preventDefault();}}),on(_c,"keyup",function(e){if(_e(e)&&e.target==_7){_7=null;_d.call(this,e);}}),on(_c,"click",function(e){_d.call(this,e);})];return {remove:function(){_1.forEach(_f,function(h){h.remove();});}};}};return _3("dijit._OnDijitClickMixin",null,{connect:function(obj,_10,_11){return this.inherited(arguments,[obj,_10=="ondijitclick"?_b:_10,_11]);}});}); \ No newline at end of file
+define("dijit/_OnDijitClickMixin",["dojo/on","dojo/_base/array","dojo/keys","dojo/_base/declare","dojo/has","dojo/_base/unload","dojo/_base/window","./a11yclick"],function(on,_1,_2,_3,_4,_5,_6,_7){var _8=_3("dijit._OnDijitClickMixin",null,{connect:function(_9,_a,_b){return this.inherited(arguments,[_9,_a=="ondijitclick"?_7:_a,_b]);}});_8.a11yclick=_7;return _8;}); \ No newline at end of file
diff --git a/lib/dijit/_PaletteMixin.js b/lib/dijit/_PaletteMixin.js
index 22b66fa81..ebb2f0d96 100644
--- a/lib/dijit/_PaletteMixin.js
+++ b/lib/dijit/_PaletteMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_PaletteMixin",["dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/_base/event","dojo/keys","dojo/_base/lang","./_CssStateMixin","./focus","./typematic"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){return _1("dijit._PaletteMixin",[_8],{defaultTimeout:500,timeoutChangeRate:0.9,value:"",_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:"",summary:"",_setSummaryAttr:"paletteTableNode",_dyeFactory:function(_b){var _c=_7.getObject(this.dyeClass);return new _c(_b);},_preparePalette:function(_d,_e){this._cells=[];var _f=this._blankGif;this.connect(this.gridNode,"ondijitclick","_onCellClick");for(var row=0;row<_d.length;row++){var _10=_4.create("tr",{tabIndex:"-1"},this.gridNode);for(var col=0;col<_d[row].length;col++){var _11=_d[row][col];if(_11){var _12=this._dyeFactory(_11,row,col);var _13=_4.create("td",{"class":this.cellClass,tabIndex:"-1",title:_e[_11],role:"gridcell"});_12.fillCell(_13,_f);_4.place(_13,_10);_13.index=this._cells.length;this._cells.push({node:_13,dye:_12});}}}this._xDim=_d[0].length;this._yDim=_d.length;var _14={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1};for(var key in _14){this._connects.push(_a.addKeyListener(this.domNode,{charOrCode:_6[key],ctrlKey:false,altKey:false,shiftKey:false},this,function(){var _15=_14[key];return function(_16){this._navigateByKey(_15,_16);};}(),this.timeoutChangeRate,this.defaultTimeout));}},postCreate:function(){this.inherited(arguments);this._setCurrent(this._cells[0].node);},focus:function(){_9.focus(this._currentFocus);},_onCellClick:function(evt){var _17=evt.target;while(_17.tagName!="TD"){if(!_17.parentNode||_17==this.gridNode){return;}_17=_17.parentNode;}var _18=this._getDye(_17).getValue();this._setCurrent(_17);_9.focus(_17);this._setValueAttr(_18,true);_5.stop(evt);},_setCurrent:function(_19){if("_currentFocus" in this){_2.set(this._currentFocus,"tabIndex","-1");}this._currentFocus=_19;if(_19){_2.set(_19,"tabIndex",this.tabIndex);}},_setValueAttr:function(_1a,_1b){if(this._selectedCell>=0){_3.remove(this._cells[this._selectedCell].node,this.cellClass+"Selected");}this._selectedCell=-1;if(_1a){for(var i=0;i<this._cells.length;i++){if(_1a==this._cells[i].dye.getValue()){this._selectedCell=i;_3.add(this._cells[i].node,this.cellClass+"Selected");break;}}}this._set("value",this._selectedCell>=0?_1a:null);if(_1b||_1b===undefined){this.onChange(_1a);}},onChange:function(){},_navigateByKey:function(_1c,_1d){if(_1d==-1){return;}var _1e=this._currentFocus.index+_1c;if(_1e<this._cells.length&&_1e>-1){var _1f=this._cells[_1e].node;this._setCurrent(_1f);setTimeout(_7.hitch(dijit,"focus",_1f),0);}},_getDye:function(_20){return this._cells[_20.index].dye;}});}); \ No newline at end of file
+define("dijit/_PaletteMixin",["dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/_base/event","dojo/keys","dojo/_base/lang","./_CssStateMixin","./focus","./typematic"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){return _1("dijit._PaletteMixin",[_8],{defaultTimeout:500,timeoutChangeRate:0.9,value:"",_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:null,summary:"",_setSummaryAttr:"paletteTableNode",_dyeFactory:function(_b){var _c=typeof this.dyeClass=="string"?_7.getObject(this.dyeClass):this.dyeClass;return new _c(_b);},_preparePalette:function(_d,_e){this._cells=[];var _f=this._blankGif;this.connect(this.gridNode,"ondijitclick","_onCellClick");for(var row=0;row<_d.length;row++){var _10=_4.create("tr",{tabIndex:"-1"},this.gridNode);for(var col=0;col<_d[row].length;col++){var _11=_d[row][col];if(_11){var _12=this._dyeFactory(_11,row,col,_e[_11]);var _13=_4.create("td",{"class":this.cellClass,tabIndex:"-1",title:_e[_11],role:"gridcell"},_10);_12.fillCell(_13,_f);_13.idx=this._cells.length;this._cells.push({node:_13,dye:_12});}}}this._xDim=_d[0].length;this._yDim=_d.length;var _14={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1};for(var key in _14){this.own(_a.addKeyListener(this.domNode,{charOrCode:_6[key],ctrlKey:false,altKey:false,shiftKey:false},this,function(){var _15=_14[key];return function(_16){this._navigateByKey(_15,_16);};}(),this.timeoutChangeRate,this.defaultTimeout));}},postCreate:function(){this.inherited(arguments);this._setCurrent(this._cells[0].node);},focus:function(){_9.focus(this._currentFocus);},_onCellClick:function(evt){var _17=evt.target;while(_17.tagName!="TD"){if(!_17.parentNode||_17==this.gridNode){return;}_17=_17.parentNode;}var _18=this._getDye(_17).getValue();this._setCurrent(_17);_9.focus(_17);this._setValueAttr(_18,true);_5.stop(evt);},_setCurrent:function(_19){if("_currentFocus" in this){_2.set(this._currentFocus,"tabIndex","-1");}this._currentFocus=_19;if(_19){_2.set(_19,"tabIndex",this.tabIndex);}},_setValueAttr:function(_1a,_1b){if(this._selectedCell>=0){_3.remove(this._cells[this._selectedCell].node,this.cellClass+"Selected");}this._selectedCell=-1;if(_1a){for(var i=0;i<this._cells.length;i++){if(_1a==this._cells[i].dye.getValue()){this._selectedCell=i;_3.add(this._cells[i].node,this.cellClass+"Selected");break;}}}this._set("value",this._selectedCell>=0?_1a:null);if(_1b||_1b===undefined){this.onChange(_1a);}},onChange:function(){},_navigateByKey:function(_1c,_1d){if(_1d==-1){return;}var _1e=this._currentFocus.idx+_1c;if(_1e<this._cells.length&&_1e>-1){var _1f=this._cells[_1e].node;this._setCurrent(_1f);this.defer(_7.hitch(_9,"focus",_1f));}},_getDye:function(_20){return this._cells[_20.idx].dye;}});}); \ No newline at end of file
diff --git a/lib/dijit/_TemplatedMixin.js b/lib/dijit/_TemplatedMixin.js
index 683bb8f20..44282b6b0 100644
--- a/lib/dijit/_TemplatedMixin.js
+++ b/lib/dijit/_TemplatedMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_TemplatedMixin",["dojo/_base/lang","dojo/touch","./_WidgetBase","dojo/string","dojo/cache","dojo/_base/array","dojo/_base/declare","dojo/dom-construct","dojo/_base/sniff","dojo/_base/unload","dojo/_base/window"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){var _c=_7("dijit._TemplatedMixin",null,{templateString:null,templatePath:null,_skipNodeCache:false,_earlyTemplatedStartup:false,constructor:function(){this._attachPoints=[];this._attachEvents=[];},_stringRepl:function(_d){var _e=this.declaredClass,_f=this;return _4.substitute(_d,this,function(_10,key){if(key.charAt(0)=="!"){_10=_1.getObject(key.substr(1),false,_f);}if(typeof _10=="undefined"){throw new Error(_e+" template:"+key);}if(_10==null){return "";}return key.charAt(0)=="!"?_10:_10.toString().replace(/"/g,"&quot;");},this);},buildRendering:function(){if(!this.templateString){this.templateString=_5(this.templatePath,{sanitize:true});}var _11=_c.getCachedTemplate(this.templateString,this._skipNodeCache);var _12;if(_1.isString(_11)){_12=_8.toDom(this._stringRepl(_11));if(_12.nodeType!=1){throw new Error("Invalid template: "+_11);}}else{_12=_11.cloneNode(true);}this.domNode=_12;this.inherited(arguments);this._attachTemplateNodes(_12,function(n,p){return n.getAttribute(p);});this._beforeFillContent();this._fillContent(this.srcNodeRef);},_beforeFillContent:function(){},_fillContent:function(_13){var _14=this.containerNode;if(_13&&_14){while(_13.hasChildNodes()){_14.appendChild(_13.firstChild);}}},_attachTemplateNodes:function(_15,_16){var _17=_1.isArray(_15)?_15:(_15.all||_15.getElementsByTagName("*"));var x=_1.isArray(_15)?0:-1;for(;x<_17.length;x++){var _18=(x==-1)?_15:_17[x];if(this.widgetsInTemplate&&(_16(_18,"dojoType")||_16(_18,"data-dojo-type"))){continue;}var _19=_16(_18,"dojoAttachPoint")||_16(_18,"data-dojo-attach-point");if(_19){var _1a,_1b=_19.split(/\s*,\s*/);while((_1a=_1b.shift())){if(_1.isArray(this[_1a])){this[_1a].push(_18);}else{this[_1a]=_18;}this._attachPoints.push(_1a);}}var _1c=_16(_18,"dojoAttachEvent")||_16(_18,"data-dojo-attach-event");if(_1c){var _1d,_1e=_1c.split(/\s*,\s*/);var _1f=_1.trim;while((_1d=_1e.shift())){if(_1d){var _20=null;if(_1d.indexOf(":")!=-1){var _21=_1d.split(":");_1d=_1f(_21[0]);_20=_1f(_21[1]);}else{_1d=_1f(_1d);}if(!_20){_20=_1d;}this._attachEvents.push(this.connect(_18,_2[_1d]||_1d,_20));}}}}},destroyRendering:function(){_6.forEach(this._attachPoints,function(_22){delete this[_22];},this);this._attachPoints=[];_6.forEach(this._attachEvents,this.disconnect,this);this._attachEvents=[];this.inherited(arguments);}});_c._templateCache={};_c.getCachedTemplate=function(_23,_24){var _25=_c._templateCache;var key=_23;var _26=_25[key];if(_26){try{if(!_26.ownerDocument||_26.ownerDocument==_b.doc){return _26;}}catch(e){}_8.destroy(_26);}_23=_4.trim(_23);if(_24||_23.match(/\$\{([^\}]+)\}/g)){return (_25[key]=_23);}else{var _27=_8.toDom(_23);if(_27.nodeType!=1){throw new Error("Invalid template: "+_23);}return (_25[key]=_27);}};if(_9("ie")){_a.addOnWindowUnload(function(){var _28=_c._templateCache;for(var key in _28){var _29=_28[key];if(typeof _29=="object"){_8.destroy(_29);}delete _28[key];}});}_1.extend(_3,{dojoAttachEvent:"",dojoAttachPoint:""});return _c;}); \ No newline at end of file
+define("dijit/_TemplatedMixin",["dojo/_base/lang","dojo/touch","./_WidgetBase","dojo/string","dojo/cache","dojo/_base/array","dojo/_base/declare","dojo/dom-construct","dojo/sniff","dojo/_base/unload"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){var _b=_7("dijit._TemplatedMixin",null,{templateString:null,templatePath:null,_skipNodeCache:false,_earlyTemplatedStartup:false,constructor:function(){this._attachPoints=[];this._attachEvents=[];},_stringRepl:function(_c){var _d=this.declaredClass,_e=this;return _4.substitute(_c,this,function(_f,key){if(key.charAt(0)=="!"){_f=_1.getObject(key.substr(1),false,_e);}if(typeof _f=="undefined"){throw new Error(_d+" template:"+key);}if(_f==null){return "";}return key.charAt(0)=="!"?_f:_f.toString().replace(/"/g,"&quot;");},this);},buildRendering:function(){if(!this.templateString){this.templateString=_5(this.templatePath,{sanitize:true});}var _10=_b.getCachedTemplate(this.templateString,this._skipNodeCache,this.ownerDocument);var _11;if(_1.isString(_10)){_11=_8.toDom(this._stringRepl(_10),this.ownerDocument);if(_11.nodeType!=1){throw new Error("Invalid template: "+_10);}}else{_11=_10.cloneNode(true);}this.domNode=_11;this.inherited(arguments);this._attachTemplateNodes(_11,function(n,p){return n.getAttribute(p);});this._beforeFillContent();this._fillContent(this.srcNodeRef);},_beforeFillContent:function(){},_fillContent:function(_12){var _13=this.containerNode;if(_12&&_13){while(_12.hasChildNodes()){_13.appendChild(_12.firstChild);}}},_attachTemplateNodes:function(_14,_15){var _16=_1.isArray(_14)?_14:(_14.all||_14.getElementsByTagName("*"));var x=_1.isArray(_14)?0:-1;for(;x<0||_16[x];x++){var _17=(x==-1)?_14:_16[x];if(this.widgetsInTemplate&&(_15(_17,"dojoType")||_15(_17,"data-dojo-type"))){continue;}var _18=_15(_17,"dojoAttachPoint")||_15(_17,"data-dojo-attach-point");if(_18){var _19,_1a=_18.split(/\s*,\s*/);while((_19=_1a.shift())){if(_1.isArray(this[_19])){this[_19].push(_17);}else{this[_19]=_17;}this._attachPoints.push(_19);}}var _1b=_15(_17,"dojoAttachEvent")||_15(_17,"data-dojo-attach-event");if(_1b){var _1c,_1d=_1b.split(/\s*,\s*/);var _1e=_1.trim;while((_1c=_1d.shift())){if(_1c){var _1f=null;if(_1c.indexOf(":")!=-1){var _20=_1c.split(":");_1c=_1e(_20[0]);_1f=_1e(_20[1]);}else{_1c=_1e(_1c);}if(!_1f){_1f=_1c;}this._attachEvents.push(this.connect(_17,_2[_1c]||_1c,_1f));}}}}},destroyRendering:function(){_6.forEach(this._attachPoints,function(_21){delete this[_21];},this);this._attachPoints=[];_6.forEach(this._attachEvents,this.disconnect,this);this._attachEvents=[];this.inherited(arguments);}});_b._templateCache={};_b.getCachedTemplate=function(_22,_23,doc){var _24=_b._templateCache;var key=_22;var _25=_24[key];if(_25){try{if(!_25.ownerDocument||_25.ownerDocument==(doc||document)){return _25;}}catch(e){}_8.destroy(_25);}_22=_4.trim(_22);if(_23||_22.match(/\$\{([^\}]+)\}/g)){return (_24[key]=_22);}else{var _26=_8.toDom(_22,doc);if(_26.nodeType!=1){throw new Error("Invalid template: "+_22);}return (_24[key]=_26);}};if(_9("ie")){_a.addOnWindowUnload(function(){var _27=_b._templateCache;for(var key in _27){var _28=_27[key];if(typeof _28=="object"){_8.destroy(_28);}delete _27[key];}});}_1.extend(_3,{dojoAttachEvent:"",dojoAttachPoint:""});return _b;}); \ No newline at end of file
diff --git a/lib/dijit/_TimePicker.js b/lib/dijit/_TimePicker.js
index 9a4cd100c..2264fcc5d 100644
--- a/lib/dijit/_TimePicker.js
+++ b/lib/dijit/_TimePicker.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/templates/TimePicker.html":"<div id=\"widget_${id}\" class=\"dijitMenu\"\n ><div data-dojo-attach-point=\"upArrow\" class=\"dijitButtonNode dijitUpArrowButton\" data-dojo-attach-event=\"onmouseenter:_buttonMouse,onmouseleave:_buttonMouse\"\n\t\t><div class=\"dijitReset dijitInline dijitArrowButtonInner\" role=\"presentation\">&#160;</div\n\t\t><div class=\"dijitArrowButtonChar\">&#9650;</div></div\n ><div data-dojo-attach-point=\"timeMenu,focusNode\" data-dojo-attach-event=\"onclick:_onOptionSelected,onmouseover,onmouseout\"></div\n ><div data-dojo-attach-point=\"downArrow\" class=\"dijitButtonNode dijitDownArrowButton\" data-dojo-attach-event=\"onmouseenter:_buttonMouse,onmouseleave:_buttonMouse\"\n\t\t><div class=\"dijitReset dijitInline dijitArrowButtonInner\" role=\"presentation\">&#160;</div\n\t\t><div class=\"dijitArrowButtonChar\">&#9660;</div></div\n></div>\n"}});define("dijit/_TimePicker",["dojo/_base/array","dojo/date","dojo/date/locale","dojo/date/stamp","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/_base/event","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/_base/sniff","dojo/query","dijit/typematic","./_Widget","./_TemplatedMixin","./form/_FormValueWidget","dojo/text!./templates/TimePicker.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12){return _5("dijit._TimePicker",[_f,_10],{templateString:_12,baseClass:"dijitTimePicker",clickableIncrement:"T00:15:00",visibleIncrement:"T01:00:00",visibleRange:"T05:00:00",value:new Date(),_visibleIncrement:2,_clickableIncrement:1,_totalIncrements:10,constraints:{},serialize:_4.toISOString,setValue:function(_13){_9.deprecated("dijit._TimePicker:setValue() is deprecated. Use set('value', ...) instead.","","2.0");this.set("value",_13);},_setValueAttr:function(_14){this._set("value",_14);this._showText();},_setFilterStringAttr:function(val){this._set("filterString",val);this._showText();},isDisabledDate:function(){return false;},_getFilteredNodes:function(_15,_16,_17,_18){var _19=[],_1a=_18?_18.date:this._refDate,n,i=_15,max=this._maxIncrement+Math.abs(i),chk=_17?-1:1,dec=_17?1:0,inc=1-dec;do{i-=dec;n=this._createOption(i);if(n){if((_17&&n.date>_1a)||(!_17&&n.date<_1a)){break;}_19[_17?"unshift":"push"](n);_1a=n.date;}i+=inc;}while(_19.length<_16&&(i*chk)<max);return _19;},_showText:function(){var _1b=_4.fromISOString;this.timeMenu.innerHTML="";this._clickableIncrementDate=_1b(this.clickableIncrement);this._visibleIncrementDate=_1b(this.visibleIncrement);this._visibleRangeDate=_1b(this.visibleRange);var _1c=function(_1d){return _1d.getHours()*60*60+_1d.getMinutes()*60+_1d.getSeconds();},_1e=_1c(this._clickableIncrementDate),_1f=_1c(this._visibleIncrementDate),_20=_1c(this._visibleRangeDate),_21=(this.value||this.currentFocus).getTime();this._refDate=new Date(_21-_21%(_1e*1000));this._refDate.setFullYear(1970,0,1);this._clickableIncrement=1;this._totalIncrements=_20/_1e;this._visibleIncrement=_1f/_1e;this._maxIncrement=(60*60*24)/_1e;var _22=Math.min(this._totalIncrements,10),_23=this._getFilteredNodes(0,(_22>>1)+1,false),_24=[],_25=_22-_23.length,_26=this._getFilteredNodes(0,_25,true,_23[0]);if(_26.length<_25&&_23.length>0){_24=this._getFilteredNodes(_23.length,_25-_26.length,false,_23[_23.length-1]);}_1.forEach(_26.concat(_23,_24),function(n){this.timeMenu.appendChild(n);},this);},constructor:function(){this.constraints={};},postMixInProperties:function(){this.inherited(arguments);this._setConstraintsAttr(this.constraints);},_setConstraintsAttr:function(_27){_b.mixin(this,_27);if(!_27.locale){_27.locale=this.lang;}},postCreate:function(){this.connect(this.timeMenu,_c("ie")?"onmousewheel":"DOMMouseScroll","_mouseWheeled");this._connects.push(_e.addMouseListener(this.upArrow,this,"_onArrowUp",33,250));this._connects.push(_e.addMouseListener(this.downArrow,this,"_onArrowDown",33,250));this.inherited(arguments);},_buttonMouse:function(e){_6.toggle(e.currentTarget,e.currentTarget==this.upArrow?"dijitUpArrowHover":"dijitDownArrowHover",e.type=="mouseenter"||e.type=="mouseover");},_createOption:function(_28){var _29=new Date(this._refDate);var _2a=this._clickableIncrementDate;_29.setHours(_29.getHours()+_2a.getHours()*_28,_29.getMinutes()+_2a.getMinutes()*_28,_29.getSeconds()+_2a.getSeconds()*_28);if(this.constraints.selector=="time"){_29.setFullYear(1970,0,1);}var _2b=_3.format(_29,this.constraints);if(this.filterString&&_2b.toLowerCase().indexOf(this.filterString)!==0){return null;}var div=_7.create("div",{"class":this.baseClass+"Item"});div.date=_29;div.index=_28;_7.create("div",{"class":this.baseClass+"ItemInner",innerHTML:_2b},div);if(_28%this._visibleIncrement<1&&_28%this._visibleIncrement>-1){_6.add(div,this.baseClass+"Marker");}else{if(!(_28%this._clickableIncrement)){_6.add(div,this.baseClass+"Tick");}}if(this.isDisabledDate(_29)){_6.add(div,this.baseClass+"ItemDisabled");}if(this.value&&!_2.compare(this.value,_29,this.constraints.selector)){div.selected=true;_6.add(div,this.baseClass+"ItemSelected");if(_6.contains(div,this.baseClass+"Marker")){_6.add(div,this.baseClass+"MarkerSelected");}else{_6.add(div,this.baseClass+"TickSelected");}this._highlightOption(div,true);}return div;},_onOptionSelected:function(tgt){var _2c=tgt.target.date||tgt.target.parentNode.date;if(!_2c||this.isDisabledDate(_2c)){return;}this._highlighted_option=null;this.set("value",_2c);this.onChange(_2c);},onChange:function(){},_highlightOption:function(_2d,_2e){if(!_2d){return;}if(_2e){if(this._highlighted_option){this._highlightOption(this._highlighted_option,false);}this._highlighted_option=_2d;}else{if(this._highlighted_option!==_2d){return;}else{this._highlighted_option=null;}}_6.toggle(_2d,this.baseClass+"ItemHover",_2e);if(_6.contains(_2d,this.baseClass+"Marker")){_6.toggle(_2d,this.baseClass+"MarkerHover",_2e);}else{_6.toggle(_2d,this.baseClass+"TickHover",_2e);}},onmouseover:function(e){this._keyboardSelected=null;var tgr=(e.target.parentNode===this.timeMenu)?e.target:e.target.parentNode;if(!_6.contains(tgr,this.baseClass+"Item")){return;}this._highlightOption(tgr,true);},onmouseout:function(e){this._keyboardSelected=null;var tgr=(e.target.parentNode===this.timeMenu)?e.target:e.target.parentNode;this._highlightOption(tgr,false);},_mouseWheeled:function(e){this._keyboardSelected=null;_8.stop(e);var _2f=(_c("ie")?e.wheelDelta:-e.detail);this[(_2f>0?"_onArrowUp":"_onArrowDown")]();},_onArrowUp:function(_30){if(typeof _30=="number"&&_30==-1){return;}if(!this.timeMenu.childNodes.length){return;}var _31=this.timeMenu.childNodes[0].index;var _32=this._getFilteredNodes(_31,1,true,this.timeMenu.childNodes[0]);if(_32.length){this.timeMenu.removeChild(this.timeMenu.childNodes[this.timeMenu.childNodes.length-1]);this.timeMenu.insertBefore(_32[0],this.timeMenu.childNodes[0]);}},_onArrowDown:function(_33){if(typeof _33=="number"&&_33==-1){return;}if(!this.timeMenu.childNodes.length){return;}var _34=this.timeMenu.childNodes[this.timeMenu.childNodes.length-1].index+1;var _35=this._getFilteredNodes(_34,1,false,this.timeMenu.childNodes[this.timeMenu.childNodes.length-1]);if(_35.length){this.timeMenu.removeChild(this.timeMenu.childNodes[0]);this.timeMenu.appendChild(_35[0]);}},handleKey:function(e){if(e.charOrCode==_a.DOWN_ARROW||e.charOrCode==_a.UP_ARROW){_8.stop(e);if(this._highlighted_option&&!this._highlighted_option.parentNode){this._highlighted_option=null;}var _36=this.timeMenu,tgt=this._highlighted_option||_d("."+this.baseClass+"ItemSelected",_36)[0];if(!tgt){tgt=_36.childNodes[0];}else{if(_36.childNodes.length){if(e.charOrCode==_a.DOWN_ARROW&&!tgt.nextSibling){this._onArrowDown();}else{if(e.charOrCode==_a.UP_ARROW&&!tgt.previousSibling){this._onArrowUp();}}if(e.charOrCode==_a.DOWN_ARROW){tgt=tgt.nextSibling;}else{tgt=tgt.previousSibling;}}}this._highlightOption(tgt,true);this._keyboardSelected=tgt;return false;}else{if(e.charOrCode==_a.ENTER||e.charOrCode===_a.TAB){if(!this._keyboardSelected&&e.charOrCode===_a.TAB){return true;}if(this._highlighted_option){this._onOptionSelected({target:this._highlighted_option});}return e.charOrCode===_a.TAB;}}return undefined;}});}); \ No newline at end of file
+require({cache:{"url:dijit/templates/TimePicker.html":"<div id=\"widget_${id}\" class=\"dijitMenu\"\n ><div data-dojo-attach-point=\"upArrow\" class=\"dijitButtonNode dijitUpArrowButton\" data-dojo-attach-event=\"onmouseenter:_buttonMouse,onmouseleave:_buttonMouse\"\n\t\t><div class=\"dijitReset dijitInline dijitArrowButtonInner\" role=\"presentation\">&#160;</div\n\t\t><div class=\"dijitArrowButtonChar\">&#9650;</div></div\n ><div data-dojo-attach-point=\"timeMenu,focusNode\" data-dojo-attach-event=\"onclick:_onOptionSelected,onmouseover,onmouseout\"></div\n ><div data-dojo-attach-point=\"downArrow\" class=\"dijitButtonNode dijitDownArrowButton\" data-dojo-attach-event=\"onmouseenter:_buttonMouse,onmouseleave:_buttonMouse\"\n\t\t><div class=\"dijitReset dijitInline dijitArrowButtonInner\" role=\"presentation\">&#160;</div\n\t\t><div class=\"dijitArrowButtonChar\">&#9660;</div></div\n></div>\n"}});define("dijit/_TimePicker",["dojo/_base/array","dojo/date","dojo/date/locale","dojo/date/stamp","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/_base/event","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/query","dojo/mouse","./typematic","./_Widget","./_TemplatedMixin","./form/_FormValueWidget","dojo/text!./templates/TimePicker.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12,_13){var _14=_5("dijit._TimePicker",[_10,_11],{templateString:_13,baseClass:"dijitTimePicker",clickableIncrement:"T00:15:00",visibleIncrement:"T01:00:00",visibleRange:"T05:00:00",value:new Date(),_visibleIncrement:2,_clickableIncrement:1,_totalIncrements:10,constraints:{},serialize:_4.toISOString,setValue:function(_15){_9.deprecated("dijit._TimePicker:setValue() is deprecated. Use set('value', ...) instead.","","2.0");this.set("value",_15);},_setValueAttr:function(_16){this._set("value",_16);this._showText();},_setFilterStringAttr:function(val){this._set("filterString",val);this._showText();},isDisabledDate:function(){return false;},_getFilteredNodes:function(_17,_18,_19,_1a){var _1b=[],_1c=_1a?_1a.date:this._refDate,n,i=_17,max=this._maxIncrement+Math.abs(i),chk=_19?-1:1,dec=_19?1:0,inc=1-dec;do{i-=dec;n=this._createOption(i);if(n){if((_19&&n.date>_1c)||(!_19&&n.date<_1c)){break;}_1b[_19?"unshift":"push"](n);_1c=n.date;}i+=inc;}while(_1b.length<_18&&(i*chk)<max);return _1b;},_showText:function(){var _1d=_4.fromISOString;this.timeMenu.innerHTML="";this._clickableIncrementDate=_1d(this.clickableIncrement);this._visibleIncrementDate=_1d(this.visibleIncrement);this._visibleRangeDate=_1d(this.visibleRange);var _1e=function(_1f){return _1f.getHours()*60*60+_1f.getMinutes()*60+_1f.getSeconds();},_20=_1e(this._clickableIncrementDate),_21=_1e(this._visibleIncrementDate),_22=_1e(this._visibleRangeDate),_23=(this.value||this.currentFocus).getTime();this._refDate=new Date(_23-_23%(_20*1000));this._refDate.setFullYear(1970,0,1);this._clickableIncrement=1;this._totalIncrements=_22/_20;this._visibleIncrement=_21/_20;this._maxIncrement=(60*60*24)/_20;var _24=Math.min(this._totalIncrements,10),_25=this._getFilteredNodes(0,(_24>>1)+1,false),_26=[],_27=_24-_25.length,_28=this._getFilteredNodes(0,_27,true,_25[0]);if(_28.length<_27&&_25.length>0){_26=this._getFilteredNodes(_25[_25.length-1].idx+1,_27-_28.length,false,_25[_25.length-1]);}_1.forEach(_28.concat(_25,_26),function(n){this.timeMenu.appendChild(n);},this);if(!_28.length&&!_25.length&&!_26.length&&this.filterString){this.filterString="";this._showText();}},constructor:function(){this.constraints={};},postMixInProperties:function(){this.inherited(arguments);this._setConstraintsAttr(this.constraints);},_setConstraintsAttr:function(_29){_b.mixin(this,_29);if(!_29.locale){_29.locale=this.lang;}},postCreate:function(){this.connect(this.timeMenu,_e.wheel,"_mouseWheeled");this.own(_f.addMouseListener(this.upArrow,this,"_onArrowUp",33,250),_f.addMouseListener(this.downArrow,this,"_onArrowDown",33,250));this.inherited(arguments);},_buttonMouse:function(e){_6.toggle(e.currentTarget,e.currentTarget==this.upArrow?"dijitUpArrowHover":"dijitDownArrowHover",e.type=="mouseenter"||e.type=="mouseover");},_createOption:function(_2a){var _2b=new Date(this._refDate);var _2c=this._clickableIncrementDate;_2b.setTime(_2b.getTime()+_2c.getHours()*_2a*3600000+_2c.getMinutes()*_2a*60000+_2c.getSeconds()*_2a*1000);if(this.constraints.selector=="time"){_2b.setFullYear(1970,0,1);}var _2d=_3.format(_2b,this.constraints);if(this.filterString&&_2d.toLowerCase().indexOf(this.filterString)!==0){return null;}var div=this.ownerDocument.createElement("div");div.className=this.baseClass+"Item";div.date=_2b;div.idx=_2a;_7.create("div",{"class":this.baseClass+"ItemInner",innerHTML:_2d},div);if(_2a%this._visibleIncrement<1&&_2a%this._visibleIncrement>-1){_6.add(div,this.baseClass+"Marker");}else{if(!(_2a%this._clickableIncrement)){_6.add(div,this.baseClass+"Tick");}}if(this.isDisabledDate(_2b)){_6.add(div,this.baseClass+"ItemDisabled");}if(this.value&&!_2.compare(this.value,_2b,this.constraints.selector)){div.selected=true;_6.add(div,this.baseClass+"ItemSelected");if(_6.contains(div,this.baseClass+"Marker")){_6.add(div,this.baseClass+"MarkerSelected");}else{_6.add(div,this.baseClass+"TickSelected");}this._highlightOption(div,true);}return div;},_onOptionSelected:function(tgt){var _2e=tgt.target.date||tgt.target.parentNode.date;if(!_2e||this.isDisabledDate(_2e)){return;}this._highlighted_option=null;this.set("value",_2e);this.onChange(_2e);},onChange:function(){},_highlightOption:function(_2f,_30){if(!_2f){return;}if(_30){if(this._highlighted_option){this._highlightOption(this._highlighted_option,false);}this._highlighted_option=_2f;}else{if(this._highlighted_option!==_2f){return;}else{this._highlighted_option=null;}}_6.toggle(_2f,this.baseClass+"ItemHover",_30);if(_6.contains(_2f,this.baseClass+"Marker")){_6.toggle(_2f,this.baseClass+"MarkerHover",_30);}else{_6.toggle(_2f,this.baseClass+"TickHover",_30);}},onmouseover:function(e){this._keyboardSelected=null;var tgr=(e.target.parentNode===this.timeMenu)?e.target:e.target.parentNode;if(!_6.contains(tgr,this.baseClass+"Item")){return;}this._highlightOption(tgr,true);},onmouseout:function(e){this._keyboardSelected=null;var tgr=(e.target.parentNode===this.timeMenu)?e.target:e.target.parentNode;this._highlightOption(tgr,false);},_mouseWheeled:function(e){this._keyboardSelected=null;_8.stop(e);this[(e.wheelDelta>0?"_onArrowUp":"_onArrowDown")]();},_onArrowUp:function(_31){if(_31===-1){_6.remove(this.upArrow,"dijitUpArrowActive");return;}else{if(_31===0){_6.add(this.upArrow,"dijitUpArrowActive");}}if(!this.timeMenu.childNodes.length){return;}var _32=this.timeMenu.childNodes[0].idx;var _33=this._getFilteredNodes(_32,1,true,this.timeMenu.childNodes[0]);if(_33.length){this.timeMenu.removeChild(this.timeMenu.childNodes[this.timeMenu.childNodes.length-1]);this.timeMenu.insertBefore(_33[0],this.timeMenu.childNodes[0]);}},_onArrowDown:function(_34){if(_34===-1){_6.remove(this.downArrow,"dijitDownArrowActive");return;}else{if(_34===0){_6.add(this.downArrow,"dijitDownArrowActive");}}if(!this.timeMenu.childNodes.length){return;}var _35=this.timeMenu.childNodes[this.timeMenu.childNodes.length-1].idx+1;var _36=this._getFilteredNodes(_35,1,false,this.timeMenu.childNodes[this.timeMenu.childNodes.length-1]);if(_36.length){this.timeMenu.removeChild(this.timeMenu.childNodes[0]);this.timeMenu.appendChild(_36[0]);}},handleKey:function(e){if(e.keyCode==_a.DOWN_ARROW||e.keyCode==_a.UP_ARROW){_8.stop(e);if(this._highlighted_option&&!this._highlighted_option.parentNode){this._highlighted_option=null;}var _37=this.timeMenu,tgt=this._highlighted_option||_d("."+this.baseClass+"ItemSelected",_37)[0];if(!tgt){tgt=_37.childNodes[0];}else{if(_37.childNodes.length){if(e.keyCode==_a.DOWN_ARROW&&!tgt.nextSibling){this._onArrowDown();}else{if(e.keyCode==_a.UP_ARROW&&!tgt.previousSibling){this._onArrowUp();}}if(e.keyCode==_a.DOWN_ARROW){tgt=tgt.nextSibling;}else{tgt=tgt.previousSibling;}}}this._highlightOption(tgt,true);this._keyboardSelected=tgt;return false;}else{if(e.keyCode==_a.ENTER||e.keyCode===_a.TAB){if(!this._keyboardSelected&&e.keyCode===_a.TAB){return true;}if(this._highlighted_option){this._onOptionSelected({target:this._highlighted_option});}return e.keyCode===_a.TAB;}}return undefined;}});return _14;}); \ No newline at end of file
diff --git a/lib/dijit/_Widget.js b/lib/dijit/_Widget.js
index be231b370..c15690dc7 100644
--- a/lib/dijit/_Widget.js
+++ b/lib/dijit/_Widget.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_Widget",["dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","dojo/query","dojo/ready","./registry","./_WidgetBase","./_OnDijitClickMixin","./_FocusMixin","dojo/uacss","./hccss"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){function _d(){};function _e(_f){return function(obj,_10,_11,_12){if(obj&&typeof _10=="string"&&obj[_10]==_d){return obj.on(_10.substring(2).toLowerCase(),_6.hitch(_11,_12));}return _f.apply(_3,arguments);};};_1.around(_3,"connect",_e);if(_5.connect){_1.around(_5,"connect",_e);}var _13=_4("dijit._Widget",[_a,_b,_c],{onClick:_d,onDblClick:_d,onKeyDown:_d,onKeyPress:_d,onKeyUp:_d,onMouseDown:_d,onMouseMove:_d,onMouseOut:_d,onMouseOver:_d,onMouseLeave:_d,onMouseEnter:_d,onMouseUp:_d,constructor:function(_14){this._toConnect={};for(var _15 in _14){if(this[_15]===_d){this._toConnect[_15.replace(/^on/,"").toLowerCase()]=_14[_15];delete _14[_15];}}},postCreate:function(){this.inherited(arguments);for(var _16 in this._toConnect){this.on(_16,this._toConnect[_16]);}delete this._toConnect;},on:function(_17,_18){if(this[this._onMap(_17)]===_d){return _3.connect(this.domNode,_17.toLowerCase(),this,_18);}return this.inherited(arguments);},_setFocusedAttr:function(val){this._focused=val;this._set("focused",val);},setAttribute:function(_19,_1a){_5.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0");this.set(_19,_1a);},attr:function(_1b,_1c){if(_2.isDebug){var _1d=arguments.callee._ach||(arguments.callee._ach={}),_1e=(arguments.callee.caller||"unknown caller").toString();if(!_1d[_1e]){_5.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+_1e,"","2.0");_1d[_1e]=true;}}var _1f=arguments.length;if(_1f>=2||typeof _1b==="object"){return this.set.apply(this,arguments);}else{return this.get(_1b);}},getDescendants:function(){_5.deprecated(this.declaredClass+"::getDescendants() is deprecated. Use getChildren() instead.","","2.0");return this.containerNode?_7("[widgetId]",this.containerNode).map(_9.byNode):[];},_onShow:function(){this.onShow();},onShow:function(){},onHide:function(){},onClose:function(){return true;}});if(!_5.isAsync){_8(0,function(){var _20=["dijit/_base"];require(_20);});}return _13;}); \ No newline at end of file
+define("dijit/_Widget",["dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/has","dojo/_base/kernel","dojo/_base/lang","dojo/query","dojo/ready","./registry","./_WidgetBase","./_OnDijitClickMixin","./_FocusMixin","dojo/uacss","./hccss"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d){function _e(){};function _f(_10){return function(obj,_11,_12,_13){if(obj&&typeof _11=="string"&&obj[_11]==_e){return obj.on(_11.substring(2).toLowerCase(),_7.hitch(_12,_13));}return _10.apply(_3,arguments);};};_1.around(_3,"connect",_f);if(_6.connect){_1.around(_6,"connect",_f);}var _14=_4("dijit._Widget",[_b,_c,_d],{onClick:_e,onDblClick:_e,onKeyDown:_e,onKeyPress:_e,onKeyUp:_e,onMouseDown:_e,onMouseMove:_e,onMouseOut:_e,onMouseOver:_e,onMouseLeave:_e,onMouseEnter:_e,onMouseUp:_e,constructor:function(_15){this._toConnect={};for(var _16 in _15){if(this[_16]===_e){this._toConnect[_16.replace(/^on/,"").toLowerCase()]=_15[_16];delete _15[_16];}}},postCreate:function(){this.inherited(arguments);for(var _17 in this._toConnect){this.on(_17,this._toConnect[_17]);}delete this._toConnect;},on:function(_18,_19){if(this[this._onMap(_18)]===_e){return _3.connect(this.domNode,_18.toLowerCase(),this,_19);}return this.inherited(arguments);},_setFocusedAttr:function(val){this._focused=val;this._set("focused",val);},setAttribute:function(_1a,_1b){_6.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0");this.set(_1a,_1b);},attr:function(_1c,_1d){if(_2.isDebug){var _1e=arguments.callee._ach||(arguments.callee._ach={}),_1f=(arguments.callee.caller||"unknown caller").toString();if(!_1e[_1f]){_6.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+_1f,"","2.0");_1e[_1f]=true;}}var _20=arguments.length;if(_20>=2||typeof _1c==="object"){return this.set.apply(this,arguments);}else{return this.get(_1c);}},getDescendants:function(){_6.deprecated(this.declaredClass+"::getDescendants() is deprecated. Use getChildren() instead.","","2.0");return this.containerNode?_8("[widgetId]",this.containerNode).map(_a.byNode):[];},_onShow:function(){this.onShow();},onShow:function(){},onHide:function(){},onClose:function(){return true;}});if(_5("dijit-legacy-requires")){_9(0,function(){var _21=["dijit/_base"];require(_21);});}return _14;}); \ No newline at end of file
diff --git a/lib/dijit/_WidgetBase.js b/lib/dijit/_WidgetBase.js
index d96bf4fe0..c8a2e02e9 100644
--- a/lib/dijit/_WidgetBase.js
+++ b/lib/dijit/_WidgetBase.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_WidgetBase",["require","dojo/_base/array","dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/ready","dojo/Stateful","dojo/topic","dojo/_base/window","./registry"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,on,_f,_10,_11,win,_12){if(!_d.isAsync){_f(0,function(){var _13=["dijit/_base/manager"];_1(_13);});}var _14={};function _15(obj){var ret={};for(var _16 in obj){ret[_16.toLowerCase()]=true;}return ret;};function _17(_18){return function(val){_8[val?"set":"remove"](this.domNode,_18,val);this._set(_18,val);};};return _6("dijit._WidgetBase",_10,{id:"",_setIdAttr:"domNode",lang:"",_setLangAttr:_17("lang"),dir:"",_setDirAttr:_17("dir"),textDir:"","class":"",_setClassAttr:{node:"domNode",type:"class"},style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{},_blankGif:_4.blankGif||_1.toUrl("dojo/resources/blank.gif"),postscript:function(_19,_1a){this.create(_19,_1a);},create:function(_1b,_1c){this.srcNodeRef=_7.byId(_1c);this._connects=[];this._supportingWidgets=[];if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}if(_1b){this.params=_1b;_e.mixin(this,_1b);}this.postMixInProperties();if(!this.id){this.id=_12.getUniqueId(this.declaredClass.replace(/\./g,"_"));}_12.add(this);this.buildRendering();if(this.domNode){this._applyAttributes();var _1d=this.srcNodeRef;if(_1d&&_1d.parentNode&&this.domNode!==_1d){_1d.parentNode.replaceChild(this.domNode,_1d);}}if(this.domNode){this.domNode.setAttribute("widgetId",this.id);}this.postCreate();if(this.srcNodeRef&&!this.srcNodeRef.parentNode){delete this.srcNodeRef;}this._created=true;},_applyAttributes:function(){var _1e=this.constructor,_1f=_1e._setterAttrs;if(!_1f){_1f=(_1e._setterAttrs=[]);for(var _20 in this.attributeMap){_1f.push(_20);}var _21=_1e.prototype;for(var _22 in _21){if(_22 in this.attributeMap){continue;}var _23="_set"+_22.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase();})+"Attr";if(_23 in _21){_1f.push(_22);}}}_2.forEach(_1f,function(_24){if(this.params&&_24 in this.params){}else{if(this[_24]){this.set(_24,this[_24]);}}},this);for(var _25 in this.params){this.set(_25,this[_25]);}},postMixInProperties:function(){},buildRendering:function(){if(!this.domNode){this.domNode=this.srcNodeRef||_a.create("div");}if(this.baseClass){var _26=this.baseClass.split(" ");if(!this.isLeftToRight()){_26=_26.concat(_2.map(_26,function(_27){return _27+"Rtl";}));}_9.add(this.domNode,_26);}},postCreate:function(){},startup:function(){if(this._started){return;}this._started=true;_2.forEach(this.getChildren(),function(obj){if(!obj._started&&!obj._destroyed&&_e.isFunction(obj.startup)){obj.startup();obj._started=true;}});},destroyRecursive:function(_28){this._beingDestroyed=true;this.destroyDescendants(_28);this.destroy(_28);},destroy:function(_29){this._beingDestroyed=true;this.uninitialize();var c;while((c=this._connects.pop())){c.remove();}var w;while((w=this._supportingWidgets.pop())){if(w.destroyRecursive){w.destroyRecursive();}else{if(w.destroy){w.destroy();}}}this.destroyRendering(_29);_12.remove(this.id);this._destroyed=true;},destroyRendering:function(_2a){if(this.bgIframe){this.bgIframe.destroy(_2a);delete this.bgIframe;}if(this.domNode){if(_2a){_8.remove(this.domNode,"widgetId");}else{_a.destroy(this.domNode);}delete this.domNode;}if(this.srcNodeRef){if(!_2a){_a.destroy(this.srcNodeRef);}delete this.srcNodeRef;}},destroyDescendants:function(_2b){_2.forEach(this.getChildren(),function(_2c){if(_2c.destroyRecursive){_2c.destroyRecursive(_2b);}});},uninitialize:function(){return false;},_setStyleAttr:function(_2d){var _2e=this.domNode;if(_e.isObject(_2d)){_c.set(_2e,_2d);}else{if(_2e.style.cssText){_2e.style.cssText+="; "+_2d;}else{_2e.style.cssText=_2d;}}this._set("style",_2d);},_attrToDom:function(_2f,_30,_31){_31=arguments.length>=3?_31:this.attributeMap[_2f];_2.forEach(_e.isArray(_31)?_31:[_31],function(_32){var _33=this[_32.node||_32||"domNode"];var _34=_32.type||"attribute";switch(_34){case "attribute":if(_e.isFunction(_30)){_30=_e.hitch(this,_30);}var _35=_32.attribute?_32.attribute:(/^on[A-Z][a-zA-Z]*$/.test(_2f)?_2f.toLowerCase():_2f);_8.set(_33,_35,_30);break;case "innerText":_33.innerHTML="";_33.appendChild(win.doc.createTextNode(_30));break;case "innerHTML":_33.innerHTML=_30;break;case "class":_9.replace(_33,_30,this[_2f]);break;}},this);},get:function(_36){var _37=this._getAttrNames(_36);return this[_37.g]?this[_37.g]():this[_36];},set:function(_38,_39){if(typeof _38==="object"){for(var x in _38){this.set(x,_38[x]);}return this;}var _3a=this._getAttrNames(_38),_3b=this[_3a.s];if(_e.isFunction(_3b)){var _3c=_3b.apply(this,Array.prototype.slice.call(arguments,1));}else{var _3d=this.focusNode&&!_e.isFunction(this.focusNode)?"focusNode":"domNode",tag=this[_3d].tagName,_3e=_14[tag]||(_14[tag]=_15(this[_3d])),map=_38 in this.attributeMap?this.attributeMap[_38]:_3a.s in this?this[_3a.s]:((_3a.l in _3e&&typeof _39!="function")||/^aria-|^data-|^role$/.test(_38))?_3d:null;if(map!=null){this._attrToDom(_38,_39,map);}this._set(_38,_39);}return _3c||this;},_attrPairNames:{},_getAttrNames:function(_3f){var apn=this._attrPairNames;if(apn[_3f]){return apn[_3f];}var uc=_3f.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase();});return (apn[_3f]={n:_3f+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr",l:uc.toLowerCase()});},_set:function(_40,_41){var _42=this[_40];this[_40]=_41;if(this._watchCallbacks&&this._created&&_41!==_42){this._watchCallbacks(_40,_42,_41);}},on:function(_43,_44){return _3.after(this,this._onMap(_43),_44,true);},_onMap:function(_45){var _46=this.constructor,map=_46._onMap;if(!map){map=(_46._onMap={});for(var _47 in _46.prototype){if(/^on/.test(_47)){map[_47.replace(/^on/,"").toLowerCase()]=_47;}}}return map[_45.toLowerCase()];},toString:function(){return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]";},getChildren:function(){return this.containerNode?_12.findWidgets(this.containerNode):[];},getParent:function(){return _12.getEnclosingWidget(this.domNode.parentNode);},connect:function(obj,_48,_49){var _4a=_5.connect(obj,_48,this,_49);this._connects.push(_4a);return _4a;},disconnect:function(_4b){var i=_2.indexOf(this._connects,_4b);if(i!=-1){_4b.remove();this._connects.splice(i,1);}},subscribe:function(t,_4c){var _4d=_11.subscribe(t,_e.hitch(this,_4c));this._connects.push(_4d);return _4d;},unsubscribe:function(_4e){this.disconnect(_4e);},isLeftToRight:function(){return this.dir?(this.dir=="ltr"):_b.isBodyLtr();},isFocusable:function(){return this.focus&&(_c.get(this.domNode,"display")!="none");},placeAt:function(_4f,_50){if(_4f.declaredClass&&_4f.addChild){_4f.addChild(this,_50);}else{_a.place(this.domNode,_4f,_50);}return this;},getTextDir:function(_51,_52){return _52;},applyTextDir:function(){},defer:function(fcn,_53){var _54=setTimeout(_e.hitch(this,function(){_54=null;if(!this._destroyed){_e.hitch(this,fcn)();}}),_53||0);return {remove:function(){if(_54){clearTimeout(_54);_54=null;}return null;}};}});}); \ No newline at end of file
+define("dijit/_WidgetBase",["require","dojo/_base/array","dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/ready","dojo/Stateful","dojo/topic","dojo/_base/window","./Destroyable","./registry"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,on,_10,_11,_12,win,_13,_14){_d.add("dijit-legacy-requires",!_e.isAsync);if(_d("dijit-legacy-requires")){_10(0,function(){var _15=["dijit/_base/manager"];_1(_15);});}var _16={};function _17(obj){var ret={};for(var _18 in obj){ret[_18.toLowerCase()]=true;}return ret;};function _19(_1a){return function(val){_8[val?"set":"remove"](this.domNode,_1a,val);this._set(_1a,val);};};return _6("dijit._WidgetBase",[_11,_13],{id:"",_setIdAttr:"domNode",lang:"",_setLangAttr:_19("lang"),dir:"",_setDirAttr:_19("dir"),textDir:"","class":"",_setClassAttr:{node:"domNode",type:"class"},style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,ownerDocument:null,_setOwnerDocumentAttr:function(val){this._set("ownerDocument",val);},attributeMap:{},_blankGif:_4.blankGif||_1.toUrl("dojo/resources/blank.gif"),postscript:function(_1b,_1c){this.create(_1b,_1c);},create:function(_1d,_1e){this.srcNodeRef=_7.byId(_1e);this._connects=[];this._supportingWidgets=[];if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}if(_1d){this.params=_1d;_f.mixin(this,_1d);}this.postMixInProperties();if(!this.id){this.id=_14.getUniqueId(this.declaredClass.replace(/\./g,"_"));if(this.params){delete this.params.id;}}this.ownerDocument=this.ownerDocument||(this.srcNodeRef?this.srcNodeRef.ownerDocument:win.doc);this.ownerDocumentBody=win.body(this.ownerDocument);_14.add(this);this.buildRendering();var _1f;if(this.domNode){this._applyAttributes();var _20=this.srcNodeRef;if(_20&&_20.parentNode&&this.domNode!==_20){_20.parentNode.replaceChild(this.domNode,_20);_1f=true;}this.domNode.setAttribute("widgetId",this.id);}this.postCreate();if(_1f){delete this.srcNodeRef;}this._created=true;},_applyAttributes:function(){var _21=this.constructor,_22=_21._setterAttrs;if(!_22){_22=(_21._setterAttrs=[]);for(var _23 in this.attributeMap){_22.push(_23);}var _24=_21.prototype;for(var _25 in _24){if(_25 in this.attributeMap){continue;}var _26="_set"+_25.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase();})+"Attr";if(_26 in _24){_22.push(_25);}}}var _27={};for(var key in this.params||{}){_27[key]=this[key];}_2.forEach(_22,function(_28){if(_28 in _27){}else{if(this[_28]){this.set(_28,this[_28]);}}},this);for(key in _27){this.set(key,_27[key]);}},postMixInProperties:function(){},buildRendering:function(){if(!this.domNode){this.domNode=this.srcNodeRef||this.ownerDocument.createElement("div");}if(this.baseClass){var _29=this.baseClass.split(" ");if(!this.isLeftToRight()){_29=_29.concat(_2.map(_29,function(_2a){return _2a+"Rtl";}));}_9.add(this.domNode,_29);}},postCreate:function(){},startup:function(){if(this._started){return;}this._started=true;_2.forEach(this.getChildren(),function(obj){if(!obj._started&&!obj._destroyed&&_f.isFunction(obj.startup)){obj.startup();obj._started=true;}});},destroyRecursive:function(_2b){this._beingDestroyed=true;this.destroyDescendants(_2b);this.destroy(_2b);},destroy:function(_2c){this._beingDestroyed=true;this.uninitialize();function _2d(w){if(w.destroyRecursive){w.destroyRecursive(_2c);}else{if(w.destroy){w.destroy(_2c);}}};_2.forEach(this._connects,_f.hitch(this,"disconnect"));_2.forEach(this._supportingWidgets,_2d);if(this.domNode){_2.forEach(_14.findWidgets(this.domNode,this.containerNode),_2d);}this.destroyRendering(_2c);_14.remove(this.id);this._destroyed=true;},destroyRendering:function(_2e){if(this.bgIframe){this.bgIframe.destroy(_2e);delete this.bgIframe;}if(this.domNode){if(_2e){_8.remove(this.domNode,"widgetId");}else{_a.destroy(this.domNode);}delete this.domNode;}if(this.srcNodeRef){if(!_2e){_a.destroy(this.srcNodeRef);}delete this.srcNodeRef;}},destroyDescendants:function(_2f){_2.forEach(this.getChildren(),function(_30){if(_30.destroyRecursive){_30.destroyRecursive(_2f);}});},uninitialize:function(){return false;},_setStyleAttr:function(_31){var _32=this.domNode;if(_f.isObject(_31)){_c.set(_32,_31);}else{if(_32.style.cssText){_32.style.cssText+="; "+_31;}else{_32.style.cssText=_31;}}this._set("style",_31);},_attrToDom:function(_33,_34,_35){_35=arguments.length>=3?_35:this.attributeMap[_33];_2.forEach(_f.isArray(_35)?_35:[_35],function(_36){var _37=this[_36.node||_36||"domNode"];var _38=_36.type||"attribute";switch(_38){case "attribute":if(_f.isFunction(_34)){_34=_f.hitch(this,_34);}var _39=_36.attribute?_36.attribute:(/^on[A-Z][a-zA-Z]*$/.test(_33)?_33.toLowerCase():_33);if(_37.tagName){_8.set(_37,_39,_34);}else{_37.set(_39,_34);}break;case "innerText":_37.innerHTML="";_37.appendChild(this.ownerDocument.createTextNode(_34));break;case "innerHTML":_37.innerHTML=_34;break;case "class":_9.replace(_37,_34,this[_33]);break;}},this);},get:function(_3a){var _3b=this._getAttrNames(_3a);return this[_3b.g]?this[_3b.g]():this[_3a];},set:function(_3c,_3d){if(typeof _3c==="object"){for(var x in _3c){this.set(x,_3c[x]);}return this;}var _3e=this._getAttrNames(_3c),_3f=this[_3e.s];if(_f.isFunction(_3f)){var _40=_3f.apply(this,Array.prototype.slice.call(arguments,1));}else{var _41=this.focusNode&&!_f.isFunction(this.focusNode)?"focusNode":"domNode",tag=this[_41].tagName,_42=_16[tag]||(_16[tag]=_17(this[_41])),map=_3c in this.attributeMap?this.attributeMap[_3c]:_3e.s in this?this[_3e.s]:((_3e.l in _42&&typeof _3d!="function")||/^aria-|^data-|^role$/.test(_3c))?_41:null;if(map!=null){this._attrToDom(_3c,_3d,map);}this._set(_3c,_3d);}return _40||this;},_attrPairNames:{},_getAttrNames:function(_43){var apn=this._attrPairNames;if(apn[_43]){return apn[_43];}var uc=_43.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase();});return (apn[_43]={n:_43+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr",l:uc.toLowerCase()});},_set:function(_44,_45){var _46=this[_44];this[_44]=_45;if(this._created&&_45!==_46){if(this._watchCallbacks){this._watchCallbacks(_44,_46,_45);}this.emit("attrmodified-"+_44,{detail:{prevValue:_46,newValue:_45}});}},emit:function(_47,_48,_49){_48=_48||{};if(_48.bubbles===undefined){_48.bubbles=true;}if(_48.cancelable===undefined){_48.cancelable=true;}if(!_48.detail){_48.detail={};}_48.detail.widget=this;var ret,_4a=this["on"+_47];if(_4a){ret=_4a.apply(this,_49?_49:[_48]);}if(this._started&&!this._beingDestroyed){on.emit(this.domNode,_47.toLowerCase(),_48);}return ret;},on:function(_4b,_4c){var _4d=this._onMap(_4b);if(_4d){return _3.after(this,_4d,_4c,true);}return this.own(on(this.domNode,_4b,_4c))[0];},_onMap:function(_4e){var _4f=this.constructor,map=_4f._onMap;if(!map){map=(_4f._onMap={});for(var _50 in _4f.prototype){if(/^on/.test(_50)){map[_50.replace(/^on/,"").toLowerCase()]=_50;}}}return map[typeof _4e=="string"&&_4e.toLowerCase()];},toString:function(){return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]";},getChildren:function(){return this.containerNode?_14.findWidgets(this.containerNode):[];},getParent:function(){return _14.getEnclosingWidget(this.domNode.parentNode);},connect:function(obj,_51,_52){return this.own(_5.connect(obj,_51,this,_52))[0];},disconnect:function(_53){_53.remove();},subscribe:function(t,_54){return this.own(_12.subscribe(t,_f.hitch(this,_54)))[0];},unsubscribe:function(_55){_55.remove();},isLeftToRight:function(){return this.dir?(this.dir=="ltr"):_b.isBodyLtr(this.ownerDocument);},isFocusable:function(){return this.focus&&(_c.get(this.domNode,"display")!="none");},placeAt:function(_56,_57){var _58=!_56.tagName&&_14.byId(_56);if(_58&&_58.addChild&&(!_57||typeof _57==="number")){_58.addChild(this,_57);}else{var ref=_58?(_58.containerNode&&!/after|before|replace/.test(_57||"")?_58.containerNode:_58.domNode):_7.byId(_56,this.ownerDocument);_a.place(this.domNode,ref,_57);if(!this._started&&(this.getParent()||{})._started){this.startup();}}return this;},getTextDir:function(_59,_5a){return _5a;},applyTextDir:function(){},defer:function(fcn,_5b){var _5c=setTimeout(_f.hitch(this,function(){_5c=null;if(!this._destroyed){_f.hitch(this,fcn)();}}),_5b||0);return {remove:function(){if(_5c){clearTimeout(_5c);_5c=null;}return null;}};}});}); \ No newline at end of file
diff --git a/lib/dijit/_WidgetsInTemplateMixin.js b/lib/dijit/_WidgetsInTemplateMixin.js
index bea9c9ffe..f1c7df76b 100644
--- a/lib/dijit/_WidgetsInTemplateMixin.js
+++ b/lib/dijit/_WidgetsInTemplateMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_WidgetsInTemplateMixin",["dojo/_base/array","dojo/_base/declare","dojo/parser","dijit/registry"],function(_1,_2,_3,_4){return _2("dijit._WidgetsInTemplateMixin",null,{_earlyTemplatedStartup:false,widgetsInTemplate:true,_beforeFillContent:function(){if(this.widgetsInTemplate){var _5=this.domNode;var cw=(this._startupWidgets=_3.parse(_5,{noStart:!this._earlyTemplatedStartup,template:true,inherited:{dir:this.dir,lang:this.lang,textDir:this.textDir},propsThis:this,scope:"dojo"}));this._supportingWidgets=_4.findWidgets(_5);this._attachTemplateNodes(cw,function(n,p){return n[p];});}},startup:function(){_1.forEach(this._startupWidgets,function(w){if(w&&!w._started&&w.startup){w.startup();}});this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/_WidgetsInTemplateMixin",["dojo/_base/array","dojo/_base/declare","dojo/parser"],function(_1,_2,_3){return _2("dijit._WidgetsInTemplateMixin",null,{_earlyTemplatedStartup:false,widgetsInTemplate:true,_beforeFillContent:function(){if(this.widgetsInTemplate){var _4=this.domNode;var cw=(this._startupWidgets=_3.parse(_4,{noStart:!this._earlyTemplatedStartup,template:true,inherited:{dir:this.dir,lang:this.lang,textDir:this.textDir},propsThis:this,scope:"dojo"}));if(!cw.isFulfilled()){throw new Error(this.declaredClass+": parser returned unfilled promise (probably waiting for module auto-load), "+"unsupported by _WidgetsInTemplateMixin. Must pre-load all supporting widgets before instantiation.");}this._attachTemplateNodes(cw,function(n,p){return n[p];});}},startup:function(){_1.forEach(this._startupWidgets,function(w){if(w&&!w._started&&w.startup){w.startup();}});this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/_base.js b/lib/dijit/_base.js
index f85f7809e..196356294 100644
--- a/lib/dijit/_base.js
+++ b/lib/dijit/_base.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_base",[".","./a11y","./WidgetSet","./_base/focus","./_base/manager","./_base/place","./_base/popup","./_base/scroll","./_base/sniff","./_base/typematic","./_base/wai","./_base/window"],function(_1){return _1._base;}); \ No newline at end of file
+define("dijit/_base",["./main","./a11y","./WidgetSet","./_base/focus","./_base/manager","./_base/place","./_base/popup","./_base/scroll","./_base/sniff","./_base/typematic","./_base/wai","./_base/window"],function(_1){return _1._base;}); \ No newline at end of file
diff --git a/lib/dijit/_base/focus.js b/lib/dijit/_base/focus.js
index 840329992..0f8a7f92d 100644
--- a/lib/dijit/_base/focus.js
+++ b/lib/dijit/_base/focus.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_base/focus",["dojo/_base/array","dojo/dom","dojo/_base/lang","dojo/topic","dojo/_base/window","../focus",".."],function(_1,_2,_3,_4,_5,_6,_7){_3.mixin(_7,{_curFocus:null,_prevFocus:null,isCollapsed:function(){return _7.getBookmark().isCollapsed;},getBookmark:function(){var bm,rg,tg,_8=_5.doc.selection,cf=_6.curNode;if(_5.global.getSelection){_8=_5.global.getSelection();if(_8){if(_8.isCollapsed){tg=cf?cf.tagName:"";if(tg){tg=tg.toLowerCase();if(tg=="textarea"||(tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text"))){_8={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true};return {isCollapsed:(_8.end<=_8.start),mark:_8};}}bm={isCollapsed:true};if(_8.rangeCount){bm.mark=_8.getRangeAt(0).cloneRange();}}else{rg=_8.getRangeAt(0);bm={isCollapsed:false,mark:rg.cloneRange()};}}}else{if(_8){tg=cf?cf.tagName:"";tg=tg.toLowerCase();if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input")){if(_8.type&&_8.type.toLowerCase()=="none"){return {isCollapsed:true,mark:null};}else{rg=_8.createRange();return {isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}};}}bm={};try{rg=_8.createRange();bm.isCollapsed=!(_8.type=="Text"?rg.htmlText.length:rg.length);}catch(e){bm.isCollapsed=true;return bm;}if(_8.type.toUpperCase()=="CONTROL"){if(rg.length){bm.mark=[];var i=0,_9=rg.length;while(i<_9){bm.mark.push(rg.item(i++));}}else{bm.isCollapsed=true;bm.mark=null;}}else{bm.mark=rg.getBookmark();}}else{console.warn("No idea how to store the current selection for this browser!");}}return bm;},moveToBookmark:function(_a){var _b=_5.doc,_c=_a.mark;if(_c){if(_5.global.getSelection){var _d=_5.global.getSelection();if(_d&&_d.removeAllRanges){if(_c.pRange){var n=_c.node;n.selectionStart=_c.start;n.selectionEnd=_c.end;}else{_d.removeAllRanges();_d.addRange(_c);}}else{console.warn("No idea how to restore selection for this browser!");}}else{if(_b.selection&&_c){var rg;if(_c.pRange){rg=_c.range;}else{if(_3.isArray(_c)){rg=_b.body.createControlRange();_1.forEach(_c,function(n){rg.addElement(n);});}else{rg=_b.body.createTextRange();rg.moveToBookmark(_c);}}rg.select();}}}},getFocus:function(_e,_f){var _10=!_6.curNode||(_e&&_2.isDescendant(_6.curNode,_e.domNode))?_7._prevFocus:_6.curNode;return {node:_10,bookmark:_10&&(_10==_6.curNode)&&_5.withGlobal(_f||_5.global,_7.getBookmark),openedForWindow:_f};},_activeStack:[],registerIframe:function(_11){return _6.registerIframe(_11);},unregisterIframe:function(_12){_12&&_12.remove();},registerWin:function(_13,_14){return _6.registerWin(_13,_14);},unregisterWin:function(_15){_15&&_15.remove();}});_6.focus=function(_16){if(!_16){return;}var _17="node" in _16?_16.node:_16,_18=_16.bookmark,_19=_16.openedForWindow,_1a=_18?_18.isCollapsed:false;if(_17){var _1b=(_17.tagName.toLowerCase()=="iframe")?_17.contentWindow:_17;if(_1b&&_1b.focus){try{_1b.focus();}catch(e){}}_6._onFocusNode(_17);}if(_18&&_5.withGlobal(_19||_5.global,_7.isCollapsed)&&!_1a){if(_19){_19.focus();}try{_5.withGlobal(_19||_5.global,_7.moveToBookmark,null,[_18]);}catch(e2){}}};_6.watch("curNode",function(_1c,_1d,_1e){_7._curFocus=_1e;_7._prevFocus=_1d;if(_1e){_4.publish("focusNode",_1e);}});_6.watch("activeStack",function(_1f,_20,_21){_7._activeStack=_21;});_6.on("widget-blur",function(_22,by){_4.publish("widgetBlur",_22,by);});_6.on("widget-focus",function(_23,by){_4.publish("widgetFocus",_23,by);});return _7;}); \ No newline at end of file
+define("dijit/_base/focus",["dojo/_base/array","dojo/dom","dojo/_base/lang","dojo/topic","dojo/_base/window","../focus","../main"],function(_1,_2,_3,_4,_5,_6,_7){var _8={_curFocus:null,_prevFocus:null,isCollapsed:function(){return _7.getBookmark().isCollapsed;},getBookmark:function(){var bm,rg,tg,_9=_5.doc.selection,cf=_6.curNode;if(_5.global.getSelection){_9=_5.global.getSelection();if(_9){if(_9.isCollapsed){tg=cf?cf.tagName:"";if(tg){tg=tg.toLowerCase();if(tg=="textarea"||(tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text"))){_9={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true};return {isCollapsed:(_9.end<=_9.start),mark:_9};}}bm={isCollapsed:true};if(_9.rangeCount){bm.mark=_9.getRangeAt(0).cloneRange();}}else{rg=_9.getRangeAt(0);bm={isCollapsed:false,mark:rg.cloneRange()};}}}else{if(_9){tg=cf?cf.tagName:"";tg=tg.toLowerCase();if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input")){if(_9.type&&_9.type.toLowerCase()=="none"){return {isCollapsed:true,mark:null};}else{rg=_9.createRange();return {isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}};}}bm={};try{rg=_9.createRange();bm.isCollapsed=!(_9.type=="Text"?rg.htmlText.length:rg.length);}catch(e){bm.isCollapsed=true;return bm;}if(_9.type.toUpperCase()=="CONTROL"){if(rg.length){bm.mark=[];var i=0,_a=rg.length;while(i<_a){bm.mark.push(rg.item(i++));}}else{bm.isCollapsed=true;bm.mark=null;}}else{bm.mark=rg.getBookmark();}}else{console.warn("No idea how to store the current selection for this browser!");}}return bm;},moveToBookmark:function(_b){var _c=_5.doc,_d=_b.mark;if(_d){if(_5.global.getSelection){var _e=_5.global.getSelection();if(_e&&_e.removeAllRanges){if(_d.pRange){var n=_d.node;n.selectionStart=_d.start;n.selectionEnd=_d.end;}else{_e.removeAllRanges();_e.addRange(_d);}}else{console.warn("No idea how to restore selection for this browser!");}}else{if(_c.selection&&_d){var rg;if(_d.pRange){rg=_d.range;}else{if(_3.isArray(_d)){rg=_c.body.createControlRange();_1.forEach(_d,function(n){rg.addElement(n);});}else{rg=_c.body.createTextRange();rg.moveToBookmark(_d);}}rg.select();}}}},getFocus:function(_f,_10){var _11=!_6.curNode||(_f&&_2.isDescendant(_6.curNode,_f.domNode))?_7._prevFocus:_6.curNode;return {node:_11,bookmark:_11&&(_11==_6.curNode)&&_5.withGlobal(_10||_5.global,_7.getBookmark),openedForWindow:_10};},_activeStack:[],registerIframe:function(_12){return _6.registerIframe(_12);},unregisterIframe:function(_13){_13&&_13.remove();},registerWin:function(_14,_15){return _6.registerWin(_14,_15);},unregisterWin:function(_16){_16&&_16.remove();}};_6.focus=function(_17){if(!_17){return;}var _18="node" in _17?_17.node:_17,_19=_17.bookmark,_1a=_17.openedForWindow,_1b=_19?_19.isCollapsed:false;if(_18){var _1c=(_18.tagName.toLowerCase()=="iframe")?_18.contentWindow:_18;if(_1c&&_1c.focus){try{_1c.focus();}catch(e){}}_6._onFocusNode(_18);}if(_19&&_5.withGlobal(_1a||_5.global,_7.isCollapsed)&&!_1b){if(_1a){_1a.focus();}try{_5.withGlobal(_1a||_5.global,_7.moveToBookmark,null,[_19]);}catch(e2){}}};_6.watch("curNode",function(_1d,_1e,_1f){_7._curFocus=_1f;_7._prevFocus=_1e;if(_1f){_4.publish("focusNode",_1f);}});_6.watch("activeStack",function(_20,_21,_22){_7._activeStack=_22;});_6.on("widget-blur",function(_23,by){_4.publish("widgetBlur",_23,by);});_6.on("widget-focus",function(_24,by){_4.publish("widgetFocus",_24,by);});_3.mixin(_7,_8);return _7;}); \ No newline at end of file
diff --git a/lib/dijit/_base/manager.js b/lib/dijit/_base/manager.js
index db80c9890..473d1fb8a 100644
--- a/lib/dijit/_base/manager.js
+++ b/lib/dijit/_base/manager.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_base/manager",["dojo/_base/array","dojo/_base/config","../registry",".."],function(_1,_2,_3,_4){_1.forEach(["byId","getUniqueId","findWidgets","_destroyAll","byNode","getEnclosingWidget"],function(_5){_4[_5]=_3[_5];});_4.defaultDuration=_2["defaultDuration"]||200;return _4;}); \ No newline at end of file
+define("dijit/_base/manager",["dojo/_base/array","dojo/_base/config","dojo/_base/lang","../registry","../main"],function(_1,_2,_3,_4,_5){var _6={};_1.forEach(["byId","getUniqueId","findWidgets","_destroyAll","byNode","getEnclosingWidget"],function(_7){_6[_7]=_4[_7];});_3.mixin(_6,{defaultDuration:_2["defaultDuration"]||200});_3.mixin(_5,_6);return _5;}); \ No newline at end of file
diff --git a/lib/dijit/_base/place.js b/lib/dijit/_base/place.js
index 8bdd09f80..52c166ad2 100644
--- a/lib/dijit/_base/place.js
+++ b/lib/dijit/_base/place.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_base/place",["dojo/_base/array","dojo/_base/lang","dojo/window","../place",".."],function(_1,_2,_3,_4,_5){_5.getViewport=function(){return _3.getBox();};_5.placeOnScreen=_4.at;_5.placeOnScreenAroundElement=function(_6,_7,_8,_9){var _a;if(_2.isArray(_8)){_a=_8;}else{_a=[];for(var _b in _8){_a.push({aroundCorner:_b,corner:_8[_b]});}}return _4.around(_6,_7,_a,true,_9);};_5.placeOnScreenAroundNode=_5.placeOnScreenAroundElement;_5.placeOnScreenAroundRectangle=_5.placeOnScreenAroundElement;_5.getPopupAroundAlignment=function(_c,_d){var _e={};_1.forEach(_c,function(_f){var ltr=_d;switch(_f){case "after":_e[_d?"BR":"BL"]=_d?"BL":"BR";break;case "before":_e[_d?"BL":"BR"]=_d?"BR":"BL";break;case "below-alt":ltr=!ltr;case "below":_e[ltr?"BL":"BR"]=ltr?"TL":"TR";_e[ltr?"BR":"BL"]=ltr?"TR":"TL";break;case "above-alt":ltr=!ltr;case "above":default:_e[ltr?"TL":"TR"]=ltr?"BL":"BR";_e[ltr?"TR":"TL"]=ltr?"BR":"BL";break;}});return _e;};return _5;}); \ No newline at end of file
+define("dijit/_base/place",["dojo/_base/array","dojo/_base/lang","dojo/window","../place","../main"],function(_1,_2,_3,_4,_5){var _6={};_6.getViewport=function(){return _3.getBox();};_6.placeOnScreen=_4.at;_6.placeOnScreenAroundElement=function(_7,_8,_9,_a){var _b;if(_2.isArray(_9)){_b=_9;}else{_b=[];for(var _c in _9){_b.push({aroundCorner:_c,corner:_9[_c]});}}return _4.around(_7,_8,_b,true,_a);};_6.placeOnScreenAroundNode=_6.placeOnScreenAroundElement;_6.placeOnScreenAroundRectangle=_6.placeOnScreenAroundElement;_6.getPopupAroundAlignment=function(_d,_e){var _f={};_1.forEach(_d,function(pos){var ltr=_e;switch(pos){case "after":_f[_e?"BR":"BL"]=_e?"BL":"BR";break;case "before":_f[_e?"BL":"BR"]=_e?"BR":"BL";break;case "below-alt":ltr=!ltr;case "below":_f[ltr?"BL":"BR"]=ltr?"TL":"TR";_f[ltr?"BR":"BL"]=ltr?"TR":"TL";break;case "above-alt":ltr=!ltr;case "above":default:_f[ltr?"TL":"TR"]=ltr?"BL":"BR";_f[ltr?"TR":"TL"]=ltr?"BR":"BL";break;}});return _f;};_2.mixin(_5,_6);return _5;}); \ No newline at end of file
diff --git a/lib/dijit/_base/popup.js b/lib/dijit/_base/popup.js
index 2a38c810e..5e6939ddf 100644
--- a/lib/dijit/_base/popup.js
+++ b/lib/dijit/_base/popup.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_base/popup",["dojo/dom-class","../popup","../BackgroundIframe"],function(_1,_2){var _3=_2._createWrapper;_2._createWrapper=function(_4){if(!_4.declaredClass){_4={_popupWrapper:(_4.parentNode&&_1.contains(_4.parentNode,"dijitPopup"))?_4.parentNode:null,domNode:_4,destroy:function(){}};}return _3.call(this,_4);};var _5=_2.open;_2.open=function(_6){if(_6.orient&&typeof _6.orient!="string"&&!("length" in _6.orient)){var _7=[];for(var _8 in _6.orient){_7.push({aroundCorner:_8,corner:_6.orient[_8]});}_6.orient=_7;}return _5.call(this,_6);};return _2;}); \ No newline at end of file
+define("dijit/_base/popup",["dojo/dom-class","dojo/_base/window","../popup","../BackgroundIframe"],function(_1,_2,_3){var _4=_3._createWrapper;_3._createWrapper=function(_5){if(!_5.declaredClass){_5={_popupWrapper:(_5.parentNode&&_1.contains(_5.parentNode,"dijitPopup"))?_5.parentNode:null,domNode:_5,destroy:function(){},ownerDocument:_5.ownerDocument,ownerDocumentBody:_2.body(_5.ownerDocument)};}return _4.call(this,_5);};var _6=_3.open;_3.open=function(_7){if(_7.orient&&typeof _7.orient!="string"&&!("length" in _7.orient)){var _8=[];for(var _9 in _7.orient){_8.push({aroundCorner:_9,corner:_7.orient[_9]});}_7.orient=_8;}return _6.call(this,_7);};return _3;}); \ No newline at end of file
diff --git a/lib/dijit/_base/scroll.js b/lib/dijit/_base/scroll.js
index dd7027147..e5763e1ec 100644
--- a/lib/dijit/_base/scroll.js
+++ b/lib/dijit/_base/scroll.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_base/scroll",["dojo/window",".."],function(_1,_2){_2.scrollIntoView=function(_3,_4){_1.scrollIntoView(_3,_4);};}); \ No newline at end of file
+define("dijit/_base/scroll",["dojo/window","../main"],function(_1,_2){_2.scrollIntoView=function(_3,_4){_1.scrollIntoView(_3,_4);};}); \ No newline at end of file
diff --git a/lib/dijit/_base/wai.js b/lib/dijit/_base/wai.js
index d16ca3575..5bcb62514 100644
--- a/lib/dijit/_base/wai.js
+++ b/lib/dijit/_base/wai.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_base/wai",["dojo/dom-attr","dojo/_base/lang","..","../hccss"],function(_1,_2,_3){_2.mixin(_3,{hasWaiRole:function(_4,_5){var _6=this.getWaiRole(_4);return _5?(_6.indexOf(_5)>-1):(_6.length>0);},getWaiRole:function(_7){return _2.trim((_1.get(_7,"role")||"").replace("wairole:",""));},setWaiRole:function(_8,_9){_1.set(_8,"role",_9);},removeWaiRole:function(_a,_b){var _c=_1.get(_a,"role");if(!_c){return;}if(_b){var t=_2.trim((" "+_c+" ").replace(" "+_b+" "," "));_1.set(_a,"role",t);}else{_a.removeAttribute("role");}},hasWaiState:function(_d,_e){return _d.hasAttribute?_d.hasAttribute("aria-"+_e):!!_d.getAttribute("aria-"+_e);},getWaiState:function(_f,_10){return _f.getAttribute("aria-"+_10)||"";},setWaiState:function(_11,_12,_13){_11.setAttribute("aria-"+_12,_13);},removeWaiState:function(_14,_15){_14.removeAttribute("aria-"+_15);}});return _3;}); \ No newline at end of file
+define("dijit/_base/wai",["dojo/dom-attr","dojo/_base/lang","../main","../hccss"],function(_1,_2,_3){var _4={hasWaiRole:function(_5,_6){var _7=this.getWaiRole(_5);return _6?(_7.indexOf(_6)>-1):(_7.length>0);},getWaiRole:function(_8){return _2.trim((_1.get(_8,"role")||"").replace("wairole:",""));},setWaiRole:function(_9,_a){_1.set(_9,"role",_a);},removeWaiRole:function(_b,_c){var _d=_1.get(_b,"role");if(!_d){return;}if(_c){var t=_2.trim((" "+_d+" ").replace(" "+_c+" "," "));_1.set(_b,"role",t);}else{_b.removeAttribute("role");}},hasWaiState:function(_e,_f){return _e.hasAttribute?_e.hasAttribute("aria-"+_f):!!_e.getAttribute("aria-"+_f);},getWaiState:function(_10,_11){return _10.getAttribute("aria-"+_11)||"";},setWaiState:function(_12,_13,_14){_12.setAttribute("aria-"+_13,_14);},removeWaiState:function(_15,_16){_15.removeAttribute("aria-"+_16);}};_2.mixin(_3,_4);return _3;}); \ No newline at end of file
diff --git a/lib/dijit/_base/window.js b/lib/dijit/_base/window.js
index 4b79d780d..9b405a62f 100644
--- a/lib/dijit/_base/window.js
+++ b/lib/dijit/_base/window.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_base/window",["dojo/window",".."],function(_1,_2){_2.getDocumentWindow=function(_3){return _1.get(_3);};}); \ No newline at end of file
+define("dijit/_base/window",["dojo/window","../main"],function(_1,_2){_2.getDocumentWindow=function(_3){return _1.get(_3);};}); \ No newline at end of file
diff --git a/lib/dijit/_editor/RichText.js b/lib/dijit/_editor/RichText.js
index afa4a944d..7bd30103d 100644
--- a/lib/dijit/_editor/RichText.js
+++ b/lib/dijit/_editor/RichText.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/RichText",["dojo/_base/array","dojo/_base/config","dojo/_base/declare","dojo/_base/Deferred","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/query","dojo/ready","dojo/_base/sniff","dojo/topic","dojo/_base/unload","dojo/_base/url","dojo/_base/window","../_Widget","../_CssStateMixin","./selection","./range","./html","../focus",".."],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,on,_f,_10,has,_11,_12,_13,win,_14,_15,_16,_17,_18,_19,_1a){var _1b=_3("dijit._editor.RichText",[_14,_15],{constructor:function(_1c){this.contentPreFilters=[];this.contentPostFilters=[];this.contentDomPreFilters=[];this.contentDomPostFilters=[];this.editingAreaStyleSheets=[];this.events=[].concat(this.events);this._keyHandlers={};if(_1c&&_e.isString(_1c.value)){this.value=_1c.value;}this.onLoadDeferred=new _4();},baseClass:"dijitEditor",inheritWidth:false,focusOnLoad:false,name:"",styleSheets:"",height:"300px",minHeight:"1em",isClosed:true,isLoaded:false,_SEPARATOR:"@@**%%__RICHTEXTBOUNDRY__%%**@@",_NAME_CONTENT_SEP:"@@**%%:%%**@@",onLoadDeferred:null,isTabIndent:false,disableSpellCheck:false,postCreate:function(){if("textarea"===this.domNode.tagName.toLowerCase()){console.warn("RichText should not be used with the TEXTAREA tag. See dijit._editor.RichText docs.");}this.contentPreFilters=[_e.hitch(this,"_preFixUrlAttributes")].concat(this.contentPreFilters);if(has("mozilla")){this.contentPreFilters=[this._normalizeFontStyle].concat(this.contentPreFilters);this.contentPostFilters=[this._removeMozBogus].concat(this.contentPostFilters);}if(has("webkit")){this.contentPreFilters=[this._removeWebkitBogus].concat(this.contentPreFilters);this.contentPostFilters=[this._removeWebkitBogus].concat(this.contentPostFilters);}if(has("ie")){this.contentPostFilters=[this._normalizeFontStyle].concat(this.contentPostFilters);this.contentDomPostFilters=[_e.hitch(this,this._stripBreakerNodes)].concat(this.contentDomPostFilters);}this.inherited(arguments);_11.publish(_1a._scopeName+"._editor.RichText::init",this);this.open();this.setupDefaultShortcuts();},setupDefaultShortcuts:function(){var _1d=_e.hitch(this,function(cmd,arg){return function(){return !this.execCommand(cmd,arg);};});var _1e={b:_1d("bold"),i:_1d("italic"),u:_1d("underline"),a:_1d("selectall"),s:function(){this.save(true);},m:function(){this.isTabIndent=!this.isTabIndent;},"1":_1d("formatblock","h1"),"2":_1d("formatblock","h2"),"3":_1d("formatblock","h3"),"4":_1d("formatblock","h4"),"\\":_1d("insertunorderedlist")};if(!has("ie")){_1e.Z=_1d("redo");}var key;for(key in _1e){this.addKeyHandler(key,true,false,_1e[key]);}},events:["onKeyPress","onKeyDown","onKeyUp"],captureEvents:[],_editorCommandsLocalized:false,_localizeEditorCommands:function(){if(_1b._editorCommandsLocalized){this._local2NativeFormatNames=_1b._local2NativeFormatNames;this._native2LocalFormatNames=_1b._native2LocalFormatNames;return;}_1b._editorCommandsLocalized=true;_1b._local2NativeFormatNames={};_1b._native2LocalFormatNames={};this._local2NativeFormatNames=_1b._local2NativeFormatNames;this._native2LocalFormatNames=_1b._native2LocalFormatNames;var _1f=["div","p","pre","h1","h2","h3","h4","h5","h6","ol","ul","address"];var _20="",_21,i=0;while((_21=_1f[i++])){if(_21.charAt(1)!=="l"){_20+="<"+_21+"><span>content</span></"+_21+"><br/>";}else{_20+="<"+_21+"><li>content</li></"+_21+"><br/>";}}var _22={position:"absolute",top:"0px",zIndex:10,opacity:0.01};var div=_8.create("div",{style:_22,innerHTML:_20});win.body().appendChild(div);var _23=_e.hitch(this,function(){var _24=div.firstChild;while(_24){try{_16.selectElement(_24.firstChild);var _25=_24.tagName.toLowerCase();this._local2NativeFormatNames[_25]=document.queryCommandValue("formatblock");this._native2LocalFormatNames[this._local2NativeFormatNames[_25]]=_25;_24=_24.nextSibling.nextSibling;}catch(e){}}div.parentNode.removeChild(div);div.innerHTML="";});setTimeout(_23,0);},open:function(_26){if(!this.onLoadDeferred||this.onLoadDeferred.fired>=0){this.onLoadDeferred=new _4();}if(!this.isClosed){this.close();}_11.publish(_1a._scopeName+"._editor.RichText::open",this);if(arguments.length===1&&_26.nodeName){this.domNode=_26;}var dn=this.domNode;var _27;if(_e.isString(this.value)){_27=this.value;delete this.value;dn.innerHTML="";}else{if(dn.nodeName&&dn.nodeName.toLowerCase()=="textarea"){var ta=(this.textarea=dn);this.name=ta.name;_27=ta.value;dn=this.domNode=win.doc.createElement("div");dn.setAttribute("widgetId",this.id);ta.removeAttribute("widgetId");dn.cssText=ta.cssText;dn.className+=" "+ta.className;_8.place(dn,ta,"before");var _28=_e.hitch(this,function(){_a.set(ta,{display:"block",position:"absolute",top:"-1000px"});if(has("ie")){var s=ta.style;this.__overflow=s.overflow;s.overflow="hidden";}});if(has("ie")){setTimeout(_28,10);}else{_28();}if(ta.form){var _29=ta.value;this.reset=function(){var _2a=this.getValue();if(_2a!==_29){this.replaceValue(_29);}};on(ta.form,"submit",_e.hitch(this,function(){_6.set(ta,"disabled",this.disabled);ta.value=this.getValue();}));}}else{_27=_18.getChildrenHtml(dn);dn.innerHTML="";}}this.value=_27;if(dn.nodeName&&dn.nodeName==="LI"){dn.innerHTML=" <br>";}this.header=dn.ownerDocument.createElement("div");dn.appendChild(this.header);this.editingArea=dn.ownerDocument.createElement("div");dn.appendChild(this.editingArea);this.footer=dn.ownerDocument.createElement("div");dn.appendChild(this.footer);if(!this.name){this.name=this.id+"_AUTOGEN";}if(this.name!==""&&(!_2["useXDomain"]||_2["allowXdRichTextSave"])){var _2b=_5.byId(_1a._scopeName+"._editor.RichText.value");if(_2b&&_2b.value!==""){var _2c=_2b.value.split(this._SEPARATOR),i=0,dat;while((dat=_2c[i++])){var _2d=dat.split(this._NAME_CONTENT_SEP);if(_2d[0]===this.name){_27=_2d[1];_2c=_2c.splice(i,1);_2b.value=_2c.join(this._SEPARATOR);break;}}}if(!_1b._globalSaveHandler){_1b._globalSaveHandler={};_12.addOnUnload(function(){var id;for(id in _1b._globalSaveHandler){var f=_1b._globalSaveHandler[id];if(_e.isFunction(f)){f();}}});}_1b._globalSaveHandler[this.id]=_e.hitch(this,"_saveContent");}this.isClosed=false;var ifr=(this.editorObject=this.iframe=win.doc.createElement("iframe"));ifr.id=this.id+"_iframe";this._iframeSrc=this._getIframeDocTxt();ifr.style.border="none";ifr.style.width="100%";if(this._layoutMode){ifr.style.height="100%";}else{if(has("ie")>=7){if(this.height){ifr.style.height=this.height;}if(this.minHeight){ifr.style.minHeight=this.minHeight;}}else{ifr.style.height=this.height?this.height:this.minHeight;}}ifr.frameBorder=0;ifr._loadFunc=_e.hitch(this,function(w){this.window=w;this.document=this.window.document;if(has("ie")){this._localizeEditorCommands();}this.onLoad(_27);});var _2e="parent."+_1a._scopeName+".byId(\""+this.id+"\")._iframeSrc";var s="javascript:(function(){try{return "+_2e+"}catch(e){document.open();document.domain=\""+document.domain+"\";document.write("+_2e+");document.close();}})()";ifr.setAttribute("src",s);this.editingArea.appendChild(ifr);if(has("safari")<=4){var src=ifr.getAttribute("src");if(!src||src.indexOf("javascript")===-1){setTimeout(function(){ifr.setAttribute("src",s);},0);}}if(dn.nodeName==="LI"){dn.lastChild.style.marginTop="-1.2em";}_7.add(this.domNode,this.baseClass);},_local2NativeFormatNames:{},_native2LocalFormatNames:{},_getIframeDocTxt:function(){var _2f=_a.getComputedStyle(this.domNode);var _30="";var _31=true;if(has("ie")||has("webkit")||(!this.height&&!has("mozilla"))){_30="<div id='dijitEditorBody'></div>";_31=false;}else{if(has("mozilla")){this._cursorToStart=true;_30="&#160;";}}var _32=[_2f.fontWeight,_2f.fontSize,_2f.fontFamily].join(" ");var _33=_2f.lineHeight;if(_33.indexOf("px")>=0){_33=parseFloat(_33)/parseFloat(_2f.fontSize);}else{if(_33.indexOf("em")>=0){_33=parseFloat(_33);}else{_33="normal";}}var _34="";var _35=this;this.style.replace(/(^|;)\s*(line-|font-?)[^;]+/ig,function(_36){_36=_36.replace(/^;/ig,"")+";";var s=_36.split(":")[0];if(s){s=_e.trim(s);s=s.toLowerCase();var i;var sC="";for(i=0;i<s.length;i++){var c=s.charAt(i);switch(c){case "-":i++;c=s.charAt(i).toUpperCase();default:sC+=c;}}_a.set(_35.domNode,sC,"");}_34+=_36+";";});var _37=_f("label[for=\""+this.id+"\"]");return [this.isLeftToRight()?"<html>\n<head>\n":"<html dir='rtl'>\n<head>\n",(has("mozilla")&&_37.length?"<title>"+_37[0].innerHTML+"</title>\n":""),"<meta http-equiv='Content-Type' content='text/html'>\n","<style>\n","\tbody,html {\n","\t\tbackground:transparent;\n","\t\tpadding: 1px 0 0 0;\n","\t\tmargin: -1px 0 0 0;\n",((has("webkit"))?"\t\twidth: 100%;\n":""),((has("webkit"))?"\t\theight: 100%;\n":""),"\t}\n","\tbody{\n","\t\ttop:0px;\n","\t\tleft:0px;\n","\t\tright:0px;\n","\t\tfont:",_32,";\n",((this.height||has("opera"))?"":"\t\tposition: fixed;\n"),"\t\tmin-height:",this.minHeight,";\n","\t\tline-height:",_33,";\n","\t}\n","\tp{ margin: 1em 0; }\n",(!_31&&!this.height?"\tbody,html {overflow-y: hidden;}\n":""),"\t#dijitEditorBody{overflow-x: auto; overflow-y:"+(this.height?"auto;":"hidden;")+" outline: 0px;}\n","\tli > ul:-moz-first-node, li > ol:-moz-first-node{ padding-top: 1.2em; }\n",(!has("ie")?"\tli{ min-height:1.2em; }\n":""),"</style>\n",this._applyEditingAreaStyleSheets(),"\n","</head>\n<body ",(_31?"id='dijitEditorBody' ":""),"onload='frameElement._loadFunc(window,document)' style='"+_34+"'>",_30,"</body>\n</html>"].join("");},_applyEditingAreaStyleSheets:function(){var _38=[];if(this.styleSheets){_38=this.styleSheets.split(";");this.styleSheets="";}_38=_38.concat(this.editingAreaStyleSheets);this.editingAreaStyleSheets=[];var _39="",i=0,url;while((url=_38[i++])){var _3a=(new _13(win.global.location,url)).toString();this.editingAreaStyleSheets.push(_3a);_39+="<link rel=\"stylesheet\" type=\"text/css\" href=\""+_3a+"\"/>";}return _39;},addStyleSheet:function(uri){var url=uri.toString();if(url.charAt(0)==="."||(url.charAt(0)!=="/"&&!uri.host)){url=(new _13(win.global.location,url)).toString();}if(_1.indexOf(this.editingAreaStyleSheets,url)>-1){return;}this.editingAreaStyleSheets.push(url);this.onLoadDeferred.addCallback(_e.hitch(this,function(){if(this.document.createStyleSheet){this.document.createStyleSheet(url);}else{var _3b=this.document.getElementsByTagName("head")[0];var _3c=this.document.createElement("link");_3c.rel="stylesheet";_3c.type="text/css";_3c.href=url;_3b.appendChild(_3c);}}));},removeStyleSheet:function(uri){var url=uri.toString();if(url.charAt(0)==="."||(url.charAt(0)!=="/"&&!uri.host)){url=(new _13(win.global.location,url)).toString();}var _3d=_1.indexOf(this.editingAreaStyleSheets,url);if(_3d===-1){return;}delete this.editingAreaStyleSheets[_3d];win.withGlobal(this.window,"query",dojo,["link:[href=\""+url+"\"]"]).orphan();},disabled:false,_mozSettingProps:{"styleWithCSS":false},_setDisabledAttr:function(_3e){_3e=!!_3e;this._set("disabled",_3e);if(!this.isLoaded){return;}if(has("ie")||has("webkit")||has("opera")){var _3f=has("ie")&&(this.isLoaded||!this.focusOnLoad);if(_3f){this.editNode.unselectable="on";}this.editNode.contentEditable=!_3e;if(_3f){var _40=this;setTimeout(function(){if(_40.editNode){_40.editNode.unselectable="off";}},0);}}else{try{this.document.designMode=(_3e?"off":"on");}catch(e){return;}if(!_3e&&this._mozSettingProps){var ps=this._mozSettingProps;var n;for(n in ps){if(ps.hasOwnProperty(n)){try{this.document.execCommand(n,false,ps[n]);}catch(e2){}}}}}this._disabledOK=true;},onLoad:function(_41){if(!this.window.__registeredWindow){this.window.__registeredWindow=true;this._iframeRegHandle=_19.registerIframe(this.iframe);}if(!has("ie")&&!has("webkit")&&(this.height||has("mozilla"))){this.editNode=this.document.body;}else{this.editNode=this.document.body.firstChild;var _42=this;if(has("ie")){this.tabStop=_8.create("div",{tabIndex:-1},this.editingArea);this.iframe.onfocus=function(){_42.editNode.setActive();};}}this.focusNode=this.editNode;var _43=this.events.concat(this.captureEvents);var ap=this.iframe?this.document:this.editNode;_1.forEach(_43,function(_44){this.connect(ap,_44.toLowerCase(),_44);},this);this.connect(ap,"onmouseup","onClick");if(has("ie")){this.connect(this.document,"onmousedown","_onIEMouseDown");this.editNode.style.zoom=1;}else{this.connect(this.document,"onmousedown",function(){delete this._cursorToStart;});}if(has("webkit")){this._webkitListener=this.connect(this.document,"onmouseup","onDisplayChanged");this.connect(this.document,"onmousedown",function(e){var t=e.target;if(t&&(t===this.document.body||t===this.document)){setTimeout(_e.hitch(this,"placeCursorAtEnd"),0);}});}if(has("ie")){try{this.document.execCommand("RespectVisibilityInDesign",true,null);}catch(e){}}this.isLoaded=true;this.set("disabled",this.disabled);var _45=_e.hitch(this,function(){this.setValue(_41);if(this.onLoadDeferred){this.onLoadDeferred.callback(true);}this.onDisplayChanged();if(this.focusOnLoad){_10(_e.hitch(this,function(){setTimeout(_e.hitch(this,"focus"),this.updateInterval);}));}this.value=this.getValue(true);});if(this.setValueDeferred){this.setValueDeferred.addCallback(_45);}else{_45();}},onKeyDown:function(e){if(e.keyCode===_d.TAB&&this.isTabIndent){_b.stop(e);if(this.queryCommandEnabled((e.shiftKey?"outdent":"indent"))){this.execCommand((e.shiftKey?"outdent":"indent"));}}if(has("ie")){if(e.keyCode==_d.TAB&&!this.isTabIndent){if(e.shiftKey&&!e.ctrlKey&&!e.altKey){this.iframe.focus();}else{if(!e.shiftKey&&!e.ctrlKey&&!e.altKey){this.tabStop.focus();}}}else{if(e.keyCode===_d.BACKSPACE&&this.document.selection.type==="Control"){_b.stop(e);this.execCommand("delete");}else{if((65<=e.keyCode&&e.keyCode<=90)||(e.keyCode>=37&&e.keyCode<=40)){e.charCode=e.keyCode;this.onKeyPress(e);}}}}if(has("ff")){if(e.keyCode===_d.PAGE_UP||e.keyCode===_d.PAGE_DOWN){if(this.editNode.clientHeight>=this.editNode.scrollHeight){e.preventDefault();}}}return true;},onKeyUp:function(){},setDisabled:function(_46){_c.deprecated("dijit.Editor::setDisabled is deprecated","use dijit.Editor::attr(\"disabled\",boolean) instead",2);this.set("disabled",_46);},_setValueAttr:function(_47){this.setValue(_47);},_setDisableSpellCheckAttr:function(_48){if(this.document){_6.set(this.document.body,"spellcheck",!_48);}else{this.onLoadDeferred.addCallback(_e.hitch(this,function(){_6.set(this.document.body,"spellcheck",!_48);}));}this._set("disableSpellCheck",_48);},onKeyPress:function(e){var c=(e.keyChar&&e.keyChar.toLowerCase())||e.keyCode,_49=this._keyHandlers[c],_4a=arguments;if(_49&&!e.altKey){_1.some(_49,function(h){if(!(h.shift^e.shiftKey)&&!(h.ctrl^(e.ctrlKey||e.metaKey))){if(!h.handler.apply(this,_4a)){e.preventDefault();}return true;}},this);}if(!this._onKeyHitch){this._onKeyHitch=_e.hitch(this,"onKeyPressed");}setTimeout(this._onKeyHitch,1);return true;},addKeyHandler:function(key,_4b,_4c,_4d){if(!_e.isArray(this._keyHandlers[key])){this._keyHandlers[key]=[];}this._keyHandlers[key].push({shift:_4c||false,ctrl:_4b||false,handler:_4d});},onKeyPressed:function(){this.onDisplayChanged();},onClick:function(e){this.onDisplayChanged(e);},_onIEMouseDown:function(){if(!this.focused&&!this.disabled){this.focus();}},_onBlur:function(e){this.inherited(arguments);var _4e=this.getValue(true);if(_4e!==this.value){this.onChange(_4e);}this._set("value",_4e);},_onFocus:function(e){if(!this.disabled){if(!this._disabledOK){this.set("disabled",false);}this.inherited(arguments);}},blur:function(){if(!has("ie")&&this.window.document.documentElement&&this.window.document.documentElement.focus){this.window.document.documentElement.focus();}else{if(win.doc.body.focus){win.doc.body.focus();}}},focus:function(){if(!this.isLoaded){this.focusOnLoad=true;return;}if(this._cursorToStart){delete this._cursorToStart;if(this.editNode.childNodes){this.placeCursorAtStart();return;}}if(!has("ie")){_19.focus(this.iframe);}else{if(this.editNode&&this.editNode.focus){this.iframe.fireEvent("onfocus",document.createEventObject());}}},updateInterval:200,_updateTimer:null,onDisplayChanged:function(){if(this._updateTimer){clearTimeout(this._updateTimer);}if(!this._updateHandler){this._updateHandler=_e.hitch(this,"onNormalizedDisplayChanged");}this._updateTimer=setTimeout(this._updateHandler,this.updateInterval);},onNormalizedDisplayChanged:function(){delete this._updateTimer;},onChange:function(){},_normalizeCommand:function(cmd,_4f){var _50=cmd.toLowerCase();if(_50==="formatblock"){if(has("safari")&&_4f===undefined){_50="heading";}}else{if(_50==="hilitecolor"&&!has("mozilla")){_50="backcolor";}}return _50;},_qcaCache:{},queryCommandAvailable:function(_51){var ca=this._qcaCache[_51];if(ca!==undefined){return ca;}return (this._qcaCache[_51]=this._queryCommandAvailable(_51));},_queryCommandAvailable:function(_52){var ie=1;var _53=1<<1;var _54=1<<2;var _55=1<<3;function _56(_57){return {ie:Boolean(_57&ie),mozilla:Boolean(_57&_53),webkit:Boolean(_57&_54),opera:Boolean(_57&_55)};};var _58=null;switch(_52.toLowerCase()){case "bold":case "italic":case "underline":case "subscript":case "superscript":case "fontname":case "fontsize":case "forecolor":case "hilitecolor":case "justifycenter":case "justifyfull":case "justifyleft":case "justifyright":case "delete":case "selectall":case "toggledir":_58=_56(_53|ie|_54|_55);break;case "createlink":case "unlink":case "removeformat":case "inserthorizontalrule":case "insertimage":case "insertorderedlist":case "insertunorderedlist":case "indent":case "outdent":case "formatblock":case "inserthtml":case "undo":case "redo":case "strikethrough":case "tabindent":_58=_56(_53|ie|_55|_54);break;case "blockdirltr":case "blockdirrtl":case "dirltr":case "dirrtl":case "inlinedirltr":case "inlinedirrtl":_58=_56(ie);break;case "cut":case "copy":case "paste":_58=_56(ie|_53|_54);break;case "inserttable":_58=_56(_53|ie);break;case "insertcell":case "insertcol":case "insertrow":case "deletecells":case "deletecols":case "deleterows":case "mergecells":case "splitcell":_58=_56(ie|_53);break;default:return false;}return (has("ie")&&_58.ie)||(has("mozilla")&&_58.mozilla)||(has("webkit")&&_58.webkit)||(has("opera")&&_58.opera);},execCommand:function(_59,_5a){var _5b;this.focus();_59=this._normalizeCommand(_59,_5a);if(_5a!==undefined){if(_59==="heading"){throw new Error("unimplemented");}else{if((_59==="formatblock")&&has("ie")){_5a="<"+_5a+">";}}}var _5c="_"+_59+"Impl";if(this[_5c]){_5b=this[_5c](_5a);}else{_5a=arguments.length>1?_5a:null;if(_5a||_59!=="createlink"){_5b=this.document.execCommand(_59,false,_5a);}}this.onDisplayChanged();return _5b;},queryCommandEnabled:function(_5d){if(this.disabled||!this._disabledOK){return false;}_5d=this._normalizeCommand(_5d);var _5e="_"+_5d+"EnabledImpl";if(this[_5e]){return this[_5e](_5d);}else{return this._browserQueryCommandEnabled(_5d);}},queryCommandState:function(_5f){if(this.disabled||!this._disabledOK){return false;}_5f=this._normalizeCommand(_5f);try{return this.document.queryCommandState(_5f);}catch(e){return false;}},queryCommandValue:function(_60){if(this.disabled||!this._disabledOK){return false;}var r;_60=this._normalizeCommand(_60);if(has("ie")&&_60==="formatblock"){r=this._native2LocalFormatNames[this.document.queryCommandValue(_60)];}else{if(has("mozilla")&&_60==="hilitecolor"){var _61;try{_61=this.document.queryCommandValue("styleWithCSS");}catch(e){_61=false;}this.document.execCommand("styleWithCSS",false,true);r=this.document.queryCommandValue(_60);this.document.execCommand("styleWithCSS",false,_61);}else{r=this.document.queryCommandValue(_60);}}return r;},_sCall:function(_62,_63){return win.withGlobal(this.window,_62,_16,_63);},placeCursorAtStart:function(){this.focus();var _64=false;if(has("mozilla")){var _65=this.editNode.firstChild;while(_65){if(_65.nodeType===3){if(_65.nodeValue.replace(/^\s+|\s+$/g,"").length>0){_64=true;this._sCall("selectElement",[_65]);break;}}else{if(_65.nodeType===1){_64=true;var tg=_65.tagName?_65.tagName.toLowerCase():"";if(/br|input|img|base|meta|area|basefont|hr|link/.test(tg)){this._sCall("selectElement",[_65]);}else{this._sCall("selectElementChildren",[_65]);}break;}}_65=_65.nextSibling;}}else{_64=true;this._sCall("selectElementChildren",[this.editNode]);}if(_64){this._sCall("collapse",[true]);}},placeCursorAtEnd:function(){this.focus();var _66=false;if(has("mozilla")){var _67=this.editNode.lastChild;while(_67){if(_67.nodeType===3){if(_67.nodeValue.replace(/^\s+|\s+$/g,"").length>0){_66=true;this._sCall("selectElement",[_67]);break;}}else{if(_67.nodeType===1){_66=true;if(_67.lastChild){this._sCall("selectElement",[_67.lastChild]);}else{this._sCall("selectElement",[_67]);}break;}}_67=_67.previousSibling;}}else{_66=true;this._sCall("selectElementChildren",[this.editNode]);}if(_66){this._sCall("collapse",[false]);}},getValue:function(_68){if(this.textarea){if(this.isClosed||!this.isLoaded){return this.textarea.value;}}return this._postFilterContent(null,_68);},_getValueAttr:function(){return this.getValue(true);},setValue:function(_69){if(!this.isLoaded){this.onLoadDeferred.addCallback(_e.hitch(this,function(){this.setValue(_69);}));return;}this._cursorToStart=true;if(this.textarea&&(this.isClosed||!this.isLoaded)){this.textarea.value=_69;}else{_69=this._preFilterContent(_69);var _6a=this.isClosed?this.domNode:this.editNode;if(_69&&has("mozilla")&&_69.toLowerCase()==="<p></p>"){_69="<p>&#160;</p>";}if(!_69&&has("webkit")){_69="&#160;";}_6a.innerHTML=_69;this._preDomFilterContent(_6a);}this.onDisplayChanged();this._set("value",this.getValue(true));},replaceValue:function(_6b){if(this.isClosed){this.setValue(_6b);}else{if(this.window&&this.window.getSelection&&!has("mozilla")){this.setValue(_6b);}else{if(this.window&&this.window.getSelection){_6b=this._preFilterContent(_6b);this.execCommand("selectall");if(!_6b){this._cursorToStart=true;_6b="&#160;";}this.execCommand("inserthtml",_6b);this._preDomFilterContent(this.editNode);}else{if(this.document&&this.document.selection){this.setValue(_6b);}}}}this._set("value",this.getValue(true));},_preFilterContent:function(_6c){var ec=_6c;_1.forEach(this.contentPreFilters,function(ef){if(ef){ec=ef(ec);}});return ec;},_preDomFilterContent:function(dom){dom=dom||this.editNode;_1.forEach(this.contentDomPreFilters,function(ef){if(ef&&_e.isFunction(ef)){ef(dom);}},this);},_postFilterContent:function(dom,_6d){var ec;if(!_e.isString(dom)){dom=dom||this.editNode;if(this.contentDomPostFilters.length){if(_6d){dom=_e.clone(dom);}_1.forEach(this.contentDomPostFilters,function(ef){dom=ef(dom);});}ec=_18.getChildrenHtml(dom);}else{ec=dom;}if(!_e.trim(ec.replace(/^\xA0\xA0*/,"").replace(/\xA0\xA0*$/,"")).length){ec="";}_1.forEach(this.contentPostFilters,function(ef){ec=ef(ec);});return ec;},_saveContent:function(){var _6e=_5.byId(_1a._scopeName+"._editor.RichText.value");if(_6e){if(_6e.value){_6e.value+=this._SEPARATOR;}_6e.value+=this.name+this._NAME_CONTENT_SEP+this.getValue(true);}},escapeXml:function(str,_6f){str=str.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;");if(!_6f){str=str.replace(/'/gm,"&#39;");}return str;},getNodeHtml:function(_70){_c.deprecated("dijit.Editor::getNodeHtml is deprecated","use dijit/_editor/html::getNodeHtml instead",2);return _18.getNodeHtml(_70);},getNodeChildrenHtml:function(dom){_c.deprecated("dijit.Editor::getNodeChildrenHtml is deprecated","use dijit/_editor/html::getChildrenHtml instead",2);return _18.getChildrenHtml(dom);},close:function(_71){if(this.isClosed){return;}if(!arguments.length){_71=true;}if(_71){this._set("value",this.getValue(true));}if(this.interval){clearInterval(this.interval);}if(this._webkitListener){this.disconnect(this._webkitListener);delete this._webkitListener;}if(has("ie")){this.iframe.onfocus=null;}this.iframe._loadFunc=null;if(this._iframeRegHandle){this._iframeRegHandle.remove();delete this._iframeRegHandle;}if(this.textarea){var s=this.textarea.style;s.position="";s.left=s.top="";if(has("ie")){s.overflow=this.__overflow;this.__overflow=null;}this.textarea.value=this.value;_8.destroy(this.domNode);this.domNode=this.textarea;}else{this.domNode.innerHTML=this.value;}delete this.iframe;_7.remove(this.domNode,this.baseClass);this.isClosed=true;this.isLoaded=false;delete this.editNode;delete this.focusNode;if(this.window&&this.window._frameElement){this.window._frameElement=null;}this.window=null;this.document=null;this.editingArea=null;this.editorObject=null;},destroy:function(){if(!this.isClosed){this.close(false);}if(this._updateTimer){clearTimeout(this._updateTimer);}this.inherited(arguments);if(_1b._globalSaveHandler){delete _1b._globalSaveHandler[this.id];}},_removeMozBogus:function(_72){return _72.replace(/\stype="_moz"/gi,"").replace(/\s_moz_dirty=""/gi,"").replace(/_moz_resizing="(true|false)"/gi,"");},_removeWebkitBogus:function(_73){_73=_73.replace(/\sclass="webkit-block-placeholder"/gi,"");_73=_73.replace(/\sclass="apple-style-span"/gi,"");_73=_73.replace(/<meta charset=\"utf-8\" \/>/gi,"");return _73;},_normalizeFontStyle:function(_74){return _74.replace(/<(\/)?strong([ \>])/gi,"<$1b$2").replace(/<(\/)?em([ \>])/gi,"<$1i$2");},_preFixUrlAttributes:function(_75){return _75.replace(/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi,"$1$4$2$3$5$2 _djrealurl=$2$3$5$2").replace(/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi,"$1$4$2$3$5$2 _djrealurl=$2$3$5$2");},_browserQueryCommandEnabled:function(_76){if(!_76){return false;}var _77=has("ie")?this.document.selection.createRange():this.document;try{return _77.queryCommandEnabled(_76);}catch(e){return false;}},_createlinkEnabledImpl:function(){var _78=true;if(has("opera")){var sel=this.window.getSelection();if(sel.isCollapsed){_78=true;}else{_78=this.document.queryCommandEnabled("createlink");}}else{_78=this._browserQueryCommandEnabled("createlink");}return _78;},_unlinkEnabledImpl:function(){var _79=true;if(has("mozilla")||has("webkit")){_79=this._sCall("hasAncestorElement",["a"]);}else{_79=this._browserQueryCommandEnabled("unlink");}return _79;},_inserttableEnabledImpl:function(){var _7a=true;if(has("mozilla")||has("webkit")){_7a=true;}else{_7a=this._browserQueryCommandEnabled("inserttable");}return _7a;},_cutEnabledImpl:function(){var _7b=true;if(has("webkit")){var sel=this.window.getSelection();if(sel){sel=sel.toString();}_7b=!!sel;}else{_7b=this._browserQueryCommandEnabled("cut");}return _7b;},_copyEnabledImpl:function(){var _7c=true;if(has("webkit")){var sel=this.window.getSelection();if(sel){sel=sel.toString();}_7c=!!sel;}else{_7c=this._browserQueryCommandEnabled("copy");}return _7c;},_pasteEnabledImpl:function(){var _7d=true;if(has("webkit")){return true;}else{_7d=this._browserQueryCommandEnabled("paste");}return _7d;},_inserthorizontalruleImpl:function(_7e){if(has("ie")){return this._inserthtmlImpl("<hr>");}return this.document.execCommand("inserthorizontalrule",false,_7e);},_unlinkImpl:function(_7f){if((this.queryCommandEnabled("unlink"))&&(has("mozilla")||has("webkit"))){var a=this._sCall("getAncestorElement",["a"]);this._sCall("selectElement",[a]);return this.document.execCommand("unlink",false,null);}return this.document.execCommand("unlink",false,_7f);},_hilitecolorImpl:function(_80){var _81;var _82=this._handleTextColorOrProperties("hilitecolor",_80);if(!_82){if(has("mozilla")){this.document.execCommand("styleWithCSS",false,true);_81=this.document.execCommand("hilitecolor",false,_80);this.document.execCommand("styleWithCSS",false,false);}else{_81=this.document.execCommand("hilitecolor",false,_80);}}return _81;},_backcolorImpl:function(_83){if(has("ie")){_83=_83?_83:null;}var _84=this._handleTextColorOrProperties("backcolor",_83);if(!_84){_84=this.document.execCommand("backcolor",false,_83);}return _84;},_forecolorImpl:function(_85){if(has("ie")){_85=_85?_85:null;}var _86=false;_86=this._handleTextColorOrProperties("forecolor",_85);if(!_86){_86=this.document.execCommand("forecolor",false,_85);}return _86;},_inserthtmlImpl:function(_87){_87=this._preFilterContent(_87);var rv=true;if(has("ie")){var _88=this.document.selection.createRange();if(this.document.selection.type.toUpperCase()==="CONTROL"){var n=_88.item(0);while(_88.length){_88.remove(_88.item(0));}n.outerHTML=_87;}else{_88.pasteHTML(_87);}_88.select();}else{if(has("mozilla")&&!_87.length){this._sCall("remove");}else{rv=this.document.execCommand("inserthtml",false,_87);}}return rv;},_boldImpl:function(_89){var _8a=false;if(has("ie")){this._adaptIESelection();_8a=this._adaptIEFormatAreaAndExec("bold");}if(!_8a){_8a=this.document.execCommand("bold",false,_89);}return _8a;},_italicImpl:function(_8b){var _8c=false;if(has("ie")){this._adaptIESelection();_8c=this._adaptIEFormatAreaAndExec("italic");}if(!_8c){_8c=this.document.execCommand("italic",false,_8b);}return _8c;},_underlineImpl:function(_8d){var _8e=false;if(has("ie")){this._adaptIESelection();_8e=this._adaptIEFormatAreaAndExec("underline");}if(!_8e){_8e=this.document.execCommand("underline",false,_8d);}return _8e;},_strikethroughImpl:function(_8f){var _90=false;if(has("ie")){this._adaptIESelection();_90=this._adaptIEFormatAreaAndExec("strikethrough");}if(!_90){_90=this.document.execCommand("strikethrough",false,_8f);}return _90;},_superscriptImpl:function(_91){var _92=false;if(has("ie")){this._adaptIESelection();_92=this._adaptIEFormatAreaAndExec("superscript");}if(!_92){_92=this.document.execCommand("superscript",false,_91);}return _92;},_subscriptImpl:function(_93){var _94=false;if(has("ie")){this._adaptIESelection();_94=this._adaptIEFormatAreaAndExec("subscript");}if(!_94){_94=this.document.execCommand("subscript",false,_93);}return _94;},_fontnameImpl:function(_95){var _96;if(has("ie")){_96=this._handleTextColorOrProperties("fontname",_95);}if(!_96){_96=this.document.execCommand("fontname",false,_95);}return _96;},_fontsizeImpl:function(_97){var _98;if(has("ie")){_98=this._handleTextColorOrProperties("fontsize",_97);}if(!_98){_98=this.document.execCommand("fontsize",false,_97);}return _98;},_insertorderedlistImpl:function(_99){var _9a=false;if(has("ie")){_9a=this._adaptIEList("insertorderedlist",_99);}if(!_9a){_9a=this.document.execCommand("insertorderedlist",false,_99);}return _9a;},_insertunorderedlistImpl:function(_9b){var _9c=false;if(has("ie")){_9c=this._adaptIEList("insertunorderedlist",_9b);}if(!_9c){_9c=this.document.execCommand("insertunorderedlist",false,_9b);}return _9c;},getHeaderHeight:function(){return this._getNodeChildrenHeight(this.header);},getFooterHeight:function(){return this._getNodeChildrenHeight(this.footer);},_getNodeChildrenHeight:function(_9d){var h=0;if(_9d&&_9d.childNodes){var i;for(i=0;i<_9d.childNodes.length;i++){var _9e=_9.position(_9d.childNodes[i]);h+=_9e.h;}}return h;},_isNodeEmpty:function(_9f,_a0){if(_9f.nodeType===1){if(_9f.childNodes.length>0){return this._isNodeEmpty(_9f.childNodes[0],_a0);}return true;}else{if(_9f.nodeType===3){return (_9f.nodeValue.substring(_a0)==="");}}return false;},_removeStartingRangeFromRange:function(_a1,_a2){if(_a1.nextSibling){_a2.setStart(_a1.nextSibling,0);}else{var _a3=_a1.parentNode;while(_a3&&_a3.nextSibling==null){_a3=_a3.parentNode;}if(_a3){_a2.setStart(_a3.nextSibling,0);}}return _a2;},_adaptIESelection:function(){var _a4=_17.getSelection(this.window);if(_a4&&_a4.rangeCount&&!_a4.isCollapsed){var _a5=_a4.getRangeAt(0);var _a6=_a5.startContainer;var _a7=_a5.startOffset;while(_a6.nodeType===3&&_a7>=_a6.length&&_a6.nextSibling){_a7=_a7-_a6.length;_a6=_a6.nextSibling;}var _a8=null;while(this._isNodeEmpty(_a6,_a7)&&_a6!==_a8){_a8=_a6;_a5=this._removeStartingRangeFromRange(_a6,_a5);_a6=_a5.startContainer;_a7=0;}_a4.removeAllRanges();_a4.addRange(_a5);}},_adaptIEFormatAreaAndExec:function(_a9){var _aa=_17.getSelection(this.window);var doc=this.document;var rs,ret,_ab,txt,_ac,_ad,_ae,_af;if(_a9&&_aa&&_aa.isCollapsed){var _b0=this.queryCommandValue(_a9);if(_b0){var _b1=this._tagNamesForCommand(_a9);_ab=_aa.getRangeAt(0);var fs=_ab.startContainer;if(fs.nodeType===3){var _b2=_ab.endOffset;if(fs.length<_b2){ret=this._adjustNodeAndOffset(rs,_b2);fs=ret.node;_b2=ret.offset;}}var _b3;while(fs&&fs!==this.editNode){var _b4=fs.tagName?fs.tagName.toLowerCase():"";if(_1.indexOf(_b1,_b4)>-1){_b3=fs;break;}fs=fs.parentNode;}if(_b3){rs=_ab.startContainer;var _b5=doc.createElement(_b3.tagName);_8.place(_b5,_b3,"after");if(rs&&rs.nodeType===3){var _b6,_b7;var _b8=_ab.endOffset;if(rs.length<_b8){ret=this._adjustNodeAndOffset(rs,_b8);rs=ret.node;_b8=ret.offset;}txt=rs.nodeValue;_ac=doc.createTextNode(txt.substring(0,_b8));var _b9=txt.substring(_b8,txt.length);if(_b9){_ad=doc.createTextNode(_b9);}_8.place(_ac,rs,"before");if(_ad){_ae=doc.createElement("span");_ae.className="ieFormatBreakerSpan";_8.place(_ae,rs,"after");_8.place(_ad,_ae,"after");_ad=_ae;}_8.destroy(rs);var _ba=_ac.parentNode;var _bb=[];var _bc;while(_ba!==_b3){var tg=_ba.tagName;_bc={tagName:tg};_bb.push(_bc);var _bd=doc.createElement(tg);if(_ba.style){if(_bd.style){if(_ba.style.cssText){_bd.style.cssText=_ba.style.cssText;_bc.cssText=_ba.style.cssText;}}}if(_ba.tagName==="FONT"){if(_ba.color){_bd.color=_ba.color;_bc.color=_ba.color;}if(_ba.face){_bd.face=_ba.face;_bc.face=_ba.face;}if(_ba.size){_bd.size=_ba.size;_bc.size=_ba.size;}}if(_ba.className){_bd.className=_ba.className;_bc.className=_ba.className;}if(_ad){_b6=_ad;while(_b6){_b7=_b6.nextSibling;_bd.appendChild(_b6);_b6=_b7;}}if(_bd.tagName==_ba.tagName){_ae=doc.createElement("span");_ae.className="ieFormatBreakerSpan";_8.place(_ae,_ba,"after");_8.place(_bd,_ae,"after");}else{_8.place(_bd,_ba,"after");}_ac=_ba;_ad=_bd;_ba=_ba.parentNode;}if(_ad){_b6=_ad;if(_b6.nodeType===1||(_b6.nodeType===3&&_b6.nodeValue)){_b5.innerHTML="";}while(_b6){_b7=_b6.nextSibling;_b5.appendChild(_b6);_b6=_b7;}}if(_bb.length){_bc=_bb.pop();var _be=doc.createElement(_bc.tagName);if(_bc.cssText&&_be.style){_be.style.cssText=_bc.cssText;}if(_bc.className){_be.className=_bc.className;}if(_bc.tagName==="FONT"){if(_bc.color){_be.color=_bc.color;}if(_bc.face){_be.face=_bc.face;}if(_bc.size){_be.size=_bc.size;}}_8.place(_be,_b5,"before");while(_bb.length){_bc=_bb.pop();var _bf=doc.createElement(_bc.tagName);if(_bc.cssText&&_bf.style){_bf.style.cssText=_bc.cssText;}if(_bc.className){_bf.className=_bc.className;}if(_bc.tagName==="FONT"){if(_bc.color){_bf.color=_bc.color;}if(_bc.face){_bf.face=_bc.face;}if(_bc.size){_bf.size=_bc.size;}}_be.appendChild(_bf);_be=_bf;}_af=doc.createTextNode(".");_ae.appendChild(_af);_be.appendChild(_af);win.withGlobal(this.window,_e.hitch(this,function(){var _c0=_17.create();_c0.setStart(_af,0);_c0.setEnd(_af,_af.length);_aa.removeAllRanges();_aa.addRange(_c0);_16.collapse(false);_af.parentNode.innerHTML="";}));}else{_ae=doc.createElement("span");_ae.className="ieFormatBreakerSpan";_af=doc.createTextNode(".");_ae.appendChild(_af);_8.place(_ae,_b5,"before");win.withGlobal(this.window,_e.hitch(this,function(){var _c1=_17.create();_c1.setStart(_af,0);_c1.setEnd(_af,_af.length);_aa.removeAllRanges();_aa.addRange(_c1);_16.collapse(false);_af.parentNode.innerHTML="";}));}if(!_b5.firstChild){_8.destroy(_b5);}return true;}}return false;}else{_ab=_aa.getRangeAt(0);rs=_ab.startContainer;if(rs&&rs.nodeType===3){win.withGlobal(this.window,_e.hitch(this,function(){var _c2=_ab.startOffset;if(rs.length<_c2){ret=this._adjustNodeAndOffset(rs,_c2);rs=ret.node;_c2=ret.offset;}txt=rs.nodeValue;_ac=doc.createTextNode(txt.substring(0,_c2));var _c3=txt.substring(_c2);if(_c3!==""){_ad=doc.createTextNode(txt.substring(_c2));}_ae=doc.createElement("span");_af=doc.createTextNode(".");_ae.appendChild(_af);if(_ac.length){_8.place(_ac,rs,"after");}else{_ac=rs;}_8.place(_ae,_ac,"after");if(_ad){_8.place(_ad,_ae,"after");}_8.destroy(rs);var _c4=_17.create();_c4.setStart(_af,0);_c4.setEnd(_af,_af.length);_aa.removeAllRanges();_aa.addRange(_c4);doc.execCommand(_a9);_8.place(_ae.firstChild,_ae,"before");_8.destroy(_ae);_c4.setStart(_af,0);_c4.setEnd(_af,_af.length);_aa.removeAllRanges();_aa.addRange(_c4);_16.collapse(false);_af.parentNode.innerHTML="";}));return true;}}}else{return false;}},_adaptIEList:function(_c5){var _c6=_17.getSelection(this.window);if(_c6.isCollapsed){if(_c6.rangeCount&&!this.queryCommandValue(_c5)){var _c7=_c6.getRangeAt(0);var sc=_c7.startContainer;if(sc&&sc.nodeType==3){if(!_c7.startOffset){win.withGlobal(this.window,_e.hitch(this,function(){var _c8="ul";if(_c5==="insertorderedlist"){_c8="ol";}var _c9=_8.create(_c8);var li=_8.create("li",null,_c9);_8.place(_c9,sc,"before");li.appendChild(sc);_8.create("br",null,_c9,"after");var _ca=_17.create();_ca.setStart(sc,0);_ca.setEnd(sc,sc.length);_c6.removeAllRanges();_c6.addRange(_ca);_16.collapse(true);}));return true;}}}}return false;},_handleTextColorOrProperties:function(_cb,_cc){var _cd=_17.getSelection(this.window);var doc=this.document;var rs,ret,_ce,txt,_cf,_d0,_d1,_d2;_cc=_cc||null;if(_cb&&_cd&&_cd.isCollapsed){if(_cd.rangeCount){_ce=_cd.getRangeAt(0);rs=_ce.startContainer;if(rs&&rs.nodeType===3){win.withGlobal(this.window,_e.hitch(this,function(){var _d3=_ce.startOffset;if(rs.length<_d3){ret=this._adjustNodeAndOffset(rs,_d3);rs=ret.node;_d3=ret.offset;}txt=rs.nodeValue;_cf=doc.createTextNode(txt.substring(0,_d3));var _d4=txt.substring(_d3);if(_d4!==""){_d0=doc.createTextNode(txt.substring(_d3));}_d1=_8.create("span");_d2=doc.createTextNode(".");_d1.appendChild(_d2);var _d5=_8.create("span");_d1.appendChild(_d5);if(_cf.length){_8.place(_cf,rs,"after");}else{_cf=rs;}_8.place(_d1,_cf,"after");if(_d0){_8.place(_d0,_d1,"after");}_8.destroy(rs);var _d6=_17.create();_d6.setStart(_d2,0);_d6.setEnd(_d2,_d2.length);_cd.removeAllRanges();_cd.addRange(_d6);if(has("webkit")){var _d7="color";if(_cb==="hilitecolor"||_cb==="backcolor"){_d7="backgroundColor";}_a.set(_d1,_d7,_cc);_16.remove();_8.destroy(_d5);_d1.innerHTML="&#160;";_16.selectElement(_d1);this.focus();}else{this.execCommand(_cb,_cc);_8.place(_d1.firstChild,_d1,"before");_8.destroy(_d1);_d6.setStart(_d2,0);_d6.setEnd(_d2,_d2.length);_cd.removeAllRanges();_cd.addRange(_d6);_16.collapse(false);_d2.parentNode.removeChild(_d2);}}));return true;}}}return false;},_adjustNodeAndOffset:function(_d8,_d9){while(_d8.length<_d9&&_d8.nextSibling&&_d8.nextSibling.nodeType===3){_d9=_d9-_d8.length;_d8=_d8.nextSibling;}return {"node":_d8,"offset":_d9};},_tagNamesForCommand:function(_da){if(_da==="bold"){return ["b","strong"];}else{if(_da==="italic"){return ["i","em"];}else{if(_da==="strikethrough"){return ["s","strike"];}else{if(_da==="superscript"){return ["sup"];}else{if(_da==="subscript"){return ["sub"];}else{if(_da==="underline"){return ["u"];}}}}}}return [];},_stripBreakerNodes:function(_db){win.withGlobal(this.window,_e.hitch(this,function(){var _dc=_f(".ieFormatBreakerSpan",_db);var i;for(i=0;i<_dc.length;i++){var b=_dc[i];while(b.firstChild){_8.place(b.firstChild,b,"before");}_8.destroy(b);}}));return _db;}});return _1b;}); \ No newline at end of file
+define("dijit/_editor/RichText",["dojo/_base/array","dojo/_base/config","dojo/_base/declare","dojo/_base/Deferred","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/query","dojo/ready","dojo/sniff","dojo/topic","dojo/_base/unload","dojo/_base/url","dojo/_base/window","../_Widget","../_CssStateMixin","./selection","./range","./html","../focus","../main"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,on,_f,_10,has,_11,_12,_13,win,_14,_15,_16,_17,_18,_19,_1a){var _1b=_3("dijit._editor.RichText",[_14,_15],{constructor:function(_1c){this.contentPreFilters=[];this.contentPostFilters=[];this.contentDomPreFilters=[];this.contentDomPostFilters=[];this.editingAreaStyleSheets=[];this.events=[].concat(this.events);this._keyHandlers={};if(_1c&&_e.isString(_1c.value)){this.value=_1c.value;}this.onLoadDeferred=new _4();},baseClass:"dijitEditor",inheritWidth:false,focusOnLoad:false,name:"",styleSheets:"",height:"300px",minHeight:"1em",isClosed:true,isLoaded:false,_SEPARATOR:"@@**%%__RICHTEXTBOUNDRY__%%**@@",_NAME_CONTENT_SEP:"@@**%%:%%**@@",onLoadDeferred:null,isTabIndent:false,disableSpellCheck:false,postCreate:function(){if("textarea"===this.domNode.tagName.toLowerCase()){console.warn("RichText should not be used with the TEXTAREA tag. See dijit._editor.RichText docs.");}this.contentPreFilters=[_e.hitch(this,"_preFixUrlAttributes")].concat(this.contentPreFilters);if(has("mozilla")){this.contentPreFilters=[this._normalizeFontStyle].concat(this.contentPreFilters);this.contentPostFilters=[this._removeMozBogus].concat(this.contentPostFilters);}if(has("webkit")){this.contentPreFilters=[this._removeWebkitBogus].concat(this.contentPreFilters);this.contentPostFilters=[this._removeWebkitBogus].concat(this.contentPostFilters);}if(has("ie")){this.contentPostFilters=[this._normalizeFontStyle].concat(this.contentPostFilters);this.contentDomPostFilters=[_e.hitch(this,this._stripBreakerNodes)].concat(this.contentDomPostFilters);}this.inherited(arguments);_11.publish(_1a._scopeName+"._editor.RichText::init",this);this.open();this.setupDefaultShortcuts();},setupDefaultShortcuts:function(){var _1d=_e.hitch(this,function(cmd,arg){return function(){return !this.execCommand(cmd,arg);};});var _1e={b:_1d("bold"),i:_1d("italic"),u:_1d("underline"),a:_1d("selectall"),s:function(){this.save(true);},m:function(){this.isTabIndent=!this.isTabIndent;},"1":_1d("formatblock","h1"),"2":_1d("formatblock","h2"),"3":_1d("formatblock","h3"),"4":_1d("formatblock","h4"),"\\":_1d("insertunorderedlist")};if(!has("ie")){_1e.Z=_1d("redo");}var key;for(key in _1e){this.addKeyHandler(key,true,false,_1e[key]);}},events:["onKeyPress","onKeyDown","onKeyUp"],captureEvents:[],_editorCommandsLocalized:false,_localizeEditorCommands:function(){if(_1b._editorCommandsLocalized){this._local2NativeFormatNames=_1b._local2NativeFormatNames;this._native2LocalFormatNames=_1b._native2LocalFormatNames;return;}_1b._editorCommandsLocalized=true;_1b._local2NativeFormatNames={};_1b._native2LocalFormatNames={};this._local2NativeFormatNames=_1b._local2NativeFormatNames;this._native2LocalFormatNames=_1b._native2LocalFormatNames;var _1f=["div","p","pre","h1","h2","h3","h4","h5","h6","ol","ul","address"];var _20="",_21,i=0;while((_21=_1f[i++])){if(_21.charAt(1)!=="l"){_20+="<"+_21+"><span>content</span></"+_21+"><br/>";}else{_20+="<"+_21+"><li>content</li></"+_21+"><br/>";}}var _22={position:"absolute",top:"0px",zIndex:10,opacity:0.01};var div=_8.create("div",{style:_22,innerHTML:_20});this.ownerDocumentBody.appendChild(div);var _23=_e.hitch(this,function(){var _24=div.firstChild;while(_24){try{this._sCall("selectElement",[_24.firstChild]);var _25=_24.tagName.toLowerCase();this._local2NativeFormatNames[_25]=document.queryCommandValue("formatblock");this._native2LocalFormatNames[this._local2NativeFormatNames[_25]]=_25;_24=_24.nextSibling.nextSibling;}catch(e){}}_8.destroy(div);});this.defer(_23);},open:function(_26){if(!this.onLoadDeferred||this.onLoadDeferred.fired>=0){this.onLoadDeferred=new _4();}if(!this.isClosed){this.close();}_11.publish(_1a._scopeName+"._editor.RichText::open",this);if(arguments.length===1&&_26.nodeName){this.domNode=_26;}var dn=this.domNode;var _27;if(_e.isString(this.value)){_27=this.value;delete this.value;dn.innerHTML="";}else{if(dn.nodeName&&dn.nodeName.toLowerCase()=="textarea"){var ta=(this.textarea=dn);this.name=ta.name;_27=ta.value;dn=this.domNode=this.ownerDocument.createElement("div");dn.setAttribute("widgetId",this.id);ta.removeAttribute("widgetId");dn.cssText=ta.cssText;dn.className+=" "+ta.className;_8.place(dn,ta,"before");var _28=_e.hitch(this,function(){_a.set(ta,{display:"block",position:"absolute",top:"-1000px"});if(has("ie")){var s=ta.style;this.__overflow=s.overflow;s.overflow="hidden";}});if(has("ie")){this.defer(_28,10);}else{_28();}if(ta.form){var _29=ta.value;this.reset=function(){var _2a=this.getValue();if(_2a!==_29){this.replaceValue(_29);}};on(ta.form,"submit",_e.hitch(this,function(){_6.set(ta,"disabled",this.disabled);ta.value=this.getValue();}));}}else{_27=_18.getChildrenHtml(dn);dn.innerHTML="";}}this.value=_27;if(dn.nodeName&&dn.nodeName==="LI"){dn.innerHTML=" <br>";}this.header=dn.ownerDocument.createElement("div");dn.appendChild(this.header);this.editingArea=dn.ownerDocument.createElement("div");dn.appendChild(this.editingArea);this.footer=dn.ownerDocument.createElement("div");dn.appendChild(this.footer);if(!this.name){this.name=this.id+"_AUTOGEN";}if(this.name!==""&&(!_2["useXDomain"]||_2["allowXdRichTextSave"])){var _2b=_5.byId(_1a._scopeName+"._editor.RichText.value");if(_2b&&_2b.value!==""){var _2c=_2b.value.split(this._SEPARATOR),i=0,dat;while((dat=_2c[i++])){var _2d=dat.split(this._NAME_CONTENT_SEP);if(_2d[0]===this.name){_27=_2d[1];_2c=_2c.splice(i,1);_2b.value=_2c.join(this._SEPARATOR);break;}}}if(!_1b._globalSaveHandler){_1b._globalSaveHandler={};_12.addOnUnload(function(){var id;for(id in _1b._globalSaveHandler){var f=_1b._globalSaveHandler[id];if(_e.isFunction(f)){f();}}});}_1b._globalSaveHandler[this.id]=_e.hitch(this,"_saveContent");}this.isClosed=false;var ifr=(this.editorObject=this.iframe=this.ownerDocument.createElement("iframe"));ifr.id=this.id+"_iframe";ifr.style.border="none";ifr.style.width="100%";if(this._layoutMode){ifr.style.height="100%";}else{if(has("ie")>=7){if(this.height){ifr.style.height=this.height;}if(this.minHeight){ifr.style.minHeight=this.minHeight;}}else{ifr.style.height=this.height?this.height:this.minHeight;}}ifr.frameBorder=0;ifr._loadFunc=_e.hitch(this,function(w){this.window=w;this.document=this.window.document;if(has("ie")){this._localizeEditorCommands();}this.onLoad(_27);});var src=this._getIframeDocTxt(),s="javascript: '"+src.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'";ifr.setAttribute("src",s);this.editingArea.appendChild(ifr);if(has("safari")<=4){src=ifr.getAttribute("src");if(!src||src.indexOf("javascript")===-1){this.defer(function(){ifr.setAttribute("src",s);});}}if(dn.nodeName==="LI"){dn.lastChild.style.marginTop="-1.2em";}_7.add(this.domNode,this.baseClass);},_local2NativeFormatNames:{},_native2LocalFormatNames:{},_getIframeDocTxt:function(){var _2e=_a.getComputedStyle(this.domNode);var _2f="";var _30=true;if(has("ie")||has("webkit")||(!this.height&&!has("mozilla"))){_2f="<div id='dijitEditorBody'></div>";_30=false;}else{if(has("mozilla")){this._cursorToStart=true;_2f="&#160;";}}var _31=[_2e.fontWeight,_2e.fontSize,_2e.fontFamily].join(" ");var _32=_2e.lineHeight;if(_32.indexOf("px")>=0){_32=parseFloat(_32)/parseFloat(_2e.fontSize);}else{if(_32.indexOf("em")>=0){_32=parseFloat(_32);}else{_32="normal";}}var _33="";var _34=this;this.style.replace(/(^|;)\s*(line-|font-?)[^;]+/ig,function(_35){_35=_35.replace(/^;/ig,"")+";";var s=_35.split(":")[0];if(s){s=_e.trim(s);s=s.toLowerCase();var i;var sC="";for(i=0;i<s.length;i++){var c=s.charAt(i);switch(c){case "-":i++;c=s.charAt(i).toUpperCase();default:sC+=c;}}_a.set(_34.domNode,sC,"");}_33+=_35+";";});var _36=_f("label[for=\""+this.id+"\"]");return [this.isLeftToRight()?"<html>\n<head>\n":"<html dir='rtl'>\n<head>\n",(has("mozilla")&&_36.length?"<title>"+_36[0].innerHTML+"</title>\n":""),"<meta http-equiv='Content-Type' content='text/html'>\n","<style>\n","\tbody,html {\n","\t\tbackground:transparent;\n","\t\tpadding: 1px 0 0 0;\n","\t\tmargin: -1px 0 0 0;\n",((has("webkit"))?"\t\twidth: 100%;\n":""),((has("webkit"))?"\t\theight: 100%;\n":""),"\t}\n","\tbody{\n","\t\ttop:0px;\n","\t\tleft:0px;\n","\t\tright:0px;\n","\t\tfont:",_31,";\n",((this.height||has("opera"))?"":"\t\tposition: fixed;\n"),"\t\tmin-height:",this.minHeight,";\n","\t\tline-height:",_32,";\n","\t}\n","\tp{ margin: 1em 0; }\n",(!_30&&!this.height?"\tbody,html {overflow-y: hidden;}\n":""),"\t#dijitEditorBody{overflow-x: auto; overflow-y:"+(this.height?"auto;":"hidden;")+" outline: 0px;}\n","\tli > ul:-moz-first-node, li > ol:-moz-first-node{ padding-top: 1.2em; }\n",(!has("ie")?"\tli{ min-height:1.2em; }\n":""),"</style>\n",this._applyEditingAreaStyleSheets(),"\n","</head>\n<body ",(_30?"id='dijitEditorBody' ":""),"onload='frameElement && frameElement._loadFunc(window,document)' ","style='"+_33+"'>",_2f,"</body>\n</html>"].join("");},_applyEditingAreaStyleSheets:function(){var _37=[];if(this.styleSheets){_37=this.styleSheets.split(";");this.styleSheets="";}_37=_37.concat(this.editingAreaStyleSheets);this.editingAreaStyleSheets=[];var _38="",i=0,url;while((url=_37[i++])){var _39=(new _13(win.global.location,url)).toString();this.editingAreaStyleSheets.push(_39);_38+="<link rel=\"stylesheet\" type=\"text/css\" href=\""+_39+"\"/>";}return _38;},addStyleSheet:function(uri){var url=uri.toString();if(url.charAt(0)==="."||(url.charAt(0)!=="/"&&!uri.host)){url=(new _13(win.global.location,url)).toString();}if(_1.indexOf(this.editingAreaStyleSheets,url)>-1){return;}this.editingAreaStyleSheets.push(url);this.onLoadDeferred.then(_e.hitch(this,function(){if(this.document.createStyleSheet){this.document.createStyleSheet(url);}else{var _3a=this.document.getElementsByTagName("head")[0];var _3b=this.document.createElement("link");_3b.rel="stylesheet";_3b.type="text/css";_3b.href=url;_3a.appendChild(_3b);}}));},removeStyleSheet:function(uri){var url=uri.toString();if(url.charAt(0)==="."||(url.charAt(0)!=="/"&&!uri.host)){url=(new _13(win.global.location,url)).toString();}var _3c=_1.indexOf(this.editingAreaStyleSheets,url);if(_3c===-1){return;}delete this.editingAreaStyleSheets[_3c];_f("link:[href=\""+url+"\"]",this.window.document).orphan();},disabled:false,_mozSettingProps:{"styleWithCSS":false},_setDisabledAttr:function(_3d){_3d=!!_3d;this._set("disabled",_3d);if(!this.isLoaded){return;}if(has("ie")||has("webkit")||has("opera")){var _3e=has("ie")&&(this.isLoaded||!this.focusOnLoad);if(_3e){this.editNode.unselectable="on";}this.editNode.contentEditable=!_3d;if(_3e){this.defer(function(){if(this.editNode){this.editNode.unselectable="off";}});}}else{try{this.document.designMode=(_3d?"off":"on");}catch(e){return;}if(!_3d&&this._mozSettingProps){var ps=this._mozSettingProps;var n;for(n in ps){if(ps.hasOwnProperty(n)){try{this.document.execCommand(n,false,ps[n]);}catch(e2){}}}}}this._disabledOK=true;},onLoad:function(_3f){if(!this.window.__registeredWindow){this.window.__registeredWindow=true;this._iframeRegHandle=_19.registerIframe(this.iframe);}if(!has("ie")&&!has("webkit")&&(this.height||has("mozilla"))){this.editNode=this.document.body;}else{this.editNode=this.document.body.firstChild;var _40=this;if(has("ie")){this.tabStop=_8.create("div",{tabIndex:-1},this.editingArea);this.iframe.onfocus=function(){_40.editNode.setActive();};}}this.focusNode=this.editNode;var _41=this.events.concat(this.captureEvents);var ap=this.iframe?this.document:this.editNode;_1.forEach(_41,function(_42){this.connect(ap,_42.toLowerCase(),_42);},this);this.connect(ap,"onmouseup","onClick");if(has("ie")){this.connect(this.document,"onmousedown","_onIEMouseDown");this.editNode.style.zoom=1;}else{this.connect(this.document,"onmousedown",function(){delete this._cursorToStart;});}if(has("webkit")){this._webkitListener=this.connect(this.document,"onmouseup","onDisplayChanged");this.connect(this.document,"onmousedown",function(e){var t=e.target;if(t&&(t===this.document.body||t===this.document)){this.defer("placeCursorAtEnd");}});}if(has("ie")){try{this.document.execCommand("RespectVisibilityInDesign",true,null);}catch(e){}}this.isLoaded=true;this.set("disabled",this.disabled);var _43=_e.hitch(this,function(){this.setValue(_3f);if(this.onLoadDeferred){this.onLoadDeferred.resolve(true);}this.onDisplayChanged();if(this.focusOnLoad){_10(_e.hitch(this,"defer","focus",this.updateInterval));}this.value=this.getValue(true);});if(this.setValueDeferred){this.setValueDeferred.then(_43);}else{_43();}},onKeyDown:function(e){if(e.keyCode===_d.TAB&&this.isTabIndent){_b.stop(e);if(this.queryCommandEnabled((e.shiftKey?"outdent":"indent"))){this.execCommand((e.shiftKey?"outdent":"indent"));}}if(has("ie")){if(e.keyCode==_d.TAB&&!this.isTabIndent){if(e.shiftKey&&!e.ctrlKey&&!e.altKey){this.iframe.focus();}else{if(!e.shiftKey&&!e.ctrlKey&&!e.altKey){this.tabStop.focus();}}}else{if(e.keyCode===_d.BACKSPACE&&this.document.selection.type==="Control"){_b.stop(e);this.execCommand("delete");}else{if((65<=e.keyCode&&e.keyCode<=90)||(e.keyCode>=37&&e.keyCode<=40)){e.charCode=e.keyCode;this.onKeyPress(e);}}}}if(has("ff")){if(e.keyCode===_d.PAGE_UP||e.keyCode===_d.PAGE_DOWN){if(this.editNode.clientHeight>=this.editNode.scrollHeight){e.preventDefault();}}}return true;},onKeyUp:function(){},setDisabled:function(_44){_c.deprecated("dijit.Editor::setDisabled is deprecated","use dijit.Editor::attr(\"disabled\",boolean) instead",2);this.set("disabled",_44);},_setValueAttr:function(_45){this.setValue(_45);},_setDisableSpellCheckAttr:function(_46){if(this.document){_6.set(this.document.body,"spellcheck",!_46);}else{this.onLoadDeferred.then(_e.hitch(this,function(){_6.set(this.document.body,"spellcheck",!_46);}));}this._set("disableSpellCheck",_46);},onKeyPress:function(e){var c=(e.keyChar&&e.keyChar.toLowerCase())||e.keyCode,_47=this._keyHandlers[c],_48=arguments;if(_47&&!e.altKey){_1.some(_47,function(h){if(!(h.shift^e.shiftKey)&&!(h.ctrl^(e.ctrlKey||e.metaKey))){if(!h.handler.apply(this,_48)){e.preventDefault();}return true;}},this);}if(!this._onKeyHitch){this._onKeyHitch=_e.hitch(this,"onKeyPressed");}this.defer("_onKeyHitch",1);return true;},addKeyHandler:function(key,_49,_4a,_4b){if(!_e.isArray(this._keyHandlers[key])){this._keyHandlers[key]=[];}this._keyHandlers[key].push({shift:_4a||false,ctrl:_49||false,handler:_4b});},onKeyPressed:function(){this.onDisplayChanged();},onClick:function(e){this.onDisplayChanged(e);},_onIEMouseDown:function(){if(!this.focused&&!this.disabled){this.focus();}},_onBlur:function(e){this.inherited(arguments);var _4c=this.getValue(true);if(_4c!==this.value){this.onChange(_4c);}this._set("value",_4c);},_onFocus:function(e){if(!this.disabled){if(!this._disabledOK){this.set("disabled",false);}this.inherited(arguments);}},blur:function(){if(!has("ie")&&this.window.document.documentElement&&this.window.document.documentElement.focus){this.window.document.documentElement.focus();}else{if(this.ownerDocumentBody.focus){this.ownerDocumentBody.focus();}}},focus:function(){if(!this.isLoaded){this.focusOnLoad=true;return;}if(this._cursorToStart){delete this._cursorToStart;if(this.editNode.childNodes){this.placeCursorAtStart();return;}}if(!has("ie")){_19.focus(this.iframe);}else{if(this.editNode&&this.editNode.focus){this.iframe.fireEvent("onfocus",document.createEventObject());}}},updateInterval:200,_updateTimer:null,onDisplayChanged:function(){if(this._updateTimer){this._updateTimer.remove();}this._updateTimer=this.defer("onNormalizedDisplayChanged",this.updateInterval);},onNormalizedDisplayChanged:function(){delete this._updateTimer;},onChange:function(){},_normalizeCommand:function(cmd,_4d){var _4e=cmd.toLowerCase();if(_4e==="formatblock"){if(has("safari")&&_4d===undefined){_4e="heading";}}else{if(_4e==="hilitecolor"&&!has("mozilla")){_4e="backcolor";}}return _4e;},_qcaCache:{},queryCommandAvailable:function(_4f){var ca=this._qcaCache[_4f];if(ca!==undefined){return ca;}return (this._qcaCache[_4f]=this._queryCommandAvailable(_4f));},_queryCommandAvailable:function(_50){var ie=1;var _51=1<<1;var _52=1<<2;var _53=1<<3;function _54(_55){return {ie:Boolean(_55&ie),mozilla:Boolean(_55&_51),webkit:Boolean(_55&_52),opera:Boolean(_55&_53)};};var _56=null;switch(_50.toLowerCase()){case "bold":case "italic":case "underline":case "subscript":case "superscript":case "fontname":case "fontsize":case "forecolor":case "hilitecolor":case "justifycenter":case "justifyfull":case "justifyleft":case "justifyright":case "delete":case "selectall":case "toggledir":_56=_54(_51|ie|_52|_53);break;case "createlink":case "unlink":case "removeformat":case "inserthorizontalrule":case "insertimage":case "insertorderedlist":case "insertunorderedlist":case "indent":case "outdent":case "formatblock":case "inserthtml":case "undo":case "redo":case "strikethrough":case "tabindent":_56=_54(_51|ie|_53|_52);break;case "blockdirltr":case "blockdirrtl":case "dirltr":case "dirrtl":case "inlinedirltr":case "inlinedirrtl":_56=_54(ie);break;case "cut":case "copy":case "paste":_56=_54(ie|_51|_52|_53);break;case "inserttable":_56=_54(_51|ie);break;case "insertcell":case "insertcol":case "insertrow":case "deletecells":case "deletecols":case "deleterows":case "mergecells":case "splitcell":_56=_54(ie|_51);break;default:return false;}return (has("ie")&&_56.ie)||(has("mozilla")&&_56.mozilla)||(has("webkit")&&_56.webkit)||(has("opera")&&_56.opera);},execCommand:function(_57,_58){var _59;this.focus();_57=this._normalizeCommand(_57,_58);if(_58!==undefined){if(_57==="heading"){throw new Error("unimplemented");}else{if((_57==="formatblock")&&has("ie")){_58="<"+_58+">";}}}var _5a="_"+_57+"Impl";if(this[_5a]){_59=this[_5a](_58);}else{_58=arguments.length>1?_58:null;if(_58||_57!=="createlink"){_59=this.document.execCommand(_57,false,_58);}}this.onDisplayChanged();return _59;},queryCommandEnabled:function(_5b){if(this.disabled||!this._disabledOK){return false;}_5b=this._normalizeCommand(_5b);var _5c="_"+_5b+"EnabledImpl";if(this[_5c]){return this[_5c](_5b);}else{return this._browserQueryCommandEnabled(_5b);}},queryCommandState:function(_5d){if(this.disabled||!this._disabledOK){return false;}_5d=this._normalizeCommand(_5d);try{return this.document.queryCommandState(_5d);}catch(e){return false;}},queryCommandValue:function(_5e){if(this.disabled||!this._disabledOK){return false;}var r;_5e=this._normalizeCommand(_5e);if(has("ie")&&_5e==="formatblock"){r=this._native2LocalFormatNames[this.document.queryCommandValue(_5e)];}else{if(has("mozilla")&&_5e==="hilitecolor"){var _5f;try{_5f=this.document.queryCommandValue("styleWithCSS");}catch(e){_5f=false;}this.document.execCommand("styleWithCSS",false,true);r=this.document.queryCommandValue(_5e);this.document.execCommand("styleWithCSS",false,_5f);}else{r=this.document.queryCommandValue(_5e);}}return r;},_sCall:function(_60,_61){return win.withGlobal(this.window,_60,_16,_61);},placeCursorAtStart:function(){this.focus();var _62=false;if(has("mozilla")){var _63=this.editNode.firstChild;while(_63){if(_63.nodeType===3){if(_63.nodeValue.replace(/^\s+|\s+$/g,"").length>0){_62=true;this._sCall("selectElement",[_63]);break;}}else{if(_63.nodeType===1){_62=true;var tg=_63.tagName?_63.tagName.toLowerCase():"";if(/br|input|img|base|meta|area|basefont|hr|link/.test(tg)){this._sCall("selectElement",[_63]);}else{this._sCall("selectElementChildren",[_63]);}break;}}_63=_63.nextSibling;}}else{_62=true;this._sCall("selectElementChildren",[this.editNode]);}if(_62){this._sCall("collapse",[true]);}},placeCursorAtEnd:function(){this.focus();var _64=false;if(has("mozilla")){var _65=this.editNode.lastChild;while(_65){if(_65.nodeType===3){if(_65.nodeValue.replace(/^\s+|\s+$/g,"").length>0){_64=true;this._sCall("selectElement",[_65]);break;}}else{if(_65.nodeType===1){_64=true;this._sCall("selectElement",[_65.lastChild||_65]);break;}}_65=_65.previousSibling;}}else{_64=true;this._sCall("selectElementChildren",[this.editNode]);}if(_64){this._sCall("collapse",[false]);}},getValue:function(_66){if(this.textarea){if(this.isClosed||!this.isLoaded){return this.textarea.value;}}return this._postFilterContent(null,_66);},_getValueAttr:function(){return this.getValue(true);},setValue:function(_67){if(!this.isLoaded){this.onLoadDeferred.then(_e.hitch(this,function(){this.setValue(_67);}));return;}this._cursorToStart=true;if(this.textarea&&(this.isClosed||!this.isLoaded)){this.textarea.value=_67;}else{_67=this._preFilterContent(_67);var _68=this.isClosed?this.domNode:this.editNode;if(_67&&has("mozilla")&&_67.toLowerCase()==="<p></p>"){_67="<p>&#160;</p>";}if(!_67&&has("webkit")){_67="&#160;";}_68.innerHTML=_67;this._preDomFilterContent(_68);}this.onDisplayChanged();this._set("value",this.getValue(true));},replaceValue:function(_69){if(this.isClosed){this.setValue(_69);}else{if(this.window&&this.window.getSelection&&!has("mozilla")){this.setValue(_69);}else{if(this.window&&this.window.getSelection){_69=this._preFilterContent(_69);this.execCommand("selectall");if(!_69){this._cursorToStart=true;_69="&#160;";}this.execCommand("inserthtml",_69);this._preDomFilterContent(this.editNode);}else{if(this.document&&this.document.selection){this.setValue(_69);}}}}this._set("value",this.getValue(true));},_preFilterContent:function(_6a){var ec=_6a;_1.forEach(this.contentPreFilters,function(ef){if(ef){ec=ef(ec);}});return ec;},_preDomFilterContent:function(dom){dom=dom||this.editNode;_1.forEach(this.contentDomPreFilters,function(ef){if(ef&&_e.isFunction(ef)){ef(dom);}},this);},_postFilterContent:function(dom,_6b){var ec;if(!_e.isString(dom)){dom=dom||this.editNode;if(this.contentDomPostFilters.length){if(_6b){dom=_e.clone(dom);}_1.forEach(this.contentDomPostFilters,function(ef){dom=ef(dom);});}ec=_18.getChildrenHtml(dom);}else{ec=dom;}if(!_e.trim(ec.replace(/^\xA0\xA0*/,"").replace(/\xA0\xA0*$/,"")).length){ec="";}_1.forEach(this.contentPostFilters,function(ef){ec=ef(ec);});return ec;},_saveContent:function(){var _6c=_5.byId(_1a._scopeName+"._editor.RichText.value");if(_6c){if(_6c.value){_6c.value+=this._SEPARATOR;}_6c.value+=this.name+this._NAME_CONTENT_SEP+this.getValue(true);}},escapeXml:function(str,_6d){str=str.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;");if(!_6d){str=str.replace(/'/gm,"&#39;");}return str;},getNodeHtml:function(_6e){_c.deprecated("dijit.Editor::getNodeHtml is deprecated","use dijit/_editor/html::getNodeHtml instead",2);return _18.getNodeHtml(_6e);},getNodeChildrenHtml:function(dom){_c.deprecated("dijit.Editor::getNodeChildrenHtml is deprecated","use dijit/_editor/html::getChildrenHtml instead",2);return _18.getChildrenHtml(dom);},close:function(_6f){if(this.isClosed){return;}if(!arguments.length){_6f=true;}if(_6f){this._set("value",this.getValue(true));}if(this.interval){clearInterval(this.interval);}if(this._webkitListener){this.disconnect(this._webkitListener);delete this._webkitListener;}if(has("ie")){this.iframe.onfocus=null;}this.iframe._loadFunc=null;if(this._iframeRegHandle){this._iframeRegHandle.remove();delete this._iframeRegHandle;}if(this.textarea){var s=this.textarea.style;s.position="";s.left=s.top="";if(has("ie")){s.overflow=this.__overflow;this.__overflow=null;}this.textarea.value=this.value;_8.destroy(this.domNode);this.domNode=this.textarea;}else{this.domNode.innerHTML=this.value;}delete this.iframe;_7.remove(this.domNode,this.baseClass);this.isClosed=true;this.isLoaded=false;delete this.editNode;delete this.focusNode;if(this.window&&this.window._frameElement){this.window._frameElement=null;}this.window=null;this.document=null;this.editingArea=null;this.editorObject=null;},destroy:function(){if(!this.isClosed){this.close(false);}if(this._updateTimer){this._updateTimer.remove();}this.inherited(arguments);if(_1b._globalSaveHandler){delete _1b._globalSaveHandler[this.id];}},_removeMozBogus:function(_70){return _70.replace(/\stype="_moz"/gi,"").replace(/\s_moz_dirty=""/gi,"").replace(/_moz_resizing="(true|false)"/gi,"");},_removeWebkitBogus:function(_71){_71=_71.replace(/\sclass="webkit-block-placeholder"/gi,"");_71=_71.replace(/\sclass="apple-style-span"/gi,"");_71=_71.replace(/<meta charset=\"utf-8\" \/>/gi,"");return _71;},_normalizeFontStyle:function(_72){return _72.replace(/<(\/)?strong([ \>])/gi,"<$1b$2").replace(/<(\/)?em([ \>])/gi,"<$1i$2");},_preFixUrlAttributes:function(_73){return _73.replace(/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi,"$1$4$2$3$5$2 _djrealurl=$2$3$5$2").replace(/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi,"$1$4$2$3$5$2 _djrealurl=$2$3$5$2");},_browserQueryCommandEnabled:function(_74){if(!_74){return false;}var _75=has("ie")?this.document.selection.createRange():this.document;try{return _75.queryCommandEnabled(_74);}catch(e){return false;}},_createlinkEnabledImpl:function(){var _76=true;if(has("opera")){var sel=this.window.getSelection();if(sel.isCollapsed){_76=true;}else{_76=this.document.queryCommandEnabled("createlink");}}else{_76=this._browserQueryCommandEnabled("createlink");}return _76;},_unlinkEnabledImpl:function(){var _77=true;if(has("mozilla")||has("webkit")){_77=this._sCall("hasAncestorElement",["a"]);}else{_77=this._browserQueryCommandEnabled("unlink");}return _77;},_inserttableEnabledImpl:function(){var _78=true;if(has("mozilla")||has("webkit")){_78=true;}else{_78=this._browserQueryCommandEnabled("inserttable");}return _78;},_cutEnabledImpl:function(){var _79=true;if(has("webkit")){var sel=this.window.getSelection();if(sel){sel=sel.toString();}_79=!!sel;}else{_79=this._browserQueryCommandEnabled("cut");}return _79;},_copyEnabledImpl:function(){var _7a=true;if(has("webkit")){var sel=this.window.getSelection();if(sel){sel=sel.toString();}_7a=!!sel;}else{_7a=this._browserQueryCommandEnabled("copy");}return _7a;},_pasteEnabledImpl:function(){var _7b=true;if(has("webkit")){return true;}else{_7b=this._browserQueryCommandEnabled("paste");}return _7b;},_inserthorizontalruleImpl:function(_7c){if(has("ie")){return this._inserthtmlImpl("<hr>");}return this.document.execCommand("inserthorizontalrule",false,_7c);},_unlinkImpl:function(_7d){if((this.queryCommandEnabled("unlink"))&&(has("mozilla")||has("webkit"))){var a=this._sCall("getAncestorElement",["a"]);this._sCall("selectElement",[a]);return this.document.execCommand("unlink",false,null);}return this.document.execCommand("unlink",false,_7d);},_hilitecolorImpl:function(_7e){var _7f;var _80=this._handleTextColorOrProperties("hilitecolor",_7e);if(!_80){if(has("mozilla")){this.document.execCommand("styleWithCSS",false,true);_7f=this.document.execCommand("hilitecolor",false,_7e);this.document.execCommand("styleWithCSS",false,false);}else{_7f=this.document.execCommand("hilitecolor",false,_7e);}}return _7f;},_backcolorImpl:function(_81){if(has("ie")){_81=_81?_81:null;}var _82=this._handleTextColorOrProperties("backcolor",_81);if(!_82){_82=this.document.execCommand("backcolor",false,_81);}return _82;},_forecolorImpl:function(_83){if(has("ie")){_83=_83?_83:null;}var _84=false;_84=this._handleTextColorOrProperties("forecolor",_83);if(!_84){_84=this.document.execCommand("forecolor",false,_83);}return _84;},_inserthtmlImpl:function(_85){_85=this._preFilterContent(_85);var rv=true;if(has("ie")){var _86=this.document.selection.createRange();if(this.document.selection.type.toUpperCase()==="CONTROL"){var n=_86.item(0);while(_86.length){_86.remove(_86.item(0));}n.outerHTML=_85;}else{_86.pasteHTML(_85);}_86.select();}else{if(has("mozilla")&&!_85.length){this._sCall("remove");}else{rv=this.document.execCommand("inserthtml",false,_85);}}return rv;},_boldImpl:function(_87){var _88=false;if(has("ie")){this._adaptIESelection();_88=this._adaptIEFormatAreaAndExec("bold");}if(!_88){_88=this.document.execCommand("bold",false,_87);}return _88;},_italicImpl:function(_89){var _8a=false;if(has("ie")){this._adaptIESelection();_8a=this._adaptIEFormatAreaAndExec("italic");}if(!_8a){_8a=this.document.execCommand("italic",false,_89);}return _8a;},_underlineImpl:function(_8b){var _8c=false;if(has("ie")){this._adaptIESelection();_8c=this._adaptIEFormatAreaAndExec("underline");}if(!_8c){_8c=this.document.execCommand("underline",false,_8b);}return _8c;},_strikethroughImpl:function(_8d){var _8e=false;if(has("ie")){this._adaptIESelection();_8e=this._adaptIEFormatAreaAndExec("strikethrough");}if(!_8e){_8e=this.document.execCommand("strikethrough",false,_8d);}return _8e;},_superscriptImpl:function(_8f){var _90=false;if(has("ie")){this._adaptIESelection();_90=this._adaptIEFormatAreaAndExec("superscript");}if(!_90){_90=this.document.execCommand("superscript",false,_8f);}return _90;},_subscriptImpl:function(_91){var _92=false;if(has("ie")){this._adaptIESelection();_92=this._adaptIEFormatAreaAndExec("subscript");}if(!_92){_92=this.document.execCommand("subscript",false,_91);}return _92;},_fontnameImpl:function(_93){var _94;if(has("ie")){_94=this._handleTextColorOrProperties("fontname",_93);}if(!_94){_94=this.document.execCommand("fontname",false,_93);}return _94;},_fontsizeImpl:function(_95){var _96;if(has("ie")){_96=this._handleTextColorOrProperties("fontsize",_95);}if(!_96){_96=this.document.execCommand("fontsize",false,_95);}return _96;},_insertorderedlistImpl:function(_97){var _98=false;if(has("ie")){_98=this._adaptIEList("insertorderedlist",_97);}if(!_98){_98=this.document.execCommand("insertorderedlist",false,_97);}return _98;},_insertunorderedlistImpl:function(_99){var _9a=false;if(has("ie")){_9a=this._adaptIEList("insertunorderedlist",_99);}if(!_9a){_9a=this.document.execCommand("insertunorderedlist",false,_99);}return _9a;},getHeaderHeight:function(){return this._getNodeChildrenHeight(this.header);},getFooterHeight:function(){return this._getNodeChildrenHeight(this.footer);},_getNodeChildrenHeight:function(_9b){var h=0;if(_9b&&_9b.childNodes){var i;for(i=0;i<_9b.childNodes.length;i++){var _9c=_9.position(_9b.childNodes[i]);h+=_9c.h;}}return h;},_isNodeEmpty:function(_9d,_9e){if(_9d.nodeType===1){if(_9d.childNodes.length>0){return this._isNodeEmpty(_9d.childNodes[0],_9e);}return true;}else{if(_9d.nodeType===3){return (_9d.nodeValue.substring(_9e)==="");}}return false;},_removeStartingRangeFromRange:function(_9f,_a0){if(_9f.nextSibling){_a0.setStart(_9f.nextSibling,0);}else{var _a1=_9f.parentNode;while(_a1&&_a1.nextSibling==null){_a1=_a1.parentNode;}if(_a1){_a0.setStart(_a1.nextSibling,0);}}return _a0;},_adaptIESelection:function(){var _a2=_17.getSelection(this.window);if(_a2&&_a2.rangeCount&&!_a2.isCollapsed){var _a3=_a2.getRangeAt(0);var _a4=_a3.startContainer;var _a5=_a3.startOffset;while(_a4.nodeType===3&&_a5>=_a4.length&&_a4.nextSibling){_a5=_a5-_a4.length;_a4=_a4.nextSibling;}var _a6=null;while(this._isNodeEmpty(_a4,_a5)&&_a4!==_a6){_a6=_a4;_a3=this._removeStartingRangeFromRange(_a4,_a3);_a4=_a3.startContainer;_a5=0;}_a2.removeAllRanges();_a2.addRange(_a3);}},_adaptIEFormatAreaAndExec:function(_a7){var _a8=_17.getSelection(this.window);var doc=this.document;var rs,ret,_a9,txt,_aa,_ab,_ac,_ad;if(_a7&&_a8&&_a8.isCollapsed){var _ae=this.queryCommandValue(_a7);if(_ae){var _af=this._tagNamesForCommand(_a7);_a9=_a8.getRangeAt(0);var fs=_a9.startContainer;if(fs.nodeType===3){var _b0=_a9.endOffset;if(fs.length<_b0){ret=this._adjustNodeAndOffset(rs,_b0);fs=ret.node;_b0=ret.offset;}}var _b1;while(fs&&fs!==this.editNode){var _b2=fs.tagName?fs.tagName.toLowerCase():"";if(_1.indexOf(_af,_b2)>-1){_b1=fs;break;}fs=fs.parentNode;}if(_b1){rs=_a9.startContainer;var _b3=doc.createElement(_b1.tagName);_8.place(_b3,_b1,"after");if(rs&&rs.nodeType===3){var _b4,_b5;var _b6=_a9.endOffset;if(rs.length<_b6){ret=this._adjustNodeAndOffset(rs,_b6);rs=ret.node;_b6=ret.offset;}txt=rs.nodeValue;_aa=doc.createTextNode(txt.substring(0,_b6));var _b7=txt.substring(_b6,txt.length);if(_b7){_ab=doc.createTextNode(_b7);}_8.place(_aa,rs,"before");if(_ab){_ac=doc.createElement("span");_ac.className="ieFormatBreakerSpan";_8.place(_ac,rs,"after");_8.place(_ab,_ac,"after");_ab=_ac;}_8.destroy(rs);var _b8=_aa.parentNode;var _b9=[];var _ba;while(_b8!==_b1){var tg=_b8.tagName;_ba={tagName:tg};_b9.push(_ba);var _bb=doc.createElement(tg);if(_b8.style){if(_bb.style){if(_b8.style.cssText){_bb.style.cssText=_b8.style.cssText;_ba.cssText=_b8.style.cssText;}}}if(_b8.tagName==="FONT"){if(_b8.color){_bb.color=_b8.color;_ba.color=_b8.color;}if(_b8.face){_bb.face=_b8.face;_ba.face=_b8.face;}if(_b8.size){_bb.size=_b8.size;_ba.size=_b8.size;}}if(_b8.className){_bb.className=_b8.className;_ba.className=_b8.className;}if(_ab){_b4=_ab;while(_b4){_b5=_b4.nextSibling;_bb.appendChild(_b4);_b4=_b5;}}if(_bb.tagName==_b8.tagName){_ac=doc.createElement("span");_ac.className="ieFormatBreakerSpan";_8.place(_ac,_b8,"after");_8.place(_bb,_ac,"after");}else{_8.place(_bb,_b8,"after");}_aa=_b8;_ab=_bb;_b8=_b8.parentNode;}if(_ab){_b4=_ab;if(_b4.nodeType===1||(_b4.nodeType===3&&_b4.nodeValue)){_b3.innerHTML="";}while(_b4){_b5=_b4.nextSibling;_b3.appendChild(_b4);_b4=_b5;}}var _bc;if(_b9.length){_ba=_b9.pop();var _bd=doc.createElement(_ba.tagName);if(_ba.cssText&&_bd.style){_bd.style.cssText=_ba.cssText;}if(_ba.className){_bd.className=_ba.className;}if(_ba.tagName==="FONT"){if(_ba.color){_bd.color=_ba.color;}if(_ba.face){_bd.face=_ba.face;}if(_ba.size){_bd.size=_ba.size;}}_8.place(_bd,_b3,"before");while(_b9.length){_ba=_b9.pop();var _be=doc.createElement(_ba.tagName);if(_ba.cssText&&_be.style){_be.style.cssText=_ba.cssText;}if(_ba.className){_be.className=_ba.className;}if(_ba.tagName==="FONT"){if(_ba.color){_be.color=_ba.color;}if(_ba.face){_be.face=_ba.face;}if(_ba.size){_be.size=_ba.size;}}_bd.appendChild(_be);_bd=_be;}_ad=doc.createTextNode(".");_ac.appendChild(_ad);_bd.appendChild(_ad);_bc=_17.create(this.window);_bc.setStart(_ad,0);_bc.setEnd(_ad,_ad.length);_a8.removeAllRanges();_a8.addRange(_bc);this._sCall("collapse",[false]);_ad.parentNode.innerHTML="";}else{_ac=doc.createElement("span");_ac.className="ieFormatBreakerSpan";_ad=doc.createTextNode(".");_ac.appendChild(_ad);_8.place(_ac,_b3,"before");_bc=_17.create(this.window);_bc.setStart(_ad,0);_bc.setEnd(_ad,_ad.length);_a8.removeAllRanges();_a8.addRange(_bc);this._sCall("collapse",[false]);_ad.parentNode.innerHTML="";}if(!_b3.firstChild){_8.destroy(_b3);}return true;}}return false;}else{_a9=_a8.getRangeAt(0);rs=_a9.startContainer;if(rs&&rs.nodeType===3){var _b0=_a9.startOffset;if(rs.length<_b0){ret=this._adjustNodeAndOffset(rs,_b0);rs=ret.node;_b0=ret.offset;}txt=rs.nodeValue;_aa=doc.createTextNode(txt.substring(0,_b0));var _b7=txt.substring(_b0);if(_b7!==""){_ab=doc.createTextNode(txt.substring(_b0));}_ac=doc.createElement("span");_ad=doc.createTextNode(".");_ac.appendChild(_ad);if(_aa.length){_8.place(_aa,rs,"after");}else{_aa=rs;}_8.place(_ac,_aa,"after");if(_ab){_8.place(_ab,_ac,"after");}_8.destroy(rs);var _bc=_17.create(this.window);_bc.setStart(_ad,0);_bc.setEnd(_ad,_ad.length);_a8.removeAllRanges();_a8.addRange(_bc);doc.execCommand(_a7);_8.place(_ac.firstChild,_ac,"before");_8.destroy(_ac);_bc.setStart(_ad,0);_bc.setEnd(_ad,_ad.length);_a8.removeAllRanges();_a8.addRange(_bc);this._sCall("collapse",[false]);_ad.parentNode.innerHTML="";return true;}}}else{return false;}},_adaptIEList:function(_bf){var _c0=_17.getSelection(this.window);if(_c0.isCollapsed){if(_c0.rangeCount&&!this.queryCommandValue(_bf)){var _c1=_c0.getRangeAt(0);var sc=_c1.startContainer;if(sc&&sc.nodeType==3){if(!_c1.startOffset){var _c2="ul";if(_bf==="insertorderedlist"){_c2="ol";}var _c3=this.document.createElement(_c2);var li=_8.create("li",null,_c3);_8.place(_c3,sc,"before");li.appendChild(sc);_8.create("br",null,_c3,"after");var _c4=_17.create(this.window);_c4.setStart(sc,0);_c4.setEnd(sc,sc.length);_c0.removeAllRanges();_c0.addRange(_c4);this._sCall("collapse",[true]);return true;}}}}return false;},_handleTextColorOrProperties:function(_c5,_c6){var _c7=_17.getSelection(this.window);var doc=this.document;var rs,ret,_c8,txt,_c9,_ca,_cb,_cc;_c6=_c6||null;if(_c5&&_c7&&_c7.isCollapsed){if(_c7.rangeCount){_c8=_c7.getRangeAt(0);rs=_c8.startContainer;if(rs&&rs.nodeType===3){var _cd=_c8.startOffset;if(rs.length<_cd){ret=this._adjustNodeAndOffset(rs,_cd);rs=ret.node;_cd=ret.offset;}txt=rs.nodeValue;_c9=doc.createTextNode(txt.substring(0,_cd));var _ce=txt.substring(_cd);if(_ce!==""){_ca=doc.createTextNode(txt.substring(_cd));}_cb=doc.createElement("span");_cc=doc.createTextNode(".");_cb.appendChild(_cc);var _cf=doc.createElement("span");_cb.appendChild(_cf);if(_c9.length){_8.place(_c9,rs,"after");}else{_c9=rs;}_8.place(_cb,_c9,"after");if(_ca){_8.place(_ca,_cb,"after");}_8.destroy(rs);var _d0=_17.create(this.window);_d0.setStart(_cc,0);_d0.setEnd(_cc,_cc.length);_c7.removeAllRanges();_c7.addRange(_d0);if(has("webkit")){var _d1="color";if(_c5==="hilitecolor"||_c5==="backcolor"){_d1="backgroundColor";}_a.set(_cb,_d1,_c6);this._sCall("remove",[]);_8.destroy(_cf);_cb.innerHTML="&#160;";this._sCall("selectElement",[_cb]);this.focus();}else{this.execCommand(_c5,_c6);_8.place(_cb.firstChild,_cb,"before");_8.destroy(_cb);_d0.setStart(_cc,0);_d0.setEnd(_cc,_cc.length);_c7.removeAllRanges();_c7.addRange(_d0);this._sCall("collapse",[false]);_cc.parentNode.removeChild(_cc);}return true;}}}return false;},_adjustNodeAndOffset:function(_d2,_d3){while(_d2.length<_d3&&_d2.nextSibling&&_d2.nextSibling.nodeType===3){_d3=_d3-_d2.length;_d2=_d2.nextSibling;}return {"node":_d2,"offset":_d3};},_tagNamesForCommand:function(_d4){if(_d4==="bold"){return ["b","strong"];}else{if(_d4==="italic"){return ["i","em"];}else{if(_d4==="strikethrough"){return ["s","strike"];}else{if(_d4==="superscript"){return ["sup"];}else{if(_d4==="subscript"){return ["sub"];}else{if(_d4==="underline"){return ["u"];}}}}}}return [];},_stripBreakerNodes:function(_d5){if(!this.isLoaded){return;}_f(".ieFormatBreakerSpan",_d5).forEach(function(b){while(b.firstChild){_8.place(b.firstChild,b,"before");}_8.destroy(b);});return _d5;}});return _1b;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/_Plugin.js b/lib/dijit/_editor/_Plugin.js
index 7eff3ba01..36b7fae98 100644
--- a/lib/dijit/_editor/_Plugin.js
+++ b/lib/dijit/_editor/_Plugin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/_Plugin",["dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","../form/Button"],function(_1,_2,_3,_4){var _5=_2("dijit._editor._Plugin",null,{constructor:function(_6){this.params=_6||{};_3.mixin(this,this.params);this._connects=[];this._attrPairNames={};},editor:null,iconClassPrefix:"dijitEditorIcon",button:null,command:"",useDefaultCommand:true,buttonClass:_4,disabled:false,getLabel:function(_7){return this.editor.commands[_7];},_initButton:function(){if(this.command.length){var _8=this.getLabel(this.command),_9=this.editor,_a=this.iconClassPrefix+" "+this.iconClassPrefix+this.command.charAt(0).toUpperCase()+this.command.substr(1);if(!this.button){var _b=_3.mixin({label:_8,dir:_9.dir,lang:_9.lang,showLabel:false,iconClass:_a,dropDown:this.dropDown,tabIndex:"-1"},this.params||{});this.button=new this.buttonClass(_b);}}if(this.get("disabled")&&this.button){this.button.set("disabled",this.get("disabled"));}},destroy:function(){var h;while(h=this._connects.pop()){h.remove();}if(this.dropDown){this.dropDown.destroyRecursive();}},connect:function(o,f,tf){this._connects.push(_1.connect(o,f,this,tf));},updateState:function(){var e=this.editor,c=this.command,_c,_d;if(!e||!e.isLoaded||!c.length){return;}var _e=this.get("disabled");if(this.button){try{_d=!_e&&e.queryCommandEnabled(c);if(this.enabled!==_d){this.enabled=_d;this.button.set("disabled",!_d);}if(typeof this.button.checked=="boolean"){_c=e.queryCommandState(c);if(this.checked!==_c){this.checked=_c;this.button.set("checked",e.queryCommandState(c));}}}catch(e){}}},setEditor:function(_f){this.editor=_f;this._initButton();if(this.button&&this.useDefaultCommand){if(this.editor.queryCommandAvailable(this.command)){this.connect(this.button,"onClick",_3.hitch(this.editor,"execCommand",this.command,this.commandArg));}else{this.button.domNode.style.display="none";}}this.connect(this.editor,"onNormalizedDisplayChanged","updateState");},setToolbar:function(_10){if(this.button){_10.addChild(this.button);}},set:function(_11,_12){if(typeof _11==="object"){for(var x in _11){this.set(x,_11[x]);}return this;}var _13=this._getAttrNames(_11);if(this[_13.s]){var _14=this[_13.s].apply(this,Array.prototype.slice.call(arguments,1));}else{this._set(_11,_12);}return _14||this;},get:function(_15){var _16=this._getAttrNames(_15);return this[_16.g]?this[_16.g]():this[_15];},_setDisabledAttr:function(_17){this.disabled=_17;this.updateState();},_getAttrNames:function(_18){var apn=this._attrPairNames;if(apn[_18]){return apn[_18];}var uc=_18.charAt(0).toUpperCase()+_18.substr(1);return (apn[_18]={s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"});},_set:function(_19,_1a){this[_19]=_1a;}});_5.registry={};return _5;}); \ No newline at end of file
+define("dijit/_editor/_Plugin",["dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","../form/Button"],function(_1,_2,_3,_4){var _5=_2("dijit._editor._Plugin",null,{constructor:function(_6){this.params=_6||{};_3.mixin(this,this.params);this._connects=[];this._attrPairNames={};},editor:null,iconClassPrefix:"dijitEditorIcon",button:null,command:"",useDefaultCommand:true,buttonClass:_4,disabled:false,getLabel:function(_7){return this.editor.commands[_7];},_initButton:function(){if(this.command.length){var _8=this.getLabel(this.command),_9=this.editor,_a=this.iconClassPrefix+" "+this.iconClassPrefix+this.command.charAt(0).toUpperCase()+this.command.substr(1);if(!this.button){var _b=_3.mixin({label:_8,ownerDocument:_9.ownerDocument,dir:_9.dir,lang:_9.lang,showLabel:false,iconClass:_a,dropDown:this.dropDown,tabIndex:"-1"},this.params||{});this.button=new this.buttonClass(_b);}}if(this.get("disabled")&&this.button){this.button.set("disabled",this.get("disabled"));}},destroy:function(){var h;while(h=this._connects.pop()){h.remove();}if(this.dropDown){this.dropDown.destroyRecursive();}},connect:function(o,f,tf){this._connects.push(_1.connect(o,f,this,tf));},updateState:function(){var e=this.editor,c=this.command,_c,_d;if(!e||!e.isLoaded||!c.length){return;}var _e=this.get("disabled");if(this.button){try{_d=!_e&&e.queryCommandEnabled(c);if(this.enabled!==_d){this.enabled=_d;this.button.set("disabled",!_d);}if(_d){if(typeof this.button.checked=="boolean"){_c=e.queryCommandState(c);if(this.checked!==_c){this.checked=_c;this.button.set("checked",e.queryCommandState(c));}}}}catch(e){}}},setEditor:function(_f){this.editor=_f;this._initButton();if(this.button&&this.useDefaultCommand){if(this.editor.queryCommandAvailable(this.command)){this.connect(this.button,"onClick",_3.hitch(this.editor,"execCommand",this.command,this.commandArg));}else{this.button.domNode.style.display="none";}}this.connect(this.editor,"onNormalizedDisplayChanged","updateState");},setToolbar:function(_10){if(this.button){_10.addChild(this.button);}},set:function(_11,_12){if(typeof _11==="object"){for(var x in _11){this.set(x,_11[x]);}return this;}var _13=this._getAttrNames(_11);if(this[_13.s]){var _14=this[_13.s].apply(this,Array.prototype.slice.call(arguments,1));}else{this._set(_11,_12);}return _14||this;},get:function(_15){var _16=this._getAttrNames(_15);return this[_16.g]?this[_16.g]():this[_15];},_setDisabledAttr:function(_17){this.disabled=_17;this.updateState();},_getAttrNames:function(_18){var apn=this._attrPairNames;if(apn[_18]){return apn[_18];}var uc=_18.charAt(0).toUpperCase()+_18.substr(1);return (apn[_18]={s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"});},_set:function(_19,_1a){this[_19]=_1a;}});_5.registry={};return _5;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/html.js b/lib/dijit/_editor/html.js
index 45becc4b0..dc19ffba8 100644
--- a/lib/dijit/_editor/html.js
+++ b/lib/dijit/_editor/html.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/html",["dojo/_base/lang","dojo/_base/sniff",".."],function(_1,_2,_3){_1.getObject("_editor",true,_3);_3._editor.escapeXml=function(_4,_5){_4=_4.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;");if(!_5){_4=_4.replace(/'/gm,"&#39;");}return _4;};_3._editor.getNodeHtml=function(_6){var _7;switch(_6.nodeType){case 1:var _8=_6.nodeName.toLowerCase();if(!_8||_8.charAt(0)=="/"){return "";}_7="<"+_8;var _9=[];var _a;if(_2("ie")&&_6.outerHTML){var s=_6.outerHTML;s=s.substr(0,s.indexOf(">")).replace(/(['"])[^"']*\1/g,"");var _b=/(\b\w+)\s?=/g;var m,_c;while((m=_b.exec(s))){_c=m[1];if(_c.substr(0,3)!="_dj"){if(_c=="src"||_c=="href"){if(_6.getAttribute("_djrealurl")){_9.push([_c,_6.getAttribute("_djrealurl")]);continue;}}var _d,_e;switch(_c){case "style":_d=_6.style.cssText.toLowerCase();break;case "class":_d=_6.className;break;case "width":if(_8==="img"){_e=/width=(\S+)/i.exec(s);if(_e){_d=_e[1];}break;}case "height":if(_8==="img"){_e=/height=(\S+)/i.exec(s);if(_e){_d=_e[1];}break;}default:_d=_6.getAttribute(_c);}if(_d!=null){_9.push([_c,_d.toString()]);}}}}else{var i=0;while((_a=_6.attributes[i++])){var n=_a.name;if(n.substr(0,3)!="_dj"){var v=_a.value;if(n=="src"||n=="href"){if(_6.getAttribute("_djrealurl")){v=_6.getAttribute("_djrealurl");}}_9.push([n,v]);}}}_9.sort(function(a,b){return a[0]<b[0]?-1:(a[0]==b[0]?0:1);});var j=0;while((_a=_9[j++])){_7+=" "+_a[0]+"=\""+(_1.isString(_a[1])?_3._editor.escapeXml(_a[1],true):_a[1])+"\"";}if(_8==="script"){_7+=">"+_6.innerHTML+"</"+_8+">";}else{if(_6.childNodes.length){_7+=">"+_3._editor.getChildrenHtml(_6)+"</"+_8+">";}else{switch(_8){case "br":case "hr":case "img":case "input":case "base":case "meta":case "area":case "basefont":_7+=" />";break;default:_7+="></"+_8+">";}}}break;case 4:case 3:_7=_3._editor.escapeXml(_6.nodeValue,true);break;case 8:_7="<!--"+_3._editor.escapeXml(_6.nodeValue,true)+"-->";break;default:_7="<!-- Element not recognized - Type: "+_6.nodeType+" Name: "+_6.nodeName+"-->";}return _7;};_3._editor.getChildrenHtml=function(_f){var out="";if(!_f){return out;}var _10=_f["childNodes"]||_f;var _11=!_2("ie")||_10!==_f;var _12,i=0;while((_12=_10[i++])){if(!_11||_12.parentNode==_f){out+=_3._editor.getNodeHtml(_12);}}return out;};return _3._editor;}); \ No newline at end of file
+define("dijit/_editor/html",["dojo/_base/array","dojo/_base/lang","dojo/sniff"],function(_1,_2,_3){var _4={};_2.setObject("dijit._editor.html",_4);var _5=_4.escapeXml=function(_6,_7){_6=_6.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;");if(!_7){_6=_6.replace(/'/gm,"&#39;");}return _6;};_4.getNodeHtml=function(_8){var _9=[];_4.getNodeHtmlHelper(_8,_9);return _9.join("");};_4.getNodeHtmlHelper=function(_a,_b){switch(_a.nodeType){case 1:var _c=_a.nodeName.toLowerCase();if(!_c||_c.charAt(0)=="/"){return "";}_b.push("<",_c);var _d=[],_e={};var _f;if(_3("dom-attributes-explicit")||_3("dom-attributes-specified-flag")){var i=0;while((_f=_a.attributes[i++])){var n=_f.name;if(n.substr(0,3)!=="_dj"&&(!_3("dom-attributes-specified-flag")||_f.specified)&&!(n in _e)){var v=_f.value;if(n=="src"||n=="href"){if(_a.getAttribute("_djrealurl")){v=_a.getAttribute("_djrealurl");}}if(_3("ie")===8&&n==="style"){v=v.replace("HEIGHT:","height:").replace("WIDTH:","width:");}_d.push([n,v]);_e[n]=v;}}}else{var _10=/^input$|^img$/i.test(_a.nodeName)?_a:_a.cloneNode(false);var s=_10.outerHTML;var _11=/[\w-]+=("[^"]*"|'[^']*'|\S*)/gi;var _12=s.match(_11);s=s.substr(0,s.indexOf(">"));_1.forEach(_12,function(_13){if(_13){var idx=_13.indexOf("=");if(idx>0){var key=_13.substring(0,idx);if(key.substr(0,3)!="_dj"){if(key=="src"||key=="href"){if(_a.getAttribute("_djrealurl")){_d.push([key,_a.getAttribute("_djrealurl")]);return;}}var val,_14;switch(key){case "style":val=_a.style.cssText.toLowerCase();break;case "class":val=_a.className;break;case "width":if(_c==="img"){_14=/width=(\S+)/i.exec(s);if(_14){val=_14[1];}break;}case "height":if(_c==="img"){_14=/height=(\S+)/i.exec(s);if(_14){val=_14[1];}break;}default:val=_a.getAttribute(key);}if(val!=null){_d.push([key,val.toString()]);}}}}},this);}_d.sort(function(a,b){return a[0]<b[0]?-1:(a[0]==b[0]?0:1);});var j=0;while((_f=_d[j++])){_b.push(" ",_f[0],"=\"",(typeof _f[1]==="string"?_5(_f[1],true):_f[1]),"\"");}switch(_c){case "br":case "hr":case "img":case "input":case "base":case "meta":case "area":case "basefont":_b.push(" />");break;case "script":_b.push(">",_a.innerHTML,"</",_c,">");break;default:_b.push(">");if(_a.hasChildNodes()){_4.getChildrenHtmlHelper(_a,_b);}_b.push("</",_c,">");}break;case 4:case 3:_b.push(_5(_a.nodeValue,true));break;case 8:_b.push("<!--",_5(_a.nodeValue,true),"-->");break;default:_b.push("<!-- Element not recognized - Type: ",_a.nodeType," Name: ",_a.nodeName,"-->");}};_4.getChildrenHtml=function(_15){var _16=[];_4.getChildrenHtmlHelper(_15,_16);return _16.join("");};_4.getChildrenHtmlHelper=function(dom,_17){if(!dom){return;}var _18=dom["childNodes"]||dom;var _19=!_3("ie")||_18!==dom;var _1a,i=0;while((_1a=_18[i++])){if(!_19||_1a.parentNode==dom){_4.getNodeHtmlHelper(_1a,_17);}}};return _4;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/ca/commands.js b/lib/dijit/_editor/nls/ca/commands.js
index 0b724df79..7449c5024 100644
--- a/lib/dijit/_editor/nls/ca/commands.js
+++ b/lib/dijit/_editor/nls/ca/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/ca/commands",({"bold":"Negreta","copy":"Copia","cut":"Retalla","delete":"Suprimeix","indent":"Sagnat","insertHorizontalRule":"Regla horitzontal","insertOrderedList":"Llista numerada","insertUnorderedList":"Llista de vinyetes","italic":"Cursiva","justifyCenter":"Centra","justifyFull":"Justifica","justifyLeft":"Alinea a l'esquerra","justifyRight":"Alinea a la dreta","outdent":"Sagna a l'esquerra","paste":"Enganxa","redo":"Refés","removeFormat":"Elimina el format","selectAll":"Selecciona-ho tot","strikethrough":"Ratllat","subscript":"Subíndex","superscript":"Superíndex","underline":"Subratllat","undo":"Desfés","unlink":"Elimina l'enllaç","createLink":"Crea un enllaç","toggleDir":"Inverteix la direcció","insertImage":"Insereix imatge","insertTable":"Insereix/edita la taula","toggleTableBorder":"Inverteix els contorns de taula","deleteTable":"Suprimeix la taula","tableProp":"Propietat de taula","htmlToggle":"Font HTML","foreColor":"Color de primer pla","hiliteColor":"Color de fons","plainFormatBlock":"Estil de paràgraf","formatBlock":"Estil de paràgraf","fontSize":"Cos de la lletra","fontName":"Nom del tipus de lletra","tabIndent":"Sagnat","fullScreen":"Commuta pantalla completa","viewSource":"Visualitza font HTML","print":"Imprimeix","newPage":"Pàgina nova","systemShortcut":"L'acció \"${0}\" és l'única disponible al navegador utilitzant una drecera del teclat. Utilitzeu ${1}.","ctrlKey":"control+${0}"})); \ No newline at end of file
+define("dijit/_editor/nls/ca/commands",({"bold":"Negreta","copy":"Copia","cut":"Retalla","delete":"Suprimeix","indent":"Sagnat","insertHorizontalRule":"Regla horitzontal","insertOrderedList":"Llista numerada","insertUnorderedList":"Llista de vinyetes","italic":"Cursiva","justifyCenter":"Centra","justifyFull":"Justifica","justifyLeft":"Alinea a l'esquerra","justifyRight":"Alinea a la dreta","outdent":"Sagna a l'esquerra","paste":"Enganxa","redo":"Refés","removeFormat":"Elimina el format","selectAll":"Selecciona-ho tot","strikethrough":"Ratllat","subscript":"Subíndex","superscript":"Superíndex","underline":"Subratllat","undo":"Desfés","unlink":"Elimina l'enllaç","createLink":"Crea un enllaç","toggleDir":"Inverteix la direcció","insertImage":"Insereix imatge","insertTable":"Insereix/edita la taula","toggleTableBorder":"Inverteix els contorns de taula","deleteTable":"Suprimeix la taula","tableProp":"Propietat de taula","htmlToggle":"Font HTML","foreColor":"Color de primer pla","hiliteColor":"Color de fons","plainFormatBlock":"Estil de paràgraf","formatBlock":"Estil de paràgraf","fontSize":"Cos de la lletra","fontName":"Nom del tipus de lletra","tabIndent":"Sagnat","fullScreen":"Commuta pantalla completa","viewSource":"Visualitza font HTML","print":"Imprimeix","newPage":"Pàgina nova","systemShortcut":"L'acció \"${0}\" és l'única disponible al navegador utilitzant una drecera del teclat. Utilitzeu ${1}.","ctrlKey":"control+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/cs/commands.js b/lib/dijit/_editor/nls/cs/commands.js
index a2927caea..7b26dd96d 100644
--- a/lib/dijit/_editor/nls/cs/commands.js
+++ b/lib/dijit/_editor/nls/cs/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/cs/commands",({"bold":"Tučné","copy":"Kopírovat","cut":"Vyjmout","delete":"Odstranit","indent":"Odsadit","insertHorizontalRule":"Vodorovná čára","insertOrderedList":"Číslovaný seznam","insertUnorderedList":"Seznam s odrážkami","italic":"Kurzíva","justifyCenter":"Zarovnat na střed","justifyFull":"Do bloku","justifyLeft":"Zarovnat vlevo","justifyRight":"Zarovnat vpravo","outdent":"Předsadit","paste":"Vložit","redo":"Opakovat","removeFormat":"Odebrat formát","selectAll":"Vybrat vše","strikethrough":"Přeškrtnutí","subscript":"Dolní index","superscript":"Horní index","underline":"Podtržení","undo":"Zpět","unlink":"Odebrat odkaz","createLink":"Vytvořit odkaz","toggleDir":"Přepnout směr","insertImage":"Vložit obrázek","insertTable":"Vložit/upravit tabulku","toggleTableBorder":"Přepnout ohraničení tabulky","deleteTable":"Odstranit tabulku","tableProp":"Vlastnost tabulky","htmlToggle":"Zdroj HTML","foreColor":"Barva popředí","hiliteColor":"Barva pozadí","plainFormatBlock":"Styl odstavce","formatBlock":"Styl odstavce","fontSize":"Velikost písma","fontName":"Název písma","tabIndent":"Odsazení tabulátoru","fullScreen":"Přepnout celou obrazovku","viewSource":"Zobrazit zdroj HTML","print":"Tisk","newPage":"Nová stránka","systemShortcut":"Akce \"${0}\" je v prohlížeči dostupná pouze prostřednictvím klávesové zkratky. Použijte klávesovou zkratku ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/cs/commands",({"bold":"Tučné","copy":"Kopírovat","cut":"Vyjmout","delete":"Odstranit","indent":"Odsadit","insertHorizontalRule":"Vodorovná čára","insertOrderedList":"Číslovaný seznam","insertUnorderedList":"Seznam s odrážkami","italic":"Kurzíva","justifyCenter":"Zarovnat na střed","justifyFull":"Do bloku","justifyLeft":"Zarovnat vlevo","justifyRight":"Zarovnat vpravo","outdent":"Předsadit","paste":"Vložit","redo":"Opakovat","removeFormat":"Odebrat formát","selectAll":"Vybrat vše","strikethrough":"Přeškrtnutí","subscript":"Dolní index","superscript":"Horní index","underline":"Podtržení","undo":"Zpět","unlink":"Odebrat odkaz","createLink":"Vytvořit odkaz","toggleDir":"Přepnout směr","insertImage":"Vložit obrázek","insertTable":"Vložit/upravit tabulku","toggleTableBorder":"Přepnout ohraničení tabulky","deleteTable":"Odstranit tabulku","tableProp":"Vlastnost tabulky","htmlToggle":"Zdroj HTML","foreColor":"Barva popředí","hiliteColor":"Barva pozadí","plainFormatBlock":"Styl odstavce","formatBlock":"Styl odstavce","fontSize":"Velikost písma","fontName":"Název písma","tabIndent":"Odsazení tabulátoru","fullScreen":"Přepnout celou obrazovku","viewSource":"Zobrazit zdroj HTML","print":"Tisk","newPage":"Nová stránka","systemShortcut":"Akce \"${0}\" je v prohlížeči dostupná pouze prostřednictvím klávesové zkratky. Použijte klávesovou zkratku ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/da/commands.js b/lib/dijit/_editor/nls/da/commands.js
index a7b86591b..d193a9715 100644
--- a/lib/dijit/_editor/nls/da/commands.js
+++ b/lib/dijit/_editor/nls/da/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/da/commands",({"bold":"Fed","copy":"Kopiér","cut":"Klip","delete":"Slet","indent":"Indrykning","insertHorizontalRule":"Vandret linje","insertOrderedList":"Nummereret liste","insertUnorderedList":"Punktliste","italic":"Kursiv","justifyCenter":"Centreret","justifyFull":"Lige margener","justifyLeft":"Venstrejusteret","justifyRight":"Højrejusteret","outdent":"Udrykning","paste":"Sæt ind","redo":"Annullér Fortryd","removeFormat":"Fjern format","selectAll":"Markér alle","strikethrough":"Gennemstreget","subscript":"Sænket skrift","superscript":"Hævet skrift","underline":"Understreget","undo":"Fortryd","unlink":"Fjern link","createLink":"Opret link","toggleDir":"Skift retning","insertImage":"Indsæt billede","insertTable":"Indsæt/redigér tabel","toggleTableBorder":"Skift tabelramme","deleteTable":"Slet tabel","tableProp":"Tabelegenskab","htmlToggle":"HTML-kilde","foreColor":"Forgrundsfarve","hiliteColor":"Baggrundsfarve","plainFormatBlock":"Afsnitstypografi","formatBlock":"Afsnitstypografi","fontSize":"Skriftstørrelse","fontName":"Skriftnavn","tabIndent":"Indrykning med tabulator","fullScreen":"Aktivér/deaktivér fuldskærm","viewSource":"Vis HTML-kilde","print":"Udskriv","newPage":"Ny side","systemShortcut":"Funktionen \"${0}\" kan kun bruges i din browser med en tastaturgenvej. Brug ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/da/commands",({"bold":"Fed","copy":"Kopiér","cut":"Klip","delete":"Slet","indent":"Indrykning","insertHorizontalRule":"Vandret linje","insertOrderedList":"Nummereret liste","insertUnorderedList":"Punktliste","italic":"Kursiv","justifyCenter":"Centreret","justifyFull":"Lige margener","justifyLeft":"Venstrejusteret","justifyRight":"Højrejusteret","outdent":"Udrykning","paste":"Sæt ind","redo":"Annullér Fortryd","removeFormat":"Fjern format","selectAll":"Markér alle","strikethrough":"Gennemstreget","subscript":"Sænket skrift","superscript":"Hævet skrift","underline":"Understreget","undo":"Fortryd","unlink":"Fjern link","createLink":"Opret link","toggleDir":"Skift retning","insertImage":"Indsæt billede","insertTable":"Indsæt/redigér tabel","toggleTableBorder":"Skift tabelramme","deleteTable":"Slet tabel","tableProp":"Tabelegenskab","htmlToggle":"HTML-kilde","foreColor":"Forgrundsfarve","hiliteColor":"Baggrundsfarve","plainFormatBlock":"Afsnitstypografi","formatBlock":"Afsnitstypografi","fontSize":"Skriftstørrelse","fontName":"Skriftnavn","tabIndent":"Tabulatorindrykning","fullScreen":"Fuld skærm til/fra","viewSource":"Vis HTML-kilde","print":"Udskriv","newPage":"Ny side","systemShortcut":"Funktionen \"${0}\" kan kun bruges i din browser med en tastaturgenvej. Brug ${1}.","ctrlKey":"Ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/de/commands.js b/lib/dijit/_editor/nls/de/commands.js
index aff458b1c..e4eff7c66 100644
--- a/lib/dijit/_editor/nls/de/commands.js
+++ b/lib/dijit/_editor/nls/de/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/de/commands",({"bold":"Fett","copy":"Kopieren","cut":"Ausschneiden","delete":"Löschen","indent":"Einrücken","insertHorizontalRule":"Horizontaler Strich","insertOrderedList":"Nummerierung","insertUnorderedList":"Aufzählungszeichen","italic":"Kursiv","justifyCenter":"Zentriert","justifyFull":"Blocksatz","justifyLeft":"Linksbündig","justifyRight":"Rechtsbündig","outdent":"Ausrücken","paste":"Einfügen","redo":"Wiederherstellen","removeFormat":"Formatierung entfernen","selectAll":"Alles auswählen","strikethrough":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen","undo":"Rückgängig","unlink":"Link entfernen","createLink":"Link erstellen","toggleDir":"Wechselrichtung","insertImage":"Grafik einfügen","insertTable":"Tabelle einfügen/bearbeiten","toggleTableBorder":"Tabellenumrandung ein-/ausschalten","deleteTable":"Tabelle löschen","tableProp":"Tabelleneigenschaft","htmlToggle":"HTML-Quelltext","foreColor":"Vordergrundfarbe","hiliteColor":"Hintergrundfarbe","plainFormatBlock":"Absatzstil","formatBlock":"Absatzstil","fontSize":"Schriftgröße","fontName":"Schriftartname","tabIndent":"Tabulatoreinrückung","fullScreen":"Gesamtanzeige","viewSource":"HTML-Quelle","print":"Drucken","newPage":"Neue Seite","systemShortcut":"Die Aktion \"${0}\" ist nur über einen Direktaufruf in Ihrem Browser verfügbar. Verwenden Sie ${1}.","ctrlKey":"Strg+${0}"})); \ No newline at end of file
+define("dijit/_editor/nls/de/commands",({"bold":"Fett","copy":"Kopieren","cut":"Ausschneiden","delete":"Löschen","indent":"Einrücken","insertHorizontalRule":"Horizontaler Strich","insertOrderedList":"Nummerierung","insertUnorderedList":"Aufzählungszeichen","italic":"Kursiv","justifyCenter":"Zentriert","justifyFull":"Blocksatz","justifyLeft":"Linksbündig","justifyRight":"Rechtsbündig","outdent":"Ausrücken","paste":"Einfügen","redo":"Wiederholen","removeFormat":"Formatierung entfernen","selectAll":"Alles auswählen","strikethrough":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen","undo":"Rückgängig","unlink":"Link entfernen","createLink":"Link erstellen","toggleDir":"Richtung wechseln","insertImage":"Grafik einfügen","insertTable":"Tabelle einfügen/bearbeiten","toggleTableBorder":"Tabellenumrandung ein-/ausschalten","deleteTable":"Tabelle löschen","tableProp":"Tabelleneigenschaft","htmlToggle":"HTML-Quelltext","foreColor":"Vordergrundfarbe","hiliteColor":"Hintergrundfarbe","plainFormatBlock":"Absatzstil","formatBlock":"Absatzstil","fontSize":"Schriftgröße","fontName":"Schriftartname","tabIndent":"Registerkarteneinrückung","fullScreen":"Gesamtanzeige","viewSource":"HTML-Quelle","print":"Drucken","newPage":"Neue Seite","systemShortcut":"Die Aktion \"${0}\" ist im Browser nur über einen Tastaturkurzbefehl verfügbar. Verwenden Sie ${1}.","ctrlKey":"Strg+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/el/commands.js b/lib/dijit/_editor/nls/el/commands.js
index ea5403357..51ffaa440 100644
--- a/lib/dijit/_editor/nls/el/commands.js
+++ b/lib/dijit/_editor/nls/el/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/el/commands",({"bold":"Έντονα","copy":"Αντιγραφή","cut":"Αποκοπή","delete":"Διαγραφή","indent":"Εσοχή","insertHorizontalRule":"Οριζόντια γραμμή","insertOrderedList":"Αριθμημένη λίστα","insertUnorderedList":"Λίστα με κουκίδες","italic":"Πλάγια","justifyCenter":"Στοίχιση στο κέντρο","justifyFull":"Πλήρης στοίχιση","justifyLeft":"Στοίχιση αριστερά","justifyRight":"Στοίχιση δεξιά","outdent":"Μείωση περιθωρίου","paste":"Επικόλληση","redo":"Ακύρωση αναίρεσης","removeFormat":"Αφαίρεση μορφοποίησης","selectAll":"Επιλογή όλων","strikethrough":"Διαγράμμιση","subscript":"Δείκτης","superscript":"Εκθέτης","underline":"Υπογράμμιση","undo":"Αναίρεση","unlink":"Αφαίρεση σύνδεσης","createLink":"Δημιουργία σύνδεσης","toggleDir":"Εναλλαγή κατεύθυνσης","insertImage":"Εισαγωγή εικόνας","insertTable":"Εισαγωγή/Τροποποίηση πίνακα","toggleTableBorder":"Εναλλαγή εμφάνισης περιγράμματος πίνακα","deleteTable":"Διαγραφή πίνακα","tableProp":"Ιδιότητα πίνακα","htmlToggle":"Πρωτογενής κώδικας HTML","foreColor":"Χρώμα προσκηνίου","hiliteColor":"Χρώμα φόντου","plainFormatBlock":"Στυλ παραγράφου","formatBlock":"Στυλ παραγράφου","fontSize":"Μέγεθος γραμματοσειράς","fontName":"Όνομα γραμματοσειράς","tabIndent":"Εσοχή με το πλήκτρο Tab","fullScreen":"Εναλλαγή κατάστασης πλήρους οθόνης","viewSource":"Προβολή προέλευσης HTML","print":"Εκτύπωση","newPage":"Νέα σελίδα","systemShortcut":"Σε αυτό το πρόγραμμα πλοήγησης, η ενέργεια \"${0}\" είναι διαθέσιμη μόνο με τη χρήση μιας συντόμευσης πληκτρολογίου. Χρησιμοποιήστε τη συντόμευση ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/el/commands",({"bold":"Έντονα","copy":"Αντιγραφή","cut":"Αποκοπή","delete":"Διαγραφή","indent":"Εσοχή","insertHorizontalRule":"Οριζόντια γραμμή","insertOrderedList":"Αριθμημένη λίστα","insertUnorderedList":"Λίστα με κουκίδες","italic":"Πλάγια","justifyCenter":"Στοίχιση στο κέντρο","justifyFull":"Πλήρης στοίχιση","justifyLeft":"Στοίχιση αριστερά","justifyRight":"Στοίχιση δεξιά","outdent":"Μείωση περιθωρίου","paste":"Επικόλληση","redo":"Ακύρωση αναίρεσης","removeFormat":"Αφαίρεση μορφοποίησης","selectAll":"Επιλογή όλων","strikethrough":"Διαγράμμιση","subscript":"Δείκτης","superscript":"Εκθέτης","underline":"Υπογράμμιση","undo":"Αναίρεση","unlink":"Αφαίρεση σύνδεσης","createLink":"Δημιουργία σύνδεσης","toggleDir":"Εναλλαγή κατεύθυνσης","insertImage":"Εισαγωγή εικόνας","insertTable":"Εισαγωγή/Τροποποίηση πίνακα","toggleTableBorder":"Εναλλαγή εμφάνισης περιγράμματος πίνακα","deleteTable":"Διαγραφή πίνακα","tableProp":"Ιδιότητα πίνακα","htmlToggle":"Πρωτογενής κώδικας HTML","foreColor":"Χρώμα προσκηνίου","hiliteColor":"Χρώμα φόντου","plainFormatBlock":"Στυλ παραγράφου","formatBlock":"Στυλ παραγράφου","fontSize":"Μέγεθος γραμματοσειράς","fontName":"Όνομα γραμματοσειράς","tabIndent":"Εσοχή με το πλήκτρο Tab","fullScreen":"Εναλλαγή κατάστασης πλήρους οθόνης","viewSource":"Προβολή προέλευσης HTML","print":"Εκτύπωση","newPage":"Νέα σελίδα","systemShortcut":"Σε αυτό το πρόγραμμα πλοήγησης, η ενέργεια \"${0}\" είναι διαθέσιμη μόνο με τη χρήση μιας συντόμευσης πληκτρολογίου. Χρησιμοποιήστε τη συντόμευση ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/es/commands.js b/lib/dijit/_editor/nls/es/commands.js
index eae7c635d..b01975fd3 100644
--- a/lib/dijit/_editor/nls/es/commands.js
+++ b/lib/dijit/_editor/nls/es/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/es/commands",({"bold":"Negrita","copy":"Copiar","cut":"Cortar","delete":"Suprimir","indent":"Sangría","insertHorizontalRule":"Regla horizontal","insertOrderedList":"Lista numerada","insertUnorderedList":"Lista con viñetas","italic":"Cursiva","justifyCenter":"Alinear centro","justifyFull":"Justificar","justifyLeft":"Alinear izquierda","justifyRight":"Alinear derecha","outdent":"Anular sangría","paste":"Pegar","redo":"Rehacer","removeFormat":"Eliminar formato","selectAll":"Seleccionar todo","strikethrough":"Tachado","subscript":"Subíndice","superscript":"Superíndice","underline":"Subrayado","undo":"Deshacer","unlink":"Eliminar enlace","createLink":"Crear enlace","toggleDir":"Conmutar dirección","insertImage":"Insertar imagen","insertTable":"Insertar/Editar tabla","toggleTableBorder":"Conmutar borde de tabla","deleteTable":"Suprimir tabla","tableProp":"Propiedad de tabla","htmlToggle":"Fuente HTML","foreColor":"Color de primer plano","hiliteColor":"Color de segundo plano","plainFormatBlock":"Estilo de párrafo","formatBlock":"Estilo de párrafo","fontSize":"Tamaño de font","fontName":"Nombre de font","tabIndent":"Sangría de tabulador","fullScreen":"Conmutar pantalla completa","viewSource":"Ver fuente HTML","print":"Imprimir","newPage":"Nueva página","systemShortcut":"La acción \"${0}\" sólo está disponible en su navegador mediante un atajo de teclado. Utilice ${1}.","ctrlKey":"control+${0}"})); \ No newline at end of file
+define("dijit/_editor/nls/es/commands",({"bold":"Negrita","copy":"Copiar","cut":"Cortar","delete":"Suprimir","indent":"Sangría","insertHorizontalRule":"Regla horizontal","insertOrderedList":"Lista numerada","insertUnorderedList":"Lista con viñetas","italic":"Cursiva","justifyCenter":"Alinear centro","justifyFull":"Justificar","justifyLeft":"Alinear izquierda","justifyRight":"Alinear derecha","outdent":"Anular sangría","paste":"Pegar","redo":"Rehacer","removeFormat":"Eliminar formato","selectAll":"Seleccionar todo","strikethrough":"Tachado","subscript":"Subíndice","superscript":"Superíndice","underline":"Subrayado","undo":"Deshacer","unlink":"Eliminar enlace","createLink":"Crear enlace","toggleDir":"Conmutar dirección","insertImage":"Insertar imagen","insertTable":"Insertar/Editar tabla","toggleTableBorder":"Conmutar borde de tabla","deleteTable":"Suprimir tabla","tableProp":"Propiedad de tabla","htmlToggle":"Fuente HTML","foreColor":"Color de primer plano","hiliteColor":"Color de segundo plano","plainFormatBlock":"Estilo de párrafo","formatBlock":"Estilo de párrafo","fontSize":"Tamaño de font","fontName":"Nombre de font","tabIndent":"Sangría de tabulador","fullScreen":"Conmutar pantalla completa","viewSource":"Ver fuente HTML","print":"Imprimir","newPage":"Nueva página","systemShortcut":"La acción \"${0}\" sólo está disponible en su navegador mediante un atajo de teclado. Utilice ${1}.","ctrlKey":"control+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/fi/FontChoice.js b/lib/dijit/_editor/nls/fi/FontChoice.js
index c2c1e7cd3..700b9e8a9 100644
--- a/lib/dijit/_editor/nls/fi/FontChoice.js
+++ b/lib/dijit/_editor/nls/fi/FontChoice.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/fi/FontChoice",({fontSize:"Koko",fontName:"Fontti",formatBlock:"Muoto",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"cursive",fantasy:"fantasy",noFormat:"Ei mitään",p:"Kappale",h1:"Otsikko",h2:"Alatason otsikko",h3:"Alimman tason otsikko",pre:"Esimuotoiltu",1:"xx-small",2:"x-small",3:"small",4:"medium",5:"large",6:"x-large",7:"xx-large"})); \ No newline at end of file
+define("dijit/_editor/nls/fi/FontChoice",({fontSize:"Koko",fontName:"Fontti",formatBlock:"Muotoile",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"cursive",fantasy:"fantasy",noFormat:"Ei mitään",p:"Kappale",h1:"Otsikko",h2:"Alatason otsikko",h3:"Alimman tason otsikko",pre:"Esimuotoiltu",1:"xx-small",2:"x-small",3:"small",4:"medium",5:"large",6:"x-large",7:"xx-large"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/fi/commands.js b/lib/dijit/_editor/nls/fi/commands.js
index 88a6f1886..3d77fc787 100644
--- a/lib/dijit/_editor/nls/fi/commands.js
+++ b/lib/dijit/_editor/nls/fi/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/fi/commands",({"bold":"Lihavointi","copy":"Kopioi","cut":"Leikkaa","delete":"Poista","indent":"Sisennä","insertHorizontalRule":"Vaakasuuntainen viiva","insertOrderedList":"Numeroitu luettelo","insertUnorderedList":"Numeroimaton luettelo","italic":"Kursivointi","justifyCenter":"Tasaus keskelle","justifyFull":"Tasaus","justifyLeft":"Tasaus vasemmalle","justifyRight":"Tasaus oikealle","outdent":"Ulonna","paste":"Liitä","redo":"Tee uudelleen","removeFormat":"Poista muotoilu","selectAll":"Valitse kaikki","strikethrough":"Yliviivaus","subscript":"Alaindeksi","superscript":"Yläindeksi","underline":"Alleviivaus","undo":"Kumoa","unlink":"Poista linkki","createLink":"Luo linkki","toggleDir":"Vaihda suuntaa","insertImage":"Lisää kuva","insertTable":"Lisää taulukko/muokkaa taulukkoa","toggleTableBorder":"Ota taulukon kehys käyttöön/poista kehys käytöstä","deleteTable":"Poista taulukko","tableProp":"Taulukon ominaisuudet","htmlToggle":"HTML-lähde","foreColor":"Edustaväri","hiliteColor":"Taustaväri","plainFormatBlock":"Kappaletyyli","formatBlock":"Kappaletyyli","fontSize":"Fontin koko","fontName":"Fontin nimi","tabIndent":"Sarkainsisennys","fullScreen":"Vaihda koko näyttö","viewSource":"Näytä HTML-lähde","print":"Tulosta","newPage":"Uusi sivu","systemShortcut":"Toiminto \"${0}\" on käytettävissä selaimessa vain näppäimistön pikatoiminnolla. Käytä seuraavaa: ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/fi/commands",({"bold":"Lihavointi","copy":"Kopioi","cut":"Leikkaa","delete":"Poista","indent":"Sisennä","insertHorizontalRule":"Vaakasuuntainen viiva","insertOrderedList":"Numeroitu luettelo","insertUnorderedList":"Numeroimaton luettelo","italic":"Kursivointi","justifyCenter":"Tasaus keskelle","justifyFull":"Tasaus","justifyLeft":"Tasaus vasemmalle","justifyRight":"Tasaus oikealle","outdent":"Ulonna","paste":"Liitä","redo":"Tee uudelleen","removeFormat":"Poista muotoilu","selectAll":"Valitse kaikki","strikethrough":"Yliviivaus","subscript":"Alennettu","superscript":"Korotettu","underline":"Alleviivaus","undo":"Kumoa","unlink":"Poista linkki","createLink":"Luo linkki","toggleDir":"Vaihda suuntaa","insertImage":"Lisää kuva","insertTable":"Lisää taulukko/muokkaa taulukkoa","toggleTableBorder":"Ota taulukon kehys käyttöön/poista kehys käytöstä","deleteTable":"Poista taulukko","tableProp":"Taulukon ominaisuudet","htmlToggle":"HTML-lähde","foreColor":"Edustaväri","hiliteColor":"Taustaväri","plainFormatBlock":"Kappaletyyli","formatBlock":"Kappaletyyli","fontSize":"Fonttikoko","fontName":"Fontin nimi","tabIndent":"Sarkainsisennys","fullScreen":"Vaihda koko näyttö","viewSource":"Näytä HTML-lähde","print":"Tulosta","newPage":"Uusi sivu","systemShortcut":"Toiminto \"${0}\" on käytettävissä selaimessa vain näppäimistön pikatoiminnolla. Käytä seuraavaa: ${1}.","ctrlKey":"Ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/fr/commands.js b/lib/dijit/_editor/nls/fr/commands.js
index b1b471b54..cb25f3633 100644
--- a/lib/dijit/_editor/nls/fr/commands.js
+++ b/lib/dijit/_editor/nls/fr/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/fr/commands",({"bold":"Gras","copy":"Copier","cut":"Couper","delete":"Supprimer","indent":"Retrait","insertHorizontalRule":"Règle horizontale","insertOrderedList":"Liste numérotée","insertUnorderedList":"Liste à puces","italic":"Italique","justifyCenter":"Aligner au centre","justifyFull":"Justifier","justifyLeft":"Aligner à gauche","justifyRight":"Aligner à droite","outdent":"Retrait négatif","paste":"Coller","redo":"Rétablir","removeFormat":"Supprimer la mise en forme","selectAll":"Sélectionner tout","strikethrough":"Barrer","subscript":"Indice","superscript":"Exposant","underline":"Souligner","undo":"Annuler","unlink":"Supprimer le lien","createLink":"Créer un lien","toggleDir":"Changer de sens","insertImage":"Insérer une image","insertTable":"Insérer/Modifier un tableau","toggleTableBorder":"Afficher/Masquer la bordure du tableau","deleteTable":"Supprimer le tableau","tableProp":"Propriété du tableau","htmlToggle":"Source HTML","foreColor":"Couleur d'avant-plan","hiliteColor":"Couleur d'arrière-plan","plainFormatBlock":"Style de paragraphe","formatBlock":"Style de paragraphe","fontSize":"Taille de police","fontName":"Nom de police","tabIndent":"Retrait de tabulation","fullScreen":"Basculer en plein écran","viewSource":"Afficher la source HTML","print":"Imprimer","newPage":"Nouvelle page","systemShortcut":"L'action \"${0}\" est disponible dans votre navigateur uniquement, par le biais d'un raccourci-clavier. Utilisez ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/fr/commands",({"bold":"Gras","copy":"Copier","cut":"Couper","delete":"Supprimer","indent":"Retrait","insertHorizontalRule":"Règle horizontale","insertOrderedList":"Liste numérotée","insertUnorderedList":"Liste à puces","italic":"Italique","justifyCenter":"Aligner au centre","justifyFull":"Justifier","justifyLeft":"Aligner à gauche","justifyRight":"Aligner à droite","outdent":"Retrait négatif","paste":"Coller","redo":"Rétablir","removeFormat":"Supprimer la mise en forme","selectAll":"Sélectionner tout","strikethrough":"Barrer","subscript":"Indice","superscript":"Exposant","underline":"Souligner","undo":"Annuler","unlink":"Supprimer le lien","createLink":"Créer un lien","toggleDir":"Changer de sens","insertImage":"Insérer une image","insertTable":"Insérer/Modifier un tableau","toggleTableBorder":"Afficher/Masquer la bordure du tableau","deleteTable":"Supprimer le tableau","tableProp":"Propriété du tableau","htmlToggle":"Source HTML","foreColor":"Couleur d'avant-plan","hiliteColor":"Couleur d'arrière-plan","plainFormatBlock":"Style de paragraphe","formatBlock":"Style de paragraphe","fontSize":"Taille de police","fontName":"Nom de police","tabIndent":"Retrait de tabulation","fullScreen":"Basculer en plein écran","viewSource":"Afficher la source HTML","print":"Imprimer","newPage":"Nouvelle page","systemShortcut":"L'action \"${0}\" est disponible dans votre navigateur uniquement, par le biais d'un raccourci-clavier. Utilisez ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/hu/commands.js b/lib/dijit/_editor/nls/hu/commands.js
index 39d06ddb9..b10b15512 100644
--- a/lib/dijit/_editor/nls/hu/commands.js
+++ b/lib/dijit/_editor/nls/hu/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/hu/commands",({"bold":"Félkövér","copy":"Másolás","cut":"Kivágás","delete":"Törlés","indent":"Behúzás","insertHorizontalRule":"Vízszintes vonalzó","insertOrderedList":"Számozott lista","insertUnorderedList":"Felsorolásjeles lista","italic":"Dőlt","justifyCenter":"Középre igazítás","justifyFull":"Sorkizárás","justifyLeft":"Balra igazítás","justifyRight":"Jobbra igazítás","outdent":"Negatív behúzás","paste":"Beillesztés","redo":"Újra","removeFormat":"Formázás eltávolítása","selectAll":"Összes kijelölése","strikethrough":"Áthúzott","subscript":"Alsó index","superscript":"Felső index","underline":"Aláhúzott","undo":"Visszavonás","unlink":"Hivatkozás eltávolítása","createLink":"Hivatkozás létrehozása","toggleDir":"Irány váltókapcsoló","insertImage":"Kép beszúrása","insertTable":"Táblázat beszúrása/szerkesztése","toggleTableBorder":"Táblázatszegély ki-/bekapcsolása","deleteTable":"Táblázat törlése","tableProp":"Táblázat tulajdonságai","htmlToggle":"HTML forrás","foreColor":"Előtérszín","hiliteColor":"Háttérszín","plainFormatBlock":"Bekezdés stílusa","formatBlock":"Bekezdés stílusa","fontSize":"Betűméret","fontName":"Betűtípus","tabIndent":"Tab behúzás","fullScreen":"Váltás teljes képernyőre","viewSource":"HTML forrás megjelenítése","print":"Nyomtatás","newPage":"Új oldal","systemShortcut":"A(z) \"${0}\" művelet a böngészőben csak billentyűparancs használatával érhető el. Használja a következőt: ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/hu/commands",({"bold":"Félkövér","copy":"Másolás","cut":"Kivágás","delete":"Törlés","indent":"Behúzás","insertHorizontalRule":"Vízszintes vonalzó","insertOrderedList":"Számozott lista","insertUnorderedList":"Felsorolásjeles lista","italic":"Dőlt","justifyCenter":"Középre igazítás","justifyFull":"Sorkizárás","justifyLeft":"Balra igazítás","justifyRight":"Jobbra igazítás","outdent":"Negatív behúzás","paste":"Beillesztés","redo":"Újra","removeFormat":"Formázás eltávolítása","selectAll":"Összes kijelölése","strikethrough":"Áthúzott","subscript":"Alsó index","superscript":"Felső index","underline":"Aláhúzott","undo":"Visszavonás","unlink":"Hivatkozás eltávolítása","createLink":"Hivatkozás létrehozása","toggleDir":"Irány váltókapcsoló","insertImage":"Kép beszúrása","insertTable":"Táblázat beszúrása/szerkesztése","toggleTableBorder":"Táblázatszegély ki-/bekapcsolása","deleteTable":"Táblázat törlése","tableProp":"Táblázat tulajdonságai","htmlToggle":"HTML forrás","foreColor":"Előtérszín","hiliteColor":"Háttérszín","plainFormatBlock":"Bekezdés stílusa","formatBlock":"Bekezdés stílusa","fontSize":"Betűméret","fontName":"Betűtípus","tabIndent":"Tab behúzás","fullScreen":"Váltás teljes képernyőre","viewSource":"HTML forrás megjelenítése","print":"Nyomtatás","newPage":"Új oldal","systemShortcut":"A(z) \"${0}\" művelet a böngészőben csak billentyűparancs használatával érhető el. Használja a következőt: ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/it/LinkDialog.js b/lib/dijit/_editor/nls/it/LinkDialog.js
index 8e6eb0002..5682ac9f9 100644
--- a/lib/dijit/_editor/nls/it/LinkDialog.js
+++ b/lib/dijit/_editor/nls/it/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/it/LinkDialog",({createLinkTitle:"Proprietà collegamento",insertImageTitle:"Proprietà immagine",url:"URL:",text:"Descrizione:",target:"Destinazione:",set:"Imposta",currentWindow:"Finestra corrente",parentWindow:"Finestra parent",topWindow:"Finestra in primo piano",newWindow:"Nuova finestra"})); \ No newline at end of file
+define("dijit/_editor/nls/it/LinkDialog",({createLinkTitle:"Proprietà collegamento",insertImageTitle:"Proprietà immagine",url:"URL:",text:"Descrizione:",target:"Destinazione:",set:"Imposta",currentWindow:"Finestra corrente",parentWindow:"Finestra padre",topWindow:"Finestra superiore",newWindow:"Nuova finestra"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/it/commands.js b/lib/dijit/_editor/nls/it/commands.js
index f413791b7..82ae3ae5a 100644
--- a/lib/dijit/_editor/nls/it/commands.js
+++ b/lib/dijit/_editor/nls/it/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/it/commands",({"bold":"Grassetto","copy":"Copia","cut":"Taglia","delete":"Elimina","indent":"Rientra","insertHorizontalRule":"Righello orizzontale","insertOrderedList":"Elenco numerato","insertUnorderedList":"Elenco puntato","italic":"Corsivo","justifyCenter":"Allinea al centro","justifyFull":"Giustifica","justifyLeft":"Allinea a sinistra","justifyRight":"Allinea a destra","outdent":"Rimuovi rientro","paste":"Incolla","redo":"Ripristina","removeFormat":"Rimuovi formato","selectAll":"Seleziona tutto","strikethrough":"Barrato","subscript":"Pedice","superscript":"Apice","underline":"Sottolineato","undo":"Annulla","unlink":"Rimuovi collegamento","createLink":"Crea collegamento","toggleDir":"Inverti direzione","insertImage":"Inserisci immagine","insertTable":"Inserisci/Modifica tabella","toggleTableBorder":"Mostra/Nascondi margine tabella","deleteTable":"Elimina tabella","tableProp":"Proprietà tabella","htmlToggle":"Origine HTML","foreColor":"Colore primo piano","hiliteColor":"Colore sfondo","plainFormatBlock":"Stile paragrafo","formatBlock":"Stile paragrafo","fontSize":"Dimensione carattere","fontName":"Nome carattere","tabIndent":"Rientranza tabulazione","fullScreen":"Attiva/Disattiva schermo intero","viewSource":"Visualizza origine HTML","print":"Stampa","newPage":"Nuova pagina","systemShortcut":"Azione \"${0}\" disponibile sul proprio browser solo mediante i tasti di scelta rapida della tastiera. Utilizzare ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/it/commands",({"bold":"Grassetto","copy":"Copia","cut":"Taglia","delete":"Annulla","indent":"Rientra","insertHorizontalRule":"Righello orizzontale","insertOrderedList":"Elenco numerato","insertUnorderedList":"Elenco a punti","italic":"Corsivo","justifyCenter":"Allinea al centro","justifyFull":"Giustifica","justifyLeft":"Allinea a sinistra","justifyRight":"Allinea a destra","outdent":"Annulla rientro","paste":"Incolla","redo":"Ripeti","removeFormat":"Rimuovi formato","selectAll":"Seleziona tutto","strikethrough":"Barrato","subscript":"Pedice","superscript":"Apice","underline":"Sottolinea","undo":"Annulla","unlink":"Rimuovi collegamento","createLink":"Crea collegamento","toggleDir":"Attiva/Disattiva direzione","insertImage":"Inserisci immagine","insertTable":"Inserisci/Modifica tabella","toggleTableBorder":"Attiva/Disattiva bordo tabella","deleteTable":"Elimina tabella","tableProp":"Proprietà tabella","htmlToggle":"Origine HTML","foreColor":"Colore in primo piano","hiliteColor":"Colore di sfondo","plainFormatBlock":"Stile paragrafo","formatBlock":"Stile paragrafo","fontSize":"Dimensione tipo di carattere","fontName":"Nome tipo di carattere","tabIndent":"Rientro tabulazione","fullScreen":"Attiva/Disattiva schermo intero","viewSource":"Visualizza origine HTML","print":"Stampa","newPage":"Nuova pagina","systemShortcut":"Azione \"${0}\" disponibile nel browser solo utilizzando una scelta rapida da tastiera. Utilizzare ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/ja/LinkDialog.js b/lib/dijit/_editor/nls/ja/LinkDialog.js
index 408e45ed6..d3d5e53cf 100644
--- a/lib/dijit/_editor/nls/ja/LinkDialog.js
+++ b/lib/dijit/_editor/nls/ja/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/ja/LinkDialog",({createLinkTitle:"リンク・プロパティー",insertImageTitle:"イメージ・プロパティー",url:"URL:",text:"説明:",target:"ターゲット:",set:"設定",currentWindow:"現行ウィンドウ",parentWindow:"親ウィンドウ",topWindow:"最上位ウィンドウ",newWindow:"新規ウィンドウ"})); \ No newline at end of file
+define("dijit/_editor/nls/ja/LinkDialog",({createLinkTitle:"リンク・プロパティー",insertImageTitle:"イメージ・プロパティー",url:"URL:",text:"説明:",target:"ターゲット: ",set:"設定",currentWindow:"現在のウィンドウ",parentWindow:"親ウィンドウ",topWindow:"最上位ウィンドウ",newWindow:"新規ウィンドウ"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/ja/commands.js b/lib/dijit/_editor/nls/ja/commands.js
index 56026d1e3..5cc5e5796 100644
--- a/lib/dijit/_editor/nls/ja/commands.js
+++ b/lib/dijit/_editor/nls/ja/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/ja/commands",({"bold":"太字","copy":"コピー","cut":"切り取り","delete":"削除","indent":"インデント","insertHorizontalRule":"水平罫線","insertOrderedList":"番号付きリスト","insertUnorderedList":"黒丸付きリスト","italic":"イタリック","justifyCenter":"中央揃え","justifyFull":"両端揃え","justifyLeft":"左揃え","justifyRight":"右揃え","outdent":"アウトデント","paste":"貼り付け","redo":"やり直し","removeFormat":"書式のクリア","selectAll":"すべて選択","strikethrough":"取り消し線","subscript":"下付き文字","superscript":"上付き文字","underline":"下線","undo":"元に戻す","unlink":"リンクの削除","createLink":"リンクの作成","toggleDir":"方向の切り替え","insertImage":"イメージの挿入","insertTable":"テーブルの挿入/編集","toggleTableBorder":"テーブル・ボーダーの切り替え","deleteTable":"テーブルの削除","tableProp":"テーブル・プロパティー","htmlToggle":"HTML ソース","foreColor":"前景色","hiliteColor":"マーカー","plainFormatBlock":"段落スタイル","formatBlock":"段落スタイル","fontSize":"フォント・サイズ","fontName":"フォント名","tabIndent":"タブ・インデント","fullScreen":"全画面表示に切り替え","viewSource":"HTML ソースの表示","print":"印刷","newPage":"新規ページ","systemShortcut":"\"${0}\" アクションを使用できるのは、ブラウザーでキーボード・ショートカットを使用する場合のみです。${1} を使用してください。","ctrlKey":"Ctrl+${0}"})); \ No newline at end of file
+define("dijit/_editor/nls/ja/commands",({"bold":"太字","copy":"コピー","cut":"切り取り","delete":"削除","indent":"インデント","insertHorizontalRule":"水平罫線","insertOrderedList":"番号付きリスト","insertUnorderedList":"黒丸付きリスト","italic":"イタリック","justifyCenter":"中央揃え","justifyFull":"両端揃え","justifyLeft":"左揃え","justifyRight":"右揃え","outdent":"アウトデント","paste":"貼り付け","redo":"やり直し","removeFormat":"形式の削除","selectAll":"すべて選択","strikethrough":"取り消し線","subscript":"下付き文字","superscript":"上付き文字","underline":"下線","undo":"元に戻す","unlink":"リンクの削除","createLink":"リンクの作成","toggleDir":"方向の切り替え","insertImage":"イメージの挿入","insertTable":"テーブルの挿入/編集","toggleTableBorder":"テーブルボーダーの切り替え","deleteTable":"テーブルの削除","tableProp":"テーブルプロパティ","htmlToggle":"HTML ソース","foreColor":"前景色","hiliteColor":"背景色","plainFormatBlock":"段落スタイル","formatBlock":"段落スタイル","fontSize":"フォントサイズ","fontName":"フォント名","tabIndent":"タブインデント","fullScreen":"全画面表示に切り替え","viewSource":"HTML ソースの表示","print":"印刷","newPage":"新しいページ","systemShortcut":"\"${0}\" アクションを使用できるのは、ブラウザーでキーボードショートカットを使用する場合のみです。 ${1} を使用してください。","ctrlKey":"Ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/kk/FontChoice.js b/lib/dijit/_editor/nls/kk/FontChoice.js
index 1569c30b2..ee4db4392 100644
--- a/lib/dijit/_editor/nls/kk/FontChoice.js
+++ b/lib/dijit/_editor/nls/kk/FontChoice.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/kk/FontChoice",({fontSize:"Өлшемі",fontName:"Қаріп",formatBlock:"Пішім",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"көлбеу",fantasy:"қиял-ғажайып",noFormat:"Ешбір",p:"Еже",h1:"Үстіңгі деректеме",h2:"Ішкі тақырып",h3:"Ішкі-ішкі тақырып",pre:"Алдын ала пішімделген",1:"xx-кіші",2:"x-кіші",3:"кіші",4:"орташа",5:"үлкен",6:"x-үлкен",7:"xx-үлкен"})); \ No newline at end of file
+define("dijit/_editor/nls/kk/FontChoice",({fontSize:"Өлшемі",fontName:"Қаріп",formatBlock:"Пішім",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"көлбеу",fantasy:"fantasy",noFormat:"Ешбір",p:"Еже",h1:"Тақырып",h2:"Ішкі тақырып",h3:"Ішкі-ішкі тақырып",pre:"Алдын ала пішімделген",1:"xx-кіші",2:"x-кіші",3:"кіші",4:"орташа",5:"үлкен",6:"x-үлкен",7:"xx-үлкен"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/kk/LinkDialog.js b/lib/dijit/_editor/nls/kk/LinkDialog.js
index b186e824a..0967b8094 100644
--- a/lib/dijit/_editor/nls/kk/LinkDialog.js
+++ b/lib/dijit/_editor/nls/kk/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/kk/LinkDialog",({createLinkTitle:"Сілтеме сипаттары",insertImageTitle:"Сурет сипаттары",url:"URL мекенжайы:",text:"Сипаттама:",target:"Мақсат:",set:"Орнату",currentWindow:"Ағымдағы терезе",parentWindow:"Басты терезе",topWindow:"Ең жоғарғы терезе",newWindow:"Жаңа терезе"})); \ No newline at end of file
+define("dijit/_editor/nls/kk/LinkDialog",({createLinkTitle:"Сілтеме сипаттары",insertImageTitle:"Сурет сипаттары",url:"URL:",text:"Сипаттама:",target:"Мақсат:",set:"Орнату",currentWindow:"Ағымдағы терезе",parentWindow:"Басты терезе",topWindow:"Ең жоғарғы терезе",newWindow:"Жаңа терезе"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/kk/commands.js b/lib/dijit/_editor/nls/kk/commands.js
index 15d253122..32a22f964 100644
--- a/lib/dijit/_editor/nls/kk/commands.js
+++ b/lib/dijit/_editor/nls/kk/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/kk/commands",({"bold":"Қалың","copy":"Көшіру","cut":"Қиып алу","delete":"Жою","indent":"Шегіндіру","insertHorizontalRule":"Көлденең сызғыш","insertOrderedList":"Нөмірленген тізім","insertUnorderedList":"Таңбалауыш тізім","italic":"Көлбеу","justifyCenter":"Ортасы бойынша туралау","justifyFull":"Туралау","justifyLeft":"Сол жақ бойынша туралау","justifyRight":"Оң жақ бойынша туралау","outdent":"Шығыңқы","paste":"Қою","redo":"Қайтару","removeFormat":"Пішімді алып тастау","selectAll":"Барлығын таңдау","strikethrough":"Сызылған","subscript":"Жоласты","superscript":"Жолүсті","underline":"Асты сызылған","undo":"Болдырмау ","unlink":"Сілтемені жою","createLink":"Сілтеме жасау","toggleDir":"Бағытты қосу","insertImage":"Сурет кірістіру","insertTable":"Кестені кірістіру/өңдеу","toggleTableBorder":"Кесте жиегін қосу","deleteTable":"Кестені жою","tableProp":"Кесте сипаты","htmlToggle":"HTML көзі","foreColor":"Алды түсі","hiliteColor":"Өң түсі","plainFormatBlock":"Еже мәнері","formatBlock":"Еже мәнері","fontSize":"Қаріп өлшемі","fontName":"Қаріп атауы","tabIndent":"Қойынды шегінісі","fullScreen":"Толық экранды қосу","viewSource":"HTML көзін қарау","print":"Басып шығару","newPage":"Жаңа бет","systemShortcut":"\"${0}\" әрекеті шолғышта тек пернелер тіркесімі арқылы қол жетімді. ${1} пайдаланыңыз."})); \ No newline at end of file
+define("dijit/_editor/nls/kk/commands",({"bold":"Қалың","copy":"Көшіру","cut":"Қиып алу","delete":"Жою","indent":"Шегіндіру","insertHorizontalRule":"Көлденең сызғыш","insertOrderedList":"Нөмірленген тізім","insertUnorderedList":"Таңбалауыш тізім","italic":"Көлбеу","justifyCenter":"Ортасы бойынша туралау","justifyFull":"Туралау","justifyLeft":"Сол жақ бойынша туралау","justifyRight":"Оң жақ бойынша туралау","outdent":"Солға ығысу","paste":"Қою","redo":"Қайтару","removeFormat":"Пішімді алып тастау","selectAll":"Барлығын таңдау","strikethrough":"Сызылған","subscript":"Жоласты","superscript":"Жолүсті","underline":"Асты сызылған","undo":"Болдырмау","unlink":"Сілтемені алып тастау","createLink":"Сілтеме жасау","toggleDir":"Бағытты қосу","insertImage":"Суретті кірістіру","insertTable":"Кестені кірістіру/өңдеу","toggleTableBorder":"Кесте жиегін қосу","deleteTable":"Кестені жою","tableProp":"Кесте сипаты","htmlToggle":"HTML көзі","foreColor":"Алды түсі","hiliteColor":"Өң түсі","plainFormatBlock":"Еже мәнері","formatBlock":"Еже мәнері","fontSize":"Қаріп өлшемі","fontName":"Қаріп атауы","tabIndent":"Қойынды шегінісі","fullScreen":"Толық экранды қосу","viewSource":"HTML көзін қарау","print":"Басып шығару","newPage":"Жаңа бет","systemShortcut":"\"${0}\" әрекеті шолғышта тек пернелер тіркесімі арқылы қол жетімді. ${1} пайдаланыңыз.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/ko/LinkDialog.js b/lib/dijit/_editor/nls/ko/LinkDialog.js
index a8b7c7c9e..a5b4baea3 100644
--- a/lib/dijit/_editor/nls/ko/LinkDialog.js
+++ b/lib/dijit/_editor/nls/ko/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/ko/LinkDialog",({createLinkTitle:"링크 등록 정보",insertImageTitle:"이미지 등록 정보",url:"URL:",text:"설명:",target:"대상",set:"설정",currentWindow:"현재 창",parentWindow:"상위 창",topWindow:"최상위 창",newWindow:"새 창"})); \ No newline at end of file
+define("dijit/_editor/nls/ko/LinkDialog",({createLinkTitle:"링크 특성",insertImageTitle:"이미지 특성",url:"URL:",text:"설명:",target:"대상",set:"설정",currentWindow:"현재 창",parentWindow:"상위 창",topWindow:"최상위 창",newWindow:"새 창"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/ko/commands.js b/lib/dijit/_editor/nls/ko/commands.js
index 6ad5e7137..ff62c8d1a 100644
--- a/lib/dijit/_editor/nls/ko/commands.js
+++ b/lib/dijit/_editor/nls/ko/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/ko/commands",({"bold":"굵게","copy":"복사","cut":"잘라내기","delete":"삭제","indent":"들여쓰기","insertHorizontalRule":"수평 자","insertOrderedList":"번호 목록","insertUnorderedList":"글머리표 목록","italic":"기울임꼴","justifyCenter":"가운데 맞춤","justifyFull":"양쪽 맞춤","justifyLeft":"왼쪽 맞춤","justifyRight":"오른쪽 맞춤","outdent":"내어쓰기","paste":"붙여넣기","redo":"다시 실행","removeFormat":"형식 제거","selectAll":"모두 선택","strikethrough":"취소선","subscript":"아래첨자","superscript":"위첨자","underline":"밑줄","undo":"실행 취소","unlink":"링크 제거","createLink":"링크 작성","toggleDir":"방향 토글","insertImage":"이미지 삽입","insertTable":"테이블 삽입/편집","toggleTableBorder":"테이블 외곽선 토글","deleteTable":"테이블 삭제","tableProp":"테이블 특성","htmlToggle":"HTML 소스","foreColor":"전경색","hiliteColor":"배경색","plainFormatBlock":"단락 양식","formatBlock":"단락 양식","fontSize":"글꼴 크기","fontName":"글꼴 이름","tabIndent":"탭 들여쓰기","fullScreen":"전체 화면 토글","viewSource":"HTML 소스 보기","print":"인쇄","newPage":"새 페이지","systemShortcut":"\"${0}\" 조치는 브라우저에서 키보드 단축키를 통해서만 사용 가능합니다. ${1}을(를) 사용하십시오."})); \ No newline at end of file
+define("dijit/_editor/nls/ko/commands",({"bold":"굵게","copy":"복사","cut":"잘라내기","delete":"삭제","indent":"들여쓰기","insertHorizontalRule":"가로 줄","insertOrderedList":"번호 목록","insertUnorderedList":"글머리표 목록","italic":"기울임꼴","justifyCenter":"가운데 맞춤","justifyFull":"양쪽 맞춤","justifyLeft":"왼쪽 맞춤","justifyRight":"오른쪽 맞춤","outdent":"내어쓰기","paste":"붙여넣기","redo":"다시 실행","removeFormat":"형식 제거","selectAll":"모두 선택","strikethrough":"취소선","subscript":"아래첨자","superscript":"위첨자","underline":"밑줄","undo":"실행 취소","unlink":"링크 제거","createLink":"링크 작성","toggleDir":"방향 토글","insertImage":"이미지 삽입","insertTable":"테이블 삽입/편집","toggleTableBorder":"테이블 외곽선 토글","deleteTable":"테이블 삭제","tableProp":"테이블 특성","htmlToggle":"HTML 소스","foreColor":"전경색","hiliteColor":"배경색","plainFormatBlock":"단락 양식","formatBlock":"단락 양식","fontSize":"글꼴 크기","fontName":"글꼴 이름","tabIndent":"탭 들여쓰기","fullScreen":"전체 화면 토글","viewSource":"HTML 소스 보기","print":"인쇄","newPage":"새 페이지","systemShortcut":"\"${0}\" 조치는 브라우저에서 키보드 단축키를 통해서만 사용 가능합니다. ${1}을(를) 사용하십시오.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/nl/commands.js b/lib/dijit/_editor/nls/nl/commands.js
index 30564deba..2f368b221 100644
--- a/lib/dijit/_editor/nls/nl/commands.js
+++ b/lib/dijit/_editor/nls/nl/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/nl/commands",({"bold":"Vet","copy":"Kopiëren","cut":"Knippen","delete":"Wissen","indent":"Inspringen","insertHorizontalRule":"Horizontale liniaal","insertOrderedList":"Genummerde lijst","insertUnorderedList":"Lijst met opsommingstekens","italic":"Cursief","justifyCenter":"Centreren","justifyFull":"Uitvullen","justifyLeft":"Links uitlijnen","justifyRight":"Rechts uitlijnen","outdent":"Uitspringen","paste":"Plakken","redo":"Opnieuw","removeFormat":"Opmaak verwijderen","selectAll":"Alles selecteren","strikethrough":"Doorhalen","subscript":"Subscript","superscript":"Superscript","underline":"Onderstrepen","undo":"Ongedaan maken","unlink":"Link verwijderen","createLink":"Link maken","toggleDir":"Schrijfrichting wijzigen","insertImage":"Afbeelding invoegen","insertTable":"Tabel invoegen/bewerken","toggleTableBorder":"Tabelkader wijzigen","deleteTable":"Tabel wissen","tableProp":"Tabeleigenschap","htmlToggle":"HTML-bron","foreColor":"Voorgrondkleur","hiliteColor":"Achtergrondkleur","plainFormatBlock":"Alineastijl","formatBlock":"Alineastijl","fontSize":"Lettergrootte","fontName":"Lettertype","tabIndent":"Inspringen","fullScreen":"Volledig scherm in-/uitschakelen","viewSource":"HTML-bron bekijken","print":"Afdrukken","newPage":"Nieuwe pagina","systemShortcut":"De actie \"${0}\" is alleen beschikbaar in uw browser via een sneltoetscombinatie. Gebruik ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/nl/commands",({"bold":"Vet","copy":"Kopiëren","cut":"Knippen","delete":"Wissen","indent":"Inspringen","insertHorizontalRule":"Horizontale liniaal","insertOrderedList":"Genummerde lijst","insertUnorderedList":"Lijst met opsommingstekens","italic":"Cursief","justifyCenter":"Centreren","justifyFull":"Uitvullen","justifyLeft":"Links uitlijnen","justifyRight":"Rechts uitlijnen","outdent":"Uitspringen","paste":"Plakken","redo":"Opnieuw","removeFormat":"Opmaak verwijderen","selectAll":"Alles selecteren","strikethrough":"Doorhalen","subscript":"Subscript","superscript":"Superscript","underline":"Onderstrepen","undo":"Ongedaan maken","unlink":"Link verwijderen","createLink":"Link maken","toggleDir":"Schrijfrichting wijzigen","insertImage":"Afbeelding invoegen","insertTable":"Tabel invoegen/bewerken","toggleTableBorder":"Tabelkader wijzigen","deleteTable":"Tabel wissen","tableProp":"Tabeleigenschap","htmlToggle":"HTML-bron","foreColor":"Voorgrondkleur","hiliteColor":"Achtergrondkleur","plainFormatBlock":"Alineastijl","formatBlock":"Alineastijl","fontSize":"Lettergrootte","fontName":"Lettertype","tabIndent":"Inspringen","fullScreen":"Volledig scherm in-/uitschakelen","viewSource":"HTML-bron bekijken","print":"Afdrukken","newPage":"Nieuwe pagina","systemShortcut":"De actie \"${0}\" is alleen beschikbaar in uw browser via een sneltoetscombinatie. Gebruik ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/pl/FontChoice.js b/lib/dijit/_editor/nls/pl/FontChoice.js
index 4255ea21a..e4d6f09ee 100644
--- a/lib/dijit/_editor/nls/pl/FontChoice.js
+++ b/lib/dijit/_editor/nls/pl/FontChoice.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/pl/FontChoice",({fontSize:"Wielkość",fontName:"Czcionka",formatBlock:"Format",serif:"szeryfowa","sans-serif":"bezszeryfowa",monospace:"czcionka o stałej szerokości",cursive:"kursywa",fantasy:"fantazyjna",noFormat:"Brak",p:"Akapit",h1:"Nagłówek",h2:"Nagłówek 2-go poziomu",h3:"Nagłówek 3-go poziomu",pre:"Wstępnie sformatowane",1:"najmniejsza",2:"mniejsza",3:"mała",4:"średnia",5:"duża",6:"większa",7:"największa"})); \ No newline at end of file
+define("dijit/_editor/nls/pl/FontChoice",({fontSize:"Rozmiar",fontName:"Czcionka",formatBlock:"Format",serif:"szeryfowa","sans-serif":"bezszeryfowa",monospace:"czcionka o stałej szerokości",cursive:"kursywa",fantasy:"fantazyjna",noFormat:"Brak",p:"Akapit",h1:"Nagłówek",h2:"Nagłówek 2-go poziomu",h3:"Nagłówek 3-go poziomu",pre:"Wstępnie sformatowane",1:"najmniejsza",2:"mniejsza",3:"mała",4:"średnia",5:"duże",6:"większa",7:"największa"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/pl/LinkDialog.js b/lib/dijit/_editor/nls/pl/LinkDialog.js
index 39efed70c..73f04a4ab 100644
--- a/lib/dijit/_editor/nls/pl/LinkDialog.js
+++ b/lib/dijit/_editor/nls/pl/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/pl/LinkDialog",({createLinkTitle:"Właściwości odsyłacza",insertImageTitle:"Właściwości obrazu",url:"Adres URL:",text:"Opis:",target:"Cel:",set:"Ustaw",currentWindow:"Bieżące okno",parentWindow:"Okno macierzyste",topWindow:"Okno najwyższego poziomu",newWindow:"Nowe okno"})); \ No newline at end of file
+define("dijit/_editor/nls/pl/LinkDialog",({createLinkTitle:"Właściwości odsyłacza",insertImageTitle:"Właściwości obrazu",url:"Adres URL:",text:"Opis:",target:"Docelowe:",set:"Ustaw",currentWindow:"Bieżące okno",parentWindow:"Okno macierzyste",topWindow:"Okno najwyższego poziomu",newWindow:"Nowe okno"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/pl/commands.js b/lib/dijit/_editor/nls/pl/commands.js
index 70b6b1def..76dbf8c07 100644
--- a/lib/dijit/_editor/nls/pl/commands.js
+++ b/lib/dijit/_editor/nls/pl/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/pl/commands",({"bold":"Pogrubienie","copy":"Kopiuj","cut":"Wytnij","delete":"Usuń","indent":"Wcięcie","insertHorizontalRule":"Linia pozioma","insertOrderedList":"Lista numerowana","insertUnorderedList":"Lista wypunktowana","italic":"Kursywa","justifyCenter":"Wyrównaj do środka","justifyFull":"Wyrównaj do lewej i prawej","justifyLeft":"Wyrównaj do lewej","justifyRight":"Wyrównaj do prawej","outdent":"Usuń wcięcie","paste":"Wklej","redo":"Ponów","removeFormat":"Usuń formatowanie","selectAll":"Wybierz wszystko","strikethrough":"Przekreślenie","subscript":"Indeks dolny","superscript":"Indeks górny","underline":"Podkreślenie","undo":"Cofnij","unlink":"Usuń odsyłacz","createLink":"Utwórz odsyłacz","toggleDir":"Przełącz kierunek","insertImage":"Wstaw obraz","insertTable":"Wstaw/edytuj tabelę","toggleTableBorder":"Przełącz ramkę tabeli","deleteTable":"Usuń tabelę","tableProp":"Właściwość tabeli","htmlToggle":"Kod źródłowy HTML","foreColor":"Kolor pierwszego planu","hiliteColor":"Kolor tła","plainFormatBlock":"Styl akapitu","formatBlock":"Styl akapitu","fontSize":"Wielkość czcionki","fontName":"Nazwa czcionki","tabIndent":"Wcięcie o tabulator","fullScreen":"Przełącz pełny ekran","viewSource":"Wyświetl kod źródłowy HTML","print":"Drukuj","newPage":"Nowa strona","systemShortcut":"Działanie ${0} jest dostępne w tej przeglądarce wyłącznie przy użyciu skrótu klawiaturowego. Należy użyć klawiszy ${1}.","ctrlKey":"Ctrl+${0}"})); \ No newline at end of file
+define("dijit/_editor/nls/pl/commands",({"bold":"Pogrubienie","copy":"Kopiuj","cut":"Wytnij","delete":"Usuń","indent":"Wcięcie","insertHorizontalRule":"Linijka pozioma","insertOrderedList":"Lista numerowana","insertUnorderedList":"Lista wypunktowana","italic":"Kursywa","justifyCenter":"Wyśrodkowanie","justifyFull":"Wyrównaj do lewej i prawej","justifyLeft":"Wyrównanie do lewej","justifyRight":"Wyrównanie do prawej","outdent":"Usuwanie wcięcia","paste":"Wklej","redo":"Ponów","removeFormat":"Usuń formatowanie","selectAll":"Zaznacz wszystko","strikethrough":"Przekreślenie","subscript":"Indeks dolny","superscript":"Indeks górny","underline":"Podkreślenie","undo":"Cofnij","unlink":"Usuń odsyłacz","createLink":"Utwórz odsyłacz","toggleDir":"Przełącz kierunek","insertImage":"Wstaw obraz","insertTable":"Wstaw/edytuj tabelę","toggleTableBorder":"Przełącz ramkę tabeli","deleteTable":"Usuń tabelę","tableProp":"Właściwość tabeli","htmlToggle":"Źródło HTML","foreColor":"Kolor pierwszego planu","hiliteColor":"Kolor tła","plainFormatBlock":"Styl akapitu","formatBlock":"Styl akapitu","fontSize":"Rozmiar czcionki","fontName":"Nazwa czcionki","tabIndent":"Wcięcie o tabulator","fullScreen":"Przełącz pełny ekran","viewSource":"Wyświetl kod źródłowy HTML","print":"Drukuj","newPage":"Nowa strona","systemShortcut":"Działanie ${0} jest dostępne w tej przeglądarce wyłącznie przy użyciu skrótu klawiaturowego. Należy użyć klawiszy ${1}.","ctrlKey":"Ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/pt/FontChoice.js b/lib/dijit/_editor/nls/pt/FontChoice.js
index 57c44c79c..6ddeb434c 100644
--- a/lib/dijit/_editor/nls/pt/FontChoice.js
+++ b/lib/dijit/_editor/nls/pt/FontChoice.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/pt/FontChoice",({fontSize:"Tamanho",fontName:"Fonte",formatBlock:"Formatar",serif:"serif","sans-serif":"sans-serif",monospace:"espaço simples",cursive:"cursiva",fantasy:"fantasy",noFormat:"Nenhuma",p:"Parágrafo",h1:"Título",h2:"Subtítulo",h3:"Sub-subtítulo",pre:"Pré-formatado",1:"extra-extra-pequeno",2:"extra-pequeno",3:"pequena",4:"médio",5:"grande",6:"extra-grande",7:"extra-extra-grande"})); \ No newline at end of file
+define("dijit/_editor/nls/pt/FontChoice",({fontSize:"Tamanho",fontName:"Fonte",formatBlock:"Formatar",serif:"serif","sans-serif":"sans-serif",monospace:"espaço simples",cursive:"cursiva",fantasy:"fantasy",noFormat:"Nenhum",p:"Parágrafo",h1:"Título",h2:"Subtítulo",h3:"Sub-subtítulo",pre:"Pré-formatado",1:"extra-extra-pequeno",2:"extra-pequeno",3:"pequena",4:"médio",5:"grande",6:"extra-grande",7:"extra-extra-grande"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/pt/LinkDialog.js b/lib/dijit/_editor/nls/pt/LinkDialog.js
index 8d03b5561..c69e75880 100644
--- a/lib/dijit/_editor/nls/pt/LinkDialog.js
+++ b/lib/dijit/_editor/nls/pt/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/pt/LinkDialog",({createLinkTitle:"Propriedades de Link",insertImageTitle:"Propriedades de Imagem",url:"URL:",text:"Descrição:",target:"Destino:",set:"Definir",currentWindow:"Janela Atual",parentWindow:"Janela Pai",topWindow:"Primeira Janela",newWindow:"Nova Janela"})); \ No newline at end of file
+define("dijit/_editor/nls/pt/LinkDialog",({createLinkTitle:"Propriedades de Link",insertImageTitle:"Propriedades de Imagem",url:"URL:",text:"Descrição:",target:"Destino:",set:"Configurar",currentWindow:"Janela Atual",parentWindow:"Janela Pai",topWindow:"Primeira Janela",newWindow:"Nova Janela"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/pt/commands.js b/lib/dijit/_editor/nls/pt/commands.js
index 35c6142ca..aaec7f3c8 100644
--- a/lib/dijit/_editor/nls/pt/commands.js
+++ b/lib/dijit/_editor/nls/pt/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/pt/commands",({"bold":"Negrito","copy":"Copiar","cut":"Recortar","delete":"Excluir","indent":"Recuar","insertHorizontalRule":"Régua Horizontal","insertOrderedList":"Lista Numerada","insertUnorderedList":"Lista com Marcadores","italic":"Itálico","justifyCenter":"Alinhar pelo Centro","justifyFull":"Justificar","justifyLeft":"Alinhar à Esquerda","justifyRight":"Alinhar à Direita","outdent":"Não chanfrado","paste":"Colar","redo":"Refazer","removeFormat":"Remover Formato","selectAll":"Selecionar Todos","strikethrough":"Tachado","subscript":"Subscrito","superscript":"Sobrescrito","underline":"Sublinhado","undo":"Desfazer","unlink":"Remover Link","createLink":"Criar Link","toggleDir":"Comutar Direção","insertImage":"Inserir Imagem","insertTable":"Inserir/Editar Tabela","toggleTableBorder":"Alternar Moldura da Tabela","deleteTable":"Excluir Tabela","tableProp":"Propriedade da Tabela","htmlToggle":"Origem HTML","foreColor":"Cor do Primeiro Plano","hiliteColor":"Cor do Segundo Plano","plainFormatBlock":"Estilo de Parágrafo","formatBlock":"Estilo de Parágrafo","fontSize":"Tamanho da Fonte","fontName":"Nome da Fonte","tabIndent":"Recuo de Guia","fullScreen":"Comutar Tela Cheia","viewSource":"Visualizar Origem HTML","print":"Imprimir","newPage":"Nova Página","systemShortcut":"A ação \"${0}\" está disponível em seu navegador apenas usando um atalho de teclado. Use ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/pt/commands",({"bold":"Negrito","copy":"Copiar","cut":"Recortar","delete":"Excluir","indent":"Recuar","insertHorizontalRule":"Régua Horizontal","insertOrderedList":"Lista Numerada","insertUnorderedList":"Lista com Marcadores","italic":"Itálico","justifyCenter":"Alinhar pelo Centro","justifyFull":"Justificar","justifyLeft":"Alinhar à Esquerda","justifyRight":"Alinhar à Direita","outdent":"Não chanfrado","paste":"Colar","redo":"Refazer","removeFormat":"Remover Formato","selectAll":"Selecionar Tudo","strikethrough":"Tachado","subscript":"Subscrito","superscript":"Sobrescrito","underline":"Sublinhado","undo":"Desfazer","unlink":"Remover Link","createLink":"Criar Link","toggleDir":"Comutar Direção","insertImage":"Inserir imagem","insertTable":"Inserir/Editar Tabela","toggleTableBorder":"Alternar Moldura da Tabela","deleteTable":"Excluir Tabela","tableProp":"Propriedade da Tabela","htmlToggle":"Origem HTML","foreColor":"Cor do Primeiro Plano","hiliteColor":"Cor do Segundo Plano","plainFormatBlock":"Estilo de Parágrafo","formatBlock":"Estilo de Parágrafo","fontSize":"Tamanho da Fonte","fontName":"Nome da Fonte","tabIndent":"Recuo de Guia","fullScreen":"Comutar Tela Cheia","viewSource":"Visualizar Origem HTML","print":"Imprimir","newPage":"Nova Página","systemShortcut":"A ação \"${0}\" está disponível em seu navegador apenas usando um atalho de teclado. Use ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/ro/FontChoice.js b/lib/dijit/_editor/nls/ro/FontChoice.js
index a65bf8319..d254655f0 100644
--- a/lib/dijit/_editor/nls/ro/FontChoice.js
+++ b/lib/dijit/_editor/nls/ro/FontChoice.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/ro/FontChoice",({fontSize:"Dimensiune",fontName:"Font",formatBlock:"Format",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"cursive",fantasy:"fantasy",noFormat:"Fără",p:"Paragraf",h1:"Titlu",h2:"Subtitlu",h3:"Sub-subtitlu",pre:"Preformatat",1:"xxs (xx-small)",2:"xs (x-small)",3:"s (small)",4:"m (medium)",5:"l (large)",6:"xl (x-large)",7:"xxl (xx-large)"})); \ No newline at end of file
+define("dijit/_editor/nls/ro/FontChoice",({fontSize:"Mărime",fontName:"Font",formatBlock:"Format",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"cursive",fantasy:"fantasy",noFormat:"Nimic",p:"Paragraf",h1:"Titlu",h2:"Subtitlu",h3:"Sub-subtitlu",pre:"Preformatat",1:"xxs (xx-small)",2:"xs (x-small)",3:"s (small)",4:"m (medium)",5:"l (large)",6:"xl (x-large)",7:"xxl (xx-large)"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/ro/commands.js b/lib/dijit/_editor/nls/ro/commands.js
index dcbf9d3a9..8ba66adff 100644
--- a/lib/dijit/_editor/nls/ro/commands.js
+++ b/lib/dijit/_editor/nls/ro/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/ro/commands",({"bold":"Aldin","copy":"Copiere","cut":"Tăiere","delete":"Ştergere","indent":"Micşorare indent","insertHorizontalRule":"Linie delimitatoare","insertOrderedList":"Listă numerotată","insertUnorderedList":"Listă cu marcator","italic":"Cursiv","justifyCenter":"Aliniere centru","justifyFull":"Aliniere stânga-dreapta","justifyLeft":"Aliniere stânga","justifyRight":"Aliniere dreapta","outdent":"Mărire indent","paste":"Lipire","redo":"Refacere acţiune","removeFormat":"Înlăturare format","selectAll":"Selectează tot","strikethrough":"Tăiere text cu o linie","subscript":"Scriere indice inferior","superscript":"Scriere indice superior","underline":"Subliniere","undo":"Anulare acţiune","unlink":"Înlăturare legătură","createLink":"Creare legătură","toggleDir":"Comutare direcţie","insertImage":"Inserare imagine","insertTable":"Inserare/Editare tabelă","toggleTableBorder":"Comutare bordură tabelă","deleteTable":"Ştergere tabelă","tableProp":"Proprietate tabelă","htmlToggle":"Sursă HTML","foreColor":"Culoare de prim-plan","hiliteColor":"Culoare de fundal","plainFormatBlock":"Stil paragraf","formatBlock":"Stil paragraf","fontSize":"Dimensiune font","fontName":"Nume font","tabIndent":"Indentare Tab","fullScreen":"Comutare ecran complet","viewSource":"Vizualizara sursă HTML","print":"Tipărire","newPage":"Pagină nouă","systemShortcut":"Acţiunea \"${0}\" este disponibilă în browser doar utilizând o comandă rapidă de la tastatură. Utilizaţi ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/ro/commands",({"bold":"Aldin","copy":"Copiere","cut":"Tăiere","delete":"Ştergere","indent":"Micşorare indent","insertHorizontalRule":"Linie delimitatoare","insertOrderedList":"Listă numerotată","insertUnorderedList":"Listă cu marcator","italic":"Cursiv","justifyCenter":"Aliniere centru","justifyFull":"Aliniere stânga-dreapta","justifyLeft":"Aliniere stânga","justifyRight":"Aliniere dreapta","outdent":"Mărire indent","paste":"Lipire","redo":"Refacere acţiune","removeFormat":"Înlăturare format","selectAll":"Selectează tot","strikethrough":"Tăiere text cu o linie","subscript":"Scriere indice inferior","superscript":"Scriere indice superior","underline":"Subliniere","undo":"Anulare acţiune","unlink":"Înlăturare legătură","createLink":"Creare legătură","toggleDir":"Comutare direcţie","insertImage":"Inserare imagine","insertTable":"Inserare/Editare tabelă","toggleTableBorder":"Comutare bordură tabelă","deleteTable":"Ştergere tabelă","tableProp":"Proprietate tabelă","htmlToggle":"Sursă HTML","foreColor":"Culoare de prim-plan","hiliteColor":"Culoare de fundal","plainFormatBlock":"Stil paragraf","formatBlock":"Stil paragraf","fontSize":"Dimensiune font","fontName":"Nume font","tabIndent":"Indentare Tab","fullScreen":"Comutare ecran complet","viewSource":"Vizualizara sursă HTML","print":"Tipărire","newPage":"Pagină nouă","systemShortcut":"Acţiunea \"${0}\" este disponibilă în browser doar utilizând o comandă rapidă de la tastatură. Utilizaţi ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/ru/commands.js b/lib/dijit/_editor/nls/ru/commands.js
index 6a6a5099a..5e463334e 100644
--- a/lib/dijit/_editor/nls/ru/commands.js
+++ b/lib/dijit/_editor/nls/ru/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/ru/commands",({"bold":"Полужирный","copy":"Копировать","cut":"Вырезать","delete":"Удалить","indent":"Отступ","insertHorizontalRule":"Горизонтальная линейка","insertOrderedList":"Нумерованный список","insertUnorderedList":"Список с маркерами","italic":"Курсив","justifyCenter":"По центру","justifyFull":"По ширине","justifyLeft":"По левому краю","justifyRight":"По правому краю","outdent":"Втяжка","paste":"Вставить","redo":"Повторить","removeFormat":"Удалить формат","selectAll":"Выбрать все","strikethrough":"Перечеркивание","subscript":"Нижний индекс","superscript":"Верхний индекс","underline":"Подчеркивание","undo":"Отменить","unlink":"Удалить ссылку","createLink":"Создать ссылку","toggleDir":"Изменить направление","insertImage":"Вставить изображение","insertTable":"Вставить/изменить таблицу","toggleTableBorder":"Переключить рамку таблицы","deleteTable":"Удалить таблицу","tableProp":"Свойства таблицы","htmlToggle":"Код HTML","foreColor":"Цвет текста","hiliteColor":"Цвет фона","plainFormatBlock":"Стиль абзаца","formatBlock":"Стиль абзаца","fontSize":"Размер шрифта","fontName":"Название шрифта","tabIndent":"Табуляция","fullScreen":"Переключить полноэкранный режим","viewSource":"Показать исходный код HTML","print":"Печать","newPage":"Создать страницу","systemShortcut":"Действие \"${0}\" можно выполнить в браузере только путем нажатия клавиш ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/ru/commands",({"bold":"Полужирный","copy":"Копировать","cut":"Вырезать","delete":"Удалить","indent":"Отступ","insertHorizontalRule":"Горизонтальная линейка","insertOrderedList":"Нумерованный список","insertUnorderedList":"Список с маркерами","italic":"Курсив","justifyCenter":"По центру","justifyFull":"По ширине","justifyLeft":"По левому краю","justifyRight":"По правому краю","outdent":"Втяжка","paste":"Вставить","redo":"Повторить","removeFormat":"Удалить формат","selectAll":"Выбрать все","strikethrough":"Перечеркивание","subscript":"Нижний индекс","superscript":"Верхний индекс","underline":"Подчеркивание","undo":"Отменить","unlink":"Удалить ссылку","createLink":"Создать ссылку","toggleDir":"Изменить направление","insertImage":"Вставить изображение","insertTable":"Вставить/изменить таблицу","toggleTableBorder":"Переключить рамку таблицы","deleteTable":"Удалить таблицу","tableProp":"Свойства таблицы","htmlToggle":"Код HTML","foreColor":"Цвет текста","hiliteColor":"Цвет фона","plainFormatBlock":"Стиль абзаца","formatBlock":"Стиль абзаца","fontSize":"Размер шрифта","fontName":"Название шрифта","tabIndent":"Табуляция","fullScreen":"Переключить полноэкранный режим","viewSource":"Показать исходный код HTML","print":"Печать","newPage":"Создать страницу","systemShortcut":"Действие \"${0}\" можно выполнить в браузере только путем нажатия клавиш ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/sk/LinkDialog.js b/lib/dijit/_editor/nls/sk/LinkDialog.js
index 1251d38e7..ff02838ed 100644
--- a/lib/dijit/_editor/nls/sk/LinkDialog.js
+++ b/lib/dijit/_editor/nls/sk/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/sk/LinkDialog",({createLinkTitle:"Pripojiť vlastnosti",insertImageTitle:"Vlastnosti obrázka ",url:"URL:",text:"Opis:",target:"Cieľ:",set:"Nastaviť",currentWindow:"Aktuálne okno ",parentWindow:"Rodičovské okno ",topWindow:"Najvrchnejšie okno ",newWindow:"Nové okno "})); \ No newline at end of file
+define("dijit/_editor/nls/sk/LinkDialog",({createLinkTitle:"Vlastnosti prepojenia",insertImageTitle:"Vlastnosti obrázka",url:"Adresa URL:",text:"Opis:",target:"Cieľ:",set:"Nastaviť",currentWindow:"Aktuálne okno",parentWindow:"Rodičovské okno",topWindow:"Najvyššie okno",newWindow:"Nové okno"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/sk/commands.js b/lib/dijit/_editor/nls/sk/commands.js
index 1ba3b24c6..272d47e71 100644
--- a/lib/dijit/_editor/nls/sk/commands.js
+++ b/lib/dijit/_editor/nls/sk/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/sk/commands",({"bold":"Tučné písmo","copy":"Kopírovať","cut":"Vystrihnúť","delete":"Vymazať","indent":"Odsadiť","insertHorizontalRule":"Horizontálna čiara","insertOrderedList":"Číslovaný zoznam","insertUnorderedList":"Zoznam s odrážkami","italic":"Kurzíva","justifyCenter":"Zarovnať na stred","justifyFull":"Zarovnať podľa okraja","justifyLeft":"Zarovnať doľava","justifyRight":"Zarovnať doprava","outdent":"Predsadiť","paste":"Nalepiť","redo":"Znova vykonať","removeFormat":"Odstrániť formát","selectAll":"Vybrať všetko","strikethrough":"Prečiarknuť","subscript":"Dolný index","superscript":"Horný index","underline":"Podčiarknuť","undo":"Vrátiť späť","unlink":"Odstrániť prepojenie","createLink":"Vytvoriť prepojenie","toggleDir":"Prepnúť smer","insertImage":"Vložiť obrázok","insertTable":"Vložiť/upraviť tabuľku","toggleTableBorder":"Prepnúť rámček tabuľky","deleteTable":"Vymazať tabuľku","tableProp":"Vlastnosť tabuľky","htmlToggle":"Zdroj HTML","foreColor":"Farba popredia","hiliteColor":"Farba pozadia","plainFormatBlock":"Štýl odseku","formatBlock":"Štýl odseku","fontSize":"Veľkosť písma","fontName":"Názov písma","tabIndent":"Odsadenie tabulátora","fullScreen":"Zobraziť na celú obrazovku","viewSource":"Zobraziť zdrojový kód HTML ","print":"Tlačiť","newPage":"Nová stránka ","systemShortcut":"Akcia \"${0}\" je vo vašom prehliadači dostupná len s použitím klávesovej skratky. Použite ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/sk/commands",({"bold":"Tučné","copy":"Kopírovať","cut":"Vystrihnúť","delete":"Vymazať","indent":"Odsadiť","insertHorizontalRule":"Vodorovná čiara","insertOrderedList":"Číslovaný zoznam","insertUnorderedList":"Zoznam s odrážkami","italic":"Kurzíva","justifyCenter":"Zarovnať na stred","justifyFull":"Zarovnať k okrajom","justifyLeft":"Zarovnať vľavo","justifyRight":"Zarovnať vpravo","outdent":"Zmenšiť odsadenie","paste":"Prilepiť","redo":"Znova","removeFormat":"Odstrániť formátovanie","selectAll":"Vybrať všetko","strikethrough":"Prečiarknuť","subscript":"Dolný index","superscript":"Horný index","underline":"Podčiarknuť","undo":"Späť","unlink":"Odstrániť prepojenie","createLink":"Vytvoriť prepojenie","toggleDir":"Prepnúť smer","insertImage":"Vložiť obrázok","insertTable":"Vložiť/upraviť tabuľku","toggleTableBorder":"Prepnúť ohraničenie tabuľky","deleteTable":"Odstrániť tabuľku","tableProp":"Vlastnosť tabuľky","htmlToggle":"Zdrojový kód HTML","foreColor":"Farba popredia","hiliteColor":"Farba pozadia","plainFormatBlock":"Štýl odseku","formatBlock":"Štýl odseku","fontSize":"Veľkosť písma","fontName":"Názov písma","tabIndent":"Odsadenie tabulátora","fullScreen":"Prepnúť na celú obrazovku","viewSource":"Zobraziť zdrojový kód HTML","print":"Vytlačiť","newPage":"Nová stránka","systemShortcut":"Akcia \"${0}\" je vo vašom prehliadači dostupná iba prostredníctvom klávesovej skratky. Stlačte ${1}.","ctrlKey":"Ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/sl/commands.js b/lib/dijit/_editor/nls/sl/commands.js
index 9061e1602..d26ba426f 100644
--- a/lib/dijit/_editor/nls/sl/commands.js
+++ b/lib/dijit/_editor/nls/sl/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/sl/commands",({"bold":"Krepko","copy":"Prekopiraj","cut":"Izreži","delete":"Izbriši","indent":"Zamik","insertHorizontalRule":"Vodoravno ravnilo","insertOrderedList":"Oštevilčen seznam","insertUnorderedList":"Naštevni seznam","italic":"Ležeče","justifyCenter":"Poravnaj na sredino","justifyFull":"Poravnaj obojestransko","justifyLeft":"Poravnaj levo","justifyRight":"Poravnaj desno","outdent":"Primakni","paste":"Prilepi","redo":"Znova uveljavi","removeFormat":"Odstrani oblikovanje","selectAll":"Izberi vse","strikethrough":"Prečrtano","subscript":"Podpisano","superscript":"Nadpisano","underline":"Podčrtano","undo":"Razveljavi","unlink":"Odstrani povezavo","createLink":"Ustvari povezavo","toggleDir":"Preklopi smer","insertImage":"Vstavi sliko","insertTable":"Vstavi/uredi tabelo","toggleTableBorder":"Preklopi na rob tabele","deleteTable":"Izbriši tabelo","tableProp":"Lastnost tabele","htmlToggle":"Izvorna koda HTML","foreColor":"Barva ospredja","hiliteColor":"Barva ozadja","plainFormatBlock":"Slog odstavka","formatBlock":"Slog odstavka","fontSize":"Velikost pisave","fontName":"Ime pisave","tabIndent":"Zamik tabulatorja","fullScreen":"Preklopi na celozaslonski način","viewSource":"Prikaži izvorno kodo HTML","print":"Natisni","newPage":"Nova stran","systemShortcut":"Dejanje \"${0}\" lahko v vašem brskalniku uporabite samo z bližnjico na tipkovnici. Uporabite ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/sl/commands",({"bold":"Krepko","copy":"Prekopiraj","cut":"Izreži","delete":"Izbriši","indent":"Zamik","insertHorizontalRule":"Vodoravno ravnilo","insertOrderedList":"Oštevilčen seznam","insertUnorderedList":"Naštevni seznam","italic":"Ležeče","justifyCenter":"Poravnaj na sredino","justifyFull":"Poravnaj obojestransko","justifyLeft":"Poravnaj levo","justifyRight":"Poravnaj desno","outdent":"Primakni","paste":"Prilepi","redo":"Znova uveljavi","removeFormat":"Odstrani oblikovanje","selectAll":"Izberi vse","strikethrough":"Prečrtano","subscript":"Podpisano","superscript":"Nadpisano","underline":"Podčrtano","undo":"Razveljavi","unlink":"Odstrani povezavo","createLink":"Ustvari povezavo","toggleDir":"Preklopi smer","insertImage":"Vstavi sliko","insertTable":"Vstavi/uredi tabelo","toggleTableBorder":"Preklopi na obrobo tabele","deleteTable":"Izbriši tabelo","tableProp":"Lastnost tabele","htmlToggle":"Izvor HTML","foreColor":"Barva ospredja","hiliteColor":"Barva ozadja","plainFormatBlock":"Slog odstavka","formatBlock":"Slog odstavka","fontSize":"Velikost pisave","fontName":"Ime pisave","tabIndent":"Zamik tabulatorja","fullScreen":"Preklopi na celozaslonski način","viewSource":"Prikaži izvorno kodo HTML","print":"Natisni","newPage":"Nova stran","systemShortcut":"Dejanje \"${0}\" lahko v vašem brskalniku uporabite samo z bližnjico na tipkovnici. Uporabite ${1}."})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/sv/FontChoice.js b/lib/dijit/_editor/nls/sv/FontChoice.js
index 197fca5e3..c9db732a5 100644
--- a/lib/dijit/_editor/nls/sv/FontChoice.js
+++ b/lib/dijit/_editor/nls/sv/FontChoice.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/sv/FontChoice",({fontSize:"Storlek",fontName:"Teckensnitt",formatBlock:"Format",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"kursivt",fantasy:"fantasy",noFormat:"Ingen",p:"Stycke",h1:"Rubrik",h2:"Underrubrik",h3:"Underunderrubrik",pre:"Förformaterat",1:"mycket, mycket litet",2:"mycket litet",3:"litet",4:"medelstort",5:"stort",6:"extra stort",7:"extra extra stort"})); \ No newline at end of file
+define("dijit/_editor/nls/sv/FontChoice",({fontSize:"Storlek ",fontName:"Teckensnitt",formatBlock:"Format",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"cursive",fantasy:"fantasy",noFormat:"Inget",p:"Stycke",h1:"Rubrik 1",h2:"Rubrik 2",h3:"Rubrik 3",pre:"Förformaterad",1:"XXS",2:"XS",3:"S",4:"M",5:"L",6:"XL",7:"XXL"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/sv/LinkDialog.js b/lib/dijit/_editor/nls/sv/LinkDialog.js
index 91eb3cb0e..3c3a39d68 100644
--- a/lib/dijit/_editor/nls/sv/LinkDialog.js
+++ b/lib/dijit/_editor/nls/sv/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/sv/LinkDialog",({createLinkTitle:"Länkegenskaper",insertImageTitle:"Bildegenskaper",url:"URL-adress:",text:"Beskrivning:",target:"Mål:",set:"Ange",currentWindow:"aktuellt fönster",parentWindow:"överordnat fönster",topWindow:"översta fönstret",newWindow:"nytt fönster"})); \ No newline at end of file
+define("dijit/_editor/nls/sv/LinkDialog",({createLinkTitle:"Länkegenskaper",insertImageTitle:"Bildegenskaper",url:"URL-adress:",text:"Beskrivning:",target:"Mål:",set:"Använd",currentWindow:"Aktuellt fönster",parentWindow:"Överordnat fönster",topWindow:"Översta fönstret",newWindow:"Nytt fönster"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/sv/commands.js b/lib/dijit/_editor/nls/sv/commands.js
index fb62d3068..c26d0020b 100644
--- a/lib/dijit/_editor/nls/sv/commands.js
+++ b/lib/dijit/_editor/nls/sv/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/sv/commands",({"bold":"Fetstil","copy":"Kopiera","cut":"Klipp ut","delete":"Ta bort","indent":"Indrag","insertHorizontalRule":"Horisontell linjal","insertOrderedList":"Numrerad lista","insertUnorderedList":"Punktlista","italic":"Kursiv","justifyCenter":"Centrera","justifyFull":"Marginaljustera","justifyLeft":"Vänsterjustera","justifyRight":"Högerjustera","outdent":"Utdrag","paste":"Klistra in","redo":"Gör om","removeFormat":"Ta bort format","selectAll":"Markera allt","strikethrough":"Genomstruken","subscript":"Nedsänkt","superscript":"Upphöjt","underline":"Understrykning","undo":"Ångra","unlink":"Ta bort länk","createLink":"Skapa länk","toggleDir":"Växla riktning","insertImage":"Infoga bild","insertTable":"Infoga/redigera tabell","toggleTableBorder":"Aktivera/avaktivera tabellram","deleteTable":"Ta bort tabell","tableProp":"Tabellegenskap","htmlToggle":"HTML-källkod","foreColor":"Förgrundsfärg","hiliteColor":"Bakgrundsfärg","plainFormatBlock":"Styckeformat","formatBlock":"Styckeformat","fontSize":"Teckenstorlek","fontName":"Teckensnittsnamn","tabIndent":"Tabbindrag","fullScreen":"Växla helskärm","viewSource":"Visa HTML-kod","print":"Skriv ut","newPage":"Ny sida","systemShortcut":"Åtgärden \"${0}\" är endast tillgänglig i webbläsaren med hjälp av ett kortkommando. Använd ${1}.","ctrlKey":"Ctrl+${0}","appleKey":"⌘+${0}"})); \ No newline at end of file
+define("dijit/_editor/nls/sv/commands",({"bold":"Halvfet","copy":"Kopiera ","cut":"Klipp ut ","delete":"Ta bort ","indent":"Indrag","insertHorizontalRule":"Horisontell linje","insertOrderedList":"Numrerad lista","insertUnorderedList":"Punktlista","italic":"Kursiv","justifyCenter":"Justera centrerat","justifyFull":"Justera","justifyLeft":"Justera till vänster","justifyRight":"Justera till höger","outdent":"Utdrag","paste":"Klistra in","redo":"Gör om","removeFormat":"Ta bort format","selectAll":"Markera allt","strikethrough":"Genomstrykning","subscript":"Nedsänkt","superscript":"Upphöjt","underline":"Understrykning","undo":"Ångra","unlink":"Ta bort länk","createLink":"Skapa länk","toggleDir":"Växla riktning","insertImage":"Infoga bild","insertTable":"Infoga/redigera tabell","toggleTableBorder":"Växla tabellkantlinjer","deleteTable":"Ta bort tabell","tableProp":"Tabellegenskap","htmlToggle":"HTML-källa","foreColor":"Förgrundsfärg","hiliteColor":"Bakgrundsfärg","plainFormatBlock":"Styckeformat","formatBlock":"Styckeformat","fontSize":"Teckenstorlek","fontName":"Teckensnitt","tabIndent":"Indrag tabb","fullScreen":"Växla fullskärm","viewSource":"Visa HTML-kod","print":"Skriv ut","newPage":"Ny sida","systemShortcut":"Åtgärden ${0} är endast tillgänglig i webbläsaren via ett tangentbordskommando. Använd ${1}.","ctrlKey":"Ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/th/LinkDialog.js b/lib/dijit/_editor/nls/th/LinkDialog.js
index 4b7756829..9d3352235 100644
--- a/lib/dijit/_editor/nls/th/LinkDialog.js
+++ b/lib/dijit/_editor/nls/th/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/th/LinkDialog",({createLinkTitle:"คุณสมบัติลิงก์",insertImageTitle:"คุณสมบัติอิมเมจ",url:"URL:",text:"รายละเอียด:",target:"เป้าหมาย:",set:"ตั้งค่า",currentWindow:"หน้าต่างปัจจุบัน",parentWindow:"หน้าต่างหลัก",topWindow:"หน้าต่างบนสุด",newWindow:"หน้าต่างใหม่"})); \ No newline at end of file
+define("dijit/_editor/nls/th/LinkDialog",({createLinkTitle:"คุณสมบัติลิงก์",insertImageTitle:"คุณสมบัติรูปภาพ",url:"URL:",text:"คำอธิบาย:",target:"เป้าหมาย:",set:"เซ็ต",currentWindow:"หน้าต่างปัจจุบัน",parentWindow:"หน้าต่างหลัก",topWindow:"หน้าต่างบนสุด",newWindow:"หน้าต่างใหม่"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/th/commands.js b/lib/dijit/_editor/nls/th/commands.js
index d7480eb96..6bba32e2b 100644
--- a/lib/dijit/_editor/nls/th/commands.js
+++ b/lib/dijit/_editor/nls/th/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/th/commands",({"bold":"ตัวหนา","copy":"คัดลอก","cut":"ตัด","delete":"ลบ","indent":"เพิ่มการเยื้อง","insertHorizontalRule":"ไม้บรรทัดแนวนอน","insertOrderedList":"ลำดับเลข","insertUnorderedList":"หัวข้อย่อย","italic":"ตัวเอียง","justifyCenter":"จัดกึ่งกลาง","justifyFull":"จัดชิดขอบ","justifyLeft":"จัดชิดซ้าย","justifyRight":"จัดชิดขวา","outdent":"ลดการเยื้อง","paste":"วาง","redo":"ทำซ้ำ","removeFormat":"ลบรูปแบบออก","selectAll":"เลือกทั้งหมด","strikethrough":"ขีดทับ","subscript":"ตัวห้อย","superscript":"ตัวยก","underline":"ขีดเส้นใต้","undo":"เลิกทำ","unlink":"ลบลิงก์ออก","createLink":"สร้างลิงก์","toggleDir":"สลับทิศทาง","insertImage":"แทรกอิมเมจ","insertTable":"แทรก/แก้ไขตาราง","toggleTableBorder":"สลับเส้นขอบตาราง","deleteTable":"ลบตาราง","tableProp":"คุณสมบัติตาราง","htmlToggle":"ซอร์ส HTML","foreColor":"สีพื้นหน้า","hiliteColor":"สีพื้นหลัง","plainFormatBlock":"ลักษณะย่อหน้า","formatBlock":"ลักษณะย่อหน้า","fontSize":"ขนาดฟอนต์","fontName":"ชื่อฟอนต์","tabIndent":"เยื้องแท็บ","fullScreen":"สลับจอภาพแบบเต็ม","viewSource":"ดูซอร์ส HTML","print":"พิมพ์","newPage":"หน้าใหม่","systemShortcut":"การดำเนินการ\"${0}\" ใช้งานได้เฉพาะกับเบราว์เซอร์ของคุณโดยใช้แป้นพิมพ์ลัด ใช้ ${1}"})); \ No newline at end of file
+define("dijit/_editor/nls/th/commands",({"bold":"ตัวหนา","copy":"คัดลอก","cut":"ตัด","delete":"ลบ","indent":"เพิ่มการเยื้อง","insertHorizontalRule":"ไม้บรรทัดแนวนอน","insertOrderedList":"ลำดับเลข","insertUnorderedList":"หัวข้อย่อย","italic":"ตัวเอียง","justifyCenter":"จัดแนวกึ่งกลาง","justifyFull":"ชิดขอบ","justifyLeft":"จัดชิดซ้าย","justifyRight":"จัดชิดขวา","outdent":"ลดการเยื้อง","paste":"วาง","redo":"ทำซ้ำ","removeFormat":"ลบรูปแบบออก","selectAll":"เลือกทั้งหมด","strikethrough":"ขีดทับ","subscript":"ตัวห้อย","superscript":"ตัวยก","underline":"ขีดเส้นใต้","undo":"เลิกทำ","unlink":"ลบลิงก์ออก","createLink":"สร้างลิงก์","toggleDir":"สลับทิศทาง","insertImage":"แทรกรูปภาพ","insertTable":"แทรก/แก้ไขตาราง","toggleTableBorder":"สลับเส้นขอบตาราง","deleteTable":"ลบตาราง","tableProp":"คุณสมบัติตาราง","htmlToggle":"ซอร์ส HTML","foreColor":"สีพื้นหน้า","hiliteColor":"สีพื้นหลัง","plainFormatBlock":"ลักษณะย่อหน้า","formatBlock":"ลักษณะย่อหน้า","fontSize":"ขนาดฟอนต์","fontName":"ชื่อฟอนต์","tabIndent":"เยื้องแท็บ","fullScreen":"สลับจอภาพแบบเต็ม","viewSource":"ดูซอร์ส HTML","print":"พิมพ์","newPage":"หน้าใหม่","systemShortcut":"การดำเนินการ\"${0}\" ใช้งานได้เฉพาะกับเบราว์เซอร์ของคุณโดยใช้แป้นพิมพ์ลัด ใช้ ${1}","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/tr/commands.js b/lib/dijit/_editor/nls/tr/commands.js
index 5565b9a14..3b12fb511 100644
--- a/lib/dijit/_editor/nls/tr/commands.js
+++ b/lib/dijit/_editor/nls/tr/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/tr/commands",({"bold":"Kalın","copy":"Kopyala","cut":"Kes","delete":"Sil","indent":"Girinti","insertHorizontalRule":"Yatay Kural","insertOrderedList":"Numaralı Liste","insertUnorderedList":"Madde İşaretli Liste","italic":"İtalik","justifyCenter":"Ortaya Hizala","justifyFull":"Yasla","justifyLeft":"Sola Hizala","justifyRight":"Sağa Hizala","outdent":"Çıkıntı","paste":"Yapıştır","redo":"Yinele","removeFormat":"Biçimi Kaldır","selectAll":"Tümünü Seç","strikethrough":"Üstü Çizili","subscript":"Alt Simge","superscript":"Üst Simge","underline":"Altı Çizili","undo":"Geri Al","unlink":"Bağlantıyı Kaldır","createLink":"Bağlantı Oluştur","toggleDir":"Yönü Değiştir","insertImage":"Resim Ekle","insertTable":"Tablo Ekle/Düzenle","toggleTableBorder":"Tablo Kenarlığını Göster/Gizle","deleteTable":"Tabloyu Sil","tableProp":"Tablo Özelliği","htmlToggle":"HTML Kaynağı","foreColor":"Ön Plan Rengi","hiliteColor":"Arka Plan Rengi","plainFormatBlock":"Paragraf Stili","formatBlock":"Paragraf Stili","fontSize":"Yazı Tipi Boyutu","fontName":"Yazı Tipi Adı","tabIndent":"Sekme Girintisi","fullScreen":"Tam Ekranı Aç/Kapat","viewSource":"HTML Kaynağını Görüntüle","print":"Yazdır","newPage":"Yeni Sayfa","systemShortcut":"\"${0}\" işlemi yalnızca tarayıcınızda bir klavye kısayoluyla birlikte kullanılabilir. Şunu kullanın: ${1}."})); \ No newline at end of file
+define("dijit/_editor/nls/tr/commands",({"bold":"Kalın","copy":"Kopyala","cut":"Kes","delete":"Sil","indent":"Girinti","insertHorizontalRule":"Yatay Kural","insertOrderedList":"Numaralı Liste","insertUnorderedList":"Madde İşaretli Liste","italic":"İtalik","justifyCenter":"Ortaya Hizala","justifyFull":"Yasla","justifyLeft":"Sola Hizala","justifyRight":"Sağa Hizala","outdent":"Çıkıntı","paste":"Yapıştır","redo":"Yinele","removeFormat":"Biçimi Kaldır","selectAll":"Tümünü Seç","strikethrough":"Üstü Çizili","subscript":"Alt Simge","superscript":"Üst Simge","underline":"Altı Çizili","undo":"Geri Al","unlink":"Bağlantıyı Kaldır","createLink":"Bağlantı Oluştur","toggleDir":"Yönü Değiştir","insertImage":"Resim Ekle","insertTable":"Tablo Ekle/Düzenle","toggleTableBorder":"Tablo Kenarlığını Göster/Gizle","deleteTable":"Tabloyu Sil","tableProp":"Tablo Özelliği","htmlToggle":"HTML Kaynağı","foreColor":"Ön Plan Rengi","hiliteColor":"Arka Plan Rengi","plainFormatBlock":"Paragraf Stili","formatBlock":"Paragraf Stili","fontSize":"Yazı Tipi Boyutu","fontName":"Yazı Tipi Adı","tabIndent":"Sekme Girintisi","fullScreen":"Tam Ekranı Aç/Kapat","viewSource":"HTML Kaynağını Görüntüle","print":"Yazdır","newPage":"Yeni Sayfa","systemShortcut":"\"${0}\" işlemi yalnızca tarayıcınızda bir klavye kısayoluyla birlikte kullanılabilir. Şunu kullanın: ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/zh-tw/commands.js b/lib/dijit/_editor/nls/zh-tw/commands.js
index 2f676219b..2cd9ad43f 100644
--- a/lib/dijit/_editor/nls/zh-tw/commands.js
+++ b/lib/dijit/_editor/nls/zh-tw/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/zh-tw/commands",({"bold":"粗體","copy":"複製","cut":"剪下","delete":"刪除","indent":"縮排","insertHorizontalRule":"水平尺規","insertOrderedList":"編號清單","insertUnorderedList":"項目符號清單","italic":"斜體","justifyCenter":"置中對齊","justifyFull":"對齊","justifyLeft":"靠左對齊","justifyRight":"靠右對齊","outdent":"凸排","paste":"貼上","redo":"重做","removeFormat":"移除格式","selectAll":"全選","strikethrough":"刪除線","subscript":"下標","superscript":"上標","underline":"底線","undo":"復原","unlink":"移除鏈結","createLink":"建立鏈結","toggleDir":"切換方向","insertImage":"插入影像","insertTable":"插入/編輯表格","toggleTableBorder":"切換表格邊框","deleteTable":"刪除表格","tableProp":"表格內容","htmlToggle":"HTML 原始檔","foreColor":"前景顏色","hiliteColor":"背景顏色","plainFormatBlock":"段落樣式","formatBlock":"段落樣式","fontSize":"字型大小","fontName":"字型名稱","tabIndent":"標籤縮排","fullScreen":"切換全螢幕","viewSource":"檢視 HTML 原始檔","print":"列印","newPage":"新頁面","systemShortcut":"\"${0}\" 動作在您的瀏覽器中,只能使用鍵盤快速鍵。請使用 ${1}。"})); \ No newline at end of file
+define("dijit/_editor/nls/zh-tw/commands",({"bold":"粗體","copy":"複製","cut":"剪下","delete":"刪除","indent":"縮排","insertHorizontalRule":"水平尺規","insertOrderedList":"編號清單","insertUnorderedList":"項目符號清單","italic":"斜體","justifyCenter":"置中對齊","justifyFull":"對齊","justifyLeft":"靠左對齊","justifyRight":"靠右對齊","outdent":"凸排","paste":"貼上","redo":"重做","removeFormat":"移除格式","selectAll":"全選","strikethrough":"刪除線","subscript":"下標","superscript":"上標","underline":"底線","undo":"復原","unlink":"移除鏈結","createLink":"建立鏈結","toggleDir":"切換方向","insertImage":"插入影像","insertTable":"插入/編輯表格","toggleTableBorder":"切換表格邊框","deleteTable":"刪除表格","tableProp":"表格內容","htmlToggle":"HTML 原始檔","foreColor":"前景顏色","hiliteColor":"背景顏色","plainFormatBlock":"段落樣式","formatBlock":"段落樣式","fontSize":"字型大小","fontName":"字型名稱","tabIndent":"標籤縮排","fullScreen":"切換全螢幕","viewSource":"檢視 HTML 原始檔","print":"列印","newPage":"新頁面","systemShortcut":"\"${0}\" 動作在您的瀏覽器中,只能使用鍵盤快速鍵。請使用 ${1}。","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/zh/FontChoice.js b/lib/dijit/_editor/nls/zh/FontChoice.js
index 67e802189..e692d0e2a 100644
--- a/lib/dijit/_editor/nls/zh/FontChoice.js
+++ b/lib/dijit/_editor/nls/zh/FontChoice.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/zh/FontChoice",({fontSize:"大小",fontName:"字体",formatBlock:"格式",serif:"有衬线","sans-serif":"无衬线",monospace:"等宽字体",cursive:"草书",fantasy:"虚线",noFormat:"无",p:"段落",h1:"标题",h2:"子标题",h3:"二级子标题",pre:"预设有格式的",1:"XXS 号",2:"XS 号",3:"S 号",4:"M 号",5:"L 号",6:"XL 号",7:"XXL 号"})); \ No newline at end of file
+define("dijit/_editor/nls/zh/FontChoice",({fontSize:"大小",fontName:"字体",formatBlock:"格式",serif:"有衬线","sans-serif":"无衬线",monospace:"等宽字体",cursive:"草书",fantasy:"虚线",noFormat:"无",p:"段落",h1:"标题",h2:"副标题",h3:"二级子标题",pre:"预设有格式的",1:"XX 小号",2:"X 小号",3:"小号",4:"中号",5:"大号",6:"X 大号",7:"XX 大号"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/zh/LinkDialog.js b/lib/dijit/_editor/nls/zh/LinkDialog.js
index 40cbebd24..0b7b66f70 100644
--- a/lib/dijit/_editor/nls/zh/LinkDialog.js
+++ b/lib/dijit/_editor/nls/zh/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/zh/LinkDialog",({createLinkTitle:"链接属性",insertImageTitle:"图像属性",url:"URL:",text:"描述:",target:"目标:",set:"设置",currentWindow:"当前窗口",parentWindow:"父窗口",topWindow:"顶层窗口",newWindow:"新建窗口"})); \ No newline at end of file
+define("dijit/_editor/nls/zh/LinkDialog",({createLinkTitle:"链接属性",insertImageTitle:"图像属性",url:"URL:",text:"说明:",target:"目标:",set:"集",currentWindow:"当前窗口",parentWindow:"父窗口",topWindow:"最顶层窗口",newWindow:"新建窗口"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/nls/zh/commands.js b/lib/dijit/_editor/nls/zh/commands.js
index bbac1fc3a..33cc25b2b 100644
--- a/lib/dijit/_editor/nls/zh/commands.js
+++ b/lib/dijit/_editor/nls/zh/commands.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/nls/zh/commands",({"bold":"粗体","copy":"复制","cut":"剪切","delete":"删除","indent":"增加缩进","insertHorizontalRule":"水平线","insertOrderedList":"编号列表","insertUnorderedList":"符号列表","italic":"斜体","justifyCenter":"居中","justifyFull":"对齐","justifyLeft":"左对齐","justifyRight":"右对齐","outdent":"减少缩进","paste":"粘贴","redo":"重做","removeFormat":"除去格式","selectAll":"全选","strikethrough":"删除线","subscript":"下标","superscript":"上标","underline":"下划线","undo":"撤销","unlink":"除去链接","createLink":"创建链接","toggleDir":"固定方向","insertImage":"插入图像","insertTable":"插入/编辑表","toggleTableBorder":"切换表边框","deleteTable":"删除表","tableProp":"表属性","htmlToggle":"HTML 源代码","foreColor":"前景色","hiliteColor":"背景色","plainFormatBlock":"段落样式","formatBlock":"段落样式","fontSize":"字体大小","fontName":"字体名称","tabIndent":"制表符缩进","fullScreen":"切换全屏幕","viewSource":"查看 HTML 源代码","print":"打印","newPage":"新建页面","systemShortcut":"只能在浏览器中通过键盘快捷方式执行“${0}”操作。使用 ${1}。"})); \ No newline at end of file
+define("dijit/_editor/nls/zh/commands",({"bold":"粗体","copy":"复制","cut":"剪切","delete":"删除","indent":"缩进","insertHorizontalRule":"水平线","insertOrderedList":"编号列表","insertUnorderedList":"符号列表","italic":"斜体","justifyCenter":"居中","justifyFull":"调整","justifyLeft":"左对齐","justifyRight":"右对齐","outdent":"凸出","paste":"粘贴","redo":"重做","removeFormat":"除去格式","selectAll":"全选","strikethrough":"删除线","subscript":"下标","superscript":"上标","underline":"下划线","undo":"撤销","unlink":"除去链接","createLink":"创建链接","toggleDir":"切换方向","insertImage":"插入图像","insertTable":"插入/编辑表","toggleTableBorder":"切换表格边框","deleteTable":"删除表格","tableProp":"表格属性","htmlToggle":"HTML 源","foreColor":"前景颜色","hiliteColor":"背景颜色","plainFormatBlock":"段落样式","formatBlock":"段落样式","fontSize":"字体大小","fontName":"字体名称","tabIndent":"跳格缩进","fullScreen":"切换全屏幕","viewSource":"查看 HTML 源","print":"打印","newPage":"新建页面","systemShortcut":"只能在浏览器中通过键盘快捷方式执行“${0}”操作。使用 ${1}。","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"})); \ No newline at end of file
diff --git a/lib/dijit/_editor/plugins/AlwaysShowToolbar.js b/lib/dijit/_editor/plugins/AlwaysShowToolbar.js
index 665b4bb7d..20a56fcfa 100644
--- a/lib/dijit/_editor/plugins/AlwaysShowToolbar.js
+++ b/lib/dijit/_editor/plugins/AlwaysShowToolbar.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/plugins/AlwaysShowToolbar",["dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/_base/lang","dojo/_base/sniff","dojo/_base/window","../_Plugin"],function(_1,_2,_3,_4,_5,_6,_7,_8){return _1("dijit._editor.plugins.AlwaysShowToolbar",_8,{_handleScroll:true,setEditor:function(e){if(!e.iframe){return;}this.editor=e;e.onLoadDeferred.addCallback(_5.hitch(this,this.enable));},enable:function(d){this._updateHeight();this.connect(window,"onscroll","globalOnScrollHandler");this.connect(this.editor,"onNormalizedDisplayChanged","_updateHeight");return d;},_updateHeight:function(){var e=this.editor;if(!e.isLoaded){return;}if(e.height){return;}var _9=_4.getMarginSize(e.editNode).h;if(_6("opera")){_9=e.editNode.scrollHeight;}if(!_9){_9=_4.getMarginSize(e.document.body).h;}if(_9==0){return;}if(_6("ie")<=7&&this.editor.minHeight){var _a=parseInt(this.editor.minHeight);if(_9<_a){_9=_a;}}if(_9!=this._lastHeight){this._lastHeight=_9;_4.setMarginBox(e.iframe,{h:this._lastHeight});}},_lastHeight:0,globalOnScrollHandler:function(){var _b=_6("ie")<7;if(!this._handleScroll){return;}var _c=this.editor.header;if(!this._scrollSetUp){this._scrollSetUp=true;this._scrollThreshold=_4.position(_c,true).y;}var _d=_4.docScroll().y;var s=_c.style;if(_d>this._scrollThreshold&&_d<this._scrollThreshold+this._lastHeight){if(!this._fixEnabled){var _e=_4.getMarginSize(_c);this.editor.iframe.style.marginTop=_e.h+"px";if(_b){s.left=_4.position(_c).x;if(_c.previousSibling){this._IEOriginalPos=["after",_c.previousSibling];}else{if(_c.nextSibling){this._IEOriginalPos=["before",_c.nextSibling];}else{this._IEOriginalPos=["last",_c.parentNode];}}_7.body().appendChild(_c);_2.add(_c,"dijitIEFixedToolbar");}else{s.position="fixed";s.top="0px";}_4.setMarginBox(_c,{w:_e.w});s.zIndex=2000;this._fixEnabled=true;}var _f=(this.height)?parseInt(this.editor.height):this.editor._lastHeight;s.display=(_d>this._scrollThreshold+_f)?"none":"";}else{if(this._fixEnabled){this.editor.iframe.style.marginTop="";s.position="";s.top="";s.zIndex="";s.display="";if(_b){s.left="";_2.remove(_c,"dijitIEFixedToolbar");if(this._IEOriginalPos){_3.place(_c,this._IEOriginalPos[1],this._IEOriginalPos[0]);this._IEOriginalPos=null;}else{_3.place(_c,this.editor.iframe,"before");}}s.width="";this._fixEnabled=false;}}},destroy:function(){this._IEOriginalPos=null;this._handleScroll=false;this.inherited(arguments);if(_6("ie")<7){_2.remove(this.editor.header,"dijitIEFixedToolbar");}}});}); \ No newline at end of file
+define("dijit/_editor/plugins/AlwaysShowToolbar",["dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/_base/lang","dojo/sniff","dojo/_base/window","../_Plugin"],function(_1,_2,_3,_4,_5,_6,_7,_8){return _1("dijit._editor.plugins.AlwaysShowToolbar",_8,{_handleScroll:true,setEditor:function(e){if(!e.iframe){return;}this.editor=e;e.onLoadDeferred.then(_5.hitch(this,this.enable));},enable:function(d){this._updateHeight();this.connect(window,"onscroll","globalOnScrollHandler");this.connect(this.editor,"onNormalizedDisplayChanged","_updateHeight");return d;},_updateHeight:function(){var e=this.editor;if(!e.isLoaded){return;}if(e.height){return;}var _9=_4.getMarginSize(e.editNode).h;if(_6("opera")){_9=e.editNode.scrollHeight;}if(!_9){_9=_4.getMarginSize(e.document.body).h;}if(_9==0){return;}if(_6("ie")<=7&&this.editor.minHeight){var _a=parseInt(this.editor.minHeight);if(_9<_a){_9=_a;}}if(_9!=this._lastHeight){this._lastHeight=_9;_4.setMarginBox(e.iframe,{h:this._lastHeight});}},_lastHeight:0,globalOnScrollHandler:function(){var _b=_6("ie")<7;if(!this._handleScroll){return;}var _c=this.editor.header;if(!this._scrollSetUp){this._scrollSetUp=true;this._scrollThreshold=_4.position(_c,true).y;}var _d=_4.docScroll(this.editor.ownerDocument).y;var s=_c.style;if(_d>this._scrollThreshold&&_d<this._scrollThreshold+this._lastHeight){if(!this._fixEnabled){var _e=_4.getMarginSize(_c);this.editor.iframe.style.marginTop=_e.h+"px";if(_b){s.left=_4.position(_c).x;if(_c.previousSibling){this._IEOriginalPos=["after",_c.previousSibling];}else{if(_c.nextSibling){this._IEOriginalPos=["before",_c.nextSibling];}else{this._IEOriginalPos=["last",_c.parentNode];}}this.editor.ownerDocumentBody.appendChild(_c);_2.add(_c,"dijitIEFixedToolbar");}else{s.position="fixed";s.top="0px";}_4.setMarginBox(_c,{w:_e.w});s.zIndex=2000;this._fixEnabled=true;}var _f=(this.height)?parseInt(this.editor.height):this.editor._lastHeight;s.display=(_d>this._scrollThreshold+_f)?"none":"";}else{if(this._fixEnabled){this.editor.iframe.style.marginTop="";s.position="";s.top="";s.zIndex="";s.display="";if(_b){s.left="";_2.remove(_c,"dijitIEFixedToolbar");if(this._IEOriginalPos){_3.place(_c,this._IEOriginalPos[1],this._IEOriginalPos[0]);this._IEOriginalPos=null;}else{_3.place(_c,this.editor.iframe,"before");}}s.width="";this._fixEnabled=false;}}},destroy:function(){this._IEOriginalPos=null;this._handleScroll=false;this.inherited(arguments);if(_6("ie")<7){_2.remove(this.editor.header,"dijitIEFixedToolbar");}}});}); \ No newline at end of file
diff --git a/lib/dijit/_editor/plugins/EnterKeyHandling.js b/lib/dijit/_editor/plugins/EnterKeyHandling.js
index 60b3baa8a..6d226232c 100644
--- a/lib/dijit/_editor/plugins/EnterKeyHandling.js
+++ b/lib/dijit/_editor/plugins/EnterKeyHandling.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/plugins/EnterKeyHandling",["dojo/_base/declare","dojo/dom-construct","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/_base/sniff","dojo/_base/window","dojo/window","../_Plugin","../RichText","../range","../selection"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){return _1("dijit._editor.plugins.EnterKeyHandling",_9,{blockNodeForEnter:"BR",constructor:function(_d){if(_d){if("blockNodeForEnter" in _d){_d.blockNodeForEnter=_d.blockNodeForEnter.toUpperCase();}_5.mixin(this,_d);}},setEditor:function(_e){if(this.editor===_e){return;}this.editor=_e;if(this.blockNodeForEnter=="BR"){this.editor.customUndo=true;_e.onLoadDeferred.then(_5.hitch(this,function(d){this.connect(_e.document,"onkeypress",function(e){if(e.charOrCode==_4.ENTER){var ne=_5.mixin({},e);ne.shiftKey=true;if(!this.handleEnterKey(ne)){_3.stop(e);}}});if(_6("ie")==9){this.connect(_e.document,"onpaste",function(e){setTimeout(dojo.hitch(this,function(){var r=this.editor.document.selection.createRange();r.move("character",-1);r.select();r.move("character",1);r.select();}),0);});}return d;}));}else{if(this.blockNodeForEnter){var h=_5.hitch(this,this.handleEnterKey);_e.addKeyHandler(13,0,0,h);_e.addKeyHandler(13,0,1,h);this.connect(this.editor,"onKeyPressed","onKeyPressed");}}},onKeyPressed:function(){if(this._checkListLater){if(_7.withGlobal(this.editor.window,"isCollapsed",dijit)){var _f=_7.withGlobal(this.editor.window,"getAncestorElement",_c,["LI"]);if(!_f){_a.prototype.execCommand.call(this.editor,"formatblock",this.blockNodeForEnter);var _10=_7.withGlobal(this.editor.window,"getAncestorElement",_c,[this.blockNodeForEnter]);if(_10){_10.innerHTML=this.bogusHtmlContent;if(_6("ie")){var r=this.editor.document.selection.createRange();r.move("character",-1);r.select();}}else{console.error("onKeyPressed: Cannot find the new block node");}}else{if(_6("mozilla")){if(_f.parentNode.parentNode.nodeName=="LI"){_f=_f.parentNode.parentNode;}}var fc=_f.firstChild;if(fc&&fc.nodeType==1&&(fc.nodeName=="UL"||fc.nodeName=="OL")){_f.insertBefore(fc.ownerDocument.createTextNode(" "),fc);var _11=_b.create(this.editor.window);_11.setStart(_f.firstChild,0);var _12=_b.getSelection(this.editor.window,true);_12.removeAllRanges();_12.addRange(_11);}}}this._checkListLater=false;}if(this._pressedEnterInBlock){if(this._pressedEnterInBlock.previousSibling){this.removeTrailingBr(this._pressedEnterInBlock.previousSibling);}delete this._pressedEnterInBlock;}},bogusHtmlContent:"&#160;",blockNodes:/^(?:P|H1|H2|H3|H4|H5|H6|LI)$/,handleEnterKey:function(e){var _13,_14,_15,_16,_17,_18,doc=this.editor.document,br,rs,txt;if(e.shiftKey){var _19=_7.withGlobal(this.editor.window,"getParentElement",_c);var _1a=_b.getAncestor(_19,this.blockNodes);if(_1a){if(_1a.tagName=="LI"){return true;}_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);if(!_14.collapsed){_14.deleteContents();_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);}if(_b.atBeginningOfContainer(_1a,_14.startContainer,_14.startOffset)){br=doc.createElement("br");_15=_b.create(this.editor.window);_1a.insertBefore(br,_1a.firstChild);_15.setStartAfter(br);_13.removeAllRanges();_13.addRange(_15);}else{if(_b.atEndOfContainer(_1a,_14.startContainer,_14.startOffset)){_15=_b.create(this.editor.window);br=doc.createElement("br");_1a.appendChild(br);_1a.appendChild(doc.createTextNode(" "));_15.setStart(_1a.lastChild,0);_13.removeAllRanges();_13.addRange(_15);}else{rs=_14.startContainer;if(rs&&rs.nodeType==3){txt=rs.nodeValue;_7.withGlobal(this.editor.window,function(){_16=doc.createTextNode(txt.substring(0,_14.startOffset));_17=doc.createTextNode(txt.substring(_14.startOffset));_18=doc.createElement("br");if(_17.nodeValue==""&&_6("webkit")){_17=doc.createTextNode(" ");}_2.place(_16,rs,"after");_2.place(_18,_16,"after");_2.place(_17,_18,"after");_2.destroy(rs);_15=_b.create();_15.setStart(_17,0);_13.removeAllRanges();_13.addRange(_15);});return false;}return true;}}}else{_13=_b.getSelection(this.editor.window);if(_13.rangeCount){_14=_13.getRangeAt(0);if(_14&&_14.startContainer){if(!_14.collapsed){_14.deleteContents();_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);}rs=_14.startContainer;if(rs&&rs.nodeType==3){_7.withGlobal(this.editor.window,_5.hitch(this,function(){var _1b=false;var _1c=_14.startOffset;if(rs.length<_1c){ret=this._adjustNodeAndOffset(rs,_1c);rs=ret.node;_1c=ret.offset;}txt=rs.nodeValue;_16=doc.createTextNode(txt.substring(0,_1c));_17=doc.createTextNode(txt.substring(_1c));_18=doc.createElement("br");if(!_17.length){_17=doc.createTextNode(" ");_1b=true;}if(_16.length){_2.place(_16,rs,"after");}else{_16=rs;}_2.place(_18,_16,"after");_2.place(_17,_18,"after");_2.destroy(rs);_15=_b.create();_15.setStart(_17,0);_15.setEnd(_17,_17.length);_13.removeAllRanges();_13.addRange(_15);if(_1b&&!_6("webkit")){_c.remove();}else{_c.collapse(true);}}));}else{var _1d;if(_14.startOffset>=0){_1d=rs.childNodes[_14.startOffset];}_7.withGlobal(this.editor.window,_5.hitch(this,function(){var _1e=doc.createElement("br");var _1f=doc.createTextNode(" ");if(!_1d){rs.appendChild(_1e);rs.appendChild(_1f);}else{_2.place(_1e,_1d,"before");_2.place(_1f,_1e,"after");}_15=_b.create(_7.global);_15.setStart(_1f,0);_15.setEnd(_1f,_1f.length);_13.removeAllRanges();_13.addRange(_15);_c.collapse(true);}));}}}else{_a.prototype.execCommand.call(this.editor,"inserthtml","<br>");}}return false;}var _20=true;_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);if(!_14.collapsed){_14.deleteContents();_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);}var _21=_b.getBlockAncestor(_14.endContainer,null,this.editor.editNode);var _22=_21.blockNode;if((this._checkListLater=(_22&&(_22.nodeName=="LI"||_22.parentNode.nodeName=="LI")))){if(_6("mozilla")){this._pressedEnterInBlock=_22;}if(/^(\s|&nbsp;|&#160;|\xA0|<span\b[^>]*\bclass=['"]Apple-style-span['"][^>]*>(\s|&nbsp;|&#160;|\xA0)<\/span>)?(<br>)?$/.test(_22.innerHTML)){_22.innerHTML="";if(_6("webkit")){_15=_b.create(this.editor.window);_15.setStart(_22,0);_13.removeAllRanges();_13.addRange(_15);}this._checkListLater=false;}return true;}if(!_21.blockNode||_21.blockNode===this.editor.editNode){try{_a.prototype.execCommand.call(this.editor,"formatblock",this.blockNodeForEnter);}catch(e2){}_21={blockNode:_7.withGlobal(this.editor.window,"getAncestorElement",_c,[this.blockNodeForEnter]),blockContainer:this.editor.editNode};if(_21.blockNode){if(_21.blockNode!=this.editor.editNode&&(!(_21.blockNode.textContent||_21.blockNode.innerHTML).replace(/^\s+|\s+$/g,"").length)){this.removeTrailingBr(_21.blockNode);return false;}}else{_21.blockNode=this.editor.editNode;}_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);}var _23=doc.createElement(this.blockNodeForEnter);_23.innerHTML=this.bogusHtmlContent;this.removeTrailingBr(_21.blockNode);var _24=_14.endOffset;var _25=_14.endContainer;if(_25.length<_24){var ret=this._adjustNodeAndOffset(_25,_24);_25=ret.node;_24=ret.offset;}if(_b.atEndOfContainer(_21.blockNode,_25,_24)){if(_21.blockNode===_21.blockContainer){_21.blockNode.appendChild(_23);}else{_2.place(_23,_21.blockNode,"after");}_20=false;_15=_b.create(this.editor.window);_15.setStart(_23,0);_13.removeAllRanges();_13.addRange(_15);if(this.editor.height){_8.scrollIntoView(_23);}}else{if(_b.atBeginningOfContainer(_21.blockNode,_14.startContainer,_14.startOffset)){_2.place(_23,_21.blockNode,_21.blockNode===_21.blockContainer?"first":"before");if(_23.nextSibling&&this.editor.height){_15=_b.create(this.editor.window);_15.setStart(_23.nextSibling,0);_13.removeAllRanges();_13.addRange(_15);_8.scrollIntoView(_23.nextSibling);}_20=false;}else{if(_21.blockNode===_21.blockContainer){_21.blockNode.appendChild(_23);}else{_2.place(_23,_21.blockNode,"after");}_20=false;if(_21.blockNode.style){if(_23.style){if(_21.blockNode.style.cssText){_23.style.cssText=_21.blockNode.style.cssText;}}}rs=_14.startContainer;var _26;if(rs&&rs.nodeType==3){var _27,_28;_24=_14.endOffset;if(rs.length<_24){ret=this._adjustNodeAndOffset(rs,_24);rs=ret.node;_24=ret.offset;}txt=rs.nodeValue;_16=doc.createTextNode(txt.substring(0,_24));_17=doc.createTextNode(txt.substring(_24,txt.length));_2.place(_16,rs,"before");_2.place(_17,rs,"after");_2.destroy(rs);var _29=_16.parentNode;while(_29!==_21.blockNode){var tg=_29.tagName;var _2a=doc.createElement(tg);if(_29.style){if(_2a.style){if(_29.style.cssText){_2a.style.cssText=_29.style.cssText;}}}if(_29.tagName==="FONT"){if(_29.color){_2a.color=_29.color;}if(_29.face){_2a.face=_29.face;}if(_29.size){_2a.size=_29.size;}}_27=_17;while(_27){_28=_27.nextSibling;_2a.appendChild(_27);_27=_28;}_2.place(_2a,_29,"after");_16=_29;_17=_2a;_29=_29.parentNode;}_27=_17;if(_27.nodeType==1||(_27.nodeType==3&&_27.nodeValue)){_23.innerHTML="";}_26=_27;while(_27){_28=_27.nextSibling;_23.appendChild(_27);_27=_28;}}_15=_b.create(this.editor.window);var _2b;var _2c=_26;if(this.blockNodeForEnter!=="BR"){while(_2c){_2b=_2c;_28=_2c.firstChild;_2c=_28;}if(_2b&&_2b.parentNode){_23=_2b.parentNode;_15.setStart(_23,0);_13.removeAllRanges();_13.addRange(_15);if(this.editor.height){_8.scrollIntoView(_23);}if(_6("mozilla")){this._pressedEnterInBlock=_21.blockNode;}}else{_20=true;}}else{_15.setStart(_23,0);_13.removeAllRanges();_13.addRange(_15);if(this.editor.height){_8.scrollIntoView(_23);}if(_6("mozilla")){this._pressedEnterInBlock=_21.blockNode;}}}}return _20;},_adjustNodeAndOffset:function(_2d,_2e){while(_2d.length<_2e&&_2d.nextSibling&&_2d.nextSibling.nodeType==3){_2e=_2e-_2d.length;_2d=_2d.nextSibling;}return {"node":_2d,"offset":_2e};},removeTrailingBr:function(_2f){var _30=/P|DIV|LI/i.test(_2f.tagName)?_2f:_c.getParentOfType(_2f,["P","DIV","LI"]);if(!_30){return;}if(_30.lastChild){if((_30.childNodes.length>1&&_30.lastChild.nodeType==3&&/^[\s\xAD]*$/.test(_30.lastChild.nodeValue))||_30.lastChild.tagName=="BR"){_2.destroy(_30.lastChild);}}if(!_30.childNodes.length){_30.innerHTML=this.bogusHtmlContent;}}});}); \ No newline at end of file
+define("dijit/_editor/plugins/EnterKeyHandling",["dojo/_base/declare","dojo/dom-construct","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/_base/window","dojo/window","../_Plugin","../RichText","../range","../../_base/focus"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){return _1("dijit._editor.plugins.EnterKeyHandling",_9,{blockNodeForEnter:"BR",constructor:function(_d){if(_d){if("blockNodeForEnter" in _d){_d.blockNodeForEnter=_d.blockNodeForEnter.toUpperCase();}_5.mixin(this,_d);}},setEditor:function(_e){if(this.editor===_e){return;}this.editor=_e;if(this.blockNodeForEnter=="BR"){this.editor.customUndo=true;_e.onLoadDeferred.then(_5.hitch(this,function(d){this.connect(_e.document,"onkeypress",function(e){if(e.charOrCode==_4.ENTER){var ne=_5.mixin({},e);ne.shiftKey=true;if(!this.handleEnterKey(ne)){_3.stop(e);}}});if(_6("ie")>=9){this.connect(_e.document,"onpaste",function(e){setTimeout(dojo.hitch(this,function(){var r=this.editor.document.selection.createRange();r.move("character",-1);r.select();r.move("character",1);r.select();}),0);});}return d;}));}else{if(this.blockNodeForEnter){var h=_5.hitch(this,this.handleEnterKey);_e.addKeyHandler(13,0,0,h);_e.addKeyHandler(13,0,1,h);this.connect(this.editor,"onKeyPressed","onKeyPressed");}}},onKeyPressed:function(){if(this._checkListLater){if(_7.withGlobal(this.editor.window,"isCollapsed",_c)){var _f=this.editor._sCall("getAncestorElement",["LI"]);if(!_f){_a.prototype.execCommand.call(this.editor,"formatblock",this.blockNodeForEnter);var _10=this.editor._sCall("getAncestorElement",[this.blockNodeForEnter]);if(_10){_10.innerHTML=this.bogusHtmlContent;if(_6("ie")<=9){var r=this.editor.document.selection.createRange();r.move("character",-1);r.select();}}else{console.error("onKeyPressed: Cannot find the new block node");}}else{if(_6("mozilla")){if(_f.parentNode.parentNode.nodeName=="LI"){_f=_f.parentNode.parentNode;}}var fc=_f.firstChild;if(fc&&fc.nodeType==1&&(fc.nodeName=="UL"||fc.nodeName=="OL")){_f.insertBefore(fc.ownerDocument.createTextNode(" "),fc);var _11=_b.create(this.editor.window);_11.setStart(_f.firstChild,0);var _12=_b.getSelection(this.editor.window,true);_12.removeAllRanges();_12.addRange(_11);}}}this._checkListLater=false;}if(this._pressedEnterInBlock){if(this._pressedEnterInBlock.previousSibling){this.removeTrailingBr(this._pressedEnterInBlock.previousSibling);}delete this._pressedEnterInBlock;}},bogusHtmlContent:"&#160;",blockNodes:/^(?:P|H1|H2|H3|H4|H5|H6|LI)$/,handleEnterKey:function(e){var _13,_14,_15,_16,_17,_18,doc=this.editor.document,br,rs,txt;if(e.shiftKey){var _19=this.editor._sCall("getParentElement",[]);var _1a=_b.getAncestor(_19,this.blockNodes);if(_1a){if(_1a.tagName=="LI"){return true;}_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);if(!_14.collapsed){_14.deleteContents();_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);}if(_b.atBeginningOfContainer(_1a,_14.startContainer,_14.startOffset)){br=doc.createElement("br");_15=_b.create(this.editor.window);_1a.insertBefore(br,_1a.firstChild);_15.setStartAfter(br);_13.removeAllRanges();_13.addRange(_15);}else{if(_b.atEndOfContainer(_1a,_14.startContainer,_14.startOffset)){_15=_b.create(this.editor.window);br=doc.createElement("br");_1a.appendChild(br);_1a.appendChild(doc.createTextNode(" "));_15.setStart(_1a.lastChild,0);_13.removeAllRanges();_13.addRange(_15);}else{rs=_14.startContainer;if(rs&&rs.nodeType==3){txt=rs.nodeValue;_16=doc.createTextNode(txt.substring(0,_14.startOffset));_17=doc.createTextNode(txt.substring(_14.startOffset));_18=doc.createElement("br");if(_17.nodeValue==""&&_6("webkit")){_17=doc.createTextNode(" ");}_2.place(_16,rs,"after");_2.place(_18,_16,"after");_2.place(_17,_18,"after");_2.destroy(rs);_15=_b.create(this.editor.window);_15.setStart(_17,0);_13.removeAllRanges();_13.addRange(_15);return false;}return true;}}}else{_13=_b.getSelection(this.editor.window);if(_13.rangeCount){_14=_13.getRangeAt(0);if(_14&&_14.startContainer){if(!_14.collapsed){_14.deleteContents();_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);}rs=_14.startContainer;if(rs&&rs.nodeType==3){var _1b=false;var _1c=_14.startOffset;if(rs.length<_1c){ret=this._adjustNodeAndOffset(rs,_1c);rs=ret.node;_1c=ret.offset;}txt=rs.nodeValue;_16=doc.createTextNode(txt.substring(0,_1c));_17=doc.createTextNode(txt.substring(_1c));_18=doc.createElement("br");if(!_17.length){_17=doc.createTextNode(" ");_1b=true;}if(_16.length){_2.place(_16,rs,"after");}else{_16=rs;}_2.place(_18,_16,"after");_2.place(_17,_18,"after");_2.destroy(rs);_15=_b.create(this.editor.window);_15.setStart(_17,0);_15.setEnd(_17,_17.length);_13.removeAllRanges();_13.addRange(_15);if(_1b&&!_6("webkit")){this.editor._sCall("remove",[]);}else{this.editor._sCall("collapse",[true]);}}else{var _1d;if(_14.startOffset>=0){_1d=rs.childNodes[_14.startOffset];}var _18=doc.createElement("br");var _17=doc.createTextNode(" ");if(!_1d){rs.appendChild(_18);rs.appendChild(_17);}else{_2.place(_18,_1d,"before");_2.place(_17,_18,"after");}_15=_b.create(this.editor.window);_15.setStart(_17,0);_15.setEnd(_17,_17.length);_13.removeAllRanges();_13.addRange(_15);this.editor._sCall("collapse",[true]);}}}else{_a.prototype.execCommand.call(this.editor,"inserthtml","<br>");}}return false;}var _1e=true;_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);if(!_14.collapsed){_14.deleteContents();_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);}var _1f=_b.getBlockAncestor(_14.endContainer,null,this.editor.editNode);var _20=_1f.blockNode;if((this._checkListLater=(_20&&(_20.nodeName=="LI"||_20.parentNode.nodeName=="LI")))){if(_6("mozilla")){this._pressedEnterInBlock=_20;}if(/^(\s|&nbsp;|&#160;|\xA0|<span\b[^>]*\bclass=['"]Apple-style-span['"][^>]*>(\s|&nbsp;|&#160;|\xA0)<\/span>)?(<br>)?$/.test(_20.innerHTML)){_20.innerHTML="";if(_6("webkit")){_15=_b.create(this.editor.window);_15.setStart(_20,0);_13.removeAllRanges();_13.addRange(_15);}this._checkListLater=false;}return true;}if(!_1f.blockNode||_1f.blockNode===this.editor.editNode){try{_a.prototype.execCommand.call(this.editor,"formatblock",this.blockNodeForEnter);}catch(e2){}_1f={blockNode:this.editor._sCall("getAncestorElement",[this.blockNodeForEnter]),blockContainer:this.editor.editNode};if(_1f.blockNode){if(_1f.blockNode!=this.editor.editNode&&(!(_1f.blockNode.textContent||_1f.blockNode.innerHTML).replace(/^\s+|\s+$/g,"").length)){this.removeTrailingBr(_1f.blockNode);return false;}}else{_1f.blockNode=this.editor.editNode;}_13=_b.getSelection(this.editor.window);_14=_13.getRangeAt(0);}var _21=doc.createElement(this.blockNodeForEnter);_21.innerHTML=this.bogusHtmlContent;this.removeTrailingBr(_1f.blockNode);var _22=_14.endOffset;var _23=_14.endContainer;if(_23.length<_22){var ret=this._adjustNodeAndOffset(_23,_22);_23=ret.node;_22=ret.offset;}if(_b.atEndOfContainer(_1f.blockNode,_23,_22)){if(_1f.blockNode===_1f.blockContainer){_1f.blockNode.appendChild(_21);}else{_2.place(_21,_1f.blockNode,"after");}_1e=false;_15=_b.create(this.editor.window);_15.setStart(_21,0);_13.removeAllRanges();_13.addRange(_15);if(this.editor.height){_8.scrollIntoView(_21);}}else{if(_b.atBeginningOfContainer(_1f.blockNode,_14.startContainer,_14.startOffset)){_2.place(_21,_1f.blockNode,_1f.blockNode===_1f.blockContainer?"first":"before");if(_21.nextSibling&&this.editor.height){_15=_b.create(this.editor.window);_15.setStart(_21.nextSibling,0);_13.removeAllRanges();_13.addRange(_15);_8.scrollIntoView(_21.nextSibling);}_1e=false;}else{if(_1f.blockNode===_1f.blockContainer){_1f.blockNode.appendChild(_21);}else{_2.place(_21,_1f.blockNode,"after");}_1e=false;if(_1f.blockNode.style){if(_21.style){if(_1f.blockNode.style.cssText){_21.style.cssText=_1f.blockNode.style.cssText;}}}rs=_14.startContainer;var _24;if(rs&&rs.nodeType==3){var _25,_26;_22=_14.endOffset;if(rs.length<_22){ret=this._adjustNodeAndOffset(rs,_22);rs=ret.node;_22=ret.offset;}txt=rs.nodeValue;_16=doc.createTextNode(txt.substring(0,_22));_17=doc.createTextNode(txt.substring(_22,txt.length));_2.place(_16,rs,"before");_2.place(_17,rs,"after");_2.destroy(rs);var _27=_16.parentNode;while(_27!==_1f.blockNode){var tg=_27.tagName;var _28=doc.createElement(tg);if(_27.style){if(_28.style){if(_27.style.cssText){_28.style.cssText=_27.style.cssText;}}}if(_27.tagName==="FONT"){if(_27.color){_28.color=_27.color;}if(_27.face){_28.face=_27.face;}if(_27.size){_28.size=_27.size;}}_25=_17;while(_25){_26=_25.nextSibling;_28.appendChild(_25);_25=_26;}_2.place(_28,_27,"after");_16=_27;_17=_28;_27=_27.parentNode;}_25=_17;if(_25.nodeType==1||(_25.nodeType==3&&_25.nodeValue)){_21.innerHTML="";}_24=_25;while(_25){_26=_25.nextSibling;_21.appendChild(_25);_25=_26;}}_15=_b.create(this.editor.window);var _29;var _2a=_24;if(this.blockNodeForEnter!=="BR"){while(_2a){_29=_2a;_26=_2a.firstChild;_2a=_26;}if(_29&&_29.parentNode){_21=_29.parentNode;_15.setStart(_21,0);_13.removeAllRanges();_13.addRange(_15);if(this.editor.height){_8.scrollIntoView(_21);}if(_6("mozilla")){this._pressedEnterInBlock=_1f.blockNode;}}else{_1e=true;}}else{_15.setStart(_21,0);_13.removeAllRanges();_13.addRange(_15);if(this.editor.height){_8.scrollIntoView(_21);}if(_6("mozilla")){this._pressedEnterInBlock=_1f.blockNode;}}}}return _1e;},_adjustNodeAndOffset:function(_2b,_2c){while(_2b.length<_2c&&_2b.nextSibling&&_2b.nextSibling.nodeType==3){_2c=_2c-_2b.length;_2b=_2b.nextSibling;}return {"node":_2b,"offset":_2c};},removeTrailingBr:function(_2d){var _2e=/P|DIV|LI/i.test(_2d.tagName)?_2d:this.editor._sCall("getParentOfType",[_2d,["P","DIV","LI"]]);if(!_2e){return;}if(_2e.lastChild){if((_2e.childNodes.length>1&&_2e.lastChild.nodeType==3&&/^[\s\xAD]*$/.test(_2e.lastChild.nodeValue))||_2e.lastChild.tagName=="BR"){_2.destroy(_2e.lastChild);}}if(!_2e.childNodes.length){_2e.innerHTML=this.bogusHtmlContent;}}});}); \ No newline at end of file
diff --git a/lib/dijit/_editor/plugins/FontChoice.js b/lib/dijit/_editor/plugins/FontChoice.js
index 7e12ac008..f96894ad7 100644
--- a/lib/dijit/_editor/plugins/FontChoice.js
+++ b/lib/dijit/_editor/plugins/FontChoice.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/plugins/FontChoice",["dojo/_base/array","dojo/_base/declare","dojo/dom-construct","dojo/i18n","dojo/_base/lang","dojo/store/Memory","dojo/_base/window","../../registry","../../_Widget","../../_TemplatedMixin","../../_WidgetsInTemplateMixin","../../form/FilteringSelect","../_Plugin","../range","../selection","dojo/i18n!../nls/FontChoice"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f){var _10=_2("dijit._editor.plugins._FontDropDown",[_9,_a,_b],{label:"",plainText:false,templateString:"<span style='white-space: nowrap' class='dijit dijitReset dijitInline'>"+"<label class='dijitLeft dijitInline' for='${selectId}'>${label}</label>"+"<input data-dojo-type='dijit.form.FilteringSelect' required='false' "+"data-dojo-props='labelType:\"html\", labelAttr:\"label\", searchAttr:\"name\"' "+"tabIndex='-1' id='${selectId}' data-dojo-attach-point='select' value=''/>"+"</span>",postMixInProperties:function(){this.inherited(arguments);this.strings=_4.getLocalization("dijit._editor","FontChoice");this.label=this.strings[this.command];this.id=_8.getUniqueId(this.declaredClass.replace(/\./g,"_"));this.selectId=this.id+"_select";this.inherited(arguments);},postCreate:function(){this.select.set("store",new _6({idProperty:"value",data:_1.map(this.values,function(_11){var _12=this.strings[_11]||_11;return {label:this.getLabel(_11,_12),name:_12,value:_11};},this)}));this.select.set("value","",false);this.disabled=this.select.get("disabled");},_setValueAttr:function(_13,_14){_14=_14!==false;this.select.set("value",_1.indexOf(this.values,_13)<0?"":_13,_14);if(!_14){this.select._lastValueReported=null;}},_getValueAttr:function(){return this.select.get("value");},focus:function(){this.select.focus();},_setDisabledAttr:function(_15){this.disabled=_15;this.select.set("disabled",_15);}});var _16=_2("dijit._editor.plugins._FontNameDropDown",_10,{generic:false,command:"fontName",postMixInProperties:function(){if(!this.values){this.values=this.generic?["serif","sans-serif","monospace","cursive","fantasy"]:["Arial","Times New Roman","Comic Sans MS","Courier New"];}this.inherited(arguments);},getLabel:function(_17,_18){if(this.plainText){return _18;}else{return "<div style='font-family: "+_17+"'>"+_18+"</div>";}},_setValueAttr:function(_19,_1a){_1a=_1a!==false;if(this.generic){var map={"Arial":"sans-serif","Helvetica":"sans-serif","Myriad":"sans-serif","Times":"serif","Times New Roman":"serif","Comic Sans MS":"cursive","Apple Chancery":"cursive","Courier":"monospace","Courier New":"monospace","Papyrus":"fantasy","Estrangelo Edessa":"cursive","Gabriola":"fantasy"};_19=map[_19]||_19;}this.inherited(arguments,[_19,_1a]);}});var _1b=_2("dijit._editor.plugins._FontSizeDropDown",_10,{command:"fontSize",values:[1,2,3,4,5,6,7],getLabel:function(_1c,_1d){if(this.plainText){return _1d;}else{return "<font size="+_1c+"'>"+_1d+"</font>";}},_setValueAttr:function(_1e,_1f){_1f=_1f!==false;if(_1e.indexOf&&_1e.indexOf("px")!=-1){var _20=parseInt(_1e,10);_1e={10:1,13:2,16:3,18:4,24:5,32:6,48:7}[_20]||_1e;}this.inherited(arguments,[_1e,_1f]);}});var _21=_2("dijit._editor.plugins._FormatBlockDropDown",_10,{command:"formatBlock",values:["noFormat","p","h1","h2","h3","pre"],postCreate:function(){this.inherited(arguments);this.set("value","noFormat",false);},getLabel:function(_22,_23){if(this.plainText||_22=="noFormat"){return _23;}else{return "<"+_22+">"+_23+"</"+_22+">";}},_execCommand:function(_24,_25,_26){if(_26==="noFormat"){var _27;var end;var sel=_e.getSelection(_24.window);if(sel&&sel.rangeCount>0){var _28=sel.getRangeAt(0);var _29,tag;if(_28){_27=_28.startContainer;end=_28.endContainer;while(_27&&_27!==_24.editNode&&_27!==_24.document.body&&_27.nodeType!==1){_27=_27.parentNode;}while(end&&end!==_24.editNode&&end!==_24.document.body&&end.nodeType!==1){end=end.parentNode;}var _2a=_5.hitch(this,function(_2b,ary){if(_2b.childNodes&&_2b.childNodes.length){var i;for(i=0;i<_2b.childNodes.length;i++){var c=_2b.childNodes[i];if(c.nodeType==1){if(_7.withGlobal(_24.window,"inSelection",_f,[c])){var tag=c.tagName?c.tagName.toLowerCase():"";if(_1.indexOf(this.values,tag)!==-1){ary.push(c);}_2a(c,ary);}}}}});var _2c=_5.hitch(this,function(_2d){if(_2d&&_2d.length){_24.beginEditing();while(_2d.length){this._removeFormat(_24,_2d.pop());}_24.endEditing();}});var _2e=[];if(_27==end){var _2f;_29=_27;while(_29&&_29!==_24.editNode&&_29!==_24.document.body){if(_29.nodeType==1){tag=_29.tagName?_29.tagName.toLowerCase():"";if(_1.indexOf(this.values,tag)!==-1){_2f=_29;break;}}_29=_29.parentNode;}_2a(_27,_2e);if(_2f){_2e=[_2f].concat(_2e);}_2c(_2e);}else{_29=_27;while(_7.withGlobal(_24.window,"inSelection",_f,[_29])){if(_29.nodeType==1){tag=_29.tagName?_29.tagName.toLowerCase():"";if(_1.indexOf(this.values,tag)!==-1){_2e.push(_29);}_2a(_29,_2e);}_29=_29.nextSibling;}_2c(_2e);}_24.onDisplayChanged();}}}else{_24.execCommand(_25,_26);}},_removeFormat:function(_30,_31){if(_30.customUndo){while(_31.firstChild){_3.place(_31.firstChild,_31,"before");}_31.parentNode.removeChild(_31);}else{_7.withGlobal(_30.window,"selectElementChildren",_f,[_31]);var _32=_7.withGlobal(_30.window,"getSelectedHtml",_f,[null]);_7.withGlobal(_30.window,"selectElement",_f,[_31]);_30.execCommand("inserthtml",_32||"");}}});var _33=_2("dijit._editor.plugins.FontChoice",_d,{useDefaultCommand:false,_initButton:function(){var _34={fontName:_16,fontSize:_1b,formatBlock:_21}[this.command],_35=this.params;if(this.params.custom){_35.values=this.params.custom;}var _36=this.editor;this.button=new _34(_5.delegate({dir:_36.dir,lang:_36.lang},_35));this.connect(this.button.select,"onChange",function(_37){this.editor.focus();if(this.command=="fontName"&&_37.indexOf(" ")!=-1){_37="'"+_37+"'";}if(this.button._execCommand){this.button._execCommand(this.editor,this.command,_37);}else{this.editor.execCommand(this.command,_37);}});},updateState:function(){var _38=this.editor;var _39=this.command;if(!_38||!_38.isLoaded||!_39.length){return;}if(this.button){var _3a=this.get("disabled");this.button.set("disabled",_3a);if(_3a){return;}var _3b;try{_3b=_38.queryCommandValue(_39)||"";}catch(e){_3b="";}var _3c=_5.isString(_3b)&&_3b.match(/'([^']*)'/);if(_3c){_3b=_3c[1];}if(_39==="formatBlock"){if(!_3b||_3b=="p"){_3b=null;var _3d;var sel=_e.getSelection(this.editor.window);if(sel&&sel.rangeCount>0){var _3e=sel.getRangeAt(0);if(_3e){_3d=_3e.endContainer;}}while(_3d&&_3d!==_38.editNode&&_3d!==_38.document){var tg=_3d.tagName?_3d.tagName.toLowerCase():"";if(tg&&_1.indexOf(this.button.values,tg)>-1){_3b=tg;break;}_3d=_3d.parentNode;}if(!_3b){_3b="noFormat";}}else{if(_1.indexOf(this.button.values,_3b)<0){_3b="noFormat";}}}if(_3b!==this.button.get("value")){this.button.set("value",_3b,false);}}}});_1.forEach(["fontName","fontSize","formatBlock"],function(_3f){_d.registry[_3f]=function(_40){return new _33({command:_3f,plainText:_40.plainText});};});}); \ No newline at end of file
+define("dijit/_editor/plugins/FontChoice",["dojo/_base/array","dojo/_base/declare","dojo/dom-construct","dojo/i18n","dojo/_base/lang","dojo/store/Memory","../../registry","../../_Widget","../../_TemplatedMixin","../../_WidgetsInTemplateMixin","../../form/FilteringSelect","../_Plugin","../range","dojo/i18n!../nls/FontChoice"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d){var _e=_2("dijit._editor.plugins._FontDropDown",[_8,_9,_a],{label:"",plainText:false,templateString:"<span style='white-space: nowrap' class='dijit dijitReset dijitInline'>"+"<label class='dijitLeft dijitInline' for='${selectId}'>${label}</label>"+"<input data-dojo-type='dijit.form.FilteringSelect' required='false' "+"data-dojo-props='labelType:\"html\", labelAttr:\"label\", searchAttr:\"name\"' "+"tabIndex='-1' id='${selectId}' data-dojo-attach-point='select' value=''/>"+"</span>",postMixInProperties:function(){this.inherited(arguments);this.strings=_4.getLocalization("dijit._editor","FontChoice");this.label=this.strings[this.command];this.id=_7.getUniqueId(this.declaredClass.replace(/\./g,"_"));this.selectId=this.id+"_select";this.inherited(arguments);},postCreate:function(){this.select.set("store",new _6({idProperty:"value",data:_1.map(this.values,function(_f){var _10=this.strings[_f]||_f;return {label:this.getLabel(_f,_10),name:_10,value:_f};},this)}));this.select.set("value","",false);this.disabled=this.select.get("disabled");},_setValueAttr:function(_11,_12){_12=_12!==false;this.select.set("value",_1.indexOf(this.values,_11)<0?"":_11,_12);if(!_12){this.select._lastValueReported=null;}},_getValueAttr:function(){return this.select.get("value");},focus:function(){this.select.focus();},_setDisabledAttr:function(_13){this.disabled=_13;this.select.set("disabled",_13);}});var _14=_2("dijit._editor.plugins._FontNameDropDown",_e,{generic:false,command:"fontName",postMixInProperties:function(){if(!this.values){this.values=this.generic?["serif","sans-serif","monospace","cursive","fantasy"]:["Arial","Times New Roman","Comic Sans MS","Courier New"];}this.inherited(arguments);},getLabel:function(_15,_16){if(this.plainText){return _16;}else{return "<div style='font-family: "+_15+"'>"+_16+"</div>";}},_setValueAttr:function(_17,_18){_18=_18!==false;if(this.generic){var map={"Arial":"sans-serif","Helvetica":"sans-serif","Myriad":"sans-serif","Times":"serif","Times New Roman":"serif","Comic Sans MS":"cursive","Apple Chancery":"cursive","Courier":"monospace","Courier New":"monospace","Papyrus":"fantasy","Estrangelo Edessa":"cursive","Gabriola":"fantasy"};_17=map[_17]||_17;}this.inherited(arguments,[_17,_18]);}});var _19=_2("dijit._editor.plugins._FontSizeDropDown",_e,{command:"fontSize",values:[1,2,3,4,5,6,7],getLabel:function(_1a,_1b){if(this.plainText){return _1b;}else{return "<font size="+_1a+"'>"+_1b+"</font>";}},_setValueAttr:function(_1c,_1d){_1d=_1d!==false;if(_1c.indexOf&&_1c.indexOf("px")!=-1){var _1e=parseInt(_1c,10);_1c={10:1,13:2,16:3,18:4,24:5,32:6,48:7}[_1e]||_1c;}this.inherited(arguments,[_1c,_1d]);}});var _1f=_2("dijit._editor.plugins._FormatBlockDropDown",_e,{command:"formatBlock",values:["noFormat","p","h1","h2","h3","pre"],postCreate:function(){this.inherited(arguments);this.set("value","noFormat",false);},getLabel:function(_20,_21){if(this.plainText||_20=="noFormat"){return _21;}else{return "<"+_20+">"+_21+"</"+_20+">";}},_execCommand:function(_22,_23,_24){if(_24==="noFormat"){var _25;var end;var sel=_d.getSelection(_22.window);if(sel&&sel.rangeCount>0){var _26=sel.getRangeAt(0);var _27,tag;if(_26){_25=_26.startContainer;end=_26.endContainer;while(_25&&_25!==_22.editNode&&_25!==_22.document.body&&_25.nodeType!==1){_25=_25.parentNode;}while(end&&end!==_22.editNode&&end!==_22.document.body&&end.nodeType!==1){end=end.parentNode;}var _28=_5.hitch(this,function(_29,ary){if(_29.childNodes&&_29.childNodes.length){var i;for(i=0;i<_29.childNodes.length;i++){var c=_29.childNodes[i];if(c.nodeType==1){if(_22._sCall("inSelection",[c])){var tag=c.tagName?c.tagName.toLowerCase():"";if(_1.indexOf(this.values,tag)!==-1){ary.push(c);}_28(c,ary);}}}}});var _2a=_5.hitch(this,function(_2b){if(_2b&&_2b.length){_22.beginEditing();while(_2b.length){this._removeFormat(_22,_2b.pop());}_22.endEditing();}});var _2c=[];if(_25==end){var _2d;_27=_25;while(_27&&_27!==_22.editNode&&_27!==_22.document.body){if(_27.nodeType==1){tag=_27.tagName?_27.tagName.toLowerCase():"";if(_1.indexOf(this.values,tag)!==-1){_2d=_27;break;}}_27=_27.parentNode;}_28(_25,_2c);if(_2d){_2c=[_2d].concat(_2c);}_2a(_2c);}else{_27=_25;while(_22._sCall("inSelection",[_27])){if(_27.nodeType==1){tag=_27.tagName?_27.tagName.toLowerCase():"";if(_1.indexOf(this.values,tag)!==-1){_2c.push(_27);}_28(_27,_2c);}_27=_27.nextSibling;}_2a(_2c);}_22.onDisplayChanged();}}}else{_22.execCommand(_23,_24);}},_removeFormat:function(_2e,_2f){if(_2e.customUndo){while(_2f.firstChild){_3.place(_2f.firstChild,_2f,"before");}_2f.parentNode.removeChild(_2f);}else{_2e._sCall("selectElementChildren",[_2f]);var _30=_2e._sCall("getSelectedHtml",[]);_2e._sCall("selectElement",[_2f]);_2e.execCommand("inserthtml",_30||"");}}});var _31=_2("dijit._editor.plugins.FontChoice",_c,{useDefaultCommand:false,_initButton:function(){var _32={fontName:_14,fontSize:_19,formatBlock:_1f}[this.command],_33=this.params;if(this.params.custom){_33.values=this.params.custom;}var _34=this.editor;this.button=new _32(_5.delegate({dir:_34.dir,lang:_34.lang},_33));this.connect(this.button.select,"onChange",function(_35){this.editor.focus();if(this.command=="fontName"&&_35.indexOf(" ")!=-1){_35="'"+_35+"'";}if(this.button._execCommand){this.button._execCommand(this.editor,this.command,_35);}else{this.editor.execCommand(this.command,_35);}});},updateState:function(){var _36=this.editor;var _37=this.command;if(!_36||!_36.isLoaded||!_37.length){return;}if(this.button){var _38=this.get("disabled");this.button.set("disabled",_38);if(_38){return;}var _39;try{_39=_36.queryCommandValue(_37)||"";}catch(e){_39="";}var _3a=_5.isString(_39)&&_39.match(/'([^']*)'/);if(_3a){_39=_3a[1];}if(_37==="formatBlock"){if(!_39||_39=="p"){_39=null;var _3b;var sel=_d.getSelection(this.editor.window);if(sel&&sel.rangeCount>0){var _3c=sel.getRangeAt(0);if(_3c){_3b=_3c.endContainer;}}while(_3b&&_3b!==_36.editNode&&_3b!==_36.document){var tg=_3b.tagName?_3b.tagName.toLowerCase():"";if(tg&&_1.indexOf(this.button.values,tg)>-1){_39=tg;break;}_3b=_3b.parentNode;}if(!_39){_39="noFormat";}}else{if(_1.indexOf(this.button.values,_39)<0){_39="noFormat";}}}if(_39!==this.button.get("value")){this.button.set("value",_39,false);}}}});_1.forEach(["fontName","fontSize","formatBlock"],function(_3d){_c.registry[_3d]=function(_3e){return new _31({command:_3d,plainText:_3e.plainText});};});_31._FontDropDown=_e;_31._FontNameDropDown=_14;_31._FontSizeDropDown=_19;_31._FormatBlockDropDown=_1f;return _31;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/plugins/FullScreen.js b/lib/dijit/_editor/plugins/FullScreen.js
index 139f630dc..458dbf8b7 100644
--- a/lib/dijit/_editor/plugins/FullScreen.js
+++ b/lib/dijit/_editor/plugins/FullScreen.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/plugins/FullScreen",["dojo/aspect","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/i18n","dojo/keys","dojo/_base/lang","dojo/on","dojo/_base/sniff","dojo/_base/window","dojo/window","../../focus","../_Plugin","../../form/ToggleButton","../../registry","dojo/i18n!../nls/commands"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,on,_a,_b,_c,_d,_e,_f,_10){var _11=_2("dijit._editor.plugins.FullScreen",_e,{zIndex:500,_origState:null,_origiFrameState:null,_resizeHandle:null,isFullscreen:false,toggle:function(){this.button.set("checked",!this.button.get("checked"));},_initButton:function(){var _12=_7.getLocalization("dijit._editor","commands"),_13=this.editor;this.button=new _f({label:_12["fullScreen"],dir:_13.dir,lang:_13.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"FullScreen",tabIndex:"-1",onChange:_9.hitch(this,"_setFullScreen")});},setEditor:function(_14){this.editor=_14;this._initButton();this.editor.addKeyHandler(_8.F11,true,true,_9.hitch(this,function(e){this.toggle();_6.stop(e);setTimeout(_9.hitch(this,function(){this.editor.focus();}),250);return true;}));this.connect(this.editor.domNode,"onkeydown","_containFocus");},_containFocus:function(e){if(this.isFullscreen){var ed=this.editor;if(!ed.isTabIndent&&ed._fullscreen_oldOnKeyDown&&e.keyCode===_8.TAB){var f=_d.curNode;var avn=this._getAltViewNode();if(f==ed.iframe||(avn&&f===avn)){setTimeout(_9.hitch(this,function(){ed.toolbar.focus();}),10);}else{if(avn&&_5.get(ed.iframe,"display")==="none"){setTimeout(_9.hitch(this,function(){_d.focus(avn);}),10);}else{setTimeout(_9.hitch(this,function(){ed.focus();}),10);}}_6.stop(e);}else{if(ed._fullscreen_oldOnKeyDown){ed._fullscreen_oldOnKeyDown(e);}}}},_resizeEditor:function(){var vp=_c.getBox();_4.setMarginBox(this.editor.domNode,{w:vp.w,h:vp.h});var _15=this.editor.getHeaderHeight();var _16=this.editor.getFooterHeight();var _17=_4.getPadBorderExtents(this.editor.domNode);var _18=_4.getPadBorderExtents(this.editor.iframe.parentNode);var _19=_4.getMarginExtents(this.editor.iframe.parentNode);var _1a=vp.h-(_15+_17.h+_16);_4.setMarginBox(this.editor.iframe.parentNode,{h:_1a,w:vp.w});_4.setMarginBox(this.editor.iframe,{h:_1a-(_18.h+_19.h)});},_getAltViewNode:function(){},_setFullScreen:function(_1b){var vp=_c.getBox();var ed=this.editor;var _1c=_b.body();var _1d=ed.domNode.parentNode;this.isFullscreen=_1b;if(_1b){while(_1d&&_1d!==_b.body()){_3.add(_1d,"dijitForceStatic");_1d=_1d.parentNode;}this._editorResizeHolder=this.editor.resize;ed.resize=function(){};ed._fullscreen_oldOnKeyDown=ed.onKeyDown;ed.onKeyDown=_9.hitch(this,this._containFocus);this._origState={};this._origiFrameState={};var _1e=ed.domNode,_1f=_1e&&_1e.style||{};this._origState={width:_1f.width||"",height:_1f.height||"",top:_5.get(_1e,"top")||"",left:_5.get(_1e,"left")||"",position:_5.get(_1e,"position")||"static",marginBox:_4.getMarginBox(ed.domNode)};var _20=ed.iframe,_21=_20&&_20.style||{};var bc=_5.get(ed.iframe,"backgroundColor");this._origiFrameState={backgroundColor:bc||"transparent",width:_21.width||"auto",height:_21.height||"auto",zIndex:_21.zIndex||""};_5.set(ed.domNode,{position:"absolute",top:"0px",left:"0px",zIndex:this.zIndex,width:vp.w+"px",height:vp.h+"px"});_5.set(ed.iframe,{height:"100%",width:"100%",zIndex:this.zIndex,backgroundColor:bc!=="transparent"&&bc!=="rgba(0, 0, 0, 0)"?bc:"white"});_5.set(ed.iframe.parentNode,{height:"95%",width:"100%"});if(_1c.style&&_1c.style.overflow){this._oldOverflow=_5.get(_1c,"overflow");}else{this._oldOverflow="";}if(_a("ie")&&!_a("quirks")){if(_1c.parentNode&&_1c.parentNode.style&&_1c.parentNode.style.overflow){this._oldBodyParentOverflow=_1c.parentNode.style.overflow;}else{try{this._oldBodyParentOverflow=_5.get(_1c.parentNode,"overflow");}catch(e){this._oldBodyParentOverflow="scroll";}}_5.set(_1c.parentNode,"overflow","hidden");}_5.set(_1c,"overflow","hidden");var _22=function(){var vp=_c.getBox();if("_prevW" in this&&"_prevH" in this){if(vp.w===this._prevW&&vp.h===this._prevH){return;}}else{this._prevW=vp.w;this._prevH=vp.h;}if(this._resizer){clearTimeout(this._resizer);delete this._resizer;}this._resizer=setTimeout(_9.hitch(this,function(){delete this._resizer;this._resizeEditor();}),10);};this._resizeHandle=on(window,"resize",_9.hitch(this,_22));this._resizeHandle2=_1.after(ed,"onResize",_9.hitch(this,function(){if(this._resizer){clearTimeout(this._resizer);delete this._resizer;}this._resizer=setTimeout(_9.hitch(this,function(){delete this._resizer;this._resizeEditor();}),10);}));this._resizeEditor();var dn=this.editor.toolbar.domNode;setTimeout(function(){_c.scrollIntoView(dn);},250);}else{if(this._resizeHandle){this._resizeHandle.remove();this._resizeHandle=null;}if(this._resizeHandle2){this._resizeHandle2.remove();this._resizeHandle2=null;}if(this._rst){clearTimeout(this._rst);this._rst=null;}while(_1d&&_1d!==_b.body()){_3.remove(_1d,"dijitForceStatic");_1d=_1d.parentNode;}if(this._editorResizeHolder){this.editor.resize=this._editorResizeHolder;}if(!this._origState&&!this._origiFrameState){return;}if(ed._fullscreen_oldOnKeyDown){ed.onKeyDown=ed._fullscreen_oldOnKeyDown;delete ed._fullscreen_oldOnKeyDown;}var _23=this;setTimeout(function(){var mb=_23._origState.marginBox;var oh=_23._origState.height;if(_a("ie")&&!_a("quirks")){_1c.parentNode.style.overflow=_23._oldBodyParentOverflow;delete _23._oldBodyParentOverflow;}_5.set(_1c,"overflow",_23._oldOverflow);delete _23._oldOverflow;_5.set(ed.domNode,_23._origState);_5.set(ed.iframe.parentNode,{height:"",width:""});_5.set(ed.iframe,_23._origiFrameState);delete _23._origState;delete _23._origiFrameState;var _24=_10.getEnclosingWidget(ed.domNode.parentNode);if(_24&&_24.resize){_24.resize();}else{if(!oh||oh.indexOf("%")<0){setTimeout(_9.hitch(this,function(){ed.resize({h:mb.h});}),0);}}_c.scrollIntoView(_23.editor.toolbar.domNode);},100);}},updateState:function(){this.button.set("disabled",this.get("disabled"));},destroy:function(){if(this._resizeHandle){this._resizeHandle.remove();this._resizeHandle=null;}if(this._resizeHandle2){this._resizeHandle2.remove();this._resizeHandle2=null;}if(this._resizer){clearTimeout(this._resizer);this._resizer=null;}this.inherited(arguments);}});_e.registry["fullScreen"]=_e.registry["fullscreen"]=function(_25){return new _11({zIndex:("zIndex" in _25)?_25.zIndex:500});};return _11;}); \ No newline at end of file
+define("dijit/_editor/plugins/FullScreen",["dojo/aspect","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/i18n","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","dojo/_base/window","dojo/window","../../focus","../_Plugin","../../form/ToggleButton","../../registry","dojo/i18n!../nls/commands"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,on,_a,_b,_c,_d,_e,_f,_10){var _11=_2("dijit._editor.plugins.FullScreen",_e,{zIndex:500,_origState:null,_origiFrameState:null,_resizeHandle:null,isFullscreen:false,toggle:function(){this.button.set("checked",!this.button.get("checked"));},_initButton:function(){var _12=_7.getLocalization("dijit._editor","commands"),_13=this.editor;this.button=new _f({label:_12["fullScreen"],ownerDocument:_13.ownerDocument,dir:_13.dir,lang:_13.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"FullScreen",tabIndex:"-1",onChange:_9.hitch(this,"_setFullScreen")});},setEditor:function(_14){this.editor=_14;this._initButton();this.editor.addKeyHandler(_8.F11,true,true,_9.hitch(this,function(e){this.toggle();_6.stop(e);setTimeout(_9.hitch(this,function(){this.editor.focus();}),250);return true;}));this.connect(this.editor.domNode,"onkeydown","_containFocus");},_containFocus:function(e){if(this.isFullscreen){var ed=this.editor;if(!ed.isTabIndent&&ed._fullscreen_oldOnKeyDown&&e.keyCode===_8.TAB){var f=_d.curNode;var avn=this._getAltViewNode();if(f==ed.iframe||(avn&&f===avn)){setTimeout(_9.hitch(this,function(){ed.toolbar.focus();}),10);}else{if(avn&&_5.get(ed.iframe,"display")==="none"){setTimeout(_9.hitch(this,function(){_d.focus(avn);}),10);}else{setTimeout(_9.hitch(this,function(){ed.focus();}),10);}}_6.stop(e);}else{if(ed._fullscreen_oldOnKeyDown){ed._fullscreen_oldOnKeyDown(e);}}}},_resizeEditor:function(){var vp=_c.getBox(this.editor.ownerDocument);_4.setMarginBox(this.editor.domNode,{w:vp.w,h:vp.h});var _15=this.editor.getHeaderHeight();var _16=this.editor.getFooterHeight();var _17=_4.getPadBorderExtents(this.editor.domNode);var _18=_4.getPadBorderExtents(this.editor.iframe.parentNode);var _19=_4.getMarginExtents(this.editor.iframe.parentNode);var _1a=vp.h-(_15+_17.h+_16);_4.setMarginBox(this.editor.iframe.parentNode,{h:_1a,w:vp.w});_4.setMarginBox(this.editor.iframe,{h:_1a-(_18.h+_19.h)});},_getAltViewNode:function(){},_setFullScreen:function(_1b){var ed=this.editor;var _1c=ed.ownerDocumentBody;var _1d=ed.domNode.parentNode;var vp=_c.getBox(ed.ownerDocument);this.isFullscreen=_1b;if(_1b){while(_1d&&_1d!==_1c){_3.add(_1d,"dijitForceStatic");_1d=_1d.parentNode;}this._editorResizeHolder=this.editor.resize;ed.resize=function(){};ed._fullscreen_oldOnKeyDown=ed.onKeyDown;ed.onKeyDown=_9.hitch(this,this._containFocus);this._origState={};this._origiFrameState={};var _1e=ed.domNode,_1f=_1e&&_1e.style||{};this._origState={width:_1f.width||"",height:_1f.height||"",top:_5.get(_1e,"top")||"",left:_5.get(_1e,"left")||"",position:_5.get(_1e,"position")||"static",marginBox:_4.getMarginBox(ed.domNode)};var _20=ed.iframe,_21=_20&&_20.style||{};var bc=_5.get(ed.iframe,"backgroundColor");this._origiFrameState={backgroundColor:bc||"transparent",width:_21.width||"auto",height:_21.height||"auto",zIndex:_21.zIndex||""};_5.set(ed.domNode,{position:"absolute",top:"0px",left:"0px",zIndex:this.zIndex,width:vp.w+"px",height:vp.h+"px"});_5.set(ed.iframe,{height:"100%",width:"100%",zIndex:this.zIndex,backgroundColor:bc!=="transparent"&&bc!=="rgba(0, 0, 0, 0)"?bc:"white"});_5.set(ed.iframe.parentNode,{height:"95%",width:"100%"});if(_1c.style&&_1c.style.overflow){this._oldOverflow=_5.get(_1c,"overflow");}else{this._oldOverflow="";}if(_a("ie")&&!_a("quirks")){if(_1c.parentNode&&_1c.parentNode.style&&_1c.parentNode.style.overflow){this._oldBodyParentOverflow=_1c.parentNode.style.overflow;}else{try{this._oldBodyParentOverflow=_5.get(_1c.parentNode,"overflow");}catch(e){this._oldBodyParentOverflow="scroll";}}_5.set(_1c.parentNode,"overflow","hidden");}_5.set(_1c,"overflow","hidden");var _22=function(){var vp=_c.getBox(ed.ownerDocument);if("_prevW" in this&&"_prevH" in this){if(vp.w===this._prevW&&vp.h===this._prevH){return;}}else{this._prevW=vp.w;this._prevH=vp.h;}if(this._resizer){clearTimeout(this._resizer);delete this._resizer;}this._resizer=setTimeout(_9.hitch(this,function(){delete this._resizer;this._resizeEditor();}),10);};this._resizeHandle=on(window,"resize",_9.hitch(this,_22));this._resizeHandle2=_1.after(ed,"onResize",_9.hitch(this,function(){if(this._resizer){clearTimeout(this._resizer);delete this._resizer;}this._resizer=setTimeout(_9.hitch(this,function(){delete this._resizer;this._resizeEditor();}),10);}));this._resizeEditor();var dn=this.editor.toolbar.domNode;setTimeout(function(){_c.scrollIntoView(dn);},250);}else{if(this._resizeHandle){this._resizeHandle.remove();this._resizeHandle=null;}if(this._resizeHandle2){this._resizeHandle2.remove();this._resizeHandle2=null;}if(this._rst){clearTimeout(this._rst);this._rst=null;}while(_1d&&_1d!==_1c){_3.remove(_1d,"dijitForceStatic");_1d=_1d.parentNode;}if(this._editorResizeHolder){this.editor.resize=this._editorResizeHolder;}if(!this._origState&&!this._origiFrameState){return;}if(ed._fullscreen_oldOnKeyDown){ed.onKeyDown=ed._fullscreen_oldOnKeyDown;delete ed._fullscreen_oldOnKeyDown;}var _23=this;setTimeout(function(){var mb=_23._origState.marginBox;var oh=_23._origState.height;if(_a("ie")&&!_a("quirks")){_1c.parentNode.style.overflow=_23._oldBodyParentOverflow;delete _23._oldBodyParentOverflow;}_5.set(_1c,"overflow",_23._oldOverflow);delete _23._oldOverflow;_5.set(ed.domNode,_23._origState);_5.set(ed.iframe.parentNode,{height:"",width:""});_5.set(ed.iframe,_23._origiFrameState);delete _23._origState;delete _23._origiFrameState;var _24=_10.getEnclosingWidget(ed.domNode.parentNode);if(_24&&_24.resize){_24.resize();}else{if(!oh||oh.indexOf("%")<0){setTimeout(_9.hitch(this,function(){ed.resize({h:mb.h});}),0);}}_c.scrollIntoView(_23.editor.toolbar.domNode);},100);}},updateState:function(){this.button.set("disabled",this.get("disabled"));},destroy:function(){if(this._resizeHandle){this._resizeHandle.remove();this._resizeHandle=null;}if(this._resizeHandle2){this._resizeHandle2.remove();this._resizeHandle2=null;}if(this._resizer){clearTimeout(this._resizer);this._resizer=null;}this.inherited(arguments);}});_e.registry["fullScreen"]=_e.registry["fullscreen"]=function(_25){return new _11({zIndex:("zIndex" in _25)?_25.zIndex:500});};return _11;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/plugins/LinkDialog.js b/lib/dijit/_editor/plugins/LinkDialog.js
index a70a9683c..f4fb0b56d 100644
--- a/lib/dijit/_editor/plugins/LinkDialog.js
+++ b/lib/dijit/_editor/plugins/LinkDialog.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/plugins/LinkDialog",["require","dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/_base/lang","dojo/_base/sniff","dojo/string","dojo/_base/window","../../_Widget","../_Plugin","../../form/DropDownButton","../range","../selection"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d){var _e=_2("dijit._editor.plugins.LinkDialog",_a,{buttonClass:_b,useDefaultCommand:false,urlRegExp:"((https?|ftps?|file)\\://|./|/|)(/[a-zA-Z]{1,1}:/|)(((?:(?:[\\da-zA-Z](?:[-\\da-zA-Z]{0,61}[\\da-zA-Z])?)\\.)*(?:[a-zA-Z](?:[-\\da-zA-Z]{0,80}[\\da-zA-Z])?)\\.?)|(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])|(0[xX]0*[\\da-fA-F]?[\\da-fA-F]\\.){3}0[xX]0*[\\da-fA-F]?[\\da-fA-F]|(0+[0-3][0-7][0-7]\\.){3}0+[0-3][0-7][0-7]|(0|[1-9]\\d{0,8}|[1-3]\\d{9}|4[01]\\d{8}|42[0-8]\\d{7}|429[0-3]\\d{6}|4294[0-8]\\d{5}|42949[0-5]\\d{4}|429496[0-6]\\d{3}|4294967[01]\\d{2}|42949672[0-8]\\d|429496729[0-5])|0[xX]0*[\\da-fA-F]{1,8}|([\\da-fA-F]{1,4}\\:){7}[\\da-fA-F]{1,4}|([\\da-fA-F]{1,4}\\:){6}((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])))(\\:\\d+)?(/(?:[^?#\\s/]+/)*(?:[^?#\\s/]{0,}(?:\\?[^?#\\s/]*)?(?:#.*)?)?)?",emailRegExp:"<?(mailto\\:)([!#-'*+\\-\\/-9=?A-Z^-~]+[.])*[!#-'*+\\-\\/-9=?A-Z^-~]+"+"@"+"((?:(?:[\\da-zA-Z](?:[-\\da-zA-Z]{0,61}[\\da-zA-Z])?)\\.)+(?:[a-zA-Z](?:[-\\da-zA-Z]{0,6}[\\da-zA-Z])?)\\.?)|localhost|^[^-][a-zA-Z0-9_-]*>?",htmlTemplate:"<a href=\"${urlInput}\" _djrealurl=\"${urlInput}\""+" target=\"${targetSelect}\""+">${textInput}</a>",tag:"a",_hostRxp:/^((([^\[:]+):)?([^@]+)@)?(\[([^\]]+)\]|([^\[:]*))(:([0-9]+))?$/,_userAtRxp:/^([!#-'*+\-\/-9=?A-Z^-~]+[.])*[!#-'*+\-\/-9=?A-Z^-~]+@/i,linkDialogTemplate:["<table><tr><td>","<label for='${id}_urlInput'>${url}</label>","</td><td>","<input data-dojo-type='dijit.form.ValidationTextBox' required='true' "+"id='${id}_urlInput' name='urlInput' data-dojo-props='intermediateChanges:true'/>","</td></tr><tr><td>","<label for='${id}_textInput'>${text}</label>","</td><td>","<input data-dojo-type='dijit.form.ValidationTextBox' required='true' id='${id}_textInput' "+"name='textInput' data-dojo-props='intermediateChanges:true'/>","</td></tr><tr><td>","<label for='${id}_targetSelect'>${target}</label>","</td><td>","<select id='${id}_targetSelect' name='targetSelect' data-dojo-type='dijit.form.Select'>","<option selected='selected' value='_self'>${currentWindow}</option>","<option value='_blank'>${newWindow}</option>","<option value='_top'>${topWindow}</option>","<option value='_parent'>${parentWindow}</option>","</select>","</td></tr><tr><td colspan='2'>","<button data-dojo-type='dijit.form.Button' type='submit' id='${id}_setButton'>${set}</button>","<button data-dojo-type='dijit.form.Button' type='button' id='${id}_cancelButton'>${buttonCancel}</button>","</td></tr></table>"].join(""),_initButton:function(){this.inherited(arguments);this.button.loadDropDown=_5.hitch(this,"_loadDropDown");this._connectTagEvents();},_loadDropDown:function(_f){_1(["dojo/i18n","../../TooltipDialog","../../registry","../../form/Button","../../form/Select","../../form/ValidationTextBox","dojo/i18n!../../nls/common","dojo/i18n!../nls/LinkDialog"],_5.hitch(this,function(_10,_11,_12){var _13=this;this.tag=this.command=="insertImage"?"img":"a";var _14=_5.delegate(_10.getLocalization("dijit","common",this.lang),_10.getLocalization("dijit._editor","LinkDialog",this.lang));var _15=(this.dropDown=this.button.dropDown=new _11({title:_14[this.command+"Title"],execute:_5.hitch(this,"setValue"),onOpen:function(){_13._onOpenDialog();_11.prototype.onOpen.apply(this,arguments);},onCancel:function(){setTimeout(_5.hitch(_13,"_onCloseDialog"),0);}}));_14.urlRegExp=this.urlRegExp;_14.id=_12.getUniqueId(this.editor.id);this._uniqueId=_14.id;this._setContent(_15.title+"<div style='border-bottom: 1px black solid;padding-bottom:2pt;margin-bottom:4pt'></div>"+_7.substitute(this.linkDialogTemplate,_14));_15.startup();this._urlInput=_12.byId(this._uniqueId+"_urlInput");this._textInput=_12.byId(this._uniqueId+"_textInput");this._setButton=_12.byId(this._uniqueId+"_setButton");this.connect(_12.byId(this._uniqueId+"_cancelButton"),"onClick",function(){this.dropDown.onCancel();});if(this._urlInput){this.connect(this._urlInput,"onChange","_checkAndFixInput");}if(this._textInput){this.connect(this._textInput,"onChange","_checkAndFixInput");}this._urlRegExp=new RegExp("^"+this.urlRegExp+"$","i");this._emailRegExp=new RegExp("^"+this.emailRegExp+"$","i");this._urlInput.isValid=_5.hitch(this,function(){var _16=this._urlInput.get("value");return this._urlRegExp.test(_16)||this._emailRegExp.test(_16);});this.connect(_15.domNode,"onkeypress",function(e){if(e&&e.charOrCode==_4.ENTER&&!e.shiftKey&&!e.metaKey&&!e.ctrlKey&&!e.altKey){if(!this._setButton.get("disabled")){_15.onExecute();_15.execute(_15.get("value"));}}});_f();}));},_checkAndFixInput:function(){var _17=this;var url=this._urlInput.get("value");var _18=function(url){var _19=false;var _1a=false;if(url&&url.length>1){url=_5.trim(url);if(url.indexOf("mailto:")!==0){if(url.indexOf("/")>0){if(url.indexOf("://")===-1){if(url.charAt(0)!=="/"&&url.indexOf("./")!==0){if(_17._hostRxp.test(url)){_19=true;}}}}else{if(_17._userAtRxp.test(url)){_1a=true;}}}}if(_19){_17._urlInput.set("value","http://"+url);}if(_1a){_17._urlInput.set("value","mailto:"+url);}_17._setButton.set("disabled",!_17._isValid());};if(this._delayedCheck){clearTimeout(this._delayedCheck);this._delayedCheck=null;}this._delayedCheck=setTimeout(function(){_18(url);},250);},_connectTagEvents:function(){this.editor.onLoadDeferred.addCallback(_5.hitch(this,function(){this.connect(this.editor.editNode,"ondblclick",this._onDblClick);}));},_isValid:function(){return this._urlInput.isValid()&&this._textInput.isValid();},_setContent:function(_1b){this.dropDown.set({parserScope:"dojo",content:_1b});},_checkValues:function(_1c){if(_1c&&_1c.urlInput){_1c.urlInput=_1c.urlInput.replace(/"/g,"&quot;");}return _1c;},setValue:function(_1d){this._onCloseDialog();if(_6("ie")<9){var sel=_c.getSelection(this.editor.window);var _1e=sel.getRangeAt(0);var a=_1e.endContainer;if(a.nodeType===3){a=a.parentNode;}if(a&&(a.nodeName&&a.nodeName.toLowerCase()!==this.tag)){a=_8.withGlobal(this.editor.window,"getSelectedElement",_d,[this.tag]);}if(a&&(a.nodeName&&a.nodeName.toLowerCase()===this.tag)){if(this.editor.queryCommandEnabled("unlink")){_8.withGlobal(this.editor.window,"selectElementChildren",_d,[a]);this.editor.execCommand("unlink");}}}_1d=this._checkValues(_1d);this.editor.execCommand("inserthtml",_7.substitute(this.htmlTemplate,_1d));},_onCloseDialog:function(){this.editor.focus();},_getCurrentValues:function(a){var url,_1f,_20;if(a&&a.tagName.toLowerCase()===this.tag){url=a.getAttribute("_djrealurl")||a.getAttribute("href");_20=a.getAttribute("target")||"_self";_1f=a.textContent||a.innerText;_8.withGlobal(this.editor.window,"selectElement",_d,[a,true]);}else{_1f=_8.withGlobal(this.editor.window,_d.getSelectedText);}return {urlInput:url||"",textInput:_1f||"",targetSelect:_20||""};},_onOpenDialog:function(){var a;if(_6("ie")<9){var sel=_c.getSelection(this.editor.window);var _21=sel.getRangeAt(0);a=_21.endContainer;if(a.nodeType===3){a=a.parentNode;}if(a&&(a.nodeName&&a.nodeName.toLowerCase()!==this.tag)){a=_8.withGlobal(this.editor.window,"getSelectedElement",_d,[this.tag]);}}else{a=_8.withGlobal(this.editor.window,"getAncestorElement",_d,[this.tag]);}this.dropDown.reset();this._setButton.set("disabled",true);this.dropDown.set("value",this._getCurrentValues(a));},_onDblClick:function(e){if(e&&e.target){var t=e.target;var tg=t.tagName?t.tagName.toLowerCase():"";if(tg===this.tag&&_3.get(t,"href")){var _22=this.editor;_8.withGlobal(_22.window,"selectElement",_d,[t]);_22.onDisplayChanged();if(_22._updateTimer){clearTimeout(_22._updateTimer);delete _22._updateTimer;}_22.onNormalizedDisplayChanged();var _23=this.button;setTimeout(function(){_23.set("disabled",false);_23.loadAndOpenDropDown().then(function(){if(_23.dropDown.focus){_23.dropDown.focus();}});},10);}}}});var _24=_2("dijit._editor.plugins.ImgLinkDialog",[_e],{linkDialogTemplate:["<table><tr><td>","<label for='${id}_urlInput'>${url}</label>","</td><td>","<input dojoType='dijit.form.ValidationTextBox' regExp='${urlRegExp}' "+"required='true' id='${id}_urlInput' name='urlInput' data-dojo-props='intermediateChanges:true'/>","</td></tr><tr><td>","<label for='${id}_textInput'>${text}</label>","</td><td>","<input data-dojo-type='dijit.form.ValidationTextBox' required='false' id='${id}_textInput' "+"name='textInput' data-dojo-props='intermediateChanges:true'/>","</td></tr><tr><td>","</td><td>","</td></tr><tr><td colspan='2'>","<button data-dojo-type='dijit.form.Button' type='submit' id='${id}_setButton'>${set}</button>","<button data-dojo-type='dijit.form.Button' type='button' id='${id}_cancelButton'>${buttonCancel}</button>","</td></tr></table>"].join(""),htmlTemplate:"<img src=\"${urlInput}\" _djrealurl=\"${urlInput}\" alt=\"${textInput}\" />",tag:"img",_getCurrentValues:function(img){var url,_25;if(img&&img.tagName.toLowerCase()===this.tag){url=img.getAttribute("_djrealurl")||img.getAttribute("src");_25=img.getAttribute("alt");_8.withGlobal(this.editor.window,"selectElement",_d,[img,true]);}else{_25=_8.withGlobal(this.editor.window,_d.getSelectedText);}return {urlInput:url||"",textInput:_25||""};},_isValid:function(){return this._urlInput.isValid();},_connectTagEvents:function(){this.inherited(arguments);this.editor.onLoadDeferred.addCallback(_5.hitch(this,function(){this.connect(this.editor.editNode,"onmousedown",this._selectTag);}));},_selectTag:function(e){if(e&&e.target){var t=e.target;var tg=t.tagName?t.tagName.toLowerCase():"";if(tg===this.tag){_8.withGlobal(this.editor.window,"selectElement",_d,[t]);}}},_checkValues:function(_26){if(_26&&_26.urlInput){_26.urlInput=_26.urlInput.replace(/"/g,"&quot;");}if(_26&&_26.textInput){_26.textInput=_26.textInput.replace(/"/g,"&quot;");}return _26;},_onDblClick:function(e){if(e&&e.target){var t=e.target;var tg=t.tagName?t.tagName.toLowerCase():"";if(tg===this.tag&&_3.get(t,"src")){var _27=this.editor;_8.withGlobal(_27.window,"selectElement",_d,[t]);_27.onDisplayChanged();if(_27._updateTimer){clearTimeout(_27._updateTimer);delete _27._updateTimer;}_27.onNormalizedDisplayChanged();var _28=this.button;setTimeout(function(){_28.set("disabled",false);_28.loadAndOpenDropDown().then(function(){if(_28.dropDown.focus){_28.dropDown.focus();}});},10);}}}});_a.registry["createLink"]=function(){return new _e({command:"createLink"});};_a.registry["insertImage"]=function(){return new _24({command:"insertImage"});};_e.ImgLinkDialog=_24;return _e;}); \ No newline at end of file
+define("dijit/_editor/plugins/LinkDialog",["require","dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/_base/query","dojo/string","../../_Widget","../_Plugin","../../form/DropDownButton","../range"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){var _d=_2("dijit._editor.plugins.LinkDialog",_a,{buttonClass:_b,useDefaultCommand:false,urlRegExp:"((https?|ftps?|file)\\://|./|../|/|)(/[a-zA-Z]{1,1}:/|)(((?:(?:[\\da-zA-Z](?:[-\\da-zA-Z]{0,61}[\\da-zA-Z])?)\\.)*(?:[a-zA-Z](?:[-\\da-zA-Z]{0,80}[\\da-zA-Z])?)\\.?)|(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])|(0[xX]0*[\\da-fA-F]?[\\da-fA-F]\\.){3}0[xX]0*[\\da-fA-F]?[\\da-fA-F]|(0+[0-3][0-7][0-7]\\.){3}0+[0-3][0-7][0-7]|(0|[1-9]\\d{0,8}|[1-3]\\d{9}|4[01]\\d{8}|42[0-8]\\d{7}|429[0-3]\\d{6}|4294[0-8]\\d{5}|42949[0-5]\\d{4}|429496[0-6]\\d{3}|4294967[01]\\d{2}|42949672[0-8]\\d|429496729[0-5])|0[xX]0*[\\da-fA-F]{1,8}|([\\da-fA-F]{1,4}\\:){7}[\\da-fA-F]{1,4}|([\\da-fA-F]{1,4}\\:){6}((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])))(\\:\\d+)?(/(?:[^?#\\s/]+/)*(?:[^?#\\s/]{0,}(?:\\?[^?#\\s/]*)?(?:#.*)?)?)?",emailRegExp:"<?(mailto\\:)([!#-'*+\\-\\/-9=?A-Z^-~]+[.])*[!#-'*+\\-\\/-9=?A-Z^-~]+"+"@"+"((?:(?:[\\da-zA-Z](?:[-\\da-zA-Z]{0,61}[\\da-zA-Z])?)\\.)+(?:[a-zA-Z](?:[-\\da-zA-Z]{0,6}[\\da-zA-Z])?)\\.?)|localhost|^[^-][a-zA-Z0-9_-]*>?",htmlTemplate:"<a href=\"${urlInput}\" _djrealurl=\"${urlInput}\""+" target=\"${targetSelect}\""+">${textInput}</a>",tag:"a",_hostRxp:/^((([^\[:]+):)?([^@]+)@)?(\[([^\]]+)\]|([^\[:]*))(:([0-9]+))?$/,_userAtRxp:/^([!#-'*+\-\/-9=?A-Z^-~]+[.])*[!#-'*+\-\/-9=?A-Z^-~]+@/i,linkDialogTemplate:["<table role='presentation'><tr><td>","<label for='${id}_urlInput'>${url}</label>","</td><td>","<input data-dojo-type='dijit.form.ValidationTextBox' required='true' "+"id='${id}_urlInput' name='urlInput' data-dojo-props='intermediateChanges:true'/>","</td></tr><tr><td>","<label for='${id}_textInput'>${text}</label>","</td><td>","<input data-dojo-type='dijit.form.ValidationTextBox' required='true' id='${id}_textInput' "+"name='textInput' data-dojo-props='intermediateChanges:true'/>","</td></tr><tr><td>","<label for='${id}_targetSelect'>${target}</label>","</td><td>","<select id='${id}_targetSelect' name='targetSelect' data-dojo-type='dijit.form.Select'>","<option selected='selected' value='_self'>${currentWindow}</option>","<option value='_blank'>${newWindow}</option>","<option value='_top'>${topWindow}</option>","<option value='_parent'>${parentWindow}</option>","</select>","</td></tr><tr><td colspan='2'>","<button data-dojo-type='dijit.form.Button' type='submit' id='${id}_setButton'>${set}</button>","<button data-dojo-type='dijit.form.Button' type='button' id='${id}_cancelButton'>${buttonCancel}</button>","</td></tr></table>"].join(""),_initButton:function(){this.inherited(arguments);this.button.loadDropDown=_5.hitch(this,"_loadDropDown");this._connectTagEvents();},_loadDropDown:function(_e){_1(["dojo/i18n","../../TooltipDialog","../../registry","../../form/Button","../../form/Select","../../form/ValidationTextBox","dojo/i18n!../../nls/common","dojo/i18n!../nls/LinkDialog"],_5.hitch(this,function(_f,_10,_11){var _12=this;this.tag=this.command=="insertImage"?"img":"a";var _13=_5.delegate(_f.getLocalization("dijit","common",this.lang),_f.getLocalization("dijit._editor","LinkDialog",this.lang));var _14=(this.dropDown=this.button.dropDown=new _10({title:_13[this.command+"Title"],ownerDocument:this.editor.ownerDocument,dir:this.editor.dir,execute:_5.hitch(this,"setValue"),onOpen:function(){_12._onOpenDialog();_10.prototype.onOpen.apply(this,arguments);},onCancel:function(){setTimeout(_5.hitch(_12,"_onCloseDialog"),0);}}));_13.urlRegExp=this.urlRegExp;_13.id=_11.getUniqueId(this.editor.id);this._uniqueId=_13.id;this._setContent(_14.title+"<div style='border-bottom: 1px black solid;padding-bottom:2pt;margin-bottom:4pt'></div>"+_8.substitute(this.linkDialogTemplate,_13));_14.startup();this._urlInput=_11.byId(this._uniqueId+"_urlInput");this._textInput=_11.byId(this._uniqueId+"_textInput");this._setButton=_11.byId(this._uniqueId+"_setButton");this.connect(_11.byId(this._uniqueId+"_cancelButton"),"onClick",function(){this.dropDown.onCancel();});if(this._urlInput){this.connect(this._urlInput,"onChange","_checkAndFixInput");}if(this._textInput){this.connect(this._textInput,"onChange","_checkAndFixInput");}this._urlRegExp=new RegExp("^"+this.urlRegExp+"$","i");this._emailRegExp=new RegExp("^"+this.emailRegExp+"$","i");this._urlInput.isValid=_5.hitch(this,function(){var _15=this._urlInput.get("value");return this._urlRegExp.test(_15)||this._emailRegExp.test(_15);});this.connect(_14.domNode,"onkeypress",function(e){if(e&&e.charOrCode==_4.ENTER&&!e.shiftKey&&!e.metaKey&&!e.ctrlKey&&!e.altKey){if(!this._setButton.get("disabled")){_14.onExecute();_14.execute(_14.get("value"));}}});_e();}));},_checkAndFixInput:function(){var _16=this;var url=this._urlInput.get("value");var _17=function(url){var _18=false;var _19=false;if(url&&url.length>1){url=_5.trim(url);if(url.indexOf("mailto:")!==0){if(url.indexOf("/")>0){if(url.indexOf("://")===-1){if(url.charAt(0)!=="/"&&url.indexOf("./")&&url.indexOf("../")!==0){if(_16._hostRxp.test(url)){_18=true;}}}}else{if(_16._userAtRxp.test(url)){_19=true;}}}}if(_18){_16._urlInput.set("value","http://"+url);}if(_19){_16._urlInput.set("value","mailto:"+url);}_16._setButton.set("disabled",!_16._isValid());};if(this._delayedCheck){clearTimeout(this._delayedCheck);this._delayedCheck=null;}this._delayedCheck=setTimeout(function(){_17(url);},250);},_connectTagEvents:function(){this.editor.onLoadDeferred.then(_5.hitch(this,function(){this.connect(this.editor.editNode,"ondblclick",this._onDblClick);}));},_isValid:function(){return this._urlInput.isValid()&&this._textInput.isValid();},_setContent:function(_1a){this.dropDown.set({parserScope:"dojo",content:_1a});},_checkValues:function(_1b){if(_1b&&_1b.urlInput){_1b.urlInput=_1b.urlInput.replace(/"/g,"&quot;");}return _1b;},setValue:function(_1c){this._onCloseDialog();if(_6("ie")<9){var sel=_c.getSelection(this.editor.window);var _1d=sel.getRangeAt(0);var a=_1d.endContainer;if(a.nodeType===3){a=a.parentNode;}if(a&&(a.nodeName&&a.nodeName.toLowerCase()!==this.tag)){a=this.editor._sCall("getSelectedElement",[this.tag]);}if(a&&(a.nodeName&&a.nodeName.toLowerCase()===this.tag)){if(this.editor.queryCommandEnabled("unlink")){this.editor._sCall("selectElementChildren",[a]);this.editor.execCommand("unlink");}}}_1c=this._checkValues(_1c);this.editor.execCommand("inserthtml",_8.substitute(this.htmlTemplate,_1c));_7("a",this.editor.document).forEach(function(a){if(!a.innerHTML&&!_3.has(a,"name")){a.parentNode.removeChild(a);}},this);},_onCloseDialog:function(){this.editor.focus();},_getCurrentValues:function(a){var url,_1e,_1f;if(a&&a.tagName.toLowerCase()===this.tag){url=a.getAttribute("_djrealurl")||a.getAttribute("href");_1f=a.getAttribute("target")||"_self";_1e=a.textContent||a.innerText;this.editor._sCall("selectElement",[a,true]);}else{_1e=this.editor._sCall("getSelectedText");}return {urlInput:url||"",textInput:_1e||"",targetSelect:_1f||""};},_onOpenDialog:function(){var a,b,fc;if(_6("ie")){var sel=_c.getSelection(this.editor.window);if(sel.rangeCount){var _20=sel.getRangeAt(0);a=_20.endContainer;if(a.nodeType===3){a=a.parentNode;}if(a&&(a.nodeName&&a.nodeName.toLowerCase()!==this.tag)){a=this.editor._sCall("getSelectedElement",[this.tag]);}if(!a||(a.nodeName&&a.nodeName.toLowerCase()!==this.tag)){b=this.editor._sCall("getAncestorElement",[this.tag]);if(b&&(b.nodeName&&b.nodeName.toLowerCase()==this.tag)){a=b;this.editor._sCall("selectElement",[a]);}else{if(_20.startContainer===_20.endContainer){fc=_20.startContainer.firstChild;if(fc&&(fc.nodeName&&fc.nodeName.toLowerCase()==this.tag)){a=fc;this.editor._sCall("selectElement",[a]);}}}}}}else{a=this.editor._sCall("getAncestorElement",[this.tag]);}this.dropDown.reset();this._setButton.set("disabled",true);this.dropDown.set("value",this._getCurrentValues(a));},_onDblClick:function(e){if(e&&e.target){var t=e.target;var tg=t.tagName?t.tagName.toLowerCase():"";if(tg===this.tag&&_3.get(t,"href")){var _21=this.editor;this.editor._sCall("selectElement",[t]);_21.onDisplayChanged();if(_21._updateTimer){_21._updateTimer.remove();delete _21._updateTimer;}_21.onNormalizedDisplayChanged();var _22=this.button;setTimeout(function(){_22.set("disabled",false);_22.loadAndOpenDropDown().then(function(){if(_22.dropDown.focus){_22.dropDown.focus();}});},10);}}}});var _23=_2("dijit._editor.plugins.ImgLinkDialog",[_d],{linkDialogTemplate:["<table role='presentation'><tr><td>","<label for='${id}_urlInput'>${url}</label>","</td><td>","<input dojoType='dijit.form.ValidationTextBox' regExp='${urlRegExp}' "+"required='true' id='${id}_urlInput' name='urlInput' data-dojo-props='intermediateChanges:true'/>","</td></tr><tr><td>","<label for='${id}_textInput'>${text}</label>","</td><td>","<input data-dojo-type='dijit.form.ValidationTextBox' required='false' id='${id}_textInput' "+"name='textInput' data-dojo-props='intermediateChanges:true'/>","</td></tr><tr><td>","</td><td>","</td></tr><tr><td colspan='2'>","<button data-dojo-type='dijit.form.Button' type='submit' id='${id}_setButton'>${set}</button>","<button data-dojo-type='dijit.form.Button' type='button' id='${id}_cancelButton'>${buttonCancel}</button>","</td></tr></table>"].join(""),htmlTemplate:"<img src=\"${urlInput}\" _djrealurl=\"${urlInput}\" alt=\"${textInput}\" />",tag:"img",_getCurrentValues:function(img){var url,_24;if(img&&img.tagName.toLowerCase()===this.tag){url=img.getAttribute("_djrealurl")||img.getAttribute("src");_24=img.getAttribute("alt");this.editor._sCall("selectElement",[img,true]);}else{_24=this.editor._sCall("getSelectedText",[]);}return {urlInput:url||"",textInput:_24||""};},_isValid:function(){return this._urlInput.isValid();},_connectTagEvents:function(){this.inherited(arguments);this.editor.onLoadDeferred.then(_5.hitch(this,function(){this.connect(this.editor.editNode,"onmousedown",this._selectTag);}));},_selectTag:function(e){if(e&&e.target){var t=e.target;var tg=t.tagName?t.tagName.toLowerCase():"";if(tg===this.tag){this.editor._sCall("selectElement",[t]);}}},_checkValues:function(_25){if(_25&&_25.urlInput){_25.urlInput=_25.urlInput.replace(/"/g,"&quot;");}if(_25&&_25.textInput){_25.textInput=_25.textInput.replace(/"/g,"&quot;");}return _25;},_onDblClick:function(e){if(e&&e.target){var t=e.target;var tg=t.tagName?t.tagName.toLowerCase():"";if(tg===this.tag&&_3.get(t,"src")){var _26=this.editor;this.editor._sCall("selectElement",[t]);_26.onDisplayChanged();if(_26._updateTimer){_26._updateTimer.remove();delete _26._updateTimer;}_26.onNormalizedDisplayChanged();var _27=this.button;setTimeout(function(){_27.set("disabled",false);_27.loadAndOpenDropDown().then(function(){if(_27.dropDown.focus){_27.dropDown.focus();}});},10);}}}});_a.registry["createLink"]=function(){return new _d({command:"createLink"});};_a.registry["insertImage"]=function(){return new _23({command:"insertImage"});};_d.ImgLinkDialog=_23;return _d;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/plugins/NewPage.js b/lib/dijit/_editor/plugins/NewPage.js
index 911731a00..bdd07946e 100644
--- a/lib/dijit/_editor/plugins/NewPage.js
+++ b/lib/dijit/_editor/plugins/NewPage.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/plugins/NewPage",["dojo/_base/declare","dojo/i18n","dojo/_base/lang","../_Plugin","../../form/Button","dojo/i18n!../nls/commands"],function(_1,_2,_3,_4,_5){var _6=_1("dijit._editor.plugins.NewPage",_4,{content:"<br>",_initButton:function(){var _7=_2.getLocalization("dijit._editor","commands"),_8=this.editor;this.button=new _5({label:_7["newPage"],dir:_8.dir,lang:_8.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"NewPage",tabIndex:"-1",onClick:_3.hitch(this,"_newPage")});},setEditor:function(_9){this.editor=_9;this._initButton();},updateState:function(){this.button.set("disabled",this.get("disabled"));},_newPage:function(){this.editor.beginEditing();this.editor.set("value",this.content);this.editor.endEditing();this.editor.focus();}});_4.registry["newPage"]=_4.registry["newpage"]=function(_a){return new _6({content:("content" in _a)?_a.content:"<br>"});};return _6;}); \ No newline at end of file
+define("dijit/_editor/plugins/NewPage",["dojo/_base/declare","dojo/i18n","dojo/_base/lang","../_Plugin","../../form/Button","dojo/i18n!../nls/commands"],function(_1,_2,_3,_4,_5){var _6=_1("dijit._editor.plugins.NewPage",_4,{content:"<br>",_initButton:function(){var _7=_2.getLocalization("dijit._editor","commands"),_8=this.editor;this.button=new _5({label:_7["newPage"],ownerDocument:_8.ownerDocument,dir:_8.dir,lang:_8.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"NewPage",tabIndex:"-1",onClick:_3.hitch(this,"_newPage")});},setEditor:function(_9){this.editor=_9;this._initButton();},updateState:function(){this.button.set("disabled",this.get("disabled"));},_newPage:function(){this.editor.beginEditing();this.editor.set("value",this.content);this.editor.endEditing();this.editor.focus();}});_4.registry["newPage"]=_4.registry["newpage"]=function(_a){return new _6({content:("content" in _a)?_a.content:"<br>"});};return _6;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/plugins/Print.js b/lib/dijit/_editor/plugins/Print.js
index 7de192d52..b8d83cb2b 100644
--- a/lib/dijit/_editor/plugins/Print.js
+++ b/lib/dijit/_editor/plugins/Print.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/plugins/Print",["dojo/_base/declare","dojo/i18n","dojo/_base/lang","dojo/_base/sniff","../../focus","../_Plugin","../../form/Button","dojo/i18n!../nls/commands"],function(_1,_2,_3,_4,_5,_6,_7){var _8=_1("dijit._editor.plugins.Print",_6,{_initButton:function(){var _9=_2.getLocalization("dijit._editor","commands"),_a=this.editor;this.button=new _7({label:_9["print"],dir:_a.dir,lang:_a.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"Print",tabIndex:"-1",onClick:_3.hitch(this,"_print")});},setEditor:function(_b){this.editor=_b;this._initButton();this.editor.onLoadDeferred.addCallback(_3.hitch(this,function(){if(!this.editor.iframe.contentWindow["print"]){this.button.set("disabled",true);}}));},updateState:function(){var _c=this.get("disabled");if(!this.editor.iframe.contentWindow["print"]){_c=true;}this.button.set("disabled",_c);},_print:function(){var _d=this.editor.iframe;if(_d.contentWindow["print"]){if(!_4("opera")&&!_4("chrome")){_5.focus(_d);_d.contentWindow.print();}else{var _e=this.editor.document;var _f=this.editor.get("value");_f="<html><head><meta http-equiv='Content-Type' "+"content='text/html; charset='UTF-8'></head><body>"+_f+"</body></html>";var win=window.open("javascript: ''","","status=0,menubar=0,location=0,toolbar=0,"+"width=1,height=1,resizable=0,scrollbars=0");win.document.open();win.document.write(_f);win.document.close();var _10=_e.getElementsByTagName("style");if(_10){var i;for(i=0;i<_10.length;i++){var _11=_10[i].innerHTML;var _12=win.document.createElement("style");_12.appendChild(win.document.createTextNode(_11));win.document.getElementsByTagName("head")[0].appendChild(_12);}}win.print();win.close();}}}});_6.registry["print"]=function(){return new _8({command:"print"});};return _8;}); \ No newline at end of file
+define("dijit/_editor/plugins/Print",["dojo/_base/declare","dojo/i18n","dojo/_base/lang","dojo/sniff","../../focus","../_Plugin","../../form/Button","dojo/i18n!../nls/commands"],function(_1,_2,_3,_4,_5,_6,_7){var _8=_1("dijit._editor.plugins.Print",_6,{_initButton:function(){var _9=_2.getLocalization("dijit._editor","commands"),_a=this.editor;this.button=new _7({label:_9["print"],ownerDocument:_a.ownerDocument,dir:_a.dir,lang:_a.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"Print",tabIndex:"-1",onClick:_3.hitch(this,"_print")});},setEditor:function(_b){this.editor=_b;this._initButton();this.editor.onLoadDeferred.then(_3.hitch(this,function(){if(!this.editor.iframe.contentWindow["print"]){this.button.set("disabled",true);}}));},updateState:function(){var _c=this.get("disabled");if(!this.editor.iframe.contentWindow["print"]){_c=true;}this.button.set("disabled",_c);},_print:function(){var _d=this.editor.iframe;if(_d.contentWindow["print"]){if(!_4("opera")&&!_4("chrome")){_5.focus(_d);_d.contentWindow.print();}else{var _e=this.editor.document;var _f=this.editor.get("value");_f="<html><head><meta http-equiv='Content-Type' "+"content='text/html; charset='UTF-8'></head><body>"+_f+"</body></html>";var win=window.open("javascript: ''","","status=0,menubar=0,location=0,toolbar=0,"+"width=1,height=1,resizable=0,scrollbars=0");win.document.open();win.document.write(_f);win.document.close();var _10=_e.getElementsByTagName("style");if(_10){var i;for(i=0;i<_10.length;i++){var _11=_10[i].innerHTML;var _12=win.document.createElement("style");_12.appendChild(win.document.createTextNode(_11));win.document.getElementsByTagName("head")[0].appendChild(_12);}}win.print();win.close();}}}});_6.registry["print"]=function(){return new _8({command:"print"});};return _8;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/plugins/TextColor.js b/lib/dijit/_editor/plugins/TextColor.js
index c7943d640..7aa50cd51 100644
--- a/lib/dijit/_editor/plugins/TextColor.js
+++ b/lib/dijit/_editor/plugins/TextColor.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/plugins/TextColor",["require","dojo/colors","dojo/_base/declare","dojo/_base/lang","../_Plugin","../../form/DropDownButton"],function(_1,_2,_3,_4,_5,_6){var _7=_3("dijit._editor.plugins.TextColor",_5,{buttonClass:_6,useDefaultCommand:false,_initButton:function(){this.inherited(arguments);var _8=this;this.button.loadDropDown=function(_9){_1(["../../ColorPalette"],_4.hitch(this,function(_a){this.dropDown=new _a({value:_8.value,onChange:function(_b){_8.editor.execCommand(_8.command,_b);}});_9();}));};},updateState:function(){var _c=this.editor;var _d=this.command;if(!_c||!_c.isLoaded||!_d.length){return;}if(this.button){var _e=this.get("disabled");this.button.set("disabled",_e);if(_e){return;}var _f;try{_f=_c.queryCommandValue(_d)||"";}catch(e){_f="";}}if(_f==""){_f="#000000";}if(_f=="transparent"){_f="#ffffff";}if(typeof _f=="string"){if(_f.indexOf("rgb")>-1){_f=_2.fromRgb(_f).toHex();}}else{_f=((_f&255)<<16)|(_f&65280)|((_f&16711680)>>>16);_f=_f.toString(16);_f="#000000".slice(0,7-_f.length)+_f;}this.value=_f;var _10=this.button.dropDown;if(_10&&_f!==_10.get("value")){_10.set("value",_f,false);}}});_5.registry["foreColor"]=function(){return new _7({command:"foreColor"});};_5.registry["hiliteColor"]=function(){return new _7({command:"hiliteColor"});};return _7;}); \ No newline at end of file
+define("dijit/_editor/plugins/TextColor",["require","dojo/colors","dojo/_base/declare","dojo/_base/lang","../_Plugin","../../form/DropDownButton"],function(_1,_2,_3,_4,_5,_6){var _7=_3("dijit._editor.plugins.TextColor",_5,{buttonClass:_6,useDefaultCommand:false,_initButton:function(){this.inherited(arguments);var _8=this;this.button.loadDropDown=function(_9){_1(["../../ColorPalette"],_4.hitch(this,function(_a){this.dropDown=new _a({dir:_8.editor.dir,ownerDocument:_8.editor.ownerDocument,value:_8.value,onChange:function(_b){_8.editor.execCommand(_8.command,_b);}});_9();}));};},updateState:function(){var _c=this.editor;var _d=this.command;if(!_c||!_c.isLoaded||!_d.length){return;}if(this.button){var _e=this.get("disabled");this.button.set("disabled",_e);if(_e){return;}var _f;try{_f=_c.queryCommandValue(_d)||"";}catch(e){_f="";}}if(_f==""){_f="#000000";}if(_f=="transparent"){_f="#ffffff";}if(typeof _f=="string"){if(_f.indexOf("rgb")>-1){_f=_2.fromRgb(_f).toHex();}}else{_f=((_f&255)<<16)|(_f&65280)|((_f&16711680)>>>16);_f=_f.toString(16);_f="#000000".slice(0,7-_f.length)+_f;}this.value=_f;var _10=this.button.dropDown;if(_10&&_f!==_10.get("value")){_10.set("value",_f,false);}}});_5.registry["foreColor"]=function(){return new _7({command:"foreColor"});};_5.registry["hiliteColor"]=function(){return new _7({command:"hiliteColor"});};return _7;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/plugins/ToggleDir.js b/lib/dijit/_editor/plugins/ToggleDir.js
index 058445a9c..bf16dce9c 100644
--- a/lib/dijit/_editor/plugins/ToggleDir.js
+++ b/lib/dijit/_editor/plugins/ToggleDir.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/plugins/ToggleDir",["dojo/_base/declare","dojo/dom-style","dojo/_base/kernel","dojo/_base/lang","../_Plugin","../../form/ToggleButton"],function(_1,_2,_3,_4,_5,_6){_3.experimental("dijit._editor.plugins.ToggleDir");var _7=_1("dijit._editor.plugins.ToggleDir",_5,{useDefaultCommand:false,command:"toggleDir",buttonClass:_6,_initButton:function(){this.inherited(arguments);this.editor.onLoadDeferred.addCallback(_4.hitch(this,function(){var _8=this.editor.editorObject.contentWindow.document.documentElement;_8=_8.getElementsByTagName("body")[0];var _9=_2.getComputedStyle(_8).direction=="ltr";this.button.set("checked",!_9);this.connect(this.button,"onChange","_setRtl");}));},updateState:function(){this.button.set("disabled",this.get("disabled"));},_setRtl:function(_a){var _b="ltr";if(_a){_b="rtl";}var _c=this.editor.editorObject.contentWindow.document.documentElement;_c=_c.getElementsByTagName("body")[0];_c.dir=_b;}});_5.registry["toggleDir"]=function(){return new _7({command:"toggleDir"});};return _7;}); \ No newline at end of file
+define("dijit/_editor/plugins/ToggleDir",["dojo/_base/declare","dojo/dom-style","dojo/_base/kernel","dojo/_base/lang","../_Plugin","../../form/ToggleButton"],function(_1,_2,_3,_4,_5,_6){_3.experimental("dijit._editor.plugins.ToggleDir");var _7=_1("dijit._editor.plugins.ToggleDir",_5,{useDefaultCommand:false,command:"toggleDir",buttonClass:_6,_initButton:function(){this.inherited(arguments);this.editor.onLoadDeferred.then(_4.hitch(this,function(){var _8=this.editor.editorObject.contentWindow.document.documentElement;_8=_8.getElementsByTagName("body")[0];var _9=_2.getComputedStyle(_8).direction=="ltr";this.button.set("checked",!_9);this.connect(this.button,"onChange","_setRtl");}));},updateState:function(){this.button.set("disabled",this.get("disabled"));},_setRtl:function(_a){var _b="ltr";if(_a){_b="rtl";}var _c=this.editor.editorObject.contentWindow.document.documentElement;_c=_c.getElementsByTagName("body")[0];_c.dir=_b;}});_5.registry["toggleDir"]=function(){return new _7({command:"toggleDir"});};return _7;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/plugins/ViewSource.js b/lib/dijit/_editor/plugins/ViewSource.js
index c788fa048..e235ed09b 100644
--- a/lib/dijit/_editor/plugins/ViewSource.js
+++ b/lib/dijit/_editor/plugins/ViewSource.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/plugins/ViewSource",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/i18n","dojo/keys","dojo/_base/lang","dojo/on","dojo/_base/sniff","dojo/_base/window","dojo/window","../../focus","../_Plugin","../../form/ToggleButton","../..","../../registry","dojo/i18n!../nls/commands"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,on,_b,_c,_d,_e,_f,_10,_11,_12){var _13=_2("dijit._editor.plugins.ViewSource",_f,{stripScripts:true,stripComments:true,stripIFrames:true,readOnly:false,_fsPlugin:null,toggle:function(){if(_b("webkit")){this._vsFocused=true;}this.button.set("checked",!this.button.get("checked"));},_initButton:function(){var _14=_8.getLocalization("dijit._editor","commands"),_15=this.editor;this.button=new _10({label:_14["viewSource"],dir:_15.dir,lang:_15.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"ViewSource",tabIndex:"-1",onChange:_a.hitch(this,"_showSource")});if(_b("ie")==7){this._ieFixNode=_4.create("div",{style:{opacity:"0",zIndex:"-1000",position:"absolute",top:"-1000px"}},_c.body());}this.button.set("readOnly",false);},setEditor:function(_16){this.editor=_16;this._initButton();this.editor.addKeyHandler(_9.F12,true,true,_a.hitch(this,function(e){this.button.focus();this.toggle();_7.stop(e);setTimeout(_a.hitch(this,function(){this.editor.focus();}),100);}));},_showSource:function(_17){var ed=this.editor;var _18=ed._plugins;var _19;this._sourceShown=_17;var _1a=this;try{if(!this.sourceArea){this._createSourceView();}if(_17){ed._sourceQueryCommandEnabled=ed.queryCommandEnabled;ed.queryCommandEnabled=function(cmd){return cmd.toLowerCase()==="viewsource";};this.editor.onDisplayChanged();_19=ed.get("value");_19=this._filter(_19);ed.set("value",_19);_1.forEach(_18,function(p){if(!(p instanceof _13)){p.set("disabled",true);}});if(this._fsPlugin){this._fsPlugin._getAltViewNode=function(){return _1a.sourceArea;};}this.sourceArea.value=_19;this.sourceArea.style.height=ed.iframe.style.height;this.sourceArea.style.width=ed.iframe.style.width;_6.set(ed.iframe,"display","none");_6.set(this.sourceArea,{display:"block"});var _1b=function(){var vp=_d.getBox();if("_prevW" in this&&"_prevH" in this){if(vp.w===this._prevW&&vp.h===this._prevH){return;}else{this._prevW=vp.w;this._prevH=vp.h;}}else{this._prevW=vp.w;this._prevH=vp.h;}if(this._resizer){clearTimeout(this._resizer);delete this._resizer;}this._resizer=setTimeout(_a.hitch(this,function(){delete this._resizer;this._resize();}),10);};this._resizeHandle=on(window,"resize",_a.hitch(this,_1b));setTimeout(_a.hitch(this,this._resize),100);this.editor.onNormalizedDisplayChanged();this.editor.__oldGetValue=this.editor.getValue;this.editor.getValue=_a.hitch(this,function(){var txt=this.sourceArea.value;txt=this._filter(txt);return txt;});}else{if(!ed._sourceQueryCommandEnabled){return;}this._resizeHandle.remove();delete this._resizeHandle;if(this.editor.__oldGetValue){this.editor.getValue=this.editor.__oldGetValue;delete this.editor.__oldGetValue;}ed.queryCommandEnabled=ed._sourceQueryCommandEnabled;if(!this._readOnly){_19=this.sourceArea.value;_19=this._filter(_19);ed.beginEditing();ed.set("value",_19);ed.endEditing();}_1.forEach(_18,function(p){p.set("disabled",false);});_6.set(this.sourceArea,"display","none");_6.set(ed.iframe,"display","block");delete ed._sourceQueryCommandEnabled;this.editor.onDisplayChanged();}setTimeout(_a.hitch(this,function(){var _1c=ed.domNode.parentNode;if(_1c){var _1d=_12.getEnclosingWidget(_1c);if(_1d&&_1d.resize){_1d.resize();}}ed.resize();}),300);}catch(e){}},updateState:function(){this.button.set("disabled",this.get("disabled"));},_resize:function(){var ed=this.editor;var tbH=ed.getHeaderHeight();var fH=ed.getFooterHeight();var eb=_5.position(ed.domNode);var _1e=_5.getPadBorderExtents(ed.iframe.parentNode);var _1f=_5.getMarginExtents(ed.iframe.parentNode);var _20=_5.getPadBorderExtents(ed.domNode);var edb={w:eb.w-_20.w,h:eb.h-(tbH+_20.h+ +fH)};if(this._fsPlugin&&this._fsPlugin.isFullscreen){var vp=_d.getBox();edb.w=(vp.w-_20.w);edb.h=(vp.h-(tbH+_20.h+fH));}if(_b("ie")){edb.h-=2;}if(this._ieFixNode){var _21=-this._ieFixNode.offsetTop/1000;edb.w=Math.floor((edb.w+0.9)/_21);edb.h=Math.floor((edb.h+0.9)/_21);}_5.setMarginBox(this.sourceArea,{w:edb.w-(_1e.w+_1f.w),h:edb.h-(_1e.h+_1f.h)});_5.setMarginBox(ed.iframe.parentNode,{h:edb.h});},_createSourceView:function(){var ed=this.editor;var _22=ed._plugins;this.sourceArea=_4.create("textarea");if(this.readOnly){_3.set(this.sourceArea,"readOnly",true);this._readOnly=true;}_6.set(this.sourceArea,{padding:"0px",margin:"0px",borderWidth:"0px",borderStyle:"none"});_4.place(this.sourceArea,ed.iframe,"before");if(_b("ie")&&ed.iframe.parentNode.lastChild!==ed.iframe){_6.set(ed.iframe.parentNode.lastChild,{width:"0px",height:"0px",padding:"0px",margin:"0px",borderWidth:"0px",borderStyle:"none"});}ed._viewsource_oldFocus=ed.focus;var _23=this;ed.focus=function(){if(_23._sourceShown){_23.setSourceAreaCaret();}else{try{if(this._vsFocused){delete this._vsFocused;_e.focus(ed.editNode);}else{ed._viewsource_oldFocus();}}catch(e){}}};var i,p;for(i=0;i<_22.length;i++){p=_22[i];if(p&&(p.declaredClass==="dijit._editor.plugins.FullScreen"||p.declaredClass===(_11._scopeName+"._editor.plugins.FullScreen"))){this._fsPlugin=p;break;}}if(this._fsPlugin){this._fsPlugin._viewsource_getAltViewNode=this._fsPlugin._getAltViewNode;this._fsPlugin._getAltViewNode=function(){return _23._sourceShown?_23.sourceArea:this._viewsource_getAltViewNode();};}this.connect(this.sourceArea,"onkeydown",_a.hitch(this,function(e){if(this._sourceShown&&e.keyCode==_9.F12&&e.ctrlKey&&e.shiftKey){this.button.focus();this.button.set("checked",false);setTimeout(_a.hitch(this,function(){ed.focus();}),100);_7.stop(e);}}));},_stripScripts:function(_24){if(_24){_24=_24.replace(/<\s*script[^>]*>((.|\s)*?)<\\?\/\s*script\s*>/ig,"");_24=_24.replace(/<\s*script\b([^<>]|\s)*>?/ig,"");_24=_24.replace(/<[^>]*=(\s|)*[("|')]javascript:[^$1][(\s|.)]*[$1][^>]*>/ig,"");}return _24;},_stripComments:function(_25){if(_25){_25=_25.replace(/<!--(.|\s){1,}?-->/g,"");}return _25;},_stripIFrames:function(_26){if(_26){_26=_26.replace(/<\s*iframe[^>]*>((.|\s)*?)<\\?\/\s*iframe\s*>/ig,"");}return _26;},_filter:function(_27){if(_27){if(this.stripScripts){_27=this._stripScripts(_27);}if(this.stripComments){_27=this._stripComments(_27);}if(this.stripIFrames){_27=this._stripIFrames(_27);}}return _27;},setSourceAreaCaret:function(){var _28=_c.global;var _29=this.sourceArea;_e.focus(_29);if(this._sourceShown&&!this.readOnly){if(_b("ie")){if(this.sourceArea.createTextRange){var _2a=_29.createTextRange();_2a.collapse(true);_2a.moveStart("character",-99999);_2a.moveStart("character",0);_2a.moveEnd("character",0);_2a.select();}}else{if(_28.getSelection){if(_29.setSelectionRange){_29.setSelectionRange(0,0);}}}}},destroy:function(){if(this._ieFixNode){_c.body().removeChild(this._ieFixNode);}if(this._resizer){clearTimeout(this._resizer);delete this._resizer;}if(this._resizeHandle){this._resizeHandle.remove();delete this._resizeHandle;}this.inherited(arguments);}});_f.registry["viewSource"]=_f.registry["viewsource"]=function(_2b){return new _13({readOnly:("readOnly" in _2b)?_2b.readOnly:false,stripComments:("stripComments" in _2b)?_2b.stripComments:true,stripScripts:("stripScripts" in _2b)?_2b.stripScripts:true,stripIFrames:("stripIFrames" in _2b)?_2b.stripIFrames:true});};return _13;}); \ No newline at end of file
+define("dijit/_editor/plugins/ViewSource",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/i18n","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","dojo/_base/window","dojo/window","../../focus","../_Plugin","../../form/ToggleButton","../..","../../registry","dojo/aspect","dojo/i18n!../nls/commands"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,on,_b,_c,_d,_e,_f,_10,_11,_12,_13){var _14=_2("dijit._editor.plugins.ViewSource",_f,{stripScripts:true,stripComments:true,stripIFrames:true,readOnly:false,_fsPlugin:null,toggle:function(){if(_b("webkit")){this._vsFocused=true;}this.button.set("checked",!this.button.get("checked"));},_initButton:function(){var _15=_8.getLocalization("dijit._editor","commands"),_16=this.editor;this.button=new _10({label:_15["viewSource"],ownerDocument:_16.ownerDocument,dir:_16.dir,lang:_16.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"ViewSource",tabIndex:"-1",onChange:_a.hitch(this,"_showSource")});if(_b("ie")==7){this._ieFixNode=_4.create("div",{style:{opacity:"0",zIndex:"-1000",position:"absolute",top:"-1000px"}},_16.ownerDocumentBody);}this.button.set("readOnly",false);},setEditor:function(_17){this.editor=_17;this._initButton();this.editor.addKeyHandler(_9.F12,true,true,_a.hitch(this,function(e){this.button.focus();this.toggle();_7.stop(e);setTimeout(_a.hitch(this,function(){this.editor.focus();}),100);}));},_showSource:function(_18){var ed=this.editor;var _19=ed._plugins;var _1a;this._sourceShown=_18;var _1b=this;try{if(!this.sourceArea){this._createSourceView();}if(_18){ed._sourceQueryCommandEnabled=ed.queryCommandEnabled;ed.queryCommandEnabled=function(cmd){return cmd.toLowerCase()==="viewsource";};this.editor.onDisplayChanged();_1a=ed.get("value");_1a=this._filter(_1a);ed.set("value",_1a);_1.forEach(_19,function(p){if(p&&!(p instanceof _14)&&p.isInstanceOf(_f)){p.set("disabled",true);}});if(this._fsPlugin){this._fsPlugin._getAltViewNode=function(){return _1b.sourceArea;};}this.sourceArea.value=_1a;this.sourceArea.style.height=ed.iframe.style.height;this.sourceArea.style.width=ed.iframe.style.width;_6.set(ed.iframe,"display","none");_6.set(this.sourceArea,{display:"block"});var _1c=function(){var vp=_d.getBox(ed.ownerDocument);if("_prevW" in this&&"_prevH" in this){if(vp.w===this._prevW&&vp.h===this._prevH){return;}else{this._prevW=vp.w;this._prevH=vp.h;}}else{this._prevW=vp.w;this._prevH=vp.h;}if(this._resizer){clearTimeout(this._resizer);delete this._resizer;}this._resizer=setTimeout(_a.hitch(this,function(){delete this._resizer;this._resize();}),10);};this._resizeHandle=on(window,"resize",_a.hitch(this,_1c));setTimeout(_a.hitch(this,this._resize),100);this.editor.onNormalizedDisplayChanged();this.editor.__oldGetValue=this.editor.getValue;this.editor.getValue=_a.hitch(this,function(){var txt=this.sourceArea.value;txt=this._filter(txt);return txt;});this._setListener=_13.after(this.editor,"setValue",_a.hitch(this,function(_1d){_1d=_1d||"";_1d=this._filter(_1d);this.sourceArea.value=_1d;}),true);}else{if(!ed._sourceQueryCommandEnabled){return;}this._setListener.remove();delete this._setListener;this._resizeHandle.remove();delete this._resizeHandle;if(this.editor.__oldGetValue){this.editor.getValue=this.editor.__oldGetValue;delete this.editor.__oldGetValue;}ed.queryCommandEnabled=ed._sourceQueryCommandEnabled;if(!this._readOnly){_1a=this.sourceArea.value;_1a=this._filter(_1a);ed.beginEditing();ed.set("value",_1a);ed.endEditing();}_1.forEach(_19,function(p){if(p&&p.isInstanceOf(_f)){p.set("disabled",false);}});_6.set(this.sourceArea,"display","none");_6.set(ed.iframe,"display","block");delete ed._sourceQueryCommandEnabled;this.editor.onDisplayChanged();}setTimeout(_a.hitch(this,function(){var _1e=ed.domNode.parentNode;if(_1e){var _1f=_12.getEnclosingWidget(_1e);if(_1f&&_1f.resize){_1f.resize();}}ed.resize();}),300);}catch(e){}},updateState:function(){this.button.set("disabled",this.get("disabled"));},_resize:function(){var ed=this.editor;var tbH=ed.getHeaderHeight();var fH=ed.getFooterHeight();var eb=_5.position(ed.domNode);var _20=_5.getPadBorderExtents(ed.iframe.parentNode);var _21=_5.getMarginExtents(ed.iframe.parentNode);var _22=_5.getPadBorderExtents(ed.domNode);var edb={w:eb.w-_22.w,h:eb.h-(tbH+_22.h+fH)};if(this._fsPlugin&&this._fsPlugin.isFullscreen){var vp=_d.getBox(ed.ownerDocument);edb.w=(vp.w-_22.w);edb.h=(vp.h-(tbH+_22.h+fH));}if(_b("ie")){edb.h-=2;}if(this._ieFixNode){var _23=-this._ieFixNode.offsetTop/1000;edb.w=Math.floor((edb.w+0.9)/_23);edb.h=Math.floor((edb.h+0.9)/_23);}_5.setMarginBox(this.sourceArea,{w:edb.w-(_20.w+_21.w),h:edb.h-(_20.h+_21.h)});_5.setMarginBox(ed.iframe.parentNode,{h:edb.h});},_createSourceView:function(){var ed=this.editor;var _24=ed._plugins;this.sourceArea=_4.create("textarea");if(this.readOnly){_3.set(this.sourceArea,"readOnly",true);this._readOnly=true;}_6.set(this.sourceArea,{padding:"0px",margin:"0px",borderWidth:"0px",borderStyle:"none"});_4.place(this.sourceArea,ed.iframe,"before");if(_b("ie")&&ed.iframe.parentNode.lastChild!==ed.iframe){_6.set(ed.iframe.parentNode.lastChild,{width:"0px",height:"0px",padding:"0px",margin:"0px",borderWidth:"0px",borderStyle:"none"});}ed._viewsource_oldFocus=ed.focus;var _25=this;ed.focus=function(){if(_25._sourceShown){_25.setSourceAreaCaret();}else{try{if(this._vsFocused){delete this._vsFocused;_e.focus(ed.editNode);}else{ed._viewsource_oldFocus();}}catch(e){}}};var i,p;for(i=0;i<_24.length;i++){p=_24[i];if(p&&(p.declaredClass==="dijit._editor.plugins.FullScreen"||p.declaredClass===(_11._scopeName+"._editor.plugins.FullScreen"))){this._fsPlugin=p;break;}}if(this._fsPlugin){this._fsPlugin._viewsource_getAltViewNode=this._fsPlugin._getAltViewNode;this._fsPlugin._getAltViewNode=function(){return _25._sourceShown?_25.sourceArea:this._viewsource_getAltViewNode();};}this.connect(this.sourceArea,"onkeydown",_a.hitch(this,function(e){if(this._sourceShown&&e.keyCode==_9.F12&&e.ctrlKey&&e.shiftKey){this.button.focus();this.button.set("checked",false);setTimeout(_a.hitch(this,function(){ed.focus();}),100);_7.stop(e);}}));},_stripScripts:function(_26){if(_26){_26=_26.replace(/<\s*script[^>]*>((.|\s)*?)<\\?\/\s*script\s*>/ig,"");_26=_26.replace(/<\s*script\b([^<>]|\s)*>?/ig,"");_26=_26.replace(/<[^>]*=(\s|)*[("|')]javascript:[^$1][(\s|.)]*[$1][^>]*>/ig,"");}return _26;},_stripComments:function(_27){if(_27){_27=_27.replace(/<!--(.|\s){1,}?-->/g,"");}return _27;},_stripIFrames:function(_28){if(_28){_28=_28.replace(/<\s*iframe[^>]*>((.|\s)*?)<\\?\/\s*iframe\s*>/ig,"");}return _28;},_filter:function(_29){if(_29){if(this.stripScripts){_29=this._stripScripts(_29);}if(this.stripComments){_29=this._stripComments(_29);}if(this.stripIFrames){_29=this._stripIFrames(_29);}}return _29;},setSourceAreaCaret:function(){var _2a=_c.global;var _2b=this.sourceArea;_e.focus(_2b);if(this._sourceShown&&!this.readOnly){if(_b("ie")){if(this.sourceArea.createTextRange){var _2c=_2b.createTextRange();_2c.collapse(true);_2c.moveStart("character",-99999);_2c.moveStart("character",0);_2c.moveEnd("character",0);_2c.select();}}else{if(_2a.getSelection){if(_2b.setSelectionRange){_2b.setSelectionRange(0,0);}}}}},destroy:function(){if(this._ieFixNode){_4.destroy(this._ieFixNode);}if(this._resizer){clearTimeout(this._resizer);delete this._resizer;}if(this._resizeHandle){this._resizeHandle.remove();delete this._resizeHandle;}if(this._setListener){this._setListener.remove();delete this._setListener;}this.inherited(arguments);}});_f.registry["viewSource"]=_f.registry["viewsource"]=function(_2d){return new _14({readOnly:("readOnly" in _2d)?_2d.readOnly:false,stripComments:("stripComments" in _2d)?_2d.stripComments:true,stripScripts:("stripScripts" in _2d)?_2d.stripScripts:true,stripIFrames:("stripIFrames" in _2d)?_2d.stripIFrames:true});};return _14;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/range.js b/lib/dijit/_editor/range.js
index 3c92de470..403d8968d 100644
--- a/lib/dijit/_editor/range.js
+++ b/lib/dijit/_editor/range.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/range",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/_base/window",".."],function(_1,_2,_3,_4,_5){_5.range={};_5.range.getIndex=function(_6,_7){var _8=[],_9=[];var _a=_6;var _b,n;while(_6!=_7){var i=0;_b=_6.parentNode;while((n=_b.childNodes[i++])){if(n===_6){--i;break;}}_8.unshift(i);_9.unshift(i-_b.childNodes.length);_6=_b;}if(_8.length>0&&_a.nodeType==3){n=_a.previousSibling;while(n&&n.nodeType==3){_8[_8.length-1]--;n=n.previousSibling;}n=_a.nextSibling;while(n&&n.nodeType==3){_9[_9.length-1]++;n=n.nextSibling;}}return {o:_8,r:_9};};_5.range.getNode=function(_c,_d){if(!_3.isArray(_c)||_c.length==0){return _d;}var _e=_d;_1.every(_c,function(i){if(i>=0&&i<_e.childNodes.length){_e=_e.childNodes[i];}else{_e=null;return false;}return true;});return _e;};_5.range.getCommonAncestor=function(n1,n2,_f){_f=_f||n1.ownerDocument.body;var _10=function(n){var as=[];while(n){as.unshift(n);if(n!==_f){n=n.parentNode;}else{break;}}return as;};var _11=_10(n1);var _12=_10(n2);var m=Math.min(_11.length,_12.length);var com=_11[0];for(var i=1;i<m;i++){if(_11[i]===_12[i]){com=_11[i];}else{break;}}return com;};_5.range.getAncestor=function(_13,_14,_15){_15=_15||_13.ownerDocument.body;while(_13&&_13!==_15){var _16=_13.nodeName.toUpperCase();if(_14.test(_16)){return _13;}_13=_13.parentNode;}return null;};_5.range.BlockTagNames=/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/;_5.range.getBlockAncestor=function(_17,_18,_19){_19=_19||_17.ownerDocument.body;_18=_18||_5.range.BlockTagNames;var _1a=null,_1b;while(_17&&_17!==_19){var _1c=_17.nodeName.toUpperCase();if(!_1a&&_18.test(_1c)){_1a=_17;}if(!_1b&&(/^(?:BODY|TD|TH|CAPTION)$/).test(_1c)){_1b=_17;}_17=_17.parentNode;}return {blockNode:_1a,blockContainer:_1b||_17.ownerDocument.body};};_5.range.atBeginningOfContainer=function(_1d,_1e,_1f){var _20=false;var _21=(_1f==0);if(!_21&&_1e.nodeType==3){if(/^[\s\xA0]+$/.test(_1e.nodeValue.substr(0,_1f))){_21=true;}}if(_21){var _22=_1e;_20=true;while(_22&&_22!==_1d){if(_22.previousSibling){_20=false;break;}_22=_22.parentNode;}}return _20;};_5.range.atEndOfContainer=function(_23,_24,_25){var _26=false;var _27=(_25==(_24.length||_24.childNodes.length));if(!_27&&_24.nodeType==3){if(/^[\s\xA0]+$/.test(_24.nodeValue.substr(_25))){_27=true;}}if(_27){var _28=_24;_26=true;while(_28&&_28!==_23){if(_28.nextSibling){_26=false;break;}_28=_28.parentNode;}}return _26;};_5.range.adjacentNoneTextNode=function(_29,_2a){var _2b=_29;var len=(0-_29.length)||0;var _2c=_2a?"nextSibling":"previousSibling";while(_2b){if(_2b.nodeType!=3){break;}len+=_2b.length;_2b=_2b[_2c];}return [_2b,len];};_5.range._w3c=Boolean(window["getSelection"]);_5.range.create=function(_2d){if(_5.range._w3c){return (_2d||_4.global).document.createRange();}else{return new _5.range.W3CRange;}};_5.range.getSelection=function(win,_2e){if(_5.range._w3c){return win.getSelection();}else{var s=new _5.range.ie.selection(win);if(!_2e){s._getCurrentSelection();}return s;}};if(!_5.range._w3c){_5.range.ie={cachedSelection:{},selection:function(win){this._ranges=[];this.addRange=function(r,_2f){this._ranges.push(r);if(!_2f){r._select();}this.rangeCount=this._ranges.length;};this.removeAllRanges=function(){this._ranges=[];this.rangeCount=0;};var _30=function(){var r=win.document.selection.createRange();var _31=win.document.selection.type.toUpperCase();if(_31=="CONTROL"){return new _5.range.W3CRange(_5.range.ie.decomposeControlRange(r));}else{return new _5.range.W3CRange(_5.range.ie.decomposeTextRange(r));}};this.getRangeAt=function(i){return this._ranges[i];};this._getCurrentSelection=function(){this.removeAllRanges();var r=_30();if(r){this.addRange(r,true);this.isCollapsed=r.collapsed;}else{this.isCollapsed=true;}};},decomposeControlRange:function(_32){var _33=_32.item(0),_34=_32.item(_32.length-1);var _35=_33.parentNode,_36=_34.parentNode;var _37=_5.range.getIndex(_33,_35).o[0];var _38=_5.range.getIndex(_34,_36).o[0]+1;return [_35,_37,_36,_38];},getEndPoint:function(_39,end){var _3a=_39.duplicate();_3a.collapse(!end);var _3b="EndTo"+(end?"End":"Start");var _3c=_3a.parentElement();var _3d,_3e,_3f;if(_3c.childNodes.length>0){_1.every(_3c.childNodes,function(_40,i){var _41;if(_40.nodeType!=3){_3a.moveToElementText(_40);if(_3a.compareEndPoints(_3b,_39)>0){if(_3f&&_3f.nodeType==3){_3d=_3f;_41=true;}else{_3d=_3c;_3e=i;return false;}}else{if(i==_3c.childNodes.length-1){_3d=_3c;_3e=_3c.childNodes.length;return false;}}}else{if(i==_3c.childNodes.length-1){_3d=_40;_41=true;}}if(_41&&_3d){var _42=_5.range.adjacentNoneTextNode(_3d)[0];if(_42){_3d=_42.nextSibling;}else{_3d=_3c.firstChild;}var _43=_5.range.adjacentNoneTextNode(_3d);_42=_43[0];var _44=_43[1];if(_42){_3a.moveToElementText(_42);_3a.collapse(false);}else{_3a.moveToElementText(_3c);}_3a.setEndPoint(_3b,_39);_3e=_3a.text.length-_44;return false;}_3f=_40;return true;});}else{_3d=_3c;_3e=0;}if(!end&&_3d.nodeType==1&&_3e==_3d.childNodes.length){var _45=_3d.nextSibling;if(_45&&_45.nodeType==3){_3d=_45;_3e=0;}}return [_3d,_3e];},setEndPoint:function(_46,_47,_48){var _49=_46.duplicate(),_4a,len;if(_47.nodeType!=3){if(_48>0){_4a=_47.childNodes[_48-1];if(_4a){if(_4a.nodeType==3){_47=_4a;_48=_4a.length;}else{if(_4a.nextSibling&&_4a.nextSibling.nodeType==3){_47=_4a.nextSibling;_48=0;}else{_49.moveToElementText(_4a.nextSibling?_4a:_47);var _4b=_4a.parentNode;var _4c=_4b.insertBefore(_4a.ownerDocument.createTextNode(" "),_4a.nextSibling);_49.collapse(false);_4b.removeChild(_4c);}}}}else{_49.moveToElementText(_47);_49.collapse(true);}}if(_47.nodeType==3){var _4d=_5.range.adjacentNoneTextNode(_47);var _4e=_4d[0];len=_4d[1];if(_4e){_49.moveToElementText(_4e);_49.collapse(false);if(_4e.contentEditable!="inherit"){len++;}}else{_49.moveToElementText(_47.parentNode);_49.collapse(true);}_48+=len;if(_48>0){if(_49.move("character",_48)!=_48){console.error("Error when moving!");}}}return _49;},decomposeTextRange:function(_4f){var _50=_5.range.ie.getEndPoint(_4f);var _51=_50[0],_52=_50[1];var _53=_50[0],_54=_50[1];if(_4f.htmlText.length){if(_4f.htmlText==_4f.text){_54=_52+_4f.text.length;}else{_50=_5.range.ie.getEndPoint(_4f,true);_53=_50[0],_54=_50[1];}}return [_51,_52,_53,_54];},setRange:function(_55,_56,_57,_58,_59,_5a){var _5b=_5.range.ie.setEndPoint(_55,_56,_57);_55.setEndPoint("StartToStart",_5b);if(!_5a){var end=_5.range.ie.setEndPoint(_55,_58,_59);}_55.setEndPoint("EndToEnd",end||_5b);return _55;}};_2("dijit.range.W3CRange",null,{constructor:function(){if(arguments.length>0){this.setStart(arguments[0][0],arguments[0][1]);this.setEnd(arguments[0][2],arguments[0][3]);}else{this.commonAncestorContainer=null;this.startContainer=null;this.startOffset=0;this.endContainer=null;this.endOffset=0;this.collapsed=true;}},_updateInternal:function(){if(this.startContainer!==this.endContainer){this.commonAncestorContainer=_5.range.getCommonAncestor(this.startContainer,this.endContainer);}else{this.commonAncestorContainer=this.startContainer;}this.collapsed=(this.startContainer===this.endContainer)&&(this.startOffset==this.endOffset);},setStart:function(_5c,_5d){_5d=parseInt(_5d);if(this.startContainer===_5c&&this.startOffset==_5d){return;}delete this._cachedBookmark;this.startContainer=_5c;this.startOffset=_5d;if(!this.endContainer){this.setEnd(_5c,_5d);}else{this._updateInternal();}},setEnd:function(_5e,_5f){_5f=parseInt(_5f);if(this.endContainer===_5e&&this.endOffset==_5f){return;}delete this._cachedBookmark;this.endContainer=_5e;this.endOffset=_5f;if(!this.startContainer){this.setStart(_5e,_5f);}else{this._updateInternal();}},setStartAfter:function(_60,_61){this._setPoint("setStart",_60,_61,1);},setStartBefore:function(_62,_63){this._setPoint("setStart",_62,_63,0);},setEndAfter:function(_64,_65){this._setPoint("setEnd",_64,_65,1);},setEndBefore:function(_66,_67){this._setPoint("setEnd",_66,_67,0);},_setPoint:function(_68,_69,_6a,ext){var _6b=_5.range.getIndex(_69,_69.parentNode).o;this[_68](_69.parentNode,_6b.pop()+ext);},_getIERange:function(){var r=(this._body||this.endContainer.ownerDocument.body).createTextRange();_5.range.ie.setRange(r,this.startContainer,this.startOffset,this.endContainer,this.endOffset,this.collapsed);return r;},getBookmark:function(){this._getIERange();return this._cachedBookmark;},_select:function(){var r=this._getIERange();r.select();},deleteContents:function(){var s=this.startContainer,r=this._getIERange();if(s.nodeType===3&&!this.startOffset){this.setStartBefore(s);}r.pasteHTML("");this.endContainer=this.startContainer;this.endOffset=this.startOffset;this.collapsed=true;},cloneRange:function(){var r=new _5.range.W3CRange([this.startContainer,this.startOffset,this.endContainer,this.endOffset]);r._body=this._body;return r;},detach:function(){this._body=null;this.commonAncestorContainer=null;this.startContainer=null;this.startOffset=0;this.endContainer=null;this.endOffset=0;this.collapsed=true;}});}return _5.range;}); \ No newline at end of file
+define("dijit/_editor/range",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/_base/window","../main"],function(_1,_2,_3,_4,_5){_5.range={};_5.range.getIndex=function(_6,_7){var _8=[],_9=[];var _a=_6;var _b,n;while(_6!=_7){var i=0;_b=_6.parentNode;while((n=_b.childNodes[i++])){if(n===_6){--i;break;}}_8.unshift(i);_9.unshift(i-_b.childNodes.length);_6=_b;}if(_8.length>0&&_a.nodeType==3){n=_a.previousSibling;while(n&&n.nodeType==3){_8[_8.length-1]--;n=n.previousSibling;}n=_a.nextSibling;while(n&&n.nodeType==3){_9[_9.length-1]++;n=n.nextSibling;}}return {o:_8,r:_9};};_5.range.getNode=function(_c,_d){if(!_3.isArray(_c)||_c.length==0){return _d;}var _e=_d;_1.every(_c,function(i){if(i>=0&&i<_e.childNodes.length){_e=_e.childNodes[i];}else{_e=null;return false;}return true;});return _e;};_5.range.getCommonAncestor=function(n1,n2,_f){_f=_f||n1.ownerDocument.body;var _10=function(n){var as=[];while(n){as.unshift(n);if(n!==_f){n=n.parentNode;}else{break;}}return as;};var _11=_10(n1);var _12=_10(n2);var m=Math.min(_11.length,_12.length);var com=_11[0];for(var i=1;i<m;i++){if(_11[i]===_12[i]){com=_11[i];}else{break;}}return com;};_5.range.getAncestor=function(_13,_14,_15){_15=_15||_13.ownerDocument.body;while(_13&&_13!==_15){var _16=_13.nodeName.toUpperCase();if(_14.test(_16)){return _13;}_13=_13.parentNode;}return null;};_5.range.BlockTagNames=/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/;_5.range.getBlockAncestor=function(_17,_18,_19){_19=_19||_17.ownerDocument.body;_18=_18||_5.range.BlockTagNames;var _1a=null,_1b;while(_17&&_17!==_19){var _1c=_17.nodeName.toUpperCase();if(!_1a&&_18.test(_1c)){_1a=_17;}if(!_1b&&(/^(?:BODY|TD|TH|CAPTION)$/).test(_1c)){_1b=_17;}_17=_17.parentNode;}return {blockNode:_1a,blockContainer:_1b||_17.ownerDocument.body};};_5.range.atBeginningOfContainer=function(_1d,_1e,_1f){var _20=false;var _21=(_1f==0);if(!_21&&_1e.nodeType==3){if(/^[\s\xA0]+$/.test(_1e.nodeValue.substr(0,_1f))){_21=true;}}if(_21){var _22=_1e;_20=true;while(_22&&_22!==_1d){if(_22.previousSibling){_20=false;break;}_22=_22.parentNode;}}return _20;};_5.range.atEndOfContainer=function(_23,_24,_25){var _26=false;var _27=(_25==(_24.length||_24.childNodes.length));if(!_27&&_24.nodeType==3){if(/^[\s\xA0]+$/.test(_24.nodeValue.substr(_25))){_27=true;}}if(_27){var _28=_24;_26=true;while(_28&&_28!==_23){if(_28.nextSibling){_26=false;break;}_28=_28.parentNode;}}return _26;};_5.range.adjacentNoneTextNode=function(_29,_2a){var _2b=_29;var len=(0-_29.length)||0;var _2c=_2a?"nextSibling":"previousSibling";while(_2b){if(_2b.nodeType!=3){break;}len+=_2b.length;_2b=_2b[_2c];}return [_2b,len];};_5.range.create=function(win){win=win||window;if(win.getSelection){return win.document.createRange();}else{return new _5.range.W3CRange();}};_5.range.getSelection=function(_2d,_2e){if(_2d.getSelection){return _2d.getSelection();}else{var s=new _5.range.ie.selection(_2d);if(!_2e){s._getCurrentSelection();}return s;}};if(!window.getSelection){_5.range.ie={cachedSelection:{},selection:function(_2f){this._ranges=[];this.addRange=function(r,_30){this._ranges.push(r);if(!_30){r._select();}this.rangeCount=this._ranges.length;};this.removeAllRanges=function(){this._ranges=[];this.rangeCount=0;};var _31=function(){var r=_2f.document.selection.createRange();var _32=_2f.document.selection.type.toUpperCase();if(_32=="CONTROL"){return new _5.range.W3CRange(_5.range.ie.decomposeControlRange(r));}else{return new _5.range.W3CRange(_5.range.ie.decomposeTextRange(r));}};this.getRangeAt=function(i){return this._ranges[i];};this._getCurrentSelection=function(){this.removeAllRanges();var r=_31();if(r){this.addRange(r,true);this.isCollapsed=r.collapsed;}else{this.isCollapsed=true;}};},decomposeControlRange:function(_33){var _34=_33.item(0),_35=_33.item(_33.length-1);var _36=_34.parentNode,_37=_35.parentNode;var _38=_5.range.getIndex(_34,_36).o[0];var _39=_5.range.getIndex(_35,_37).o[0]+1;return [_36,_38,_37,_39];},getEndPoint:function(_3a,end){var _3b=_3a.duplicate();_3b.collapse(!end);var _3c="EndTo"+(end?"End":"Start");var _3d=_3b.parentElement();var _3e,_3f,_40;if(_3d.childNodes.length>0){_1.every(_3d.childNodes,function(_41,i){var _42;if(_41.nodeType!=3){_3b.moveToElementText(_41);if(_3b.compareEndPoints(_3c,_3a)>0){if(_40&&_40.nodeType==3){_3e=_40;_42=true;}else{_3e=_3d;_3f=i;return false;}}else{if(i==_3d.childNodes.length-1){_3e=_3d;_3f=_3d.childNodes.length;return false;}}}else{if(i==_3d.childNodes.length-1){_3e=_41;_42=true;}}if(_42&&_3e){var _43=_5.range.adjacentNoneTextNode(_3e)[0];if(_43){_3e=_43.nextSibling;}else{_3e=_3d.firstChild;}var _44=_5.range.adjacentNoneTextNode(_3e);_43=_44[0];var _45=_44[1];if(_43){_3b.moveToElementText(_43);_3b.collapse(false);}else{_3b.moveToElementText(_3d);}_3b.setEndPoint(_3c,_3a);_3f=_3b.text.length-_45;return false;}_40=_41;return true;});}else{_3e=_3d;_3f=0;}if(!end&&_3e.nodeType==1&&_3f==_3e.childNodes.length){var _46=_3e.nextSibling;if(_46&&_46.nodeType==3){_3e=_46;_3f=0;}}return [_3e,_3f];},setEndPoint:function(_47,_48,_49){var _4a=_47.duplicate(),_4b,len;if(_48.nodeType!=3){if(_49>0){_4b=_48.childNodes[_49-1];if(_4b){if(_4b.nodeType==3){_48=_4b;_49=_4b.length;}else{if(_4b.nextSibling&&_4b.nextSibling.nodeType==3){_48=_4b.nextSibling;_49=0;}else{_4a.moveToElementText(_4b.nextSibling?_4b:_48);var _4c=_4b.parentNode;var _4d=_4c.insertBefore(_4b.ownerDocument.createTextNode(" "),_4b.nextSibling);_4a.collapse(false);_4c.removeChild(_4d);}}}}else{_4a.moveToElementText(_48);_4a.collapse(true);}}if(_48.nodeType==3){var _4e=_5.range.adjacentNoneTextNode(_48);var _4f=_4e[0];len=_4e[1];if(_4f){_4a.moveToElementText(_4f);_4a.collapse(false);if(_4f.contentEditable!="inherit"){len++;}}else{_4a.moveToElementText(_48.parentNode);_4a.collapse(true);_4a.move("character",1);_4a.move("character",-1);}_49+=len;if(_49>0){if(_4a.move("character",_49)!=_49){console.error("Error when moving!");}}}return _4a;},decomposeTextRange:function(_50){var _51=_5.range.ie.getEndPoint(_50);var _52=_51[0],_53=_51[1];var _54=_51[0],_55=_51[1];if(_50.htmlText.length){if(_50.htmlText==_50.text){_55=_53+_50.text.length;}else{_51=_5.range.ie.getEndPoint(_50,true);_54=_51[0],_55=_51[1];}}return [_52,_53,_54,_55];},setRange:function(_56,_57,_58,_59,_5a,_5b){var _5c=_5.range.ie.setEndPoint(_56,_57,_58);_56.setEndPoint("StartToStart",_5c);if(!_5b){var end=_5.range.ie.setEndPoint(_56,_59,_5a);}_56.setEndPoint("EndToEnd",end||_5c);return _56;}};_2("dijit.range.W3CRange",null,{constructor:function(){if(arguments.length>0){this.setStart(arguments[0][0],arguments[0][1]);this.setEnd(arguments[0][2],arguments[0][3]);}else{this.commonAncestorContainer=null;this.startContainer=null;this.startOffset=0;this.endContainer=null;this.endOffset=0;this.collapsed=true;}},_updateInternal:function(){if(this.startContainer!==this.endContainer){this.commonAncestorContainer=_5.range.getCommonAncestor(this.startContainer,this.endContainer);}else{this.commonAncestorContainer=this.startContainer;}this.collapsed=(this.startContainer===this.endContainer)&&(this.startOffset==this.endOffset);},setStart:function(_5d,_5e){_5e=parseInt(_5e);if(this.startContainer===_5d&&this.startOffset==_5e){return;}delete this._cachedBookmark;this.startContainer=_5d;this.startOffset=_5e;if(!this.endContainer){this.setEnd(_5d,_5e);}else{this._updateInternal();}},setEnd:function(_5f,_60){_60=parseInt(_60);if(this.endContainer===_5f&&this.endOffset==_60){return;}delete this._cachedBookmark;this.endContainer=_5f;this.endOffset=_60;if(!this.startContainer){this.setStart(_5f,_60);}else{this._updateInternal();}},setStartAfter:function(_61,_62){this._setPoint("setStart",_61,_62,1);},setStartBefore:function(_63,_64){this._setPoint("setStart",_63,_64,0);},setEndAfter:function(_65,_66){this._setPoint("setEnd",_65,_66,1);},setEndBefore:function(_67,_68){this._setPoint("setEnd",_67,_68,0);},_setPoint:function(_69,_6a,_6b,ext){var _6c=_5.range.getIndex(_6a,_6a.parentNode).o;this[_69](_6a.parentNode,_6c.pop()+ext);},_getIERange:function(){var r=(this._body||this.endContainer.ownerDocument.body).createTextRange();_5.range.ie.setRange(r,this.startContainer,this.startOffset,this.endContainer,this.endOffset,this.collapsed);return r;},getBookmark:function(){this._getIERange();return this._cachedBookmark;},_select:function(){var r=this._getIERange();r.select();},deleteContents:function(){var s=this.startContainer,r=this._getIERange();if(s.nodeType===3&&!this.startOffset){this.setStartBefore(s);}r.pasteHTML("");this.endContainer=this.startContainer;this.endOffset=this.startOffset;this.collapsed=true;},cloneRange:function(){var r=new _5.range.W3CRange([this.startContainer,this.startOffset,this.endContainer,this.endOffset]);r._body=this._body;return r;},detach:function(){this._body=null;this.commonAncestorContainer=null;this.startContainer=null;this.startOffset=0;this.endContainer=null;this.endOffset=0;this.collapsed=true;}});}return _5.range;}); \ No newline at end of file
diff --git a/lib/dijit/_editor/selection.js b/lib/dijit/_editor/selection.js
index 55d8ee23b..c19c340af 100644
--- a/lib/dijit/_editor/selection.js
+++ b/lib/dijit/_editor/selection.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/_editor/selection",["dojo/dom","dojo/_base/lang","dojo/_base/sniff","dojo/_base/window",".."],function(_1,_2,_3,_4,_5){_2.getObject("_editor.selection",true,_5);_2.mixin(_5._editor.selection,{getType:function(){if(_3("ie")<9){return _4.doc.selection.type.toLowerCase();}else{var _6="text";var _7;try{_7=_4.global.getSelection();}catch(e){}if(_7&&_7.rangeCount==1){var _8=_7.getRangeAt(0);if((_8.startContainer==_8.endContainer)&&((_8.endOffset-_8.startOffset)==1)&&(_8.startContainer.nodeType!=3)){_6="control";}}return _6;}},getSelectedText:function(){if(_3("ie")<9){if(_5._editor.selection.getType()=="control"){return null;}return _4.doc.selection.createRange().text;}else{var _9=_4.global.getSelection();if(_9){return _9.toString();}}return "";},getSelectedHtml:function(){if(_3("ie")<9){if(_5._editor.selection.getType()=="control"){return null;}return _4.doc.selection.createRange().htmlText;}else{var _a=_4.global.getSelection();if(_a&&_a.rangeCount){var i;var _b="";for(i=0;i<_a.rangeCount;i++){var _c=_a.getRangeAt(i).cloneContents();var _d=_4.doc.createElement("div");_d.appendChild(_c);_b+=_d.innerHTML;}return _b;}return null;}},getSelectedElement:function(){if(_5._editor.selection.getType()=="control"){if(_3("ie")<9){var _e=_4.doc.selection.createRange();if(_e&&_e.item){return _4.doc.selection.createRange().item(0);}}else{var _f=_4.global.getSelection();return _f.anchorNode.childNodes[_f.anchorOffset];}}return null;},getParentElement:function(){if(_5._editor.selection.getType()=="control"){var p=this.getSelectedElement();if(p){return p.parentNode;}}else{if(_3("ie")<9){var r=_4.doc.selection.createRange();r.collapse(true);return r.parentElement();}else{var _10=_4.global.getSelection();if(_10){var _11=_10.anchorNode;while(_11&&(_11.nodeType!=1)){_11=_11.parentNode;}return _11;}}}return null;},hasAncestorElement:function(_12){return this.getAncestorElement.apply(this,arguments)!=null;},getAncestorElement:function(_13){var _14=this.getSelectedElement()||this.getParentElement();return this.getParentOfType(_14,arguments);},isTag:function(_15,_16){if(_15&&_15.tagName){var _17=_15.tagName.toLowerCase();for(var i=0;i<_16.length;i++){var _18=String(_16[i]).toLowerCase();if(_17==_18){return _18;}}}return "";},getParentOfType:function(_19,_1a){while(_19){if(this.isTag(_19,_1a).length){return _19;}_19=_19.parentNode;}return null;},collapse:function(_1b){if(window.getSelection){var _1c=_4.global.getSelection();if(_1c.removeAllRanges){if(_1b){_1c.collapseToStart();}else{_1c.collapseToEnd();}}else{_1c.collapse(_1b);}}else{if(_3("ie")){var _1d=_4.doc.selection.createRange();_1d.collapse(_1b);_1d.select();}}},remove:function(){var sel=_4.doc.selection;if(_3("ie")<9){if(sel.type.toLowerCase()!="none"){sel.clear();}return sel;}else{sel=_4.global.getSelection();sel.deleteFromDocument();return sel;}},selectElementChildren:function(_1e,_1f){var _20=_4.global;var doc=_4.doc;var _21;_1e=_1.byId(_1e);if(doc.selection&&_3("ie")<9&&_4.body().createTextRange){_21=_1e.ownerDocument.body.createTextRange();_21.moveToElementText(_1e);if(!_1f){try{_21.select();}catch(e){}}}else{if(_20.getSelection){var _22=_4.global.getSelection();if(_3("opera")){if(_22.rangeCount){_21=_22.getRangeAt(0);}else{_21=doc.createRange();}_21.setStart(_1e,0);_21.setEnd(_1e,(_1e.nodeType==3)?_1e.length:_1e.childNodes.length);_22.addRange(_21);}else{_22.selectAllChildren(_1e);}}}},selectElement:function(_23,_24){var _25;var doc=_4.doc;var _26=_4.global;_23=_1.byId(_23);if(_3("ie")<9&&_4.body().createTextRange){try{var tg=_23.tagName?_23.tagName.toLowerCase():"";if(tg==="img"||tg==="table"){_25=_4.body().createControlRange();}else{_25=_4.body().createRange();}_25.addElement(_23);if(!_24){_25.select();}}catch(e){this.selectElementChildren(_23,_24);}}else{if(_26.getSelection){var _27=_26.getSelection();_25=doc.createRange();if(_27.removeAllRanges){if(_3("opera")){if(_27.getRangeAt(0)){_25=_27.getRangeAt(0);}}_25.selectNode(_23);_27.removeAllRanges();_27.addRange(_25);}}}},inSelection:function(_28){if(_28){var _29;var doc=_4.doc;var _2a;if(_4.global.getSelection){var sel=_4.global.getSelection();if(sel&&sel.rangeCount>0){_2a=sel.getRangeAt(0);}if(_2a&&_2a.compareBoundaryPoints&&doc.createRange){try{_29=doc.createRange();_29.setStart(_28,0);if(_2a.compareBoundaryPoints(_2a.START_TO_END,_29)===1){return true;}}catch(e){}}}else{if(doc.selection){_2a=doc.selection.createRange();try{_29=_28.ownerDocument.body.createControlRange();if(_29){_29.addElement(_28);}}catch(e1){try{_29=_28.ownerDocument.body.createTextRange();_29.moveToElementText(_28);}catch(e2){}}if(_2a&&_29){if(_2a.compareEndPoints("EndToStart",_29)===1){return true;}}}}}return false;}});return _5._editor.selection;}); \ No newline at end of file
+define("dijit/_editor/selection",["dojo/dom","dojo/_base/lang","dojo/sniff","dojo/_base/window","../main"],function(_1,_2,_3,_4,_5){var _6={getType:function(){if(_4.doc.getSelection){var _7="text";var _8;try{_8=_4.global.getSelection();}catch(e){}if(_8&&_8.rangeCount==1){var _9=_8.getRangeAt(0);if((_9.startContainer==_9.endContainer)&&((_9.endOffset-_9.startOffset)==1)&&(_9.startContainer.nodeType!=3)){_7="control";}}return _7;}else{return _4.doc.selection.type.toLowerCase();}},getSelectedText:function(){if(_4.doc.getSelection){var _a=_4.global.getSelection();return _a?_a.toString():"";}else{if(_5._editor.selection.getType()=="control"){return null;}return _4.doc.selection.createRange().text;}},getSelectedHtml:function(){if(_4.doc.getSelection){var _b=_4.global.getSelection();if(_b&&_b.rangeCount){var i;var _c="";for(i=0;i<_b.rangeCount;i++){var _d=_b.getRangeAt(i).cloneContents();var _e=_4.doc.createElement("div");_e.appendChild(_d);_c+=_e.innerHTML;}return _c;}return null;}else{if(_5._editor.selection.getType()=="control"){return null;}return _4.doc.selection.createRange().htmlText;}},getSelectedElement:function(){if(_5._editor.selection.getType()=="control"){if(_4.doc.getSelection){var _f=_4.global.getSelection();return _f.anchorNode.childNodes[_f.anchorOffset];}else{var _10=_4.doc.selection.createRange();if(_10&&_10.item){return _4.doc.selection.createRange().item(0);}}}return null;},getParentElement:function(){if(_5._editor.selection.getType()=="control"){var p=this.getSelectedElement();if(p){return p.parentNode;}}else{if(_4.doc.getSelection){var _11=_4.global.getSelection();if(_11){var _12=_11.anchorNode;while(_12&&(_12.nodeType!=1)){_12=_12.parentNode;}return _12;}}else{var r=_4.doc.selection.createRange();r.collapse(true);return r.parentElement();}}return null;},hasAncestorElement:function(_13){return this.getAncestorElement.apply(this,arguments)!=null;},getAncestorElement:function(_14){var _15=this.getSelectedElement()||this.getParentElement();return this.getParentOfType(_15,arguments);},isTag:function(_16,_17){if(_16&&_16.tagName){var _18=_16.tagName.toLowerCase();for(var i=0;i<_17.length;i++){var _19=String(_17[i]).toLowerCase();if(_18==_19){return _19;}}}return "";},getParentOfType:function(_1a,_1b){while(_1a){if(this.isTag(_1a,_1b).length){return _1a;}_1a=_1a.parentNode;}return null;},collapse:function(_1c){if(_4.doc.getSelection){var _1d=_4.global.getSelection();if(_1d.removeAllRanges){if(_1c){_1d.collapseToStart();}else{_1d.collapseToEnd();}}else{_1d.collapse(_1c);}}else{var _1e=_4.doc.selection.createRange();_1e.collapse(_1c);_1e.select();}},remove:function(){var sel=_4.doc.selection;if(_4.doc.getSelection){sel=_4.global.getSelection();sel.deleteFromDocument();return sel;}else{if(sel.type.toLowerCase()!="none"){sel.clear();}return sel;}},selectElementChildren:function(_1f,_20){var doc=_4.doc;var _21;_1f=_1.byId(_1f);if(_4.doc.getSelection){var _22=_4.global.getSelection();if(_3("opera")){if(_22.rangeCount){_21=_22.getRangeAt(0);}else{_21=doc.createRange();}_21.setStart(_1f,0);_21.setEnd(_1f,(_1f.nodeType==3)?_1f.length:_1f.childNodes.length);_22.addRange(_21);}else{_22.selectAllChildren(_1f);}}else{_21=_1f.ownerDocument.body.createTextRange();_21.moveToElementText(_1f);if(!_20){try{_21.select();}catch(e){}}}},selectElement:function(_23,_24){var _25;_23=_1.byId(_23);var doc=_23.ownerDocument;var _26=_4.global;if(doc.getSelection){var _27=_26.getSelection();_25=doc.createRange();if(_27.removeAllRanges){if(_3("opera")){if(_27.getRangeAt(0)){_25=_27.getRangeAt(0);}}_25.selectNode(_23);_27.removeAllRanges();_27.addRange(_25);}}else{try{var tg=_23.tagName?_23.tagName.toLowerCase():"";if(tg==="img"||tg==="table"){_25=_4.body(doc).createControlRange();}else{_25=_4.body(doc).createRange();}_25.addElement(_23);if(!_24){_25.select();}}catch(e){this.selectElementChildren(_23,_24);}}},inSelection:function(_28){if(_28){var _29;var doc=_4.doc;var _2a;if(_4.doc.getSelection){var sel=_4.global.getSelection();if(sel&&sel.rangeCount>0){_2a=sel.getRangeAt(0);}if(_2a&&_2a.compareBoundaryPoints&&doc.createRange){try{_29=doc.createRange();_29.setStart(_28,0);if(_2a.compareBoundaryPoints(_2a.START_TO_END,_29)===1){return true;}}catch(e){}}}else{_2a=doc.selection.createRange();try{_29=_28.ownerDocument.body.createControlRange();if(_29){_29.addElement(_28);}}catch(e1){try{_29=_28.ownerDocument.body.createTextRange();_29.moveToElementText(_28);}catch(e2){}}if(_2a&&_29){if(_2a.compareEndPoints("EndToStart",_29)===1){return true;}}}}return false;}};_2.setObject("dijit._editor.selection",_6);return _6;}); \ No newline at end of file
diff --git a/lib/dijit/a11y.js b/lib/dijit/a11y.js
index 082e1b75e..ff7064900 100644
--- a/lib/dijit/a11y.js
+++ b/lib/dijit/a11y.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/a11y",["dojo/_base/array","dojo/_base/config","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-style","dojo/_base/sniff","./_base/manager","."],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){var _a=(_9._isElementShown=function(_b){var s=_6.get(_b);return (s.visibility!="hidden")&&(s.visibility!="collapsed")&&(s.display!="none")&&(_5.get(_b,"type")!="hidden");});_9.hasDefaultTabStop=function(_c){switch(_c.nodeName.toLowerCase()){case "a":return _5.has(_c,"href");case "area":case "button":case "input":case "object":case "select":case "textarea":return true;case "iframe":var _d;try{var _e=_c.contentDocument;if("designMode" in _e&&_e.designMode=="on"){return true;}_d=_e.body;}catch(e1){try{_d=_c.contentWindow.document.body;}catch(e2){return false;}}return _d&&(_d.contentEditable=="true"||(_d.firstChild&&_d.firstChild.contentEditable=="true"));default:return _c.contentEditable=="true";}};var _f=(_9.isTabNavigable=function(_10){if(_5.get(_10,"disabled")){return false;}else{if(_5.has(_10,"tabIndex")){return _5.get(_10,"tabIndex")>=0;}else{return _9.hasDefaultTabStop(_10);}}});_9._getTabNavigable=function(_11){var _12,_13,_14,_15,_16,_17,_18={};function _19(_1a){return _1a&&_1a.tagName.toLowerCase()=="input"&&_1a.type&&_1a.type.toLowerCase()=="radio"&&_1a.name&&_1a.name.toLowerCase();};var _1b=function(_1c){for(var _1d=_1c.firstChild;_1d;_1d=_1d.nextSibling){if(_1d.nodeType!=1||(_7("ie")&&_1d.scopeName!=="HTML")||!_a(_1d)){continue;}if(_f(_1d)){var _1e=_5.get(_1d,"tabIndex");if(!_5.has(_1d,"tabIndex")||_1e==0){if(!_12){_12=_1d;}_13=_1d;}else{if(_1e>0){if(!_14||_1e<_15){_15=_1e;_14=_1d;}if(!_16||_1e>=_17){_17=_1e;_16=_1d;}}}var rn=_19(_1d);if(_5.get(_1d,"checked")&&rn){_18[rn]=_1d;}}if(_1d.nodeName.toUpperCase()!="SELECT"){_1b(_1d);}}};if(_a(_11)){_1b(_11);}function rs(_1f){return _18[_19(_1f)]||_1f;};return {first:rs(_12),last:rs(_13),lowest:rs(_14),highest:rs(_16)};};_9.getFirstInTabbingOrder=function(_20){var _21=_9._getTabNavigable(_4.byId(_20));return _21.lowest?_21.lowest:_21.first;};_9.getLastInTabbingOrder=function(_22){var _23=_9._getTabNavigable(_4.byId(_22));return _23.last?_23.last:_23.highest;};return {hasDefaultTabStop:_9.hasDefaultTabStop,isTabNavigable:_9.isTabNavigable,_getTabNavigable:_9._getTabNavigable,getFirstInTabbingOrder:_9.getFirstInTabbingOrder,getLastInTabbingOrder:_9.getLastInTabbingOrder};}); \ No newline at end of file
+define("dijit/a11y",["dojo/_base/array","dojo/_base/config","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-style","dojo/sniff","./main"],function(_1,_2,_3,_4,_5,_6,_7,_8){var _9=(_8._isElementShown=function(_a){var s=_6.get(_a);return (s.visibility!="hidden")&&(s.visibility!="collapsed")&&(s.display!="none")&&(_5.get(_a,"type")!="hidden");});_8.hasDefaultTabStop=function(_b){switch(_b.nodeName.toLowerCase()){case "a":return _5.has(_b,"href");case "area":case "button":case "input":case "object":case "select":case "textarea":return true;case "iframe":var _c;try{var _d=_b.contentDocument;if("designMode" in _d&&_d.designMode=="on"){return true;}_c=_d.body;}catch(e1){try{_c=_b.contentWindow.document.body;}catch(e2){return false;}}return _c&&(_c.contentEditable=="true"||(_c.firstChild&&_c.firstChild.contentEditable=="true"));default:return _b.contentEditable=="true";}};var _e=(_8.isTabNavigable=function(_f){if(_5.get(_f,"disabled")){return false;}else{if(_5.has(_f,"tabIndex")){return _5.get(_f,"tabIndex")>=0;}else{return _8.hasDefaultTabStop(_f);}}});_8._getTabNavigable=function(_10){var _11,_12,_13,_14,_15,_16,_17={};function _18(_19){return _19&&_19.tagName.toLowerCase()=="input"&&_19.type&&_19.type.toLowerCase()=="radio"&&_19.name&&_19.name.toLowerCase();};var _1a=function(_1b){for(var _1c=_1b.firstChild;_1c;_1c=_1c.nextSibling){if(_1c.nodeType!=1||(_7("ie")<=9&&_1c.scopeName!=="HTML")||!_9(_1c)){continue;}if(_e(_1c)){var _1d=+_5.get(_1c,"tabIndex");if(!_5.has(_1c,"tabIndex")||_1d==0){if(!_11){_11=_1c;}_12=_1c;}else{if(_1d>0){if(!_13||_1d<_14){_14=_1d;_13=_1c;}if(!_15||_1d>=_16){_16=_1d;_15=_1c;}}}var rn=_18(_1c);if(_5.get(_1c,"checked")&&rn){_17[rn]=_1c;}}if(_1c.nodeName.toUpperCase()!="SELECT"){_1a(_1c);}}};if(_9(_10)){_1a(_10);}function rs(_1e){return _17[_18(_1e)]||_1e;};return {first:rs(_11),last:rs(_12),lowest:rs(_13),highest:rs(_15)};};_8.getFirstInTabbingOrder=function(_1f,doc){var _20=_8._getTabNavigable(_4.byId(_1f,doc));return _20.lowest?_20.lowest:_20.first;};_8.getLastInTabbingOrder=function(_21,doc){var _22=_8._getTabNavigable(_4.byId(_21,doc));return _22.last?_22.last:_22.highest;};return {hasDefaultTabStop:_8.hasDefaultTabStop,isTabNavigable:_8.isTabNavigable,_getTabNavigable:_8._getTabNavigable,getFirstInTabbingOrder:_8.getFirstInTabbingOrder,getLastInTabbingOrder:_8.getLastInTabbingOrder};}); \ No newline at end of file
diff --git a/lib/dijit/a11yclick.js b/lib/dijit/a11yclick.js
new file mode 100644
index 000000000..c5fe33c2a
--- /dev/null
+++ b/lib/dijit/a11yclick.js
@@ -0,0 +1,2 @@
+//>>built
+define("dijit/a11yclick",["dojo/on","dojo/_base/array","dojo/keys","dojo/_base/declare","dojo/has","dojo/_base/unload","dojo/_base/window"],function(on,_1,_2,_3,_4,_5,_6){var _7=null;if(_4("dom-addeventlistener")){_6.doc.addEventListener("keydown",function(_8){_7=_8.target;},true);}else{(function(){var _9=function(_a){_7=_a.srcElement;};_6.doc.attachEvent("onkeydown",_9);_5.addOnWindowUnload(function(){_6.doc.detachEvent("onkeydown",_9);});})();}function _b(e){return (e.keyCode===_2.ENTER||e.keyCode===_2.SPACE)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey;};return function(_c,_d){if(/input|button/i.test(_c.nodeName)){return on(_c,"click",_d);}else{var _e=[on(_c,"keydown",function(e){if(_b(e)){_7=e.target;e.preventDefault();}}),on(_c,"keyup",function(e){if(_b(e)&&e.target==_7){_7=null;on.emit(e.target,"click",{cancelable:true,bubbles:true});}}),on(_c,"click",function(e){_d.call(this,e);})];if(_4("touch")){var _f;_e.push(on(_c,"touchend",function(e){var _10=e.target;_f=setTimeout(function(){_f=null;on.emit(_10,"click",{cancelable:true,bubbles:true});},600);}),on(_c,"click",function(e){if(_f){clearTimeout(_f);}}));}return {remove:function(){_1.forEach(_e,function(h){h.remove();});if(_f){clearTimeout(_f);_f=null;}}};}};return ret;}); \ No newline at end of file
diff --git a/lib/dijit/dijit-all.js b/lib/dijit/dijit-all.js
index 658b1acfe..26d631f67 100644
--- a/lib/dijit/dijit-all.js
+++ b/lib/dijit/dijit-all.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/dijit-all",[".","./dijit","./ColorPalette","./Declaration","./Dialog","./DialogUnderlay","./TooltipDialog","./Editor","./_editor/plugins/FontChoice","./_editor/plugins/LinkDialog","./Menu","./MenuItem","./PopupMenuItem","./CheckedMenuItem","./MenuBar","./MenuBarItem","./PopupMenuBarItem","./MenuSeparator","./ProgressBar","./TitlePane","./Toolbar","./Tooltip","./Tree","./InlineEditBox","./form/Form","./form/Button","./form/DropDownButton","./form/ComboButton","./form/ToggleButton","./form/CheckBox","./form/RadioButton","./form/TextBox","./form/ValidationTextBox","./form/CurrencyTextBox","./form/DateTextBox","./form/TimeTextBox","./form/NumberSpinner","./form/NumberTextBox","./form/ComboBox","./form/FilteringSelect","./form/MultiSelect","./form/Select","./form/HorizontalSlider","./form/VerticalSlider","./form/HorizontalRule","./form/VerticalRule","./form/HorizontalRuleLabels","./form/VerticalRuleLabels","./form/SimpleTextarea","./form/Textarea","./layout/AccordionContainer","./layout/ContentPane","./layout/BorderContainer","./layout/LayoutContainer","./layout/LinkPane","./layout/SplitContainer","./layout/StackContainer","./layout/TabContainer"],function(_1){console.warn("dijit-all may include much more code than your application actually requires. We strongly recommend that you investigate a custom build or the web build tool");return _1;}); \ No newline at end of file
+define("dijit/dijit-all",["./main","./dijit","./ColorPalette","./Declaration","./Dialog","./DialogUnderlay","./TooltipDialog","./Editor","./_editor/plugins/FontChoice","./_editor/plugins/LinkDialog","./Menu","./MenuItem","./PopupMenuItem","./CheckedMenuItem","./MenuBar","./MenuBarItem","./PopupMenuBarItem","./MenuSeparator","./ProgressBar","./TitlePane","./Toolbar","./Tooltip","./Tree","./InlineEditBox","./form/Form","./form/Button","./form/DropDownButton","./form/ComboButton","./form/ToggleButton","./form/CheckBox","./form/RadioButton","./form/TextBox","./form/ValidationTextBox","./form/CurrencyTextBox","./form/DateTextBox","./form/TimeTextBox","./form/NumberSpinner","./form/NumberTextBox","./form/ComboBox","./form/FilteringSelect","./form/MultiSelect","./form/Select","./form/HorizontalSlider","./form/VerticalSlider","./form/HorizontalRule","./form/VerticalRule","./form/HorizontalRuleLabels","./form/VerticalRuleLabels","./form/SimpleTextarea","./form/Textarea","./layout/AccordionContainer","./layout/ContentPane","./layout/BorderContainer","./layout/LayoutContainer","./layout/LinkPane","./layout/SplitContainer","./layout/StackContainer","./layout/TabContainer"],function(_1){console.warn("dijit-all may include much more code than your application actually requires. We strongly recommend that you investigate a custom build or the web build tool");return _1;}); \ No newline at end of file
diff --git a/lib/dijit/dijit.js b/lib/dijit/dijit.js
index 58fc8c8af..efad67a0c 100644
--- a/lib/dijit/dijit.js
+++ b/lib/dijit/dijit.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/dijit",[".","./_base","dojo/parser","./_Widget","./_TemplatedMixin","./_Container","./layout/_LayoutWidget","./form/_FormWidget","./form/_FormValueWidget"],function(_1){return _1;}); \ No newline at end of file
+define("dijit/dijit",["./main","./_base","dojo/parser","./_Widget","./_TemplatedMixin","./_Container","./layout/_LayoutWidget","./form/_FormWidget","./form/_FormValueWidget"],function(_1){return _1;}); \ No newline at end of file
diff --git a/lib/dijit/dijit.profile.js b/lib/dijit/dijit.profile.js
index dffbfa056..5a75a6aca 100644
--- a/lib/dijit/dijit.profile.js
+++ b/lib/dijit/dijit.profile.js
@@ -27,11 +27,7 @@ var profile = (function(){
miniExclude: function(filename, mid){
return /^dijit\/bench\//.test(mid) || /^dijit\/themes\/themeTest/.test(mid);
}
- },
-
- trees:[
- [".", ".", /(\/\.)|(~$)/]
- ]
+ }
};
})();
diff --git a/lib/dijit/focus.js b/lib/dijit/focus.js
index c52073b65..25f9bfa54 100644
--- a/lib/dijit/focus.js
+++ b/lib/dijit/focus.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/focus",["dojo/aspect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/Evented","dojo/_base/lang","dojo/on","dojo/ready","dojo/_base/sniff","dojo/Stateful","dojo/_base/unload","dojo/_base/window","dojo/window","./a11y","./registry","."],function(_1,_2,_3,_4,_5,_6,_7,on,_8,_9,_a,_b,_c,_d,_e,_f,_10){var _11=_2([_a,_6],{curNode:null,activeStack:[],constructor:function(){var _12=_7.hitch(this,function(_13){if(_3.isDescendant(this.curNode,_13)){this.set("curNode",null);}if(_3.isDescendant(this.prevNode,_13)){this.set("prevNode",null);}});_1.before(_5,"empty",_12);_1.before(_5,"destroy",_12);},registerIframe:function(_14){return this.registerWin(_14.contentWindow,_14);},registerWin:function(_15,_16){var _17=this;var _18=function(evt){_17._justMouseDowned=true;setTimeout(function(){_17._justMouseDowned=false;},0);if(_9("ie")&&evt&&evt.srcElement&&evt.srcElement.parentNode==null){return;}_17._onTouchNode(_16||evt.target||evt.srcElement,"mouse");};var doc=_9("ie")?_15.document.documentElement:_15.document;if(doc){if(_9("ie")){_15.document.body.attachEvent("onmousedown",_18);var _19=function(evt){var tag=evt.srcElement.tagName.toLowerCase();if(tag=="#document"||tag=="body"){return;}if(_e.isTabNavigable(evt.srcElement)){_17._onFocusNode(_16||evt.srcElement);}else{_17._onTouchNode(_16||evt.srcElement);}};doc.attachEvent("onactivate",_19);var _1a=function(evt){_17._onBlurNode(_16||evt.srcElement);};doc.attachEvent("ondeactivate",_1a);return {remove:function(){_15.document.detachEvent("onmousedown",_18);doc.detachEvent("onactivate",_19);doc.detachEvent("ondeactivate",_1a);doc=null;}};}else{doc.body.addEventListener("mousedown",_18,true);doc.body.addEventListener("touchstart",_18,true);var _1b=function(evt){_17._onFocusNode(_16||evt.target);};doc.addEventListener("focus",_1b,true);var _1c=function(evt){_17._onBlurNode(_16||evt.target);};doc.addEventListener("blur",_1c,true);return {remove:function(){doc.body.removeEventListener("mousedown",_18,true);doc.body.removeEventListener("touchstart",_18,true);doc.removeEventListener("focus",_1b,true);doc.removeEventListener("blur",_1c,true);doc=null;}};}}},_onBlurNode:function(){this.set("prevNode",this.curNode);this.set("curNode",null);if(this._justMouseDowned){return;}if(this._clearActiveWidgetsTimer){clearTimeout(this._clearActiveWidgetsTimer);}this._clearActiveWidgetsTimer=setTimeout(_7.hitch(this,function(){delete this._clearActiveWidgetsTimer;this._setStack([]);this.prevNode=null;}),100);},_onTouchNode:function(_1d,by){if(this._clearActiveWidgetsTimer){clearTimeout(this._clearActiveWidgetsTimer);delete this._clearActiveWidgetsTimer;}var _1e=[];try{while(_1d){var _1f=_4.get(_1d,"dijitPopupParent");if(_1f){_1d=_f.byId(_1f).domNode;}else{if(_1d.tagName&&_1d.tagName.toLowerCase()=="body"){if(_1d===_c.body()){break;}_1d=_d.get(_1d.ownerDocument).frameElement;}else{var id=_1d.getAttribute&&_1d.getAttribute("widgetId"),_20=id&&_f.byId(id);if(_20&&!(by=="mouse"&&_20.get("disabled"))){_1e.unshift(id);}_1d=_1d.parentNode;}}}}catch(e){}this._setStack(_1e,by);},_onFocusNode:function(_21){if(!_21){return;}if(_21.nodeType==9){return;}this._onTouchNode(_21);if(_21==this.curNode){return;}this.set("curNode",_21);},_setStack:function(_22,by){var _23=this.activeStack;this.set("activeStack",_22);for(var _24=0;_24<Math.min(_23.length,_22.length);_24++){if(_23[_24]!=_22[_24]){break;}}var _25;for(var i=_23.length-1;i>=_24;i--){_25=_f.byId(_23[i]);if(_25){_25._hasBeenBlurred=true;_25.set("focused",false);if(_25._focusManager==this){_25._onBlur(by);}this.emit("widget-blur",_25,by);}}for(i=_24;i<_22.length;i++){_25=_f.byId(_22[i]);if(_25){_25.set("focused",true);if(_25._focusManager==this){_25._onFocus(by);}this.emit("widget-focus",_25,by);}}},focus:function(_26){if(_26){try{_26.focus();}catch(e){}}}});var _27=new _11();_8(function(){var _28=_27.registerWin(_c.doc.parentWindow||_c.doc.defaultView);if(_9("ie")){_b.addOnWindowUnload(function(){_28.remove();_28=null;});}});_10.focus=function(_29){_27.focus(_29);};for(var _2a in _27){if(!/^_/.test(_2a)){_10.focus[_2a]=typeof _27[_2a]=="function"?_7.hitch(_27,_2a):_27[_2a];}}_27.watch(function(_2b,_2c,_2d){_10.focus[_2b]=_2d;});return _27;}); \ No newline at end of file
+define("dijit/focus",["dojo/aspect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/Evented","dojo/_base/lang","dojo/on","dojo/ready","dojo/sniff","dojo/Stateful","dojo/_base/unload","dojo/_base/window","dojo/window","./a11y","./registry","./main"],function(_1,_2,_3,_4,_5,_6,_7,on,_8,_9,_a,_b,_c,_d,_e,_f,_10){var _11=_2([_a,_6],{curNode:null,activeStack:[],constructor:function(){var _12=_7.hitch(this,function(_13){if(_3.isDescendant(this.curNode,_13)){this.set("curNode",null);}if(_3.isDescendant(this.prevNode,_13)){this.set("prevNode",null);}});_1.before(_5,"empty",_12);_1.before(_5,"destroy",_12);},registerIframe:function(_14){return this.registerWin(_14.contentWindow,_14);},registerWin:function(_15,_16){var _17=this;var _18=function(evt){_17._justMouseDowned=true;setTimeout(function(){_17._justMouseDowned=false;},0);if(_9("ie")&&evt&&evt.srcElement&&evt.srcElement.parentNode==null){return;}_17._onTouchNode(_16||evt.target||evt.srcElement,"mouse");};var doc=_9("ie")?_15.document.documentElement:_15.document;if(doc){if(_9("ie")){_15.document.body.attachEvent("onmousedown",_18);var _19=function(evt){var tag=evt.srcElement.tagName.toLowerCase();if(tag=="#document"||tag=="body"){return;}if(_e.isTabNavigable(evt.srcElement)){_17._onFocusNode(_16||evt.srcElement);}else{_17._onTouchNode(_16||evt.srcElement);}};doc.attachEvent("onfocusin",_19);var _1a=function(evt){_17._onBlurNode(_16||evt.srcElement);};doc.attachEvent("onfocusout",_1a);return {remove:function(){_15.document.detachEvent("onmousedown",_18);doc.detachEvent("onfocusin",_19);doc.detachEvent("onfocusout",_1a);doc=null;}};}else{doc.body.addEventListener("mousedown",_18,true);doc.body.addEventListener("touchstart",_18,true);var _1b=function(evt){_17._onFocusNode(_16||evt.target);};doc.addEventListener("focus",_1b,true);var _1c=function(evt){_17._onBlurNode(_16||evt.target);};doc.addEventListener("blur",_1c,true);return {remove:function(){doc.body.removeEventListener("mousedown",_18,true);doc.body.removeEventListener("touchstart",_18,true);doc.removeEventListener("focus",_1b,true);doc.removeEventListener("blur",_1c,true);doc=null;}};}}},_onBlurNode:function(_1d){if(this._clearFocusTimer){clearTimeout(this._clearFocusTimer);}this._clearFocusTimer=setTimeout(_7.hitch(this,function(){this.set("prevNode",this.curNode);this.set("curNode",null);}),0);if(this._justMouseDowned){return;}if(this._clearActiveWidgetsTimer){clearTimeout(this._clearActiveWidgetsTimer);}this._clearActiveWidgetsTimer=setTimeout(_7.hitch(this,function(){delete this._clearActiveWidgetsTimer;this._setStack([]);}),0);},_onTouchNode:function(_1e,by){if(this._clearActiveWidgetsTimer){clearTimeout(this._clearActiveWidgetsTimer);delete this._clearActiveWidgetsTimer;}var _1f=[];try{while(_1e){var _20=_4.get(_1e,"dijitPopupParent");if(_20){_1e=_f.byId(_20).domNode;}else{if(_1e.tagName&&_1e.tagName.toLowerCase()=="body"){if(_1e===_c.body()){break;}_1e=_d.get(_1e.ownerDocument).frameElement;}else{var id=_1e.getAttribute&&_1e.getAttribute("widgetId"),_21=id&&_f.byId(id);if(_21&&!(by=="mouse"&&_21.get("disabled"))){_1f.unshift(id);}_1e=_1e.parentNode;}}}}catch(e){}this._setStack(_1f,by);},_onFocusNode:function(_22){if(!_22){return;}if(_22.nodeType==9){return;}if(this._clearFocusTimer){clearTimeout(this._clearFocusTimer);delete this._clearFocusTimer;}this._onTouchNode(_22);if(_22==this.curNode){return;}this.set("prevNode",this.curNode);this.set("curNode",_22);},_setStack:function(_23,by){var _24=this.activeStack;this.set("activeStack",_23);for(var _25=0;_25<Math.min(_24.length,_23.length);_25++){if(_24[_25]!=_23[_25]){break;}}var _26;for(var i=_24.length-1;i>=_25;i--){_26=_f.byId(_24[i]);if(_26){_26._hasBeenBlurred=true;_26.set("focused",false);if(_26._focusManager==this){_26._onBlur(by);}this.emit("widget-blur",_26,by);}}for(i=_25;i<_23.length;i++){_26=_f.byId(_23[i]);if(_26){_26.set("focused",true);if(_26._focusManager==this){_26._onFocus(by);}this.emit("widget-focus",_26,by);}}},focus:function(_27){if(_27){try{_27.focus();}catch(e){}}}});var _28=new _11();_8(function(){var _29=_28.registerWin(_d.get(_c.doc));if(_9("ie")){_b.addOnWindowUnload(function(){if(_29){_29.remove();_29=null;}});}});_10.focus=function(_2a){_28.focus(_2a);};for(var _2b in _28){if(!/^_/.test(_2b)){_10.focus[_2b]=typeof _28[_2b]=="function"?_7.hitch(_28,_2b):_28[_2b];}}_28.watch(function(_2c,_2d,_2e){_10.focus[_2c]=_2e;});return _28;}); \ No newline at end of file
diff --git a/lib/dijit/form/Button.js b/lib/dijit/form/Button.js
index a0db441a4..0f2bb158c 100644
--- a/lib/dijit/form/Button.js
+++ b/lib/dijit/form/Button.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/Button.html":"<span class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" role=\"presentation\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode,focusNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#x25CF;</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\ttabIndex=\"-1\" role=\"presentation\" data-dojo-attach-point=\"valueNode\"\n/></span>\n"}});define("dijit/form/Button",["require","dojo/_base/declare","dojo/dom-class","dojo/_base/kernel","dojo/_base/lang","dojo/ready","./_FormWidget","./_ButtonMixin","dojo/text!./templates/Button.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){if(!_4.isAsync){_6(0,function(){var _a=["dijit/form/DropDownButton","dijit/form/ComboButton","dijit/form/ToggleButton"];_1(_a);});}return _2("dijit.form.Button",[_7,_8],{showLabel:true,iconClass:"dijitNoIcon",_setIconClassAttr:{node:"iconNode",type:"class"},baseClass:"dijitButton",templateString:_9,_setValueAttr:"valueNode",_onClick:function(e){var ok=this.inherited(arguments);if(ok){if(this.valueNode){this.valueNode.click();e.preventDefault();}}return ok;},_fillContent:function(_b){if(_b&&(!this.params||!("label" in this.params))){var _c=_5.trim(_b.innerHTML);if(_c){this.label=_c;}}},_setShowLabelAttr:function(_d){if(this.containerNode){_3.toggle(this.containerNode,"dijitDisplayNone",!_d);}this._set("showLabel",_d);},setLabel:function(_e){_4.deprecated("dijit.form.Button.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_e);},_setLabelAttr:function(_f){this.inherited(arguments);if(!this.showLabel&&!("title" in this.params)){this.titleNode.title=_5.trim(this.containerNode.innerText||this.containerNode.textContent||"");}}});}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/Button.html":"<span class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" role=\"presentation\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode,focusNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#x25CF;</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\ttabIndex=\"-1\" role=\"presentation\" data-dojo-attach-point=\"valueNode\"\n/></span>\n"}});define("dijit/form/Button",["require","dojo/_base/declare","dojo/dom-class","dojo/has","dojo/_base/kernel","dojo/_base/lang","dojo/ready","./_FormWidget","./_ButtonMixin","dojo/text!./templates/Button.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){if(_4("dijit-legacy-requires")){_7(0,function(){var _b=["dijit/form/DropDownButton","dijit/form/ComboButton","dijit/form/ToggleButton"];_1(_b);});}return _2("dijit.form.Button",[_8,_9],{showLabel:true,iconClass:"dijitNoIcon",_setIconClassAttr:{node:"iconNode",type:"class"},baseClass:"dijitButton",templateString:_a,_setValueAttr:"valueNode",_onClick:function(e){var ok=this.inherited(arguments);if(ok){if(this.valueNode){this.valueNode.click();e.preventDefault();e.stopPropagation();}}return ok;},_fillContent:function(_c){if(_c&&(!this.params||!("label" in this.params))){var _d=_6.trim(_c.innerHTML);if(_d){this.label=_d;}}},_setShowLabelAttr:function(_e){if(this.containerNode){_3.toggle(this.containerNode,"dijitDisplayNone",!_e);}this._set("showLabel",_e);},setLabel:function(_f){_5.deprecated("dijit.form.Button.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_f);},_setLabelAttr:function(_10){this.inherited(arguments);if(!this.showLabel&&!("title" in this.params)){this.titleNode.title=_6.trim(this.containerNode.innerText||this.containerNode.textContent||"");}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/CheckBox.js b/lib/dijit/form/CheckBox.js
index 1d0bcceaf..7f3924e54 100644
--- a/lib/dijit/form/CheckBox.js
+++ b/lib/dijit/form/CheckBox.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/CheckBox.html":"<div class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdata-dojo-attach-point=\"focusNode\"\n\t \tdata-dojo-attach-event=\"onclick:_onClick\"\n/></div>\n"}});define("dijit/form/CheckBox",["require","dojo/_base/declare","dojo/dom-attr","dojo/_base/kernel","dojo/query","dojo/ready","./ToggleButton","./_CheckBoxMixin","dojo/text!./templates/CheckBox.html","dojo/NodeList-dom"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){if(!_4.isAsync){_6(0,function(){var _a=["dijit/form/RadioButton"];_1(_a);});}return _2("dijit.form.CheckBox",[_7,_8],{templateString:_9,baseClass:"dijitCheckBox",_setValueAttr:function(_b,_c){if(typeof _b=="string"){this._set("value",_b);_3.set(this.focusNode,"value",_b);_b=true;}if(this._created){this.set("checked",_b,_c);}},_getValueAttr:function(){return (this.checked?this.value:false);},_setIconClassAttr:null,postMixInProperties:function(){this.inherited(arguments);this.checkedAttrSetting=this.checked?"checked":"";},_fillContent:function(){},_onFocus:function(){if(this.id){_5("label[for='"+this.id+"']").addClass("dijitFocusedLabel");}this.inherited(arguments);},_onBlur:function(){if(this.id){_5("label[for='"+this.id+"']").removeClass("dijitFocusedLabel");}this.inherited(arguments);}});}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/CheckBox.html":"<div class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" role=\"${type}\" aria-checked=\"false\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdata-dojo-attach-point=\"focusNode\"\n\t \tdata-dojo-attach-event=\"onclick:_onClick\"\n/></div>\n"}});define("dijit/form/CheckBox",["require","dojo/_base/declare","dojo/dom-attr","dojo/has","dojo/query","dojo/ready","./ToggleButton","./_CheckBoxMixin","dojo/text!./templates/CheckBox.html","dojo/NodeList-dom"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){if(_4("dijit-legacy-requires")){_6(0,function(){var _a=["dijit/form/RadioButton"];_1(_a);});}return _2("dijit.form.CheckBox",[_7,_8],{templateString:_9,baseClass:"dijitCheckBox",_setValueAttr:function(_b,_c){if(typeof _b=="string"){this.inherited(arguments);_b=true;}if(this._created){this.set("checked",_b,_c);}},_getValueAttr:function(){return (this.checked?this.value:false);},_setIconClassAttr:null,postMixInProperties:function(){this.inherited(arguments);this.checkedAttrSetting=this.checked?"checked":"";},_fillContent:function(){},_onFocus:function(){if(this.id){_5("label[for='"+this.id+"']").addClass("dijitFocusedLabel");}this.inherited(arguments);},_onBlur:function(){if(this.id){_5("label[for='"+this.id+"']").removeClass("dijitFocusedLabel");}this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/ComboBoxMixin.js b/lib/dijit/form/ComboBoxMixin.js
index 99f0efa04..f3c3df80b 100644
--- a/lib/dijit/form/ComboBoxMixin.js
+++ b/lib/dijit/form/ComboBoxMixin.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/DropDownBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdata-dojo-attach-point=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdata-dojo-attach-point=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n"}});define("dijit/form/ComboBoxMixin",["dojo/_base/declare","dojo/_base/Deferred","dojo/_base/kernel","dojo/_base/lang","dojo/store/util/QueryResults","./_AutoCompleterMixin","./_ComboBoxMenu","../_HasDropDown","dojo/text!./templates/DropDownBox.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _1("dijit.form.ComboBoxMixin",[_8,_6],{dropDownClass:_7,hasDownArrow:true,templateString:_9,baseClass:"dijitTextBox dijitComboBox",cssStateNodes:{"_buttonNode":"dijitDownArrowButton"},_setHasDownArrowAttr:function(_a){this._set("hasDownArrow",_a);this._buttonNode.style.display=_a?"":"none";},_showResultList:function(){this.displayMessage("");this.inherited(arguments);},_setStoreAttr:function(_b){if(!_b.get){_4.mixin(_b,{_oldAPI:true,get:function(id){var _c=new _2();this.fetchItemByIdentity({identity:id,onItem:function(_d){_c.resolve(_d);},onError:function(_e){_c.reject(_e);}});return _c.promise;},query:function(_f,_10){var _11=new _2(function(){_12.abort&&_12.abort();});var _12=this.fetch(_4.mixin({query:_f,onBegin:function(_13){_11.total=_13;},onComplete:function(_14){_11.resolve(_14);},onError:function(_15){_11.reject(_15);}},_10));return _5(_11);}});}this._set("store",_b);},postMixInProperties:function(){if(this.params.store){this._setStoreAttr(this.params.store);}this.inherited(arguments);if(!this.params.store){var _16=this.declaredClass;_4.mixin(this.store,{getValue:function(_17,_18){_3.deprecated(_16+".store.getValue(item, attr) is deprecated for builtin store. Use item.attr directly","","2.0");return _17[_18];},getLabel:function(_19){_3.deprecated(_16+".store.getLabel(item) is deprecated for builtin store. Use item.label directly","","2.0");return _19.name;},fetch:function(_1a){_3.deprecated(_16+".store.fetch() is deprecated for builtin store.","Use store.query()","2.0");var _1b=["dojo/data/ObjectStore"];require(_1b,_4.hitch(this,function(_1c){new _1c({objectStore:this}).fetch(_1a);}));}});}}});}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/DropDownBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdata-dojo-attach-point=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"button presentation\" aria-hidden=\"true\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdata-dojo-attach-point=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n"}});define("dijit/form/ComboBoxMixin",["dojo/_base/declare","dojo/_base/Deferred","dojo/_base/kernel","dojo/_base/lang","dojo/store/util/QueryResults","./_AutoCompleterMixin","./_ComboBoxMenu","../_HasDropDown","dojo/text!./templates/DropDownBox.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _1("dijit.form.ComboBoxMixin",[_8,_6],{dropDownClass:_7,hasDownArrow:true,templateString:_9,baseClass:"dijitTextBox dijitComboBox",cssStateNodes:{"_buttonNode":"dijitDownArrowButton"},_setHasDownArrowAttr:function(_a){this._set("hasDownArrow",_a);this._buttonNode.style.display=_a?"":"none";},_showResultList:function(){this.displayMessage("");this.inherited(arguments);},_setStoreAttr:function(_b){if(!_b.get){_4.mixin(_b,{_oldAPI:true,get:function(id){var _c=new _2();this.fetchItemByIdentity({identity:id,onItem:function(_d){_c.resolve(_d);},onError:function(_e){_c.reject(_e);}});return _c.promise;},query:function(_f,_10){var _11=new _2(function(){_12.abort&&_12.abort();});_11.total=new _2();var _12=this.fetch(_4.mixin({query:_f,onBegin:function(_13){_11.total.resolve(_13);},onComplete:function(_14){_11.resolve(_14);},onError:function(_15){_11.reject(_15);}},_10));return _5(_11);}});}this._set("store",_b);},postMixInProperties:function(){var _16=this.params.store||this.store;if(_16){this._setStoreAttr(_16);}this.inherited(arguments);if(!this.params.store&&!this.store._oldAPI){var _17=this.declaredClass;_4.mixin(this.store,{getValue:function(_18,_19){_3.deprecated(_17+".store.getValue(item, attr) is deprecated for builtin store. Use item.attr directly","","2.0");return _18[_19];},getLabel:function(_1a){_3.deprecated(_17+".store.getLabel(item) is deprecated for builtin store. Use item.label directly","","2.0");return _1a.name;},fetch:function(_1b){_3.deprecated(_17+".store.fetch() is deprecated for builtin store.","Use store.query()","2.0");var _1c=["dojo/data/ObjectStore"];require(_1c,_4.hitch(this,function(_1d){new _1d({objectStore:this}).fetch(_1b);}));}});}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/ComboButton.js b/lib/dijit/form/ComboButton.js
index 7fd288454..4c036b1df 100644
--- a/lib/dijit/form/ComboButton.js
+++ b/lib/dijit/form/ComboButton.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/ComboButton.html":"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' role=\"presentation\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" data-dojo-attach-point=\"buttonNode\" data-dojo-attach-event=\"ondijitclick:_onClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" data-dojo-attach-point=\"containerNode\" role=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdata-dojo-attach-point=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdata-dojo-attach-event=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\trole=\"button\" aria-haspopup=\"true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">&#9660;</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" data-dojo-attach-point=\"valueNode\"\n\t\t/></td></tr></tbody\n></table>\n"}});define("dijit/form/ComboButton",["dojo/_base/declare","dojo/_base/event","dojo/keys","../focus","./DropDownButton","dojo/text!./templates/ComboButton.html"],function(_1,_2,_3,_4,_5,_6){return _1("dijit.form.ComboButton",_5,{templateString:_6,_setIdAttr:"",_setTabIndexAttr:["focusNode","titleNode"],_setTitleAttr:"titleNode",optionsTitle:"",baseClass:"dijitComboButton",cssStateNodes:{"buttonNode":"dijitButtonNode","titleNode":"dijitButtonContents","_popupStateNode":"dijitDownArrowButton"},_focusedNode:null,_onButtonKeyPress:function(_7){if(_7.charOrCode==_3[this.isLeftToRight()?"RIGHT_ARROW":"LEFT_ARROW"]){_4.focus(this._popupStateNode);_2.stop(_7);}},_onArrowKeyPress:function(_8){if(_8.charOrCode==_3[this.isLeftToRight()?"LEFT_ARROW":"RIGHT_ARROW"]){_4.focus(this.titleNode);_2.stop(_8);}},focus:function(_9){if(!this.disabled){_4.focus(_9=="start"?this.titleNode:this._popupStateNode);}}});}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/ComboButton.html":"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' role=\"presentation\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" data-dojo-attach-point=\"buttonNode\" data-dojo-attach-event=\"ondijitclick:_onClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" data-dojo-attach-point=\"containerNode\" role=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdata-dojo-attach-point=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdata-dojo-attach-event=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\trole=\"button\" aria-haspopup=\"true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">&#9660;</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" data-dojo-attach-point=\"valueNode\" role=\"presentation\"\n\t\t/></td></tr></tbody\n></table>\n"}});define("dijit/form/ComboButton",["dojo/_base/declare","dojo/_base/event","dojo/keys","../focus","./DropDownButton","dojo/text!./templates/ComboButton.html"],function(_1,_2,_3,_4,_5,_6){return _1("dijit.form.ComboButton",_5,{templateString:_6,_setIdAttr:"",_setTabIndexAttr:["focusNode","titleNode"],_setTitleAttr:"titleNode",optionsTitle:"",baseClass:"dijitComboButton",cssStateNodes:{"buttonNode":"dijitButtonNode","titleNode":"dijitButtonContents","_popupStateNode":"dijitDownArrowButton"},_focusedNode:null,_onButtonKeyPress:function(_7){if(_7.charOrCode==_3[this.isLeftToRight()?"RIGHT_ARROW":"LEFT_ARROW"]){_4.focus(this._popupStateNode);_2.stop(_7);}},_onArrowKeyPress:function(_8){if(_8.charOrCode==_3[this.isLeftToRight()?"LEFT_ARROW":"RIGHT_ARROW"]){_4.focus(this.titleNode);_2.stop(_8);}},focus:function(_9){if(!this.disabled){_4.focus(_9=="start"?this.titleNode:this._popupStateNode);}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/CurrencyTextBox.js b/lib/dijit/form/CurrencyTextBox.js
index 1eca54193..08485969d 100644
--- a/lib/dijit/form/CurrencyTextBox.js
+++ b/lib/dijit/form/CurrencyTextBox.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/CurrencyTextBox",["dojo/currency","dojo/_base/declare","dojo/_base/lang","./NumberTextBox"],function(_1,_2,_3,_4){return _2("dijit.form.CurrencyTextBox",_4,{currency:"",baseClass:"dijitTextBox dijitCurrencyTextBox",regExpGen:function(_5){return "("+(this.focused?this.inherited(arguments,[_3.mixin({},_5,this.editOptions)])+"|":"")+_1.regexp(_5)+")";},_formatter:_1.format,_parser:_1.parse,parse:function(_6,_7){var v=this.inherited(arguments);if(isNaN(v)&&/\d+/.test(_6)){v=_3.hitch(_3.mixin({},this,{_parser:_4.prototype._parser}),"inherited")(arguments);}return v;},_setConstraintsAttr:function(_8){if(!_8.currency&&this.currency){_8.currency=this.currency;}this.inherited(arguments,[_1._mixInDefaults(_3.mixin(_8,{exponent:false}))]);}});}); \ No newline at end of file
+define("dijit/form/CurrencyTextBox",["dojo/currency","dojo/_base/declare","dojo/_base/lang","./NumberTextBox"],function(_1,_2,_3,_4){return _2("dijit.form.CurrencyTextBox",_4,{currency:"",baseClass:"dijitTextBox dijitCurrencyTextBox",pattern:function(_5){return "("+(this.focused?this.inherited(arguments,[_3.mixin({},_5,this.editOptions)])+"|":"")+_1.regexp(_5)+")";},_formatter:_1.format,_parser:_1.parse,parse:function(_6,_7){var v=this.inherited(arguments);if(isNaN(v)&&/\d+/.test(_6)){v=_3.hitch(_3.mixin({},this,{_parser:_4.prototype._parser}),"inherited")(arguments);}return v;},_setConstraintsAttr:function(_8){if(!_8.currency&&this.currency){_8.currency=this.currency;}this.inherited(arguments,[_1._mixInDefaults(_3.mixin(_8,{exponent:false}))]);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/DropDownButton.js b/lib/dijit/form/DropDownButton.js
index 4d224ef08..3153fc9a0 100644
--- a/lib/dijit/form/DropDownButton.js
+++ b/lib/dijit/form/DropDownButton.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/DropDownButton.html":"<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" data-dojo-attach-point=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\trole=\"button\" aria-haspopup=\"true\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdata-dojo-attach-point=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">&#9660;</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-point=\"valueNode\"\n/></span>\n"}});define("dijit/form/DropDownButton",["dojo/_base/declare","dojo/_base/lang","dojo/query","../registry","../popup","./Button","../_Container","../_HasDropDown","dojo/text!./templates/DropDownButton.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _1("dijit.form.DropDownButton",[_6,_7,_8],{baseClass:"dijitDropDownButton",templateString:_9,_fillContent:function(){if(this.srcNodeRef){var _a=_3("*",this.srcNodeRef);this.inherited(arguments,[_a[0]]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}if(!this.dropDown&&this.dropDownContainer){var _b=_3("[widgetId]",this.dropDownContainer)[0];this.dropDown=_4.byNode(_b);delete this.dropDownContainer;}if(this.dropDown){_5.hide(this.dropDown);}this.inherited(arguments);},isLoaded:function(){var _c=this.dropDown;return (!!_c&&(!_c.href||_c.isLoaded));},loadDropDown:function(_d){var _e=this.dropDown;var _f=_e.on("load",_2.hitch(this,function(){_f.remove();_d();}));_e.refresh();},isFocusable:function(){return this.inherited(arguments)&&!this._mouseDown;}});}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/DropDownButton.html":"<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" data-dojo-attach-point=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\trole=\"button\" aria-haspopup=\"true\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdata-dojo-attach-point=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">&#9660;</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-point=\"valueNode\" role=\"presentation\"\n/></span>\n"}});define("dijit/form/DropDownButton",["dojo/_base/declare","dojo/_base/lang","dojo/query","../registry","../popup","./Button","../_Container","../_HasDropDown","dojo/text!./templates/DropDownButton.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _1("dijit.form.DropDownButton",[_6,_7,_8],{baseClass:"dijitDropDownButton",templateString:_9,_fillContent:function(){if(this.srcNodeRef){var _a=_3("*",this.srcNodeRef);this.inherited(arguments,[_a[0]]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}if(!this.dropDown&&this.dropDownContainer){var _b=_3("[widgetId]",this.dropDownContainer)[0];this.dropDown=_4.byNode(_b);delete this.dropDownContainer;}if(this.dropDown){_5.hide(this.dropDown);}this.inherited(arguments);},isLoaded:function(){var _c=this.dropDown;return (!!_c&&(!_c.href||_c.isLoaded));},loadDropDown:function(_d){var _e=this.dropDown;var _f=_e.on("load",_2.hitch(this,function(){_f.remove();_d();}));_e.refresh();},isFocusable:function(){return this.inherited(arguments)&&!this._mouseDown;}});}); \ No newline at end of file
diff --git a/lib/dijit/form/FilteringSelect.js b/lib/dijit/form/FilteringSelect.js
index 5cffa0df8..de6808f27 100644
--- a/lib/dijit/form/FilteringSelect.js
+++ b/lib/dijit/form/FilteringSelect.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/FilteringSelect",["dojo/data/util/filter","dojo/_base/declare","dojo/_base/Deferred","dojo/_base/lang","./MappedTextBox","./ComboBoxMixin"],function(_1,_2,_3,_4,_5,_6){return _2("dijit.form.FilteringSelect",[_5,_6],{required:true,_lastDisplayedValue:"",_isValidSubset:function(){return this._opened;},isValid:function(){return !!this.item||(!this.required&&this.get("displayedValue")=="");},_refreshState:function(){if(!this.searchTimer){this.inherited(arguments);}},_callbackSetLabel:function(_7,_8,_9,_a){if((_8&&_8[this.searchAttr]!==this._lastQuery)||(!_8&&_7.length&&this.store.getIdentity(_7[0])!=this._lastQuery)){return;}if(!_7.length){this.set("value","",_a||(_a===undefined&&!this.focused),this.textbox.value,null);}else{this.set("item",_7[0],_a);}},_openResultList:function(_b,_c,_d){if(_c[this.searchAttr]!==this._lastQuery){return;}this.inherited(arguments);if(this.item===undefined){this.validate(true);}},_getValueAttr:function(){return this.valueNode.value;},_getValueField:function(){return "value";},_setValueAttr:function(_e,_f,_10,_11){if(!this._onChangeActive){_f=null;}if(_11===undefined){if(_e===null||_e===""){_e="";if(!_4.isString(_10)){this._setDisplayedValueAttr(_10||"",_f);return;}}var _12=this;this._lastQuery=_e;_3.when(this.store.get(_e),function(_13){_12._callbackSetLabel(_13?[_13]:[],undefined,undefined,_f);});}else{this.valueNode.value=_e;this.inherited(arguments);}},_setItemAttr:function(_14,_15,_16){this.inherited(arguments);this._lastDisplayedValue=this.textbox.value;},_getDisplayQueryString:function(_17){return _17.replace(/([\\\*\?])/g,"\\$1");},_setDisplayedValueAttr:function(_18,_19){if(_18==null){_18="";}if(!this._created){if(!("displayedValue" in this.params)){return;}_19=false;}if(this.store){this.closeDropDown();var _1a=_4.clone(this.query);var qs=this._getDisplayQueryString(_18),q;if(this.store._oldAPI){q=qs;}else{q=_1.patternToRegExp(qs,this.ignoreCase);q.toString=function(){return qs;};}this._lastQuery=_1a[this.searchAttr]=q;this.textbox.value=_18;this._lastDisplayedValue=_18;this._set("displayedValue",_18);var _1b=this;var _1c={ignoreCase:this.ignoreCase,deep:true};_4.mixin(_1c,this.fetchProperties);this._fetchHandle=this.store.query(_1a,_1c);_3.when(this._fetchHandle,function(_1d){_1b._fetchHandle=null;_1b._callbackSetLabel(_1d||[],_1a,_1c,_19);},function(err){_1b._fetchHandle=null;if(!_1b._cancelingQuery){console.error("dijit.form.FilteringSelect: "+err.toString());}});}},undo:function(){this.set("displayedValue",this._lastDisplayedValue);}});}); \ No newline at end of file
+define("dijit/form/FilteringSelect",["dojo/data/util/filter","dojo/_base/declare","dojo/_base/lang","dojo/when","./MappedTextBox","./ComboBoxMixin"],function(_1,_2,_3,_4,_5,_6){return _2("dijit.form.FilteringSelect",[_5,_6],{required:true,_lastDisplayedValue:"",_isValidSubset:function(){return this._opened;},isValid:function(){return !!this.item||(!this.required&&this.get("displayedValue")=="");},_refreshState:function(){if(!this.searchTimer){this.inherited(arguments);}},_callbackSetLabel:function(_7,_8,_9,_a){if((_8&&_8[this.searchAttr]!==this._lastQuery)||(!_8&&_7.length&&this.store.getIdentity(_7[0])!=this._lastQuery)){return;}if(!_7.length){this.set("value","",_a||(_a===undefined&&!this.focused),this.textbox.value,null);}else{this.set("item",_7[0],_a);}},_openResultList:function(_b,_c,_d){if(_c[this.searchAttr]!==this._lastQuery){return;}this.inherited(arguments);if(this.item===undefined){this.validate(true);}},_getValueAttr:function(){return this.valueNode.value;},_getValueField:function(){return "value";},_setValueAttr:function(_e,_f,_10,_11){if(!this._onChangeActive){_f=null;}if(_11===undefined){if(_e===null||_e===""){_e="";if(!_3.isString(_10)){this._setDisplayedValueAttr(_10||"",_f);return;}}var _12=this;this._lastQuery=_e;_4(this.store.get(_e),function(_13){_12._callbackSetLabel(_13?[_13]:[],undefined,undefined,_f);});}else{this.valueNode.value=_e;this.inherited(arguments);}},_setItemAttr:function(_14,_15,_16){this.inherited(arguments);this._lastDisplayedValue=this.textbox.value;},_getDisplayQueryString:function(_17){return _17.replace(/([\\\*\?])/g,"\\$1");},_setDisplayedValueAttr:function(_18,_19){if(_18==null){_18="";}if(!this._created){if(!("displayedValue" in this.params)){return;}_19=false;}if(this.store){this.closeDropDown();var _1a=_3.clone(this.query);var qs=this._getDisplayQueryString(_18),q;if(this.store._oldAPI){q=qs;}else{q=_1.patternToRegExp(qs,this.ignoreCase);q.toString=function(){return qs;};}this._lastQuery=_1a[this.searchAttr]=q;this.textbox.value=_18;this._lastDisplayedValue=_18;this._set("displayedValue",_18);var _1b=this;var _1c={ignoreCase:this.ignoreCase,deep:true};_3.mixin(_1c,this.fetchProperties);this._fetchHandle=this.store.query(_1a,_1c);_4(this._fetchHandle,function(_1d){_1b._fetchHandle=null;_1b._callbackSetLabel(_1d||[],_1a,_1c,_19);},function(err){_1b._fetchHandle=null;if(!_1b._cancelingQuery){console.error("dijit.form.FilteringSelect: "+err.toString());}});}},undo:function(){this.set("displayedValue",this._lastDisplayedValue);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/Form.js b/lib/dijit/form/Form.js
index e38a2ec8c..d3e3410d4 100644
--- a/lib/dijit/form/Form.js
+++ b/lib/dijit/form/Form.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/Form",["dojo/_base/declare","dojo/dom-attr","dojo/_base/event","dojo/_base/kernel","dojo/_base/sniff","../_Widget","../_TemplatedMixin","./_FormMixin","../layout/_ContentPaneResizeMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _1("dijit.form.Form",[_6,_7,_8,_9],{name:"",action:"",method:"",encType:"","accept-charset":"",accept:"",target:"",templateString:"<form data-dojo-attach-point='containerNode' data-dojo-attach-event='onreset:_onReset,onsubmit:_onSubmit' ${!nameAttrSetting}></form>",postMixInProperties:function(){this.nameAttrSetting=this.name?("name='"+this.name+"'"):"";this.inherited(arguments);},execute:function(){},onExecute:function(){},_setEncTypeAttr:function(_a){this.encType=_a;_2.set(this.domNode,"encType",_a);if(_5("ie")){this.domNode.encoding=_a;}},reset:function(e){var _b={returnValue:true,preventDefault:function(){this.returnValue=false;},stopPropagation:function(){},currentTarget:e?e.target:this.domNode,target:e?e.target:this.domNode};if(!(this.onReset(_b)===false)&&_b.returnValue){this.inherited(arguments,[]);}},onReset:function(){return true;},_onReset:function(e){this.reset(e);_3.stop(e);return false;},_onSubmit:function(e){var fp=this.constructor.prototype;if(this.execute!=fp.execute||this.onExecute!=fp.onExecute){_4.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.","","2.0");this.onExecute();this.execute(this.getValues());}if(this.onSubmit(e)===false){_3.stop(e);}},onSubmit:function(){return this.isValid();},submit:function(){if(!(this.onSubmit()===false)){this.containerNode.submit();}}});}); \ No newline at end of file
+define("dijit/form/Form",["dojo/_base/declare","dojo/dom-attr","dojo/_base/event","dojo/_base/kernel","dojo/sniff","../_Widget","../_TemplatedMixin","./_FormMixin","../layout/_ContentPaneResizeMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _1("dijit.form.Form",[_6,_7,_8,_9],{name:"",action:"",method:"",encType:"","accept-charset":"",accept:"",target:"",templateString:"<form data-dojo-attach-point='containerNode' data-dojo-attach-event='onreset:_onReset,onsubmit:_onSubmit' ${!nameAttrSetting}></form>",postMixInProperties:function(){this.nameAttrSetting=this.name?("name='"+this.name+"'"):"";this.inherited(arguments);},execute:function(){},onExecute:function(){},_setEncTypeAttr:function(_a){this.encType=_a;_2.set(this.domNode,"encType",_a);if(_5("ie")){this.domNode.encoding=_a;}},reset:function(e){var _b={returnValue:true,preventDefault:function(){this.returnValue=false;},stopPropagation:function(){},currentTarget:e?e.target:this.domNode,target:e?e.target:this.domNode};if(!(this.onReset(_b)===false)&&_b.returnValue){this.inherited(arguments,[]);}},onReset:function(){return true;},_onReset:function(e){this.reset(e);_3.stop(e);return false;},_onSubmit:function(e){var fp=this.constructor.prototype;if(this.execute!=fp.execute||this.onExecute!=fp.onExecute){_4.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.","","2.0");this.onExecute();this.execute(this.getValues());}if(this.onSubmit(e)===false){_3.stop(e);}},onSubmit:function(){return this.isValid();},submit:function(){if(!(this.onSubmit()===false)){this.containerNode.submit();}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/HorizontalRuleLabels.js b/lib/dijit/form/HorizontalRuleLabels.js
index be95ba019..6d0fd658e 100644
--- a/lib/dijit/form/HorizontalRuleLabels.js
+++ b/lib/dijit/form/HorizontalRuleLabels.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/HorizontalRuleLabels",["dojo/_base/declare","dojo/number","dojo/query","./HorizontalRule"],function(_1,_2,_3,_4){return _1("dijit.form.HorizontalRuleLabels",_4,{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerH dijitRuleLabelsContainer dijitRuleLabelsContainerH\"></div>",labelStyle:"",labels:[],numericMargin:0,minimum:0,maximum:1,constraints:{pattern:"#%"},_positionPrefix:"<div class=\"dijitRuleLabelContainer dijitRuleLabelContainerH\" style=\"left:",_labelPrefix:"\"><div class=\"dijitRuleLabel dijitRuleLabelH\">",_suffix:"</div></div>",_calcPosition:function(_5){return _5;},_genHTML:function(_6,_7){return this._positionPrefix+this._calcPosition(_6)+this._positionSuffix+this.labelStyle+this._labelPrefix+this.labels[_7]+this._suffix;},getLabels:function(){var _8=this.labels;if(!_8.length){_8=_3("> li",this.srcNodeRef).map(function(_9){return String(_9.innerHTML);});}this.srcNodeRef.innerHTML="";if(!_8.length&&this.count>1){var _a=this.minimum;var _b=(this.maximum-_a)/(this.count-1);for(var i=0;i<this.count;i++){_8.push((i<this.numericMargin||i>=(this.count-this.numericMargin))?"":_2.format(_a,this.constraints));_a+=_b;}}return _8;},postMixInProperties:function(){this.inherited(arguments);this.labels=this.getLabels();this.count=this.labels.length;}});}); \ No newline at end of file
+define("dijit/form/HorizontalRuleLabels",["dojo/_base/declare","dojo/number","dojo/query","./HorizontalRule"],function(_1,_2,_3,_4){return _1("dijit.form.HorizontalRuleLabels",_4,{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerH dijitRuleLabelsContainer dijitRuleLabelsContainerH\"></div>",labelStyle:"",labels:[],numericMargin:0,minimum:0,maximum:1,constraints:{pattern:"#%"},_positionPrefix:"<div class=\"dijitRuleLabelContainer dijitRuleLabelContainerH\" style=\"left:",_labelPrefix:"\"><div class=\"dijitRuleLabel dijitRuleLabelH\">",_suffix:"</div></div>",_calcPosition:function(_5){return _5;},_genHTML:function(_6,_7){return this._positionPrefix+this._calcPosition(_6)+this._positionSuffix+this.labelStyle+this._labelPrefix+this.labels[_7]+this._suffix;},getLabels:function(){var _8=this.labels;if(!_8.length&&this.srcNodeRef){_8=_3("> li",this.srcNodeRef).map(function(_9){return String(_9.innerHTML);});}if(!_8.length&&this.count>1){var _a=this.minimum;var _b=(this.maximum-_a)/(this.count-1);for(var i=0;i<this.count;i++){_8.push((i<this.numericMargin||i>=(this.count-this.numericMargin))?"":_2.format(_a,this.constraints));_a+=_b;}}return _8;},postMixInProperties:function(){this.inherited(arguments);this.labels=this.getLabels();this.count=this.labels.length;}});}); \ No newline at end of file
diff --git a/lib/dijit/form/HorizontalSlider.js b/lib/dijit/form/HorizontalSlider.js
index cc2563171..90e26d5a2 100644
--- a/lib/dijit/form/HorizontalSlider.js
+++ b/lib/dijit/form/HorizontalSlider.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/HorizontalSlider.html":"<table class=\"dijit dijitReset dijitSlider dijitSliderH\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" data-dojo-attach-event=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td data-dojo-attach-point=\"topDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" style=\"display:none\" data-dojo-attach-point=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper\" data-dojo-attach-event=\"press:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input data-dojo-attach-point=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><div class=\"dijitReset dijitSliderBarContainerH\" role=\"presentation\" data-dojo-attach-point=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"progressBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" data-dojo-attach-event=\"press:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableH\"\n\t\t\t\t\t\t><div data-dojo-attach-point=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleH\" data-dojo-attach-event=\"press:_onHandleClick\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" data-dojo-attach-event=\"press:_onBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper\" data-dojo-attach-event=\"press:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" style=\"display:none\" data-dojo-attach-point=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td data-dojo-attach-point=\"containerNode,bottomDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n"}});define("dijit/form/HorizontalSlider",["dojo/_base/array","dojo/_base/declare","dojo/dnd/move","dojo/_base/event","dojo/_base/fx","dojo/dom-geometry","dojo/dom-style","dojo/keys","dojo/_base/lang","dojo/_base/sniff","dojo/dnd/Moveable","dojo/dnd/Mover","dojo/query","../registry","../focus","../typematic","./Button","./_FormValueWidget","../_Container","dojo/text!./templates/HorizontalSlider.html"],function(_1,_2,_3,_4,fx,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12,_13){var _14=_2("dijit.form._SliderMover",_b,{onMouseMove:function(e){var _15=this.widget;var _16=_15._abspos;if(!_16){_16=_15._abspos=_5.position(_15.sliderBarContainer,true);_15._setPixelValue_=_8.hitch(_15,"_setPixelValue");_15._isReversed_=_15._isReversed();}var _17=e[_15._mousePixelCoord]-_16[_15._startingPixelCoord];_15._setPixelValue_(_15._isReversed_?(_16[_15._pixelCount]-_17):_17,_16[_15._pixelCount],false);},destroy:function(e){_b.prototype.destroy.apply(this,arguments);var _18=this.widget;_18._abspos=null;_18._setValueAttr(_18.value,true);}});var _19=_2("dijit.form.HorizontalSlider",[_11,_12],{templateString:_13,value:0,showButtons:true,minimum:0,maximum:100,discreteValues:Infinity,pageIncrement:2,clickSelect:true,slideDuration:_d.defaultDuration,_setIdAttr:"",baseClass:"dijitSlider",cssStateNodes:{incrementButton:"dijitSliderIncrementButton",decrementButton:"dijitSliderDecrementButton",focusNode:"dijitSliderThumb"},_mousePixelCoord:"pageX",_pixelCount:"w",_startingPixelCoord:"x",_handleOffsetCoord:"left",_progressPixelSize:"width",_onKeyUp:function(e){if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){return;}this._setValueAttr(this.value,true);},_onKeyPress:function(e){if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){return;}switch(e.charOrCode){case _7.HOME:this._setValueAttr(this.minimum,false);break;case _7.END:this._setValueAttr(this.maximum,false);break;case ((this._descending||this.isLeftToRight())?_7.RIGHT_ARROW:_7.LEFT_ARROW):case (this._descending===false?_7.DOWN_ARROW:_7.UP_ARROW):case (this._descending===false?_7.PAGE_DOWN:_7.PAGE_UP):this.increment(e);break;case ((this._descending||this.isLeftToRight())?_7.LEFT_ARROW:_7.RIGHT_ARROW):case (this._descending===false?_7.UP_ARROW:_7.DOWN_ARROW):case (this._descending===false?_7.PAGE_UP:_7.PAGE_DOWN):this.decrement(e);break;default:return;}_4.stop(e);},_onHandleClick:function(e){if(this.disabled||this.readOnly){return;}if(!_9("ie")){_e.focus(this.sliderHandle);}_4.stop(e);},_isReversed:function(){return !this.isLeftToRight();},_onBarClick:function(e){if(this.disabled||this.readOnly||!this.clickSelect){return;}_e.focus(this.sliderHandle);_4.stop(e);var _1a=_5.position(this.sliderBarContainer,true);var _1b=e[this._mousePixelCoord]-_1a[this._startingPixelCoord];this._setPixelValue(this._isReversed()?(_1a[this._pixelCount]-_1b):_1b,_1a[this._pixelCount],true);this._movable.onMouseDown(e);},_setPixelValue:function(_1c,_1d,_1e){if(this.disabled||this.readOnly){return;}var _1f=this.discreteValues;if(_1f<=1||_1f==Infinity){_1f=_1d;}_1f--;var _20=_1d/_1f;var _21=Math.round(_1c/_20);this._setValueAttr(Math.max(Math.min((this.maximum-this.minimum)*_21/_1f+this.minimum,this.maximum),this.minimum),_1e);},_setValueAttr:function(_22,_23){this._set("value",_22);this.valueNode.value=_22;this.focusNode.setAttribute("aria-valuenow",_22);this.inherited(arguments);var _24=(_22-this.minimum)/(this.maximum-this.minimum);var _25=(this._descending===false)?this.remainingBar:this.progressBar;var _26=(this._descending===false)?this.progressBar:this.remainingBar;if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){this._inProgressAnim.stop(true);}if(_23&&this.slideDuration>0&&_25.style[this._progressPixelSize]){var _27=this;var _28={};var _29=parseFloat(_25.style[this._progressPixelSize]);var _2a=this.slideDuration*(_24-_29/100);if(_2a==0){return;}if(_2a<0){_2a=0-_2a;}_28[this._progressPixelSize]={start:_29,end:_24*100,units:"%"};this._inProgressAnim=fx.animateProperty({node:_25,duration:_2a,onAnimate:function(v){_26.style[_27._progressPixelSize]=(100-parseFloat(v[_27._progressPixelSize]))+"%";},onEnd:function(){delete _27._inProgressAnim;},properties:_28});this._inProgressAnim.play();}else{_25.style[this._progressPixelSize]=(_24*100)+"%";_26.style[this._progressPixelSize]=((1-_24)*100)+"%";}},_bumpValue:function(_2b,_2c){if(this.disabled||this.readOnly){return;}var s=_6.getComputedStyle(this.sliderBarContainer);var c=_5.getContentBox(this.sliderBarContainer,s);var _2d=this.discreteValues;if(_2d<=1||_2d==Infinity){_2d=c[this._pixelCount];}_2d--;var _2e=(this.value-this.minimum)*_2d/(this.maximum-this.minimum)+_2b;if(_2e<0){_2e=0;}if(_2e>_2d){_2e=_2d;}_2e=_2e*(this.maximum-this.minimum)/_2d+this.minimum;this._setValueAttr(_2e,_2c);},_onClkBumper:function(val){if(this.disabled||this.readOnly||!this.clickSelect){return;}this._setValueAttr(val,true);},_onClkIncBumper:function(){this._onClkBumper(this._descending===false?this.minimum:this.maximum);},_onClkDecBumper:function(){this._onClkBumper(this._descending===false?this.maximum:this.minimum);},decrement:function(e){this._bumpValue(e.charOrCode==_7.PAGE_DOWN?-this.pageIncrement:-1);},increment:function(e){this._bumpValue(e.charOrCode==_7.PAGE_UP?this.pageIncrement:1);},_mouseWheeled:function(evt){_4.stop(evt);var _2f=!_9("mozilla");var _30=evt[(_2f?"wheelDelta":"detail")]*(_2f?1:-1);this._bumpValue(_30<0?-1:1,true);},startup:function(){if(this._started){return;}_1.forEach(this.getChildren(),function(_31){if(this[_31.container]!=this.containerNode){this[_31.container].appendChild(_31.domNode);}},this);this.inherited(arguments);},_typematicCallback:function(_32,_33,e){if(_32==-1){this._setValueAttr(this.value,true);}else{this[(_33==(this._descending?this.incrementButton:this.decrementButton))?"decrement":"increment"](e);}},buildRendering:function(){this.inherited(arguments);if(this.showButtons){this.incrementButton.style.display="";this.decrementButton.style.display="";}var _34=_c("label[for=\""+this.id+"\"]");if(_34.length){_34[0].id=(this.id+"_label");this.focusNode.setAttribute("aria-labelledby",_34[0].id);}this.focusNode.setAttribute("aria-valuemin",this.minimum);this.focusNode.setAttribute("aria-valuemax",this.maximum);},postCreate:function(){this.inherited(arguments);if(this.showButtons){this._connects.push(_f.addMouseListener(this.decrementButton,this,"_typematicCallback",25,500));this._connects.push(_f.addMouseListener(this.incrementButton,this,"_typematicCallback",25,500));}this.connect(this.domNode,!_9("mozilla")?"onmousewheel":"DOMMouseScroll","_mouseWheeled");var _35=_2(_14,{widget:this});this._movable=new _a(this.sliderHandle,{mover:_35});this._layoutHackIE7();},destroy:function(){this._movable.destroy();if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){this._inProgressAnim.stop(true);}this._supportingWidgets=_d.findWidgets(this.domNode);this.inherited(arguments);}});_19._Mover=_14;return _19;}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/HorizontalSlider.html":"<table class=\"dijit dijitReset dijitSlider dijitSliderH\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" data-dojo-attach-event=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\trole=\"presentation\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td data-dojo-attach-point=\"topDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" style=\"display:none\" data-dojo-attach-point=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper\" data-dojo-attach-event=\"press:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input data-dojo-attach-point=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><div class=\"dijitReset dijitSliderBarContainerH\" role=\"presentation\" data-dojo-attach-point=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"progressBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" data-dojo-attach-event=\"press:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableH\"\n\t\t\t\t\t\t><div data-dojo-attach-point=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleH\" data-dojo-attach-event=\"press:_onHandleClick\" role=\"slider\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" data-dojo-attach-event=\"press:_onBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper\" data-dojo-attach-event=\"press:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" style=\"display:none\" data-dojo-attach-point=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td data-dojo-attach-point=\"containerNode,bottomDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n"}});define("dijit/form/HorizontalSlider",["dojo/_base/array","dojo/_base/declare","dojo/dnd/move","dojo/_base/event","dojo/_base/fx","dojo/dom-geometry","dojo/dom-style","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/dnd/Moveable","dojo/dnd/Mover","dojo/query","dojo/mouse","../registry","../focus","../typematic","./Button","./_FormValueWidget","../_Container","dojo/text!./templates/HorizontalSlider.html"],function(_1,_2,_3,_4,fx,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12,_13,_14){var _15=_2("dijit.form._SliderMover",_b,{onMouseMove:function(e){var _16=this.widget;var _17=_16._abspos;if(!_17){_17=_16._abspos=_5.position(_16.sliderBarContainer,true);_16._setPixelValue_=_8.hitch(_16,"_setPixelValue");_16._isReversed_=_16._isReversed();}var _18=e[_16._mousePixelCoord]-_17[_16._startingPixelCoord];_16._setPixelValue_(_16._isReversed_?(_17[_16._pixelCount]-_18):_18,_17[_16._pixelCount],false);},destroy:function(e){_b.prototype.destroy.apply(this,arguments);var _19=this.widget;_19._abspos=null;_19._setValueAttr(_19.value,true);}});var _1a=_2("dijit.form.HorizontalSlider",[_12,_13],{templateString:_14,value:0,showButtons:true,minimum:0,maximum:100,discreteValues:Infinity,pageIncrement:2,clickSelect:true,slideDuration:_e.defaultDuration,_setIdAttr:"",baseClass:"dijitSlider",cssStateNodes:{incrementButton:"dijitSliderIncrementButton",decrementButton:"dijitSliderDecrementButton",focusNode:"dijitSliderThumb"},_mousePixelCoord:"pageX",_pixelCount:"w",_startingPixelCoord:"x",_handleOffsetCoord:"left",_progressPixelSize:"width",_onKeyUp:function(e){if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){return;}this._setValueAttr(this.value,true);},_onKeyPress:function(e){if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){return;}switch(e.charOrCode){case _7.HOME:this._setValueAttr(this.minimum,false);break;case _7.END:this._setValueAttr(this.maximum,false);break;case ((this._descending||this.isLeftToRight())?_7.RIGHT_ARROW:_7.LEFT_ARROW):case (this._descending===false?_7.DOWN_ARROW:_7.UP_ARROW):case (this._descending===false?_7.PAGE_DOWN:_7.PAGE_UP):this.increment(e);break;case ((this._descending||this.isLeftToRight())?_7.LEFT_ARROW:_7.RIGHT_ARROW):case (this._descending===false?_7.UP_ARROW:_7.DOWN_ARROW):case (this._descending===false?_7.PAGE_UP:_7.PAGE_DOWN):this.decrement(e);break;default:return;}_4.stop(e);},_onHandleClick:function(e){if(this.disabled||this.readOnly){return;}if(!_9("ie")){_f.focus(this.sliderHandle);}_4.stop(e);},_isReversed:function(){return !this.isLeftToRight();},_onBarClick:function(e){if(this.disabled||this.readOnly||!this.clickSelect){return;}_f.focus(this.sliderHandle);_4.stop(e);var _1b=_5.position(this.sliderBarContainer,true);var _1c=e[this._mousePixelCoord]-_1b[this._startingPixelCoord];this._setPixelValue(this._isReversed()?(_1b[this._pixelCount]-_1c):_1c,_1b[this._pixelCount],true);this._movable.onMouseDown(e);},_setPixelValue:function(_1d,_1e,_1f){if(this.disabled||this.readOnly){return;}var _20=this.discreteValues;if(_20<=1||_20==Infinity){_20=_1e;}_20--;var _21=_1e/_20;var _22=Math.round(_1d/_21);this._setValueAttr(Math.max(Math.min((this.maximum-this.minimum)*_22/_20+this.minimum,this.maximum),this.minimum),_1f);},_setValueAttr:function(_23,_24){this._set("value",_23);this.valueNode.value=_23;this.focusNode.setAttribute("aria-valuenow",_23);this.inherited(arguments);var _25=(_23-this.minimum)/(this.maximum-this.minimum);var _26=(this._descending===false)?this.remainingBar:this.progressBar;var _27=(this._descending===false)?this.progressBar:this.remainingBar;if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){this._inProgressAnim.stop(true);}if(_24&&this.slideDuration>0&&_26.style[this._progressPixelSize]){var _28=this;var _29={};var _2a=parseFloat(_26.style[this._progressPixelSize]);var _2b=this.slideDuration*(_25-_2a/100);if(_2b==0){return;}if(_2b<0){_2b=0-_2b;}_29[this._progressPixelSize]={start:_2a,end:_25*100,units:"%"};this._inProgressAnim=fx.animateProperty({node:_26,duration:_2b,onAnimate:function(v){_27.style[_28._progressPixelSize]=(100-parseFloat(v[_28._progressPixelSize]))+"%";},onEnd:function(){delete _28._inProgressAnim;},properties:_29});this._inProgressAnim.play();}else{_26.style[this._progressPixelSize]=(_25*100)+"%";_27.style[this._progressPixelSize]=((1-_25)*100)+"%";}},_bumpValue:function(_2c,_2d){if(this.disabled||this.readOnly){return;}var s=_6.getComputedStyle(this.sliderBarContainer);var c=_5.getContentBox(this.sliderBarContainer,s);var _2e=this.discreteValues;if(_2e<=1||_2e==Infinity){_2e=c[this._pixelCount];}_2e--;var _2f=(this.value-this.minimum)*_2e/(this.maximum-this.minimum)+_2c;if(_2f<0){_2f=0;}if(_2f>_2e){_2f=_2e;}_2f=_2f*(this.maximum-this.minimum)/_2e+this.minimum;this._setValueAttr(_2f,_2d);},_onClkBumper:function(val){if(this.disabled||this.readOnly||!this.clickSelect){return;}this._setValueAttr(val,true);},_onClkIncBumper:function(){this._onClkBumper(this._descending===false?this.minimum:this.maximum);},_onClkDecBumper:function(){this._onClkBumper(this._descending===false?this.maximum:this.minimum);},decrement:function(e){this._bumpValue(e.charOrCode==_7.PAGE_DOWN?-this.pageIncrement:-1);},increment:function(e){this._bumpValue(e.charOrCode==_7.PAGE_UP?this.pageIncrement:1);},_mouseWheeled:function(evt){_4.stop(evt);this._bumpValue(evt.wheelDelta<0?-1:1,true);},startup:function(){if(this._started){return;}_1.forEach(this.getChildren(),function(_30){if(this[_30.container]!=this.containerNode){this[_30.container].appendChild(_30.domNode);}},this);this.inherited(arguments);},_typematicCallback:function(_31,_32,e){if(_31==-1){this._setValueAttr(this.value,true);}else{this[(_32==(this._descending?this.incrementButton:this.decrementButton))?"decrement":"increment"](e);}},buildRendering:function(){this.inherited(arguments);if(this.showButtons){this.incrementButton.style.display="";this.decrementButton.style.display="";}var _33=_c("label[for=\""+this.id+"\"]");if(_33.length){if(!_33[0].id){_33[0].id=this.id+"_label";}this.focusNode.setAttribute("aria-labelledby",_33[0].id);}this.focusNode.setAttribute("aria-valuemin",this.minimum);this.focusNode.setAttribute("aria-valuemax",this.maximum);},postCreate:function(){this.inherited(arguments);if(this.showButtons){this.own(_10.addMouseListener(this.decrementButton,this,"_typematicCallback",25,500),_10.addMouseListener(this.incrementButton,this,"_typematicCallback",25,500));}this.connect(this.domNode,_d.wheel,"_mouseWheeled");var _34=_2(_15,{widget:this});this._movable=new _a(this.sliderHandle,{mover:_34});this._layoutHackIE7();},destroy:function(){this._movable.destroy();if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){this._inProgressAnim.stop(true);}this.inherited(arguments);}});_1a._Mover=_15;return _1a;}); \ No newline at end of file
diff --git a/lib/dijit/form/MappedTextBox.js b/lib/dijit/form/MappedTextBox.js
index ecd78995c..3dd3730e1 100644
--- a/lib/dijit/form/MappedTextBox.js
+++ b/lib/dijit/form/MappedTextBox.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/MappedTextBox",["dojo/_base/declare","dojo/dom-construct","./ValidationTextBox"],function(_1,_2,_3){return _1("dijit.form.MappedTextBox",_3,{postMixInProperties:function(){this.inherited(arguments);this.nameAttrSetting="";},_setNameAttr:null,serialize:function(_4){return _4.toString?_4.toString():"";},toString:function(){var _5=this.filter(this.get("value"));return _5!=null?(typeof _5=="string"?_5:this.serialize(_5,this.constraints)):"";},validate:function(){this.valueNode.value=this.toString();return this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);this.valueNode=_2.place("<input type='hidden'"+(this.name?" name='"+this.name.replace(/'/g,"&quot;")+"'":"")+"/>",this.textbox,"after");},reset:function(){this.valueNode.value="";this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/form/MappedTextBox",["dojo/_base/declare","dojo/dom-construct","./ValidationTextBox"],function(_1,_2,_3){return _1("dijit.form.MappedTextBox",_3,{postMixInProperties:function(){this.inherited(arguments);this.nameAttrSetting="";},_setNameAttr:null,serialize:function(_4){return _4.toString?_4.toString():"";},toString:function(){var _5=this.filter(this.get("value"));return _5!=null?(typeof _5=="string"?_5:this.serialize(_5,this.constraints)):"";},validate:function(){this.valueNode.value=this.toString();return this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);this.valueNode=_2.place("<input type='hidden'"+(this.name?" name=\""+this.name.replace(/"/g,"&quot;")+"\"":"")+"/>",this.textbox,"after");},reset:function(){this.valueNode.value="";this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/MultiSelect.js b/lib/dijit/form/MultiSelect.js
index da76fed00..823b071b5 100644
--- a/lib/dijit/form/MultiSelect.js
+++ b/lib/dijit/form/MultiSelect.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/MultiSelect",["dojo/_base/array","dojo/_base/declare","dojo/dom-geometry","dojo/query","./_FormValueWidget"],function(_1,_2,_3,_4,_5){return _2("dijit.form.MultiSelect",_5,{size:7,templateString:"<select multiple='true' ${!nameAttrSetting} data-dojo-attach-point='containerNode,focusNode' data-dojo-attach-event='onchange: _onChange'></select>",addSelected:function(_6){_6.getSelected().forEach(function(n){this.containerNode.appendChild(n);this.domNode.scrollTop=this.domNode.offsetHeight;var _7=_6.domNode.scrollTop;_6.domNode.scrollTop=0;_6.domNode.scrollTop=_7;},this);this._set("value",this.get("value"));},getSelected:function(){return _4("option",this.containerNode).filter(function(n){return n.selected;});},_getValueAttr:function(){return _1.map(this.getSelected(),function(n){return n.value;});},multiple:true,_setValueAttr:function(_8,_9){_4("option",this.containerNode).forEach(function(n){n.selected=(_1.indexOf(_8,n.value)!=-1);});this.inherited(arguments);},invertSelection:function(_a){var _b=[];_4("option",this.containerNode).forEach(function(n){if(!n.selected){_b.push(n.value);}});this._setValueAttr(_b,!(_a===false||_a==null));},_onChange:function(){this._handleOnChange(this.get("value"),true);},resize:function(_c){if(_c){_3.setMarginBox(this.domNode,_c);}},postCreate:function(){this._set("value",this.get("value"));this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/form/MultiSelect",["dojo/_base/array","dojo/_base/declare","dojo/dom-geometry","dojo/query","./_FormValueWidget"],function(_1,_2,_3,_4,_5){return _2("dijit.form.MultiSelect",_5,{size:7,templateString:"<select multiple='true' ${!nameAttrSetting} data-dojo-attach-point='containerNode,focusNode' data-dojo-attach-event='onchange: _onChange'></select>",addSelected:function(_6){_6.getSelected().forEach(function(n){if(this.restoreOriginalText){n.text=this.enforceTextDirWithUcc(this.restoreOriginalText(n),n.text);}this.containerNode.appendChild(n);this.domNode.scrollTop=this.domNode.offsetHeight;var _7=_6.domNode.scrollTop;_6.domNode.scrollTop=0;_6.domNode.scrollTop=_7;},this);this._set("value",this.get("value"));},getSelected:function(){return _4("option",this.containerNode).filter(function(n){return n.selected;});},_getValueAttr:function(){return _1.map(this.getSelected(),function(n){return n.value;});},multiple:true,_setValueAttr:function(_8,_9){_4("option",this.containerNode).forEach(function(n){n.selected=(_1.indexOf(_8,n.value)!=-1);});this.inherited(arguments);},invertSelection:function(_a){var _b=[];_4("option",this.containerNode).forEach(function(n){if(!n.selected){_b.push(n.value);}});this._setValueAttr(_b,!(_a===false||_a==null));},_onChange:function(){this._handleOnChange(this.get("value"),true);},resize:function(_c){if(_c){_3.setMarginBox(this.domNode,_c);}},postCreate:function(){this._set("value",this.get("value"));this.inherited(arguments);},_setTextDirAttr:function(_d){if((this.textDir!=_d||!this._created)&&this.enforceTextDirWithUcc){this._set("textDir",_d);_4("option",this.containerNode).forEach(function(_e){if(!this._created&&_e.value===_e.text){_e.value=_e.text;}_e.text=this.enforceTextDirWithUcc(_e,_e.originalText||_e.text);},this);}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/NumberSpinner.js b/lib/dijit/form/NumberSpinner.js
index 1f7dc1640..eb5053b90 100644
--- a/lib/dijit/form/NumberSpinner.js
+++ b/lib/dijit/form/NumberSpinner.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/NumberSpinner",["dojo/_base/declare","dojo/_base/event","dojo/keys","./_Spinner","./NumberTextBox"],function(_1,_2,_3,_4,_5){return _1("dijit.form.NumberSpinner",[_4,_5.Mixin],{adjust:function(_6,_7){var tc=this.constraints,v=isNaN(_6),_8=!isNaN(tc.max),_9=!isNaN(tc.min);if(v&&_7!=0){_6=(_7>0)?_9?tc.min:_8?tc.max:0:_8?this.constraints.max:_9?tc.min:0;}var _a=_6+_7;if(v||isNaN(_a)){return _6;}if(_8&&(_a>tc.max)){_a=tc.max;}if(_9&&(_a<tc.min)){_a=tc.min;}return _a;},_onKeyPress:function(e){if((e.charOrCode==_3.HOME||e.charOrCode==_3.END)&&!(e.ctrlKey||e.altKey||e.metaKey)&&typeof this.get("value")!="undefined"){var _b=this.constraints[(e.charOrCode==_3.HOME?"min":"max")];if(typeof _b=="number"){this._setValueAttr(_b,false);}_2.stop(e);}}});}); \ No newline at end of file
+define("dijit/form/NumberSpinner",["dojo/_base/declare","dojo/_base/event","dojo/keys","./_Spinner","./NumberTextBox"],function(_1,_2,_3,_4,_5){return _1("dijit.form.NumberSpinner",[_4,_5.Mixin],{baseClass:"dijitTextBox dijitSpinner dijitNumberTextBox",adjust:function(_6,_7){var tc=this.constraints,v=isNaN(_6),_8=!isNaN(tc.max),_9=!isNaN(tc.min);if(v&&_7!=0){_6=(_7>0)?_9?tc.min:_8?tc.max:0:_8?this.constraints.max:_9?tc.min:0;}var _a=_6+_7;if(v||isNaN(_a)){return _6;}if(_8&&(_a>tc.max)){_a=tc.max;}if(_9&&(_a<tc.min)){_a=tc.min;}return _a;},_onKeyPress:function(e){if((e.charOrCode==_3.HOME||e.charOrCode==_3.END)&&!(e.ctrlKey||e.altKey||e.metaKey)&&typeof this.get("value")!="undefined"){var _b=this.constraints[(e.charOrCode==_3.HOME?"min":"max")];if(typeof _b=="number"){this._setValueAttr(_b,false);}_2.stop(e);}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/NumberTextBox.js b/lib/dijit/form/NumberTextBox.js
index a7cdb8201..dc7210589 100644
--- a/lib/dijit/form/NumberTextBox.js
+++ b/lib/dijit/form/NumberTextBox.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/NumberTextBox",["dojo/_base/declare","dojo/_base/lang","dojo/number","./RangeBoundTextBox"],function(_1,_2,_3,_4){var _5=_1("dijit.form.NumberTextBoxMixin",null,{regExpGen:_3.regexp,value:NaN,editOptions:{pattern:"#.######"},_formatter:_3.format,postMixInProperties:function(){this.inherited(arguments);this._set("type","text");},_setConstraintsAttr:function(_6){var _7=typeof _6.places=="number"?_6.places:0;if(_7){_7++;}if(typeof _6.max!="number"){_6.max=9*Math.pow(10,15-_7);}if(typeof _6.min!="number"){_6.min=-9*Math.pow(10,15-_7);}this.inherited(arguments,[_6]);if(this.focusNode&&this.focusNode.value&&!isNaN(this.value)){this.set("value",this.value);}},_onFocus:function(){if(this.disabled){return;}var _8=this.get("value");if(typeof _8=="number"&&!isNaN(_8)){var _9=this.format(_8,this.constraints);if(_9!==undefined){this.textbox.value=_9;}}this.inherited(arguments);},format:function(_a,_b){var _c=String(_a);if(typeof _a!="number"){return _c;}if(isNaN(_a)){return "";}if(!("rangeCheck" in this&&this.rangeCheck(_a,_b))&&_b.exponent!==false&&/\de[-+]?\d/i.test(_c)){return _c;}if(this.editOptions&&this.focused){_b=_2.mixin({},_b,this.editOptions);}return this._formatter(_a,_b);},_parser:_3.parse,parse:function(_d,_e){var v=this._parser(_d,_2.mixin({},_e,(this.editOptions&&this.focused)?this.editOptions:{}));if(this.editOptions&&this.focused&&isNaN(v)){v=this._parser(_d,_e);}return v;},_getDisplayedValueAttr:function(){var v=this.inherited(arguments);return isNaN(v)?this.textbox.value:v;},filter:function(_f){return (_f===null||_f===""||_f===undefined)?NaN:this.inherited(arguments);},serialize:function(_10,_11){return (typeof _10!="number"||isNaN(_10))?"":this.inherited(arguments);},_setBlurValue:function(){var val=_2.hitch(_2.mixin({},this,{focused:true}),"get")("value");this._setValueAttr(val,true);},_setValueAttr:function(_12,_13,_14){if(_12!==undefined&&_14===undefined){_14=String(_12);if(typeof _12=="number"){if(isNaN(_12)){_14="";}else{if(("rangeCheck" in this&&this.rangeCheck(_12,this.constraints))||this.constraints.exponent===false||!/\de[-+]?\d/i.test(_14)){_14=undefined;}}}else{if(!_12){_14="";_12=NaN;}else{_12=undefined;}}}this.inherited(arguments,[_12,_13,_14]);},_getValueAttr:function(){var v=this.inherited(arguments);if(isNaN(v)&&this.textbox.value!==""){if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)&&(new RegExp("^"+_3._realNumberRegexp(_2.mixin({},this.constraints))+"$").test(this.textbox.value))){var n=Number(this.textbox.value);return isNaN(n)?undefined:n;}else{return undefined;}}else{return v;}},isValid:function(_15){if(!this.focused||this._isEmpty(this.textbox.value)){return this.inherited(arguments);}else{var v=this.get("value");if(!isNaN(v)&&this.rangeCheck(v,this.constraints)){if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)){return true;}else{return this.inherited(arguments);}}else{return false;}}}});var _16=_1("dijit.form.NumberTextBox",[_4,_5],{baseClass:"dijitTextBox dijitNumberTextBox"});_16.Mixin=_5;return _16;}); \ No newline at end of file
+define("dijit/form/NumberTextBox",["dojo/_base/declare","dojo/_base/lang","dojo/number","./RangeBoundTextBox"],function(_1,_2,_3,_4){var _5=_1("dijit.form.NumberTextBoxMixin",null,{pattern:_3.regexp,value:NaN,editOptions:{pattern:"#.######"},_formatter:_3.format,postMixInProperties:function(){this.inherited(arguments);this._set("type","text");},_setConstraintsAttr:function(_6){var _7=typeof _6.places=="number"?_6.places:0;if(_7){_7++;}if(typeof _6.max!="number"){_6.max=9*Math.pow(10,15-_7);}if(typeof _6.min!="number"){_6.min=-9*Math.pow(10,15-_7);}this.inherited(arguments,[_6]);if(this.focusNode&&this.focusNode.value&&!isNaN(this.value)){this.set("value",this.value);}},_onFocus:function(){if(this.disabled){return;}var _8=this.get("value");if(typeof _8=="number"&&!isNaN(_8)){var _9=this.format(_8,this.constraints);if(_9!==undefined){this.textbox.value=_9;}}this.inherited(arguments);},format:function(_a,_b){var _c=String(_a);if(typeof _a!="number"){return _c;}if(isNaN(_a)){return "";}if(!("rangeCheck" in this&&this.rangeCheck(_a,_b))&&_b.exponent!==false&&/\de[-+]?\d/i.test(_c)){return _c;}if(this.editOptions&&this.focused){_b=_2.mixin({},_b,this.editOptions);}return this._formatter(_a,_b);},_parser:_3.parse,parse:function(_d,_e){var v=this._parser(_d,_2.mixin({},_e,(this.editOptions&&this.focused)?this.editOptions:{}));if(this.editOptions&&this.focused&&isNaN(v)){v=this._parser(_d,_e);}return v;},_getDisplayedValueAttr:function(){var v=this.inherited(arguments);return isNaN(v)?this.textbox.value:v;},filter:function(_f){return (_f==null||_f==="")?NaN:this.inherited(arguments);},serialize:function(_10,_11){return (typeof _10!="number"||isNaN(_10))?"":this.inherited(arguments);},_setBlurValue:function(){var val=_2.hitch(_2.mixin({},this,{focused:true}),"get")("value");this._setValueAttr(val,true);},_setValueAttr:function(_12,_13,_14){if(_12!==undefined&&_14===undefined){_14=String(_12);if(typeof _12=="number"){if(isNaN(_12)){_14="";}else{if(("rangeCheck" in this&&this.rangeCheck(_12,this.constraints))||this.constraints.exponent===false||!/\de[-+]?\d/i.test(_14)){_14=undefined;}}}else{if(!_12){_14="";_12=NaN;}else{_12=undefined;}}}this.inherited(arguments,[_12,_13,_14]);},_getValueAttr:function(){var v=this.inherited(arguments);if(isNaN(v)&&this.textbox.value!==""){if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)&&(new RegExp("^"+_3._realNumberRegexp(_2.mixin({},this.constraints))+"$").test(this.textbox.value))){var n=Number(this.textbox.value);return isNaN(n)?undefined:n;}else{return undefined;}}else{return v;}},isValid:function(_15){if(!this.focused||this._isEmpty(this.textbox.value)){return this.inherited(arguments);}else{var v=this.get("value");if(!isNaN(v)&&this.rangeCheck(v,this.constraints)){if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)){return true;}else{return this.inherited(arguments);}}else{return false;}}}});var _16=_1("dijit.form.NumberTextBox",[_4,_5],{baseClass:"dijitTextBox dijitNumberTextBox"});_16.Mixin=_5;return _16;}); \ No newline at end of file
diff --git a/lib/dijit/form/RangeBoundTextBox.js b/lib/dijit/form/RangeBoundTextBox.js
index fc57a034b..4c8e13aad 100644
--- a/lib/dijit/form/RangeBoundTextBox.js
+++ b/lib/dijit/form/RangeBoundTextBox.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/RangeBoundTextBox",["dojo/_base/declare","dojo/i18n","./MappedTextBox"],function(_1,_2,_3){return _1("dijit.form.RangeBoundTextBox",_3,{rangeMessage:"",rangeCheck:function(_4,_5){return ("min" in _5?(this.compare(_4,_5.min)>=0):true)&&("max" in _5?(this.compare(_4,_5.max)<=0):true);},isInRange:function(){return this.rangeCheck(this.get("value"),this.constraints);},_isDefinitelyOutOfRange:function(){var _6=this.get("value");var _7=false;var _8=false;if("min" in this.constraints){var _9=this.constraints.min;_9=this.compare(_6,((typeof _9=="number")&&_9>=0&&_6!=0)?0:_9);_7=(typeof _9=="number")&&_9<0;}if("max" in this.constraints){var _a=this.constraints.max;_a=this.compare(_6,((typeof _a!="number")||_a>0)?_a:0);_8=(typeof _a=="number")&&_a>0;}return _7||_8;},_isValidSubset:function(){return this.inherited(arguments)&&!this._isDefinitelyOutOfRange();},isValid:function(_b){return this.inherited(arguments)&&((this._isEmpty(this.textbox.value)&&!this.required)||this.isInRange(_b));},getErrorMessage:function(_c){var v=this.get("value");if(v!==null&&v!==""&&v!==undefined&&(typeof v!="number"||!isNaN(v))&&!this.isInRange(_c)){return this.rangeMessage;}return this.inherited(arguments);},postMixInProperties:function(){this.inherited(arguments);if(!this.rangeMessage){this.messages=_2.getLocalization("dijit.form","validate",this.lang);this.rangeMessage=this.messages.rangeMessage;}},_setConstraintsAttr:function(_d){this.inherited(arguments);if(this.focusNode){if(this.constraints.min!==undefined){this.focusNode.setAttribute("aria-valuemin",this.constraints.min);}else{this.focusNode.removeAttribute("aria-valuemin");}if(this.constraints.max!==undefined){this.focusNode.setAttribute("aria-valuemax",this.constraints.max);}else{this.focusNode.removeAttribute("aria-valuemax");}}},_setValueAttr:function(_e,_f){this.focusNode.setAttribute("aria-valuenow",_e);this.inherited(arguments);},applyTextDir:function(){}});}); \ No newline at end of file
+define("dijit/form/RangeBoundTextBox",["dojo/_base/declare","dojo/i18n","./MappedTextBox"],function(_1,_2,_3){var _4=_1("dijit.form.RangeBoundTextBox",_3,{rangeMessage:"",rangeCheck:function(_5,_6){return ("min" in _6?(this.compare(_5,_6.min)>=0):true)&&("max" in _6?(this.compare(_5,_6.max)<=0):true);},isInRange:function(){return this.rangeCheck(this.get("value"),this.constraints);},_isDefinitelyOutOfRange:function(){var _7=this.get("value");if(_7==null){return false;}var _8=false;if("min" in this.constraints){var _9=this.constraints.min;_8=this.compare(_7,((typeof _9=="number")&&_9>=0&&_7!=0)?0:_9)<0;}if(!_8&&("max" in this.constraints)){var _a=this.constraints.max;_8=this.compare(_7,((typeof _a!="number")||_a>0)?_a:0)>0;}return _8;},_isValidSubset:function(){return this.inherited(arguments)&&!this._isDefinitelyOutOfRange();},isValid:function(_b){return this.inherited(arguments)&&((this._isEmpty(this.textbox.value)&&!this.required)||this.isInRange(_b));},getErrorMessage:function(_c){var v=this.get("value");if(v!=null&&v!==""&&(typeof v!="number"||!isNaN(v))&&!this.isInRange(_c)){return this.rangeMessage;}return this.inherited(arguments);},postMixInProperties:function(){this.inherited(arguments);if(!this.rangeMessage){this.messages=_2.getLocalization("dijit.form","validate",this.lang);this.rangeMessage=this.messages.rangeMessage;}},applyTextDir:function(){}});return _4;}); \ No newline at end of file
diff --git a/lib/dijit/form/Select.js b/lib/dijit/form/Select.js
index 8322b015e..4fcf7e711 100644
--- a/lib/dijit/form/Select.js
+++ b/lib/dijit/form/Select.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/Select.html":"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdata-dojo-attach-point=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\trole=\"combobox\" aria-haspopup=\"true\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\" role=\"presentation\"\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" data-dojo-attach-point=\"containerNode,_popupStateNode\"></span\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} data-dojo-attach-point=\"valueNode\" value=\"${value}\" aria-hidden=\"true\"\n\t\t/></td><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdata-dojo-attach-point=\"titleNode\" role=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">&#9660;</div\n\t\t></td\n\t></tr></tbody\n></table>\n"}});define("dijit/form/Select",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/_base/event","dojo/i18n","dojo/_base/lang","./_FormSelectWidget","../_HasDropDown","../Menu","../MenuItem","../MenuSeparator","../Tooltip","dojo/text!./templates/Select.html","dojo/i18n!./nls/validate"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10){var _11=_2("dijit.form._SelectMenu",_c,{buildRendering:function(){this.inherited(arguments);var o=(this.menuTableNode=this.domNode);var n=(this.domNode=_5.create("div",{style:{overflowX:"hidden",overflowY:"scroll"}}));if(o.parentNode){o.parentNode.replaceChild(n,o);}_4.remove(o,"dijitMenuTable");n.className=o.className+" dijitSelectMenu";o.className="dijitReset dijitMenuTable";o.setAttribute("role","listbox");n.setAttribute("role","presentation");n.appendChild(o);},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onmousemove",_7.stop);},resize:function(mb){if(mb){_6.setMarginBox(this.domNode,mb);if("w" in mb){this.menuTableNode.style.width="100%";}}}});var _12=_2("dijit.form.Select",[_a,_b],{baseClass:"dijitSelect",templateString:_10,required:false,state:"",message:"",tooltipPosition:[],emptyLabel:"&#160;",_isLoaded:false,_childrenLoaded:false,_fillContent:function(){this.inherited(arguments);if(this.options.length&&!this.value&&this.srcNodeRef){var si=this.srcNodeRef.selectedIndex||0;this.value=this.options[si>=0?si:0].value;}this.dropDown=new _11({id:this.id+"_menu"});_4.add(this.dropDown.domNode,this.baseClass+"Menu");},_getMenuItemForOption:function(_13){if(!_13.value&&!_13.label){return new _e();}else{var _14=_9.hitch(this,"_setValueAttr",_13);var _15=new _d({option:_13,label:_13.label||this.emptyLabel,onClick:_14,disabled:_13.disabled||false});_15.focusNode.setAttribute("role","listitem");return _15;}},_addOptionItem:function(_16){if(this.dropDown){this.dropDown.addChild(this._getMenuItemForOption(_16));}},_getChildren:function(){if(!this.dropDown){return [];}return this.dropDown.getChildren();},_loadChildren:function(_17){if(_17===true){if(this.dropDown){delete this.dropDown.focusedChild;}if(this.options.length){this.inherited(arguments);}else{_1.forEach(this._getChildren(),function(_18){_18.destroyRecursive();});var _19=new _d({label:"&#160;"});this.dropDown.addChild(_19);}}else{this._updateSelection();}this._isLoaded=false;this._childrenLoaded=true;if(!this._loadingStore){this._setValueAttr(this.value);}},_setValueAttr:function(_1a){this.inherited(arguments);_3.set(this.valueNode,"value",this.get("value"));this.validate(this.focused);},_setDisabledAttr:function(_1b){this.inherited(arguments);this.validate(this.focused);},_setRequiredAttr:function(_1c){this._set("required",_1c);this.focusNode.setAttribute("aria-required",_1c);this.validate(this.focused);},_setDisplay:function(_1d){var lbl=_1d||this.emptyLabel;this.containerNode.innerHTML="<span class=\"dijitReset dijitInline "+this.baseClass+"Label\">"+lbl+"</span>";this.focusNode.setAttribute("aria-valuetext",lbl);},validate:function(_1e){var _1f=this.disabled||this.isValid(_1e);this._set("state",_1f?"":"Incomplete");this.focusNode.setAttribute("aria-invalid",_1f?"false":"true");var _20=_1f?"":this._missingMsg;if(_20&&this.focused&&this._hasBeenBlurred){_f.show(_20,this.domNode,this.tooltipPosition,!this.isLeftToRight());}else{_f.hide(this.domNode);}this._set("message",_20);return _1f;},isValid:function(){return (!this.required||this.value===0||!(/^\s*$/.test(this.value||"")));},reset:function(){this.inherited(arguments);_f.hide(this.domNode);this.validate(this.focused);},postMixInProperties:function(){this.inherited(arguments);this._missingMsg=_8.getLocalization("dijit.form","validate",this.lang).missingMessage;},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onmousemove",_7.stop);},_setStyleAttr:function(_21){this.inherited(arguments);_4.toggle(this.domNode,this.baseClass+"FixedWidth",!!this.domNode.style.width);},isLoaded:function(){return this._isLoaded;},loadDropDown:function(_22){this._loadChildren(true);this._isLoaded=true;_22();},closeDropDown:function(){this.inherited(arguments);if(this.dropDown&&this.dropDown.menuTableNode){this.dropDown.menuTableNode.style.width="";}},uninitialize:function(_23){if(this.dropDown&&!this.dropDown._destroyed){this.dropDown.destroyRecursive(_23);delete this.dropDown;}this.inherited(arguments);},_onFocus:function(){this.validate(true);this.inherited(arguments);},_onBlur:function(){_f.hide(this.domNode);this.inherited(arguments);}});_12._Menu=_11;return _12;}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/Select.html":"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdata-dojo-attach-point=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\trole=\"listbox\" aria-haspopup=\"true\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents\" role=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitInputField dijitButtonText\" data-dojo-attach-point=\"containerNode,_popupStateNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitValidationContainer\"\n\t\t\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t/></div\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} data-dojo-attach-point=\"valueNode\" value=\"${value}\" aria-hidden=\"true\"\n\t\t/></td\n\t\t><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer\"\n\t\t\tdata-dojo-attach-point=\"titleNode\" role=\"presentation\"\n\t\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t\t${_buttonInputDisabled}\n\t\t/></td\n\t></tr></tbody\n></table>\n"}});define("dijit/form/Select",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/_base/event","dojo/i18n","dojo/_base/lang","dojo/sniff","./_FormSelectWidget","../_HasDropDown","../Menu","../MenuItem","../MenuSeparator","../Tooltip","dojo/text!./templates/Select.html","dojo/i18n!./nls/validate"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10){var _11=_2("dijit.form._SelectMenu",_c,{autoFocus:true,buildRendering:function(){this.inherited(arguments);var o=(this.menuTableNode=this.domNode);var n=(this.domNode=this.ownerDocument.createElement("div"));n.style.cssText="overflow-x: hidden; overflow-y: scroll";if(o.parentNode){o.parentNode.replaceChild(n,o);}_4.remove(o,"dijitMenuTable");n.className=o.className+" dijitSelectMenu";o.className="dijitReset dijitMenuTable";o.setAttribute("role","listbox");n.setAttribute("role","presentation");n.appendChild(o);},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onselectstart",_6.stop);},focus:function(){var _12=false,val=this.parentWidget.value;if(_8.isArray(val)){val=val[val.length-1];}if(val){_1.forEach(this.parentWidget._getChildren(),function(_13){if(_13.option&&(val===_13.option.value)){_12=true;this.focusChild(_13,false);}},this);}if(!_12){this.inherited(arguments);}},resize:function(mb){if(mb){_5.setMarginBox(this.domNode,mb);if("w" in mb){this.menuTableNode.style.width="100%";}}}});var _14=_2("dijit.form.Select",[_a,_b],{baseClass:"dijitSelect dijitValidationTextBox",templateString:_10,_buttonInputDisabled:_9("ie")?"disabled":"",required:false,state:"",message:"",tooltipPosition:[],emptyLabel:"&#160;",_isLoaded:false,_childrenLoaded:false,_fillContent:function(){this.inherited(arguments);if(this.options.length&&!this.value&&this.srcNodeRef){var si=this.srcNodeRef.selectedIndex||0;this.value=this.options[si>=0?si:0].value;}this.dropDown=new _11({id:this.id+"_menu",parentWidget:this});_4.add(this.dropDown.domNode,this.baseClass.replace(/\s+|$/g,"Menu "));},_getMenuItemForOption:function(_15){if(!_15.value&&!_15.label){return new _e({ownerDocument:this.ownerDocument});}else{var _16=_8.hitch(this,"_setValueAttr",_15);var _17=new _d({option:_15,label:_15.label||this.emptyLabel,onClick:_16,ownerDocument:this.ownerDocument,dir:this.dir,disabled:_15.disabled||false});_17.focusNode.setAttribute("role","option");return _17;}},_addOptionItem:function(_18){if(this.dropDown){this.dropDown.addChild(this._getMenuItemForOption(_18));}},_getChildren:function(){if(!this.dropDown){return [];}return this.dropDown.getChildren();},_loadChildren:function(_19){if(_19===true){if(this.dropDown){delete this.dropDown.focusedChild;}if(this.options.length){this.inherited(arguments);}else{_1.forEach(this._getChildren(),function(_1a){_1a.destroyRecursive();});var _1b=new _d({ownerDocument:this.ownerDocument,label:this.emptyLabel});this.dropDown.addChild(_1b);}}else{this._updateSelection();}this._isLoaded=false;this._childrenLoaded=true;if(!this._loadingStore){this._setValueAttr(this.value,false);}},_refreshState:function(){if(this._started){this.validate(this.focused);}},startup:function(){this.inherited(arguments);this._refreshState();},_setValueAttr:function(_1c){this.inherited(arguments);_3.set(this.valueNode,"value",this.get("value"));this._refreshState();},_setDisabledAttr:function(_1d){this.inherited(arguments);this._refreshState();},_setRequiredAttr:function(_1e){this._set("required",_1e);this.focusNode.setAttribute("aria-required",_1e);this._refreshState();},_setOptionsAttr:function(_1f){this._isLoaded=false;this._set("options",_1f);},_setDisplay:function(_20){var lbl=_20||this.emptyLabel;this.containerNode.innerHTML="<span role=\"option\" class=\"dijitReset dijitInline "+this.baseClass.replace(/\s+|$/g,"Label ")+"\">"+lbl+"</span>";},validate:function(_21){var _22=this.disabled||this.isValid(_21);this._set("state",_22?"":(this._hasBeenBlurred?"Error":"Incomplete"));this.focusNode.setAttribute("aria-invalid",_22?"false":"true");var _23=_22?"":this._missingMsg;if(_23&&this.focused&&this._hasBeenBlurred){_f.show(_23,this.domNode,this.tooltipPosition,!this.isLeftToRight());}else{_f.hide(this.domNode);}this._set("message",_23);return _22;},isValid:function(){return (!this.required||this.value===0||!(/^\s*$/.test(this.value||"")));},reset:function(){this.inherited(arguments);_f.hide(this.domNode);this._refreshState();},postMixInProperties:function(){this.inherited(arguments);this._missingMsg=_7.getLocalization("dijit.form","validate",this.lang).missingMessage;},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onselectstart",_6.stop);this.domNode.setAttribute("aria-expanded","false");if(_9("ie")<9){this.defer(function(){try{var s=domStyle.getComputedStyle(this.domNode);if(s){var ff=s.fontFamily;if(ff){var _24=this.domNode.getElementsByTagName("INPUT");if(_24){for(var i=0;i<_24.length;i++){_24[i].style.fontFamily=ff;}}}}}catch(e){}});}},_setStyleAttr:function(_25){this.inherited(arguments);_4.toggle(this.domNode,this.baseClass.replace(/\s+|$/g,"FixedWidth "),!!this.domNode.style.width);},isLoaded:function(){return this._isLoaded;},loadDropDown:function(_26){this._loadChildren(true);this._isLoaded=true;_26();},closeDropDown:function(){this.inherited(arguments);if(this.dropDown&&this.dropDown.menuTableNode){this.dropDown.menuTableNode.style.width="";}},destroy:function(_27){if(this.dropDown&&!this.dropDown._destroyed){this.dropDown.destroyRecursive(_27);delete this.dropDown;}this.inherited(arguments);},_onFocus:function(){this.validate(true);this.inherited(arguments);},_onBlur:function(){_f.hide(this.domNode);this.inherited(arguments);this.validate(false);}});_14._Menu=_11;return _14;}); \ No newline at end of file
diff --git a/lib/dijit/form/SimpleTextarea.js b/lib/dijit/form/SimpleTextarea.js
index 41c701937..5bb90f9be 100644
--- a/lib/dijit/form/SimpleTextarea.js
+++ b/lib/dijit/form/SimpleTextarea.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/SimpleTextarea",["dojo/_base/declare","dojo/dom-class","dojo/_base/sniff","dojo/_base/window","./TextBox"],function(_1,_2,_3,_4,_5){return _1("dijit.form.SimpleTextarea",_5,{baseClass:"dijitTextBox dijitTextArea",rows:"3",cols:"20",templateString:"<textarea ${!nameAttrSetting} data-dojo-attach-point='focusNode,containerNode,textbox' autocomplete='off'></textarea>",postMixInProperties:function(){if(!this.value&&this.srcNodeRef){this.value=this.srcNodeRef.value;}this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);if(_3("ie")&&this.cols){_2.add(this.textbox,"dijitTextAreaCols");}},filter:function(_6){if(_6){_6=_6.replace(/\r/g,"");}return this.inherited(arguments);},_onInput:function(e){if(this.maxLength){var _7=parseInt(this.maxLength);var _8=this.textbox.value.replace(/\r/g,"");var _9=_8.length-_7;if(_9>0){var _a=this.textbox;if(_a.selectionStart){var _b=_a.selectionStart;var cr=0;if(_3("opera")){cr=(this.textbox.value.substring(0,_b).match(/\r/g)||[]).length;}this.textbox.value=_8.substring(0,_b-_9-cr)+_8.substring(_b-cr);_a.setSelectionRange(_b-_9,_b-_9);}else{if(_4.doc.selection){_a.focus();var _c=_4.doc.selection.createRange();_c.moveStart("character",-_9);_c.text="";_c.select();}}}}this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/form/SimpleTextarea",["dojo/_base/declare","dojo/dom-class","dojo/sniff","./TextBox"],function(_1,_2,_3,_4){return _1("dijit.form.SimpleTextarea",_4,{baseClass:"dijitTextBox dijitTextArea",rows:"3",cols:"20",templateString:"<textarea ${!nameAttrSetting} data-dojo-attach-point='focusNode,containerNode,textbox' autocomplete='off'></textarea>",postMixInProperties:function(){if(!this.value&&this.srcNodeRef){this.value=this.srcNodeRef.value;}this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);if(_3("ie")&&this.cols){_2.add(this.textbox,"dijitTextAreaCols");}},filter:function(_5){if(_5){_5=_5.replace(/\r/g,"");}return this.inherited(arguments);},_onInput:function(e){if(this.maxLength){var _6=parseInt(this.maxLength);var _7=this.textbox.value.replace(/\r/g,"");var _8=_7.length-_6;if(_8>0){var _9=this.textbox;if(_9.selectionStart){var _a=_9.selectionStart;var cr=0;if(_3("opera")){cr=(this.textbox.value.substring(0,_a).match(/\r/g)||[]).length;}this.textbox.value=_7.substring(0,_a-_8-cr)+_7.substring(_a-cr);_9.setSelectionRange(_a-_8,_a-_8);}else{if(this.ownerDocument.selection){_9.focus();var _b=this.ownerDocument.selection.createRange();_b.moveStart("character",-_8);_b.text="";_b.select();}}}}this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/TextBox.js b/lib/dijit/form/TextBox.js
index 54d5b1de3..e49b2edc9 100644
--- a/lib/dijit/form/TextBox.js
+++ b/lib/dijit/form/TextBox.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/TextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"}});define("dijit/form/TextBox",["dojo/_base/declare","dojo/dom-construct","dojo/dom-style","dojo/_base/kernel","dojo/_base/lang","dojo/_base/sniff","dojo/_base/window","./_FormValueWidget","./_TextBoxMixin","dojo/text!./templates/TextBox.html",".."],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){var _c=_1([_8,_9],{templateString:_a,_singleNodeTemplate:"<input class=\"dijit dijitReset dijitLeft dijitInputField\" data-dojo-attach-point=\"textbox,focusNode\" autocomplete=\"off\" type=\"${type}\" ${!nameAttrSetting} />",_buttonInputDisabled:_6("ie")?"disabled":"",baseClass:"dijitTextBox",postMixInProperties:function(){var _d=this.type.toLowerCase();if(this.templateString&&this.templateString.toLowerCase()=="input"||((_d=="hidden"||_d=="file")&&this.templateString==this.constructor.prototype.templateString)){this.templateString=this._singleNodeTemplate;}this.inherited(arguments);},_onInput:function(e){this.inherited(arguments);if(this.intermediateChanges){var _e=this;setTimeout(function(){_e._handleOnChange(_e.get("value"),false);},0);}},_setPlaceHolderAttr:function(v){this._set("placeHolder",v);if(!this._phspan){this._attachPoints.push("_phspan");this._phspan=_2.create("span",{className:"dijitPlaceHolder dijitInputField"},this.textbox,"after");}this._phspan.innerHTML="";this._phspan.appendChild(document.createTextNode(v));this._updatePlaceHolder();},_updatePlaceHolder:function(){if(this._phspan){this._phspan.style.display=(this.placeHolder&&!this.focused&&!this.textbox.value)?"":"none";}},_setValueAttr:function(_f,_10,_11){this.inherited(arguments);this._updatePlaceHolder();},getDisplayedValue:function(){_4.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use set('displayedValue') instead.","","2.0");return this.get("displayedValue");},setDisplayedValue:function(_12){_4.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.","","2.0");this.set("displayedValue",_12);},_onBlur:function(e){if(this.disabled){return;}this.inherited(arguments);this._updatePlaceHolder();},_onFocus:function(by){if(this.disabled||this.readOnly){return;}this.inherited(arguments);this._updatePlaceHolder();}});if(_6("ie")){_c=_1(_c,{declaredClass:"dijit.form.TextBox",_isTextSelected:function(){var _13=_7.doc.selection.createRange();var _14=_13.parentElement();return _14==this.textbox&&_13.text.length==0;},postCreate:function(){this.inherited(arguments);setTimeout(_5.hitch(this,function(){try{var s=_3.getComputedStyle(this.domNode);if(s){var ff=s.fontFamily;if(ff){var _15=this.domNode.getElementsByTagName("INPUT");if(_15){for(var i=0;i<_15.length;i++){_15[i].style.fontFamily=ff;}}}}}catch(e){}}),0);}});_b._setSelectionRange=_9._setSelectionRange=function(_16,_17,_18){if(_16.createTextRange){var r=_16.createTextRange();r.collapse(true);r.moveStart("character",-99999);r.moveStart("character",_17);r.moveEnd("character",_18-_17);r.select();}};}else{if(_6("mozilla")){_c=_1(_c,{declaredClass:"dijit.form.TextBox",_onBlur:function(e){this.inherited(arguments);if(this.selectOnClick){this.textbox.selectionStart=this.textbox.selectionEnd=undefined;}}});}else{_c.prototype.declaredClass="dijit.form.TextBox";}}_5.setObject("dijit.form.TextBox",_c);return _c;}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/TextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"}});define("dijit/form/TextBox",["dojo/_base/declare","dojo/dom-construct","dojo/dom-style","dojo/_base/kernel","dojo/_base/lang","dojo/sniff","./_FormValueWidget","./_TextBoxMixin","dojo/text!./templates/TextBox.html","../main"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){var _b=_1("dijit.form.TextBox",[_7,_8],{templateString:_9,_singleNodeTemplate:"<input class=\"dijit dijitReset dijitLeft dijitInputField\" data-dojo-attach-point=\"textbox,focusNode\" autocomplete=\"off\" type=\"${type}\" ${!nameAttrSetting} />",_buttonInputDisabled:_6("ie")?"disabled":"",baseClass:"dijitTextBox",postMixInProperties:function(){var _c=this.type.toLowerCase();if(this.templateString&&this.templateString.toLowerCase()=="input"||((_c=="hidden"||_c=="file")&&this.templateString==this.constructor.prototype.templateString)){this.templateString=this._singleNodeTemplate;}this.inherited(arguments);},postCreate:function(){this.inherited(arguments);if(_6("ie")<9){this.defer(function(){try{var s=_3.getComputedStyle(this.domNode);if(s){var ff=s.fontFamily;if(ff){var _d=this.domNode.getElementsByTagName("INPUT");if(_d){for(var i=0;i<_d.length;i++){_d[i].style.fontFamily=ff;}}}}}catch(e){}});}},_onInput:function(e){this.inherited(arguments);if(this.intermediateChanges){this.defer(function(){this._handleOnChange(this.get("value"),false);});}},_setPlaceHolderAttr:function(v){this._set("placeHolder",v);if(!this._phspan){this._attachPoints.push("_phspan");this._phspan=_2.create("span",{onmousedown:function(e){e.preventDefault();},className:"dijitPlaceHolder dijitInputField"},this.textbox,"after");}this._phspan.innerHTML="";this._phspan.appendChild(this._phspan.ownerDocument.createTextNode(v));this._updatePlaceHolder();},_updatePlaceHolder:function(){if(this._phspan){this._phspan.style.display=(this.placeHolder&&!this.focused&&!this.textbox.value)?"":"none";}},_setValueAttr:function(_e,_f,_10){this.inherited(arguments);this._updatePlaceHolder();},getDisplayedValue:function(){_4.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use get('displayedValue') instead.","","2.0");return this.get("displayedValue");},setDisplayedValue:function(_11){_4.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.","","2.0");this.set("displayedValue",_11);},_onBlur:function(e){if(this.disabled){return;}this.inherited(arguments);this._updatePlaceHolder();if(_6("mozilla")){if(this.selectOnClick){this.textbox.selectionStart=this.textbox.selectionEnd=undefined;}}},_onFocus:function(by){if(this.disabled||this.readOnly){return;}this.inherited(arguments);this._updatePlaceHolder();}});if(_6("ie")){_b.prototype._isTextSelected=function(){var _12=this.ownerDocument.selection.createRange();var _13=_12.parentElement();return _13==this.textbox&&_12.text.length>0;};_a._setSelectionRange=_8._setSelectionRange=function(_14,_15,_16){if(_14.createTextRange){var r=_14.createTextRange();r.collapse(true);r.moveStart("character",-99999);r.moveStart("character",_15);r.moveEnd("character",_16-_15);r.select();}};}return _b;}); \ No newline at end of file
diff --git a/lib/dijit/form/TimeTextBox.js b/lib/dijit/form/TimeTextBox.js
index 90b3f279d..18496f1f1 100644
--- a/lib/dijit/form/TimeTextBox.js
+++ b/lib/dijit/form/TimeTextBox.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/TimeTextBox",["dojo/_base/declare","dojo/keys","dojo/_base/lang","../_TimePicker","./_DateTimeTextBox"],function(_1,_2,_3,_4,_5){return _1("dijit.form.TimeTextBox",_5,{baseClass:"dijitTextBox dijitComboBox dijitTimeTextBox",popupClass:_4,_selector:"time",value:new Date(""),_onKey:function(_6){if(this.disabled||this.readOnly){return;}this.inherited(arguments);switch(_6.keyCode){case _2.ENTER:case _2.TAB:case _2.ESCAPE:case _2.DOWN_ARROW:case _2.UP_ARROW:break;default:setTimeout(_3.hitch(this,function(){var _7=this.get("displayedValue");this.filterString=(_7&&!this.parse(_7,this.constraints))?_7.toLowerCase():"";if(this._opened){this.closeDropDown();}this.openDropDown();}),0);}}});}); \ No newline at end of file
+define("dijit/form/TimeTextBox",["dojo/_base/declare","dojo/keys","dojo/_base/lang","../_TimePicker","./_DateTimeTextBox"],function(_1,_2,_3,_4,_5){return _1("dijit.form.TimeTextBox",_5,{baseClass:"dijitTextBox dijitComboBox dijitTimeTextBox",popupClass:_4,_selector:"time",value:new Date(""),_onKey:function(_6){if(this.disabled||this.readOnly){return;}this.inherited(arguments);switch(_6.keyCode){case _2.ENTER:case _2.TAB:case _2.ESCAPE:case _2.DOWN_ARROW:case _2.UP_ARROW:break;default:this.defer(function(){var _7=this.get("displayedValue");this.filterString=(_7&&!this.parse(_7,this.constraints))?_7.toLowerCase():"";if(this._opened){this.closeDropDown();}this.openDropDown();});}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/ValidationTextBox.js b/lib/dijit/form/ValidationTextBox.js
index 5ca837ac1..4cbba1fb9 100644
--- a/lib/dijit/form/ValidationTextBox.js
+++ b/lib/dijit/form/ValidationTextBox.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/ValidationTextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"}});define("dijit/form/ValidationTextBox",["dojo/_base/declare","dojo/i18n","./TextBox","../Tooltip","dojo/text!./templates/ValidationTextBox.html","dojo/i18n!./nls/validate"],function(_1,_2,_3,_4,_5){return _1("dijit.form.ValidationTextBox",_3,{templateString:_5,baseClass:"dijitTextBox dijitValidationTextBox",required:false,promptMessage:"",invalidMessage:"$_unset_$",missingMessage:"$_unset_$",message:"",constraints:{},regExp:".*",regExpGen:function(){return this.regExp;},state:"",tooltipPosition:[],_setValueAttr:function(){this.inherited(arguments);this.validate(this.focused);},validator:function(_6,_7){return (new RegExp("^(?:"+this.regExpGen(_7)+")"+(this.required?"":"?")+"$")).test(_6)&&(!this.required||!this._isEmpty(_6))&&(this._isEmpty(_6)||this.parse(_6,_7)!==undefined);},_isValidSubset:function(){return this.textbox.value.search(this._partialre)==0;},isValid:function(){return this.validator(this.textbox.value,this.constraints);},_isEmpty:function(_8){return (this.trim?/^\s*$/:/^$/).test(_8);},getErrorMessage:function(){return (this.required&&this._isEmpty(this.textbox.value))?this.missingMessage:this.invalidMessage;},getPromptMessage:function(){return this.promptMessage;},_maskValidSubsetError:true,validate:function(_9){var _a="";var _b=this.disabled||this.isValid(_9);if(_b){this._maskValidSubsetError=true;}var _c=this._isEmpty(this.textbox.value);var _d=!_b&&_9&&this._isValidSubset();this._set("state",_b?"":(((((!this._hasBeenBlurred||_9)&&_c)||_d)&&this._maskValidSubsetError)?"Incomplete":"Error"));this.focusNode.setAttribute("aria-invalid",_b?"false":"true");if(this.state=="Error"){this._maskValidSubsetError=_9&&_d;_a=this.getErrorMessage(_9);}else{if(this.state=="Incomplete"){_a=this.getPromptMessage(_9);this._maskValidSubsetError=!this._hasBeenBlurred||_9;}else{if(_c){_a=this.getPromptMessage(_9);}}}this.set("message",_a);return _b;},displayMessage:function(_e){if(_e&&this.focused){_4.show(_e,this.domNode,this.tooltipPosition,!this.isLeftToRight());}else{_4.hide(this.domNode);}},_refreshState:function(){this.validate(this.focused);this.inherited(arguments);},constructor:function(){this.constraints={};},_setConstraintsAttr:function(_f){if(!_f.locale&&this.lang){_f.locale=this.lang;}this._set("constraints",_f);this._computePartialRE();},_computePartialRE:function(){var p=this.regExpGen(this.constraints);this.regExp=p;var _10="";if(p!=".*"){this.regExp.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,function(re){switch(re.charAt(0)){case "{":case "+":case "?":case "*":case "^":case "$":case "|":case "(":_10+=re;break;case ")":_10+="|$)";break;default:_10+="(?:"+re+"|$)";break;}});}try{"".search(_10);}catch(e){_10=this.regExp;console.warn("RegExp error in "+this.declaredClass+": "+this.regExp);}this._partialre="^(?:"+_10+")$";},postMixInProperties:function(){this.inherited(arguments);this.messages=_2.getLocalization("dijit.form","validate",this.lang);if(this.invalidMessage=="$_unset_$"){this.invalidMessage=this.messages.invalidMessage;}if(!this.invalidMessage){this.invalidMessage=this.promptMessage;}if(this.missingMessage=="$_unset_$"){this.missingMessage=this.messages.missingMessage;}if(!this.missingMessage){this.missingMessage=this.invalidMessage;}this._setConstraintsAttr(this.constraints);},_setDisabledAttr:function(_11){this.inherited(arguments);this._refreshState();},_setRequiredAttr:function(_12){this._set("required",_12);this.focusNode.setAttribute("aria-required",_12);this._refreshState();},_setMessageAttr:function(_13){this._set("message",_13);this.displayMessage(_13);},reset:function(){this._maskValidSubsetError=true;this.inherited(arguments);},_onBlur:function(){this.displayMessage("");this.inherited(arguments);}});}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/ValidationTextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"}});define("dijit/form/ValidationTextBox",["dojo/_base/declare","dojo/_base/kernel","dojo/i18n","./TextBox","../Tooltip","dojo/text!./templates/ValidationTextBox.html","dojo/i18n!./nls/validate"],function(_1,_2,_3,_4,_5,_6){var _7;return _7=_1("dijit.form.ValidationTextBox",_4,{templateString:_6,required:false,promptMessage:"",invalidMessage:"$_unset_$",missingMessage:"$_unset_$",message:"",constraints:{},pattern:".*",regExp:"",regExpGen:function(){},state:"",tooltipPosition:[],_deprecateRegExp:function(_8,_9){if(_9!=_7.prototype[_8]){_2.deprecated("ValidationTextBox id="+this.id+", set('"+_8+"', ...) is deprecated. Use set('pattern', ...) instead.","","2.0");this.set("pattern",_9);}},_setRegExpGenAttr:function(_a){this._deprecateRegExp("regExpGen",_a);this.regExpGen=this._getPatternAttr;},_setRegExpAttr:function(_b){this._deprecateRegExp("regExp",_b);},_setValueAttr:function(){this.inherited(arguments);this.validate(this.focused);},validator:function(_c,_d){return (new RegExp("^(?:"+this._getPatternAttr(_d)+")"+(this.required?"":"?")+"$")).test(_c)&&(!this.required||!this._isEmpty(_c))&&(this._isEmpty(_c)||this.parse(_c,_d)!==undefined);},_isValidSubset:function(){return this.textbox.value.search(this._partialre)==0;},isValid:function(){return this.validator(this.textbox.value,this.constraints);},_isEmpty:function(_e){return (this.trim?/^\s*$/:/^$/).test(_e);},getErrorMessage:function(){var _f=this.invalidMessage=="$_unset_$"?this.messages.invalidMessage:!this.invalidMessage?this.promptMessage:this.invalidMessage;var _10=this.missingMessage=="$_unset_$"?this.messages.missingMessage:!this.missingMessage?_f:this.missingMessage;return (this.required&&this._isEmpty(this.textbox.value))?_10:_f;},getPromptMessage:function(){return this.promptMessage;},_maskValidSubsetError:true,validate:function(_11){var _12="";var _13=this.disabled||this.isValid(_11);if(_13){this._maskValidSubsetError=true;}var _14=this._isEmpty(this.textbox.value);var _15=!_13&&_11&&this._isValidSubset();this._set("state",_13?"":(((((!this._hasBeenBlurred||_11)&&_14)||_15)&&(this._maskValidSubsetError||(_15&&!this._hasBeenBlurred&&_11)))?"Incomplete":"Error"));this.focusNode.setAttribute("aria-invalid",_13?"false":"true");if(this.state=="Error"){this._maskValidSubsetError=_11&&_15;_12=this.getErrorMessage(_11);}else{if(this.state=="Incomplete"){_12=this.getPromptMessage(_11);this._maskValidSubsetError=!this._hasBeenBlurred||_11;}else{if(_14){_12=this.getPromptMessage(_11);}}}this.set("message",_12);return _13;},displayMessage:function(_16){if(_16&&this.focused){_5.show(_16,this.domNode,this.tooltipPosition,!this.isLeftToRight());}else{_5.hide(this.domNode);}},_refreshState:function(){if(this._created){this.validate(this.focused);}this.inherited(arguments);},constructor:function(_17){this.constraints={};this.baseClass+=" dijitValidationTextBox";},startup:function(){this.inherited(arguments);this._refreshState();},_setConstraintsAttr:function(_18){if(!_18.locale&&this.lang){_18.locale=this.lang;}this._set("constraints",_18);this._refreshState();},_setPatternAttr:function(_19){this._set("pattern",_19);},_getPatternAttr:function(_1a){var p=this.pattern;var _1b=(typeof p).toLowerCase();if(_1b=="function"){p=this.pattern(_1a||this.constraints);}if(p!=this._lastRegExp){var _1c="";this._lastRegExp=p;if(p!=".*"){p.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,function(re){switch(re.charAt(0)){case "{":case "+":case "?":case "*":case "^":case "$":case "|":case "(":_1c+=re;break;case ")":_1c+="|$)";break;default:_1c+="(?:"+re+"|$)";break;}});}try{"".search(_1c);}catch(e){_1c=this.pattern;console.warn("RegExp error in "+this.declaredClass+": "+this.pattern);}this._partialre="^(?:"+_1c+")$";}return p;},postMixInProperties:function(){this.inherited(arguments);this.messages=_3.getLocalization("dijit.form","validate",this.lang);this._setConstraintsAttr(this.constraints);},_setDisabledAttr:function(_1d){this.inherited(arguments);this._refreshState();},_setRequiredAttr:function(_1e){this._set("required",_1e);this.focusNode.setAttribute("aria-required",_1e);this._refreshState();},_setMessageAttr:function(_1f){this._set("message",_1f);this.displayMessage(_1f);},reset:function(){this._maskValidSubsetError=true;this.inherited(arguments);},_onBlur:function(){this.displayMessage("");this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/VerticalSlider.js b/lib/dijit/form/VerticalSlider.js
index aae7524fb..77ee3cf4e 100644
--- a/lib/dijit/form/VerticalSlider.js
+++ b/lib/dijit/form/VerticalSlider.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/VerticalSlider.html":"<table class=\"dijit dijitReset dijitSlider dijitSliderV\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" data-dojo-attach-event=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderIncrementIconV\" style=\"display:none\" data-dojo-attach-point=\"decrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderTopBumper\" data-dojo-attach-event=\"press:_onClkIncBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td data-dojo-attach-point=\"leftDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV\"></td\n\t\t><td class=\"dijitReset dijitSliderDecorationC\" style=\"height:100%;\"\n\t\t\t><input data-dojo-attach-point=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><center class=\"dijitReset dijitSliderBarContainerV\" role=\"presentation\" data-dojo-attach-point=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV\" data-dojo-attach-event=\"press:_onBarClick\"><!--#5629--></div\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"progressBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV\" data-dojo-attach-event=\"press:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableV\" style=\"vertical-align:top;\"\n\t\t\t\t\t\t><div data-dojo-attach-point=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleV\" data-dojo-attach-event=\"press:_onHandleClick\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t></center\n\t\t></td\n\t\t><td data-dojo-attach-point=\"containerNode,rightDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderBottomBumper\" data-dojo-attach-event=\"press:_onClkDecBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderDecrementIconV\" style=\"display:none\" data-dojo-attach-point=\"incrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n></table>\n"}});define("dijit/form/VerticalSlider",["dojo/_base/declare","./HorizontalSlider","dojo/text!./templates/VerticalSlider.html"],function(_1,_2,_3){return _1("dijit.form.VerticalSlider",_2,{templateString:_3,_mousePixelCoord:"pageY",_pixelCount:"h",_startingPixelCoord:"y",_handleOffsetCoord:"top",_progressPixelSize:"height",_descending:true,_isReversed:function(){return this._descending;}});}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/VerticalSlider.html":"<table class=\"dijit dijitReset dijitSlider dijitSliderV\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" data-dojo-attach-event=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\trole=\"presentation\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderIncrementIconV\" style=\"display:none\" data-dojo-attach-point=\"decrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderTopBumper\" data-dojo-attach-event=\"press:_onClkIncBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td data-dojo-attach-point=\"leftDecoration\" class=\"dijitReset dijitInline dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV\"></td\n\t\t><td class=\"dijitReset dijitSliderDecorationC\" style=\"height:100%;\"\n\t\t\t><input data-dojo-attach-point=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><center class=\"dijitReset dijitSliderBarContainerV\" role=\"presentation\" data-dojo-attach-point=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV\" data-dojo-attach-event=\"press:_onBarClick\"><!--#5629--></div\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"progressBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV\" data-dojo-attach-event=\"press:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableV\" style=\"vertical-align:top;\"\n\t\t\t\t\t\t><div data-dojo-attach-point=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleV\" data-dojo-attach-event=\"press:_onHandleClick\" role=\"slider\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t></center\n\t\t></td\n\t\t><td data-dojo-attach-point=\"containerNode,rightDecoration\" class=\"dijitReset dijitInline dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderBottomBumper\" data-dojo-attach-event=\"press:_onClkDecBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderDecrementIconV\" style=\"display:none\" data-dojo-attach-point=\"incrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n></table>\n"}});define("dijit/form/VerticalSlider",["dojo/_base/declare","./HorizontalSlider","dojo/text!./templates/VerticalSlider.html"],function(_1,_2,_3){return _1("dijit.form.VerticalSlider",_2,{templateString:_3,_mousePixelCoord:"pageY",_pixelCount:"h",_startingPixelCoord:"y",_handleOffsetCoord:"top",_progressPixelSize:"height",_descending:true,_isReversed:function(){return this._descending;}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_AutoCompleterMixin.js b/lib/dijit/form/_AutoCompleterMixin.js
index 2487e0277..e812f7688 100644
--- a/lib/dijit/form/_AutoCompleterMixin.js
+++ b/lib/dijit/form/_AutoCompleterMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_AutoCompleterMixin",["dojo/_base/connect","dojo/data/util/filter","dojo/_base/declare","dojo/_base/Deferred","dojo/dom-attr","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/query","dojo/regexp","dojo/_base/sniff","dojo/string","dojo/_base/window","./DataList","../registry","./_TextBoxMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10){return _3("dijit.form._AutoCompleterMixin",null,{item:null,pageSize:Infinity,store:null,fetchProperties:{},query:{},autoComplete:true,highlightMatch:"first",searchDelay:100,searchAttr:"name",labelAttr:"",labelType:"text",queryExpr:"${0}*",ignoreCase:true,maxHeight:-1,_stopClickEvents:false,_getCaretPos:function(_11){var pos=0;if(typeof (_11.selectionStart)=="number"){pos=_11.selectionStart;}else{if(_b("ie")){var tr=_d.doc.selection.createRange().duplicate();var ntr=_11.createTextRange();tr.move("character",0);ntr.move("character",0);try{ntr.setEndPoint("EndToEnd",tr);pos=String(ntr.text).replace(/\r/g,"").length;}catch(e){}}}return pos;},_setCaretPos:function(_12,_13){_13=parseInt(_13);_10.selectInputText(_12,_13,_13);},_setDisabledAttr:function(_14){this.inherited(arguments);this.domNode.setAttribute("aria-disabled",_14);},_abortQuery:function(){if(this.searchTimer){clearTimeout(this.searchTimer);this.searchTimer=null;}if(this._fetchHandle){if(this._fetchHandle.cancel){this._cancelingQuery=true;this._fetchHandle.cancel();this._cancelingQuery=false;}this._fetchHandle=null;}},_onInput:function(evt){this.inherited(arguments);if(evt.charOrCode==229){this._onKey(evt);}},_onKey:function(evt){if(this.disabled||this.readOnly){return;}var key=evt.charOrCode;if(evt.altKey||((evt.ctrlKey||evt.metaKey)&&(key!="x"&&key!="v"))||key==_7.SHIFT){return;}var _15=false;var pw=this.dropDown;var _16=null;this._prev_key_backspace=false;this._abortQuery();this.inherited(arguments);if(this._opened){_16=pw.getHighlightedOption();}switch(key){case _7.PAGE_DOWN:case _7.DOWN_ARROW:case _7.PAGE_UP:case _7.UP_ARROW:if(this._opened){this._announceOption(_16);}_6.stop(evt);break;case _7.ENTER:if(_16){if(_16==pw.nextButton){this._nextSearch(1);_6.stop(evt);break;}else{if(_16==pw.previousButton){this._nextSearch(-1);_6.stop(evt);break;}}}else{this._setBlurValue();this._setCaretPos(this.focusNode,this.focusNode.value.length);}if(this._opened||this._fetchHandle){_6.stop(evt);}case _7.TAB:var _17=this.get("displayedValue");if(pw&&(_17==pw._messages["previousMessage"]||_17==pw._messages["nextMessage"])){break;}if(_16){this._selectOption(_16);}case _7.ESCAPE:if(this._opened){this._lastQuery=null;this.closeDropDown();}break;case " ":if(_16){_6.stop(evt);this._selectOption(_16);this.closeDropDown();}else{_15=true;}break;case _7.DELETE:case _7.BACKSPACE:this._prev_key_backspace=true;_15=true;break;default:_15=typeof key=="string"||key==229;}if(_15){this.item=undefined;this.searchTimer=setTimeout(_8.hitch(this,"_startSearchFromInput"),1);}},_autoCompleteText:function(_18){var fn=this.focusNode;_10.selectInputText(fn,fn.value.length);var _19=this.ignoreCase?"toLowerCase":"substr";if(_18[_19](0).indexOf(this.focusNode.value[_19](0))==0){var _1a=this.autoComplete?this._getCaretPos(fn):fn.value.length;if((_1a+1)>fn.value.length){fn.value=_18;_10.selectInputText(fn,_1a);}}else{fn.value=_18;_10.selectInputText(fn);}},_openResultList:function(_1b,_1c,_1d){this._fetchHandle=null;if(this.disabled||this.readOnly||(_1c[this.searchAttr]!==this._lastQuery)){return;}var _1e=this.dropDown.getHighlightedOption();this.dropDown.clearResultList();if(!_1b.length&&_1d.start==0){this.closeDropDown();return;}var _1f=this.dropDown.createOptions(_1b,_1d,_8.hitch(this,"_getMenuLabelFromItem"));this._showResultList();if(_1d.direction){if(1==_1d.direction){this.dropDown.highlightFirstOption();}else{if(-1==_1d.direction){this.dropDown.highlightLastOption();}}if(_1e){this._announceOption(this.dropDown.getHighlightedOption());}}else{if(this.autoComplete&&!this._prev_key_backspace&&!/^[*]+$/.test(_1c[this.searchAttr].toString())){this._announceOption(_1f[1]);}}},_showResultList:function(){this.closeDropDown(true);this.openDropDown();this.domNode.setAttribute("aria-expanded","true");},loadDropDown:function(){this._startSearchAll();},isLoaded:function(){return false;},closeDropDown:function(){this._abortQuery();if(this._opened){this.inherited(arguments);this.domNode.setAttribute("aria-expanded","false");this.focusNode.removeAttribute("aria-activedescendant");}},_setBlurValue:function(){var _20=this.get("displayedValue");var pw=this.dropDown;if(pw&&(_20==pw._messages["previousMessage"]||_20==pw._messages["nextMessage"])){this._setValueAttr(this._lastValueReported,true);}else{if(typeof this.item=="undefined"){this.item=null;this.set("displayedValue",_20);}else{if(this.value!=this._lastValueReported){this._handleOnChange(this.value,true);}this._refreshState();}}},_setItemAttr:function(_21,_22,_23){var _24="";if(_21){if(!_23){_23=this.store._oldAPI?this.store.getValue(_21,this.searchAttr):_21[this.searchAttr];}_24=this._getValueField()!=this.searchAttr?this.store.getIdentity(_21):_23;}this.set("value",_24,_22,_23,_21);},_announceOption:function(_25){if(!_25){return;}var _26;if(_25==this.dropDown.nextButton||_25==this.dropDown.previousButton){_26=_25.innerHTML;this.item=undefined;this.value="";}else{_26=(this.store._oldAPI?this.store.getValue(_25.item,this.searchAttr):_25.item[this.searchAttr]).toString();this.set("item",_25.item,false,_26);}this.focusNode.value=this.focusNode.value.substring(0,this._lastInput.length);this.focusNode.setAttribute("aria-activedescendant",_5.get(_25,"id"));this._autoCompleteText(_26);},_selectOption:function(_27){this.closeDropDown();if(_27){this._announceOption(_27);}this._setCaretPos(this.focusNode,this.focusNode.value.length);this._handleOnChange(this.value,true);},_startSearchAll:function(){this._startSearch("");},_startSearchFromInput:function(){this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g,"\\$1"));},_getQueryString:function(_28){return _c.substitute(this.queryExpr,[_28]);},_startSearch:function(key){if(!this.dropDown){var _29=this.id+"_popup",_2a=_8.isString(this.dropDownClass)?_8.getObject(this.dropDownClass,false):this.dropDownClass;this.dropDown=new _2a({onChange:_8.hitch(this,this._selectOption),id:_29,dir:this.dir,textDir:this.textDir});this.focusNode.removeAttribute("aria-activedescendant");this.textbox.setAttribute("aria-owns",_29);}this._lastInput=key;var _2b=_8.clone(this.query);var _2c={start:0,count:this.pageSize,queryOptions:{ignoreCase:this.ignoreCase,deep:true}};_8.mixin(_2c,this.fetchProperties);var qs=this._getQueryString(key),q;if(this.store._oldAPI){q=qs;}else{q=_2.patternToRegExp(qs,this.ignoreCase);q.toString=function(){return qs;};}this._lastQuery=_2b[this.searchAttr]=q;var _2d=this,_2e=function(){var _2f=_2d._fetchHandle=_2d.store.query(_2b,_2c);_4.when(_2f,function(res){_2d._fetchHandle=null;res.total=_2f.total;_2d._openResultList(res,_2b,_2c);},function(err){_2d._fetchHandle=null;if(!_2d._cancelingQuery){console.error(_2d.declaredClass+" "+err.toString());_2d.closeDropDown();}});};this.searchTimer=setTimeout(_8.hitch(this,function(_30,_31){this.searchTimer=null;_2e();this._nextSearch=this.dropDown.onPage=function(_32){_2c.start+=_2c.count*_32;_2c.direction=_32;_2e();_31.focus();};},_2b,this),this.searchDelay);},_getValueField:function(){return this.searchAttr;},constructor:function(){this.query={};this.fetchProperties={};},postMixInProperties:function(){if(!this.store){var _33=this.srcNodeRef;var _34=this.list;if(_34){this.store=_f.byId(_34);}else{this.store=new _e({},_33);}if(!("value" in this.params)){var _35=(this.item=this.store.fetchSelectedItem());if(_35){var _36=this._getValueField();this.value=this.store._oldAPI?this.store.getValue(_35,_36):_35[_36];}}}this.inherited(arguments);},postCreate:function(){var _37=_9("label[for=\""+this.id+"\"]");if(_37.length){_37[0].id=(this.id+"_label");this.domNode.setAttribute("aria-labelledby",_37[0].id);}this.inherited(arguments);},_getMenuLabelFromItem:function(_38){var _39=this.labelFunc(_38,this.store),_3a=this.labelType;if(this.highlightMatch!="none"&&this.labelType=="text"&&this._lastInput){_39=this.doHighlight(_39,this._escapeHtml(this._lastInput));_3a="html";}return {html:_3a=="html",label:_39};},doHighlight:function(_3b,_3c){var _3d=(this.ignoreCase?"i":"")+(this.highlightMatch=="all"?"g":""),i=this.queryExpr.indexOf("${0}");_3c=_a.escapeString(_3c);return this._escapeHtml(_3b).replace(new RegExp((i==0?"^":"")+"("+_3c+")"+(i==(this.queryExpr.length-4)?"$":""),_3d),"<span class=\"dijitComboBoxHighlightMatch\">$1</span>");},_escapeHtml:function(str){str=String(str).replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;");return str;},reset:function(){this.item=null;this.inherited(arguments);},labelFunc:function(_3e,_3f){return (_3f._oldAPI?_3f.getValue(_3e,this.labelAttr||this.searchAttr):_3e[this.labelAttr||this.searchAttr]).toString();},_setValueAttr:function(_40,_41,_42,_43){this._set("item",_43||null);if(!_40){_40="";}this.inherited(arguments);},_setTextDirAttr:function(_44){this.inherited(arguments);if(this.dropDown){this.dropDown._set("textDir",_44);}}});}); \ No newline at end of file
+define("dijit/form/_AutoCompleterMixin",["dojo/data/util/filter","dojo/_base/declare","dojo/dom-attr","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/query","dojo/regexp","dojo/sniff","dojo/string","./DataList","../registry","./_TextBoxMixin","./_SearchMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e){return _2("dijit.form._AutoCompleterMixin",_e,{item:null,autoComplete:true,highlightMatch:"first",labelAttr:"",labelType:"text",maxHeight:-1,_stopClickEvents:false,_getCaretPos:function(_f){var pos=0;if(typeof (_f.selectionStart)=="number"){pos=_f.selectionStart;}else{if(_9("ie")){var tr=_f.ownerDocument.selection.createRange().duplicate();var ntr=_f.createTextRange();tr.move("character",0);ntr.move("character",0);try{ntr.setEndPoint("EndToEnd",tr);pos=String(ntr.text).replace(/\r/g,"").length;}catch(e){}}}return pos;},_setCaretPos:function(_10,_11){_11=parseInt(_11);_d.selectInputText(_10,_11,_11);},_setDisabledAttr:function(_12){this.inherited(arguments);this.domNode.setAttribute("aria-disabled",_12?"true":"false");},_onKey:function(evt){if(evt.charCode>=32){return;}var key=evt.charCode||evt.keyCode;if(key==_5.ALT||key==_5.CTRL||key==_5.META||key==_5.SHIFT){return;}var pw=this.dropDown;var _13=null;this._abortQuery();this.inherited(arguments);if(evt.altKey||evt.ctrlKey||evt.metaKey){return;}if(this._opened){_13=pw.getHighlightedOption();}switch(key){case _5.PAGE_DOWN:case _5.DOWN_ARROW:case _5.PAGE_UP:case _5.UP_ARROW:if(this._opened){this._announceOption(_13);}_4.stop(evt);break;case _5.ENTER:if(_13){if(_13==pw.nextButton){this._nextSearch(1);_4.stop(evt);break;}else{if(_13==pw.previousButton){this._nextSearch(-1);_4.stop(evt);break;}}_4.stop(evt);}else{this._setBlurValue();this._setCaretPos(this.focusNode,this.focusNode.value.length);}case _5.TAB:var _14=this.get("displayedValue");if(pw&&(_14==pw._messages["previousMessage"]||_14==pw._messages["nextMessage"])){break;}if(_13){this._selectOption(_13);}case _5.ESCAPE:if(this._opened){this._lastQuery=null;this.closeDropDown();}break;}},_autoCompleteText:function(_15){var fn=this.focusNode;_d.selectInputText(fn,fn.value.length);var _16=this.ignoreCase?"toLowerCase":"substr";if(_15[_16](0).indexOf(this.focusNode.value[_16](0))==0){var _17=this.autoComplete?this._getCaretPos(fn):fn.value.length;if((_17+1)>fn.value.length){fn.value=_15;_d.selectInputText(fn,_17);}}else{fn.value=_15;_d.selectInputText(fn);}},_openResultList:function(_18,_19,_1a){var _1b=this.dropDown.getHighlightedOption();this.dropDown.clearResultList();if(!_18.length&&_1a.start==0){this.closeDropDown();return;}this._nextSearch=this.dropDown.onPage=_6.hitch(this,function(_1c){_18.nextPage(_1c!==-1);this.focus();});this.dropDown.createOptions(_18,_1a,_6.hitch(this,"_getMenuLabelFromItem"));this._showResultList();if("direction" in _1a){if(_1a.direction){this.dropDown.highlightFirstOption();}else{if(!_1a.direction){this.dropDown.highlightLastOption();}}if(_1b){this._announceOption(this.dropDown.getHighlightedOption());}}else{if(this.autoComplete&&!this._prev_key_backspace&&!/^[*]+$/.test(_19[this.searchAttr].toString())){this._announceOption(this.dropDown.containerNode.firstChild.nextSibling);}}},_showResultList:function(){this.closeDropDown(true);this.openDropDown();this.domNode.setAttribute("aria-expanded","true");},loadDropDown:function(){this._startSearchAll();},isLoaded:function(){return false;},closeDropDown:function(){this._abortQuery();if(this._opened){this.inherited(arguments);this.domNode.setAttribute("aria-expanded","false");this.focusNode.removeAttribute("aria-activedescendant");}},_setBlurValue:function(){var _1d=this.get("displayedValue");var pw=this.dropDown;if(pw&&(_1d==pw._messages["previousMessage"]||_1d==pw._messages["nextMessage"])){this._setValueAttr(this._lastValueReported,true);}else{if(typeof this.item=="undefined"){this.item=null;this.set("displayedValue",_1d);}else{if(this.value!=this._lastValueReported){this._handleOnChange(this.value,true);}this._refreshState();}}},_setItemAttr:function(_1e,_1f,_20){var _21="";if(_1e){if(!_20){_20=this.store._oldAPI?this.store.getValue(_1e,this.searchAttr):_1e[this.searchAttr];}_21=this._getValueField()!=this.searchAttr?this.store.getIdentity(_1e):_20;}this.set("value",_21,_1f,_20,_1e);},_announceOption:function(_22){if(!_22){return;}var _23;if(_22==this.dropDown.nextButton||_22==this.dropDown.previousButton){_23=_22.innerHTML;this.item=undefined;this.value="";}else{var _24=this.dropDown.items[_22.getAttribute("item")];_23=(this.store._oldAPI?this.store.getValue(_24,this.searchAttr):_24[this.searchAttr]).toString();this.set("item",_24,false,_23);}this.focusNode.value=this.focusNode.value.substring(0,this._lastInput.length);this.focusNode.setAttribute("aria-activedescendant",_3.get(_22,"id"));this._autoCompleteText(_23);},_selectOption:function(_25){this.closeDropDown();if(_25){this._announceOption(_25);}this._setCaretPos(this.focusNode,this.focusNode.value.length);this._handleOnChange(this.value,true);},_startSearchAll:function(){this._startSearch("");},_startSearchFromInput:function(){this.item=undefined;this.inherited(arguments);},_startSearch:function(key){if(!this.dropDown){var _26=this.id+"_popup",_27=_6.isString(this.dropDownClass)?_6.getObject(this.dropDownClass,false):this.dropDownClass;this.dropDown=new _27({onChange:_6.hitch(this,this._selectOption),id:_26,dir:this.dir,textDir:this.textDir});this.focusNode.removeAttribute("aria-activedescendant");this.textbox.setAttribute("aria-owns",_26);}this._lastInput=key;this.inherited(arguments);},_getValueField:function(){return this.searchAttr;},postMixInProperties:function(){this.inherited(arguments);if(!this.store){var _28=this.srcNodeRef;this.store=new _b({},_28);if(!("value" in this.params)){var _29=(this.item=this.store.fetchSelectedItem());if(_29){var _2a=this._getValueField();this.value=this.store._oldAPI?this.store.getValue(_29,_2a):_29[_2a];}}}},postCreate:function(){var _2b=_7("label[for=\""+this.id+"\"]");if(_2b.length){if(!_2b[0].id){_2b[0].id=this.id+"_label";}this.domNode.setAttribute("aria-labelledby",_2b[0].id);}this.inherited(arguments);this.connect(this,"onSearch","_openResultList");},_getMenuLabelFromItem:function(_2c){var _2d=this.labelFunc(_2c,this.store),_2e=this.labelType;if(this.highlightMatch!="none"&&this.labelType=="text"&&this._lastInput){_2d=this.doHighlight(_2d,this._lastInput);_2e="html";}return {html:_2e=="html",label:_2d};},doHighlight:function(_2f,_30){var _31=(this.ignoreCase?"i":"")+(this.highlightMatch=="all"?"g":""),i=this.queryExpr.indexOf("${0}");_30=_8.escapeString(_30);return this._escapeHtml(_2f.replace(new RegExp((i==0?"^":"")+"("+_30+")"+(i==(this.queryExpr.length-4)?"$":""),_31),"\uffff$1\uffff")).replace(/\uFFFF([^\uFFFF]+)\uFFFF/g,"<span class=\"dijitComboBoxHighlightMatch\">$1</span>");},_escapeHtml:function(str){str=String(str).replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;");return str;},reset:function(){this.item=null;this.inherited(arguments);},labelFunc:function(_32,_33){return (_33._oldAPI?_33.getValue(_32,this.labelAttr||this.searchAttr):_32[this.labelAttr||this.searchAttr]).toString();},_setValueAttr:function(_34,_35,_36,_37){this._set("item",_37||null);if(_34==null){_34="";}this.inherited(arguments);},_setTextDirAttr:function(_38){this.inherited(arguments);if(this.dropDown){this.dropDown._set("textDir",_38);}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_CheckBoxMixin.js b/lib/dijit/form/_CheckBoxMixin.js
index da6d96a2d..6d1cb635b 100644
--- a/lib/dijit/form/_CheckBoxMixin.js
+++ b/lib/dijit/form/_CheckBoxMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_CheckBoxMixin",["dojo/_base/declare","dojo/dom-attr","dojo/_base/event"],function(_1,_2,_3){return _1("dijit.form._CheckBoxMixin",null,{type:"checkbox",value:"on",readOnly:false,_aria_attr:"aria-checked",_setReadOnlyAttr:function(_4){this._set("readOnly",_4);_2.set(this.focusNode,"readOnly",_4);this.focusNode.setAttribute("aria-readonly",_4);},_setLabelAttr:undefined,postMixInProperties:function(){if(this.value==""){this.value="on";}this.inherited(arguments);},reset:function(){this.inherited(arguments);this._set("value",this.params.value||"on");_2.set(this.focusNode,"value",this.value);},_onClick:function(e){if(this.readOnly){_3.stop(e);return false;}return this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/form/_CheckBoxMixin",["dojo/_base/declare","dojo/dom-attr","dojo/_base/event"],function(_1,_2,_3){return _1("dijit.form._CheckBoxMixin",null,{type:"checkbox",value:"on",readOnly:false,_aria_attr:"aria-checked",_setReadOnlyAttr:function(_4){this._set("readOnly",_4);_2.set(this.focusNode,"readOnly",_4);},_setLabelAttr:undefined,_getSubmitValue:function(_5){return !_5&&_5!==0?"on":_5;},_setValueAttr:function(_6){_6=this._getSubmitValue(_6);this._set("value",_6);_2.set(this.focusNode,"value",_6);},reset:function(){this.inherited(arguments);this._set("value",this.params.value||"on");_2.set(this.focusNode,"value",this.value);},_onClick:function(e){if(this.readOnly){_3.stop(e);return false;}return this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_ComboBoxMenu.js b/lib/dijit/form/_ComboBoxMenu.js
index 419e28c54..3f07fd5af 100644
--- a/lib/dijit/form/_ComboBoxMenu.js
+++ b/lib/dijit/form/_ComboBoxMenu.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_ComboBoxMenu",["dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/keys","../_WidgetBase","../_TemplatedMixin","./_ComboBoxMenuMixin","./_ListMouseMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _1("dijit.form._ComboBoxMenu",[_6,_7,_9,_8],{templateString:"<div class='dijitReset dijitMenu' data-dojo-attach-point='containerNode' style='overflow: auto; overflow-x: hidden;'>"+"<div class='dijitMenuItem dijitMenuPreviousButton' data-dojo-attach-point='previousButton' role='option'></div>"+"<div class='dijitMenuItem dijitMenuNextButton' data-dojo-attach-point='nextButton' role='option'></div>"+"</div>",baseClass:"dijitComboBoxMenu",postCreate:function(){this.inherited(arguments);if(!this.isLeftToRight()){_2.add(this.previousButton,"dijitMenuItemRtl");_2.add(this.nextButton,"dijitMenuItemRtl");}},_createMenuItem:function(){return _3.create("div",{"class":"dijitReset dijitMenuItem"+(this.isLeftToRight()?"":" dijitMenuItemRtl"),role:"option"});},onHover:function(_a){_2.add(_a,"dijitMenuItemHover");},onUnhover:function(_b){_2.remove(_b,"dijitMenuItemHover");},onSelect:function(_c){_2.add(_c,"dijitMenuItemSelected");},onDeselect:function(_d){_2.remove(_d,"dijitMenuItemSelected");},_page:function(up){var _e=0;var _f=this.domNode.scrollTop;var _10=_4.get(this.domNode,"height");if(!this.getHighlightedOption()){this.selectNextNode();}while(_e<_10){var _11=this.getHighlightedOption();if(up){if(!_11.previousSibling||_11.previousSibling.style.display=="none"){break;}this.selectPreviousNode();}else{if(!_11.nextSibling||_11.nextSibling.style.display=="none"){break;}this.selectNextNode();}var _12=this.domNode.scrollTop;_e+=(_12-_f)*(up?-1:1);_f=_12;}},handleKey:function(evt){switch(evt.charOrCode){case _5.DOWN_ARROW:this.selectNextNode();return false;case _5.PAGE_DOWN:this._page(false);return false;case _5.UP_ARROW:this.selectPreviousNode();return false;case _5.PAGE_UP:this._page(true);return false;default:return true;}}});}); \ No newline at end of file
+define("dijit/form/_ComboBoxMenu",["dojo/_base/declare","dojo/dom-class","dojo/dom-style","dojo/keys","../_WidgetBase","../_TemplatedMixin","./_ComboBoxMenuMixin","./_ListMouseMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8){return _1("dijit.form._ComboBoxMenu",[_5,_6,_8,_7],{templateString:"<div class='dijitReset dijitMenu' data-dojo-attach-point='containerNode' style='overflow: auto; overflow-x: hidden;' role='listbox'>"+"<div class='dijitMenuItem dijitMenuPreviousButton' data-dojo-attach-point='previousButton' role='option'></div>"+"<div class='dijitMenuItem dijitMenuNextButton' data-dojo-attach-point='nextButton' role='option'></div>"+"</div>",baseClass:"dijitComboBoxMenu",postCreate:function(){this.inherited(arguments);if(!this.isLeftToRight()){_2.add(this.previousButton,"dijitMenuItemRtl");_2.add(this.nextButton,"dijitMenuItemRtl");}},_createMenuItem:function(){var _9=this.ownerDocument.createElement("div");_9.className="dijitReset dijitMenuItem"+(this.isLeftToRight()?"":" dijitMenuItemRtl");_9.setAttribute("role","option");return _9;},onHover:function(_a){_2.add(_a,"dijitMenuItemHover");},onUnhover:function(_b){_2.remove(_b,"dijitMenuItemHover");},onSelect:function(_c){_2.add(_c,"dijitMenuItemSelected");},onDeselect:function(_d){_2.remove(_d,"dijitMenuItemSelected");},_page:function(up){var _e=0;var _f=this.domNode.scrollTop;var _10=_3.get(this.domNode,"height");if(!this.getHighlightedOption()){this.selectNextNode();}while(_e<_10){var _11=this.getHighlightedOption();if(up){if(!_11.previousSibling||_11.previousSibling.style.display=="none"){break;}this.selectPreviousNode();}else{if(!_11.nextSibling||_11.nextSibling.style.display=="none"){break;}this.selectNextNode();}var _12=this.domNode.scrollTop;_e+=(_12-_f)*(up?-1:1);_f=_12;}},handleKey:function(evt){switch(evt.keyCode){case _4.DOWN_ARROW:this.selectNextNode();return false;case _4.PAGE_DOWN:this._page(false);return false;case _4.UP_ARROW:this.selectPreviousNode();return false;case _4.PAGE_UP:this._page(true);return false;default:return true;}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_ComboBoxMenuMixin.js b/lib/dijit/form/_ComboBoxMenuMixin.js
index 1dd299902..6b9d60a4b 100644
--- a/lib/dijit/form/_ComboBoxMenuMixin.js
+++ b/lib/dijit/form/_ComboBoxMenuMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_ComboBoxMenuMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/i18n","dojo/_base/window","dojo/i18n!./nls/ComboBox"],function(_1,_2,_3,_4,_5){return _2("dijit.form._ComboBoxMenuMixin",null,{_messages:null,postMixInProperties:function(){this.inherited(arguments);this._messages=_4.getLocalization("dijit.form","ComboBox",this.lang);},buildRendering:function(){this.inherited(arguments);this.previousButton.innerHTML=this._messages["previousMessage"];this.nextButton.innerHTML=this._messages["nextMessage"];},_setValueAttr:function(_6){this.value=_6;this.onChange(_6);},onClick:function(_7){if(_7==this.previousButton){this._setSelectedAttr(null);this.onPage(-1);}else{if(_7==this.nextButton){this._setSelectedAttr(null);this.onPage(1);}else{this.onChange(_7);}}},onChange:function(){},onPage:function(){},onClose:function(){this._setSelectedAttr(null);},_createOption:function(_8,_9){var _a=this._createMenuItem();var _b=_9(_8);if(_b.html){_a.innerHTML=_b.label;}else{_a.appendChild(_5.doc.createTextNode(_b.label));}if(_a.innerHTML==""){_a.innerHTML="&#160;";}this.applyTextDir(_a,(_a.innerText||_a.textContent||""));_a.item=_8;return _a;},createOptions:function(_c,_d,_e){this.previousButton.style.display=(_d.start==0)?"none":"";_3.set(this.previousButton,"id",this.id+"_prev");_1.forEach(_c,function(_f,i){var _10=this._createOption(_f,_e);_3.set(_10,"id",this.id+i);this.nextButton.parentNode.insertBefore(_10,this.nextButton);},this);var _11=false;if(_c.total&&!_c.total.then&&_c.total!=-1){if((_d.start+_d.count)<_c.total){_11=true;}else{if((_d.start+_d.count)>_c.total&&_d.count==_c.length){_11=true;}}}else{if(_d.count==_c.length){_11=true;}}this.nextButton.style.display=_11?"":"none";_3.set(this.nextButton,"id",this.id+"_next");return this.containerNode.childNodes;},clearResultList:function(){var _12=this.containerNode;while(_12.childNodes.length>2){_12.removeChild(_12.childNodes[_12.childNodes.length-2]);}this._setSelectedAttr(null);},highlightFirstOption:function(){this.selectFirstNode();},highlightLastOption:function(){this.selectLastNode();},selectFirstNode:function(){this.inherited(arguments);if(this.getHighlightedOption()==this.previousButton){this.selectNextNode();}},selectLastNode:function(){this.inherited(arguments);if(this.getHighlightedOption()==this.nextButton){this.selectPreviousNode();}},getHighlightedOption:function(){return this._getSelectedAttr();}});}); \ No newline at end of file
+define("dijit/form/_ComboBoxMenuMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/i18n","dojo/i18n!./nls/ComboBox"],function(_1,_2,_3,_4){return _2("dijit.form._ComboBoxMenuMixin",null,{_messages:null,postMixInProperties:function(){this.inherited(arguments);this._messages=_4.getLocalization("dijit.form","ComboBox",this.lang);},buildRendering:function(){this.inherited(arguments);this.previousButton.innerHTML=this._messages["previousMessage"];this.nextButton.innerHTML=this._messages["nextMessage"];},_setValueAttr:function(_5){this.value=_5;this.onChange(_5);},onClick:function(_6){if(_6==this.previousButton){this._setSelectedAttr(null);this.onPage(-1);}else{if(_6==this.nextButton){this._setSelectedAttr(null);this.onPage(1);}else{this.onChange(_6);}}},onChange:function(){},onPage:function(){},onClose:function(){this._setSelectedAttr(null);},_createOption:function(_7,_8){var _9=this._createMenuItem();var _a=_8(_7);if(_a.html){_9.innerHTML=_a.label;}else{_9.appendChild(_9.ownerDocument.createTextNode(_a.label));}if(_9.innerHTML==""){_9.innerHTML="&#160;";}this.applyTextDir(_9,(_9.innerText||_9.textContent||""));return _9;},createOptions:function(_b,_c,_d){this.items=_b;this.previousButton.style.display=(_c.start==0)?"none":"";_3.set(this.previousButton,"id",this.id+"_prev");_1.forEach(_b,function(_e,i){var _f=this._createOption(_e,_d);_f.setAttribute("item",i);_3.set(_f,"id",this.id+i);this.nextButton.parentNode.insertBefore(_f,this.nextButton);},this);var _10=false;if(_b.total&&!_b.total.then&&_b.total!=-1){if((_c.start+_c.count)<_b.total){_10=true;}else{if((_c.start+_c.count)>_b.total&&_c.count==_b.length){_10=true;}}}else{if(_c.count==_b.length){_10=true;}}this.nextButton.style.display=_10?"":"none";_3.set(this.nextButton,"id",this.id+"_next");},clearResultList:function(){var _11=this.containerNode;while(_11.childNodes.length>2){_11.removeChild(_11.childNodes[_11.childNodes.length-2]);}this._setSelectedAttr(null);},highlightFirstOption:function(){this.selectFirstNode();},highlightLastOption:function(){this.selectLastNode();},selectFirstNode:function(){this.inherited(arguments);if(this.getHighlightedOption()==this.previousButton){this.selectNextNode();}},selectLastNode:function(){this.inherited(arguments);if(this.getHighlightedOption()==this.nextButton){this.selectPreviousNode();}},getHighlightedOption:function(){return this.selected;}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_DateTimeTextBox.js b/lib/dijit/form/_DateTimeTextBox.js
index b79008509..dd1c17182 100644
--- a/lib/dijit/form/_DateTimeTextBox.js
+++ b/lib/dijit/form/_DateTimeTextBox.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/DropDownBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdata-dojo-attach-point=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdata-dojo-attach-point=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n"}});define("dijit/form/_DateTimeTextBox",["dojo/date","dojo/date/locale","dojo/date/stamp","dojo/_base/declare","dojo/_base/lang","./RangeBoundTextBox","../_HasDropDown","dojo/text!./templates/DropDownBox.html"],function(_1,_2,_3,_4,_5,_6,_7,_8){new Date("X");var _9=_4("dijit.form._DateTimeTextBox",[_6,_7],{templateString:_8,hasDownArrow:true,openOnClick:true,regExpGen:_2.regexp,datePackage:_1,postMixInProperties:function(){this.inherited(arguments);this._set("type","text");},compare:function(_a,_b){var _c=this._isInvalidDate(_a);var _d=this._isInvalidDate(_b);return _c?(_d?0:-1):(_d?1:_1.compare(_a,_b,this._selector));},forceWidth:true,format:function(_e,_f){if(!_e){return "";}return this.dateLocaleModule.format(_e,_f);},"parse":function(_10,_11){return this.dateLocaleModule.parse(_10,_11)||(this._isEmpty(_10)?null:undefined);},serialize:function(val,_12){if(val.toGregorian){val=val.toGregorian();}return _3.toISOString(val,_12);},dropDownDefaultValue:new Date(),value:new Date(""),_blankValue:null,popupClass:"",_selector:"",constructor:function(_13){this.datePackage=_13.datePackage||this.datePackage;this.dateFuncObj=typeof this.datePackage=="string"?_5.getObject(this.datePackage,false):this.datePackage;this.dateClassObj=this.dateFuncObj.Date||Date;this.dateLocaleModule=_5.getObject("locale",false,this.dateFuncObj);this.regExpGen=this.dateLocaleModule.regexp;this._invalidDate=this.constructor.prototype.value.toString();},buildRendering:function(){this.inherited(arguments);if(!this.hasDownArrow){this._buttonNode.style.display="none";}if(this.openOnClick||!this.hasDownArrow){this._buttonNode=this.domNode;this.baseClass+=" dijitComboBoxOpenOnClick";}},_setConstraintsAttr:function(_14){_14.selector=this._selector;_14.fullYear=true;var _15=_3.fromISOString;if(typeof _14.min=="string"){_14.min=_15(_14.min);}if(typeof _14.max=="string"){_14.max=_15(_14.max);}this.inherited(arguments);},_isInvalidDate:function(_16){return !_16||isNaN(_16)||typeof _16!="object"||_16.toString()==this._invalidDate;},_setValueAttr:function(_17,_18,_19){if(_17!==undefined){if(typeof _17=="string"){_17=_3.fromISOString(_17);}if(this._isInvalidDate(_17)){_17=null;}if(_17 instanceof Date&&!(this.dateClassObj instanceof Date)){_17=new this.dateClassObj(_17);}}this.inherited(arguments);if(this.value instanceof Date){this.filterString="";}if(this.dropDown){this.dropDown.set("value",_17,false);}},_set:function(_1a,_1b){if(_1a=="value"&&this.value instanceof Date&&this.compare(_1b,this.value)==0){return;}this.inherited(arguments);},_setDropDownDefaultValueAttr:function(val){if(this._isInvalidDate(val)){val=new this.dateClassObj();}this.dropDownDefaultValue=val;},openDropDown:function(_1c){if(this.dropDown){this.dropDown.destroy();}var _1d=_5.isString(this.popupClass)?_5.getObject(this.popupClass,false):this.popupClass,_1e=this,_1f=this.get("value");this.dropDown=new _1d({onChange:function(_20){_1e.set("value",_20,true);},id:this.id+"_popup",dir:_1e.dir,lang:_1e.lang,value:_1f,currentFocus:!this._isInvalidDate(_1f)?_1f:this.dropDownDefaultValue,constraints:_1e.constraints,filterString:_1e.filterString,datePackage:_1e.datePackage,isDisabledDate:function(_21){return !_1e.rangeCheck(_21,_1e.constraints);}});this.inherited(arguments);},_getDisplayedValueAttr:function(){return this.textbox.value;},_setDisplayedValueAttr:function(_22,_23){this._setValueAttr(this.parse(_22,this.constraints),_23,_22);}});return _9;}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/DropDownBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdata-dojo-attach-point=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"button presentation\" aria-hidden=\"true\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdata-dojo-attach-point=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n"}});define("dijit/form/_DateTimeTextBox",["dojo/date","dojo/date/locale","dojo/date/stamp","dojo/_base/declare","dojo/_base/lang","./RangeBoundTextBox","../_HasDropDown","dojo/text!./templates/DropDownBox.html"],function(_1,_2,_3,_4,_5,_6,_7,_8){new Date("X");var _9=_4("dijit.form._DateTimeTextBox",[_6,_7],{templateString:_8,hasDownArrow:true,cssStateNodes:{"_buttonNode":"dijitDownArrowButton"},pattern:_2.regexp,datePackage:"",postMixInProperties:function(){this.inherited(arguments);this._set("type","text");},compare:function(_a,_b){var _c=this._isInvalidDate(_a);var _d=this._isInvalidDate(_b);return _c?(_d?0:-1):(_d?1:_1.compare(_a,_b,this._selector));},forceWidth:true,format:function(_e,_f){if(!_e){return "";}return this.dateLocaleModule.format(_e,_f);},"parse":function(_10,_11){return this.dateLocaleModule.parse(_10,_11)||(this._isEmpty(_10)?null:undefined);},serialize:function(val,_12){if(val.toGregorian){val=val.toGregorian();}return _3.toISOString(val,_12);},dropDownDefaultValue:new Date(),value:new Date(""),_blankValue:null,popupClass:"",_selector:"",constructor:function(_13){this.dateModule=_13.datePackage?_5.getObject(_13.datePackage,false):_1;this.dateClassObj=this.dateModule.Date||Date;this.dateLocaleModule=_13.datePackage?_5.getObject(_13.datePackage+".locale",false):_2;this._set("pattern",this.dateLocaleModule.regexp);this._invalidDate=this.constructor.prototype.value.toString();},buildRendering:function(){this.inherited(arguments);if(!this.hasDownArrow){this._buttonNode.style.display="none";}if(!this.hasDownArrow){this._buttonNode=this.domNode;this.baseClass+=" dijitComboBoxOpenOnClick";}},_setConstraintsAttr:function(_14){_14.selector=this._selector;_14.fullYear=true;var _15=_3.fromISOString;if(typeof _14.min=="string"){_14.min=_15(_14.min);}if(typeof _14.max=="string"){_14.max=_15(_14.max);}this.inherited(arguments);},_isInvalidDate:function(_16){return !_16||isNaN(_16)||typeof _16!="object"||_16.toString()==this._invalidDate;},_setValueAttr:function(_17,_18,_19){if(_17!==undefined){if(typeof _17=="string"){_17=_3.fromISOString(_17);}if(this._isInvalidDate(_17)){_17=null;}if(_17 instanceof Date&&!(this.dateClassObj instanceof Date)){_17=new this.dateClassObj(_17);}}this.inherited(arguments);if(this.value instanceof Date){this.filterString="";}if(this.dropDown){this.dropDown.set("value",_17,false);}},_set:function(_1a,_1b){if(_1a=="value"&&this.value instanceof Date&&this.compare(_1b,this.value)==0){return;}this.inherited(arguments);},_setDropDownDefaultValueAttr:function(val){if(this._isInvalidDate(val)){val=new this.dateClassObj();}this.dropDownDefaultValue=val;},openDropDown:function(_1c){if(this.dropDown){this.dropDown.destroy();}var _1d=_5.isString(this.popupClass)?_5.getObject(this.popupClass,false):this.popupClass,_1e=this,_1f=this.get("value");this.dropDown=new _1d({onChange:function(_20){_1e.set("value",_20,true);},id:this.id+"_popup",dir:_1e.dir,lang:_1e.lang,value:_1f,currentFocus:!this._isInvalidDate(_1f)?_1f:this.dropDownDefaultValue,constraints:_1e.constraints,filterString:_1e.filterString,datePackage:_1e.params.datePackage,isDisabledDate:function(_21){return !_1e.rangeCheck(_21,_1e.constraints);}});this.inherited(arguments);},_getDisplayedValueAttr:function(){return this.textbox.value;},_setDisplayedValueAttr:function(_22,_23){this._setValueAttr(this.parse(_22,this.constraints),_23,_22);}});return _9;}); \ No newline at end of file
diff --git a/lib/dijit/form/_ExpandingTextAreaMixin.js b/lib/dijit/form/_ExpandingTextAreaMixin.js
index d5071e7ca..8d97659f3 100644
--- a/lib/dijit/form/_ExpandingTextAreaMixin.js
+++ b/lib/dijit/form/_ExpandingTextAreaMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_ExpandingTextAreaMixin",["dojo/_base/declare","dojo/dom-construct","dojo/_base/lang","dojo/_base/window"],function(_1,_2,_3,_4){var _5;return _1("dijit.form._ExpandingTextAreaMixin",null,{_setValueAttr:function(){this.inherited(arguments);this.resize();},postCreate:function(){this.inherited(arguments);var _6=this.textbox;if(_5==undefined){var te=_2.create("textarea",{rows:"5",cols:"20",value:" ",style:{zoom:1,overflow:"hidden",visibility:"hidden",position:"absolute",border:"0px solid black",padding:"0px"}},_4.body(),"last");_5=te.scrollHeight>=te.clientHeight;_4.body().removeChild(te);}this.connect(_6,"onscroll","_resizeLater");this.connect(_6,"onresize","_resizeLater");this.connect(_6,"onfocus","_resizeLater");_6.style.overflowY="hidden";this._estimateHeight();this._resizeLater();},_onInput:function(e){this.inherited(arguments);this.resize();},_estimateHeight:function(){var _7=this.textbox;_7.style.height="auto";_7.rows=(_7.value.match(/\n/g)||[]).length+2;},_resizeLater:function(){this.defer("resize");},resize:function(){function _8(){var _9=false;if(_a.value===""){_a.value=" ";_9=true;}var sh=_a.scrollHeight;if(_9){_a.value="";}return sh;};var _a=this.textbox;if(_a.style.overflowY=="hidden"){_a.scrollTop=0;}if(this.busyResizing){return;}this.busyResizing=true;if(_8()||_a.offsetHeight){var _b=_a.style.height;if(!(/px/.test(_b))){_b=_8();_a.rows=1;_a.style.height=_b+"px";}var _c=Math.max(Math.max(_a.offsetHeight,parseInt(_b))-_a.clientHeight,0)+_8();var _d=_c+"px";if(_d!=_a.style.height){_a.rows=1;_a.style.height=_d;}if(_5){var _e=_8(),_f=_e,_10=_a.style.minHeight,_11=4,_12;_a.style.minHeight=_d;_a.style.height="auto";while(_c>0){_a.style.minHeight=Math.max(_c-_11,4)+"px";_12=_8();var _13=_f-_12;_c-=_13;if(_13<_11){break;}_f=_12;_11<<=1;}_a.style.height=_c+"px";_a.style.minHeight=_10;}_a.style.overflowY=_8()>_a.clientHeight?"auto":"hidden";}else{this._estimateHeight();}this.busyResizing=false;}});}); \ No newline at end of file
+define("dijit/form/_ExpandingTextAreaMixin",["dojo/_base/declare","dojo/dom-construct","dojo/has","dojo/_base/lang","dojo/on","dojo/_base/window","../Viewport"],function(_1,_2,_3,_4,on,_5,_6){_3.add("textarea-needs-help-shrinking",function(){var _7=_5.body(),te=_2.create("textarea",{rows:"5",cols:"20",value:" ",style:{zoom:1,fontSize:"12px",height:"96px",overflow:"hidden",visibility:"hidden",position:"absolute",border:"5px solid white",margin:"0",padding:"0",boxSizing:"border-box",MsBoxSizing:"border-box",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box"}},_7,"last");var _8=te.scrollHeight>=te.clientHeight;_7.removeChild(te);return _8;});return _1("dijit.form._ExpandingTextAreaMixin",null,{_setValueAttr:function(){this.inherited(arguments);this.resize();},postCreate:function(){this.inherited(arguments);var _9=this.textbox;_9.style.overflowY="hidden";this.own(on(_9,"focus, resize",_4.hitch(this,"_resizeLater")));},startup:function(){this.inherited(arguments);this.own(_6.on("resize",_4.hitch(this,"_resizeLater")));this._resizeLater();},_onInput:function(e){this.inherited(arguments);this.resize();},_estimateHeight:function(){var _a=this.textbox;_a.rows=(_a.value.match(/\n/g)||[]).length+1;},_resizeLater:function(){this.defer("resize");},resize:function(){var _b=this.textbox;function _c(){var _d=false;if(_b.value===""){_b.value=" ";_d=true;}var sh=_b.scrollHeight;if(_d){_b.value="";}return sh;};if(_b.style.overflowY=="hidden"){_b.scrollTop=0;}if(this.busyResizing){return;}this.busyResizing=true;if(_c()||_b.offsetHeight){var _e=_c()+Math.max(_b.offsetHeight-_b.clientHeight,0);var _f=_e+"px";if(_f!=_b.style.height){_b.style.height=_f;_b.rows=1;}if(_3("textarea-needs-help-shrinking")){var _10=_c(),_11=_10,_12=_b.style.minHeight,_13=4,_14,_15=_b.scrollTop;_b.style.minHeight=_f;_b.style.height="auto";while(_e>0){_b.style.minHeight=Math.max(_e-_13,4)+"px";_14=_c();var _16=_11-_14;_e-=_16;if(_16<_13){break;}_11=_14;_13<<=1;}_b.style.height=_e+"px";_b.style.minHeight=_12;_b.scrollTop=_15;}_b.style.overflowY=_c()>_b.clientHeight?"auto":"hidden";if(_b.style.overflowY=="hidden"){_b.scrollTop=0;}}else{this._estimateHeight();}this.busyResizing=false;}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_FormMixin.js b/lib/dijit/form/_FormMixin.js
index 770ec2471..78aea1c0c 100644
--- a/lib/dijit/form/_FormMixin.js
+++ b/lib/dijit/form/_FormMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_FormMixin",["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","dojo/window"],function(_1,_2,_3,_4,_5){return _2("dijit.form._FormMixin",null,{state:"",_getDescendantFormWidgets:function(_6){var _7=[];_1.forEach(_6||this.getChildren(),function(_8){if("value" in _8){_7.push(_8);}else{_7=_7.concat(this._getDescendantFormWidgets(_8.getChildren()));}},this);return _7;},reset:function(){_1.forEach(this._getDescendantFormWidgets(),function(_9){if(_9.reset){_9.reset();}});},validate:function(){var _a=false;return _1.every(_1.map(this._getDescendantFormWidgets(),function(_b){_b._hasBeenBlurred=true;var _c=_b.disabled||!_b.validate||_b.validate();if(!_c&&!_a){_5.scrollIntoView(_b.containerNode||_b.domNode);_b.focus();_a=true;}return _c;}),function(_d){return _d;});},setValues:function(_e){_3.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.","","2.0");return this.set("value",_e);},_setValueAttr:function(_f){var map={};_1.forEach(this._getDescendantFormWidgets(),function(_10){if(!_10.name){return;}var _11=map[_10.name]||(map[_10.name]=[]);_11.push(_10);});for(var _12 in map){if(!map.hasOwnProperty(_12)){continue;}var _13=map[_12],_14=_4.getObject(_12,false,_f);if(_14===undefined){continue;}if(!_4.isArray(_14)){_14=[_14];}if(typeof _13[0].checked=="boolean"){_1.forEach(_13,function(w){w.set("value",_1.indexOf(_14,w.value)!=-1);});}else{if(_13[0].multiple){_13[0].set("value",_14);}else{_1.forEach(_13,function(w,i){w.set("value",_14[i]);});}}}},getValues:function(){_3.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},_getValueAttr:function(){var obj={};_1.forEach(this._getDescendantFormWidgets(),function(_15){var _16=_15.name;if(!_16||_15.disabled){return;}var _17=_15.get("value");if(typeof _15.checked=="boolean"){if(/Radio/.test(_15.declaredClass)){if(_17!==false){_4.setObject(_16,_17,obj);}else{_17=_4.getObject(_16,false,obj);if(_17===undefined){_4.setObject(_16,null,obj);}}}else{var ary=_4.getObject(_16,false,obj);if(!ary){ary=[];_4.setObject(_16,ary,obj);}if(_17!==false){ary.push(_17);}}}else{var _18=_4.getObject(_16,false,obj);if(typeof _18!="undefined"){if(_4.isArray(_18)){_18.push(_17);}else{_4.setObject(_16,[_18,_17],obj);}}else{_4.setObject(_16,_17,obj);}}});return obj;},isValid:function(){return this.state=="";},onValidStateChange:function(){},_getState:function(){var _19=_1.map(this._descendants,function(w){return w.get("state")||"";});return _1.indexOf(_19,"Error")>=0?"Error":_1.indexOf(_19,"Incomplete")>=0?"Incomplete":"";},disconnectChildren:function(){_1.forEach(this._childConnections||[],_4.hitch(this,"disconnect"));_1.forEach(this._childWatches||[],function(w){w.unwatch();});},connectChildren:function(_1a){var _1b=this;this.disconnectChildren();this._descendants=this._getDescendantFormWidgets();var set=_1a?function(_1c,val){_1b[_1c]=val;}:_4.hitch(this,"_set");set("value",this.get("value"));set("state",this._getState());var _1d=(this._childConnections=[]),_1e=(this._childWatches=[]);_1.forEach(_1.filter(this._descendants,function(_1f){return _1f.validate;}),function(_20){_1.forEach(["state","disabled"],function(_21){_1e.push(_20.watch(_21,function(){_1b.set("state",_1b._getState());}));});});var _22=function(){if(_1b._onChangeDelayTimer){clearTimeout(_1b._onChangeDelayTimer);}_1b._onChangeDelayTimer=setTimeout(function(){delete _1b._onChangeDelayTimer;_1b._set("value",_1b.get("value"));},10);};_1.forEach(_1.filter(this._descendants,function(_23){return _23.onChange;}),function(_24){_1d.push(_1b.connect(_24,"onChange",_22));_1e.push(_24.watch("disabled",_22));});},startup:function(){this.inherited(arguments);this.connectChildren(true);this.watch("state",function(_25,_26,_27){this.onValidStateChange(_27=="");});},destroy:function(){this.disconnectChildren();this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/form/_FormMixin",["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/window"],function(_1,_2,_3,_4,on,_5){return _2("dijit.form._FormMixin",null,{state:"",_getDescendantFormWidgets:function(_6){var _7=[];_1.forEach(_6||this.getChildren(),function(_8){if("value" in _8){_7.push(_8);}else{_7=_7.concat(this._getDescendantFormWidgets(_8.getChildren()));}},this);return _7;},reset:function(){_1.forEach(this._getDescendantFormWidgets(),function(_9){if(_9.reset){_9.reset();}});},validate:function(){var _a=false;return _1.every(_1.map(this._getDescendantFormWidgets(),function(_b){_b._hasBeenBlurred=true;var _c=_b.disabled||!_b.validate||_b.validate();if(!_c&&!_a){_5.scrollIntoView(_b.containerNode||_b.domNode);_b.focus();_a=true;}return _c;}),function(_d){return _d;});},setValues:function(_e){_3.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.","","2.0");return this.set("value",_e);},_setValueAttr:function(_f){var map={};_1.forEach(this._getDescendantFormWidgets(),function(_10){if(!_10.name){return;}var _11=map[_10.name]||(map[_10.name]=[]);_11.push(_10);});for(var _12 in map){if(!map.hasOwnProperty(_12)){continue;}var _13=map[_12],_14=_4.getObject(_12,false,_f);if(_14===undefined){continue;}if(!_4.isArray(_14)){_14=[_14];}if(typeof _13[0].checked=="boolean"){_1.forEach(_13,function(w){w.set("value",_1.indexOf(_14,w.value)!=-1);});}else{if(_13[0].multiple){_13[0].set("value",_14);}else{_1.forEach(_13,function(w,i){w.set("value",_14[i]);});}}}},getValues:function(){_3.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},_getValueAttr:function(){var obj={};_1.forEach(this._getDescendantFormWidgets(),function(_15){var _16=_15.name;if(!_16||_15.disabled){return;}var _17=_15.get("value");if(typeof _15.checked=="boolean"){if(/Radio/.test(_15.declaredClass)){if(_17!==false){_4.setObject(_16,_17,obj);}else{_17=_4.getObject(_16,false,obj);if(_17===undefined){_4.setObject(_16,null,obj);}}}else{var ary=_4.getObject(_16,false,obj);if(!ary){ary=[];_4.setObject(_16,ary,obj);}if(_17!==false){ary.push(_17);}}}else{var _18=_4.getObject(_16,false,obj);if(typeof _18!="undefined"){if(_4.isArray(_18)){_18.push(_17);}else{_4.setObject(_16,[_18,_17],obj);}}else{_4.setObject(_16,_17,obj);}}});return obj;},isValid:function(){return this.state=="";},onValidStateChange:function(){},_getState:function(){var _19=_1.map(this._descendants,function(w){return w.get("state")||"";});return _1.indexOf(_19,"Error")>=0?"Error":_1.indexOf(_19,"Incomplete")>=0?"Incomplete":"";},disconnectChildren:function(){},connectChildren:function(_1a){this._descendants=this._getDescendantFormWidgets();_1.forEach(this._descendants,function(_1b){if(!_1b._started){_1b.startup();}});if(!_1a){this._onChildChange();}},_onChildChange:function(_1c){if(!_1c||_1c=="state"||_1c=="disabled"){this._set("state",this._getState());}if(!_1c||_1c=="value"||_1c=="disabled"||_1c=="checked"){if(this._onChangeDelayTimer){this._onChangeDelayTimer.remove();}this._onChangeDelayTimer=this.defer(function(){delete this._onChangeDelayTimer;this._set("value",this.get("value"));},10);}},startup:function(){this.inherited(arguments);this._descendants=this._getDescendantFormWidgets();this.value=this.get("value");this.state=this._getState();var _1d=this;this.own(on(this.containerNode,"attrmodified-state, attrmodified-disabled, attrmodified-value, attrmodified-checked",function(evt){if(evt.target==_1d.domNode){return;}_1d._onChildChange(evt.type.replace("attrmodified-",""));}));this.watch("state",function(_1e,_1f,_20){this.onValidStateChange(_20=="");});},destroy:function(){this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_FormSelectWidget.js b/lib/dijit/form/_FormSelectWidget.js
index 994bc940b..2ca2fa4a4 100644
--- a/lib/dijit/form/_FormSelectWidget.js
+++ b/lib/dijit/form/_FormSelectWidget.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_FormSelectWidget",["dojo/_base/array","dojo/aspect","dojo/data/util/sorter","dojo/_base/declare","dojo/dom","dojo/dom-class","dojo/_base/kernel","dojo/_base/lang","dojo/query","./_FormValueWidget"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){return _4("dijit.form._FormSelectWidget",_a,{multiple:false,options:null,store:null,query:null,queryOptions:null,onFetch:null,sortByLabel:true,loadChildrenOnOpen:false,getOptions:function(_b){var _c=_b,_d=this.options||[],l=_d.length;if(_c===undefined){return _d;}if(_8.isArray(_c)){return _1.map(_c,"return this.getOptions(item);",this);}if(_8.isObject(_b)){if(!_1.some(this.options,function(o,_e){if(o===_c||(o.value&&o.value===_c.value)){_c=_e;return true;}return false;})){_c=-1;}}if(typeof _c=="string"){for(var i=0;i<l;i++){if(_d[i].value===_c){_c=i;break;}}}if(typeof _c=="number"&&_c>=0&&_c<l){return this.options[_c];}return null;},addOption:function(_f){if(!_8.isArray(_f)){_f=[_f];}_1.forEach(_f,function(i){if(i&&_8.isObject(i)){this.options.push(i);}},this);this._loadChildren();},removeOption:function(_10){if(!_8.isArray(_10)){_10=[_10];}var _11=this.getOptions(_10);_1.forEach(_11,function(i){if(i){this.options=_1.filter(this.options,function(_12){return (_12.value!==i.value||_12.label!==i.label);});this._removeOptionItem(i);}},this);this._loadChildren();},updateOption:function(_13){if(!_8.isArray(_13)){_13=[_13];}_1.forEach(_13,function(i){var _14=this.getOptions(i),k;if(_14){for(k in i){_14[k]=i[k];}}},this);this._loadChildren();},setStore:function(_15,_16,_17){var _18=this.store;_17=_17||{};if(_18!==_15){var h;while(h=this._notifyConnections.pop()){h.remove();}if(_15&&_15.getFeatures()["dojo.data.api.Notification"]){this._notifyConnections=[_2.after(_15,"onNew",_8.hitch(this,"_onNewItem"),true),_2.after(_15,"onDelete",_8.hitch(this,"_onDeleteItem"),true),_2.after(_15,"onSet",_8.hitch(this,"_onSetItem"),true)];}this._set("store",_15);}this._onChangeActive=false;if(this.options&&this.options.length){this.removeOption(this.options);}if(_15){this._loadingStore=true;_15.fetch(_8.delegate(_17,{onComplete:function(_19,_1a){if(this.sortByLabel&&!_17.sort&&_19.length){_19.sort(_3.createSortFunction([{attribute:_15.getLabelAttributes(_19[0])[0]}],_15));}if(_17.onFetch){_19=_17.onFetch.call(this,_19,_1a);}_1.forEach(_19,function(i){this._addOptionForItem(i);},this);this._loadingStore=false;this.set("value","_pendingValue" in this?this._pendingValue:_16);delete this._pendingValue;if(!this.loadChildrenOnOpen){this._loadChildren();}else{this._pseudoLoadChildren(_19);}this._fetchedWith=_1a;this._lastValueReported=this.multiple?[]:null;this._onChangeActive=true;this.onSetStore();this._handleOnChange(this.value);},scope:this}));}else{delete this._fetchedWith;}return _18;},_setValueAttr:function(_1b,_1c){if(this._loadingStore){this._pendingValue=_1b;return;}var _1d=this.getOptions()||[];if(!_8.isArray(_1b)){_1b=[_1b];}_1.forEach(_1b,function(i,idx){if(!_8.isObject(i)){i=i+"";}if(typeof i==="string"){_1b[idx]=_1.filter(_1d,function(_1e){return _1e.value===i;})[0]||{value:"",label:""};}},this);_1b=_1.filter(_1b,function(i){return i&&i.value;});if(!this.multiple&&(!_1b[0]||!_1b[0].value)&&_1d.length){_1b[0]=_1d[0];}_1.forEach(_1d,function(i){i.selected=_1.some(_1b,function(v){return v.value===i.value;});});var val=_1.map(_1b,function(i){return i.value;}),_1f=_1.map(_1b,function(i){return i.label;});this._set("value",this.multiple?val:val[0]);this._setDisplay(this.multiple?_1f:_1f[0]);this._updateSelection();this._handleOnChange(this.value,_1c);},_getDisplayedValueAttr:function(){var val=this.get("value");if(!_8.isArray(val)){val=[val];}var ret=_1.map(this.getOptions(val),function(v){if(v&&"label" in v){return v.label;}else{if(v){return v.value;}}return null;},this);return this.multiple?ret:ret[0];},_loadChildren:function(){if(this._loadingStore){return;}_1.forEach(this._getChildren(),function(_20){_20.destroyRecursive();});_1.forEach(this.options,this._addOptionItem,this);this._updateSelection();},_updateSelection:function(){this._set("value",this._getValueFromOpts());var val=this.value;if(!_8.isArray(val)){val=[val];}if(val&&val[0]){_1.forEach(this._getChildren(),function(_21){var _22=_1.some(val,function(v){return _21.option&&(v===_21.option.value);});_6.toggle(_21.domNode,this.baseClass+"SelectedOption",_22);_21.domNode.setAttribute("aria-selected",_22);},this);}},_getValueFromOpts:function(){var _23=this.getOptions()||[];if(!this.multiple&&_23.length){var opt=_1.filter(_23,function(i){return i.selected;})[0];if(opt&&opt.value){return opt.value;}else{_23[0].selected=true;return _23[0].value;}}else{if(this.multiple){return _1.map(_1.filter(_23,function(i){return i.selected;}),function(i){return i.value;})||[];}}return "";},_onNewItem:function(_24,_25){if(!_25||!_25.parent){this._addOptionForItem(_24);}},_onDeleteItem:function(_26){var _27=this.store;this.removeOption(_27.getIdentity(_26));},_onSetItem:function(_28){this.updateOption(this._getOptionObjForItem(_28));},_getOptionObjForItem:function(_29){var _2a=this.store,_2b=_2a.getLabel(_29),_2c=(_2b?_2a.getIdentity(_29):null);return {value:_2c,label:_2b,item:_29};},_addOptionForItem:function(_2d){var _2e=this.store;if(!_2e.isItemLoaded(_2d)){_2e.loadItem({item:_2d,onItem:function(i){this._addOptionForItem(i);},scope:this});return;}var _2f=this._getOptionObjForItem(_2d);this.addOption(_2f);},constructor:function(_30){this._oValue=(_30||{}).value||null;this._notifyConnections=[];},buildRendering:function(){this.inherited(arguments);_5.setSelectable(this.focusNode,false);},_fillContent:function(){var _31=this.options;if(!_31){_31=this.options=this.srcNodeRef?_9("> *",this.srcNodeRef).map(function(_32){if(_32.getAttribute("type")==="separator"){return {value:"",label:"",selected:false,disabled:false};}return {value:(_32.getAttribute("data-"+_7._scopeName+"-value")||_32.getAttribute("value")),label:String(_32.innerHTML),selected:_32.getAttribute("selected")||false,disabled:_32.getAttribute("disabled")||false};},this):[];}if(!this.value){this._set("value",this._getValueFromOpts());}else{if(this.multiple&&typeof this.value=="string"){this._set("value",this.value.split(","));}}},postCreate:function(){this.inherited(arguments);this.connect(this,"onChange","_updateSelection");this.connect(this,"startup","_loadChildren");this._setValueAttr(this.value,null);},startup:function(){this.inherited(arguments);var _33=this.store,_34={};_1.forEach(["query","queryOptions","onFetch"],function(i){if(this[i]){_34[i]=this[i];}delete this[i];},this);if(_33&&_33.getFeatures()["dojo.data.api.Identity"]){this.store=null;this.setStore(_33,this._oValue,_34);}},destroy:function(){var h;while(h=this._notifyConnections.pop()){h.remove();}this.inherited(arguments);},_addOptionItem:function(){},_removeOptionItem:function(){},_setDisplay:function(){},_getChildren:function(){return [];},_getSelectedOptionsAttr:function(){return this.getOptions(this.get("value"));},_pseudoLoadChildren:function(){},onSetStore:function(){}});}); \ No newline at end of file
+define("dijit/form/_FormSelectWidget",["dojo/_base/array","dojo/_base/Deferred","dojo/aspect","dojo/data/util/sorter","dojo/_base/declare","dojo/dom","dojo/dom-class","dojo/_base/kernel","dojo/_base/lang","dojo/query","dojo/when","dojo/store/util/QueryResults","./_FormValueWidget"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d){var _e=_5("dijit.form._FormSelectWidget",_d,{multiple:false,options:null,store:null,query:null,queryOptions:null,labelAttr:"",onFetch:null,sortByLabel:true,loadChildrenOnOpen:false,onLoadDeferred:null,getOptions:function(_f){var _10=_f,_11=this.options||[],l=_11.length;if(_10===undefined){return _11;}if(_9.isArray(_10)){return _1.map(_10,"return this.getOptions(item);",this);}if(_9.isObject(_f)){if(!_1.some(this.options,function(o,idx){if(o===_10||(o.value&&o.value===_10.value)){_10=idx;return true;}return false;})){_10=-1;}}if(typeof _10=="string"){for(var i=0;i<l;i++){if(_11[i].value===_10){_10=i;break;}}}if(typeof _10=="number"&&_10>=0&&_10<l){return this.options[_10];}return null;},addOption:function(_12){if(!_9.isArray(_12)){_12=[_12];}_1.forEach(_12,function(i){if(i&&_9.isObject(i)){this.options.push(i);}},this);this._loadChildren();},removeOption:function(_13){if(!_9.isArray(_13)){_13=[_13];}var _14=this.getOptions(_13);_1.forEach(_14,function(i){if(i){this.options=_1.filter(this.options,function(_15){return (_15.value!==i.value||_15.label!==i.label);});this._removeOptionItem(i);}},this);this._loadChildren();},updateOption:function(_16){if(!_9.isArray(_16)){_16=[_16];}_1.forEach(_16,function(i){var _17=this.getOptions(i),k;if(_17){for(k in i){_17[k]=i[k];}}},this);this._loadChildren();},setStore:function(_18,_19,_1a){var _1b=this.store;_1a=_1a||{};if(_1b!==_18){var h;while((h=this._notifyConnections.pop())){h.remove();}if(!_18.get){_9.mixin(_18,{_oldAPI:true,get:function(id){var _1c=new _2();this.fetchItemByIdentity({identity:id,onItem:function(_1d){_1c.resolve(_1d);},onError:function(_1e){_1c.reject(_1e);}});return _1c.promise;},query:function(_1f,_20){var _21=new _2(function(){if(_22.abort){_22.abort();}});_21.total=new _2();var _22=this.fetch(_9.mixin({query:_1f,onBegin:function(_23){_21.total.resolve(_23);},onComplete:function(_24){_21.resolve(_24);},onError:function(_25){_21.reject(_25);}},_20));return new _c(_21);}});if(_18.getFeatures()["dojo.data.api.Notification"]){this._notifyConnections=[_3.after(_18,"onNew",_9.hitch(this,"_onNewItem"),true),_3.after(_18,"onDelete",_9.hitch(this,"_onDeleteItem"),true),_3.after(_18,"onSet",_9.hitch(this,"_onSetItem"),true)];}}this._set("store",_18);}if(this.options&&this.options.length){this.removeOption(this.options);}if(this._queryRes&&this._queryRes.close){this._queryRes.close();}if(_1a.query){this._set("query",_1a.query);this._set("queryOptions",_1a.queryOptions);}if(_18){this._loadingStore=true;this.onLoadDeferred=new _2();this._queryRes=_18.query(this.query,this.queryOptions);_b(this._queryRes,_9.hitch(this,function(_26){if(this.sortByLabel&&!_1a.sort&&_26.length){if(_26[0].getValue){_26.sort(_4.createSortFunction([{attribute:_18.getLabelAttributes(_26[0])[0]}],_18));}else{var _27=this.labelAttr;_26.sort(function(a,b){return a[_27]>b[_27]?1:b[_27]>a[_27]?-1:0;});}}if(_1a.onFetch){_26=_1a.onFetch.call(this,_26,_1a);}_1.forEach(_26,function(i){this._addOptionForItem(i);},this);if(this._queryRes.observe){this._queryRes.observe(_9.hitch(this,function(_28,_29,_2a){if(_29==_2a){this._onSetItem(_28);}else{if(_29!=-1){this._onDeleteItem(_28);}if(_2a!=-1){this._onNewItem(_28);}}}),true);}this._loadingStore=false;this.set("value","_pendingValue" in this?this._pendingValue:_19);delete this._pendingValue;if(!this.loadChildrenOnOpen){this._loadChildren();}else{this._pseudoLoadChildren(_26);}this.onLoadDeferred.resolve(true);this.onSetStore();}),function(err){console.error("dijit.form.Select: "+err.toString());this.onLoadDeferred.reject(err);});}return _1b;},_setValueAttr:function(_2b,_2c){if(!this._onChangeActive){_2c=null;}if(this._loadingStore){this._pendingValue=_2b;return;}var _2d=this.getOptions()||[];if(!_9.isArray(_2b)){_2b=[_2b];}_1.forEach(_2b,function(i,idx){if(!_9.isObject(i)){i=i+"";}if(typeof i==="string"){_2b[idx]=_1.filter(_2d,function(_2e){return _2e.value===i;})[0]||{value:"",label:""};}},this);_2b=_1.filter(_2b,function(i){return i&&i.value;});if(!this.multiple&&(!_2b[0]||!_2b[0].value)&&_2d.length){_2b[0]=_2d[0];}_1.forEach(_2d,function(i){i.selected=_1.some(_2b,function(v){return v.value===i.value;});});var val=_1.map(_2b,function(i){return i.value;}),_2f=_1.map(_2b,function(i){return i.label;});if(typeof val=="undefined"||typeof val[0]=="undefined"){return;}this._setDisplay(this.multiple?_2f:_2f[0]);this.inherited(arguments,[this.multiple?val:val[0],_2c]);this._updateSelection();},_getDisplayedValueAttr:function(){var val=this.get("value");if(!_9.isArray(val)){val=[val];}var ret=_1.map(this.getOptions(val),function(v){if(v&&"label" in v){return v.label;}else{if(v){return v.value;}}return null;},this);return this.multiple?ret:ret[0];},_loadChildren:function(){if(this._loadingStore){return;}_1.forEach(this._getChildren(),function(_30){_30.destroyRecursive();});_1.forEach(this.options,this._addOptionItem,this);this._updateSelection();},_updateSelection:function(){this._set("value",this._getValueFromOpts());var val=this.value;if(!_9.isArray(val)){val=[val];}if(val&&val[0]){_1.forEach(this._getChildren(),function(_31){var _32=_1.some(val,function(v){return _31.option&&(v===_31.option.value);});_7.toggle(_31.domNode,this.baseClass.replace(/\s+|$/g,"SelectedOption "),_32);_31.domNode.setAttribute("aria-selected",_32?"true":"false");},this);}},_getValueFromOpts:function(){var _33=this.getOptions()||[];if(!this.multiple&&_33.length){var opt=_1.filter(_33,function(i){return i.selected;})[0];if(opt&&opt.value){return opt.value;}else{_33[0].selected=true;return _33[0].value;}}else{if(this.multiple){return _1.map(_1.filter(_33,function(i){return i.selected;}),function(i){return i.value;})||[];}}return "";},_onNewItem:function(_34,_35){if(!_35||!_35.parent){this._addOptionForItem(_34);}},_onDeleteItem:function(_36){var _37=this.store;this.removeOption(_37.getIdentity(_36));},_onSetItem:function(_38){this.updateOption(this._getOptionObjForItem(_38));},_getOptionObjForItem:function(_39){var _3a=this.store,_3b=(this.labelAttr&&this.labelAttr in _39)?_39[this.labelAttr]:_3a.getLabel(_39),_3c=(_3b?_3a.getIdentity(_39):null);return {value:_3c,label:_3b,item:_39};},_addOptionForItem:function(_3d){var _3e=this.store;if(_3e.isItemLoaded&&!_3e.isItemLoaded(_3d)){_3e.loadItem({item:_3d,onItem:function(i){this._addOptionForItem(i);},scope:this});return;}var _3f=this._getOptionObjForItem(_3d);this.addOption(_3f);},constructor:function(_40){this._oValue=(_40||{}).value||null;this._notifyConnections=[];},buildRendering:function(){this.inherited(arguments);_6.setSelectable(this.focusNode,false);},_fillContent:function(){if(!this.options){this.options=this.srcNodeRef?_a("> *",this.srcNodeRef).map(function(_41){if(_41.getAttribute("type")==="separator"){return {value:"",label:"",selected:false,disabled:false};}return {value:(_41.getAttribute("data-"+_8._scopeName+"-value")||_41.getAttribute("value")),label:String(_41.innerHTML),selected:_41.getAttribute("selected")||false,disabled:_41.getAttribute("disabled")||false};},this):[];}if(!this.value){this._set("value",this._getValueFromOpts());}else{if(this.multiple&&typeof this.value=="string"){this._set("value",this.value.split(","));}}},postCreate:function(){this.inherited(arguments);this.connect(this,"onChange","_updateSelection");var _42=this.store;if(_42&&(_42.getIdentity||_42.getFeatures()["dojo.data.api.Identity"])){this.store=null;this.setStore(_42,this._oValue);}},startup:function(){this._loadChildren();this.inherited(arguments);},destroy:function(){var h;while((h=this._notifyConnections.pop())){h.remove();}if(this._queryRes&&this._queryRes.close){this._queryRes.close();}this.inherited(arguments);},_addOptionItem:function(){},_removeOptionItem:function(){},_setDisplay:function(){},_getChildren:function(){return [];},_getSelectedOptionsAttr:function(){return this.getOptions(this.get("value"));},_pseudoLoadChildren:function(){},onSetStore:function(){}});return _e;}); \ No newline at end of file
diff --git a/lib/dijit/form/_FormValueMixin.js b/lib/dijit/form/_FormValueMixin.js
index 46bb6c52d..02ccf0f42 100644
--- a/lib/dijit/form/_FormValueMixin.js
+++ b/lib/dijit/form/_FormValueMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_FormValueMixin",["dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/_base/sniff","./_FormWidgetMixin"],function(_1,_2,_3,_4,_5){return _1("dijit.form._FormValueMixin",_5,{readOnly:false,_setReadOnlyAttr:function(_6){_2.set(this.focusNode,"readOnly",_6);this.focusNode.setAttribute("aria-readonly",_6);this._set("readOnly",_6);},postCreate:function(){this.inherited(arguments);if(_4("ie")){this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown);}if(this._resetValue===undefined){this._lastValueReported=this._resetValue=this.value;}},_setValueAttr:function(_7,_8){this._handleOnChange(_7,_8);},_handleOnChange:function(_9,_a){this._set("value",_9);this.inherited(arguments);},undo:function(){this._setValueAttr(this._lastValueReported,false);},reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true);},_onKeyDown:function(e){if(e.keyCode==_3.ESCAPE&&!(e.ctrlKey||e.altKey||e.metaKey)){var te;if(_4("ie")<9||(_4("ie")&&_4("quirks"))){e.preventDefault();te=document.createEventObject();te.keyCode=_3.ESCAPE;te.shiftKey=e.shiftKey;e.srcElement.fireEvent("onkeypress",te);}}}});}); \ No newline at end of file
+define("dijit/form/_FormValueMixin",["dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/sniff","./_FormWidgetMixin"],function(_1,_2,_3,_4,_5){return _1("dijit.form._FormValueMixin",_5,{readOnly:false,_setReadOnlyAttr:function(_6){_2.set(this.focusNode,"readOnly",_6);this._set("readOnly",_6);},postCreate:function(){this.inherited(arguments);if(_4("ie")){this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown);}if(this._resetValue===undefined){this._lastValueReported=this._resetValue=this.value;}},_setValueAttr:function(_7,_8){this._handleOnChange(_7,_8);},_handleOnChange:function(_9,_a){this._set("value",_9);this.inherited(arguments);},undo:function(){this._setValueAttr(this._lastValueReported,false);},reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true);},_onKeyDown:function(e){if(e.keyCode==_3.ESCAPE&&!(e.ctrlKey||e.altKey||e.metaKey)){if(_4("ie")<9||(_4("ie")&&_4("quirks"))){e.preventDefault();var _b=e.srcElement,te=_b.ownerDocument.createEventObject();te.keyCode=_3.ESCAPE;te.shiftKey=e.shiftKey;_b.fireEvent("onkeypress",te);}}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_FormValueWidget.js b/lib/dijit/form/_FormValueWidget.js
index 276378577..7a6f9a541 100644
--- a/lib/dijit/form/_FormValueWidget.js
+++ b/lib/dijit/form/_FormValueWidget.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_FormValueWidget",["dojo/_base/declare","dojo/_base/sniff","./_FormWidget","./_FormValueMixin"],function(_1,_2,_3,_4){return _1("dijit.form._FormValueWidget",[_3,_4],{_layoutHackIE7:function(){if(_2("ie")==7){var _5=this.domNode;var _6=_5.parentNode;var _7=_5.firstChild||_5;var _8=_7.style.filter;var _9=this;while(_6&&_6.clientHeight==0){(function ping(){var _a=_9.connect(_6,"onscroll",function(){_9.disconnect(_a);_7.style.filter=(new Date()).getMilliseconds();setTimeout(function(){_7.style.filter=_8;},0);});})();_6=_6.parentNode;}}}});}); \ No newline at end of file
+define("dijit/form/_FormValueWidget",["dojo/_base/declare","dojo/sniff","./_FormWidget","./_FormValueMixin"],function(_1,_2,_3,_4){return _1("dijit.form._FormValueWidget",[_3,_4],{_layoutHackIE7:function(){if(_2("ie")==7){var _5=this.domNode;var _6=_5.parentNode;var _7=_5.firstChild||_5;var _8=_7.style.filter;var _9=this;while(_6&&_6.clientHeight==0){(function ping(){var _a=_9.connect(_6,"onscroll",function(){_9.disconnect(_a);_7.style.filter=(new Date()).getMilliseconds();_9.defer(function(){_7.style.filter=_8;});});})();_6=_6.parentNode;}}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_FormWidget.js b/lib/dijit/form/_FormWidget.js
index f7867b0c5..419f5ca73 100644
--- a/lib/dijit/form/_FormWidget.js
+++ b/lib/dijit/form/_FormWidget.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_FormWidget",["dojo/_base/declare","dojo/_base/kernel","dojo/ready","../_Widget","../_CssStateMixin","../_TemplatedMixin","./_FormWidgetMixin"],function(_1,_2,_3,_4,_5,_6,_7){if(!_2.isAsync){_3(0,function(){var _8=["dijit/form/_FormValueWidget"];require(_8);});}return _1("dijit.form._FormWidget",[_4,_6,_5,_7],{setDisabled:function(_9){_2.deprecated("setDisabled("+_9+") is deprecated. Use set('disabled',"+_9+") instead.","","2.0");this.set("disabled",_9);},setValue:function(_a){_2.deprecated("dijit.form._FormWidget:setValue("+_a+") is deprecated. Use set('value',"+_a+") instead.","","2.0");this.set("value",_a);},getValue:function(){_2.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},postMixInProperties:function(){this.nameAttrSetting=this.name?("name=\""+this.name.replace(/'/g,"&quot;")+"\""):"";this.inherited(arguments);},_setTypeAttr:null});}); \ No newline at end of file
+define("dijit/form/_FormWidget",["dojo/_base/declare","dojo/has","dojo/_base/kernel","dojo/ready","../_Widget","../_CssStateMixin","../_TemplatedMixin","./_FormWidgetMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8){if(_2("dijit-legacy-requires")){_4(0,function(){var _9=["dijit/form/_FormValueWidget"];require(_9);});}return _1("dijit.form._FormWidget",[_5,_7,_6,_8],{setDisabled:function(_a){_3.deprecated("setDisabled("+_a+") is deprecated. Use set('disabled',"+_a+") instead.","","2.0");this.set("disabled",_a);},setValue:function(_b){_3.deprecated("dijit.form._FormWidget:setValue("+_b+") is deprecated. Use set('value',"+_b+") instead.","","2.0");this.set("value",_b);},getValue:function(){_3.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},postMixInProperties:function(){this.nameAttrSetting=this.name?("name=\""+this.name.replace(/"/g,"&quot;")+"\""):"";this.inherited(arguments);},_setTypeAttr:null});}); \ No newline at end of file
diff --git a/lib/dijit/form/_FormWidgetMixin.js b/lib/dijit/form/_FormWidgetMixin.js
index d84fe9a2a..097a85db2 100644
--- a/lib/dijit/form/_FormWidgetMixin.js
+++ b/lib/dijit/form/_FormWidgetMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_FormWidgetMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-style","dojo/_base/lang","dojo/mouse","dojo/_base/sniff","dojo/_base/window","dojo/window","../a11y"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){return _2("dijit.form._FormWidgetMixin",null,{name:"",alt:"",value:"",type:"text",tabIndex:"0",_setTabIndexAttr:"focusNode",disabled:false,intermediateChanges:false,scrollOnFocus:true,_setIdAttr:"focusNode",_setDisabledAttr:function(_b){this._set("disabled",_b);_3.set(this.focusNode,"disabled",_b);if(this.valueNode){_3.set(this.valueNode,"disabled",_b);}this.focusNode.setAttribute("aria-disabled",_b?"true":"false");if(_b){this._set("hovering",false);this._set("active",false);var _c="tabIndex" in this.attributeMap?this.attributeMap.tabIndex:("_setTabIndexAttr" in this)?this._setTabIndexAttr:"focusNode";_1.forEach(_5.isArray(_c)?_c:[_c],function(_d){var _e=this[_d];if(_7("webkit")||_a.hasDefaultTabStop(_e)){_e.setAttribute("tabIndex","-1");}else{_e.removeAttribute("tabIndex");}},this);}else{if(this.tabIndex!=""){this.set("tabIndex",this.tabIndex);}}},_onFocus:function(by){if(by=="mouse"&&this.isFocusable()){var _f=this.connect(this.focusNode,"onfocus",function(){this.disconnect(_10);this.disconnect(_f);});var _10=this.connect(_8.body(),"onmouseup",function(){this.disconnect(_10);this.disconnect(_f);if(this.focused){this.focus();}});}if(this.scrollOnFocus){this.defer(function(){_9.scrollIntoView(this.domNode);});}this.inherited(arguments);},isFocusable:function(){return !this.disabled&&this.focusNode&&(_4.get(this.domNode,"display")!="none");},focus:function(){if(!this.disabled&&this.focusNode.focus){try{this.focusNode.focus();}catch(e){}}},compare:function(_11,_12){if(typeof _11=="number"&&typeof _12=="number"){return (isNaN(_11)&&isNaN(_12))?0:_11-_12;}else{if(_11>_12){return 1;}else{if(_11<_12){return -1;}else{return 0;}}}},onChange:function(){},_onChangeActive:false,_handleOnChange:function(_13,_14){if(this._lastValueReported==undefined&&(_14===null||!this._onChangeActive)){this._resetValue=this._lastValueReported=_13;}this._pendingOnChange=this._pendingOnChange||(typeof _13!=typeof this._lastValueReported)||(this.compare(_13,this._lastValueReported)!=0);if((this.intermediateChanges||_14||_14===undefined)&&this._pendingOnChange){this._lastValueReported=_13;this._pendingOnChange=false;if(this._onChangeActive){if(this._onChangeHandle){this._onChangeHandle.remove();}this._onChangeHandle=this.defer(function(){this._onChangeHandle=null;this.onChange(_13);});}}},create:function(){this.inherited(arguments);this._onChangeActive=true;},destroy:function(){if(this._onChangeHandle){this._onChangeHandle.remove();this.onChange(this._lastValueReported);}this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/form/_FormWidgetMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-style","dojo/_base/lang","dojo/mouse","dojo/sniff","dojo/window","../a11y"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _2("dijit.form._FormWidgetMixin",null,{name:"",alt:"",value:"",type:"text","aria-label":"focusNode",tabIndex:"0",_setTabIndexAttr:"focusNode",disabled:false,intermediateChanges:false,scrollOnFocus:true,_setIdAttr:"focusNode",_setDisabledAttr:function(_a){this._set("disabled",_a);_3.set(this.focusNode,"disabled",_a);if(this.valueNode){_3.set(this.valueNode,"disabled",_a);}this.focusNode.setAttribute("aria-disabled",_a?"true":"false");if(_a){this._set("hovering",false);this._set("active",false);var _b="tabIndex" in this.attributeMap?this.attributeMap.tabIndex:("_setTabIndexAttr" in this)?this._setTabIndexAttr:"focusNode";_1.forEach(_5.isArray(_b)?_b:[_b],function(_c){var _d=this[_c];if(_7("webkit")||_9.hasDefaultTabStop(_d)){_d.setAttribute("tabIndex","-1");}else{_d.removeAttribute("tabIndex");}},this);}else{if(this.tabIndex!=""){this.set("tabIndex",this.tabIndex);}}},_onFocus:function(by){if(by=="mouse"&&this.isFocusable()){var _e=this.connect(this.focusNode,"onfocus",function(){this.disconnect(_f);this.disconnect(_e);});var _f=this.connect(this.ownerDocumentBody,"onmouseup",function(){this.disconnect(_f);this.disconnect(_e);if(this.focused){this.focus();}});}if(this.scrollOnFocus){this.defer(function(){_8.scrollIntoView(this.domNode);});}this.inherited(arguments);},isFocusable:function(){return !this.disabled&&this.focusNode&&(_4.get(this.domNode,"display")!="none");},focus:function(){if(!this.disabled&&this.focusNode.focus){try{this.focusNode.focus();}catch(e){}}},compare:function(_10,_11){if(typeof _10=="number"&&typeof _11=="number"){return (isNaN(_10)&&isNaN(_11))?0:_10-_11;}else{if(_10>_11){return 1;}else{if(_10<_11){return -1;}else{return 0;}}}},onChange:function(){},_onChangeActive:false,_handleOnChange:function(_12,_13){if(this._lastValueReported==undefined&&(_13===null||!this._onChangeActive)){this._resetValue=this._lastValueReported=_12;}this._pendingOnChange=this._pendingOnChange||(typeof _12!=typeof this._lastValueReported)||(this.compare(_12,this._lastValueReported)!=0);if((this.intermediateChanges||_13||_13===undefined)&&this._pendingOnChange){this._lastValueReported=_12;this._pendingOnChange=false;if(this._onChangeActive){if(this._onChangeHandle){this._onChangeHandle.remove();}this._onChangeHandle=this.defer(function(){this._onChangeHandle=null;this.onChange(_12);});}}},create:function(){this.inherited(arguments);this._onChangeActive=true;},destroy:function(){if(this._onChangeHandle){this._onChangeHandle.remove();this.onChange(this._lastValueReported);}this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_ListBase.js b/lib/dijit/form/_ListBase.js
index 1e0dee136..1382d4db4 100644
--- a/lib/dijit/form/_ListBase.js
+++ b/lib/dijit/form/_ListBase.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_ListBase",["dojo/_base/declare","dojo/window"],function(_1,_2){return _1("dijit.form._ListBase",null,{selected:null,_getTarget:function(_3){var _4=_3.target;var _5=this.containerNode;if(_4==_5||_4==this.domNode){return null;}while(_4&&_4.parentNode!=_5){_4=_4.parentNode;}return _4;},selectFirstNode:function(){var _6=this.containerNode.firstChild;while(_6&&_6.style.display=="none"){_6=_6.nextSibling;}this._setSelectedAttr(_6);},selectLastNode:function(){var _7=this.containerNode.lastChild;while(_7&&_7.style.display=="none"){_7=_7.previousSibling;}this._setSelectedAttr(_7);},selectNextNode:function(){var _8=this._getSelectedAttr();if(!_8){this.selectFirstNode();}else{var _9=_8.nextSibling;while(_9&&_9.style.display=="none"){_9=_9.nextSibling;}if(!_9){this.selectFirstNode();}else{this._setSelectedAttr(_9);}}},selectPreviousNode:function(){var _a=this._getSelectedAttr();if(!_a){this.selectLastNode();}else{var _b=_a.previousSibling;while(_b&&_b.style.display=="none"){_b=_b.previousSibling;}if(!_b){this.selectLastNode();}else{this._setSelectedAttr(_b);}}},_setSelectedAttr:function(_c){if(this.selected!=_c){var _d=this._getSelectedAttr();if(_d){this.onDeselect(_d);this.selected=null;}if(_c&&_c.parentNode==this.containerNode){this.selected=_c;_2.scrollIntoView(_c);this.onSelect(_c);}}else{if(_c){this.onSelect(_c);}}},_getSelectedAttr:function(){var v=this.selected;return (v&&v.parentNode==this.containerNode)?v:(this.selected=null);}});}); \ No newline at end of file
+define("dijit/form/_ListBase",["dojo/_base/declare","dojo/on","dojo/window"],function(_1,on,_2){return _1("dijit.form._ListBase",null,{selected:null,_listConnect:function(_3,_4){var _5=this;return _5.own(on(_5.containerNode,on.selector(function(_6,_7,_8){return _6.parentNode==_8;},_3),function(_9){_9.preventDefault();_5[_4](_9,this);}));},selectFirstNode:function(){var _a=this.containerNode.firstChild;while(_a&&_a.style.display=="none"){_a=_a.nextSibling;}this._setSelectedAttr(_a);},selectLastNode:function(){var _b=this.containerNode.lastChild;while(_b&&_b.style.display=="none"){_b=_b.previousSibling;}this._setSelectedAttr(_b);},selectNextNode:function(){var _c=this.selected;if(!_c){this.selectFirstNode();}else{var _d=_c.nextSibling;while(_d&&_d.style.display=="none"){_d=_d.nextSibling;}if(!_d){this.selectFirstNode();}else{this._setSelectedAttr(_d);}}},selectPreviousNode:function(){var _e=this.selected;if(!_e){this.selectLastNode();}else{var _f=_e.previousSibling;while(_f&&_f.style.display=="none"){_f=_f.previousSibling;}if(!_f){this.selectLastNode();}else{this._setSelectedAttr(_f);}}},_setSelectedAttr:function(_10){if(this.selected!=_10){var _11=this.selected;if(_11){this.onDeselect(_11);this.selected=null;}if(_10){this.selected=_10;_2.scrollIntoView(_10);this.onSelect(_10);}}else{if(_10){this.onSelect(_10);}}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_ListMouseMixin.js b/lib/dijit/form/_ListMouseMixin.js
index 8c731e33c..ca18b17e8 100644
--- a/lib/dijit/form/_ListMouseMixin.js
+++ b/lib/dijit/form/_ListMouseMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_ListMouseMixin",["dojo/_base/declare","dojo/_base/event","dojo/touch","./_ListBase"],function(_1,_2,_3,_4){return _1("dijit.form._ListMouseMixin",_4,{postCreate:function(){this.inherited(arguments);this.connect(this.domNode,_3.press,"_onMouseDown");this.connect(this.domNode,_3.release,"_onMouseUp");this.connect(this.domNode,"onmouseover","_onMouseOver");this.connect(this.domNode,"onmouseout","_onMouseOut");},_onMouseDown:function(_5){_2.stop(_5);if(this._hoveredNode){this.onUnhover(this._hoveredNode);this._hoveredNode=null;}this._isDragging=true;this._setSelectedAttr(this._getTarget(_5));},_onMouseUp:function(_6){_2.stop(_6);this._isDragging=false;var _7=this._getSelectedAttr();var _8=this._getTarget(_6);var _9=this._hoveredNode;if(_7&&_8==_7){this.onClick(_7);}else{if(_9&&_8==_9){this._setSelectedAttr(_9);this.onClick(_9);}}},_onMouseOut:function(){if(this._hoveredNode){this.onUnhover(this._hoveredNode);if(this._getSelectedAttr()==this._hoveredNode){this.onSelect(this._hoveredNode);}this._hoveredNode=null;}if(this._isDragging){this._cancelDrag=(new Date()).getTime()+1000;}},_onMouseOver:function(_a){if(this._cancelDrag){var _b=(new Date()).getTime();if(_b>this._cancelDrag){this._isDragging=false;}this._cancelDrag=null;}var _c=this._getTarget(_a);if(!_c){return;}if(this._hoveredNode!=_c){if(this._hoveredNode){this._onMouseOut({target:this._hoveredNode});}if(_c&&_c.parentNode==this.containerNode){if(this._isDragging){this._setSelectedAttr(_c);}else{this._hoveredNode=_c;this.onHover(_c);}}}}});}); \ No newline at end of file
+define("dijit/form/_ListMouseMixin",["dojo/_base/declare","dojo/mouse","dojo/on","dojo/touch","./_ListBase"],function(_1,_2,on,_3,_4){return _1("dijit.form._ListMouseMixin",_4,{postCreate:function(){this.inherited(arguments);this.own(on(this.domNode,_3.press,function(_5){_5.preventDefault();}));this._listConnect(_3.press,"_onMouseDown");this._listConnect(_3.release,"_onMouseUp");this._listConnect(_2.enter,"_onMouseOver");this._listConnect(_2.leave,"_onMouseOut");},_onMouseDown:function(_6,_7){if(this._hoveredNode){this.onUnhover(this._hoveredNode);this._hoveredNode=null;}this._isDragging=true;this._setSelectedAttr(_7);},_onMouseUp:function(_8,_9){this._isDragging=false;var _a=this.selected;var _b=this._hoveredNode;if(_a&&_9==_a){this.onClick(_a);}else{if(_b&&_9==_b){this._setSelectedAttr(_b);this.onClick(_b);}}},_onMouseOut:function(_c,_d){if(this._hoveredNode){this.onUnhover(this._hoveredNode);this._hoveredNode=null;}if(this._isDragging){this._cancelDrag=(new Date()).getTime()+1000;}},_onMouseOver:function(_e,_f){if(this._cancelDrag){var _10=(new Date()).getTime();if(_10>this._cancelDrag){this._isDragging=false;}this._cancelDrag=null;}this._hoveredNode=_f;this.onHover(_f);if(this._isDragging){this._setSelectedAttr(_f);}}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_RadioButtonMixin.js b/lib/dijit/form/_RadioButtonMixin.js
index a444f3bd1..2ad5e12c9 100644
--- a/lib/dijit/form/_RadioButtonMixin.js
+++ b/lib/dijit/form/_RadioButtonMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_RadioButtonMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/_base/event","dojo/_base/lang","dojo/query","dojo/_base/window","../registry"],function(_1,_2,_3,_4,_5,_6,_7,_8){return _2("dijit.form._RadioButtonMixin",null,{type:"radio",_getRelatedWidgets:function(){var _9=[];_6("input[type=radio]",this.focusNode.form||_7.doc).forEach(_5.hitch(this,function(_a){if(_a.name==this.name&&_a.form==this.focusNode.form){var _b=_8.getEnclosingWidget(_a);if(_b){_9.push(_b);}}}));return _9;},_setCheckedAttr:function(_c){this.inherited(arguments);if(!this._created){return;}if(_c){_1.forEach(this._getRelatedWidgets(),_5.hitch(this,function(_d){if(_d!=this&&_d.checked){_d.set("checked",false);}}));}},_onClick:function(e){if(this.checked||this.disabled){_4.stop(e);return false;}if(this.readOnly){_4.stop(e);_1.forEach(this._getRelatedWidgets(),_5.hitch(this,function(_e){_3.set(this.focusNode||this.domNode,"checked",_e.checked);}));return false;}return this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/form/_RadioButtonMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/_base/event","dojo/_base/lang","dojo/query","../registry"],function(_1,_2,_3,_4,_5,_6,_7){return _2("dijit.form._RadioButtonMixin",null,{type:"radio",_getRelatedWidgets:function(){var _8=[];_6("input[type=radio]",this.focusNode.form||this.ownerDocument).forEach(_5.hitch(this,function(_9){if(_9.name==this.name&&_9.form==this.focusNode.form){var _a=_7.getEnclosingWidget(_9);if(_a){_8.push(_a);}}}));return _8;},_setCheckedAttr:function(_b){this.inherited(arguments);if(!this._created){return;}if(_b){_1.forEach(this._getRelatedWidgets(),_5.hitch(this,function(_c){if(_c!=this&&_c.checked){_c.set("checked",false);}}));}},_getSubmitValue:function(_d){return _d===null?"on":_d;},_onClick:function(e){if(this.checked||this.disabled){_4.stop(e);return false;}if(this.readOnly){_4.stop(e);_1.forEach(this._getRelatedWidgets(),_5.hitch(this,function(_e){_3.set(this.focusNode||this.domNode,"checked",_e.checked);}));return false;}return this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_SearchMixin.js b/lib/dijit/form/_SearchMixin.js
new file mode 100644
index 000000000..0922a990a
--- /dev/null
+++ b/lib/dijit/form/_SearchMixin.js
@@ -0,0 +1,2 @@
+//>>built
+define("dijit/form/_SearchMixin",["dojo/data/util/filter","dojo/_base/declare","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/query","dojo/sniff","dojo/string","dojo/when","../registry"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){return _2("dijit.form._SearchMixin",null,{pageSize:Infinity,store:null,fetchProperties:{},query:{},searchDelay:200,searchAttr:"name",queryExpr:"${0}*",ignoreCase:true,_abortQuery:function(){if(this.searchTimer){this.searchTimer=this.searchTimer.remove();}if(this._queryDeferHandle){this._queryDeferHandle=this._queryDeferHandle.remove();}if(this._fetchHandle){if(this._fetchHandle.abort){this._cancelingQuery=true;this._fetchHandle.abort();this._cancelingQuery=false;}if(this._fetchHandle.cancel){this._cancelingQuery=true;this._fetchHandle.cancel();this._cancelingQuery=false;}this._fetchHandle=null;}},_processInput:function(_b){if(this.disabled||this.readOnly){return;}var _c=_b.charOrCode;if(_b.altKey||((_b.ctrlKey||_b.metaKey)&&(_c!="x"&&_c!="v"))||_c==_4.SHIFT){return;}var _d=false;this._prev_key_backspace=false;switch(_c){case _4.DELETE:case _4.BACKSPACE:this._prev_key_backspace=true;this._maskValidSubsetError=true;_d=true;break;default:_d=typeof _c=="string"||_c==229;}if(_d){if(!this.store){this.onSearch();}else{this.searchTimer=this.defer("_startSearchFromInput",1);}}},onSearch:function(){},_startSearchFromInput:function(){this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g,"\\$1"));},_startSearch:function(_e){this._abortQuery();var _f=this,_6=_5.clone(this.query),_10={start:0,count:this.pageSize,queryOptions:{ignoreCase:this.ignoreCase,deep:true}},qs=_8.substitute(this.queryExpr,[_e]),q,_11=function(){var _12=_f._fetchHandle=_f.store.query(_6,_10);if(_f.disabled||_f.readOnly||(q!==_f._lastQuery)){return;}_9(_12,function(res){_f._fetchHandle=null;if(!_f.disabled&&!_f.readOnly&&(q===_f._lastQuery)){_9(_12.total,function(_13){res.total=_13;var _14=_f.pageSize;if(isNaN(_14)||_14>res.total){_14=res.total;}res.nextPage=function(_15){_10.direction=_15=_15!==false;_10.count=_14;if(_15){_10.start+=res.length;if(_10.start>=res.total){_10.count=0;}}else{_10.start-=_14;if(_10.start<0){_10.count=Math.max(_14+_10.start,0);_10.start=0;}}if(_10.count<=0){res.length=0;_f.onSearch(res,_6,_10);}else{_11();}};_f.onSearch(res,_6,_10);});}},function(err){_f._fetchHandle=null;if(!_f._cancelingQuery){console.error(_f.declaredClass+" "+err.toString());}});};_5.mixin(_10,this.fetchProperties);if(this.store._oldAPI){q=qs;}else{q=_1.patternToRegExp(qs,this.ignoreCase);q.toString=function(){return qs;};}this._lastQuery=_6[this.searchAttr]=q;this._queryDeferHandle=this.defer(_11,this.searchDelay);},constructor:function(){this.query={};this.fetchProperties={};},postMixInProperties:function(){if(!this.store){var _16=this.list;if(_16){this.store=_a.byId(_16);}}this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_Spinner.js b/lib/dijit/form/_Spinner.js
index 10c6e14a2..74b511f5d 100644
--- a/lib/dijit/form/_Spinner.js
+++ b/lib/dijit/form/_Spinner.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/form/templates/Spinner.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitButtonNode dijitSpinnerButtonContainer\"\n\t\t><input class=\"dijitReset dijitInputField dijitSpinnerButtonInner\" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t/><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitUpArrowButton\"\n\t\t\tdata-dojo-attach-point=\"upArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"&#9650;\" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t\t><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\tdata-dojo-attach-point=\"downArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"&#9660;\" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935;\" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' data-dojo-attach-point=\"textbox,focusNode\" type=\"${type}\" data-dojo-attach-event=\"onkeypress:_onKeyPress\"\n\t\t\trole=\"spinbutton\" autocomplete=\"off\" ${!nameAttrSetting}\n\t/></div\n></div>\n"}});define("dijit/form/_Spinner",["dojo/_base/declare","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/_base/sniff","dijit/typematic","./RangeBoundTextBox","dojo/text!./templates/Spinner.html","./_TextBoxMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _1("dijit.form._Spinner",_7,{defaultTimeout:500,minimumTimeout:10,timeoutChangeRate:0.9,smallDelta:1,largeDelta:10,templateString:_8,baseClass:"dijitTextBox dijitSpinner",cssStateNodes:{"upArrowNode":"dijitUpArrowButton","downArrowNode":"dijitDownArrowButton"},adjust:function(_a){return _a;},_arrowPressed:function(_b,_c,_d){if(this.disabled||this.readOnly){return;}this._setValueAttr(this.adjust(this.get("value"),_c*_d),false);_9.selectInputText(this.textbox,this.textbox.value.length);},_arrowReleased:function(){this._wheelTimer=null;},_typematicCallback:function(_e,_f,evt){var inc=this.smallDelta;if(_f==this.textbox){var key=evt.charOrCode;inc=(key==_3.PAGE_UP||key==_3.PAGE_DOWN)?this.largeDelta:this.smallDelta;_f=(key==_3.UP_ARROW||key==_3.PAGE_UP)?this.upArrowNode:this.downArrowNode;}if(_e==-1){this._arrowReleased(_f);}else{this._arrowPressed(_f,(_f==this.upArrowNode)?1:-1,inc);}},_wheelTimer:null,_mouseWheeled:function(evt){_2.stop(evt);var _10=evt.wheelDelta/120;if(Math.floor(_10)!=_10){_10=evt.wheelDelta>0?1:-1;}var _11=evt.detail?(evt.detail*-1):_10;if(_11!==0){var _12=this[(_11>0?"upArrowNode":"downArrowNode")];this._arrowPressed(_12,_11,this.smallDelta);if(!this._wheelTimer){clearTimeout(this._wheelTimer);}this._wheelTimer=setTimeout(_4.hitch(this,"_arrowReleased",_12),50);}},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,!_5("mozilla")?"onmousewheel":"DOMMouseScroll","_mouseWheeled");this._connects.push(_6.addListener(this.upArrowNode,this.textbox,{charOrCode:_3.UP_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout));this._connects.push(_6.addListener(this.downArrowNode,this.textbox,{charOrCode:_3.DOWN_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout));this._connects.push(_6.addListener(this.upArrowNode,this.textbox,{charOrCode:_3.PAGE_UP,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout));this._connects.push(_6.addListener(this.downArrowNode,this.textbox,{charOrCode:_3.PAGE_DOWN,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout));}});}); \ No newline at end of file
+require({cache:{"url:dijit/form/templates/Spinner.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitButtonNode dijitSpinnerButtonContainer\"\n\t\t><input class=\"dijitReset dijitInputField dijitSpinnerButtonInner\" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t/><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitUpArrowButton\"\n\t\t\tdata-dojo-attach-point=\"upArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"&#9650; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t\t><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\tdata-dojo-attach-point=\"downArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' data-dojo-attach-point=\"textbox,focusNode\" type=\"${type}\" data-dojo-attach-event=\"onkeypress:_onKeyPress\"\n\t\t\trole=\"spinbutton\" autocomplete=\"off\" ${!nameAttrSetting}\n\t/></div\n></div>\n"}});define("dijit/form/_Spinner",["dojo/_base/declare","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/mouse","../typematic","./RangeBoundTextBox","dojo/text!./templates/Spinner.html","./_TextBoxMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){return _1("dijit.form._Spinner",_8,{defaultTimeout:500,minimumTimeout:10,timeoutChangeRate:0.9,smallDelta:1,largeDelta:10,templateString:_9,baseClass:"dijitTextBox dijitSpinner",cssStateNodes:{"upArrowNode":"dijitUpArrowButton","downArrowNode":"dijitDownArrowButton"},adjust:function(_b){return _b;},_arrowPressed:function(_c,_d,_e){if(this.disabled||this.readOnly){return;}this._setValueAttr(this.adjust(this.get("value"),_d*_e),false);_a.selectInputText(this.textbox,this.textbox.value.length);},_arrowReleased:function(){this._wheelTimer=null;},_typematicCallback:function(_f,_10,evt){var inc=this.smallDelta;if(_10==this.textbox){var key=evt.charOrCode;inc=(key==_3.PAGE_UP||key==_3.PAGE_DOWN)?this.largeDelta:this.smallDelta;_10=(key==_3.UP_ARROW||key==_3.PAGE_UP)?this.upArrowNode:this.downArrowNode;}if(_f==-1){this._arrowReleased(_10);}else{this._arrowPressed(_10,(_10==this.upArrowNode)?1:-1,inc);}},_wheelTimer:null,_mouseWheeled:function(evt){_2.stop(evt);var _11=evt.wheelDelta/120;if(Math.floor(_11)!=_11){_11=evt.wheelDelta>0?1:-1;}var _12=evt.detail?(evt.detail*-1):_11;if(_12!==0){var _13=this[(_12>0?"upArrowNode":"downArrowNode")];this._arrowPressed(_13,_12,this.smallDelta);if(this._wheelTimer){this._wheelTimer.remove();}this._wheelTimer=this.defer(function(){this._arrowReleased(_13);},50);}},_setConstraintsAttr:function(_14){this.inherited(arguments);if(this.focusNode){if(this.constraints.min!==undefined){this.focusNode.setAttribute("aria-valuemin",this.constraints.min);}else{this.focusNode.removeAttribute("aria-valuemin");}if(this.constraints.max!==undefined){this.focusNode.setAttribute("aria-valuemax",this.constraints.max);}else{this.focusNode.removeAttribute("aria-valuemax");}}},_setValueAttr:function(_15,_16){this.focusNode.setAttribute("aria-valuenow",_15);this.inherited(arguments);},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,_6.wheel,"_mouseWheeled");this.own(_7.addListener(this.upArrowNode,this.textbox,{charOrCode:_3.UP_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout),_7.addListener(this.downArrowNode,this.textbox,{charOrCode:_3.DOWN_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout),_7.addListener(this.upArrowNode,this.textbox,{charOrCode:_3.PAGE_UP,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout),_7.addListener(this.downArrowNode,this.textbox,{charOrCode:_3.PAGE_DOWN,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout));}});}); \ No newline at end of file
diff --git a/lib/dijit/form/_TextBoxMixin.js b/lib/dijit/form/_TextBoxMixin.js
index 133074972..2b0b43de9 100644
--- a/lib/dijit/form/_TextBoxMixin.js
+++ b/lib/dijit/form/_TextBoxMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_TextBoxMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/_base/event","dojo/keys","dojo/_base/lang",".."],function(_1,_2,_3,_4,_5,_6,_7){var _8=_2("dijit.form._TextBoxMixin",null,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",selectOnClick:false,placeHolder:"",_getValueAttr:function(){return this.parse(this.get("displayedValue"),this.constraints);},_setValueAttr:function(_9,_a,_b){var _c;if(_9!==undefined){_c=this.filter(_9);if(typeof _b!="string"){if(_c!==null&&((typeof _c!="number")||!isNaN(_c))){_b=this.filter(this.format(_c,this.constraints));}else{_b="";}}}if(_b!=null&&_b!=undefined&&((typeof _b)!="number"||!isNaN(_b))&&this.textbox.value!=_b){this.textbox.value=_b;this._set("displayedValue",this.get("displayedValue"));}if(this.textDir=="auto"){this.applyTextDir(this.focusNode,_b);}this.inherited(arguments,[_c,_a]);},displayedValue:"",_getDisplayedValueAttr:function(){return this.filter(this.textbox.value);},_setDisplayedValueAttr:function(_d){if(_d===null||_d===undefined){_d="";}else{if(typeof _d!="string"){_d=String(_d);}}this.textbox.value=_d;this._setValueAttr(this.get("value"),undefined);this._set("displayedValue",this.get("displayedValue"));if(this.textDir=="auto"){this.applyTextDir(this.focusNode,_d);}},format:function(_e){return ((_e==null||_e==undefined)?"":(_e.toString?_e.toString():_e));},parse:function(_f){return _f;},_refreshState:function(){},onInput:function(){},__skipInputEvent:false,_onInput:function(){if(this.textDir=="auto"){this.applyTextDir(this.focusNode,this.focusNode.value);}this._refreshState();this._set("displayedValue",this.get("displayedValue"));},postCreate:function(){this.textbox.setAttribute("value",this.textbox.value);this.inherited(arguments);var _10=function(e){var _11=e.charOrCode||e.keyCode||229;if(e.type=="keydown"){switch(_11){case _5.SHIFT:case _5.ALT:case _5.CTRL:case _5.META:case _5.CAPS_LOCK:return;default:if(_11>=65&&_11<=90){return;}}}if(e.type=="keypress"&&typeof _11!="string"){return;}if(e.type=="input"){if(this.__skipInputEvent){this.__skipInputEvent=false;return;}}else{this.__skipInputEvent=true;}var _12=_6.mixin({},e,{charOrCode:_11,wasConsumed:false,preventDefault:function(){_12.wasConsumed=true;e.preventDefault();},stopPropagation:function(){e.stopPropagation();}});if(this.onInput(_12)===false){_4.stop(_12);}if(_12.wasConsumed){return;}setTimeout(_6.hitch(this,"_onInput",_12),0);};_1.forEach(["onkeydown","onkeypress","onpaste","oncut","oninput","oncompositionend"],function(_13){this.connect(this.textbox,_13,_10);},this);},_blankValue:"",filter:function(val){if(val===null){return this._blankValue;}if(typeof val!="string"){return val;}if(this.trim){val=_6.trim(val);}if(this.uppercase){val=val.toUpperCase();}if(this.lowercase){val=val.toLowerCase();}if(this.propercase){val=val.replace(/[^\s]+/g,function(_14){return _14.substring(0,1).toUpperCase()+_14.substring(1);});}return val;},_setBlurValue:function(){this._setValueAttr(this.get("value"),true);},_onBlur:function(e){if(this.disabled){return;}this._setBlurValue();this.inherited(arguments);if(this._selectOnClickHandle){this.disconnect(this._selectOnClickHandle);}},_isTextSelected:function(){return this.textbox.selectionStart==this.textbox.selectionEnd;},_onFocus:function(by){if(this.disabled||this.readOnly){return;}if(this.selectOnClick&&by=="mouse"){this._selectOnClickHandle=this.connect(this.domNode,"onmouseup",function(){this.disconnect(this._selectOnClickHandle);if(this._isTextSelected()){_8.selectInputText(this.textbox);}});}this.inherited(arguments);this._refreshState();},reset:function(){this.textbox.value="";this.inherited(arguments);},_setTextDirAttr:function(_15){if(!this._created||this.textDir!=_15){this._set("textDir",_15);this.applyTextDir(this.focusNode,this.focusNode.value);}}});_8._setSelectionRange=_7._setSelectionRange=function(_16,_17,_18){if(_16.setSelectionRange){_16.setSelectionRange(_17,_18);}};_8.selectInputText=_7.selectInputText=function(_19,_1a,_1b){_19=_3.byId(_19);if(isNaN(_1a)){_1a=0;}if(isNaN(_1b)){_1b=_19.value?_19.value.length:0;}try{_19.focus();_8._setSelectionRange(_19,_1a,_1b);}catch(e){}};return _8;}); \ No newline at end of file
+define("dijit/form/_TextBoxMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","../main"],function(_1,_2,_3,_4,_5,_6,on,_7){var _8=_2("dijit.form._TextBoxMixin",null,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",selectOnClick:false,placeHolder:"",_getValueAttr:function(){return this.parse(this.get("displayedValue"),this.constraints);},_setValueAttr:function(_9,_a,_b){var _c;if(_9!==undefined){_c=this.filter(_9);if(typeof _b!="string"){if(_c!==null&&((typeof _c!="number")||!isNaN(_c))){_b=this.filter(this.format(_c,this.constraints));}else{_b="";}}}if(_b!=null&&((typeof _b)!="number"||!isNaN(_b))&&this.textbox.value!=_b){this.textbox.value=_b;this._set("displayedValue",this.get("displayedValue"));}if(this.textDir=="auto"){this.applyTextDir(this.focusNode,_b);}this.inherited(arguments,[_c,_a]);},displayedValue:"",_getDisplayedValueAttr:function(){return this.filter(this.textbox.value);},_setDisplayedValueAttr:function(_d){if(_d==null){_d="";}else{if(typeof _d!="string"){_d=String(_d);}}this.textbox.value=_d;this._setValueAttr(this.get("value"),undefined);this._set("displayedValue",this.get("displayedValue"));if(this.textDir=="auto"){this.applyTextDir(this.focusNode,_d);}},format:function(_e){return _e==null?"":(_e.toString?_e.toString():_e);},parse:function(_f){return _f;},_refreshState:function(){},onInput:function(){},__skipInputEvent:false,_onInput:function(evt){if(this.textDir=="auto"){this.applyTextDir(this.focusNode,this.focusNode.value);}this._processInput(evt);},_processInput:function(evt){this._refreshState();this._set("displayedValue",this.get("displayedValue"));},postCreate:function(){this.textbox.setAttribute("value",this.textbox.value);this.inherited(arguments);var _10=function(e){var _11;if(e.type=="keydown"){_11=e.keyCode;switch(_11){case _5.SHIFT:case _5.ALT:case _5.CTRL:case _5.META:case _5.CAPS_LOCK:case _5.NUM_LOCK:case _5.SCROLL_LOCK:return;}if(!e.ctrlKey&&!e.metaKey&&!e.altKey){switch(_11){case _5.NUMPAD_0:case _5.NUMPAD_1:case _5.NUMPAD_2:case _5.NUMPAD_3:case _5.NUMPAD_4:case _5.NUMPAD_5:case _5.NUMPAD_6:case _5.NUMPAD_7:case _5.NUMPAD_8:case _5.NUMPAD_9:case _5.NUMPAD_MULTIPLY:case _5.NUMPAD_PLUS:case _5.NUMPAD_ENTER:case _5.NUMPAD_MINUS:case _5.NUMPAD_PERIOD:case _5.NUMPAD_DIVIDE:return;}if((_11>=65&&_11<=90)||(_11>=48&&_11<=57)||_11==_5.SPACE){return;}var _12=false;for(var i in _5){if(_5[i]===e.keyCode){_12=true;break;}}if(!_12){return;}}}_11=e.charCode>=32?String.fromCharCode(e.charCode):e.charCode;if(!_11){_11=(e.keyCode>=65&&e.keyCode<=90)||(e.keyCode>=48&&e.keyCode<=57)||e.keyCode==_5.SPACE?String.fromCharCode(e.keyCode):e.keyCode;}if(!_11){_11=229;}if(e.type=="keypress"){if(typeof _11!="string"){return;}if((_11>="a"&&_11<="z")||(_11>="A"&&_11<="Z")||(_11>="0"&&_11<="9")||(_11===" ")){if(e.ctrlKey||e.metaKey||e.altKey){return;}}}if(e.type=="input"){if(this.__skipInputEvent){this.__skipInputEvent=false;return;}}else{this.__skipInputEvent=true;}var _13={faux:true},_14;for(_14 in e){if(_14!="layerX"&&_14!="layerY"){var v=e[_14];if(typeof v!="function"&&typeof v!="undefined"){_13[_14]=v;}}}_6.mixin(_13,{charOrCode:_11,_wasConsumed:false,preventDefault:function(){_13._wasConsumed=true;e.preventDefault();},stopPropagation:function(){e.stopPropagation();}});if(this.onInput(_13)===false){_13.preventDefault();_13.stopPropagation();}if(_13._wasConsumed){return;}this.defer(function(){this._onInput(_13);});};this.own(on(this.textbox,"keydown, keypress, paste, cut, input, compositionend",_6.hitch(this,_10)));},_blankValue:"",filter:function(val){if(val===null){return this._blankValue;}if(typeof val!="string"){return val;}if(this.trim){val=_6.trim(val);}if(this.uppercase){val=val.toUpperCase();}if(this.lowercase){val=val.toLowerCase();}if(this.propercase){val=val.replace(/[^\s]+/g,function(_15){return _15.substring(0,1).toUpperCase()+_15.substring(1);});}return val;},_setBlurValue:function(){this._setValueAttr(this.get("value"),true);},_onBlur:function(e){if(this.disabled){return;}this._setBlurValue();this.inherited(arguments);},_isTextSelected:function(){return this.textbox.selectionStart!=this.textbox.selectionEnd;},_onFocus:function(by){if(this.disabled||this.readOnly){return;}if(this.selectOnClick&&by=="mouse"){this._selectOnClickHandle=this.connect(this.domNode,"onmouseup",function(){this.disconnect(this._selectOnClickHandle);this._selectOnClickHandle=null;if(!this._isTextSelected()){_8.selectInputText(this.textbox);}});this.defer(function(){if(this._selectOnClickHandle){this.disconnect(this._selectOnClickHandle);this._selectOnClickHandle=null;}},500);}this.inherited(arguments);this._refreshState();},reset:function(){this.textbox.value="";this.inherited(arguments);},_setTextDirAttr:function(_16){if(!this._created||this.textDir!=_16){this._set("textDir",_16);this.applyTextDir(this.focusNode,this.focusNode.value);}}});_8._setSelectionRange=_7._setSelectionRange=function(_17,_18,_19){if(_17.setSelectionRange){_17.setSelectionRange(_18,_19);}};_8.selectInputText=_7.selectInputText=function(_1a,_1b,_1c){_1a=_3.byId(_1a);if(isNaN(_1b)){_1b=0;}if(isNaN(_1c)){_1c=_1a.value?_1a.value.length:0;}try{_1a.focus();_8._setSelectionRange(_1a,_1b,_1c);}catch(e){}};return _8;}); \ No newline at end of file
diff --git a/lib/dijit/form/_ToggleButtonMixin.js b/lib/dijit/form/_ToggleButtonMixin.js
index bffb6a64d..18e99b6c7 100644
--- a/lib/dijit/form/_ToggleButtonMixin.js
+++ b/lib/dijit/form/_ToggleButtonMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/_ToggleButtonMixin",["dojo/_base/declare","dojo/dom-attr"],function(_1,_2){return _1("dijit.form._ToggleButtonMixin",null,{checked:false,_aria_attr:"aria-pressed",_onClick:function(_3){var _4=this.checked;this._set("checked",!_4);var _5=this.inherited(arguments);this.set("checked",_5?this.checked:_4);return _5;},_setCheckedAttr:function(_6,_7){this._set("checked",_6);_2.set(this.focusNode||this.domNode,"checked",_6);(this.focusNode||this.domNode).setAttribute(this._aria_attr,_6?"true":"false");this._handleOnChange(_6,_7);},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false);}});}); \ No newline at end of file
+define("dijit/form/_ToggleButtonMixin",["dojo/_base/declare","dojo/dom-attr"],function(_1,_2){return _1("dijit.form._ToggleButtonMixin",null,{checked:false,_aria_attr:"aria-pressed",_onClick:function(_3){var _4=this.checked;this._set("checked",!_4);var _5=this.inherited(arguments);this.set("checked",_5?this.checked:_4);return _5;},_setCheckedAttr:function(_6,_7){this._set("checked",_6);var _8=this.focusNode||this.domNode;_2.set(_8,"checked",!!_6);if(_6){_8.setAttribute("checked","");}else{_8.removeAttribute("checked");}_8.setAttribute(this._aria_attr,String(_6));this._handleOnChange(_6,_7);},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false);}});}); \ No newline at end of file
diff --git a/lib/dijit/form/nls/da/validate.js b/lib/dijit/form/nls/da/validate.js
index b29f9ccca..67f605900 100644
--- a/lib/dijit/form/nls/da/validate.js
+++ b/lib/dijit/form/nls/da/validate.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/da/validate",({invalidMessage:"Den angivne værdi er ikke gyldig.",missingMessage:"Værdien er påkrævet.",rangeMessage:"Værdien er uden for intervallet."})); \ No newline at end of file
+define("dijit/form/nls/da/validate",({invalidMessage:"Den angivne værdi er ugyldig.",missingMessage:"Værdien er påkrævet.",rangeMessage:"Værdien er uden for intervallet."})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/it/ComboBox.js b/lib/dijit/form/nls/it/ComboBox.js
index 80392837a..ff829811a 100644
--- a/lib/dijit/form/nls/it/ComboBox.js
+++ b/lib/dijit/form/nls/it/ComboBox.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/it/ComboBox",({previousMessage:"Scelte precedenti",nextMessage:"Altre scelte"})); \ No newline at end of file
+define("dijit/form/nls/it/ComboBox",({previousMessage:"Scelte precedenti",nextMessage:"Scelte successive"})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/it/validate.js b/lib/dijit/form/nls/it/validate.js
index 4d439d539..c6c8b9065 100644
--- a/lib/dijit/form/nls/it/validate.js
+++ b/lib/dijit/form/nls/it/validate.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/it/validate",({invalidMessage:"Il valore immesso non è valido.",missingMessage:"Questo valore è obbligatorio.",rangeMessage:"Questo valore non è compreso nell'intervallo."})); \ No newline at end of file
+define("dijit/form/nls/it/validate",({invalidMessage:"Il valore immesso non è valido.",missingMessage:"Questo valore è obbligatorio.",rangeMessage:"Questo valore è fuori dall'intervallo consentito."})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/pl/validate.js b/lib/dijit/form/nls/pl/validate.js
index 2a6a12893..dd83e464c 100644
--- a/lib/dijit/form/nls/pl/validate.js
+++ b/lib/dijit/form/nls/pl/validate.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/pl/validate",({invalidMessage:"Wprowadzona wartość jest niepoprawna.",missingMessage:"Ta wartość jest wymagana.",rangeMessage:"Ta wartość jest spoza zakresu."})); \ No newline at end of file
+define("dijit/form/nls/pl/validate",({invalidMessage:"Wprowadzona wartość jest nieprawidłowa.",missingMessage:"Ta wartość jest wymagana.",rangeMessage:"Ta wartość jest spoza zakresu."})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/sk/ComboBox.js b/lib/dijit/form/nls/sk/ComboBox.js
index 798051638..1229481dd 100644
--- a/lib/dijit/form/nls/sk/ComboBox.js
+++ b/lib/dijit/form/nls/sk/ComboBox.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/sk/ComboBox",({previousMessage:"Predchádzajúce voľby",nextMessage:"Ďalšie voľby"})); \ No newline at end of file
+define("dijit/form/nls/sk/ComboBox",({previousMessage:"Predchádzajúce možnosti",nextMessage:"Viac možností"})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/sk/Textarea.js b/lib/dijit/form/nls/sk/Textarea.js
index 003b04757..8d63972ba 100644
--- a/lib/dijit/form/nls/sk/Textarea.js
+++ b/lib/dijit/form/nls/sk/Textarea.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/sk/Textarea",({iframeEditTitle:"upraviť oblasť",iframeFocusTitle:"upraviť rám oblasti"})); \ No newline at end of file
+define("dijit/form/nls/sk/Textarea",({iframeEditTitle:"upraviť oblasť",iframeFocusTitle:"upraviť rámec oblasti"})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/sk/validate.js b/lib/dijit/form/nls/sk/validate.js
index d5b9883a5..b33fe9536 100644
--- a/lib/dijit/form/nls/sk/validate.js
+++ b/lib/dijit/form/nls/sk/validate.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/sk/validate",({invalidMessage:"Zadaná hodnota nie je platná.",missingMessage:"Táto hodnota je vyžadovaná.",rangeMessage:"Táto hodnota je mimo rozsah."})); \ No newline at end of file
+define("dijit/form/nls/sk/validate",({invalidMessage:"Zadaná hodnota nie je platná.",missingMessage:"Táto hodnota je povinná.",rangeMessage:"Táto hodnota je mimo rozsah."})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/sv/ComboBox.js b/lib/dijit/form/nls/sv/ComboBox.js
index 804ca0fb5..1a951a610 100644
--- a/lib/dijit/form/nls/sv/ComboBox.js
+++ b/lib/dijit/form/nls/sv/ComboBox.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/sv/ComboBox",({previousMessage:"Föregående alternativ",nextMessage:"Fler alternativ"})); \ No newline at end of file
+define("dijit/form/nls/sv/ComboBox",({previousMessage:"Tidigare val",nextMessage:"Fler val"})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/sv/validate.js b/lib/dijit/form/nls/sv/validate.js
index 3cccc47dc..28018f7ff 100644
--- a/lib/dijit/form/nls/sv/validate.js
+++ b/lib/dijit/form/nls/sv/validate.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/sv/validate",({invalidMessage:"Det angivna värdet är ogiltigt.",missingMessage:"Värdet är obligatoriskt.",rangeMessage:"Värdet är utanför intervallet."})); \ No newline at end of file
+define("dijit/form/nls/sv/validate",({invalidMessage:"Angivet värde är inte giltigt.",missingMessage:"Värdet krävs.",rangeMessage:"Värdet ligger utanför intervallet."})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/th/Textarea.js b/lib/dijit/form/nls/th/Textarea.js
index a5a4ea132..04ac12b70 100644
--- a/lib/dijit/form/nls/th/Textarea.js
+++ b/lib/dijit/form/nls/th/Textarea.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/th/Textarea",({iframeEditTitle:"แก้ไขพื้นที่",iframeFocusTitle:"แก้ไขกรอบพื้นที่"})); \ No newline at end of file
+define("dijit/form/nls/th/Textarea",({iframeEditTitle:"พื้นที่แก้ไข",iframeFocusTitle:"กรอบพื้นที่แก้ไข"})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/zh/Textarea.js b/lib/dijit/form/nls/zh/Textarea.js
index 917b5cd68..4be70540d 100644
--- a/lib/dijit/form/nls/zh/Textarea.js
+++ b/lib/dijit/form/nls/zh/Textarea.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/zh/Textarea",({iframeEditTitle:"编辑区",iframeFocusTitle:"编辑区框架"})); \ No newline at end of file
+define("dijit/form/nls/zh/Textarea",({iframeEditTitle:"编辑区域",iframeFocusTitle:"编辑区域框"})); \ No newline at end of file
diff --git a/lib/dijit/form/nls/zh/validate.js b/lib/dijit/form/nls/zh/validate.js
index 7a78d23c6..6b6c555c4 100644
--- a/lib/dijit/form/nls/zh/validate.js
+++ b/lib/dijit/form/nls/zh/validate.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/form/nls/zh/validate",({invalidMessage:"输入的值无效。",missingMessage:"此值是必需值。",rangeMessage:"此值超出范围。"})); \ No newline at end of file
+define("dijit/form/nls/zh/validate",({invalidMessage:"输入的值无效。",missingMessage:"该值是必需的。",rangeMessage:"此值超出范围。"})); \ No newline at end of file
diff --git a/lib/dijit/form/templates/CheckBox.html b/lib/dijit/form/templates/CheckBox.html
index fd81fc226..a9c99b53b 100644
--- a/lib/dijit/form/templates/CheckBox.html
+++ b/lib/dijit/form/templates/CheckBox.html
@@ -1,6 +1,6 @@
<div class="dijit dijitReset dijitInline" role="presentation"
><input
- ${!nameAttrSetting} type="${type}" ${checkedAttrSetting}
+ ${!nameAttrSetting} type="${type}" role="${type}" aria-checked="false" ${checkedAttrSetting}
class="dijitReset dijitCheckBoxInput"
data-dojo-attach-point="focusNode"
data-dojo-attach-event="onclick:_onClick"
diff --git a/lib/dijit/form/templates/ComboButton.html b/lib/dijit/form/templates/ComboButton.html
index 49eed10a8..1ffe2ec89 100644
--- a/lib/dijit/form/templates/ComboButton.html
+++ b/lib/dijit/form/templates/ComboButton.html
@@ -18,6 +18,6 @@
><div class="dijitReset dijitArrowButtonChar" role="presentation">&#9660;</div
></td
><td style="display:none !important;"
- ><input ${!nameAttrSetting} type="${type}" value="${value}" data-dojo-attach-point="valueNode"
+ ><input ${!nameAttrSetting} type="${type}" value="${value}" data-dojo-attach-point="valueNode" role="presentation"
/></td></tr></tbody
></table>
diff --git a/lib/dijit/form/templates/DropDownBox.html b/lib/dijit/form/templates/DropDownBox.html
index 0314ad951..eb8f3e70d 100644
--- a/lib/dijit/form/templates/DropDownBox.html
+++ b/lib/dijit/form/templates/DropDownBox.html
@@ -3,7 +3,7 @@
role="combobox"
><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'
data-dojo-attach-point="_buttonNode, _popupStateNode" role="presentation"
- ><input class="dijitReset dijitInputField dijitArrowButtonInner" value="&#9660; " type="text" tabIndex="-1" readonly="readonly" role="presentation"
+ ><input class="dijitReset dijitInputField dijitArrowButtonInner" value="&#9660; " type="text" tabIndex="-1" readonly="readonly" role="button presentation" aria-hidden="true"
${_buttonInputDisabled}
/></div
><div class='dijitReset dijitValidationContainer'
diff --git a/lib/dijit/form/templates/DropDownButton.html b/lib/dijit/form/templates/DropDownButton.html
index 56d2618f4..92d9ad047 100644
--- a/lib/dijit/form/templates/DropDownButton.html
+++ b/lib/dijit/form/templates/DropDownButton.html
@@ -16,5 +16,5 @@
></span
></span
><input ${!nameAttrSetting} type="${type}" value="${value}" class="dijitOffScreen" tabIndex="-1"
- data-dojo-attach-point="valueNode"
+ data-dojo-attach-point="valueNode" role="presentation"
/></span>
diff --git a/lib/dijit/form/templates/HorizontalSlider.html b/lib/dijit/form/templates/HorizontalSlider.html
index 9fd16d4ea..f633281cb 100644
--- a/lib/dijit/form/templates/HorizontalSlider.html
+++ b/lib/dijit/form/templates/HorizontalSlider.html
@@ -1,4 +1,5 @@
<table class="dijit dijitReset dijitSlider dijitSliderH" cellspacing="0" cellpadding="0" border="0" rules="none" data-dojo-attach-event="onkeypress:_onKeyPress,onkeyup:_onKeyUp"
+ role="presentation"
><tr class="dijitReset"
><td class="dijitReset" colspan="2"></td
><td data-dojo-attach-point="topDecoration" class="dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH"></td
@@ -16,7 +17,7 @@
/><div class="dijitReset dijitSliderBarContainerH" role="presentation" data-dojo-attach-point="sliderBarContainer"
><div role="presentation" data-dojo-attach-point="progressBar" class="dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH" data-dojo-attach-event="press:_onBarClick"
><div class="dijitSliderMoveable dijitSliderMoveableH"
- ><div data-dojo-attach-point="sliderHandle,focusNode" class="dijitSliderImageHandle dijitSliderImageHandleH" data-dojo-attach-event="press:_onHandleClick" role="slider" valuemin="${minimum}" valuemax="${maximum}"></div
+ ><div data-dojo-attach-point="sliderHandle,focusNode" class="dijitSliderImageHandle dijitSliderImageHandleH" data-dojo-attach-event="press:_onHandleClick" role="slider"></div
></div
></div
><div role="presentation" data-dojo-attach-point="remainingBar" class="dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH" data-dojo-attach-event="press:_onBarClick"></div
diff --git a/lib/dijit/form/templates/Select.html b/lib/dijit/form/templates/Select.html
index 9e917ab92..acf2d2c23 100644
--- a/lib/dijit/form/templates/Select.html
+++ b/lib/dijit/form/templates/Select.html
@@ -1,14 +1,18 @@
<table class="dijit dijitReset dijitInline dijitLeft"
data-dojo-attach-point="_buttonNode,tableNode,focusNode" cellspacing='0' cellpadding='0'
- role="combobox" aria-haspopup="true"
+ role="listbox" aria-haspopup="true"
><tbody role="presentation"><tr role="presentation"
- ><td class="dijitReset dijitStretch dijitButtonContents dijitButtonNode" role="presentation"
- ><span class="dijitReset dijitInline dijitButtonText" data-dojo-attach-point="containerNode,_popupStateNode"></span
+ ><td class="dijitReset dijitStretch dijitButtonContents" role="presentation"
+ ><div class="dijitReset dijitInputField dijitButtonText" data-dojo-attach-point="containerNode,_popupStateNode" role="presentation"></div
+ ><div class="dijitReset dijitValidationContainer"
+ ><input class="dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value="&#935; " type="text" tabIndex="-1" readonly="readonly" role="presentation"
+ /></div
><input type="hidden" ${!nameAttrSetting} data-dojo-attach-point="valueNode" value="${value}" aria-hidden="true"
- /></td><td class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton"
- data-dojo-attach-point="titleNode" role="presentation"
- ><div class="dijitReset dijitArrowButtonInner" role="presentation"></div
- ><div class="dijitReset dijitArrowButtonChar" role="presentation">&#9660;</div
- ></td
+ /></td
+ ><td class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer"
+ data-dojo-attach-point="titleNode" role="presentation"
+ ><input class="dijitReset dijitInputField dijitArrowButtonInner" value="&#9660; " type="text" tabIndex="-1" readonly="readonly" role="presentation"
+ ${_buttonInputDisabled}
+ /></td
></tr></tbody
></table>
diff --git a/lib/dijit/form/templates/Spinner.html b/lib/dijit/form/templates/Spinner.html
index 468613d01..a711cd4e3 100644
--- a/lib/dijit/form/templates/Spinner.html
+++ b/lib/dijit/form/templates/Spinner.html
@@ -5,20 +5,20 @@
/><div class="dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitUpArrowButton"
data-dojo-attach-point="upArrowNode"
><div class="dijitArrowButtonInner"
- ><input class="dijitReset dijitInputField" value="&#9650;" type="text" tabIndex="-1" readonly="readonly" role="presentation"
+ ><input class="dijitReset dijitInputField" value="&#9650; " type="text" tabIndex="-1" readonly="readonly" role="presentation"
${_buttonInputDisabled}
/></div
></div
><div class="dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitDownArrowButton"
data-dojo-attach-point="downArrowNode"
><div class="dijitArrowButtonInner"
- ><input class="dijitReset dijitInputField" value="&#9660;" type="text" tabIndex="-1" readonly="readonly" role="presentation"
+ ><input class="dijitReset dijitInputField" value="&#9660; " type="text" tabIndex="-1" readonly="readonly" role="presentation"
${_buttonInputDisabled}
/></div
></div
></div
><div class='dijitReset dijitValidationContainer'
- ><input class="dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value="&#935;" type="text" tabIndex="-1" readonly="readonly" role="presentation"
+ ><input class="dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value="&#935; " type="text" tabIndex="-1" readonly="readonly" role="presentation"
/></div
><div class="dijitReset dijitInputField dijitInputContainer"
><input class='dijitReset dijitInputInner' data-dojo-attach-point="textbox,focusNode" type="${type}" data-dojo-attach-event="onkeypress:_onKeyPress"
diff --git a/lib/dijit/form/templates/VerticalSlider.html b/lib/dijit/form/templates/VerticalSlider.html
index 0c72ed90a..372c82cf0 100644
--- a/lib/dijit/form/templates/VerticalSlider.html
+++ b/lib/dijit/form/templates/VerticalSlider.html
@@ -1,4 +1,5 @@
<table class="dijit dijitReset dijitSlider dijitSliderV" cellspacing="0" cellpadding="0" border="0" rules="none" data-dojo-attach-event="onkeypress:_onKeyPress,onkeyup:_onKeyUp"
+ role="presentation"
><tr class="dijitReset"
><td class="dijitReset"></td
><td class="dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV"
@@ -14,19 +15,19 @@
><td class="dijitReset"></td
></tr
><tr class="dijitReset"
- ><td data-dojo-attach-point="leftDecoration" class="dijitReset dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV"></td
+ ><td data-dojo-attach-point="leftDecoration" class="dijitReset dijitInline dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV"></td
><td class="dijitReset dijitSliderDecorationC" style="height:100%;"
><input data-dojo-attach-point="valueNode" type="hidden" ${!nameAttrSetting}
/><center class="dijitReset dijitSliderBarContainerV" role="presentation" data-dojo-attach-point="sliderBarContainer"
><div role="presentation" data-dojo-attach-point="remainingBar" class="dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV" data-dojo-attach-event="press:_onBarClick"><!--#5629--></div
><div role="presentation" data-dojo-attach-point="progressBar" class="dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV" data-dojo-attach-event="press:_onBarClick"
><div class="dijitSliderMoveable dijitSliderMoveableV" style="vertical-align:top;"
- ><div data-dojo-attach-point="sliderHandle,focusNode" class="dijitSliderImageHandle dijitSliderImageHandleV" data-dojo-attach-event="press:_onHandleClick" role="slider" valuemin="${minimum}" valuemax="${maximum}"></div
+ ><div data-dojo-attach-point="sliderHandle,focusNode" class="dijitSliderImageHandle dijitSliderImageHandleV" data-dojo-attach-event="press:_onHandleClick" role="slider"></div
></div
></div
></center
></td
- ><td data-dojo-attach-point="containerNode,rightDecoration" class="dijitReset dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV"></td
+ ><td data-dojo-attach-point="containerNode,rightDecoration" class="dijitReset dijitInline dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV"></td
></tr
><tr class="dijitReset"
><td class="dijitReset"></td
diff --git a/lib/dijit/hccss.js b/lib/dijit/hccss.js
index 162ea1c3a..547f3075d 100644
--- a/lib/dijit/hccss.js
+++ b/lib/dijit/hccss.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/hccss",["require","dojo/_base/config","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/ready","dojo/_base/sniff","dojo/_base/window"],function(_1,_2,_3,_4,_5,_6,_7,_8){if(_7("ie")||_7("mozilla")){_6(90,function(){var _9=_4.create("div",{id:"a11yTestNode",style:{cssText:"border: 1px solid;"+"border-color:red green;"+"position: absolute;"+"height: 5px;"+"top: -999px;"+"background-image: url(\""+(_2.blankGif||_1.toUrl("dojo/resources/blank.gif"))+"\");"}},_8.body());var cs=_5.getComputedStyle(_9);if(cs){var _a=cs.backgroundImage;var _b=(cs.borderTopColor==cs.borderRightColor)||(_a!=null&&(_a=="none"||_a=="url(invalid-url:)"));if(_b){_3.add(_8.body(),"dijit_a11y");}if(_7("ie")){_9.outerHTML="";}else{_8.body().removeChild(_9);}}});}}); \ No newline at end of file
+define("dijit/hccss",["dojo/dom-class","dojo/hccss","dojo/ready","dojo/_base/window"],function(_1,_2,_3,_4){_3(90,function(){if(_2("highcontrast")){_1.add(_4.body(),"dijit_a11y");}});return _2;}); \ No newline at end of file
diff --git a/lib/dijit/icons/commonIcons.css b/lib/dijit/icons/commonIcons.css
index 8d0060e85..d07d0051b 100644
--- a/lib/dijit/icons/commonIcons.css
+++ b/lib/dijit/icons/commonIcons.css
@@ -1,171 +1 @@
-/* Dijit widget common icons*/
-
-/*commonIcons.css is located in dijit/icons
-
-commonIconsRtl.css is TBD. This needs to be reviewed to determine in Rtl is reqd.
-
-The 16 x 16px icons in these sprites are action and object type images which can be used in the following widgets: accordionContainer, menu, tab, titlepane, tree, and all button widgets and error validation contexts. */
-
-.dijitIconSave,
-.dijitIconPrint,
-.dijitIconCut,
-.dijitIconCopy,
-.dijitIconClear,
-.dijitIconDelete,
-.dijitIconUndo,
-.dijitIconEdit,
-.dijitIconNewTask,
-.dijitIconEditTask,
-.dijitIconEditProperty,
-.dijitIconTask,
-.dijitIconFilter,
-.dijitIconConfigure,
-.dijitIconSearch,
-.dijitIconApplication,
-.dijitIconBookmark,
-.dijitIconChart,
-.dijitIconConnector,
-.dijitIconDatabase,
-.dijitIconDocuments,
-.dijitIconMail,
-.dijitLeaf,
-.dijitIconFile,
-.dijitIconFunction,
-.dijitIconKey,
-.dijitIconPackage,
-.dijitIconSample,
-.dijitIconTable,
-.dijitIconUsers,
-.dijitFolderClosed,
-.dijitIconFolderClosed,
-.dijitFolderOpened,
-.dijitIconFolderOpen,
-.dijitIconError {
- background-image: url('images/commonIconsObjActEnabled.png'); /* Contains both object and action icons in a sprite image for the enabled state. */
- width: 16px;
- height: 16px;
-}
-
-.dj_ie6 .dijitIconSave,
-.dj_ie6 .dijitIconPrint,
-.dj_ie6 .dijitIconCut,
-.dj_ie6 .dijitIconCopy,
-.dj_ie6 .dijitIconClear,
-.dj_ie6 .dijitIconDelete,
-.dj_ie6 .dijitIconUndo,
-.dj_ie6 .dijitIconEdit,
-.dj_ie6 .dijitIconNewTask,
-.dj_ie6 .dijitIconEditTask,
-.dj_ie6 .dijitIconEditProperty,
-.dj_ie6 .dijitIconTask,
-.dj_ie6 .dijitIconFilter,
-.dj_ie6 .dijitIconConfigure,
-.dj_ie6 .dijitIconSearch,
-.dj_ie6 .dijitIconApplication,
-.dj_ie6 .dijitIconBookmark,
-.dj_ie6 .dijitIconChart,
-.dj_ie6 .dijitIconConnector,
-.dj_ie6 .dijitIconDatabase,
-.dj_ie6 .dijitIconDocuments,
-.dj_ie6 .dijitIconMail,
-.dj_ie6 .dijitLeaf,
-.dj_ie6 .dijitIconFile,
-.dj_ie6 .dijitIconFunction,
-.dj_ie6 .dijitIconKey,
-.dj_ie6 .dijitIconPackage,
-.dj_ie6 .dijitIconSample,
-.dj_ie6 .dijitIconTable,
-.dj_ie6 .dijitIconUsers,
-.dj_ie6 .dijitFolderClosed,
-.dj_ie6 .dijitIconFolderClosed,
-.dj_ie6 .dijitFolderOpened,
-.dj_ie6 .dijitIconFolderOpen,
-.dj_ie6 .dijitIconError {
- background-image: url('images/commonIconsObjActEnabled8bit.png');
-}
-
-.dijitDisabled .dijitIconSave,
-.dijitDisabled .dijitIconPrint,
-.dijitDisabled .dijitIconCut,
-.dijitDisabled .dijitIconCopy,
-.dijitDisabled .dijitIconClear,
-.dijitDisabled .dijitIconDelete,
-.dijitDisabled .dijitIconUndo,
-.dijitDisabled .dijitIconEdit,
-.dijitDisabled .dijitIconNewTask,
-.dijitDisabled .dijitIconEditTask,
-.dijitDisabled .dijitIconEditProperty,
-.dijitDisabled .dijitIconTask,
-.dijitDisabled .dijitIconFilter,
-.dijitDisabled .dijitIconConfigure,
-.dijitDisabled .dijitIconSearch,
-.dijitDisabled .dijitIconApplication,
-.dijitDisabled .dijitIconBookmark,
-.dijitDisabled .dijitIconChart,
-.dijitDisabled .dijitIconConnector,
-.dijitDisabled .dijitIconDatabase,
-.dijitDisabled .dijitIconDocuments,
-.dijitDisabled .dijitIconMail,
-.dijitDisabled .dijitLeaf,
-.dijitDisabled .dijitIconFile,
-.dijitDisabled .dijitIconFunction,
-.dijitDisabled .dijitIconKey,
-.dijitDisabled .dijitIconPackage,
-.dijitDisabled .dijitIconSample,
-.dijitDisabled .dijitIconTable,
-.dijitDisabled .dijitIconUsers,
-.dijitDisabled .dijitFolderClosed,
-.dijitDisabled .dijitIconFolderClosed,
-.dijitDisabled .dijitFolderOpened,
-.dijitDisabled .dijitIconFolderOpen,
-.dijitDisabled .dijitIconError {
- background-image: url('images/commonIconsObjActDisabled.png'); /* Contains both object and action icons as a sprite image for the disabled state. These would be used by buttons and menus. */
-}
-
-/*Action icons*/
-.dijitIconSave { background-position: 0; }
-.dijitIconPrint { background-position: -16px; }
-.dijitIconCut { background-position: -32px; }
-.dijitIconCopy { background-position: -48px; }
-.dijitIconClear { background-position: -64px; }
-.dijitIconDelete { background-position: -80px; }
-.dijitIconUndo { background-position: -96px; }
-.dijitIconEdit { background-position: -112px; }
-.dijitIconNewTask { background-position: -128px; }
-.dijitIconEditTask { background-position: -144px; }
-.dijitIconEditProperty { background-position: -166px; }
-.dijitIconTask { background-position: -176px; }
-.dijitIconFilter { background-position: -192px; }
-.dijitIconConfigure { background-position: -208px; }
-.dijitIconSearch { background-position: -224px; }
-.dijitIconError { background-position: -496px; }
-
-/*Object icons*/
-.dijitIconApplication { background-position: -240px; }
-.dijitIconBookmark { background-position: -256px; }
-.dijitIconChart { background-position: -272px; }
-.dijitIconConnector { background-position: -288px; }
-.dijitIconDatabase { background-position: -304px; }
-.dijitIconDocuments { background-position: -320px; }
-.dijitIconMail { background-position: -336px; }
-.dijitIconFile, .dijitLeaf { background-position: -352px; }
-.dijitIconFunction { background-position: -368px; }
-.dijitIconKey { background-position: -384px; }
-.dijitIconPackage{ background-position: -400px; }
-.dijitIconSample { background-position: -416px; }
-.dijitIconTable { background-position: -432px; }
-.dijitIconUsers { background-position: -448px; }
-
-
-/*Tree folder icons*/
-.dijitIconFolderClosed, .dijitFolderClosed { background-position: -464px; }
-.dijitIconFolderOpen, .dijitFolderOpened { background-position: -480px; }
-
-/*Loading animation*/
-.dijitIconLoading {
- background:url('images/loadingAnimation_rtl.gif') no-repeat;
- height: 20px;
- width: 20px;
-}
-
-
+.dijitIconSave,.dijitIconPrint,.dijitIconCut,.dijitIconCopy,.dijitIconClear,.dijitIconDelete,.dijitIconUndo,.dijitIconEdit,.dijitIconNewTask,.dijitIconEditTask,.dijitIconEditProperty,.dijitIconTask,.dijitIconFilter,.dijitIconConfigure,.dijitIconSearch,.dijitIconApplication,.dijitIconBookmark,.dijitIconChart,.dijitIconConnector,.dijitIconDatabase,.dijitIconDocuments,.dijitIconMail,.dijitLeaf,.dijitIconFile,.dijitIconFunction,.dijitIconKey,.dijitIconPackage,.dijitIconSample,.dijitIconTable,.dijitIconUsers,.dijitFolderClosed,.dijitIconFolderClosed,.dijitFolderOpened,.dijitIconFolderOpen,.dijitIconError {background-image: url('images/commonIconsObjActEnabled.png'); width: 16px; height: 16px;}.dj_ie6 .dijitIconSave,.dj_ie6 .dijitIconPrint,.dj_ie6 .dijitIconCut,.dj_ie6 .dijitIconCopy,.dj_ie6 .dijitIconClear,.dj_ie6 .dijitIconDelete,.dj_ie6 .dijitIconUndo,.dj_ie6 .dijitIconEdit,.dj_ie6 .dijitIconNewTask,.dj_ie6 .dijitIconEditTask,.dj_ie6 .dijitIconEditProperty,.dj_ie6 .dijitIconTask,.dj_ie6 .dijitIconFilter,.dj_ie6 .dijitIconConfigure,.dj_ie6 .dijitIconSearch,.dj_ie6 .dijitIconApplication,.dj_ie6 .dijitIconBookmark,.dj_ie6 .dijitIconChart,.dj_ie6 .dijitIconConnector,.dj_ie6 .dijitIconDatabase,.dj_ie6 .dijitIconDocuments,.dj_ie6 .dijitIconMail,.dj_ie6 .dijitLeaf,.dj_ie6 .dijitIconFile,.dj_ie6 .dijitIconFunction,.dj_ie6 .dijitIconKey,.dj_ie6 .dijitIconPackage,.dj_ie6 .dijitIconSample,.dj_ie6 .dijitIconTable,.dj_ie6 .dijitIconUsers,.dj_ie6 .dijitFolderClosed,.dj_ie6 .dijitIconFolderClosed,.dj_ie6 .dijitFolderOpened,.dj_ie6 .dijitIconFolderOpen,.dj_ie6 .dijitIconError {background-image: url('images/commonIconsObjActEnabled8bit.png');}.dijitDisabled .dijitIconSave,.dijitDisabled .dijitIconPrint,.dijitDisabled .dijitIconCut,.dijitDisabled .dijitIconCopy,.dijitDisabled .dijitIconClear,.dijitDisabled .dijitIconDelete,.dijitDisabled .dijitIconUndo,.dijitDisabled .dijitIconEdit,.dijitDisabled .dijitIconNewTask,.dijitDisabled .dijitIconEditTask,.dijitDisabled .dijitIconEditProperty,.dijitDisabled .dijitIconTask,.dijitDisabled .dijitIconFilter,.dijitDisabled .dijitIconConfigure,.dijitDisabled .dijitIconSearch,.dijitDisabled .dijitIconApplication,.dijitDisabled .dijitIconBookmark,.dijitDisabled .dijitIconChart,.dijitDisabled .dijitIconConnector,.dijitDisabled .dijitIconDatabase,.dijitDisabled .dijitIconDocuments,.dijitDisabled .dijitIconMail,.dijitDisabled .dijitLeaf,.dijitDisabled .dijitIconFile,.dijitDisabled .dijitIconFunction,.dijitDisabled .dijitIconKey,.dijitDisabled .dijitIconPackage,.dijitDisabled .dijitIconSample,.dijitDisabled .dijitIconTable,.dijitDisabled .dijitIconUsers,.dijitDisabled .dijitFolderClosed,.dijitDisabled .dijitIconFolderClosed,.dijitDisabled .dijitFolderOpened,.dijitDisabled .dijitIconFolderOpen,.dijitDisabled .dijitIconError {background-image: url('images/commonIconsObjActDisabled.png');}.dijitIconSave {background-position: 0;}.dijitIconPrint {background-position: -16px;}.dijitIconCut {background-position: -32px;}.dijitIconCopy {background-position: -48px;}.dijitIconClear {background-position: -64px;}.dijitIconDelete {background-position: -80px;}.dijitIconUndo {background-position: -96px;}.dijitIconEdit {background-position: -112px;}.dijitIconNewTask {background-position: -128px;}.dijitIconEditTask {background-position: -144px;}.dijitIconEditProperty {background-position: -160px;}.dijitIconTask {background-position: -176px;}.dijitIconFilter {background-position: -192px;}.dijitIconConfigure {background-position: -208px;}.dijitIconSearch {background-position: -224px;}.dijitIconError {background-position: -496px;} .dijitIconApplication {background-position: -240px;}.dijitIconBookmark {background-position: -256px;}.dijitIconChart {background-position: -272px;}.dijitIconConnector {background-position: -288px;}.dijitIconDatabase {background-position: -304px;}.dijitIconDocuments {background-position: -320px;}.dijitIconMail {background-position: -336px;}.dijitIconFile, .dijitLeaf {background-position: -352px;}.dijitIconFunction {background-position: -368px;}.dijitIconKey {background-position: -384px;}.dijitIconPackage{background-position: -400px;}.dijitIconSample {background-position: -416px;}.dijitIconTable {background-position: -432px;}.dijitIconUsers {background-position: -448px;}.dijitIconFolderClosed, .dijitFolderClosed {background-position: -464px;}.dijitIconFolderOpen, .dijitFolderOpened {background-position: -480px;}.dijitIconLoading {background:url('images/loadingAnimation_rtl.gif') no-repeat; height: 20px; width: 20px;} \ No newline at end of file
diff --git a/lib/dijit/icons/commonIcons_rtl.css b/lib/dijit/icons/commonIcons_rtl.css
index 8d3ea03b7..105011a55 100644
--- a/lib/dijit/icons/commonIcons_rtl.css
+++ b/lib/dijit/icons/commonIcons_rtl.css
@@ -1,121 +1 @@
-/* Dijit widget common icons*/
-
-/*commonIcons_rtl.css is located in dijit/icons
-
-The 16 x 16px icons in these sprites are action and object type images which can be used in the following widgets: accordionContainer, menu, tab, titlepane, tree, and all button widgets and error validation contexts. */
-
-.dijitRtl .dijitIconSave,
-.dijitRtl .dijitIconPrint,
-.dijitRtl .dijitIconCut,
-.dijitRtl .dijitIconCopy,
-.dijitRtl .dijitIconClear,
-.dijitRtl .dijitIconDelete,
-.dijitRtl .dijitIconUndo,
-.dijitRtl .dijitIconEdit,
-.dijitRtl .dijitIconNewTask,
-.dijitRtl .dijitIconEditTask,
-.dijitRtl .dijitIconEditProperty,
-.dijitRtl .dijitIconTask,
-.dijitRtl .dijitIconFilter,
-.dijitRtl .dijitIconConfigure,
-.dijitRtl .dijitIconSearch,
-.dijitRtl .dijitIconApplication,
-.dijitRtl .dijitIconBookmark,
-.dijitRtl .dijitIconChart,
-.dijitRtl .dijitIconConnector,
-.dijitRtl .dijitIconDatabase,
-.dijitRtl .dijitIconDocuments,
-.dijitRtl .dijitIconMail,
-.dijitRtl .dijitLeaf,
-.dijitRtl .dijitIconFile,
-.dijitRtl .dijitIconFunction,
-.dijitRtl .dijitIconKey,
-.dijitRtl .dijitIconPackage,
-.dijitRtl .dijitIconSample,
-.dijitRtl .dijitIconTable,
-.dijitRtl .dijitIconUsers,
-.dijitRtl .dijitFolderClosed,
-.dijitRtl .dijitIconFolderClosed,
-.dijitRtl .dijitFolderOpened,
-.dijitRtl .dijitIconFolderOpen,
-.dijitRtl .dijitIconError {
- background-image: url('images/commonIconsObjActEnabled_rtl.png'); /* Contains both object and action icons in a sprite image for the enabled state. */
- width: 16px;
- height: 16px;
-}
-
-.dj_ie6 .dijitRtl .dijitIconSave,
-.dj_ie6 .dijitRtl .dijitIconPrint,
-.dj_ie6 .dijitRtl .dijitIconCut,
-.dj_ie6 .dijitRtl .dijitIconCopy,
-.dj_ie6 .dijitRtl .dijitIconClear,
-.dj_ie6 .dijitRtl .dijitIconDelete,
-.dj_ie6 .dijitRtl .dijitIconUndo,
-.dj_ie6 .dijitRtl .dijitIconEdit,
-.dj_ie6 .dijitRtl .dijitIconNewTask,
-.dj_ie6 .dijitRtl .dijitIconEditTask,
-.dj_ie6 .dijitRtl .dijitIconEditProperty,
-.dj_ie6 .dijitRtl .dijitIconTask,
-.dj_ie6 .dijitRtl .dijitIconFilter,
-.dj_ie6 .dijitRtl .dijitIconConfigure,
-.dj_ie6 .dijitRtl .dijitIconSearch,
-.dj_ie6 .dijitRtl .dijitIconApplication,
-.dj_ie6 .dijitRtl .dijitIconBookmark,
-.dj_ie6 .dijitRtl .dijitIconChart,
-.dj_ie6 .dijitRtl .dijitIconConnector,
-.dj_ie6 .dijitRtl .dijitIconDatabase,
-.dj_ie6 .dijitRtl .dijitIconDocuments,
-.dj_ie6 .dijitRtl .dijitIconMail,
-.dj_ie6 .dijitRtl .dijitLeaf,
-.dj_ie6 .dijitRtl .dijitIconFile,
-.dj_ie6 .dijitRtl .dijitIconFunction,
-.dj_ie6 .dijitRtl .dijitIconKey,
-.dj_ie6 .dijitRtl .dijitIconPackage,
-.dj_ie6 .dijitRtl .dijitIconSample,
-.dj_ie6 .dijitRtl .dijitIconTable,
-.dj_ie6 .dijitRtl .dijitIconUsers,
-.dj_ie6 .dijitRtl .dijitFolderClosed,
-.dj_ie6 .dijitRtl .dijitIconFolderClosed,
-.dj_ie6 .dijitRtl .dijitFolderOpened,
-.dj_ie6 .dijitRtl .dijitIconFolderOpen,
-.dj_ie6 .dijitRtl .dijitIconError {
- background-image: url('images/commonIconsObjActEnabled8bit_rtl.png');
-}
-
-.dijitRtl .dijitDisabled .dijitIconSave,
-.dijitRtl .dijitDisabled .dijitIconPrint,
-.dijitRtl .dijitDisabled .dijitIconCut,
-.dijitRtl .dijitDisabled .dijitIconCopy,
-.dijitRtl .dijitDisabled .dijitIconClear,
-.dijitRtl .dijitDisabled .dijitIconDelete,
-.dijitRtl .dijitDisabled .dijitIconUndo,
-.dijitRtl .dijitDisabled .dijitIconEdit,
-.dijitRtl .dijitDisabled .dijitIconNewTask,
-.dijitRtl .dijitDisabled .dijitIconEditTask,
-.dijitRtl .dijitDisabled .dijitIconEditProperty,
-.dijitRtl .dijitDisabled .dijitIconTask,
-.dijitRtl .dijitDisabled .dijitIconFilter,
-.dijitRtl .dijitDisabled .dijitIconConfigure,
-.dijitRtl .dijitDisabled .dijitIconSearch,
-.dijitRtl .dijitDisabled .dijitIconApplication,
-.dijitRtl .dijitDisabled .dijitIconBookmark,
-.dijitRtl .dijitDisabled .dijitIconChart,
-.dijitRtl .dijitDisabled .dijitIconConnector,
-.dijitRtl .dijitDisabled .dijitIconDatabase,
-.dijitRtl .dijitDisabled .dijitIconDocuments,
-.dijitRtl .dijitDisabled .dijitIconMail,
-.dijitRtl .dijitDisabled .dijitLeaf,
-.dijitRtl .dijitDisabled .dijitIconFile,
-.dijitRtl .dijitDisabled .dijitIconFunction,
-.dijitRtl .dijitDisabled .dijitIconKey,
-.dijitRtl .dijitDisabled .dijitIconPackage,
-.dijitRtl .dijitDisabled .dijitIconSample,
-.dijitRtl .dijitDisabled .dijitIconTable,
-.dijitRtl .dijitDisabled .dijitIconUsers,
-.dijitRtl .dijitDisabled .dijitFolderClosed,
-.dijitRtl .dijitDisabled .dijitIconFolderClosed,
-.dijitRtl .dijitDisabled .dijitFolderOpened,
-.dijitRtl .dijitDisabled .dijitIconFolderOpen,
-.dijitRtl .dijitDisabled .dijitIconError {
- background-image: url('images/commonIconsObjActDisabled_rtl.png'); /* Contains both object and action icons as a sprite image for the disabled state. These would be used by buttons and menus. */
-}
+.dijitRtl .dijitIconSave,.dijitRtl .dijitIconPrint,.dijitRtl .dijitIconCut,.dijitRtl .dijitIconCopy,.dijitRtl .dijitIconClear,.dijitRtl .dijitIconDelete,.dijitRtl .dijitIconUndo,.dijitRtl .dijitIconEdit,.dijitRtl .dijitIconNewTask,.dijitRtl .dijitIconEditTask,.dijitRtl .dijitIconEditProperty,.dijitRtl .dijitIconTask,.dijitRtl .dijitIconFilter,.dijitRtl .dijitIconConfigure,.dijitRtl .dijitIconSearch,.dijitRtl .dijitIconApplication,.dijitRtl .dijitIconBookmark,.dijitRtl .dijitIconChart,.dijitRtl .dijitIconConnector,.dijitRtl .dijitIconDatabase,.dijitRtl .dijitIconDocuments,.dijitRtl .dijitIconMail,.dijitRtl .dijitLeaf,.dijitRtl .dijitIconFile,.dijitRtl .dijitIconFunction,.dijitRtl .dijitIconKey,.dijitRtl .dijitIconPackage,.dijitRtl .dijitIconSample,.dijitRtl .dijitIconTable,.dijitRtl .dijitIconUsers,.dijitRtl .dijitFolderClosed,.dijitRtl .dijitIconFolderClosed,.dijitRtl .dijitFolderOpened,.dijitRtl .dijitIconFolderOpen,.dijitRtl .dijitIconError {background-image: url('images/commonIconsObjActEnabled_rtl.png'); width: 16px; height: 16px;}.dj_ie6 .dijitRtl .dijitIconSave,.dj_ie6 .dijitRtl .dijitIconPrint,.dj_ie6 .dijitRtl .dijitIconCut,.dj_ie6 .dijitRtl .dijitIconCopy,.dj_ie6 .dijitRtl .dijitIconClear,.dj_ie6 .dijitRtl .dijitIconDelete,.dj_ie6 .dijitRtl .dijitIconUndo,.dj_ie6 .dijitRtl .dijitIconEdit,.dj_ie6 .dijitRtl .dijitIconNewTask,.dj_ie6 .dijitRtl .dijitIconEditTask,.dj_ie6 .dijitRtl .dijitIconEditProperty,.dj_ie6 .dijitRtl .dijitIconTask,.dj_ie6 .dijitRtl .dijitIconFilter,.dj_ie6 .dijitRtl .dijitIconConfigure,.dj_ie6 .dijitRtl .dijitIconSearch,.dj_ie6 .dijitRtl .dijitIconApplication,.dj_ie6 .dijitRtl .dijitIconBookmark,.dj_ie6 .dijitRtl .dijitIconChart,.dj_ie6 .dijitRtl .dijitIconConnector,.dj_ie6 .dijitRtl .dijitIconDatabase,.dj_ie6 .dijitRtl .dijitIconDocuments,.dj_ie6 .dijitRtl .dijitIconMail,.dj_ie6 .dijitRtl .dijitLeaf,.dj_ie6 .dijitRtl .dijitIconFile,.dj_ie6 .dijitRtl .dijitIconFunction,.dj_ie6 .dijitRtl .dijitIconKey,.dj_ie6 .dijitRtl .dijitIconPackage,.dj_ie6 .dijitRtl .dijitIconSample,.dj_ie6 .dijitRtl .dijitIconTable,.dj_ie6 .dijitRtl .dijitIconUsers,.dj_ie6 .dijitRtl .dijitFolderClosed,.dj_ie6 .dijitRtl .dijitIconFolderClosed,.dj_ie6 .dijitRtl .dijitFolderOpened,.dj_ie6 .dijitRtl .dijitIconFolderOpen,.dj_ie6 .dijitRtl .dijitIconError {background-image: url('images/commonIconsObjActEnabled8bit_rtl.png');}.dijitRtl .dijitDisabled .dijitIconSave,.dijitRtl .dijitDisabled .dijitIconPrint,.dijitRtl .dijitDisabled .dijitIconCut,.dijitRtl .dijitDisabled .dijitIconCopy,.dijitRtl .dijitDisabled .dijitIconClear,.dijitRtl .dijitDisabled .dijitIconDelete,.dijitRtl .dijitDisabled .dijitIconUndo,.dijitRtl .dijitDisabled .dijitIconEdit,.dijitRtl .dijitDisabled .dijitIconNewTask,.dijitRtl .dijitDisabled .dijitIconEditTask,.dijitRtl .dijitDisabled .dijitIconEditProperty,.dijitRtl .dijitDisabled .dijitIconTask,.dijitRtl .dijitDisabled .dijitIconFilter,.dijitRtl .dijitDisabled .dijitIconConfigure,.dijitRtl .dijitDisabled .dijitIconSearch,.dijitRtl .dijitDisabled .dijitIconApplication,.dijitRtl .dijitDisabled .dijitIconBookmark,.dijitRtl .dijitDisabled .dijitIconChart,.dijitRtl .dijitDisabled .dijitIconConnector,.dijitRtl .dijitDisabled .dijitIconDatabase,.dijitRtl .dijitDisabled .dijitIconDocuments,.dijitRtl .dijitDisabled .dijitIconMail,.dijitRtl .dijitDisabled .dijitLeaf,.dijitRtl .dijitDisabled .dijitIconFile,.dijitRtl .dijitDisabled .dijitIconFunction,.dijitRtl .dijitDisabled .dijitIconKey,.dijitRtl .dijitDisabled .dijitIconPackage,.dijitRtl .dijitDisabled .dijitIconSample,.dijitRtl .dijitDisabled .dijitIconTable,.dijitRtl .dijitDisabled .dijitIconUsers,.dijitRtl .dijitDisabled .dijitFolderClosed,.dijitRtl .dijitDisabled .dijitIconFolderClosed,.dijitRtl .dijitDisabled .dijitFolderOpened,.dijitRtl .dijitDisabled .dijitIconFolderOpen,.dijitRtl .dijitDisabled .dijitIconError {background-image: url('images/commonIconsObjActDisabled_rtl.png');} \ No newline at end of file
diff --git a/lib/dijit/icons/editorIcons.css b/lib/dijit/icons/editorIcons.css
index 1889e992b..e7796a096 100644
--- a/lib/dijit/icons/editorIcons.css
+++ b/lib/dijit/icons/editorIcons.css
@@ -1,78 +1 @@
-/* Dijit Editor icons*/
-
-/*editorIcons.css is located in dijit/images
-
-editorIcons.css contains references to the dijit editor widget icons. There are 46 icons used to map to the related editor funtionality in the editor's toolbar.
-
-*/
-
-
-.dijitEditorIcon {
- background-image: url('images/editorIconsEnabled.png'); /* editor icons sprite image for the enabled state */
- background-repeat: no-repeat;
- width: 18px;
- height: 18px;
- text-align: center;
-}
-.dijitDisabled .dijitEditorIcon {
- background-image: url('images/editorIconsDisabled.png'); /* editor icons sprite image for the disabled state */
-}
-
-
-.dijitEditorIconSep { background-position: 0; }
-.dijitEditorIconSave { background-position: -18px; }
-.dijitEditorIconPrint { background-position: -36px; }
-.dijitEditorIconCut { background-position: -54px; }
-.dijitEditorIconCopy { background-position: -72px; }
-.dijitEditorIconPaste { background-position: -90px; }
-.dijitEditorIconDelete { background-position: -108px; }
-.dijitEditorIconCancel { background-position: -126px; }
-.dijitEditorIconUndo { background-position: -144px; }
-.dijitEditorIconRedo { background-position: -162px; }
-.dijitEditorIconSelectAll { background-position: -180px; }
-.dijitEditorIconBold { background-position: -198px; }
-.dijitEditorIconItalic { background-position: -216px; }
-.dijitEditorIconUnderline { background-position: -234px; }
-.dijitEditorIconStrikethrough { background-position: -252px; }
-.dijitEditorIconSuperscript { background-position: -270px; }
-.dijitEditorIconSubscript { background-position: -288px; }
-.dijitEditorIconJustifyCenter { background-position: -306px; }
-.dijitEditorIconJustifyFull { background-position: -324px; }
-.dijitEditorIconJustifyLeft { background-position: -342px; }
-.dijitEditorIconJustifyRight { background-position: -360px; }
-.dijitEditorIconIndent { background-position: -378px; }
-.dijitEditorIconOutdent { background-position: -396px; }
-.dijitEditorIconListBulletIndent { background-position: -414px; }
-.dijitEditorIconListBulletOutdent { background-position: -432px; }
-.dijitEditorIconListNumIndent { background-position: -450px; }
-.dijitEditorIconListNumOutdent { background-position: -468px; }
-.dijitEditorIconTabIndent { background-position: -486px; }
-.dijitEditorIconLeftToRight { background-position: -504px; }
-.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir { background-position: -522px; }
-.dijitEditorIconBackColor { background-position: -540px; }
-.dijitEditorIconForeColor { background-position: -558px; }
-.dijitEditorIconHiliteColor { background-position: -576px; }
-.dijitEditorIconNewPage { background-position: -594px; }
-.dijitEditorIconInsertImage { background-position: -612px; }
-.dijitEditorIconInsertTable { background-position: -630px; }
-.dijitEditorIconSpace { background-position: -648px; }
-.dijitEditorIconInsertHorizontalRule { background-position: -666px; }
-.dijitEditorIconInsertOrderedList { background-position: -684px; }
-.dijitEditorIconInsertUnorderedList { background-position: -702px; }
-.dijitEditorIconCreateLink { background-position: -720px; }
-.dijitEditorIconUnlink { background-position: -738px; }
-.dijitEditorIconViewSource { background-position: -756px; }
-.dijitEditorIconRemoveFormat { background-position: -774px; }
-.dijitEditorIconFullScreen { background-position: -792px; }
-.dijitEditorIconWikiword { background-position: -810px; }
-/* .dijitEditorIconToggleDir { background-position: -540px; ;} - 03172010: This icon was not in dijit.editor but is in dojox.editor. */
-
-/* no longer in the editor toolbar: .dijitEditorIconToggleDir { background-position: -540px; padding: 0; margin: 0; color:#555555;
- font-family:verdana,arial,sans-serif; font-weight: 800; font-size: 70%; */
-
-
-
-
-
-
-
+.dijitEditorIcon {background-image: url('images/editorIconsEnabled.png'); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.dijitDisabled .dijitEditorIcon {background-image: url('images/editorIconsDisabled.png');}.dijitEditorIconSep {background-position: 0;}.dijitEditorIconSave {background-position: -18px;}.dijitEditorIconPrint {background-position: -36px;}.dijitEditorIconCut {background-position: -54px;}.dijitEditorIconCopy {background-position: -72px;}.dijitEditorIconPaste {background-position: -90px;}.dijitEditorIconDelete {background-position: -108px;}.dijitEditorIconCancel {background-position: -126px;}.dijitEditorIconUndo {background-position: -144px;}.dijitEditorIconRedo {background-position: -162px;}.dijitEditorIconSelectAll {background-position: -180px;}.dijitEditorIconBold {background-position: -198px;}.dijitEditorIconItalic {background-position: -216px;}.dijitEditorIconUnderline {background-position: -234px;}.dijitEditorIconStrikethrough {background-position: -252px;}.dijitEditorIconSuperscript {background-position: -270px;}.dijitEditorIconSubscript {background-position: -288px;}.dijitEditorIconJustifyCenter {background-position: -306px;}.dijitEditorIconJustifyFull {background-position: -324px;}.dijitEditorIconJustifyLeft {background-position: -342px;}.dijitEditorIconJustifyRight {background-position: -360px;}.dijitEditorIconIndent {background-position: -378px;}.dijitEditorIconOutdent {background-position: -396px;}.dijitEditorIconListBulletIndent {background-position: -414px;}.dijitEditorIconListBulletOutdent {background-position: -432px;}.dijitEditorIconListNumIndent {background-position: -450px;}.dijitEditorIconListNumOutdent {background-position: -468px;}.dijitEditorIconTabIndent {background-position: -486px;}.dijitEditorIconLeftToRight {background-position: -504px;}.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir {background-position: -522px;}.dijitEditorIconBackColor {background-position: -540px;}.dijitEditorIconForeColor {background-position: -558px;}.dijitEditorIconHiliteColor {background-position: -576px;}.dijitEditorIconNewPage {background-position: -594px;}.dijitEditorIconInsertImage {background-position: -612px;}.dijitEditorIconInsertTable {background-position: -630px;}.dijitEditorIconSpace {background-position: -648px;}.dijitEditorIconInsertHorizontalRule {background-position: -666px;}.dijitEditorIconInsertOrderedList {background-position: -684px;}.dijitEditorIconInsertUnorderedList {background-position: -702px;}.dijitEditorIconCreateLink {background-position: -720px;}.dijitEditorIconUnlink {background-position: -738px;}.dijitEditorIconViewSource {background-position: -756px;}.dijitEditorIconRemoveFormat {background-position: -774px;}.dijitEditorIconFullScreen {background-position: -792px;}.dijitEditorIconWikiword {background-position: -810px;} \ No newline at end of file
diff --git a/lib/dijit/icons/editorIcons_rtl.css b/lib/dijit/icons/editorIcons_rtl.css
index 4d8cb7198..e157b09ed 100644
--- a/lib/dijit/icons/editorIcons_rtl.css
+++ b/lib/dijit/icons/editorIcons_rtl.css
@@ -1,23 +1 @@
-/* Dijit Editor RTL icons*/
-
-/*editorIcons_rtl.css is located in dijit/images
-
-editorIcons_rtl.css contains references to the dijit editor widget icons. There are 46 icons used to map to the related editor funtionality in the editor's toolbar.
-
-*/
-
-
-/* Editor */
-.dijitEditorRtl .dijitEditorIcon {
- background-image: url('images/editorIconsEnabled_rtl.png'); /* editor icons sprite image for the enabled right to left state */
-}
-.dijitEditorRtlDisabled .dijitEditorIcon {
- background-image: url('images/editorIconsDisabled_rtl.png'); /* editor icons sprite image for the disabled right to left state */
-}
-
-/* Toolbar */
-.dijitToolbarRtl .dijitToolbarSeparator {
- background-image: url('images/editorIconsEnabled_rtl.png');
-}
-
-/* took this information above from editorRtl.css - good or bad? */ \ No newline at end of file
+.dijitEditorRtl .dijitEditorIcon {background-image: url('images/editorIconsEnabled_rtl.png');}.dijitEditorRtlDisabled .dijitEditorIcon {background-image: url('images/editorIconsDisabled_rtl.png');}.dijitToolbarRtl .dijitToolbarSeparator {background-image: url('images/editorIconsEnabled_rtl.png');} \ No newline at end of file
diff --git a/lib/dijit/layout/AccordionContainer.js b/lib/dijit/layout/AccordionContainer.js
index 3470e5426..8efb761f6 100644
--- a/lib/dijit/layout/AccordionContainer.js
+++ b/lib/dijit/layout/AccordionContainer.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/layout/templates/AccordionButton.html":"<div data-dojo-attach-event='onclick:_onTitleClick' class='dijitAccordionTitle' role=\"presentation\">\n\t<div data-dojo-attach-point='titleNode,focusNode' data-dojo-attach-event='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' role=\"tab\" aria-expanded=\"false\"\n\t\t><span class='dijitInline dijitAccordionArrow' role=\"presentation\"></span\n\t\t><span class='arrowTextUp' role=\"presentation\">+</span\n\t\t><span class='arrowTextDown' role=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" data-dojo-attach-point='iconNode' style=\"vertical-align: middle\" role=\"presentation\"/>\n\t\t<span role=\"presentation\" data-dojo-attach-point='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"}});define("dijit/layout/AccordionContainer",["require","dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/_base/fx","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/_base/sniff","dojo/topic","../focus","../_base/manager","dojo/ready","../_Widget","../_Container","../_TemplatedMixin","../_CssStateMixin","./StackContainer","./ContentPane","dojo/text!./templates/AccordionButton.html"],function(_1,_2,_3,_4,fx,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12,_13,_14,_15,_16,_17,_18){var _19=_3("dijit.layout._AccordionButton",[_12,_14,_15],{templateString:_18,label:"",_setLabelAttr:{node:"titleTextNode",type:"innerHTML"},title:"",_setTitleAttr:{node:"titleTextNode",type:"attribute",attribute:"title"},iconClassAttr:"",_setIconClassAttr:{node:"iconNode",type:"class"},baseClass:"dijitAccordionTitle",getParent:function(){return this.parent;},buildRendering:function(){this.inherited(arguments);var _1a=this.id.replace(" ","_");_6.set(this.titleTextNode,"id",_1a+"_title");this.focusNode.setAttribute("aria-labelledby",_6.get(this.titleTextNode,"id"));_5.setSelectable(this.domNode,false);},getTitleHeight:function(){return _9.getMarginSize(this.domNode).h;},_onTitleClick:function(){var _1b=this.getParent();_1b.selectChild(this.contentWidget,true);_f.focus(this.focusNode);},_onTitleKeyPress:function(evt){return this.getParent()._onKeyPress(evt,this.contentWidget);},_setSelectedAttr:function(_1c){this._set("selected",_1c);this.focusNode.setAttribute("aria-expanded",_1c);this.focusNode.setAttribute("aria-selected",_1c);this.focusNode.setAttribute("tabIndex",_1c?"0":"-1");}});var _1d=_3("dijit.layout._AccordionInnerContainer",[_12,_15],{baseClass:"dijitAccordionInnerContainer",isLayoutContainer:true,buildRendering:function(){this.domNode=_8.place("<div class='"+this.baseClass+"' role='presentation'>",this.contentWidget.domNode,"after");var _1e=this.contentWidget,cls=_c.isString(this.buttonWidget)?_c.getObject(this.buttonWidget):this.buttonWidget;this.button=_1e._buttonWidget=(new cls({contentWidget:_1e,label:_1e.title,title:_1e.tooltip,dir:_1e.dir,lang:_1e.lang,textDir:_1e.textDir,iconClass:_1e.iconClass,id:_1e.id+"_button",parent:this.parent})).placeAt(this.domNode);this.containerNode=_8.place("<div class='dijitAccordionChildWrapper' style='display:none'>",this.domNode);_8.place(this.contentWidget.domNode,this.containerNode);},postCreate:function(){this.inherited(arguments);var _1f=this.button;this._contentWidgetWatches=[this.contentWidget.watch("title",_c.hitch(this,function(_20,_21,_22){_1f.set("label",_22);})),this.contentWidget.watch("tooltip",_c.hitch(this,function(_23,_24,_25){_1f.set("title",_25);})),this.contentWidget.watch("iconClass",_c.hitch(this,function(_26,_27,_28){_1f.set("iconClass",_28);}))];},_setSelectedAttr:function(_29){this._set("selected",_29);this.button.set("selected",_29);if(_29){var cw=this.contentWidget;if(cw.onSelected){cw.onSelected();}}},startup:function(){this.contentWidget.startup();},destroy:function(){this.button.destroyRecursive();_2.forEach(this._contentWidgetWatches||[],function(w){w.unwatch();});delete this.contentWidget._buttonWidget;delete this.contentWidget._wrapperWidget;this.inherited(arguments);},destroyDescendants:function(_2a){this.contentWidget.destroyRecursive(_2a);}});var _2b=_3("dijit.layout.AccordionContainer",_16,{duration:_10.defaultDuration,buttonWidget:_19,baseClass:"dijitAccordionContainer",buildRendering:function(){this.inherited(arguments);this.domNode.style.overflow="hidden";this.domNode.setAttribute("role","tablist");},startup:function(){if(this._started){return;}this.inherited(arguments);if(this.selectedChildWidget){var _2c=this.selectedChildWidget.containerNode.style;_2c.display="";_2c.overflow="auto";this.selectedChildWidget._wrapperWidget.set("selected",true);}},layout:function(){var _2d=this.selectedChildWidget;if(!_2d){return;}var _2e=_2d._wrapperWidget.domNode,_2f=_9.getMarginExtents(_2e),_30=_9.getPadBorderExtents(_2e),_31=_2d._wrapperWidget.containerNode,_32=_9.getMarginExtents(_31),_33=_9.getPadBorderExtents(_31),_34=this._contentBox;var _35=0;_2.forEach(this.getChildren(),function(_36){if(_36!=_2d){_35+=_9.getMarginSize(_36._wrapperWidget.domNode).h;}});this._verticalSpace=_34.h-_35-_2f.h-_30.h-_32.h-_33.h-_2d._buttonWidget.getTitleHeight();this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-_2f.w-_30.w-_32.w-_33.w};if(_2d){_2d.resize(this._containerContentBox);}},_setupChild:function(_37){_37._wrapperWidget=_1d({contentWidget:_37,buttonWidget:this.buttonWidget,id:_37.id+"_wrapper",dir:_37.dir,lang:_37.lang,textDir:_37.textDir,parent:this});this.inherited(arguments);},addChild:function(_38,_39){if(this._started){var _3a=this.containerNode;if(_39&&typeof _39=="number"){var _3b=_12.prototype.getChildren.call(this);if(_3b&&_3b.length>=_39){_3a=_3b[_39-1].domNode;_39="after";}}_8.place(_38.domNode,_3a,_39);if(!_38._started){_38.startup();}this._setupChild(_38);_e.publish(this.id+"-addChild",_38,_39);this.layout();if(!this.selectedChildWidget){this.selectChild(_38);}}else{this.inherited(arguments);}},removeChild:function(_3c){if(_3c._wrapperWidget){_8.place(_3c.domNode,_3c._wrapperWidget.domNode,"after");_3c._wrapperWidget.destroy();delete _3c._wrapperWidget;}_7.remove(_3c.domNode,"dijitHidden");this.inherited(arguments);},getChildren:function(){return _2.map(this.inherited(arguments),function(_3d){return _3d.declaredClass=="dijit.layout._AccordionInnerContainer"?_3d.contentWidget:_3d;},this);},destroy:function(){if(this._animation){this._animation.stop();}_2.forEach(this.getChildren(),function(_3e){if(_3e._wrapperWidget){_3e._wrapperWidget.destroy();}else{_3e.destroyRecursive();}});this.inherited(arguments);},_showChild:function(_3f){_3f._wrapperWidget.containerNode.style.display="block";return this.inherited(arguments);},_hideChild:function(_40){_40._wrapperWidget.containerNode.style.display="none";this.inherited(arguments);},_transition:function(_41,_42,_43){if(_d("ie")<8){_43=false;}if(this._animation){this._animation.stop(true);delete this._animation;}var _44=this;if(_41){_41._wrapperWidget.set("selected",true);var d=this._showChild(_41);if(this.doLayout&&_41.resize){_41.resize(this._containerContentBox);}}if(_42){_42._wrapperWidget.set("selected",false);if(!_43){this._hideChild(_42);}}if(_43){var _45=_41._wrapperWidget.containerNode,_46=_42._wrapperWidget.containerNode;var _47=_41._wrapperWidget.containerNode,_48=_9.getMarginExtents(_47),_49=_9.getPadBorderExtents(_47),_4a=_48.h+_49.h;_46.style.height=(_44._verticalSpace-_4a)+"px";this._animation=new fx.Animation({node:_45,duration:this.duration,curve:[1,this._verticalSpace-_4a-1],onAnimate:function(_4b){_4b=Math.floor(_4b);_45.style.height=_4b+"px";_46.style.height=(_44._verticalSpace-_4a-_4b)+"px";},onEnd:function(){delete _44._animation;_45.style.height="auto";_42._wrapperWidget.containerNode.style.display="none";_46.style.height="auto";_44._hideChild(_42);}});this._animation.onStop=this._animation.onEnd;this._animation.play();}return d;},_onKeyPress:function(e,_4c){if(this.disabled||e.altKey||!(_4c||e.ctrlKey)){return;}var c=e.charOrCode;if((_4c&&(c==_b.LEFT_ARROW||c==_b.UP_ARROW))||(e.ctrlKey&&c==_b.PAGE_UP)){this._adjacent(false)._buttonWidget._onTitleClick();_4.stop(e);}else{if((_4c&&(c==_b.RIGHT_ARROW||c==_b.DOWN_ARROW))||(e.ctrlKey&&(c==_b.PAGE_DOWN||c==_b.TAB))){this._adjacent(true)._buttonWidget._onTitleClick();_4.stop(e);}}}});if(!_a.isAsync){_11(0,function(){var _4d=["dijit/layout/AccordionPane"];_1(_4d);});}_2b._InnerContainer=_1d;_2b._Button=_19;return _2b;}); \ No newline at end of file
+require({cache:{"url:dijit/layout/templates/AccordionButton.html":"<div data-dojo-attach-event='onclick:_onTitleClick' class='dijitAccordionTitle' role=\"presentation\">\n\t<div data-dojo-attach-point='titleNode,focusNode' data-dojo-attach-event='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' role=\"tab\" aria-expanded=\"false\"\n\t\t><span class='dijitInline dijitAccordionArrow' role=\"presentation\"></span\n\t\t><span class='arrowTextUp' role=\"presentation\">+</span\n\t\t><span class='arrowTextDown' role=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" data-dojo-attach-point='iconNode' style=\"vertical-align: middle\" role=\"presentation\"/>\n\t\t<span role=\"presentation\" data-dojo-attach-point='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"}});define("dijit/layout/AccordionContainer",["require","dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/_base/fx","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/topic","../focus","../_base/manager","dojo/ready","../_Widget","../_Container","../_TemplatedMixin","../_CssStateMixin","./StackContainer","./ContentPane","dojo/text!./templates/AccordionButton.html"],function(_1,_2,_3,_4,fx,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12,_13,_14,_15,_16,_17){var _18=_3("dijit.layout._AccordionButton",[_11,_13,_14],{templateString:_17,label:"",_setLabelAttr:{node:"titleTextNode",type:"innerHTML"},title:"",_setTitleAttr:{node:"titleTextNode",type:"attribute",attribute:"title"},iconClassAttr:"",_setIconClassAttr:{node:"iconNode",type:"class"},baseClass:"dijitAccordionTitle",getParent:function(){return this.parent;},buildRendering:function(){this.inherited(arguments);var _19=this.id.replace(" ","_");_6.set(this.titleTextNode,"id",_19+"_title");this.focusNode.setAttribute("aria-labelledby",_6.get(this.titleTextNode,"id"));_5.setSelectable(this.domNode,false);},getTitleHeight:function(){return _9.getMarginSize(this.domNode).h;},_onTitleClick:function(){var _1a=this.getParent();_1a.selectChild(this.contentWidget,true);_e.focus(this.focusNode);},_onTitleKeyPress:function(evt){return this.getParent()._onKeyPress(evt,this.contentWidget);},_setSelectedAttr:function(_1b){this._set("selected",_1b);this.focusNode.setAttribute("aria-expanded",_1b?"true":"false");this.focusNode.setAttribute("aria-selected",_1b?"true":"false");this.focusNode.setAttribute("tabIndex",_1b?"0":"-1");}});var _1c=_3("dijit.layout._AccordionInnerContainer",[_11,_14],{baseClass:"dijitAccordionInnerContainer",isLayoutContainer:true,buildRendering:function(){this.domNode=_8.place("<div class='"+this.baseClass+"' role='presentation'>",this.contentWidget.domNode,"after");var _1d=this.contentWidget,cls=_b.isString(this.buttonWidget)?_b.getObject(this.buttonWidget):this.buttonWidget;this.button=_1d._buttonWidget=(new cls({contentWidget:_1d,label:_1d.title,title:_1d.tooltip,dir:_1d.dir,lang:_1d.lang,textDir:_1d.textDir,iconClass:_1d.iconClass,id:_1d.id+"_button",parent:this.parent})).placeAt(this.domNode);this.containerNode=_8.place("<div class='dijitAccordionChildWrapper' style='display:none'>",this.domNode);_8.place(this.contentWidget.domNode,this.containerNode);},postCreate:function(){this.inherited(arguments);var _1e=this.button;this._contentWidgetWatches=[this.contentWidget.watch("title",_b.hitch(this,function(_1f,_20,_21){_1e.set("label",_21);})),this.contentWidget.watch("tooltip",_b.hitch(this,function(_22,_23,_24){_1e.set("title",_24);})),this.contentWidget.watch("iconClass",_b.hitch(this,function(_25,_26,_27){_1e.set("iconClass",_27);}))];},_setSelectedAttr:function(_28){this._set("selected",_28);this.button.set("selected",_28);if(_28){var cw=this.contentWidget;if(cw.onSelected){cw.onSelected();}}},startup:function(){this.contentWidget.startup();},destroy:function(){this.button.destroyRecursive();_2.forEach(this._contentWidgetWatches||[],function(w){w.unwatch();});delete this.contentWidget._buttonWidget;delete this.contentWidget._wrapperWidget;this.inherited(arguments);},destroyDescendants:function(_29){this.contentWidget.destroyRecursive(_29);}});var _2a=_3("dijit.layout.AccordionContainer",_15,{duration:_f.defaultDuration,buttonWidget:_18,baseClass:"dijitAccordionContainer",buildRendering:function(){this.inherited(arguments);this.domNode.style.overflow="hidden";this.domNode.setAttribute("role","tablist");},startup:function(){if(this._started){return;}this.inherited(arguments);if(this.selectedChildWidget){this.selectedChildWidget._wrapperWidget.set("selected",true);}},layout:function(){var _2b=this.selectedChildWidget;if(!_2b){return;}var _2c=_2b._wrapperWidget.domNode,_2d=_9.getMarginExtents(_2c),_2e=_9.getPadBorderExtents(_2c),_2f=_2b._wrapperWidget.containerNode,_30=_9.getMarginExtents(_2f),_31=_9.getPadBorderExtents(_2f),_32=this._contentBox;var _33=0;_2.forEach(this.getChildren(),function(_34){if(_34!=_2b){_33+=_9.getMarginSize(_34._wrapperWidget.domNode).h;}});this._verticalSpace=_32.h-_33-_2d.h-_2e.h-_30.h-_31.h-_2b._buttonWidget.getTitleHeight();this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-_2d.w-_2e.w-_30.w-_31.w};if(_2b){_2b.resize(this._containerContentBox);}},_setupChild:function(_35){_35._wrapperWidget=_1c({contentWidget:_35,buttonWidget:this.buttonWidget,id:_35.id+"_wrapper",dir:_35.dir,lang:_35.lang,textDir:_35.textDir,parent:this});this.inherited(arguments);},addChild:function(_36,_37){if(this._started){var _38=this.containerNode;if(_37&&typeof _37=="number"){var _39=_11.prototype.getChildren.call(this);if(_39&&_39.length>=_37){_38=_39[_37-1].domNode;_37="after";}}_8.place(_36.domNode,_38,_37);if(!_36._started){_36.startup();}this._setupChild(_36);_d.publish(this.id+"-addChild",_36,_37);this.layout();if(!this.selectedChildWidget){this.selectChild(_36);}}else{this.inherited(arguments);}},removeChild:function(_3a){if(_3a._wrapperWidget){_8.place(_3a.domNode,_3a._wrapperWidget.domNode,"after");_3a._wrapperWidget.destroy();delete _3a._wrapperWidget;}_7.remove(_3a.domNode,"dijitHidden");this.inherited(arguments);},getChildren:function(){return _2.map(this.inherited(arguments),function(_3b){return _3b.declaredClass=="dijit.layout._AccordionInnerContainer"?_3b.contentWidget:_3b;},this);},destroy:function(){if(this._animation){this._animation.stop();}_2.forEach(this.getChildren(),function(_3c){if(_3c._wrapperWidget){_3c._wrapperWidget.destroy();}else{_3c.destroyRecursive();}});this.inherited(arguments);},_showChild:function(_3d){_3d._wrapperWidget.containerNode.style.display="block";return this.inherited(arguments);},_hideChild:function(_3e){_3e._wrapperWidget.containerNode.style.display="none";this.inherited(arguments);},_transition:function(_3f,_40,_41){if(_c("ie")<8){_41=false;}if(this._animation){this._animation.stop(true);delete this._animation;}var _42=this;if(_3f){_3f._wrapperWidget.set("selected",true);var d=this._showChild(_3f);if(this.doLayout&&_3f.resize){_3f.resize(this._containerContentBox);}}if(_40){_40._wrapperWidget.set("selected",false);if(!_41){this._hideChild(_40);}}if(_41){var _43=_3f._wrapperWidget.containerNode,_44=_40._wrapperWidget.containerNode;var _45=_3f._wrapperWidget.containerNode,_46=_9.getMarginExtents(_45),_47=_9.getPadBorderExtents(_45),_48=_46.h+_47.h;_44.style.height=(_42._verticalSpace-_48)+"px";this._animation=new fx.Animation({node:_43,duration:this.duration,curve:[1,this._verticalSpace-_48-1],onAnimate:function(_49){_49=Math.floor(_49);_43.style.height=_49+"px";_44.style.height=(_42._verticalSpace-_48-_49)+"px";},onEnd:function(){delete _42._animation;_43.style.height="auto";_40._wrapperWidget.containerNode.style.display="none";_44.style.height="auto";_42._hideChild(_40);}});this._animation.onStop=this._animation.onEnd;this._animation.play();}return d;},_onKeyPress:function(e,_4a){if(this.disabled||e.altKey||!(_4a||e.ctrlKey)){return;}var c=e.charOrCode;if((_4a&&(c==_a.LEFT_ARROW||c==_a.UP_ARROW))||(e.ctrlKey&&c==_a.PAGE_UP)){this._adjacent(false)._buttonWidget._onTitleClick();_4.stop(e);}else{if((_4a&&(c==_a.RIGHT_ARROW||c==_a.DOWN_ARROW))||(e.ctrlKey&&(c==_a.PAGE_DOWN||c==_a.TAB))){this._adjacent(true)._buttonWidget._onTitleClick();_4.stop(e);}}}});if(_c("dijit-legacy-requires")){_10(0,function(){var _4b=["dijit/layout/AccordionPane"];_1(_4b);});}_2a._InnerContainer=_1c;_2a._Button=_18;return _2a;}); \ No newline at end of file
diff --git a/lib/dijit/layout/BorderContainer.js b/lib/dijit/layout/BorderContainer.js
index db41c9cb6..a226aed02 100644
--- a/lib/dijit/layout/BorderContainer.js
+++ b/lib/dijit/layout/BorderContainer.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/layout/BorderContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","dojo/touch","dojo/_base/window","../_WidgetBase","../_Widget","../_TemplatedMixin","./_LayoutWidget","./utils"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,on,_b,_c,_d,_e,_f,_10,_11){var _12=_3("dijit.layout._Splitter",[_e,_f],{live:true,templateString:"<div class=\"dijitSplitter\" data-dojo-attach-event=\"onkeypress:_onKeyPress,press:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse\" tabIndex=\"0\" role=\"separator\"><div class=\"dijitSplitterThumb\"></div></div>",constructor:function(){this._handlers=[];},postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);this._factor=/top|left/.test(this.region)?1:-1;this._cookieName=this.container.id+"_"+this.region;},buildRendering:function(){this.inherited(arguments);_4.add(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V"));if(this.container.persist){var _13=_2(this._cookieName);if(_13){this.child.domNode.style[this.horizontal?"height":"width"]=_13;}}},_computeMaxSize:function(){var dim=this.horizontal?"h":"w",_14=_6.getMarginBox(this.child.domNode)[dim],_15=_1.filter(this.container.getChildren(),function(_16){return _16.region=="center";})[0],_17=_6.getMarginBox(_15.domNode)[dim];return Math.min(this.child.maxSize,_14+_17);},_startDrag:function(e){if(!this.cover){this.cover=_c.doc.createElement("div");_4.add(this.cover,"dijitSplitterCover");_5.place(this.cover,this.child.domNode,"after");}_4.add(this.cover,"dijitSplitterCoverActive");if(this.fake){_5.destroy(this.fake);}if(!(this._resize=this.live)){(this.fake=this.domNode.cloneNode(true)).removeAttribute("id");_4.add(this.domNode,"dijitSplitterShadow");_5.place(this.fake,this.domNode,"after");}_4.add(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active");if(this.fake){_4.remove(this.fake,"dijitSplitterHover dijitSplitter"+(this.horizontal?"H":"V")+"Hover");}var _18=this._factor,_19=this.horizontal,_1a=_19?"pageY":"pageX",_1b=e[_1a],_1c=this.domNode.style,dim=_19?"h":"w",_1d=_6.getMarginBox(this.child.domNode)[dim],max=this._computeMaxSize(),min=this.child.minSize||20,_1e=this.region,_1f=_1e=="top"||_1e=="bottom"?"top":"left",_20=parseInt(_1c[_1f],10),_21=this._resize,_22=_a.hitch(this.container,"_layoutChildren",this.child.id),de=_c.doc;this._handlers=this._handlers.concat([on(de,_b.move,this._drag=function(e,_23){var _24=e[_1a]-_1b,_25=_18*_24+_1d,_26=Math.max(Math.min(_25,max),min);if(_21||_23){_22(_26);}_1c[_1f]=_24+_20+_18*(_26-_25)+"px";}),on(de,"dragstart",_8.stop),on(_c.body(),"selectstart",_8.stop),on(de,_b.release,_a.hitch(this,"_stopDrag"))]);_8.stop(e);},_onMouse:function(e){var o=(e.type=="mouseover"||e.type=="mouseenter");_4.toggle(this.domNode,"dijitSplitterHover",o);_4.toggle(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover",o);},_stopDrag:function(e){try{if(this.cover){_4.remove(this.cover,"dijitSplitterCoverActive");}if(this.fake){_5.destroy(this.fake);}_4.remove(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active dijitSplitterShadow");this._drag(e);this._drag(e,true);}finally{this._cleanupHandlers();delete this._drag;}if(this.container.persist){_2(this._cookieName,this.child.domNode.style[this.horizontal?"height":"width"],{expires:365});}},_cleanupHandlers:function(){var h;while(h=this._handlers.pop()){h.remove();}},_onKeyPress:function(e){this._resize=true;var _27=this.horizontal;var _28=1;switch(e.charOrCode){case _27?_9.UP_ARROW:_9.LEFT_ARROW:_28*=-1;case _27?_9.DOWN_ARROW:_9.RIGHT_ARROW:break;default:return;}var _29=_6.getMarginSize(this.child.domNode)[_27?"h":"w"]+this._factor*_28;this.container._layoutChildren(this.child.id,Math.max(Math.min(_29,this._computeMaxSize()),this.child.minSize));_8.stop(e);},destroy:function(){this._cleanupHandlers();delete this.child;delete this.container;delete this.cover;delete this.fake;this.inherited(arguments);}});var _2a=_3("dijit.layout._Gutter",[_e,_f],{templateString:"<div class=\"dijitGutter\" role=\"presentation\"></div>",postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);},buildRendering:function(){this.inherited(arguments);_4.add(this.domNode,"dijitGutter"+(this.horizontal?"H":"V"));}});var _2b=_3("dijit.layout.BorderContainer",_10,{design:"headline",gutters:true,liveSplitters:true,persist:false,baseClass:"dijitBorderContainer",_splitterClass:_12,postMixInProperties:function(){if(!this.gutters){this.baseClass+="NoGutter";}this.inherited(arguments);},startup:function(){if(this._started){return;}_1.forEach(this.getChildren(),this._setupChild,this);this.inherited(arguments);},_setupChild:function(_2c){var _2d=_2c.region;if(_2d){this.inherited(arguments);_4.add(_2c.domNode,this.baseClass+"Pane");var ltr=this.isLeftToRight();if(_2d=="leading"){_2d=ltr?"left":"right";}if(_2d=="trailing"){_2d=ltr?"right":"left";}if(_2d!="center"&&(_2c.splitter||this.gutters)&&!_2c._splitterWidget){var _2e=_2c.splitter?this._splitterClass:_2a;if(_a.isString(_2e)){_2e=_a.getObject(_2e);}var _2f=new _2e({id:_2c.id+"_splitter",container:this,child:_2c,region:_2d,live:this.liveSplitters});_2f.isSplitter=true;_2c._splitterWidget=_2f;_5.place(_2f.domNode,_2c.domNode,"after");_2f.startup();}_2c.region=_2d;}},layout:function(){this._layoutChildren();},addChild:function(_30,_31){this.inherited(arguments);if(this._started){this.layout();}},removeChild:function(_32){var _33=_32.region;var _34=_32._splitterWidget;if(_34){_34.destroy();delete _32._splitterWidget;}this.inherited(arguments);if(this._started){this._layoutChildren();}_4.remove(_32.domNode,this.baseClass+"Pane");_7.set(_32.domNode,{top:"auto",bottom:"auto",left:"auto",right:"auto",position:"static"});_7.set(_32.domNode,_33=="top"||_33=="bottom"?"width":"height","auto");},getChildren:function(){return _1.filter(this.inherited(arguments),function(_35){return !_35.isSplitter;});},getSplitter:function(_36){return _1.filter(this.getChildren(),function(_37){return _37.region==_36;})[0]._splitterWidget;},resize:function(_38,_39){if(!this.cs||!this.pe){var _3a=this.domNode;this.cs=_7.getComputedStyle(_3a);this.pe=_6.getPadExtents(_3a,this.cs);this.pe.r=_7.toPixelValue(_3a,this.cs.paddingRight);this.pe.b=_7.toPixelValue(_3a,this.cs.paddingBottom);_7.set(_3a,"padding","0px");}this.inherited(arguments);},_layoutChildren:function(_3b,_3c){if(!this._borderBox||!this._borderBox.h){return;}var _3d=_1.map(this.getChildren(),function(_3e,idx){return {pane:_3e,weight:[_3e.region=="center"?Infinity:0,_3e.layoutPriority,(this.design=="sidebar"?1:-1)*(/top|bottom/.test(_3e.region)?1:-1),idx]};},this);_3d.sort(function(a,b){var aw=a.weight,bw=b.weight;for(var i=0;i<aw.length;i++){if(aw[i]!=bw[i]){return aw[i]-bw[i];}}return 0;});var _3f=[];_1.forEach(_3d,function(_40){var _41=_40.pane;_3f.push(_41);if(_41._splitterWidget){_3f.push(_41._splitterWidget);}});var dim={l:this.pe.l,t:this.pe.t,w:this._borderBox.w-this.pe.w,h:this._borderBox.h-this.pe.h};_11.layoutChildren(this.domNode,dim,_3f,_3b,_3c);},destroyRecursive:function(){_1.forEach(this.getChildren(),function(_42){var _43=_42._splitterWidget;if(_43){_43.destroy();}delete _42._splitterWidget;});this.inherited(arguments);}});_a.extend(_d,{region:"",layoutPriority:0,splitter:false,minSize:0,maxSize:Infinity});_2b._Splitter=_12;_2b._Gutter=_2a;return _2b;}); \ No newline at end of file
+define("dijit/layout/BorderContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","dojo/touch","../_WidgetBase","../_Widget","../_TemplatedMixin","./_LayoutWidget","./utils"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,on,_b,_c,_d,_e,_f,_10){var _11=_3("dijit.layout._Splitter",[_d,_e],{live:true,templateString:"<div class=\"dijitSplitter\" data-dojo-attach-event=\"onkeypress:_onKeyPress,press:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse\" tabIndex=\"0\" role=\"separator\"><div class=\"dijitSplitterThumb\"></div></div>",constructor:function(){this._handlers=[];},postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);this._factor=/top|left/.test(this.region)?1:-1;this._cookieName=this.container.id+"_"+this.region;},buildRendering:function(){this.inherited(arguments);_4.add(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V"));if(this.container.persist){var _12=_2(this._cookieName);if(_12){this.child.domNode.style[this.horizontal?"height":"width"]=_12;}}},_computeMaxSize:function(){var dim=this.horizontal?"h":"w",_13=_6.getMarginBox(this.child.domNode)[dim],_14=_1.filter(this.container.getChildren(),function(_15){return _15.region=="center";})[0],_16=_6.getMarginBox(_14.domNode)[dim];return Math.min(this.child.maxSize,_13+_16);},_startDrag:function(e){if(!this.cover){this.cover=_5.place("<div class=dijitSplitterCover></div>",this.child.domNode,"after");}_4.add(this.cover,"dijitSplitterCoverActive");if(this.fake){_5.destroy(this.fake);}if(!(this._resize=this.live)){(this.fake=this.domNode.cloneNode(true)).removeAttribute("id");_4.add(this.domNode,"dijitSplitterShadow");_5.place(this.fake,this.domNode,"after");}_4.add(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active");if(this.fake){_4.remove(this.fake,"dijitSplitterHover dijitSplitter"+(this.horizontal?"H":"V")+"Hover");}var _17=this._factor,_18=this.horizontal,_19=_18?"pageY":"pageX",_1a=e[_19],_1b=this.domNode.style,dim=_18?"h":"w",_1c=_6.getMarginBox(this.child.domNode)[dim],max=this._computeMaxSize(),min=this.child.minSize||20,_1d=this.region,_1e=_1d=="top"||_1d=="bottom"?"top":"left",_1f=parseInt(_1b[_1e],10),_20=this._resize,_21=_a.hitch(this.container,"_layoutChildren",this.child.id),de=this.ownerDocument;this._handlers=this._handlers.concat([on(de,_b.move,this._drag=function(e,_22){var _23=e[_19]-_1a,_24=_17*_23+_1c,_25=Math.max(Math.min(_24,max),min);if(_20||_22){_21(_25);}_1b[_1e]=_23+_1f+_17*(_25-_24)+"px";}),on(de,"dragstart",_8.stop),on(this.ownerDocumentBody,"selectstart",_8.stop),on(de,_b.release,_a.hitch(this,"_stopDrag"))]);_8.stop(e);},_onMouse:function(e){var o=(e.type=="mouseover"||e.type=="mouseenter");_4.toggle(this.domNode,"dijitSplitterHover",o);_4.toggle(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover",o);},_stopDrag:function(e){try{if(this.cover){_4.remove(this.cover,"dijitSplitterCoverActive");}if(this.fake){_5.destroy(this.fake);}_4.remove(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active dijitSplitterShadow");this._drag(e);this._drag(e,true);}finally{this._cleanupHandlers();delete this._drag;}if(this.container.persist){_2(this._cookieName,this.child.domNode.style[this.horizontal?"height":"width"],{expires:365});}},_cleanupHandlers:function(){var h;while(h=this._handlers.pop()){h.remove();}},_onKeyPress:function(e){this._resize=true;var _26=this.horizontal;var _27=1;switch(e.charOrCode){case _26?_9.UP_ARROW:_9.LEFT_ARROW:_27*=-1;case _26?_9.DOWN_ARROW:_9.RIGHT_ARROW:break;default:return;}var _28=_6.getMarginSize(this.child.domNode)[_26?"h":"w"]+this._factor*_27;this.container._layoutChildren(this.child.id,Math.max(Math.min(_28,this._computeMaxSize()),this.child.minSize));_8.stop(e);},destroy:function(){this._cleanupHandlers();delete this.child;delete this.container;delete this.cover;delete this.fake;this.inherited(arguments);}});var _29=_3("dijit.layout._Gutter",[_d,_e],{templateString:"<div class=\"dijitGutter\" role=\"presentation\"></div>",postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);},buildRendering:function(){this.inherited(arguments);_4.add(this.domNode,"dijitGutter"+(this.horizontal?"H":"V"));}});var _2a=_3("dijit.layout.BorderContainer",_f,{design:"headline",gutters:true,liveSplitters:true,persist:false,baseClass:"dijitBorderContainer",_splitterClass:_11,postMixInProperties:function(){if(!this.gutters){this.baseClass+="NoGutter";}this.inherited(arguments);},startup:function(){if(this._started){return;}_1.forEach(this.getChildren(),this._setupChild,this);this.inherited(arguments);},_setupChild:function(_2b){var _2c=_2b.region;if(_2c){this.inherited(arguments);_4.add(_2b.domNode,this.baseClass+"Pane");var ltr=this.isLeftToRight();if(_2c=="leading"){_2c=ltr?"left":"right";}if(_2c=="trailing"){_2c=ltr?"right":"left";}if(_2c!="center"&&(_2b.splitter||this.gutters)&&!_2b._splitterWidget){var _2d=_2b.splitter?this._splitterClass:_29;if(_a.isString(_2d)){_2d=_a.getObject(_2d);}var _2e=new _2d({id:_2b.id+"_splitter",container:this,child:_2b,region:_2c,live:this.liveSplitters});_2e.isSplitter=true;_2b._splitterWidget=_2e;_5.place(_2e.domNode,_2b.domNode,"after");_2e.startup();}_2b.region=_2c;}},layout:function(){this._layoutChildren();},addChild:function(_2f,_30){this.inherited(arguments);if(this._started){this.layout();}},removeChild:function(_31){var _32=_31.region;var _33=_31._splitterWidget;if(_33){_33.destroy();delete _31._splitterWidget;}this.inherited(arguments);if(this._started){this._layoutChildren();}_4.remove(_31.domNode,this.baseClass+"Pane");_7.set(_31.domNode,{top:"auto",bottom:"auto",left:"auto",right:"auto",position:"static"});_7.set(_31.domNode,_32=="top"||_32=="bottom"?"width":"height","auto");},getChildren:function(){return _1.filter(this.inherited(arguments),function(_34){return !_34.isSplitter;});},getSplitter:function(_35){return _1.filter(this.getChildren(),function(_36){return _36.region==_35;})[0]._splitterWidget;},resize:function(_37,_38){if(!this.cs||!this.pe){var _39=this.domNode;this.cs=_7.getComputedStyle(_39);this.pe=_6.getPadExtents(_39,this.cs);this.pe.r=_7.toPixelValue(_39,this.cs.paddingRight);this.pe.b=_7.toPixelValue(_39,this.cs.paddingBottom);_7.set(_39,"padding","0px");}this.inherited(arguments);},_layoutChildren:function(_3a,_3b){if(!this._borderBox||!this._borderBox.h){return;}var _3c=_1.map(this.getChildren(),function(_3d,idx){return {pane:_3d,weight:[_3d.region=="center"?Infinity:0,_3d.layoutPriority,(this.design=="sidebar"?1:-1)*(/top|bottom/.test(_3d.region)?1:-1),idx]};},this);_3c.sort(function(a,b){var aw=a.weight,bw=b.weight;for(var i=0;i<aw.length;i++){if(aw[i]!=bw[i]){return aw[i]-bw[i];}}return 0;});var _3e=[];_1.forEach(_3c,function(_3f){var _40=_3f.pane;_3e.push(_40);if(_40._splitterWidget){_3e.push(_40._splitterWidget);}});var dim={l:this.pe.l,t:this.pe.t,w:this._borderBox.w-this.pe.w,h:this._borderBox.h-this.pe.h};_10.layoutChildren(this.domNode,dim,_3e,_3a,_3b);},destroyRecursive:function(){_1.forEach(this.getChildren(),function(_41){var _42=_41._splitterWidget;if(_42){_42.destroy();}delete _41._splitterWidget;});this.inherited(arguments);}});_2a.ChildWidgetProperties={region:"",layoutPriority:0,splitter:false,minSize:0,maxSize:Infinity};_a.extend(_c,_2a.ChildWidgetProperties);_2a._Splitter=_11;_2a._Gutter=_29;return _2a;}); \ No newline at end of file
diff --git a/lib/dijit/layout/ContentPane.js b/lib/dijit/layout/ContentPane.js
index 1e2a2036b..a5a58c5d2 100644
--- a/lib/dijit/layout/ContentPane.js
+++ b/lib/dijit/layout/ContentPane.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/layout/ContentPane",["dojo/_base/kernel","dojo/_base/lang","../_Widget","./_ContentPaneResizeMixin","dojo/string","dojo/html","dojo/i18n!../nls/loading","dojo/_base/array","dojo/_base/declare","dojo/_base/Deferred","dojo/dom","dojo/dom-attr","dojo/_base/window","dojo/_base/xhr","dojo/i18n"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f){return _9("dijit.layout.ContentPane",[_3,_4],{href:"",content:"",extractContent:false,parseOnLoad:true,parserScope:_1._scopeName,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'><span class='dijitInline dijitIconLoading'></span>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'><span class='dijitInline dijitIconError'></span>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",ioArgs:{},onLoadDeferred:null,_setTitleAttr:null,stopParser:true,template:false,create:function(_10,_11){if((!_10||!_10.template)&&_11&&!("href" in _10)&&!("content" in _10)){var df=_d.doc.createDocumentFragment();_11=_b.byId(_11);while(_11.firstChild){df.appendChild(_11.firstChild);}_10=_2.delegate(_10,{content:df});}this.inherited(arguments,[_10,_11]);},postMixInProperties:function(){this.inherited(arguments);var _12=_f.getLocalization("dijit","loading",this.lang);this.loadingMessage=_5.substitute(this.loadingMessage,_12);this.errorMessage=_5.substitute(this.errorMessage,_12);},buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}this.domNode.title="";if(!_c.get(this.domNode,"role")){this.domNode.setAttribute("role","group");}},startup:function(){this.inherited(arguments);if(this._contentSetter){_8.forEach(this._contentSetter.parseResults,function(obj){if(!obj._started&&!obj._destroyed&&_2.isFunction(obj.startup)){obj.startup();obj._started=true;}},this);}},setHref:function(_13){_1.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.","","2.0");return this.set("href",_13);},_setHrefAttr:function(_14){this.cancel();this.onLoadDeferred=new _a(_2.hitch(this,"cancel"));this.onLoadDeferred.addCallback(_2.hitch(this,"onLoad"));this._set("href",_14);if(this.preload||(this._created&&this._isShown())){this._load();}else{this._hrefChanged=true;}return this.onLoadDeferred;},setContent:function(_15){_1.deprecated("dijit.layout.ContentPane.setContent() is deprecated. Use set('content', ...) instead.","","2.0");this.set("content",_15);},_setContentAttr:function(_16){this._set("href","");this.cancel();this.onLoadDeferred=new _a(_2.hitch(this,"cancel"));if(this._created){this.onLoadDeferred.addCallback(_2.hitch(this,"onLoad"));}this._setContent(_16||"");this._isDownloaded=false;return this.onLoadDeferred;},_getContentAttr:function(){return this.containerNode.innerHTML;},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}delete this._xhrDfd;this.onLoadDeferred=null;},uninitialize:function(){if(this._beingDestroyed){this.cancel();}this.inherited(arguments);},destroyRecursive:function(_17){if(this._beingDestroyed){return;}this.inherited(arguments);},_onShow:function(){this.inherited(arguments);if(this.href){if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)){return this.refresh();}}},refresh:function(){this.cancel();this.onLoadDeferred=new _a(_2.hitch(this,"cancel"));this.onLoadDeferred.addCallback(_2.hitch(this,"onLoad"));this._load();return this.onLoadDeferred;},_load:function(){this._setContent(this.onDownloadStart(),true);var _18=this;var _19={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(_2.isObject(this.ioArgs)){_2.mixin(_19,this.ioArgs);}var _1a=(this._xhrDfd=(this.ioMethod||_e.get)(_19));_1a.addCallback(function(_1b){try{_18._isDownloaded=true;_18._setContent(_1b,false);_18.onDownloadEnd();}catch(err){_18._onError("Content",err);}delete _18._xhrDfd;return _1b;});_1a.addErrback(function(err){if(!_1a.canceled){_18._onError("Download",err);}delete _18._xhrDfd;return err;});delete this._hrefChanged;},_onLoadHandler:function(_1c){this._set("isLoaded",true);try{this.onLoadDeferred.callback(_1c);}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message);}},_onUnloadHandler:function(){this._set("isLoaded",false);try{this.onUnload();}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message);}},destroyDescendants:function(_1d){if(this.isLoaded){this._onUnloadHandler();}var _1e=this._contentSetter;_8.forEach(this.getChildren(),function(_1f){if(_1f.destroyRecursive){_1f.destroyRecursive(_1d);}});if(_1e){_8.forEach(_1e.parseResults,function(_20){if(_20.destroyRecursive&&_20.domNode&&_20.domNode.parentNode==_d.body()){_20.destroyRecursive(_1d);}});delete _1e.parseResults;}if(!_1d){_6._emptyNode(this.containerNode);}delete this._singleChild;},_setContent:function(_21,_22){this.destroyDescendants();var _23=this._contentSetter;if(!(_23&&_23 instanceof _6._ContentSetter)){_23=this._contentSetter=new _6._ContentSetter({node:this.containerNode,_onError:_2.hitch(this,this._onError),onContentError:_2.hitch(this,function(e){var _24=this.onContentError(e);try{this.containerNode.innerHTML=_24;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}})});}var _25=_2.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:!_21.domNode&&this.parseOnLoad,parserScope:this.parserScope,startup:false,dir:this.dir,lang:this.lang,textDir:this.textDir},this._contentSetterParams||{});_23.set((_2.isObject(_21)&&_21.domNode)?_21.domNode:_21,_25);delete this._contentSetterParams;if(this.doLayout){this._checkIfSingleChild();}if(!_22){if(this._started){delete this._started;this.startup();this._scheduleLayout();}this._onLoadHandler(_21);}},_onError:function(_26,err,_27){this.onLoadDeferred.errback(err);var _28=this["on"+_26+"Error"].call(this,err);if(_27){console.error(_27,err);}else{if(_28){this._setContent(_28,true);}}},onLoad:function(){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(){},onDownloadError:function(){return this.errorMessage;},onDownloadEnd:function(){}});}); \ No newline at end of file
+define("dijit/layout/ContentPane",["dojo/_base/kernel","dojo/_base/lang","../_Widget","../_Container","./_ContentPaneResizeMixin","dojo/string","dojo/html","dojo/i18n!../nls/loading","dojo/_base/array","dojo/_base/declare","dojo/_base/Deferred","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/_base/xhr","dojo/i18n","dojo/when"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11){return _a("dijit.layout.ContentPane",[_3,_4,_5],{href:"",content:"",extractContent:false,parseOnLoad:true,parserScope:_1._scopeName,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'><span class='dijitInline dijitIconLoading'></span>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'><span class='dijitInline dijitIconError'></span>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",ioArgs:{},onLoadDeferred:null,_setTitleAttr:null,stopParser:true,template:false,create:function(_12,_13){if((!_12||!_12.template)&&_13&&!("href" in _12)&&!("content" in _12)){_13=_c.byId(_13);var df=_13.ownerDocument.createDocumentFragment();while(_13.firstChild){df.appendChild(_13.firstChild);}_12=_2.delegate(_12,{content:df});}this.inherited(arguments,[_12,_13]);},postMixInProperties:function(){this.inherited(arguments);var _14=_10.getLocalization("dijit","loading",this.lang);this.loadingMessage=_6.substitute(this.loadingMessage,_14);this.errorMessage=_6.substitute(this.errorMessage,_14);},buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}this.domNode.title="";if(!_d.get(this.domNode,"role")){this.domNode.setAttribute("role","group");}},startup:function(){this.inherited(arguments);if(this._contentSetter){_9.forEach(this._contentSetter.parseResults,function(obj){if(!obj._started&&!obj._destroyed&&_2.isFunction(obj.startup)){obj.startup();obj._started=true;}},this);}},_startChildren:function(){_9.forEach(this.getChildren(),function(obj){if(!obj._started&&!obj._destroyed&&_2.isFunction(obj.startup)){obj.startup();obj._started=true;}});if(this._contentSetter){_9.forEach(this._contentSetter.parseResults,function(obj){if(!obj._started&&!obj._destroyed&&_2.isFunction(obj.startup)){obj.startup();obj._started=true;}},this);}},setHref:function(_15){_1.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.","","2.0");return this.set("href",_15);},_setHrefAttr:function(_16){this.cancel();this.onLoadDeferred=new _b(_2.hitch(this,"cancel"));this.onLoadDeferred.then(_2.hitch(this,"onLoad"));this._set("href",_16);if(this.preload||(this._created&&this._isShown())){this._load();}else{this._hrefChanged=true;}return this.onLoadDeferred;},setContent:function(_17){_1.deprecated("dijit.layout.ContentPane.setContent() is deprecated. Use set('content', ...) instead.","","2.0");this.set("content",_17);},_setContentAttr:function(_18){this._set("href","");this.cancel();this.onLoadDeferred=new _b(_2.hitch(this,"cancel"));if(this._created){this.onLoadDeferred.then(_2.hitch(this,"onLoad"));}this._setContent(_18||"");this._isDownloaded=false;return this.onLoadDeferred;},_getContentAttr:function(){return this.containerNode.innerHTML;},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}delete this._xhrDfd;this.onLoadDeferred=null;},destroy:function(){this.cancel();this.inherited(arguments);},destroyRecursive:function(_19){if(this._beingDestroyed){return;}this.inherited(arguments);},_onShow:function(){this.inherited(arguments);if(this.href){if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)){return this.refresh();}}},refresh:function(){this.cancel();this.onLoadDeferred=new _b(_2.hitch(this,"cancel"));this.onLoadDeferred.then(_2.hitch(this,"onLoad"));this._load();return this.onLoadDeferred;},_load:function(){this._setContent(this.onDownloadStart(),true);var _1a=this;var _1b={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(_2.isObject(this.ioArgs)){_2.mixin(_1b,this.ioArgs);}var _1c=(this._xhrDfd=(this.ioMethod||_f.get)(_1b)),_1d;_1c.then(function(_1e){_1d=_1e;try{_1a._isDownloaded=true;return _1a._setContent(_1e,false);}catch(err){_1a._onError("Content",err);}},function(err){if(!_1c.canceled){_1a._onError("Download",err);}delete _1a._xhrDfd;return err;}).then(function(){_1a.onDownloadEnd();delete _1a._xhrDfd;return _1d;});delete this._hrefChanged;},_onLoadHandler:function(_1f){this._set("isLoaded",true);try{this.onLoadDeferred.resolve(_1f);}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message);}},_onUnloadHandler:function(){this._set("isLoaded",false);try{this.onUnload();}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message);}},destroyDescendants:function(_20){if(this.isLoaded){this._onUnloadHandler();}var _21=this._contentSetter;_9.forEach(this.getChildren(),function(_22){if(_22.destroyRecursive){_22.destroyRecursive(_20);}else{if(_22.destroy){_22.destroy(_20);}}_22._destroyed=true;});if(_21){_9.forEach(_21.parseResults,function(_23){if(!_23._destroyed){if(_23.destroyRecursive){_23.destroyRecursive(_20);}else{if(_23.destroy){_23.destroy(_20);}}_23._destroyed=true;}});delete _21.parseResults;}if(!_20){_e.empty(this.containerNode);}delete this._singleChild;},_setContent:function(_24,_25){this.destroyDescendants();var _26=this._contentSetter;if(!(_26&&_26 instanceof _7._ContentSetter)){_26=this._contentSetter=new _7._ContentSetter({node:this.containerNode,_onError:_2.hitch(this,this._onError),onContentError:_2.hitch(this,function(e){var _27=this.onContentError(e);try{this.containerNode.innerHTML=_27;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}})});}var _28=_2.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:!_24.domNode&&this.parseOnLoad,parserScope:this.parserScope,startup:false,dir:this.dir,lang:this.lang,textDir:this.textDir},this._contentSetterParams||{});var p=_26.set((_2.isObject(_24)&&_24.domNode)?_24.domNode:_24,_28);var _29=this;return _11(p&&p.then?p:_26.parseDeferred,function(){delete _29._contentSetterParams;if(!_25){if(_29._started){_29._startChildren();_29._scheduleLayout();}_29._onLoadHandler(_24);}});},_onError:function(_2a,err,_2b){this.onLoadDeferred.reject(err);var _2c=this["on"+_2a+"Error"].call(this,err);if(_2b){console.error(_2b,err);}else{if(_2c){this._setContent(_2c,true);}}},onLoad:function(){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(){},onDownloadError:function(){return this.errorMessage;},onDownloadEnd:function(){}});}); \ No newline at end of file
diff --git a/lib/dijit/layout/LayoutContainer.js b/lib/dijit/layout/LayoutContainer.js
index bc4f3a618..12ea36775 100644
--- a/lib/dijit/layout/LayoutContainer.js
+++ b/lib/dijit/layout/LayoutContainer.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/layout/LayoutContainer",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/declare","../_WidgetBase","./_LayoutWidget","./utils"],function(_1,_2,_3,_4,_5,_6){_2.extend(_4,{layoutAlign:"none"});return _3("dijit.layout.LayoutContainer",_5,{baseClass:"dijitLayoutContainer",constructor:function(){_1.deprecated("dijit.layout.LayoutContainer is deprecated","use BorderContainer instead",2);},layout:function(){_6.layoutChildren(this.domNode,this._contentBox,this.getChildren());},addChild:function(_7,_8){this.inherited(arguments);if(this._started){_6.layoutChildren(this.domNode,this._contentBox,this.getChildren());}},removeChild:function(_9){this.inherited(arguments);if(this._started){_6.layoutChildren(this.domNode,this._contentBox,this.getChildren());}}});}); \ No newline at end of file
+define("dijit/layout/LayoutContainer",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/declare","../_WidgetBase","./_LayoutWidget","./utils"],function(_1,_2,_3,_4,_5,_6){var _7=_3("dijit.layout.LayoutContainer",_5,{baseClass:"dijitLayoutContainer",constructor:function(){_1.deprecated("dijit.layout.LayoutContainer is deprecated","use BorderContainer instead",2);},layout:function(){_6.layoutChildren(this.domNode,this._contentBox,this.getChildren());},addChild:function(_8,_9){this.inherited(arguments);if(this._started){_6.layoutChildren(this.domNode,this._contentBox,this.getChildren());}},removeChild:function(_a){this.inherited(arguments);if(this._started){_6.layoutChildren(this.domNode,this._contentBox,this.getChildren());}}});_7.ChildWidgetProperties={layoutAlign:"none"};_2.extend(_4,_7.ChildWidgetProperties);return _7;}); \ No newline at end of file
diff --git a/lib/dijit/layout/ScrollingTabController.js b/lib/dijit/layout/ScrollingTabController.js
index aa4bc7626..b199b41ab 100644
--- a/lib/dijit/layout/ScrollingTabController.js
+++ b/lib/dijit/layout/ScrollingTabController.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/layout/templates/ScrollingTabController.html":"<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerMenuButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\"\n\t\t\tdata-dojo-props=\"containerId: '${containerId}', iconClass: 'dijitTabStripMenuIcon',\n\t\t\t\t\tdropDownPosition: ['below-alt', 'above-alt']\"\n\t\t\tdata-dojo-attach-point=\"_menuBtn\" showLabel=\"false\" title=\"\">&#9660;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideLeftIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_leftBtn\" data-dojo-attach-event=\"onClick: doSlideLeft\">&#9664;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideRightIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_rightBtn\" data-dojo-attach-event=\"onClick: doSlideRight\">&#9654;</div>\n\t<div class='dijitTabListWrapper' data-dojo-attach-point='tablistWrapper'>\n\t\t<div role='tablist' data-dojo-attach-event='onkeypress:onkeypress'\n\t\t\t\tdata-dojo-attach-point='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>","url:dijit/layout/templates/_ScrollingTabControllerButton.html":"<div data-dojo-attach-event=\"onclick:_onClick\">\n\t<div role=\"presentation\" class=\"dijitTabInnerDiv\" data-dojo-attach-point=\"innerDiv,focusNode\">\n\t\t<div role=\"presentation\" class=\"dijitTabContent dijitButtonContents\" data-dojo-attach-point=\"tabContent\">\n\t\t\t<img role=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t\t\t<span data-dojo-attach-point=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n\t\t</div>\n\t</div>\n</div>"}});define("dijit/layout/ScrollingTabController",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/fx","dojo/_base/lang","dojo/query","dojo/_base/sniff","../registry","dojo/text!./templates/ScrollingTabController.html","dojo/text!./templates/_ScrollingTabControllerButton.html","./TabController","./utils","../_WidgetsInTemplateMixin","../Menu","../MenuItem","../form/Button","../_HasDropDown","dojo/NodeList-dom"],function(_1,_2,_3,_4,_5,fx,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12){var _13=_2("dijit.layout.ScrollingTabController",[_c,_e],{baseClass:"dijitTabController dijitScrollingTabController",templateString:_a,useMenu:true,useSlider:true,tabStripClass:"",widgetsInTemplate:true,_minScroll:5,_setClassAttr:{node:"containerNode",type:"class"},buildRendering:function(){this.inherited(arguments);var n=this.domNode;this.scrollNode=this.tablistWrapper;this._initButtons();if(!this.tabStripClass){this.tabStripClass="dijitTabContainer"+this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"")+"None";_3.add(n,"tabStrip-disabled");}_3.add(this.tablistWrapper,this.tabStripClass);},onStartup:function(){this.inherited(arguments);_5.set(this.domNode,"visibility","");this._postStartup=true;},onAddChild:function(_14,_15){this.inherited(arguments);_1.forEach(["label","iconClass"],function(_16){this.pane2watches[_14.id].push(this.pane2button[_14.id].watch(_16,_6.hitch(this,function(){if(this._postStartup&&this._dim){this.resize(this._dim);}})));},this);_5.set(this.containerNode,"width",(_5.get(this.containerNode,"width")+200)+"px");},onRemoveChild:function(_17,_18){var _19=this.pane2button[_17.id];if(this._selectedTab===_19.domNode){this._selectedTab=null;}this.inherited(arguments);},_initButtons:function(){this._btnWidth=0;this._buttons=_7("> .tabStripButton",this.domNode).filter(function(btn){if((this.useMenu&&btn==this._menuBtn.domNode)||(this.useSlider&&(btn==this._rightBtn.domNode||btn==this._leftBtn.domNode))){this._btnWidth+=_4.getMarginSize(btn).w;return true;}else{_5.set(btn,"display","none");return false;}},this);},_getTabsWidth:function(){var _1a=this.getChildren();if(_1a.length){var _1b=_1a[this.isLeftToRight()?0:_1a.length-1].domNode,_1c=_1a[this.isLeftToRight()?_1a.length-1:0].domNode;return _1c.offsetLeft+_5.get(_1c,"width")-_1b.offsetLeft;}else{return 0;}},_enableBtn:function(_1d){var _1e=this._getTabsWidth();_1d=_1d||_5.get(this.scrollNode,"width");return _1e>0&&_1d<_1e;},resize:function(dim){this._dim=dim;this.scrollNode.style.height="auto";var cb=this._contentBox=_d.marginBox2contentBox(this.domNode,{h:0,w:dim.w});cb.h=this.scrollNode.offsetHeight;_4.setContentSize(this.domNode,cb);var _1f=this._enableBtn(this._contentBox.w);this._buttons.style("display",_1f?"":"none");this._leftBtn.layoutAlign="left";this._rightBtn.layoutAlign="right";this._menuBtn.layoutAlign=this.isLeftToRight()?"right":"left";_d.layoutChildren(this.domNode,this._contentBox,[this._menuBtn,this._leftBtn,this._rightBtn,{domNode:this.scrollNode,layoutAlign:"client"}]);if(this._selectedTab){if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}this.scrollNode.scrollLeft=this._convertToScrollLeft(this._getScrollForSelectedTab());}this._setButtonClass(this._getScroll());this._postResize=true;return {h:this._contentBox.h,w:dim.w};},_getScroll:function(){return (this.isLeftToRight()||_8("ie")<8||(_8("ie")&&_8("quirks"))||_8("webkit"))?this.scrollNode.scrollLeft:_5.get(this.containerNode,"width")-_5.get(this.scrollNode,"width")+(_8("ie")==8?-1:1)*this.scrollNode.scrollLeft;},_convertToScrollLeft:function(val){if(this.isLeftToRight()||_8("ie")<8||(_8("ie")&&_8("quirks"))||_8("webkit")){return val;}else{var _20=_5.get(this.containerNode,"width")-_5.get(this.scrollNode,"width");return (_8("ie")==8?-1:1)*(val-_20);}},onSelectChild:function(_21){var tab=this.pane2button[_21.id];if(!tab||!_21){return;}var _22=tab.domNode;if(_22!=this._selectedTab){this._selectedTab=_22;if(this._postResize){var sl=this._getScroll();if(sl>_22.offsetLeft||sl+_5.get(this.scrollNode,"width")<_22.offsetLeft+_5.get(_22,"width")){this.createSmoothScroll().play();}}}this.inherited(arguments);},_getScrollBounds:function(){var _23=this.getChildren(),_24=_5.get(this.scrollNode,"width"),_25=_5.get(this.containerNode,"width"),_26=_25-_24,_27=this._getTabsWidth();if(_23.length&&_27>_24){return {min:this.isLeftToRight()?0:_23[_23.length-1].domNode.offsetLeft,max:this.isLeftToRight()?(_23[_23.length-1].domNode.offsetLeft+_5.get(_23[_23.length-1].domNode,"width"))-_24:_26};}else{var _28=this.isLeftToRight()?0:_26;return {min:_28,max:_28};}},_getScrollForSelectedTab:function(){var w=this.scrollNode,n=this._selectedTab,_29=_5.get(this.scrollNode,"width"),_2a=this._getScrollBounds();var pos=(n.offsetLeft+_5.get(n,"width")/2)-_29/2;pos=Math.min(Math.max(pos,_2a.min),_2a.max);return pos;},createSmoothScroll:function(x){if(arguments.length>0){var _2b=this._getScrollBounds();x=Math.min(Math.max(x,_2b.min),_2b.max);}else{x=this._getScrollForSelectedTab();}if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}var _2c=this,w=this.scrollNode,_2d=new fx.Animation({beforeBegin:function(){if(this.curve){delete this.curve;}var _2e=w.scrollLeft,_2f=_2c._convertToScrollLeft(x);_2d.curve=new fx._Line(_2e,_2f);},onAnimate:function(val){w.scrollLeft=val;}});this._anim=_2d;this._setButtonClass(x);return _2d;},_getBtnNode:function(e){var n=e.target;while(n&&!_3.contains(n,"tabStripButton")){n=n.parentNode;}return n;},doSlideRight:function(e){this.doSlide(1,this._getBtnNode(e));},doSlideLeft:function(e){this.doSlide(-1,this._getBtnNode(e));},doSlide:function(_30,_31){if(_31&&_3.contains(_31,"dijitTabDisabled")){return;}var _32=_5.get(this.scrollNode,"width");var d=(_32*0.75)*_30;var to=this._getScroll()+d;this._setButtonClass(to);this.createSmoothScroll(to).play();},_setButtonClass:function(_33){var _34=this._getScrollBounds();this._leftBtn.set("disabled",_33<=_34.min);this._rightBtn.set("disabled",_33>=_34.max);}});var _35=_2("dijit.layout._ScrollingTabControllerButtonMixin",null,{baseClass:"dijitTab tabStripButton",templateString:_b,tabIndex:"",isFocusable:function(){return false;}});_2("dijit.layout._ScrollingTabControllerButton",[_11,_35]);_2("dijit.layout._ScrollingTabControllerMenuButton",[_11,_12,_35],{containerId:"",tabIndex:"-1",isLoaded:function(){return false;},loadDropDown:function(_36){this.dropDown=new _f({id:this.containerId+"_menu",dir:this.dir,lang:this.lang,textDir:this.textDir});var _37=_9.byId(this.containerId);_1.forEach(_37.getChildren(),function(_38){var _39=new _10({id:_38.id+"_stcMi",label:_38.title,iconClass:_38.iconClass,dir:_38.dir,lang:_38.lang,textDir:_38.textDir,onClick:function(){_37.selectChild(_38);}});this.dropDown.addChild(_39);},this);_36();},closeDropDown:function(_3a){this.inherited(arguments);if(this.dropDown){this.dropDown.destroyRecursive();delete this.dropDown;}}});return _13;}); \ No newline at end of file
+require({cache:{"url:dijit/layout/templates/ScrollingTabController.html":"<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerMenuButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\"\n\t\t\tdata-dojo-props=\"containerId: '${containerId}', iconClass: 'dijitTabStripMenuIcon',\n\t\t\t\t\tdropDownPosition: ['below-alt', 'above-alt']\"\n\t\t\tdata-dojo-attach-point=\"_menuBtn\" showLabel=\"false\" title=\"\">&#9660;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideLeftIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_leftBtn\" data-dojo-attach-event=\"onClick: doSlideLeft\">&#9664;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideRightIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_rightBtn\" data-dojo-attach-event=\"onClick: doSlideRight\">&#9654;</div>\n\t<div class='dijitTabListWrapper' data-dojo-attach-point='tablistWrapper'>\n\t\t<div role='tablist' data-dojo-attach-event='onkeypress:onkeypress'\n\t\t\t\tdata-dojo-attach-point='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>","url:dijit/layout/templates/_ScrollingTabControllerButton.html":"<div data-dojo-attach-event=\"onclick:_onClick\" class=\"dijitTabInnerDiv dijitTabContent dijitButtonContents\" data-dojo-attach-point=\"focusNode\">\n\t<img role=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t<span data-dojo-attach-point=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n</div>"}});define("dijit/layout/ScrollingTabController",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/fx","dojo/_base/lang","dojo/on","dojo/query","dojo/sniff","../registry","dojo/text!./templates/ScrollingTabController.html","dojo/text!./templates/_ScrollingTabControllerButton.html","./TabController","./utils","../_WidgetsInTemplateMixin","../Menu","../MenuItem","../form/Button","../_HasDropDown","dojo/NodeList-dom"],function(_1,_2,_3,_4,_5,fx,_6,on,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12){var _13=_2("dijit.layout.ScrollingTabController",[_c,_e],{baseClass:"dijitTabController dijitScrollingTabController",templateString:_a,useMenu:true,useSlider:true,tabStripClass:"",widgetsInTemplate:true,_minScroll:5,_setClassAttr:{node:"containerNode",type:"class"},buildRendering:function(){this.inherited(arguments);var n=this.domNode;this.scrollNode=this.tablistWrapper;this._initButtons();if(!this.tabStripClass){this.tabStripClass="dijitTabContainer"+this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"")+"None";_3.add(n,"tabStrip-disabled");}_3.add(this.tablistWrapper,this.tabStripClass);},onStartup:function(){this.inherited(arguments);_5.set(this.domNode,"visibility","");this._postStartup=true;this.own(on(this.containerNode,"attrmodified-label, attrmodified-iconclass",_6.hitch(this,function(evt){if(this._dim){this.resize(this._dim);}})));},onAddChild:function(_14,_15){this.inherited(arguments);_5.set(this.containerNode,"width",(_5.get(this.containerNode,"width")+200)+"px");},onRemoveChild:function(_16,_17){var _18=this.pane2button[_16.id];if(this._selectedTab===_18.domNode){this._selectedTab=null;}this.inherited(arguments);},_initButtons:function(){this._btnWidth=0;this._buttons=_7("> .tabStripButton",this.domNode).filter(function(btn){if((this.useMenu&&btn==this._menuBtn.domNode)||(this.useSlider&&(btn==this._rightBtn.domNode||btn==this._leftBtn.domNode))){this._btnWidth+=_4.getMarginSize(btn).w;return true;}else{_5.set(btn,"display","none");return false;}},this);},_getTabsWidth:function(){var _19=this.getChildren();if(_19.length){var _1a=_19[this.isLeftToRight()?0:_19.length-1].domNode,_1b=_19[this.isLeftToRight()?_19.length-1:0].domNode;return _1b.offsetLeft+_1b.offsetWidth-_1a.offsetLeft;}else{return 0;}},_enableBtn:function(_1c){var _1d=this._getTabsWidth();_1c=_1c||_5.get(this.scrollNode,"width");return _1d>0&&_1c<_1d;},resize:function(dim){this._dim=dim;this.scrollNode.style.height="auto";var cb=this._contentBox=_d.marginBox2contentBox(this.domNode,{h:0,w:dim.w});cb.h=this.scrollNode.offsetHeight;_4.setContentSize(this.domNode,cb);var _1e=this._enableBtn(this._contentBox.w);this._buttons.style("display",_1e?"":"none");this._leftBtn.layoutAlign="left";this._rightBtn.layoutAlign="right";this._menuBtn.layoutAlign=this.isLeftToRight()?"right":"left";_d.layoutChildren(this.domNode,this._contentBox,[this._menuBtn,this._leftBtn,this._rightBtn,{domNode:this.scrollNode,layoutAlign:"client"}]);if(this._selectedTab){if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}this.scrollNode.scrollLeft=this._convertToScrollLeft(this._getScrollForSelectedTab());}this._setButtonClass(this._getScroll());this._postResize=true;return {h:this._contentBox.h,w:dim.w};},_getScroll:function(){return (this.isLeftToRight()||_8("ie")<8||(_8("ie")&&_8("quirks"))||_8("webkit"))?this.scrollNode.scrollLeft:_5.get(this.containerNode,"width")-_5.get(this.scrollNode,"width")+(_8("ie")>=8?-1:1)*this.scrollNode.scrollLeft;},_convertToScrollLeft:function(val){if(this.isLeftToRight()||_8("ie")<8||(_8("ie")&&_8("quirks"))||_8("webkit")){return val;}else{var _1f=_5.get(this.containerNode,"width")-_5.get(this.scrollNode,"width");return (_8("ie")>=8?-1:1)*(val-_1f);}},onSelectChild:function(_20){var tab=this.pane2button[_20.id];if(!tab||!_20){return;}var _21=tab.domNode;if(_21!=this._selectedTab){this._selectedTab=_21;if(this._postResize){var sl=this._getScroll();if(sl>_21.offsetLeft||sl+_5.get(this.scrollNode,"width")<_21.offsetLeft+_5.get(_21,"width")){this.createSmoothScroll().play();}}}this.inherited(arguments);},_getScrollBounds:function(){var _22=this.getChildren(),_23=_5.get(this.scrollNode,"width"),_24=_5.get(this.containerNode,"width"),_25=_24-_23,_26=this._getTabsWidth();if(_22.length&&_26>_23){return {min:this.isLeftToRight()?0:_22[_22.length-1].domNode.offsetLeft,max:this.isLeftToRight()?(_22[_22.length-1].domNode.offsetLeft+_22[_22.length-1].domNode.offsetWidth)-_23:_25};}else{var _27=this.isLeftToRight()?0:_25;return {min:_27,max:_27};}},_getScrollForSelectedTab:function(){var w=this.scrollNode,n=this._selectedTab,_28=_5.get(this.scrollNode,"width"),_29=this._getScrollBounds();var pos=(n.offsetLeft+_5.get(n,"width")/2)-_28/2;pos=Math.min(Math.max(pos,_29.min),_29.max);return pos;},createSmoothScroll:function(x){if(arguments.length>0){var _2a=this._getScrollBounds();x=Math.min(Math.max(x,_2a.min),_2a.max);}else{x=this._getScrollForSelectedTab();}if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}var _2b=this,w=this.scrollNode,_2c=new fx.Animation({beforeBegin:function(){if(this.curve){delete this.curve;}var _2d=w.scrollLeft,_2e=_2b._convertToScrollLeft(x);_2c.curve=new fx._Line(_2d,_2e);},onAnimate:function(val){w.scrollLeft=val;}});this._anim=_2c;this._setButtonClass(x);return _2c;},_getBtnNode:function(e){var n=e.target;while(n&&!_3.contains(n,"tabStripButton")){n=n.parentNode;}return n;},doSlideRight:function(e){this.doSlide(1,this._getBtnNode(e));},doSlideLeft:function(e){this.doSlide(-1,this._getBtnNode(e));},doSlide:function(_2f,_30){if(_30&&_3.contains(_30,"dijitTabDisabled")){return;}var _31=_5.get(this.scrollNode,"width");var d=(_31*0.75)*_2f;var to=this._getScroll()+d;this._setButtonClass(to);this.createSmoothScroll(to).play();},_setButtonClass:function(_32){var _33=this._getScrollBounds();this._leftBtn.set("disabled",_32<=_33.min);this._rightBtn.set("disabled",_32>=_33.max);}});var _34=_2("dijit.layout._ScrollingTabControllerButtonMixin",null,{baseClass:"dijitTab tabStripButton",templateString:_b,tabIndex:"",isFocusable:function(){return false;}});_2("dijit.layout._ScrollingTabControllerButton",[_11,_34]);_2("dijit.layout._ScrollingTabControllerMenuButton",[_11,_12,_34],{containerId:"",tabIndex:"-1",isLoaded:function(){return false;},loadDropDown:function(_35){this.dropDown=new _f({id:this.containerId+"_menu",ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir});var _36=_9.byId(this.containerId);_1.forEach(_36.getChildren(),function(_37){var _38=new _10({id:_37.id+"_stcMi",label:_37.title,iconClass:_37.iconClass,disabled:_37.disabled,ownerDocument:this.ownerDocument,dir:_37.dir,lang:_37.lang,textDir:_37.textDir,onClick:function(){_36.selectChild(_37);}});this.dropDown.addChild(_38);},this);_35();},closeDropDown:function(_39){this.inherited(arguments);if(this.dropDown){this.dropDown.destroyRecursive();delete this.dropDown;}}});return _13;}); \ No newline at end of file
diff --git a/lib/dijit/layout/SplitContainer.js b/lib/dijit/layout/SplitContainer.js
index 165ba9e2e..06560e1b9 100644
--- a/lib/dijit/layout/SplitContainer.js
+++ b/lib/dijit/layout/SplitContainer.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/layout/SplitContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/_base/sniff","dojo/_base/window","../registry","../_WidgetBase","./_LayoutWidget"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,on,_c,_d,_e,_f,_10){_b.extend(_f,{sizeMin:10,sizeShare:10});return _3("dijit.layout.SplitContainer",_10,{constructor:function(){_a.deprecated("dijit.layout.SplitContainer is deprecated","use BorderContainer with splitter instead",2);},activeSizing:false,sizerWidth:7,orientation:"horizontal",persist:true,baseClass:"dijitSplitContainer",postMixInProperties:function(){this.inherited("postMixInProperties",arguments);this.isHorizontal=(this.orientation=="horizontal");},postCreate:function(){this.inherited(arguments);this.sizers=[];if(_c("mozilla")){this.domNode.style.overflow="-moz-scrollbars-none";}if(typeof this.sizerWidth=="object"){try{this.sizerWidth=parseInt(this.sizerWidth.toString());}catch(e){this.sizerWidth=7;}}var _11=_d.doc.createElement("div");this.virtualSizer=_11;_11.style.position="relative";_11.style.zIndex=10;_11.className=this.isHorizontal?"dijitSplitContainerVirtualSizerH":"dijitSplitContainerVirtualSizerV";this.domNode.appendChild(_11);_4.setSelectable(_11,false);},destroy:function(){delete this.virtualSizer;if(this._ownconnects){var h;while(h=this._ownconnects.pop()){h.remove();}}this.inherited(arguments);},startup:function(){if(this._started){return;}_1.forEach(this.getChildren(),function(_12,i,_13){this._setupChild(_12);if(i<_13.length-1){this._addSizer();}},this);if(this.persist){this._restoreState();}this.inherited(arguments);},_setupChild:function(_14){this.inherited(arguments);_14.domNode.style.position="absolute";_5.add(_14.domNode,"dijitSplitPane");},_onSizerMouseDown:function(e){if(e.target.id){for(var i=0;i<this.sizers.length;i++){if(this.sizers[i].id==e.target.id){break;}}if(i<this.sizers.length){this.beginSizing(e,i);}}},_addSizer:function(_15){_15=_15===undefined?this.sizers.length:_15;var _16=_d.doc.createElement("div");_16.id=_e.getUniqueId("dijit_layout_SplitterContainer_Splitter");this.sizers.splice(_15,0,_16);this.domNode.appendChild(_16);_16.className=this.isHorizontal?"dijitSplitContainerSizerH":"dijitSplitContainerSizerV";var _17=_d.doc.createElement("div");_17.className="thumb";_16.appendChild(_17);this.connect(_16,"onmousedown","_onSizerMouseDown");_4.setSelectable(_16,false);},removeChild:function(_18){if(this.sizers.length){var i=_1.indexOf(this.getChildren(),_18);if(i!=-1){if(i==this.sizers.length){i--;}_6.destroy(this.sizers[i]);this.sizers.splice(i,1);}}this.inherited(arguments);if(this._started){this.layout();}},addChild:function(_19,_1a){this.inherited(arguments);if(this._started){var _1b=this.getChildren();if(_1b.length>1){this._addSizer(_1a);}this.layout();}},layout:function(){this.paneWidth=this._contentBox.w;this.paneHeight=this._contentBox.h;var _1c=this.getChildren();if(!_1c.length){return;}var _1d=this.isHorizontal?this.paneWidth:this.paneHeight;if(_1c.length>1){_1d-=this.sizerWidth*(_1c.length-1);}var _1e=0;_1.forEach(_1c,function(_1f){_1e+=_1f.sizeShare;});var _20=_1d/_1e;var _21=0;_1.forEach(_1c.slice(0,_1c.length-1),function(_22){var _23=Math.round(_20*_22.sizeShare);_22.sizeActual=_23;_21+=_23;});_1c[_1c.length-1].sizeActual=_1d-_21;this._checkSizes();var pos=0;var _24=_1c[0].sizeActual;this._movePanel(_1c[0],pos,_24);_1c[0].position=pos;pos+=_24;if(!this.sizers){return;}_1.some(_1c.slice(1),function(_25,i){if(!this.sizers[i]){return true;}this._moveSlider(this.sizers[i],pos,this.sizerWidth);this.sizers[i].position=pos;pos+=this.sizerWidth;_24=_25.sizeActual;this._movePanel(_25,pos,_24);_25.position=pos;pos+=_24;},this);},_movePanel:function(_26,pos,_27){var box;if(this.isHorizontal){_26.domNode.style.left=pos+"px";_26.domNode.style.top=0;box={w:_27,h:this.paneHeight};if(_26.resize){_26.resize(box);}else{_7.setMarginBox(_26.domNode,box);}}else{_26.domNode.style.left=0;_26.domNode.style.top=pos+"px";box={w:this.paneWidth,h:_27};if(_26.resize){_26.resize(box);}else{_7.setMarginBox(_26.domNode,box);}}},_moveSlider:function(_28,pos,_29){if(this.isHorizontal){_28.style.left=pos+"px";_28.style.top=0;_7.setMarginBox(_28,{w:_29,h:this.paneHeight});}else{_28.style.left=0;_28.style.top=pos+"px";_7.setMarginBox(_28,{w:this.paneWidth,h:_29});}},_growPane:function(_2a,_2b){if(_2a>0){if(_2b.sizeActual>_2b.sizeMin){if((_2b.sizeActual-_2b.sizeMin)>_2a){_2b.sizeActual=_2b.sizeActual-_2a;_2a=0;}else{_2a-=_2b.sizeActual-_2b.sizeMin;_2b.sizeActual=_2b.sizeMin;}}}return _2a;},_checkSizes:function(){var _2c=0;var _2d=0;var _2e=this.getChildren();_1.forEach(_2e,function(_2f){_2d+=_2f.sizeActual;_2c+=_2f.sizeMin;});if(_2c<=_2d){var _30=0;_1.forEach(_2e,function(_31){if(_31.sizeActual<_31.sizeMin){_30+=_31.sizeMin-_31.sizeActual;_31.sizeActual=_31.sizeMin;}});if(_30>0){var _32=this.isDraggingLeft?_2e.reverse():_2e;_1.forEach(_32,function(_33){_30=this._growPane(_30,_33);},this);}}else{_1.forEach(_2e,function(_34){_34.sizeActual=Math.round(_2d*(_34.sizeMin/_2c));});}},beginSizing:function(e,i){var _35=this.getChildren();this.paneBefore=_35[i];this.paneAfter=_35[i+1];this.isSizing=true;this.sizingSplitter=this.sizers[i];if(!this.cover){this.cover=_6.create("div",{style:{position:"absolute",zIndex:5,top:0,left:0,width:"100%",height:"100%"}},this.domNode);}else{this.cover.style.zIndex=5;}this.sizingSplitter.style.zIndex=6;this.originPos=_7.position(_35[0].domNode,true);var _36,_37;if(this.isHorizontal){_36=e.layerX||e.offsetX||0;_37=e.pageX;this.originPos=this.originPos.x;}else{_36=e.layerY||e.offsetY||0;_37=e.pageY;this.originPos=this.originPos.y;}this.startPoint=this.lastPoint=_37;this.screenToClientOffset=_37-_36;this.dragOffset=this.lastPoint-this.paneBefore.sizeActual-this.originPos-this.paneBefore.position;if(!this.activeSizing){this._showSizingLine();}this._ownconnects=[on(_d.doc.documentElement,"mousemove",_b.hitch(this,"changeSizing")),on(_d.doc.documentElement,"mouseup",_b.hitch(this,"endSizing"))];_9.stop(e);},changeSizing:function(e){if(!this.isSizing){return;}this.lastPoint=this.isHorizontal?e.pageX:e.pageY;this.movePoint();if(this.activeSizing){this._updateSize();}else{this._moveSizingLine();}_9.stop(e);},endSizing:function(){if(!this.isSizing){return;}if(this.cover){this.cover.style.zIndex=-1;}if(!this.activeSizing){this._hideSizingLine();}this._updateSize();this.isSizing=false;if(this.persist){this._saveState(this);}var h;while(h=this._ownconnects.pop()){h.remove();}},movePoint:function(){var p=this.lastPoint-this.screenToClientOffset;var a=p-this.dragOffset;a=this.legaliseSplitPoint(a);p=a+this.dragOffset;this.lastPoint=p+this.screenToClientOffset;},legaliseSplitPoint:function(a){a+=this.sizingSplitter.position;this.isDraggingLeft=!!(a>0);if(!this.activeSizing){var min=this.paneBefore.position+this.paneBefore.sizeMin;if(a<min){a=min;}var max=this.paneAfter.position+(this.paneAfter.sizeActual-(this.sizerWidth+this.paneAfter.sizeMin));if(a>max){a=max;}}a-=this.sizingSplitter.position;this._checkSizes();return a;},_updateSize:function(){var pos=this.lastPoint-this.dragOffset-this.originPos;var _38=this.paneBefore.position;var _39=this.paneAfter.position+this.paneAfter.sizeActual;this.paneBefore.sizeActual=pos-_38;this.paneAfter.position=pos+this.sizerWidth;this.paneAfter.sizeActual=_39-this.paneAfter.position;_1.forEach(this.getChildren(),function(_3a){_3a.sizeShare=_3a.sizeActual;});if(this._started){this.layout();}},_showSizingLine:function(){this._moveSizingLine();_7.setMarginBox(this.virtualSizer,this.isHorizontal?{w:this.sizerWidth,h:this.paneHeight}:{w:this.paneWidth,h:this.sizerWidth});this.virtualSizer.style.display="block";},_hideSizingLine:function(){this.virtualSizer.style.display="none";},_moveSizingLine:function(){var pos=(this.lastPoint-this.startPoint)+this.sizingSplitter.position;_8.set(this.virtualSizer,(this.isHorizontal?"left":"top"),pos+"px");},_getCookieName:function(i){return this.id+"_"+i;},_restoreState:function(){_1.forEach(this.getChildren(),function(_3b,i){var _3c=this._getCookieName(i);var _3d=_2(_3c);if(_3d){var pos=parseInt(_3d);if(typeof pos=="number"){_3b.sizeShare=pos;}}},this);},_saveState:function(){if(!this.persist){return;}_1.forEach(this.getChildren(),function(_3e,i){_2(this._getCookieName(i),_3e.sizeShare,{expires:365});},this);}});}); \ No newline at end of file
+define("dijit/layout/SplitContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/sniff","../registry","../_WidgetBase","./_LayoutWidget"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,on,_c,_d,_e,_f){var _10=_3("dijit.layout.SplitContainer",_f,{constructor:function(){_a.deprecated("dijit.layout.SplitContainer is deprecated","use BorderContainer with splitter instead",2);},activeSizing:false,sizerWidth:7,orientation:"horizontal",persist:true,baseClass:"dijitSplitContainer",postMixInProperties:function(){this.inherited("postMixInProperties",arguments);this.isHorizontal=(this.orientation=="horizontal");},postCreate:function(){this.inherited(arguments);this.sizers=[];if(_c("mozilla")){this.domNode.style.overflow="-moz-scrollbars-none";}if(typeof this.sizerWidth=="object"){try{this.sizerWidth=parseInt(this.sizerWidth.toString());}catch(e){this.sizerWidth=7;}}var _11=this.ownerDocument.createElement("div");this.virtualSizer=_11;_11.style.position="relative";_11.style.zIndex=10;_11.className=this.isHorizontal?"dijitSplitContainerVirtualSizerH":"dijitSplitContainerVirtualSizerV";this.domNode.appendChild(_11);_4.setSelectable(_11,false);},destroy:function(){delete this.virtualSizer;if(this._ownconnects){var h;while(h=this._ownconnects.pop()){h.remove();}}this.inherited(arguments);},startup:function(){if(this._started){return;}_1.forEach(this.getChildren(),function(_12,i,_13){this._setupChild(_12);if(i<_13.length-1){this._addSizer();}},this);if(this.persist){this._restoreState();}this.inherited(arguments);},_setupChild:function(_14){this.inherited(arguments);_14.domNode.style.position="absolute";_5.add(_14.domNode,"dijitSplitPane");},_onSizerMouseDown:function(e){if(e.target.id){for(var i=0;i<this.sizers.length;i++){if(this.sizers[i].id==e.target.id){break;}}if(i<this.sizers.length){this.beginSizing(e,i);}}},_addSizer:function(_15){_15=_15===undefined?this.sizers.length:_15;var _16=this.ownerDocument.createElement("div");_16.id=_d.getUniqueId("dijit_layout_SplitterContainer_Splitter");this.sizers.splice(_15,0,_16);this.domNode.appendChild(_16);_16.className=this.isHorizontal?"dijitSplitContainerSizerH":"dijitSplitContainerSizerV";var _17=this.ownerDocument.createElement("div");_17.className="thumb";_16.appendChild(_17);this.connect(_16,"onmousedown","_onSizerMouseDown");_4.setSelectable(_16,false);},removeChild:function(_18){if(this.sizers.length){var i=_1.indexOf(this.getChildren(),_18);if(i!=-1){if(i==this.sizers.length){i--;}_6.destroy(this.sizers[i]);this.sizers.splice(i,1);}}this.inherited(arguments);if(this._started){this.layout();}},addChild:function(_19,_1a){this.inherited(arguments);if(this._started){var _1b=this.getChildren();if(_1b.length>1){this._addSizer(_1a);}this.layout();}},layout:function(){this.paneWidth=this._contentBox.w;this.paneHeight=this._contentBox.h;var _1c=this.getChildren();if(!_1c.length){return;}var _1d=this.isHorizontal?this.paneWidth:this.paneHeight;if(_1c.length>1){_1d-=this.sizerWidth*(_1c.length-1);}var _1e=0;_1.forEach(_1c,function(_1f){_1e+=_1f.sizeShare;});var _20=_1d/_1e;var _21=0;_1.forEach(_1c.slice(0,_1c.length-1),function(_22){var _23=Math.round(_20*_22.sizeShare);_22.sizeActual=_23;_21+=_23;});_1c[_1c.length-1].sizeActual=_1d-_21;this._checkSizes();var pos=0;var _24=_1c[0].sizeActual;this._movePanel(_1c[0],pos,_24);_1c[0].position=pos;pos+=_24;if(!this.sizers){return;}_1.some(_1c.slice(1),function(_25,i){if(!this.sizers[i]){return true;}this._moveSlider(this.sizers[i],pos,this.sizerWidth);this.sizers[i].position=pos;pos+=this.sizerWidth;_24=_25.sizeActual;this._movePanel(_25,pos,_24);_25.position=pos;pos+=_24;},this);},_movePanel:function(_26,pos,_27){var box;if(this.isHorizontal){_26.domNode.style.left=pos+"px";_26.domNode.style.top=0;box={w:_27,h:this.paneHeight};if(_26.resize){_26.resize(box);}else{_7.setMarginBox(_26.domNode,box);}}else{_26.domNode.style.left=0;_26.domNode.style.top=pos+"px";box={w:this.paneWidth,h:_27};if(_26.resize){_26.resize(box);}else{_7.setMarginBox(_26.domNode,box);}}},_moveSlider:function(_28,pos,_29){if(this.isHorizontal){_28.style.left=pos+"px";_28.style.top=0;_7.setMarginBox(_28,{w:_29,h:this.paneHeight});}else{_28.style.left=0;_28.style.top=pos+"px";_7.setMarginBox(_28,{w:this.paneWidth,h:_29});}},_growPane:function(_2a,_2b){if(_2a>0){if(_2b.sizeActual>_2b.sizeMin){if((_2b.sizeActual-_2b.sizeMin)>_2a){_2b.sizeActual=_2b.sizeActual-_2a;_2a=0;}else{_2a-=_2b.sizeActual-_2b.sizeMin;_2b.sizeActual=_2b.sizeMin;}}}return _2a;},_checkSizes:function(){var _2c=0;var _2d=0;var _2e=this.getChildren();_1.forEach(_2e,function(_2f){_2d+=_2f.sizeActual;_2c+=_2f.sizeMin;});if(_2c<=_2d){var _30=0;_1.forEach(_2e,function(_31){if(_31.sizeActual<_31.sizeMin){_30+=_31.sizeMin-_31.sizeActual;_31.sizeActual=_31.sizeMin;}});if(_30>0){var _32=this.isDraggingLeft?_2e.reverse():_2e;_1.forEach(_32,function(_33){_30=this._growPane(_30,_33);},this);}}else{_1.forEach(_2e,function(_34){_34.sizeActual=Math.round(_2d*(_34.sizeMin/_2c));});}},beginSizing:function(e,i){var _35=this.getChildren();this.paneBefore=_35[i];this.paneAfter=_35[i+1];this.paneBefore.sizeBeforeDrag=this.paneBefore.sizeActual;this.paneAfter.sizeBeforeDrag=this.paneAfter.sizeActual;this.paneAfter.positionBeforeDrag=this.paneAfter.position;this.isSizing=true;this.sizingSplitter=this.sizers[i];this.sizingSplitter.positionBeforeDrag=_8.get(this.sizingSplitter,(this.isHorizontal?"left":"top"));if(!this.cover){this.cover=_6.create("div",{style:{position:"absolute",zIndex:5,top:0,left:0,width:"100%",height:"100%"}},this.domNode);}else{this.cover.style.zIndex=5;}this.sizingSplitter.style.zIndex=6;this.startPoint=this.lastPoint=(this.isHorizontal?e.pageX:e.pageY);this.maxDelta=this.paneAfter.sizeActual-this.paneAfter.sizeMin;this.minDelta=-1*(this.paneBefore.sizeActual-this.paneBefore.sizeMin);if(!this.activeSizing){this._showSizingLine();}this._ownconnects=[on(this.ownerDocument.documentElement,"mousemove",_b.hitch(this,"changeSizing")),on(this.ownerDocument.documentElement,"mouseup",_b.hitch(this,"endSizing"))];_9.stop(e);},changeSizing:function(e){if(!this.isSizing){return;}this.lastPoint=this.isHorizontal?e.pageX:e.pageY;var _36=Math.max(Math.min(this.lastPoint-this.startPoint,this.maxDelta),this.minDelta);if(this.activeSizing){this._updateSize(_36);}else{this._moveSizingLine(_36);}_9.stop(e);},endSizing:function(){if(!this.isSizing){return;}if(this.cover){this.cover.style.zIndex=-1;}if(!this.activeSizing){this._hideSizingLine();}var _37=Math.max(Math.min(this.lastPoint-this.startPoint,this.maxDelta),this.minDelta);this._updateSize(_37);this.isSizing=false;if(this.persist){this._saveState(this);}var h;while(h=this._ownconnects.pop()){h.remove();}},_updateSize:function(_38){this.paneBefore.sizeActual=this.paneBefore.sizeBeforeDrag+_38;this.paneAfter.position=this.paneAfter.positionBeforeDrag+_38;this.paneAfter.sizeActual=this.paneAfter.sizeBeforeDrag-_38;_1.forEach(this.getChildren(),function(_39){_39.sizeShare=_39.sizeActual;});if(this._started){this.layout();}},_showSizingLine:function(){this._moveSizingLine(0);_7.setMarginBox(this.virtualSizer,this.isHorizontal?{w:this.sizerWidth,h:this.paneHeight}:{w:this.paneWidth,h:this.sizerWidth});this.virtualSizer.style.display="block";},_hideSizingLine:function(){this.virtualSizer.style.display="none";},_moveSizingLine:function(_3a){var pos=_3a+this.sizingSplitter.positionBeforeDrag;_8.set(this.virtualSizer,(this.isHorizontal?"left":"top"),pos+"px");},_getCookieName:function(i){return this.id+"_"+i;},_restoreState:function(){_1.forEach(this.getChildren(),function(_3b,i){var _3c=this._getCookieName(i);var _3d=_2(_3c);if(_3d){var pos=parseInt(_3d);if(typeof pos=="number"){_3b.sizeShare=pos;}}},this);},_saveState:function(){if(!this.persist){return;}_1.forEach(this.getChildren(),function(_3e,i){_2(this._getCookieName(i),_3e.sizeShare,{expires:365});},this);}});_10.ChildWidgetProperties={sizeMin:10,sizeShare:10};_b.extend(_e,_10.ChildWidgetProperties);return _10;}); \ No newline at end of file
diff --git a/lib/dijit/layout/StackContainer.js b/lib/dijit/layout/StackContainer.js
index b3e5ac15c..0035b4911 100644
--- a/lib/dijit/layout/StackContainer.js
+++ b/lib/dijit/layout/StackContainer.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/layout/StackContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom-class","dojo/_base/kernel","dojo/_base/lang","dojo/ready","dojo/topic","../registry","../_WidgetBase","./_LayoutWidget","dojo/i18n!../nls/common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){if(!_5.isAsync){_7(0,function(){var _c=["dijit/layout/StackController"];require(_c);});}_6.extend(_a,{selected:false,closable:false,iconClass:"dijitNoIcon",showTitle:true});return _3("dijit.layout.StackContainer",_b,{doLayout:true,persist:false,baseClass:"dijitStackContainer",buildRendering:function(){this.inherited(arguments);_4.add(this.domNode,"dijitLayoutContainer");this.containerNode.setAttribute("role","tabpanel");},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onkeypress",this._onKeyPress);},startup:function(){if(this._started){return;}var _d=this.getChildren();_1.forEach(_d,this._setupChild,this);if(this.persist){this.selectedChildWidget=_9.byId(_2(this.id+"_selectedChild"));}else{_1.some(_d,function(_e){if(_e.selected){this.selectedChildWidget=_e;}return _e.selected;},this);}var _f=this.selectedChildWidget;if(!_f&&_d[0]){_f=this.selectedChildWidget=_d[0];_f.selected=true;}_8.publish(this.id+"-startup",{children:_d,selected:_f});this.inherited(arguments);},resize:function(){if(!this._hasBeenShown){this._hasBeenShown=true;var _10=this.selectedChildWidget;if(_10){this._showChild(_10);}}this.inherited(arguments);},_setupChild:function(_11){this.inherited(arguments);_4.replace(_11.domNode,"dijitHidden","dijitVisible");_11.domNode.title="";},addChild:function(_12,_13){this.inherited(arguments);if(this._started){_8.publish(this.id+"-addChild",_12,_13);this.layout();if(!this.selectedChildWidget){this.selectChild(_12);}}},removeChild:function(_14){this.inherited(arguments);if(this._started){_8.publish(this.id+"-removeChild",_14);}if(this._descendantsBeingDestroyed){return;}if(this.selectedChildWidget===_14){this.selectedChildWidget=undefined;if(this._started){var _15=this.getChildren();if(_15.length){this.selectChild(_15[0]);}}}if(this._started){this.layout();}},selectChild:function(_16,_17){_16=_9.byId(_16);if(this.selectedChildWidget!=_16){var d=this._transition(_16,this.selectedChildWidget,_17);this._set("selectedChildWidget",_16);_8.publish(this.id+"-selectChild",_16);if(this.persist){_2(this.id+"_selectedChild",this.selectedChildWidget.id);}}return d;},_transition:function(_18,_19){if(_19){this._hideChild(_19);}var d=this._showChild(_18);if(_18.resize){if(this.doLayout){_18.resize(this._containerContentBox||this._contentBox);}else{_18.resize();}}return d;},_adjacent:function(_1a){var _1b=this.getChildren();var _1c=_1.indexOf(_1b,this.selectedChildWidget);_1c+=_1a?1:_1b.length-1;return _1b[_1c%_1b.length];},forward:function(){return this.selectChild(this._adjacent(true),true);},back:function(){return this.selectChild(this._adjacent(false),true);},_onKeyPress:function(e){_8.publish(this.id+"-containerKeyPress",{e:e,page:this});},layout:function(){var _1d=this.selectedChildWidget;if(_1d&&_1d.resize){if(this.doLayout){_1d.resize(this._containerContentBox||this._contentBox);}else{_1d.resize();}}},_showChild:function(_1e){var _1f=this.getChildren();_1e.isFirstChild=(_1e==_1f[0]);_1e.isLastChild=(_1e==_1f[_1f.length-1]);_1e._set("selected",true);_4.replace(_1e.domNode,"dijitVisible","dijitHidden");return (_1e._onShow&&_1e._onShow())||true;},_hideChild:function(_20){_20._set("selected",false);_4.replace(_20.domNode,"dijitHidden","dijitVisible");_20.onHide&&_20.onHide();},closeChild:function(_21){var _22=_21.onClose(this,_21);if(_22){this.removeChild(_21);_21.destroyRecursive();}},destroyDescendants:function(_23){this._descendantsBeingDestroyed=true;this.selectedChildWidget=undefined;_1.forEach(this.getChildren(),function(_24){if(!_23){this.removeChild(_24);}_24.destroyRecursive(_23);},this);this._descendantsBeingDestroyed=false;}});}); \ No newline at end of file
+define("dijit/layout/StackContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom-class","dojo/has","dojo/_base/lang","dojo/ready","dojo/topic","../registry","../_WidgetBase","./_LayoutWidget","dojo/i18n!../nls/common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){if(_5("dijit-legacy-requires")){_7(0,function(){var _c=["dijit/layout/StackController"];require(_c);});}var _d=_3("dijit.layout.StackContainer",_b,{doLayout:true,persist:false,baseClass:"dijitStackContainer",buildRendering:function(){this.inherited(arguments);_4.add(this.domNode,"dijitLayoutContainer");this.containerNode.setAttribute("role","tabpanel");},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onkeypress",this._onKeyPress);},startup:function(){if(this._started){return;}var _e=this.getChildren();_1.forEach(_e,this._setupChild,this);if(this.persist){this.selectedChildWidget=_9.byId(_2(this.id+"_selectedChild"));}else{_1.some(_e,function(_f){if(_f.selected){this.selectedChildWidget=_f;}return _f.selected;},this);}var _10=this.selectedChildWidget;if(!_10&&_e[0]){_10=this.selectedChildWidget=_e[0];_10.selected=true;}_8.publish(this.id+"-startup",{children:_e,selected:_10});this.inherited(arguments);},resize:function(){if(!this._hasBeenShown){this._hasBeenShown=true;var _11=this.selectedChildWidget;if(_11){this._showChild(_11);}}this.inherited(arguments);},_setupChild:function(_12){this.inherited(arguments);_4.replace(_12.domNode,"dijitHidden","dijitVisible");_12.domNode.title="";},addChild:function(_13,_14){this.inherited(arguments);if(this._started){_8.publish(this.id+"-addChild",_13,_14);this.layout();if(!this.selectedChildWidget){this.selectChild(_13);}}},removeChild:function(_15){this.inherited(arguments);if(this._started){_8.publish(this.id+"-removeChild",_15);}if(this._descendantsBeingDestroyed){return;}if(this.selectedChildWidget===_15){this.selectedChildWidget=undefined;if(this._started){var _16=this.getChildren();if(_16.length){this.selectChild(_16[0]);}}}if(this._started){this.layout();}},selectChild:function(_17,_18){_17=_9.byId(_17);if(this.selectedChildWidget!=_17){var d=this._transition(_17,this.selectedChildWidget,_18);this._set("selectedChildWidget",_17);_8.publish(this.id+"-selectChild",_17);if(this.persist){_2(this.id+"_selectedChild",this.selectedChildWidget.id);}}return d;},_transition:function(_19,_1a){if(_1a){this._hideChild(_1a);}var d=this._showChild(_19);if(_19.resize){if(this.doLayout){_19.resize(this._containerContentBox||this._contentBox);}else{_19.resize();}}return d;},_adjacent:function(_1b){var _1c=this.getChildren();var _1d=_1.indexOf(_1c,this.selectedChildWidget);_1d+=_1b?1:_1c.length-1;return _1c[_1d%_1c.length];},forward:function(){return this.selectChild(this._adjacent(true),true);},back:function(){return this.selectChild(this._adjacent(false),true);},_onKeyPress:function(e){_8.publish(this.id+"-containerKeyPress",{e:e,page:this});},layout:function(){var _1e=this.selectedChildWidget;if(_1e&&_1e.resize){if(this.doLayout){_1e.resize(this._containerContentBox||this._contentBox);}else{_1e.resize();}}},_showChild:function(_1f){var _20=this.getChildren();_1f.isFirstChild=(_1f==_20[0]);_1f.isLastChild=(_1f==_20[_20.length-1]);_1f._set("selected",true);_4.replace(_1f.domNode,"dijitVisible","dijitHidden");return (_1f._onShow&&_1f._onShow())||true;},_hideChild:function(_21){_21._set("selected",false);_4.replace(_21.domNode,"dijitHidden","dijitVisible");_21.onHide&&_21.onHide();},closeChild:function(_22){var _23=_22.onClose(this,_22);if(_23){this.removeChild(_22);_22.destroyRecursive();}},destroyDescendants:function(_24){this._descendantsBeingDestroyed=true;this.selectedChildWidget=undefined;_1.forEach(this.getChildren(),function(_25){if(!_24){this.removeChild(_25);}_25.destroyRecursive(_24);},this);this._descendantsBeingDestroyed=false;}});_d.ChildWidgetProperties={selected:false,disabled:false,closable:false,iconClass:"dijitNoIcon",showTitle:true};_6.extend(_a,_d.ChildWidgetProperties);return _d;}); \ No newline at end of file
diff --git a/lib/dijit/layout/StackController.js b/lib/dijit/layout/StackController.js
index 504a9d717..c5de7ca38 100644
--- a/lib/dijit/layout/StackController.js
+++ b/lib/dijit/layout/StackController.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/layout/StackController",["dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/_base/sniff","../focus","../registry","../_Widget","../_TemplatedMixin","../_Container","../form/ToggleButton","dojo/i18n!../nls/common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){var _d=_2("dijit.layout._StackButton",_c,{tabIndex:"-1",closeButton:false,_setCheckedAttr:function(_e,_f){this.inherited(arguments);this.focusNode.removeAttribute("aria-pressed");},buildRendering:function(evt){this.inherited(arguments);(this.focusNode||this.domNode).setAttribute("role","tab");},onClick:function(){_7.focus(this.focusNode);},onClickCloseButton:function(evt){evt.stopPropagation();}});var _10=_2("dijit.layout.StackController",[_9,_a,_b],{baseClass:"dijitStackController",templateString:"<span role='tablist' data-dojo-attach-event='onkeypress'></span>",containerId:"",buttonWidget:_d,constructor:function(){this.pane2button={};this.pane2connects={};this.pane2watches={};},postCreate:function(){this.inherited(arguments);this.subscribe(this.containerId+"-startup","onStartup");this.subscribe(this.containerId+"-addChild","onAddChild");this.subscribe(this.containerId+"-removeChild","onRemoveChild");this.subscribe(this.containerId+"-selectChild","onSelectChild");this.subscribe(this.containerId+"-containerKeyPress","onContainerKeyPress");},onStartup:function(_11){_1.forEach(_11.children,this.onAddChild,this);if(_11.selected){this.onSelectChild(_11.selected);}},destroy:function(){for(var _12 in this.pane2button){this.onRemoveChild(_8.byId(_12));}this.inherited(arguments);},onAddChild:function(_13,_14){var cls=_5.isString(this.buttonWidget)?_5.getObject(this.buttonWidget):this.buttonWidget;var _15=new cls({id:this.id+"_"+_13.id,label:_13.title,dir:_13.dir,lang:_13.lang,textDir:_13.textDir,showLabel:_13.showTitle,iconClass:_13.iconClass,closeButton:_13.closable,title:_13.tooltip});_15.focusNode.setAttribute("aria-selected","false");var _16=["title","showTitle","iconClass","closable","tooltip"],_17=["label","showLabel","iconClass","closeButton","title"];this.pane2watches[_13.id]=_1.map(_16,function(_18,idx){return _13.watch(_18,function(_19,_1a,_1b){_15.set(_17[idx],_1b);});});this.pane2connects[_13.id]=[this.connect(_15,"onClick",_5.hitch(this,"onButtonClick",_13)),this.connect(_15,"onClickCloseButton",_5.hitch(this,"onCloseButtonClick",_13))];this.addChild(_15,_14);this.pane2button[_13.id]=_15;_13.controlButton=_15;if(!this._currentChild){_15.focusNode.setAttribute("tabIndex","0");_15.focusNode.setAttribute("aria-selected","true");this._currentChild=_13;}if(!this.isLeftToRight()&&_6("ie")&&this._rectifyRtlTabList){this._rectifyRtlTabList();}},onRemoveChild:function(_1c){if(this._currentChild===_1c){this._currentChild=null;}_1.forEach(this.pane2connects[_1c.id],_5.hitch(this,"disconnect"));delete this.pane2connects[_1c.id];_1.forEach(this.pane2watches[_1c.id],function(w){w.unwatch();});delete this.pane2watches[_1c.id];var _1d=this.pane2button[_1c.id];if(_1d){this.removeChild(_1d);delete this.pane2button[_1c.id];_1d.destroy();}delete _1c.controlButton;},onSelectChild:function(_1e){if(!_1e){return;}if(this._currentChild){var _1f=this.pane2button[this._currentChild.id];_1f.set("checked",false);_1f.focusNode.setAttribute("aria-selected","false");_1f.focusNode.setAttribute("tabIndex","-1");}var _20=this.pane2button[_1e.id];_20.set("checked",true);_20.focusNode.setAttribute("aria-selected","true");this._currentChild=_1e;_20.focusNode.setAttribute("tabIndex","0");var _21=_8.byId(this.containerId);_21.containerNode.setAttribute("aria-labelledby",_20.id);},onButtonClick:function(_22){if(this._currentChild.id===_22.id){var _23=this.pane2button[_22.id];_23.set("checked",true);}var _24=_8.byId(this.containerId);_24.selectChild(_22);},onCloseButtonClick:function(_25){var _26=_8.byId(this.containerId);_26.closeChild(_25);if(this._currentChild){var b=this.pane2button[this._currentChild.id];if(b){_7.focus(b.focusNode||b.domNode);}}},adjacent:function(_27){if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition))){_27=!_27;}var _28=this.getChildren();var _29=_1.indexOf(_28,this.pane2button[this._currentChild.id]);var _2a=_27?1:_28.length-1;return _28[(_29+_2a)%_28.length];},onkeypress:function(e){if(this.disabled||e.altKey){return;}var _2b=null;if(e.ctrlKey||!e._djpage){switch(e.charOrCode){case _4.LEFT_ARROW:case _4.UP_ARROW:if(!e._djpage){_2b=false;}break;case _4.PAGE_UP:if(e.ctrlKey){_2b=false;}break;case _4.RIGHT_ARROW:case _4.DOWN_ARROW:if(!e._djpage){_2b=true;}break;case _4.PAGE_DOWN:if(e.ctrlKey){_2b=true;}break;case _4.HOME:case _4.END:var _2c=this.getChildren();if(_2c&&_2c.length){_2c[e.charOrCode==_4.HOME?0:_2c.length-1].onClick();}_3.stop(e);break;case _4.DELETE:if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}_3.stop(e);break;default:if(e.ctrlKey){if(e.charOrCode===_4.TAB){this.adjacent(!e.shiftKey).onClick();_3.stop(e);}else{if(e.charOrCode=="w"){if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}_3.stop(e);}}}}if(_2b!==null){this.adjacent(_2b).onClick();_3.stop(e);}}},onContainerKeyPress:function(_2d){_2d.e._djpage=_2d.page;this.onkeypress(_2d.e);}});_10.StackButton=_d;return _10;}); \ No newline at end of file
+define("dijit/layout/StackController",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","../focus","../registry","../_Widget","../_TemplatedMixin","../_Container","../form/ToggleButton","dojo/i18n!../nls/common"],function(_1,_2,_3,_4,_5,_6,on,_7,_8,_9,_a,_b,_c){var _d=_2("dijit.layout._StackButton",_c,{tabIndex:"-1",closeButton:false,_aria_attr:"aria-selected",buildRendering:function(_e){this.inherited(arguments);(this.focusNode||this.domNode).setAttribute("role","tab");}});var _f=_2("dijit.layout.StackController",[_9,_a,_b],{baseClass:"dijitStackController",templateString:"<span role='tablist' data-dojo-attach-event='onkeypress'></span>",containerId:"",buttonWidget:_d,buttonWidgetCloseClass:"dijitStackCloseButton",constructor:function(_10){this.pane2button={};},postCreate:function(){this.inherited(arguments);this.subscribe(this.containerId+"-startup","onStartup");this.subscribe(this.containerId+"-addChild","onAddChild");this.subscribe(this.containerId+"-removeChild","onRemoveChild");this.subscribe(this.containerId+"-selectChild","onSelectChild");this.subscribe(this.containerId+"-containerKeyPress","onContainerKeyPress");this.connect(this.containerNode,"click",function(evt){var _11=_8.getEnclosingWidget(evt.target);if(_11!=this.containerNode&&!_11.disabled&&_11.page){for(var _12=evt.target;_12!==this.containerNode;_12=_12.parentNode){if(_3.contains(_12,this.buttonWidgetCloseClass)){this.onCloseButtonClick(_11.page);break;}else{if(_12==_11.domNode){this.onButtonClick(_11.page);break;}}}}});},onStartup:function(_13){_1.forEach(_13.children,this.onAddChild,this);if(_13.selected){this.onSelectChild(_13.selected);}var _14=_8.byId(this.containerId).containerNode,_15=this.pane2button,_16={"title":"label","showtitle":"showLabel","iconclass":"iconClass","closable":"closeButton","tooltip":"title","disabled":"disabled"},_17=function(_18,_19){return on(_14,"attrmodified-"+_18,function(evt){var _1a=_15[evt.detail&&evt.detail.widget&&evt.detail.widget.id];if(_1a){_1a.set(_19,evt.detail.newValue);}});};for(var _1b in _16){this.own(_17(_1b,_16[_1b]));}},destroy:function(){for(var _1c in this.pane2button){this.onRemoveChild(_8.byId(_1c));}this.inherited(arguments);},onAddChild:function(_1d,_1e){var Cls=_6.isString(this.buttonWidget)?_6.getObject(this.buttonWidget):this.buttonWidget;var _1f=new Cls({id:this.id+"_"+_1d.id,name:this.id+"_"+_1d.id,label:_1d.title,disabled:_1d.disabled,ownerDocument:this.ownerDocument,dir:_1d.dir,lang:_1d.lang,textDir:_1d.textDir,showLabel:_1d.showTitle,iconClass:_1d.iconClass,closeButton:_1d.closable,title:_1d.tooltip,page:_1d});this.addChild(_1f,_1e);this.pane2button[_1d.id]=_1f;_1d.controlButton=_1f;if(!this._currentChild){this.onSelectChild(_1d);}},onRemoveChild:function(_20){if(this._currentChild===_20){this._currentChild=null;}var _21=this.pane2button[_20.id];if(_21){this.removeChild(_21);delete this.pane2button[_20.id];_21.destroy();}delete _20.controlButton;},onSelectChild:function(_22){if(!_22){return;}if(this._currentChild){var _23=this.pane2button[this._currentChild.id];_23.set("checked",false);_23.focusNode.setAttribute("tabIndex","-1");}var _24=this.pane2button[_22.id];_24.set("checked",true);this._currentChild=_22;_24.focusNode.setAttribute("tabIndex","0");var _25=_8.byId(this.containerId);_25.containerNode.setAttribute("aria-labelledby",_24.id);},onButtonClick:function(_26){var _27=this.pane2button[_26.id];_7.focus(_27.focusNode);if(this._currentChild&&this._currentChild.id===_26.id){_27.set("checked",true);}var _28=_8.byId(this.containerId);_28.selectChild(_26);},onCloseButtonClick:function(_29){var _2a=_8.byId(this.containerId);_2a.closeChild(_29);if(this._currentChild){var b=this.pane2button[this._currentChild.id];if(b){_7.focus(b.focusNode||b.domNode);}}},adjacent:function(_2b){if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition))){_2b=!_2b;}var _2c=this.getChildren();var idx=_1.indexOf(_2c,this.pane2button[this._currentChild.id]),_2d=_2c[idx];var _2e;do{idx=(idx+(_2b?1:_2c.length-1))%_2c.length;_2e=_2c[idx];}while(_2e.disabled&&_2e!=_2d);return _2e;},onkeypress:function(e){if(this.disabled||e.altKey){return;}var _2f=null;if(e.ctrlKey||!e._djpage){switch(e.charOrCode){case _5.LEFT_ARROW:case _5.UP_ARROW:if(!e._djpage){_2f=false;}break;case _5.PAGE_UP:if(e.ctrlKey){_2f=false;}break;case _5.RIGHT_ARROW:case _5.DOWN_ARROW:if(!e._djpage){_2f=true;}break;case _5.PAGE_DOWN:if(e.ctrlKey){_2f=true;}break;case _5.HOME:var _30=this.getChildren();for(var idx=0;idx<_30.length;idx++){var _31=_30[idx];if(!_31.disabled){this.onButtonClick(_31.page);break;}}_4.stop(e);break;case _5.END:var _30=this.getChildren();for(var idx=_30.length-1;idx>=0;idx--){var _31=_30[idx];if(!_31.disabled){this.onButtonClick(_31.page);break;}}_4.stop(e);break;case _5.DELETE:if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}_4.stop(e);break;default:if(e.ctrlKey){if(e.charOrCode===_5.TAB){this.onButtonClick(this.adjacent(!e.shiftKey).page);_4.stop(e);}else{if(e.charOrCode=="w"){if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}_4.stop(e);}}}}if(_2f!==null){this.onButtonClick(this.adjacent(_2f).page);_4.stop(e);}}},onContainerKeyPress:function(_32){_32.e._djpage=_32.page;this.onkeypress(_32.e);}});_f.StackButton=_d;return _f;}); \ No newline at end of file
diff --git a/lib/dijit/layout/TabContainer.js b/lib/dijit/layout/TabContainer.js
index a78ec4422..13db58c5c 100644
--- a/lib/dijit/layout/TabContainer.js
+++ b/lib/dijit/layout/TabContainer.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/layout/TabContainer",["dojo/_base/lang","dojo/_base/declare","./_TabContainerBase","./TabController","./ScrollingTabController"],function(_1,_2,_3,_4,_5){return _2("dijit.layout.TabContainer",_3,{useMenu:true,useSlider:true,controllerWidget:"",_makeController:function(_6){var _7=this.baseClass+"-tabs"+(this.doLayout?"":" dijitTabNoLayout"),_4=_1.getObject(this.controllerWidget);return new _4({id:this.id+"_tablist",dir:this.dir,lang:this.lang,textDir:this.textDir,tabPosition:this.tabPosition,doLayout:this.doLayout,containerId:this.id,"class":_7,nested:this.nested,useMenu:this.useMenu,useSlider:this.useSlider,tabStripClass:this.tabStrip?this.baseClass+(this.tabStrip?"":"No")+"Strip":null},_6);},postMixInProperties:function(){this.inherited(arguments);if(!this.controllerWidget){this.controllerWidget=(this.tabPosition=="top"||this.tabPosition=="bottom")&&!this.nested?"dijit.layout.ScrollingTabController":"dijit.layout.TabController";}}});}); \ No newline at end of file
+define("dijit/layout/TabContainer",["dojo/_base/lang","dojo/_base/declare","./_TabContainerBase","./TabController","./ScrollingTabController"],function(_1,_2,_3,_4,_5){return _2("dijit.layout.TabContainer",_3,{useMenu:true,useSlider:true,controllerWidget:"",_makeController:function(_6){var _7=this.baseClass+"-tabs"+(this.doLayout?"":" dijitTabNoLayout"),_4=typeof this.controllerWidget=="string"?_1.getObject(this.controllerWidget):this.controllerWidget;return new _4({id:this.id+"_tablist",ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir,tabPosition:this.tabPosition,doLayout:this.doLayout,containerId:this.id,"class":_7,nested:this.nested,useMenu:this.useMenu,useSlider:this.useSlider,tabStripClass:this.tabStrip?this.baseClass+(this.tabStrip?"":"No")+"Strip":null},_6);},postMixInProperties:function(){this.inherited(arguments);if(!this.controllerWidget){this.controllerWidget=(this.tabPosition=="top"||this.tabPosition=="bottom")&&!this.nested?_5:_4;}}});}); \ No newline at end of file
diff --git a/lib/dijit/layout/TabController.js b/lib/dijit/layout/TabController.js
index 28c26d91e..64c430327 100644
--- a/lib/dijit/layout/TabController.js
+++ b/lib/dijit/layout/TabController.js
@@ -1,2 +1,2 @@
//>>built
-require({cache:{"url:dijit/layout/templates/_TabButton.html":"<div role=\"presentation\" data-dojo-attach-point=\"titleNode\" data-dojo-attach-event='onclick:onClick'>\n <div role=\"presentation\" class='dijitTabInnerDiv' data-dojo-attach-point='innerDiv'>\n <div role=\"presentation\" class='dijitTabContent' data-dojo-attach-point='tabContent'>\n \t<div role=\"presentation\" data-dojo-attach-point='focusNode'>\n\t\t <img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitTabButtonIcon\" data-dojo-attach-point='iconNode' />\n\t\t <span data-dojo-attach-point='containerNode' class='tabLabel'></span>\n\t\t <span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" data-dojo-attach-point='closeNode'\n\t\t \t\tdata-dojo-attach-event='onclick: onClickCloseButton' role=\"presentation\">\n\t\t <span data-dojo-attach-point='closeText' class='dijitTabCloseText'>[x]</span\n\t\t ></span>\n\t\t\t</div>\n </div>\n </div>\n</div>\n"}});define("dijit/layout/TabController",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/i18n","dojo/_base/lang","./StackController","../Menu","../MenuItem","dojo/text!./templates/_TabButton.html","dojo/i18n!../nls/common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){var _b=_1("dijit.layout._TabButton",_7.StackButton,{baseClass:"dijitTab",cssStateNodes:{closeNode:"dijitTabCloseButton"},templateString:_a,scrollOnFocus:false,buildRendering:function(){this.inherited(arguments);_2.setSelectable(this.containerNode,false);},startup:function(){this.inherited(arguments);var n=this.domNode;setTimeout(function(){n.className=n.className;},1);},_setCloseButtonAttr:function(_c){this._set("closeButton",_c);_4.toggle(this.innerDiv,"dijitClosable",_c);this.closeNode.style.display=_c?"":"none";if(_c){var _d=_5.getLocalization("dijit","common");if(this.closeNode){_3.set(this.closeNode,"title",_d.itemClose);}this._closeMenu=new _8({id:this.id+"_Menu",dir:this.dir,lang:this.lang,textDir:this.textDir,targetNodeIds:[this.domNode]});this._closeMenu.addChild(new _9({label:_d.itemClose,dir:this.dir,lang:this.lang,textDir:this.textDir,onClick:_6.hitch(this,"onClickCloseButton")}));}else{if(this._closeMenu){this._closeMenu.destroyRecursive();delete this._closeMenu;}}},_setLabelAttr:function(_e){this.inherited(arguments);if(!this.showLabel&&!this.params.title){this.iconNode.alt=_6.trim(this.containerNode.innerText||this.containerNode.textContent||"");}},destroy:function(){if(this._closeMenu){this._closeMenu.destroyRecursive();delete this._closeMenu;}this.inherited(arguments);}});var _f=_1("dijit.layout.TabController",_7,{baseClass:"dijitTabController",templateString:"<div role='tablist' data-dojo-attach-event='onkeypress:onkeypress'></div>",tabPosition:"top",buttonWidget:_b,_rectifyRtlTabList:function(){if(0>=this.tabPosition.indexOf("-h")){return;}if(!this.pane2button){return;}var _10=0;for(var _11 in this.pane2button){var ow=this.pane2button[_11].innerDiv.scrollWidth;_10=Math.max(_10,ow);}for(_11 in this.pane2button){this.pane2button[_11].innerDiv.style.width=_10+"px";}}});_f.TabButton=_b;return _f;}); \ No newline at end of file
+require({cache:{"url:dijit/layout/templates/_TabButton.html":"<div role=\"presentation\" data-dojo-attach-point=\"titleNode,innerDiv,tabContent\" class=\"dijitTabInner dijitTabContent\">\n\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitTabButtonIcon\" data-dojo-attach-point='iconNode'/>\n\t<span data-dojo-attach-point='containerNode,focusNode' class='tabLabel'></span>\n\t<span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" data-dojo-attach-point='closeNode'\n\t\t role=\"presentation\">\n\t\t<span data-dojo-attach-point='closeText' class='dijitTabCloseText'>[x]</span\n\t\t\t\t></span>\n</div>\n"}});define("dijit/layout/TabController",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/i18n","dojo/_base/lang","./StackController","../registry","../Menu","../MenuItem","dojo/text!./templates/_TabButton.html","dojo/i18n!../nls/common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){var _c=_1("dijit.layout._TabButton",_7.StackButton,{baseClass:"dijitTab",cssStateNodes:{closeNode:"dijitTabCloseButton"},templateString:_b,scrollOnFocus:false,buildRendering:function(){this.inherited(arguments);_2.setSelectable(this.containerNode,false);},startup:function(){this.inherited(arguments);var n=this.domNode;this.defer(function(){n.className=n.className;},1);},_setCloseButtonAttr:function(_d){this._set("closeButton",_d);_4.toggle(this.domNode,"dijitClosable",_d);this.closeNode.style.display=_d?"":"none";if(_d){var _e=_5.getLocalization("dijit","common");if(this.closeNode){_3.set(this.closeNode,"title",_e.itemClose);}}},_setDisabledAttr:function(_f){this.inherited(arguments);if(this.closeNode){if(_f){_3.remove(this.closeNode,"title");}else{var _10=_5.getLocalization("dijit","common");_3.set(this.closeNode,"title",_10.itemClose);}}},_setLabelAttr:function(_11){this.inherited(arguments);if(!this.showLabel&&!this.params.title){this.iconNode.alt=_6.trim(this.containerNode.innerText||this.containerNode.textContent||"");}}});var _12=_1("dijit.layout.TabController",_7,{baseClass:"dijitTabController",templateString:"<div role='tablist' data-dojo-attach-event='onkeypress:onkeypress'></div>",tabPosition:"top",buttonWidget:_c,buttonWidgetCloseClass:"dijitTabCloseButton",postCreate:function(){this.inherited(arguments);var _13=new _9({id:this.id+"_Menu",ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir,targetNodeIds:[this.domNode],selector:function(_14){return _4.contains(_14,"dijitClosable")&&!_4.contains(_14,"dijitTabDisabled");}});this.own(_13);var _15=_5.getLocalization("dijit","common"),_16=this;_13.addChild(new _a({label:_15.itemClose,ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir,onClick:function(evt){var _17=_8.byNode(this.getParent().currentTarget);_16.onCloseButtonClick(_17.page);}}));}});_12.TabButton=_c;return _12;}); \ No newline at end of file
diff --git a/lib/dijit/layout/_ContentPaneResizeMixin.js b/lib/dijit/layout/_ContentPaneResizeMixin.js
index e0dd49e96..2f214ade3 100644
--- a/lib/dijit/layout/_ContentPaneResizeMixin.js
+++ b/lib/dijit/layout/_ContentPaneResizeMixin.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/layout/_ContentPaneResizeMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/_base/lang","dojo/query","dojo/_base/sniff","dojo/_base/window","../registry","./utils","../_Contained"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){return _2("dijit.layout._ContentPaneResizeMixin",null,{doLayout:true,isLayoutContainer:true,startup:function(){if(this._started){return;}var _d=this.getParent();this._childOfLayoutWidget=_d&&_d.isLayoutContainer;this._needLayout=!this._childOfLayoutWidget;this.inherited(arguments);if(this._isShown()){this._onShow();}if(!this._childOfLayoutWidget){this.connect(_8("ie")?this.domNode:_9.global,"onresize",function(){this._needLayout=!this._childOfLayoutWidget;this.resize();});}},_checkIfSingleChild:function(){var _e=_7("> *",this.containerNode).filter(function(_f){return _f.tagName!=="SCRIPT";}),_10=_e.filter(function(_11){return _3.has(_11,"data-dojo-type")||_3.has(_11,"dojoType")||_3.has(_11,"widgetId");}),_12=_1.filter(_10.map(_a.byNode),function(_13){return _13&&_13.domNode&&_13.resize;});if(_e.length==_10.length&&_12.length==1){this._singleChild=_12[0];}else{delete this._singleChild;}_4.toggle(this.containerNode,this.baseClass+"SingleChild",!!this._singleChild);},resize:function(_14,_15){if(!this._wasShown&&this.open!==false){this._onShow();}this._resizeCalled=true;this._scheduleLayout(_14,_15);},_scheduleLayout:function(_16,_17){if(this._isShown()){this._layout(_16,_17);}else{this._needLayout=true;this._changeSize=_16;this._resultSize=_17;}},_layout:function(_18,_19){if(_18){_5.setMarginBox(this.domNode,_18);}var cn=this.containerNode;if(cn===this.domNode){var mb=_19||{};_6.mixin(mb,_18||{});if(!("h" in mb)||!("w" in mb)){mb=_6.mixin(_5.getMarginBox(cn),mb);}this._contentBox=_b.marginBox2contentBox(cn,mb);}else{this._contentBox=_5.getContentBox(cn);}this._layoutChildren();delete this._needLayout;},_layoutChildren:function(){if(this.doLayout){this._checkIfSingleChild();}if(this._singleChild&&this._singleChild.resize){var cb=this._contentBox||_5.getContentBox(this.containerNode);this._singleChild.resize({w:cb.w,h:cb.h});}else{_1.forEach(this.getChildren(),function(_1a){if(_1a.resize){_1a.resize();}});}},_isShown:function(){if(this._childOfLayoutWidget){if(this._resizeCalled&&"open" in this){return this.open;}return this._resizeCalled;}else{if("open" in this){return this.open;}else{var _1b=this.domNode,_1c=this.domNode.parentNode;return (_1b.style.display!="none")&&(_1b.style.visibility!="hidden")&&!_4.contains(_1b,"dijitHidden")&&_1c&&_1c.style&&(_1c.style.display!="none");}}},_onShow:function(){if(this._needLayout){this._layout(this._changeSize,this._resultSize);}this.inherited(arguments);this._wasShown=true;}});}); \ No newline at end of file
+define("dijit/layout/_ContentPaneResizeMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang","dojo/query","dojo/sniff","../registry","../Viewport","./utils"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){return _2("dijit.layout._ContentPaneResizeMixin",null,{doLayout:true,isLayoutContainer:true,startup:function(){if(this._started){return;}var _c=this.getParent();this._childOfLayoutWidget=_c&&_c.isLayoutContainer;this._needLayout=!this._childOfLayoutWidget;this.inherited(arguments);if(this._isShown()){this._onShow();}if(!this._childOfLayoutWidget){this.own(_a.on("resize",_6.hitch(this,"resize")));}},_checkIfSingleChild:function(){var _d=[],_e=false;_7("> *",this.containerNode).some(function(_f){var _10=_9.byNode(_f);if(_10&&_10.resize){_d.push(_10);}else{if(_f.offsetHeight){_e=true;}}});this._singleChild=_d.length==1&&!_e?_d[0]:null;_3.toggle(this.containerNode,this.baseClass+"SingleChild",!!this._singleChild);},resize:function(_11,_12){this._resizeCalled=true;this._scheduleLayout(_11,_12);},_scheduleLayout:function(_13,_14){if(this._isShown()){this._layout(_13,_14);}else{this._needLayout=true;this._changeSize=_13;this._resultSize=_14;}},_layout:function(_15,_16){delete this._needLayout;if(!this._wasShown&&this.open!==false){this._onShow();}if(_15){_4.setMarginBox(this.domNode,_15);}var cn=this.containerNode;if(cn===this.domNode){var mb=_16||{};_6.mixin(mb,_15||{});if(!("h" in mb)||!("w" in mb)){mb=_6.mixin(_4.getMarginBox(cn),mb);}this._contentBox=_b.marginBox2contentBox(cn,mb);}else{this._contentBox=_4.getContentBox(cn);}this._layoutChildren();},_layoutChildren:function(){if(this.doLayout){this._checkIfSingleChild();}if(this._singleChild&&this._singleChild.resize){var cb=this._contentBox||_4.getContentBox(this.containerNode);this._singleChild.resize({w:cb.w,h:cb.h});}else{_1.forEach(this.getChildren(),function(_17){if(_17.resize){_17.resize();}});}},_isShown:function(){if(this._childOfLayoutWidget){if(this._resizeCalled&&"open" in this){return this.open;}return this._resizeCalled;}else{if("open" in this){return this.open;}else{var _18=this.domNode,_19=this.domNode.parentNode;return (_18.style.display!="none")&&(_18.style.visibility!="hidden")&&!_3.contains(_18,"dijitHidden")&&_19&&_19.style&&(_19.style.display!="none");}}},_onShow:function(){this._wasShown=true;if(this._needLayout){this._layout(this._changeSize,this._resultSize);}this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/layout/_LayoutWidget.js b/lib/dijit/layout/_LayoutWidget.js
index 7ac78de47..e6cba970e 100644
--- a/lib/dijit/layout/_LayoutWidget.js
+++ b/lib/dijit/layout/_LayoutWidget.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/layout/_LayoutWidget",["dojo/_base/lang","../_Widget","../_Container","../_Contained","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/sniff","dojo/_base/window"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){return _5("dijit.layout._LayoutWidget",[_2,_3,_4],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,buildRendering:function(){this.inherited(arguments);_6.add(this.domNode,"dijitContainer");},startup:function(){if(this._started){return;}this.inherited(arguments);var _b=this.getParent&&this.getParent();if(!(_b&&_b.isLayoutContainer)){this.resize();this.connect(_a.global,"onresize",function(){this.resize();});}},resize:function(_c,_d){var _e=this.domNode;if(_c){_7.setMarginBox(_e,_c);}var mb=_d||{};_1.mixin(mb,_c||{});if(!("h" in mb)||!("w" in mb)){mb=_1.mixin(_7.getMarginBox(_e),mb);}var cs=_8.getComputedStyle(_e);var me=_7.getMarginExtents(_e,cs);var be=_7.getBorderExtents(_e,cs);var bb=(this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)});var pe=_7.getPadExtents(_e,cs);this._contentBox={l:_8.toPixelValue(_e,cs.paddingLeft),t:_8.toPixelValue(_e,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h};this.layout();},layout:function(){},_setupChild:function(_f){var cls=this.baseClass+"-child "+(_f.baseClass?this.baseClass+"-"+_f.baseClass:"");_6.add(_f.domNode,cls);},addChild:function(_10,_11){this.inherited(arguments);if(this._started){this._setupChild(_10);}},removeChild:function(_12){var cls=this.baseClass+"-child"+(_12.baseClass?" "+this.baseClass+"-"+_12.baseClass:"");_6.remove(_12.domNode,cls);this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/layout/_LayoutWidget",["dojo/_base/lang","../_Widget","../_Container","../_Contained","../Viewport","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _6("dijit.layout._LayoutWidget",[_2,_3,_4],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,buildRendering:function(){this.inherited(arguments);_7.add(this.domNode,"dijitContainer");},startup:function(){if(this._started){return;}this.inherited(arguments);var _a=this.getParent&&this.getParent();if(!(_a&&_a.isLayoutContainer)){this.resize();this.own(_5.on("resize",_1.hitch(this,"resize")));}},resize:function(_b,_c){var _d=this.domNode;if(_b){_8.setMarginBox(_d,_b);}var mb=_c||{};_1.mixin(mb,_b||{});if(!("h" in mb)||!("w" in mb)){mb=_1.mixin(_8.getMarginBox(_d),mb);}var cs=_9.getComputedStyle(_d);var me=_8.getMarginExtents(_d,cs);var be=_8.getBorderExtents(_d,cs);var bb=(this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)});var pe=_8.getPadExtents(_d,cs);this._contentBox={l:_9.toPixelValue(_d,cs.paddingLeft),t:_9.toPixelValue(_d,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h};this.layout();},layout:function(){},_setupChild:function(_e){var _f=this.baseClass+"-child "+(_e.baseClass?this.baseClass+"-"+_e.baseClass:"");_7.add(_e.domNode,_f);},addChild:function(_10,_11){this.inherited(arguments);if(this._started){this._setupChild(_10);}},removeChild:function(_12){var cls=this.baseClass+"-child"+(_12.baseClass?" "+this.baseClass+"-"+_12.baseClass:"");_7.remove(_12.domNode,cls);this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/layout/templates/_ScrollingTabControllerButton.html b/lib/dijit/layout/templates/_ScrollingTabControllerButton.html
index c7ef933a1..3e01ab099 100644
--- a/lib/dijit/layout/templates/_ScrollingTabControllerButton.html
+++ b/lib/dijit/layout/templates/_ScrollingTabControllerButton.html
@@ -1,8 +1,4 @@
-<div data-dojo-attach-event="onclick:_onClick">
- <div role="presentation" class="dijitTabInnerDiv" data-dojo-attach-point="innerDiv,focusNode">
- <div role="presentation" class="dijitTabContent dijitButtonContents" data-dojo-attach-point="tabContent">
- <img role="presentation" alt="" src="${_blankGif}" class="dijitTabStripIcon" data-dojo-attach-point="iconNode"/>
- <span data-dojo-attach-point="containerNode,titleNode" class="dijitButtonText"></span>
- </div>
- </div>
+<div data-dojo-attach-event="onclick:_onClick" class="dijitTabInnerDiv dijitTabContent dijitButtonContents" data-dojo-attach-point="focusNode">
+ <img role="presentation" alt="" src="${_blankGif}" class="dijitTabStripIcon" data-dojo-attach-point="iconNode"/>
+ <span data-dojo-attach-point="containerNode,titleNode" class="dijitButtonText"></span>
</div> \ No newline at end of file
diff --git a/lib/dijit/layout/templates/_TabButton.html b/lib/dijit/layout/templates/_TabButton.html
index 7d6570e73..99c76a9ac 100644
--- a/lib/dijit/layout/templates/_TabButton.html
+++ b/lib/dijit/layout/templates/_TabButton.html
@@ -1,14 +1,8 @@
-<div role="presentation" data-dojo-attach-point="titleNode" data-dojo-attach-event='onclick:onClick'>
- <div role="presentation" class='dijitTabInnerDiv' data-dojo-attach-point='innerDiv'>
- <div role="presentation" class='dijitTabContent' data-dojo-attach-point='tabContent'>
- <div role="presentation" data-dojo-attach-point='focusNode'>
- <img src="${_blankGif}" alt="" class="dijitIcon dijitTabButtonIcon" data-dojo-attach-point='iconNode' />
- <span data-dojo-attach-point='containerNode' class='tabLabel'></span>
- <span class="dijitInline dijitTabCloseButton dijitTabCloseIcon" data-dojo-attach-point='closeNode'
- data-dojo-attach-event='onclick: onClickCloseButton' role="presentation">
- <span data-dojo-attach-point='closeText' class='dijitTabCloseText'>[x]</span
- ></span>
- </div>
- </div>
- </div>
+<div role="presentation" data-dojo-attach-point="titleNode,innerDiv,tabContent" class="dijitTabInner dijitTabContent">
+ <img src="${_blankGif}" alt="" class="dijitIcon dijitTabButtonIcon" data-dojo-attach-point='iconNode'/>
+ <span data-dojo-attach-point='containerNode,focusNode' class='tabLabel'></span>
+ <span class="dijitInline dijitTabCloseButton dijitTabCloseIcon" data-dojo-attach-point='closeNode'
+ role="presentation">
+ <span data-dojo-attach-point='closeText' class='dijitTabCloseText'>[x]</span
+ ></span>
</div>
diff --git a/lib/dijit/layout/utils.js b/lib/dijit/layout/utils.js
index d0a4cd101..16ce2c719 100644
--- a/lib/dijit/layout/utils.js
+++ b/lib/dijit/layout/utils.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/layout/utils",["dojo/_base/array","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang",".."],function(_1,_2,_3,_4,_5,_6){var _7=_5.getObject("layout",true,_6);_7.marginBox2contentBox=function(_8,mb){var cs=_4.getComputedStyle(_8);var me=_3.getMarginExtents(_8,cs);var pb=_3.getPadBorderExtents(_8,cs);return {l:_4.toPixelValue(_8,cs.paddingLeft),t:_4.toPixelValue(_8,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)};};function _9(_a){return _a.substring(0,1).toUpperCase()+_a.substring(1);};function _b(_c,_d){var _e=_c.resize?_c.resize(_d):_3.setMarginBox(_c.domNode,_d);if(_e){_5.mixin(_c,_e);}else{_5.mixin(_c,_3.getMarginBox(_c.domNode));_5.mixin(_c,_d);}};_7.layoutChildren=function(_f,dim,_10,_11,_12){dim=_5.mixin({},dim);_2.add(_f,"dijitLayoutContainer");_10=_1.filter(_10,function(_13){return _13.region!="center"&&_13.layoutAlign!="client";}).concat(_1.filter(_10,function(_14){return _14.region=="center"||_14.layoutAlign=="client";}));_1.forEach(_10,function(_15){var elm=_15.domNode,pos=(_15.region||_15.layoutAlign);if(!pos){throw new Error("No region setting for "+_15.id);}var _16=elm.style;_16.left=dim.l+"px";_16.top=dim.t+"px";_16.position="absolute";_2.add(elm,"dijitAlign"+_9(pos));var _17={};if(_11&&_11==_15.id){_17[_15.region=="top"||_15.region=="bottom"?"h":"w"]=_12;}if(pos=="top"||pos=="bottom"){_17.w=dim.w;_b(_15,_17);dim.h-=_15.h;if(pos=="top"){dim.t+=_15.h;}else{_16.top=dim.t+dim.h+"px";}}else{if(pos=="left"||pos=="right"){_17.h=dim.h;_b(_15,_17);dim.w-=_15.w;if(pos=="left"){dim.l+=_15.w;}else{_16.left=dim.l+dim.w+"px";}}else{if(pos=="client"||pos=="center"){_b(_15,dim);}}}});};return {marginBox2contentBox:_7.marginBox2contentBox,layoutChildren:_7.layoutChildren};}); \ No newline at end of file
+define("dijit/layout/utils",["dojo/_base/array","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang","../main"],function(_1,_2,_3,_4,_5,_6){var _7=_5.getObject("layout",true,_6);_7.marginBox2contentBox=function(_8,mb){var cs=_4.getComputedStyle(_8);var me=_3.getMarginExtents(_8,cs);var pb=_3.getPadBorderExtents(_8,cs);return {l:_4.toPixelValue(_8,cs.paddingLeft),t:_4.toPixelValue(_8,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)};};function _9(_a){return _a.substring(0,1).toUpperCase()+_a.substring(1);};function _b(_c,_d){var _e=_c.resize?_c.resize(_d):_3.setMarginBox(_c.domNode,_d);if(_e){_5.mixin(_c,_e);}else{_5.mixin(_c,_3.getMarginBox(_c.domNode));_5.mixin(_c,_d);}};_7.layoutChildren=function(_f,dim,_10,_11,_12){dim=_5.mixin({},dim);_2.add(_f,"dijitLayoutContainer");_10=_1.filter(_10,function(_13){return _13.region!="center"&&_13.layoutAlign!="client";}).concat(_1.filter(_10,function(_14){return _14.region=="center"||_14.layoutAlign=="client";}));_1.forEach(_10,function(_15){var elm=_15.domNode,pos=(_15.region||_15.layoutAlign);if(!pos){throw new Error("No region setting for "+_15.id);}var _16=elm.style;_16.left=dim.l+"px";_16.top=dim.t+"px";_16.position="absolute";_2.add(elm,"dijitAlign"+_9(pos));var _17={};if(_11&&_11==_15.id){_17[_15.region=="top"||_15.region=="bottom"?"h":"w"]=_12;}if(pos=="top"||pos=="bottom"){_17.w=dim.w;_b(_15,_17);dim.h-=_15.h;if(pos=="top"){dim.t+=_15.h;}else{_16.top=dim.t+dim.h+"px";}}else{if(pos=="left"||pos=="right"){_17.h=dim.h;_b(_15,_17);dim.w-=_15.w;if(pos=="left"){dim.l+=_15.w;}else{_16.left=dim.l+dim.w+"px";}}else{if(pos=="client"||pos=="center"){_b(_15,dim);}}}});};return {marginBox2contentBox:_7.marginBox2contentBox,layoutChildren:_7.layoutChildren};}); \ No newline at end of file
diff --git a/lib/dijit/nls/fr/common.js b/lib/dijit/nls/fr/common.js
index 3041351f7..352040574 100644
--- a/lib/dijit/nls/fr/common.js
+++ b/lib/dijit/nls/fr/common.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/nls/fr/common",({buttonOk:"OK",buttonCancel:"Annuler",buttonSave:"Sauvegarder",itemClose:"Fermer"})); \ No newline at end of file
+define("dijit/nls/fr/common",({buttonOk:"OK",buttonCancel:"Annuler",buttonSave:"Enregistrer",itemClose:"Fermer"})); \ No newline at end of file
diff --git a/lib/dijit/nls/hr/loading.js b/lib/dijit/nls/hr/loading.js
index 2d3730e2d..5f46982c3 100644
--- a/lib/dijit/nls/hr/loading.js
+++ b/lib/dijit/nls/hr/loading.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/nls/hr/loading",({loadingState:"Učitavanje...",errorState:"Žao nam je, došlo je do pogreške"})); \ No newline at end of file
+define("dijit/nls/hr/loading",({loadingState:"Učitavanje...",errorState:"Žao nam je, došlo je do greške"})); \ No newline at end of file
diff --git a/lib/dijit/nls/it/common.js b/lib/dijit/nls/it/common.js
index 25d45843c..bbfb40c63 100644
--- a/lib/dijit/nls/it/common.js
+++ b/lib/dijit/nls/it/common.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/nls/it/common",({buttonOk:"OK",buttonCancel:"Annulla",buttonSave:"Salva",itemClose:"Chiudi"})); \ No newline at end of file
+define("dijit/nls/it/common",({buttonOk:"Ok",buttonCancel:"Annulla",buttonSave:"Salva",itemClose:"Chiudi"})); \ No newline at end of file
diff --git a/lib/dijit/nls/kk/loading.js b/lib/dijit/nls/kk/loading.js
index 80274cd1c..2aa77dddd 100644
--- a/lib/dijit/nls/kk/loading.js
+++ b/lib/dijit/nls/kk/loading.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/nls/kk/loading",({loadingState:"Жүктелуде...",errorState:"Кешіріңіз, қате орын алды"})); \ No newline at end of file
+define("dijit/nls/kk/loading",({loadingState:"Қотарылуда...",errorState:"Кешіріңіз, қате орын алды"})); \ No newline at end of file
diff --git a/lib/dijit/nls/ru/common.js b/lib/dijit/nls/ru/common.js
index f733d663c..58b6834cc 100644
--- a/lib/dijit/nls/ru/common.js
+++ b/lib/dijit/nls/ru/common.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/nls/ru/common",({buttonOk:"ОК",buttonCancel:"Отмена",buttonSave:"Сохранить",itemClose:"Закрыть"})); \ No newline at end of file
+define("dijit/nls/ru/common",({buttonOk:"OK",buttonCancel:"Отмена",buttonSave:"Сохранить",itemClose:"Закрыть"})); \ No newline at end of file
diff --git a/lib/dijit/nls/sk/loading.js b/lib/dijit/nls/sk/loading.js
index 758716db6..cbdf317b0 100644
--- a/lib/dijit/nls/sk/loading.js
+++ b/lib/dijit/nls/sk/loading.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/nls/sk/loading",({loadingState:"Zavádzanie...",errorState:"Nastala chyba"})); \ No newline at end of file
+define("dijit/nls/sk/loading",({loadingState:"Zavádza sa...",errorState:"Ľutujeme, ale vyskytla sa chyba"})); \ No newline at end of file
diff --git a/lib/dijit/nls/sv/loading.js b/lib/dijit/nls/sv/loading.js
index 966ebd102..5da81bd5b 100644
--- a/lib/dijit/nls/sv/loading.js
+++ b/lib/dijit/nls/sv/loading.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/nls/sv/loading",({loadingState:"Läser in...",errorState:"Det uppstod ett fel."})); \ No newline at end of file
+define("dijit/nls/sv/loading",({loadingState:"Läser in...",errorState:"Det har inträffat ett fel."})); \ No newline at end of file
diff --git a/lib/dijit/package.json b/lib/dijit/package.json
index 70cf90e0e..86a78d11e 100644
--- a/lib/dijit/package.json
+++ b/lib/dijit/package.json
@@ -1,9 +1,12 @@
{
"name": "dijit",
- "version":"1.7.3",
+ "version":"1.8.3",
+ "directories": {
+ "lib": "."
+ },
"main":"main",
"dependencies": {
- "dojo": "current"
+ "dojo":"1.8.3"
},
"description": "Dijit provides a complete collection of user interface controls based on Dojo, giving you the power to create web applications that are highly optimized for usability, performance, internationalization, accessibility, but above all deliver an incredible user experience.",
"licenses": [
diff --git a/lib/dijit/place.js b/lib/dijit/place.js
index 7808c6e05..e7a28647d 100644
--- a/lib/dijit/place.js
+++ b/lib/dijit/place.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/place",["dojo/_base/array","dojo/dom-geometry","dojo/dom-style","dojo/_base/kernel","dojo/_base/window","dojo/window","."],function(_1,_2,_3,_4,_5,_6,_7){function _8(_9,_a,_b,_c){var _d=_6.getBox();if(!_9.parentNode||String(_9.parentNode.tagName).toLowerCase()!="body"){_5.body().appendChild(_9);}var _e=null;_1.some(_a,function(_f){var _10=_f.corner;var pos=_f.pos;var _11=0;var _12={w:{"L":_d.l+_d.w-pos.x,"R":pos.x-_d.l,"M":_d.w}[_10.charAt(1)],h:{"T":_d.t+_d.h-pos.y,"B":pos.y-_d.t,"M":_d.h}[_10.charAt(0)]};if(_b){var res=_b(_9,_f.aroundCorner,_10,_12,_c);_11=typeof res=="undefined"?0:res;}var _13=_9.style;var _14=_13.display;var _15=_13.visibility;if(_13.display=="none"){_13.visibility="hidden";_13.display="";}var mb=_2.getMarginBox(_9);_13.display=_14;_13.visibility=_15;var _16={"L":pos.x,"R":pos.x-mb.w,"M":Math.max(_d.l,Math.min(_d.l+_d.w,pos.x+(mb.w>>1))-mb.w)}[_10.charAt(1)],_17={"T":pos.y,"B":pos.y-mb.h,"M":Math.max(_d.t,Math.min(_d.t+_d.h,pos.y+(mb.h>>1))-mb.h)}[_10.charAt(0)],_18=Math.max(_d.l,_16),_19=Math.max(_d.t,_17),_1a=Math.min(_d.l+_d.w,_16+mb.w),_1b=Math.min(_d.t+_d.h,_17+mb.h),_1c=_1a-_18,_1d=_1b-_19;_11+=(mb.w-_1c)+(mb.h-_1d);if(_e==null||_11<_e.overflow){_e={corner:_10,aroundCorner:_f.aroundCorner,x:_18,y:_19,w:_1c,h:_1d,overflow:_11,spaceAvailable:_12};}return !_11;});if(_e.overflow&&_b){_b(_9,_e.aroundCorner,_e.corner,_e.spaceAvailable,_c);}var l=_2.isBodyLtr(),s=_9.style;s.top=_e.y+"px";s[l?"left":"right"]=(l?_e.x:_d.w-_e.x-_e.w)+"px";s[l?"right":"left"]="auto";return _e;};return (_7.place={at:function(_1e,pos,_1f,_20){var _21=_1.map(_1f,function(_22){var c={corner:_22,pos:{x:pos.x,y:pos.y}};if(_20){c.pos.x+=_22.charAt(1)=="L"?_20.x:-_20.x;c.pos.y+=_22.charAt(0)=="T"?_20.y:-_20.y;}return c;});return _8(_1e,_21);},around:function(_23,_24,_25,_26,_27){var _28=(typeof _24=="string"||"offsetWidth" in _24)?_2.position(_24,true):_24;if(_24.parentNode){var _29=_24.parentNode;while(_29&&_29.nodeType==1&&_29.nodeName!="BODY"){var _2a=_2.position(_29,true);var _2b=_3.getComputedStyle(_29).overflow;if(_2b=="hidden"||_2b=="auto"||_2b=="scroll"){var _2c=Math.min(_28.y+_28.h,_2a.y+_2a.h);var _2d=Math.min(_28.x+_28.w,_2a.x+_2a.w);_28.x=Math.max(_28.x,_2a.x);_28.y=Math.max(_28.y,_2a.y);_28.h=_2c-_28.y;_28.w=_2d-_28.x;}_29=_29.parentNode;}}var x=_28.x,y=_28.y,_2e="w" in _28?_28.w:(_28.w=_28.width),_2f="h" in _28?_28.h:(_4.deprecated("place.around: dijit.place.__Rectangle: { x:"+x+", y:"+y+", height:"+_28.height+", width:"+_2e+" } has been deprecated. Please use { x:"+x+", y:"+y+", h:"+_28.height+", w:"+_2e+" }","","2.0"),_28.h=_28.height);var _30=[];function _31(_32,_33){_30.push({aroundCorner:_32,corner:_33,pos:{x:{"L":x,"R":x+_2e,"M":x+(_2e>>1)}[_32.charAt(1)],y:{"T":y,"B":y+_2f,"M":y+(_2f>>1)}[_32.charAt(0)]}});};_1.forEach(_25,function(pos){var ltr=_26;switch(pos){case "above-centered":_31("TM","BM");break;case "below-centered":_31("BM","TM");break;case "after-centered":ltr=!ltr;case "before-centered":_31(ltr?"ML":"MR",ltr?"MR":"ML");break;case "after":ltr=!ltr;case "before":_31(ltr?"TL":"TR",ltr?"TR":"TL");_31(ltr?"BL":"BR",ltr?"BR":"BL");break;case "below-alt":ltr=!ltr;case "below":_31(ltr?"BL":"BR",ltr?"TL":"TR");_31(ltr?"BR":"BL",ltr?"TR":"TL");break;case "above-alt":ltr=!ltr;case "above":_31(ltr?"TL":"TR",ltr?"BL":"BR");_31(ltr?"TR":"TL",ltr?"BR":"BL");break;default:_31(pos.aroundCorner,pos.corner);}});var _34=_8(_23,_30,_27,{w:_2e,h:_2f});_34.aroundNodePos=_28;return _34;}});}); \ No newline at end of file
+define("dijit/place",["dojo/_base/array","dojo/dom-geometry","dojo/dom-style","dojo/_base/kernel","dojo/_base/window","dojo/window","./main"],function(_1,_2,_3,_4,_5,_6,_7){function _8(_9,_a,_b,_c){var _d=_6.getBox(_9.ownerDocument);if(!_9.parentNode||String(_9.parentNode.tagName).toLowerCase()!="body"){_5.body(_9.ownerDocument).appendChild(_9);}var _e=null;_1.some(_a,function(_f){var _10=_f.corner;var pos=_f.pos;var _11=0;var _12={w:{"L":_d.l+_d.w-pos.x,"R":pos.x-_d.l,"M":_d.w}[_10.charAt(1)],h:{"T":_d.t+_d.h-pos.y,"B":pos.y-_d.t,"M":_d.h}[_10.charAt(0)]};var s=_9.style;s.left=s.right="auto";if(_b){var res=_b(_9,_f.aroundCorner,_10,_12,_c);_11=typeof res=="undefined"?0:res;}var _13=_9.style;var _14=_13.display;var _15=_13.visibility;if(_13.display=="none"){_13.visibility="hidden";_13.display="";}var bb=_2.position(_9);_13.display=_14;_13.visibility=_15;var _16={"L":pos.x,"R":pos.x-bb.w,"M":Math.max(_d.l,Math.min(_d.l+_d.w,pos.x+(bb.w>>1))-bb.w)}[_10.charAt(1)],_17={"T":pos.y,"B":pos.y-bb.h,"M":Math.max(_d.t,Math.min(_d.t+_d.h,pos.y+(bb.h>>1))-bb.h)}[_10.charAt(0)],_18=Math.max(_d.l,_16),_19=Math.max(_d.t,_17),_1a=Math.min(_d.l+_d.w,_16+bb.w),_1b=Math.min(_d.t+_d.h,_17+bb.h),_1c=_1a-_18,_1d=_1b-_19;_11+=(bb.w-_1c)+(bb.h-_1d);if(_e==null||_11<_e.overflow){_e={corner:_10,aroundCorner:_f.aroundCorner,x:_18,y:_19,w:_1c,h:_1d,overflow:_11,spaceAvailable:_12};}return !_11;});if(_e.overflow&&_b){_b(_9,_e.aroundCorner,_e.corner,_e.spaceAvailable,_c);}var l=_2.isBodyLtr(_9.ownerDocument),s=_9.style;s.top=_e.y+"px";s[l?"left":"right"]=(l?_e.x:_d.w-_e.x-_e.w)+"px";s[l?"right":"left"]="auto";return _e;};var _1e={at:function(_1f,pos,_20,_21){var _22=_1.map(_20,function(_23){var c={corner:_23,pos:{x:pos.x,y:pos.y}};if(_21){c.pos.x+=_23.charAt(1)=="L"?_21.x:-_21.x;c.pos.y+=_23.charAt(0)=="T"?_21.y:-_21.y;}return c;});return _8(_1f,_22);},around:function(_24,_25,_26,_27,_28){var _29=(typeof _25=="string"||"offsetWidth" in _25)?_2.position(_25,true):_25;if(_25.parentNode){var _2a=_3.getComputedStyle(_25).position=="absolute";var _2b=_25.parentNode;while(_2b&&_2b.nodeType==1&&_2b.nodeName!="BODY"){var _2c=_2.position(_2b,true),pcs=_3.getComputedStyle(_2b);if(/relative|absolute/.test(pcs.position)){_2a=false;}if(!_2a&&/hidden|auto|scroll/.test(pcs.overflow)){var _2d=Math.min(_29.y+_29.h,_2c.y+_2c.h);var _2e=Math.min(_29.x+_29.w,_2c.x+_2c.w);_29.x=Math.max(_29.x,_2c.x);_29.y=Math.max(_29.y,_2c.y);_29.h=_2d-_29.y;_29.w=_2e-_29.x;}if(pcs.position=="absolute"){_2a=true;}_2b=_2b.parentNode;}}var x=_29.x,y=_29.y,_2f="w" in _29?_29.w:(_29.w=_29.width),_30="h" in _29?_29.h:(_4.deprecated("place.around: dijit/place.__Rectangle: { x:"+x+", y:"+y+", height:"+_29.height+", width:"+_2f+" } has been deprecated. Please use { x:"+x+", y:"+y+", h:"+_29.height+", w:"+_2f+" }","","2.0"),_29.h=_29.height);var _31=[];function _32(_33,_34){_31.push({aroundCorner:_33,corner:_34,pos:{x:{"L":x,"R":x+_2f,"M":x+(_2f>>1)}[_33.charAt(1)],y:{"T":y,"B":y+_30,"M":y+(_30>>1)}[_33.charAt(0)]}});};_1.forEach(_26,function(pos){var ltr=_27;switch(pos){case "above-centered":_32("TM","BM");break;case "below-centered":_32("BM","TM");break;case "after-centered":ltr=!ltr;case "before-centered":_32(ltr?"ML":"MR",ltr?"MR":"ML");break;case "after":ltr=!ltr;case "before":_32(ltr?"TL":"TR",ltr?"TR":"TL");_32(ltr?"BL":"BR",ltr?"BR":"BL");break;case "below-alt":ltr=!ltr;case "below":_32(ltr?"BL":"BR",ltr?"TL":"TR");_32(ltr?"BR":"BL",ltr?"TR":"TL");break;case "above-alt":ltr=!ltr;case "above":_32(ltr?"TL":"TR",ltr?"BL":"BR");_32(ltr?"TR":"TL",ltr?"BR":"BL");break;default:_32(pos.aroundCorner,pos.corner);}});var _35=_8(_24,_31,_28,{w:_2f,h:_30});_35.aroundNodePos=_29;return _35;}};return _7.place=_1e;}); \ No newline at end of file
diff --git a/lib/dijit/popup.js b/lib/dijit/popup.js
index 53dacbaf0..8aa6e4b2d 100644
--- a/lib/dijit/popup.js
+++ b/lib/dijit/popup.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/popup",["dojo/_base/array","dojo/aspect","dojo/_base/connect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","dojo/_base/sniff","dojo/_base/window","./place","./BackgroundIframe","."],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,on,_d,_e,_f,_10,_11){var _12=_4(null,{_stack:[],_beginZIndex:1000,_idGen:1,_createWrapper:function(_13){var _14=_13._popupWrapper,_15=_13.domNode;if(!_14){_14=_7.create("div",{"class":"dijitPopup",style:{display:"none"},role:"presentation"},_e.body());_14.appendChild(_15);var s=_15.style;s.display="";s.visibility="";s.position="";s.top="0px";_13._popupWrapper=_14;_2.after(_13,"destroy",function(){_7.destroy(_14);delete _13._popupWrapper;});}return _14;},moveOffScreen:function(_16){var _17=this._createWrapper(_16);_9.set(_17,{visibility:"hidden",top:"-9999px",display:""});},hide:function(_18){var _19=this._createWrapper(_18);_9.set(_19,"display","none");},getTopPopup:function(){var _1a=this._stack;for(var pi=_1a.length-1;pi>0&&_1a[pi].parent===_1a[pi-1].widget;pi--){}return _1a[pi];},open:function(_1b){var _1c=this._stack,_1d=_1b.popup,_1e=_1b.orient||["below","below-alt","above","above-alt"],ltr=_1b.parent?_1b.parent.isLeftToRight():_8.isBodyLtr(),_1f=_1b.around,id=(_1b.around&&_1b.around.id)?(_1b.around.id+"_dropdown"):("popup_"+this._idGen++);while(_1c.length&&(!_1b.parent||!_5.isDescendant(_1b.parent.domNode,_1c[_1c.length-1].widget.domNode))){this.close(_1c[_1c.length-1].widget);}var _20=this._createWrapper(_1d);_6.set(_20,{id:id,style:{zIndex:this._beginZIndex+_1c.length},"class":"dijitPopup "+(_1d.baseClass||_1d["class"]||"").split(" ")[0]+"Popup",dijitPopupParent:_1b.parent?_1b.parent.id:""});if(_d("ie")||_d("mozilla")){if(!_1d.bgIframe){_1d.bgIframe=new _10(_20);}}var _21=_1f?_f.around(_20,_1f,_1e,ltr,_1d.orient?_c.hitch(_1d,"orient"):null):_f.at(_20,_1b,_1e=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],_1b.padding);_20.style.display="";_20.style.visibility="visible";_1d.domNode.style.visibility="visible";var _22=[];_22.push(on(_20,_3._keypress,_c.hitch(this,function(evt){if(evt.charOrCode==_b.ESCAPE&&_1b.onCancel){_a.stop(evt);_1b.onCancel();}else{if(evt.charOrCode===_b.TAB){_a.stop(evt);var _23=this.getTopPopup();if(_23&&_23.onCancel){_23.onCancel();}}}})));if(_1d.onCancel&&_1b.onCancel){_22.push(_1d.on("cancel",_1b.onCancel));}_22.push(_1d.on(_1d.onExecute?"execute":"change",_c.hitch(this,function(){var _24=this.getTopPopup();if(_24&&_24.onExecute){_24.onExecute();}})));_1c.push({widget:_1d,parent:_1b.parent,onExecute:_1b.onExecute,onCancel:_1b.onCancel,onClose:_1b.onClose,handlers:_22});if(_1d.onOpen){_1d.onOpen(_21);}return _21;},close:function(_25){var _26=this._stack;while((_25&&_1.some(_26,function(_27){return _27.widget==_25;}))||(!_25&&_26.length)){var top=_26.pop(),_28=top.widget,_29=top.onClose;if(_28.onClose){_28.onClose();}var h;while(h=top.handlers.pop()){h.remove();}if(_28&&_28.domNode){this.hide(_28);}if(_29){_29();}}}});return (_11.popup=new _12());}); \ No newline at end of file
+define("dijit/popup",["dojo/_base/array","dojo/aspect","dojo/_base/connect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","./place","./BackgroundIframe","./main"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,on,_d,_e,_f,_10){function _11(){if(this._popupWrapper){_7.destroy(this._popupWrapper);delete this._popupWrapper;}};var _12=_4(null,{_stack:[],_beginZIndex:1000,_idGen:1,_createWrapper:function(_13){var _14=_13._popupWrapper,_15=_13.domNode;if(!_14){_14=_7.create("div",{"class":"dijitPopup",style:{display:"none"},role:"presentation"},_13.ownerDocumentBody);_14.appendChild(_15);var s=_15.style;s.display="";s.visibility="";s.position="";s.top="0px";_13._popupWrapper=_14;_2.after(_13,"destroy",_11,true);}return _14;},moveOffScreen:function(_16){var _17=this._createWrapper(_16);_9.set(_17,{visibility:"hidden",top:"-9999px",display:""});},hide:function(_18){var _19=this._createWrapper(_18);_9.set(_19,"display","none");},getTopPopup:function(){var _1a=this._stack;for(var pi=_1a.length-1;pi>0&&_1a[pi].parent===_1a[pi-1].widget;pi--){}return _1a[pi];},open:function(_1b){var _1c=this._stack,_1d=_1b.popup,_1e=_1b.orient||["below","below-alt","above","above-alt"],ltr=_1b.parent?_1b.parent.isLeftToRight():_8.isBodyLtr(_1d.ownerDocument),_1f=_1b.around,id=(_1b.around&&_1b.around.id)?(_1b.around.id+"_dropdown"):("popup_"+this._idGen++);while(_1c.length&&(!_1b.parent||!_5.isDescendant(_1b.parent.domNode,_1c[_1c.length-1].widget.domNode))){this.close(_1c[_1c.length-1].widget);}var _20=this._createWrapper(_1d);_6.set(_20,{id:id,style:{zIndex:this._beginZIndex+_1c.length},"class":"dijitPopup "+(_1d.baseClass||_1d["class"]||"").split(" ")[0]+"Popup",dijitPopupParent:_1b.parent?_1b.parent.id:""});if(_d("ie")||_d("mozilla")){if(!_1d.bgIframe){_1d.bgIframe=new _f(_20);}}var _21=_1f?_e.around(_20,_1f,_1e,ltr,_1d.orient?_c.hitch(_1d,"orient"):null):_e.at(_20,_1b,_1e=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],_1b.padding);_20.style.display="";_20.style.visibility="visible";_1d.domNode.style.visibility="visible";var _22=[];_22.push(on(_20,_3._keypress,_c.hitch(this,function(evt){if(evt.charOrCode==_b.ESCAPE&&_1b.onCancel){_a.stop(evt);_1b.onCancel();}else{if(evt.charOrCode===_b.TAB){_a.stop(evt);var _23=this.getTopPopup();if(_23&&_23.onCancel){_23.onCancel();}}}})));if(_1d.onCancel&&_1b.onCancel){_22.push(_1d.on("cancel",_1b.onCancel));}_22.push(_1d.on(_1d.onExecute?"execute":"change",_c.hitch(this,function(){var _24=this.getTopPopup();if(_24&&_24.onExecute){_24.onExecute();}})));_1c.push({widget:_1d,parent:_1b.parent,onExecute:_1b.onExecute,onCancel:_1b.onCancel,onClose:_1b.onClose,handlers:_22});if(_1d.onOpen){_1d.onOpen(_21);}return _21;},close:function(_25){var _26=this._stack;while((_25&&_1.some(_26,function(_27){return _27.widget==_25;}))||(!_25&&_26.length)){var top=_26.pop(),_28=top.widget,_29=top.onClose;if(_28.onClose){_28.onClose();}var h;while(h=top.handlers.pop()){h.remove();}if(_28&&_28.domNode){this.hide(_28);}if(_29){_29();}}}});return (_10.popup=new _12());}); \ No newline at end of file
diff --git a/lib/dijit/registry.js b/lib/dijit/registry.js
index 48d6f7238..aa79e5361 100644
--- a/lib/dijit/registry.js
+++ b/lib/dijit/registry.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/registry",["dojo/_base/array","dojo/_base/sniff","dojo/_base/unload","dojo/_base/window","."],function(_1,_2,_3,_4,_5){var _6={},_7={};var _8={length:0,add:function(_9){if(_7[_9.id]){throw new Error("Tried to register widget with id=="+_9.id+" but that id is already registered");}_7[_9.id]=_9;this.length++;},remove:function(id){if(_7[id]){delete _7[id];this.length--;}},byId:function(id){return typeof id=="string"?_7[id]:id;},byNode:function(_a){return _7[_a.getAttribute("widgetId")];},toArray:function(){var ar=[];for(var id in _7){ar.push(_7[id]);}return ar;},getUniqueId:function(_b){var id;do{id=_b+"_"+(_b in _6?++_6[_b]:_6[_b]=0);}while(_7[id]);return _5._scopeName=="dijit"?id:_5._scopeName+"_"+id;},findWidgets:function(_c){var _d=[];function _e(_f){for(var _10=_f.firstChild;_10;_10=_10.nextSibling){if(_10.nodeType==1){var _11=_10.getAttribute("widgetId");if(_11){var _12=_7[_11];if(_12){_d.push(_12);}}else{_e(_10);}}}};_e(_c);return _d;},_destroyAll:function(){_5._curFocus=null;_5._prevFocus=null;_5._activeStack=[];_1.forEach(_8.findWidgets(_4.body()),function(_13){if(!_13._destroyed){if(_13.destroyRecursive){_13.destroyRecursive();}else{if(_13.destroy){_13.destroy();}}}});},getEnclosingWidget:function(_14){while(_14){var id=_14.getAttribute&&_14.getAttribute("widgetId");if(id){return _7[id];}_14=_14.parentNode;}return null;},_hash:_7};if(_2("ie")){_3.addOnWindowUnload(function(){_8._destroyAll();});}_5.registry=_8;return _8;}); \ No newline at end of file
+define("dijit/registry",["dojo/_base/array","dojo/sniff","dojo/_base/unload","dojo/_base/window","./main"],function(_1,_2,_3,_4,_5){var _6={},_7={};var _8={length:0,add:function(_9){if(_7[_9.id]){throw new Error("Tried to register widget with id=="+_9.id+" but that id is already registered");}_7[_9.id]=_9;this.length++;},remove:function(id){if(_7[id]){delete _7[id];this.length--;}},byId:function(id){return typeof id=="string"?_7[id]:id;},byNode:function(_a){return _7[_a.getAttribute("widgetId")];},toArray:function(){var ar=[];for(var id in _7){ar.push(_7[id]);}return ar;},getUniqueId:function(_b){var id;do{id=_b+"_"+(_b in _6?++_6[_b]:_6[_b]=0);}while(_7[id]);return _5._scopeName=="dijit"?id:_5._scopeName+"_"+id;},findWidgets:function(_c,_d){var _e=[];function _f(_10){for(var _11=_10.firstChild;_11;_11=_11.nextSibling){if(_11.nodeType==1){var _12=_11.getAttribute("widgetId");if(_12){var _13=_7[_12];if(_13){_e.push(_13);}}else{if(_11!==_d){_f(_11);}}}}};_f(_c);return _e;},_destroyAll:function(){_5._curFocus=null;_5._prevFocus=null;_5._activeStack=[];_1.forEach(_8.findWidgets(_4.body()),function(_14){if(!_14._destroyed){if(_14.destroyRecursive){_14.destroyRecursive();}else{if(_14.destroy){_14.destroy();}}}});},getEnclosingWidget:function(_15){while(_15){var id=_15.nodeType==1&&_15.getAttribute("widgetId");if(id){return _7[id];}_15=_15.parentNode;}return null;},_hash:_7};_5.registry=_8;return _8;}); \ No newline at end of file
diff --git a/lib/dijit/resources/_modules.js b/lib/dijit/resources/_modules.js
deleted file mode 100644
index e75636f1c..000000000
--- a/lib/dijit/resources/_modules.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*=====
-// dijit fallback for key summaries otherwise not covered by the doc parser
-
-dijit.demos = {
- // summary:
- // Home of the official dijit demo code
-};
-
-dijit.form = {
- // summary:
- // Form and input related widgets
-};
-
-dijit.layout = {
- // summary:
- // Layout related widgets
-};
-=====*/
diff --git a/lib/dijit/templates/Calendar.html b/lib/dijit/templates/Calendar.html
index a3428f5c7..b4405ed84 100644
--- a/lib/dijit/templates/Calendar.html
+++ b/lib/dijit/templates/Calendar.html
@@ -14,7 +14,7 @@
<span data-dojo-attach-point="increaseArrowNode" class="dijitA11ySideArrow">+</span>
</th>
</tr>
- <tr>
+ <tr role="row">
${!dayCellsHtml}
</tr>
</thead>
diff --git a/lib/dijit/templates/CheckedMenuItem.html b/lib/dijit/templates/CheckedMenuItem.html
index 8e1bf5773..71a0824d9 100644
--- a/lib/dijit/templates/CheckedMenuItem.html
+++ b/lib/dijit/templates/CheckedMenuItem.html
@@ -1,5 +1,4 @@
-<tr class="dijitReset dijitMenuItem" data-dojo-attach-point="focusNode" role="menuitemcheckbox" tabIndex="-1"
- data-dojo-attach-event="onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick">
+<tr class="dijitReset dijitMenuItem" data-dojo-attach-point="focusNode" role="menuitemcheckbox" tabIndex="-1">
<td class="dijitReset dijitMenuItemIconCell" role="presentation">
<img src="${_blankGif}" alt="" class="dijitMenuItemIcon dijitCheckedMenuItemIcon" data-dojo-attach-point="iconNode"/>
<span class="dijitCheckedMenuItemIconChar">&#10003;</span>
diff --git a/lib/dijit/templates/Dialog.html b/lib/dijit/templates/Dialog.html
index 1e4a2237a..0de2225ab 100644
--- a/lib/dijit/templates/Dialog.html
+++ b/lib/dijit/templates/Dialog.html
@@ -1,9 +1,10 @@
<div class="dijitDialog" role="dialog" aria-labelledby="${id}_title">
<div data-dojo-attach-point="titleBar" class="dijitDialogTitleBar">
- <span data-dojo-attach-point="titleNode" class="dijitDialogTitle" id="${id}_title"></span>
- <span data-dojo-attach-point="closeButtonNode" class="dijitDialogCloseIcon" data-dojo-attach-event="ondijitclick: onCancel" title="${buttonCancel}" role="button" tabIndex="-1">
- <span data-dojo-attach-point="closeText" class="closeText" title="${buttonCancel}">x</span>
- </span>
+ <span data-dojo-attach-point="titleNode" class="dijitDialogTitle" id="${id}_title"
+ role="heading" level="1"></span>
+ <span data-dojo-attach-point="closeButtonNode" class="dijitDialogCloseIcon" data-dojo-attach-event="ondijitclick: onCancel" title="${buttonCancel}" role="button" tabIndex="-1">
+ <span data-dojo-attach-point="closeText" class="closeText" title="${buttonCancel}">x</span>
+ </span>
</div>
- <div data-dojo-attach-point="containerNode" class="dijitDialogPaneContent"></div>
+ <div data-dojo-attach-point="containerNode" class="dijitDialogPaneContent"></div>
</div>
diff --git a/lib/dijit/templates/InlineEditBox.html b/lib/dijit/templates/InlineEditBox.html
index 75451e31f..d6c7096dc 100644
--- a/lib/dijit/templates/InlineEditBox.html
+++ b/lib/dijit/templates/InlineEditBox.html
@@ -1,10 +1,10 @@
-<span data-dojo-attach-point="editNode" role="presentation" style="position: absolute; visibility:hidden" class="dijitReset dijitInline"
+<span data-dojo-attach-point="editNode" role="presentation" class="dijitReset dijitInline dijitOffScreen"
data-dojo-attach-event="onkeypress: _onKeyPress"
><span data-dojo-attach-point="editorPlaceholder"></span
><span data-dojo-attach-point="buttonContainer"
- ><button data-dojo-type="dijit.form.Button" data-dojo-props="label: '${buttonSave}', 'class': 'saveButton'"
+ ><button data-dojo-type="dijit/form/Button" data-dojo-props="label: '${buttonSave}', 'class': 'saveButton'"
data-dojo-attach-point="saveButton" data-dojo-attach-event="onClick:save"></button
- ><button data-dojo-type="dijit.form.Button" data-dojo-props="label: '${buttonCancel}', 'class': 'cancelButton'"
+ ><button data-dojo-type="dijit/form/Button" data-dojo-props="label: '${buttonCancel}', 'class': 'cancelButton'"
data-dojo-attach-point="cancelButton" data-dojo-attach-event="onClick:cancel"></button
></span
></span>
diff --git a/lib/dijit/templates/Menu.html b/lib/dijit/templates/Menu.html
index 45e12a011..2c3cb53ba 100644
--- a/lib/dijit/templates/Menu.html
+++ b/lib/dijit/templates/Menu.html
@@ -1,3 +1,4 @@
-<table class="dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable" role="menu" tabIndex="${tabIndex}" data-dojo-attach-event="onkeypress:_onKeyPress" cellspacing="0">
+<table class="dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable" role="menu" tabIndex="${tabIndex}"
+ data-dojo-attach-event="onkeypress:_onKeyPress" cellspacing="0">
<tbody class="dijitReset" data-dojo-attach-point="containerNode"></tbody>
</table>
diff --git a/lib/dijit/templates/MenuBarItem.html b/lib/dijit/templates/MenuBarItem.html
index f5e262966..f236dfe01 100644
--- a/lib/dijit/templates/MenuBarItem.html
+++ b/lib/dijit/templates/MenuBarItem.html
@@ -1,4 +1,4 @@
-<div class="dijitReset dijitInline dijitMenuItem dijitMenuItemLabel" data-dojo-attach-point="focusNode" role="menuitem" tabIndex="-1"
- data-dojo-attach-event="onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick">
+<div class="dijitReset dijitInline dijitMenuItem dijitMenuItemLabel" data-dojo-attach-point="focusNode"
+ role="menuitem" tabIndex="-1">
<span data-dojo-attach-point="containerNode"></span>
</div>
diff --git a/lib/dijit/templates/MenuItem.html b/lib/dijit/templates/MenuItem.html
index b4fe7d603..920038435 100644
--- a/lib/dijit/templates/MenuItem.html
+++ b/lib/dijit/templates/MenuItem.html
@@ -1,5 +1,4 @@
-<tr class="dijitReset dijitMenuItem" data-dojo-attach-point="focusNode" role="menuitem" tabIndex="-1"
- data-dojo-attach-event="onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick">
+<tr class="dijitReset dijitMenuItem" data-dojo-attach-point="focusNode" role="menuitem" tabIndex="-1">
<td class="dijitReset dijitMenuItemIconCell" role="presentation">
<img src="${_blankGif}" alt="" class="dijitIcon dijitMenuItemIcon" data-dojo-attach-point="iconNode"/>
</td>
diff --git a/lib/dijit/templates/TitlePane.html b/lib/dijit/templates/TitlePane.html
index 4e7aece4f..4990bfb1d 100644
--- a/lib/dijit/templates/TitlePane.html
+++ b/lib/dijit/templates/TitlePane.html
@@ -1,6 +1,6 @@
<div>
- <div data-dojo-attach-event="onclick:_onTitleClick, onkeypress:_onTitleKey"
- class="dijitTitlePaneTitle" data-dojo-attach-point="titleBarNode">
+ <div data-dojo-attach-event="onclick:_onTitleClick, onkeydown:_onTitleKey"
+ class="dijitTitlePaneTitle" data-dojo-attach-point="titleBarNode" id="${id}_titleBarNode">
<div class="dijitTitlePaneTitleFocus" data-dojo-attach-point="focusNode">
<img src="${_blankGif}" alt="" data-dojo-attach-point="arrowNode" class="dijitArrowNode" role="presentation"
/><span data-dojo-attach-point="arrowNodeInner" class="dijitArrowNodeInner"></span
@@ -9,7 +9,7 @@
</div>
<div class="dijitTitlePaneContentOuter" data-dojo-attach-point="hideNode" role="presentation">
<div class="dijitReset" data-dojo-attach-point="wipeNode" role="presentation">
- <div class="dijitTitlePaneContentInner" data-dojo-attach-point="containerNode" role="region" id="${id}_pane">
+ <div class="dijitTitlePaneContentInner" data-dojo-attach-point="containerNode" role="region" id="${id}_pane" aria-labelledby="${id}_titleBarNode">
<!-- nested divs because wipeIn()/wipeOut() doesn't work right on node w/padding etc. Put padding on inner div. -->
</div>
</div>
diff --git a/lib/dijit/templates/TooltipDialog.html b/lib/dijit/templates/TooltipDialog.html
index 00a6022e2..52d26abb1 100644
--- a/lib/dijit/templates/TooltipDialog.html
+++ b/lib/dijit/templates/TooltipDialog.html
@@ -2,5 +2,5 @@
<div class="dijitTooltipContainer" role="presentation">
<div class ="dijitTooltipContents dijitTooltipFocusNode" data-dojo-attach-point="containerNode" role="dialog"></div>
</div>
- <div class="dijitTooltipConnector" role="presentation"></div>
+ <div class="dijitTooltipConnector" role="presentation" data-dojo-attach-point="connectorNode"></div>
</div>
diff --git a/lib/dijit/templates/Tree.html b/lib/dijit/templates/Tree.html
index 4e1b9432e..9d00191bf 100644
--- a/lib/dijit/templates/Tree.html
+++ b/lib/dijit/templates/Tree.html
@@ -1,4 +1,3 @@
-<div class="dijitTree dijitTreeContainer" role="tree"
- data-dojo-attach-event="onkeypress:_onKeyPress">
+<div class="dijitTree dijitTreeContainer" role="tree">
<div class="dijitInline dijitTreeIndent" style="position: absolute; top: -9999px" data-dojo-attach-point="indentDetector"></div>
</div>
diff --git a/lib/dijit/templates/TreeNode.html b/lib/dijit/templates/TreeNode.html
index f55450cc3..ae3e66a0d 100644
--- a/lib/dijit/templates/TreeNode.html
+++ b/lib/dijit/templates/TreeNode.html
@@ -1,12 +1,13 @@
<div class="dijitTreeNode" role="presentation"
- ><div data-dojo-attach-point="rowNode" class="dijitTreeRow" role="presentation" data-dojo-attach-event="onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick"
+ ><div data-dojo-attach-point="rowNode" class="dijitTreeRow dijitInline" role="presentation"
+ ><div data-dojo-attach-point="indentNode" class="dijitInline"></div
><img src="${_blankGif}" alt="" data-dojo-attach-point="expandoNode" class="dijitTreeExpando" role="presentation"
/><span data-dojo-attach-point="expandoNodeText" class="dijitExpandoText" role="presentation"
></span
><span data-dojo-attach-point="contentNode"
class="dijitTreeContent" role="presentation">
<img src="${_blankGif}" alt="" data-dojo-attach-point="iconNode" class="dijitIcon dijitTreeIcon" role="presentation"
- /><span data-dojo-attach-point="labelNode" class="dijitTreeLabel" role="treeitem" tabindex="-1" aria-selected="false" data-dojo-attach-event="onfocus:_onLabelFocus"></span>
+ /><span data-dojo-attach-point="labelNode" class="dijitTreeLabel" role="treeitem" tabindex="-1" aria-selected="false"></span>
</span
></div>
<div data-dojo-attach-point="containerNode" class="dijitTreeContainer" role="presentation" style="display: none;"></div>
diff --git a/lib/dijit/themes/claro/Calendar.css b/lib/dijit/themes/claro/Calendar.css
index a0f959759..7efd50115 100644
--- a/lib/dijit/themes/claro/Calendar.css
+++ b/lib/dijit/themes/claro/Calendar.css
@@ -1,284 +1 @@
-/* Calendar
- *
- * Styling Calendar mainly includes:
- *
- * 1. Calendar container
- * .dijitCalendar - main container
- * .dijitCalendarHover / .dijitCalendarActive - states e.g. hover,active
- *
- * 2. Month
- * .dijitCalendarMonthContainer
- * .dijitCalendarMonthLabel
- * .dijitCalendarDecrease / .dijitCalendarDecrease - icons for switching to previous/next month
- * .dijitCalendarArrowActive .dijitCalendarDecrease - states e.g. hover,active
- *
- * 3. Date
- * .dijitCalendarDayLabelTemplate - week day column header e.g. S M T W T F S
- * .dijitCalendarDateTemplate - date label wrapper
- * .dijitCalendarPreviousMonth .dijitCalendarDateLabel - special labels for previous or next month
- * .dijitCalendarSelectedDate .dijitCalendarDateLabel - styles for selected date
- * .dijitCalendarDisabledDate .dijitCalendarDateLabel - styles for disabled date
- * .dijitCalendarActiveDate .dijitCalendarDateLabel - states e.g. hover,active
- *
- * 4. Year
- * .dijitCalendarYearContainer
- * .dijitCalendarYearLabel
- * .dijitCalendarPreviousYear /.dijitCalendarNextYear
- * .dijitCalendarNextYearHover / .dijitCalendarPreviousYearHover - states e.g. hover,active
- *
- * 5. Dropdown Month Menu
- * .dijitCalendarMonthMenu - menu container
- * .dijitCalendarMonthMenu .dijitCalendarMonthLabel - month label in menu item
- * .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover - menu item hover state
- */
-.claro .dijitCalendar {
- border: solid 1px #b5bcc7;
- background-color: #cfe5fa;
- background-image: url("images/calendarContainerImages.png");
- background-position: 0 -448px;
- background-repeat: repeat-x;
- text-align: center;
- padding: 6px 5px 3px 5px;
- -moz-border-radius: 4px;
- border-radius: 4px;
- border-collapse: separate;
-}
-.dj_ie6 .claro .dijitCalendar {
- background-image: none;
-}
-.claro .dijitCalendar img {
- border: none;
-}
-.claro .dijitCalendarHover, .claro .dijitCalendar:hover, .claro .dijitCalendarActive {
- /* treat dijitCalenderActive like hover since there's
- * no concept of clicking a Calendar as a whole (although you can click things inside the calendar)
- */
-
- background-color: #abd6ff;
- border: solid 1px #759dc0;
-}
-.claro .dijitCalendarMonthContainer th {
- text-align: center;
- padding-bottom: 4px;
- vertical-align: middle;
-}
-.claro .dijitCalendarMonthLabel {
- color: #000000;
- font-size: 1.091em;
- padding: 0 4px;
-}
-/* next/previous month arrows */
-.claro .dijitCalendarIncrementControl {
- width: 18px;
- height: 16px;
- background-image: url("images/calendarArrows.png");
- background-repeat: no-repeat;
-}
-.dj_ie6 .claro .dijitCalendarIncrementControl {
- background-image: url("images/calendarArrows8bit.png");
-}
-.claro .dijitCalendarIncrease {
- background-position: -18px 0;
-}
-.claro .dijitCalendarArrowHover .dijitCalendarDecrease, .claro .dijitCalendarArrow:hover .dijitCalendarDecrease {
- background-position: -36px 0;
-}
-.claro .dijitCalendarArrowHover .dijitCalendarIncrease, .claro .dijitCalendarArrow:hover .dijitCalendarIncrease {
- background-position: -55px 0;
-}
-.claro .dijitCalendarArrowActive .dijitCalendarDecrease, .claro .dijitCalendarArrow:active .dijitCalendarDecrease {
- background-position: -72px 0;
-}
-.claro .dijitCalendarArrowActive .dijitCalendarIncrease, .claro .dijitCalendarArrow:active .dijitCalendarIncrease {
- background-position: -91px 0;
-}
-.claro .dijitA11ySideArrow {
- /* text +/- labels instead of arrow icons, for high contrast mode */
-
- display: none;
-}
-.claro .dijitCalendarDayLabelTemplate {
- padding-bottom: 0;
- text-align: center;
- border-bottom: 1px solid #b5bcc7;
- padding: 0 3px 2px;
-}
-.claro .dijitCalendarDayLabel {
- padding: 0 4px 0 4px;
- font-weight: bold;
- font-size: 0.909em;
- text-align: center;
- color: #000000;
-}
-.claro .dijitCalendarDateTemplate {
- text-align: center;
- background-color: #ffffff;
- background-image: url("images/calendarContainerImages.png");
- background-position: 0 0;
- background-repeat: repeat-x;
- border-bottom: 1px solid #d3d3d3;
- padding-top: 0;
- font-size: 0.909em;
- font-family: Arial;
- font-weight: bold;
- letter-spacing: .05em;
- text-align: center;
- color: #000000;
-}
-.dj_ie6 .claro .dijitCalendarDateTemplate {
- background-image: none;
-}
-.claro .dijitCalendarPreviousMonth, .claro .dijitCalendarNextMonth {
- background-color: #e5f2fe;
- background-image: none;
- border-bottom: solid 1px #d3d3d3;
- /* todo: redundant with above .dijitCalendarDateTemplate rule */
-}
-.claro .dijitCalendarDateTemplate .dijitCalendarDateLabel {
- text-decoration: none;
- display: block;
- padding: 3px 5px 3px 4px;
- border: solid 1px #ffffff;
- /* intentionally matches background-color, no visible border until hover/selection */
-
- background-color: rgba(171, 212, 251, 0);
- /* transparent causes black-flash animation problem on webkit */
-
- -webkit-transition-property: background-color, border;
- -moz-transition-property: background-color, border;
- transition-property: background-color, border;
- -webkit-transition-duration: 0.35s;
- -moz-transition-duration: 0.35s;
- transition-duration: 0.35s;
-}
-.claro .dijitCalendarPreviousMonth .dijitCalendarDateLabel, .claro .dijitCalendarNextMonth .dijitCalendarDateLabel {
- color: #759dc0;
- border-color: #e5f2fe;
- /* intentionally matches background-color, no visible border until hover/selection */
-
-}
-.claro .dijitCalendarYearContainer {
- vertical-align: middle;
-}
-.claro .dijitCalendarYearControl {
- padding: 1px 2px 2px 2px;
-}
-.claro .dijitCalendarYearLabel {
- padding: 2px 0 0 0;
- margin: 0;
- font-size: 1.17em;
-}
-.claro .dijitCalendarYearLabel span {
- /* trying to center next/current/previous year vertically, doesn't work on IE6/7 though */
-
- vertical-align: middle;
-}
-.claro .dijitCalendarSelectedYear {
- padding: 0 3px;
-}
-.claro .dijitCalendarNextYear, .claro .dijitCalendarPreviousYear {
- padding: 1px 6px 1px 6px;
- font-size: 0.909em;
-}
-.claro .dijitCalendarSelectedYear {
- font-size: 1.091em;
- color: #000000;
-}
-/* End Normal Calendar Style */
-/* Hovered Calendar Style */
-.claro .dijitCalendarHoveredDate .dijitCalendarDateLabel, .claro .dijitCalendarEnabledDate:hover .dijitCalendarDateLabel {
- background-color: #abd6ff;
- border: solid 1px #759dc0;
- color: #000000;
- -webkit-transition-duration: 0.2s;
- -moz-transition-duration: 0.2s;
- transition-duration: 0.2s;
-}
-.claro .dijitCalendarNextYearHover,
-.claro .dijitCalendarNextYear:hover,
-.claro .dijitCalendarPreviousYearHover,
-.claro .dijitCalendarPreviousYear:hover {
- color: #000000;
- border: solid 1px #ffffff;
- padding: 0 5px 0 5px;
- /* reduced by 1 to make room for border */
-
- background-color: #e5f2fe;
-}
-/* End Hovered Calendar Style */
-/* Active Calendar Style */
-.claro .dijitCalendarNextYearActive, .claro .dijitCalendarNextYear:active.claro .dijitCalendarPreviousYearActive, .claro .dijitCalendarPreviousYear:active {
- border: solid 1px #759dc0;
- padding: 0 5px 0 5px;
- /* reduced by 1 to make room for border */
-
- background-color: #7dbdfa;
-}
-.claro .dijitCalendarActiveDate .dijitCalendarDateLabel, .claro .dijitCalendarEnabledDate:active .dijitCalendarDateLabel {
- background-image: url("images/calendarContainerImages.png");
- background-position: 0 -300px;
- background-color: #7dbdfa;
- border: solid 1px #ffffff;
- -webkit-transition-duration: 0.1s;
- -moz-transition-duration: 0.1s;
- transition-duration: 0.1s;
-}
-.dj_ie6 .claro .dijitCalendarActiveDate .dijitCalendarDateLabel {
- background-image: none;
-}
-/* End Active Calendar Style */
-/* Selected Calendar Style */
-.claro .dijitCalendarSelectedDate .dijitCalendarDateLabel {
- color: #000000;
- background-color: #abd6ff;
- border-color: #759dc0;
-}
-/* End Selected Calendar Style */
-/* Disabled Calendar Style*/
-.claro .dijitCalendarDisabledDate .dijitCalendarDateLabel {
- color: #818181;
- text-decoration: line-through;
-}
-/* End Disabled Calendar Style */
-/* Styling for month DropDownButton */
-.claro .dijitCalendar .dijitDropDownButton {
- margin: 0;
-}
-.claro .dijitCalendar .dijitButtonText {
- padding: 1px 0 3px;
- margin-right: -4px;
-}
-.claro .dijitCalendar .dijitDropDownButton .dijitButtonNode {
- background-color: transparent;
- background-image: none;
- padding: 0 3px 0 2px;
- border: solid 1px #b5bcc7;
- -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- box-shadow: 0 0 0 rgba(0, 0, 0, 0);
-}
-.claro .dijitCalendar .dijitDropDownButtonHover .dijitButtonNode, .claro .dijitCalendar .dijitDropDownButton:hover .dijitButtonNode {
- background-color: #e5f2fe;
- border: solid 1px #ffffff;
-}
-/* Styling for month drop down list */
-.claro .dijitCalendarMonthMenu {
- border-color: #759dc0;
- background-color: #ffffff;
- text-align: center;
- background-image: none;
-}
-.claro .dijitCalendarMonthMenu .dijitCalendarMonthLabel {
- border-top: solid 1px #ffffff;
- /* intentionally invisible until hover */
-
- border-bottom: solid 1px #ffffff;
- padding: 2px 0;
-}
-.claro .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover, .claro .dijitCalendarMonthMenu .dijitCalendarMonthLabel:hover {
- background-color: #abd6ff;
- border-color: #759dc0;
- border-width: 1px 0;
- background-image: url("images/commonHighlight.png");
- background-repeat: repeat-x;
-}
+.claro .dijitCalendar {border: solid 1px #b5bcc7; border-collapse: separate; -moz-border-radius: 4px; border-radius: 4px; background-color: #cfe5fa; background-image: url("images/calendar.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0) 100%); text-align: center; padding: 6px 5px 3px 5px;}.dj_ie6 .claro .dijitCalendar {background-image: none;}.claro .dijitCalendar img {border: none;}.claro .dijitCalendarHover, .claro .dijitCalendar:hover, .claro .dijitCalendarActive {background-color: #abd6ff; border: solid 1px #759dc0;}.claro .dijitCalendarMonthContainer th {text-align: center; padding-bottom: 4px; vertical-align: middle;}.claro .dijitCalendarMonthLabel {color: #000000; font-size: 1.091em; padding: 0 4px;}.claro .dijitCalendarIncrementControl {width: 18px; height: 16px; background-image: url("images/calendarArrows.png"); background-repeat: no-repeat;}.dj_ie6 .claro .dijitCalendarIncrementControl {background-image: url("images/calendarArrows8bit.png");}.claro .dijitCalendarIncrease {background-position: -18px 0;}.claro .dijitCalendarArrowHover .dijitCalendarDecrease, .claro .dijitCalendarArrow:hover .dijitCalendarDecrease {background-position: -36px 0;}.claro .dijitCalendarArrowHover .dijitCalendarIncrease, .claro .dijitCalendarArrow:hover .dijitCalendarIncrease {background-position: -55px 0;}.claro .dijitCalendarArrowActive .dijitCalendarDecrease, .claro .dijitCalendarArrow:active .dijitCalendarDecrease {background-position: -72px 0;}.claro .dijitCalendarArrowActive .dijitCalendarIncrease, .claro .dijitCalendarArrow:active .dijitCalendarIncrease {background-position: -91px 0;}.claro .dijitA11ySideArrow {display: none;}.claro .dijitCalendarDayLabelTemplate {padding-bottom: 0; text-align: center; border-bottom: 1px solid #b5bcc7; padding: 0 3px 2px;}.claro .dijitCalendarDayLabel {padding: 0 4px 0 4px; font-weight: bold; font-size: 0.909em; text-align: center; color: #000000;}.claro .dijitCalendarDateTemplate {text-align: center; background-color: #ffffff; border-bottom: 1px solid #d3d3d3; padding-top: 0; font-size: 0.909em; font-family: Arial; font-weight: bold; letter-spacing: .05em; text-align: center; color: #000000;}.dj_ie6 .claro .dijitCalendarDateTemplate {background-image: none;}.claro .dijitCalendarPreviousMonth, .claro .dijitCalendarNextMonth {background-color: #e5f2fe; background-image: none; border-bottom: solid 1px #d3d3d3;}.claro .dijitCalendarDateTemplate .dijitCalendarDateLabel {text-decoration: none; display: block; padding: 3px 5px 3px 4px; border: solid 1px #ffffff; background-color: rgba(171, 212, 251, 0); -webkit-transition-property: background-color, border; -moz-transition-property: background-color, border; transition-property: background-color, border; -webkit-transition-duration: 0.35s; -moz-transition-duration: 0.35s; transition-duration: 0.35s;}.claro .dijitCalendarPreviousMonth .dijitCalendarDateLabel, .claro .dijitCalendarNextMonth .dijitCalendarDateLabel {color: #759dc0; border-color: #e5f2fe;}.claro .dijitCalendarYearContainer {vertical-align: middle;}.claro .dijitCalendarYearControl {padding: 1px 2px 2px 2px;}.claro .dijitCalendarYearLabel {padding: 2px 0 0 0; margin: 0; font-size: 1.17em;}.claro .dijitCalendarYearLabel span {vertical-align: middle;}.claro .dijitCalendarSelectedYear {padding: 0 3px;}.claro .dijitCalendarNextYear, .claro .dijitCalendarPreviousYear {padding: 1px 6px 1px 6px; font-size: 0.909em;}.claro .dijitCalendarSelectedYear {font-size: 1.091em; color: #000000;}.claro .dijitCalendarHoveredDate .dijitCalendarDateLabel, .claro .dijitCalendarEnabledDate:hover .dijitCalendarDateLabel {background-color: #abd6ff; border: solid 1px #759dc0; color: #000000; -webkit-transition-duration: 0.2s; -moz-transition-duration: 0.2s; transition-duration: 0.2s;}.claro .dijitCalendarNextYearHover,.claro .dijitCalendarNextYear:hover,.claro .dijitCalendarPreviousYearHover,.claro .dijitCalendarPreviousYear:hover {color: #000000; border: solid 1px #ffffff; padding: 0 5px 0 5px; background-color: #e5f2fe;}.claro .dijitCalendarNextYearActive, .claro .dijitCalendarNextYear:active.claro .dijitCalendarPreviousYearActive, .claro .dijitCalendarPreviousYear:active {border: solid 1px #759dc0; padding: 0 5px 0 5px; background-color: #7dbdfa;}.claro .dijitCalendarActiveDate .dijitCalendarDateLabel, .claro .dijitCalendarEnabledDate:active .dijitCalendarDateLabel {background-color: #7dbdfa; border: solid 1px #ffffff; -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.dj_ie6 .claro .dijitCalendarActiveDate .dijitCalendarDateLabel {background-image: none;}.claro .dijitCalendarSelectedDate .dijitCalendarDateLabel {color: #000000; background-color: #abd6ff; border-color: #759dc0;}.claro .dijitCalendarDisabledDate .dijitCalendarDateLabel {color: #818181; text-decoration: line-through;}.claro .dijitCalendar .dijitDropDownButton {margin: 0;}.claro .dijitCalendar .dijitButtonText {padding: 1px 0 3px; margin-right: -4px;}.claro .dijitCalendar .dijitDropDownButton .dijitButtonNode {padding: 0 3px 0 2px; border: solid 1px #b5bcc7; -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0); -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0); box-shadow: 0 0 0 rgba(0, 0, 0, 0); background-color: transparent; background-image: none;}.claro .dijitCalendar .dijitDropDownButtonHover .dijitButtonNode, .claro .dijitCalendar .dijitDropDownButton:hover .dijitButtonNode {background-color: #e5f2fe; border: solid 1px #ffffff;}.claro .dijitCalendarMonthMenu {border-color: #759dc0; background-color: #ffffff; text-align: center; background-image: none;}.claro .dijitCalendarMonthMenu .dijitCalendarMonthLabel {border-top: solid 1px #ffffff; border-bottom: solid 1px #ffffff; padding: 2px 0;}.claro .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover, .claro .dijitCalendarMonthMenu .dijitCalendarMonthLabel:hover {border-color: #759dc0; border-width: 1px 0; background-color: #abd6ff; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0)); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0)); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0)); background-image: linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0)); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr= #ffffff , endColorstr= #abd6ff );} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Calendar.less b/lib/dijit/themes/claro/Calendar.less
index 55decd3b4..8b8f5794f 100644
--- a/lib/dijit/themes/claro/Calendar.less
+++ b/lib/dijit/themes/claro/Calendar.less
@@ -35,25 +35,28 @@
@import "variables";
.claro .dijitCalendar {
- border:solid 1px @border-color;
+ border: solid 1px @border-color;
+ border-collapse: separate; // in case user CSS has set border-collapse: collapse for tables
+ .border-radius(4px);
+
+ // Background color and alpha-gradient
background-color: @calendar-background-color;
- background-image:url(@image-calendar-container);
- background-position:0 -448px;
- background-repeat:repeat-x;
+ background-image: url("images/calendar.png"); // fallback for browsers that don't support CSS gradients
+ background-repeat: repeat-x; // so bottom of calendar isn't affected by gradient image repeating
+ .alpha-white-gradient(1, 0px, 0.4, 2px, 0, 100%);
+
text-align:center;
padding:6px 5px 3px 5px;
- .border-radius(4px);
- border-collapse: separate; // in case user CSS has set border-collapse: collapse for tables
}
.dj_ie6 .claro .dijitCalendar {
- background-image:none;
+ background-image:none; // because on IE6 background-image overrides background-color
}
.claro .dijitCalendar img {
border:none;
}
.claro .dijitCalendarHover, .claro .dijitCalendar:hover,
.claro .dijitCalendarActive {
- /* treat dijitCalenderActive like hover since there's
+ /* treat dijitCalendarActive like hover since there's
* no concept of clicking a Calendar as a whole (although you can click things inside the calendar)
*/
background-color: @hovered-background-color;
@@ -120,9 +123,6 @@
.claro .dijitCalendarDateTemplate {
text-align:center;
background-color:@calendar-currentmonth-background-color;
- background-image:url(@image-calendar-container);
- background-position:0 0;
- background-repeat:repeat-x;
border-bottom: 1px solid @minor-border-color;
padding-top:0;
font-size:0.909em;
@@ -209,8 +209,6 @@
}
.claro .dijitCalendarActiveDate .dijitCalendarDateLabel,
.claro .dijitCalendarEnabledDate:active .dijitCalendarDateLabel {
- background-image:url(@image-calendar-container);
- background-position:0 -300px;
background-color: @calendar-date-pressed-background-color;
border:solid 1px @calendar-date-pressed-border-color;
.transition-duration(.1s);
@@ -244,11 +242,13 @@
margin-right:-4px;
}
.claro .dijitCalendar .dijitDropDownButton .dijitButtonNode {
- background-color: transparent;
- background-image: none;
padding: 0 3px 0 2px;
border:solid 1px @border-color;
.box-shadow(0 0 0 rgba(0,0,0,0));
+
+ // Override background settings from vanilla .dijitButtonNode. We want to inherit background of Calendar.
+ background-color: transparent;
+ background-image: none;
}
.claro .dijitCalendar .dijitDropDownButtonHover .dijitButtonNode,
.claro .dijitCalendar .dijitDropDownButton:hover .dijitButtonNode {
@@ -271,9 +271,7 @@
}
.claro .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover,
.claro .dijitCalendarMonthMenu .dijitCalendarMonthLabel:hover {
- background-color: @hovered-background-color;
border-color: @hovered-border-color;
border-width:1px 0;
- background-image: url(@image-common-highlight);
- background-repeat:repeat-x;
+ .gradient-and-filter(@hovered-background-color, 70, 0);
}
diff --git a/lib/dijit/themes/claro/Calendar_rtl.css b/lib/dijit/themes/claro/Calendar_rtl.css
index 5892a64bf..db5ca6ccb 100644
--- a/lib/dijit/themes/claro/Calendar_rtl.css
+++ b/lib/dijit/themes/claro/Calendar_rtl.css
@@ -1,18 +1 @@
-.claro .dijitCalendarRtl .dijitCalendarIncrease {
- background-position: 0 0;
-}
-.claro .dijitCalendarRtl .dijitCalendarDecrease {
- background-position: -18px 0;
-}
-.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarIncrease {
- background-position: -36px 0;
-}
-.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarDecrease {
- background-position: -55px 0;
-}
-.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarIncrease {
- background-position: -72px 0;
-}
-.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarDecrease {
- background-position: -91px 0;
-}
+.claro .dijitCalendarRtl .dijitCalendarIncrease {background-position: 0 0;}.claro .dijitCalendarRtl .dijitCalendarDecrease {background-position: -18px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarIncrease {background-position: -36px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarDecrease {background-position: -55px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarIncrease {background-position: -72px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarDecrease {background-position: -91px 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/ColorPalette.css b/lib/dijit/themes/claro/ColorPalette.css
index a23b2dfd0..5789249e8 100644
--- a/lib/dijit/themes/claro/ColorPalette.css
+++ b/lib/dijit/themes/claro/ColorPalette.css
@@ -1,41 +1 @@
-/* ColorPalette
- *
- * Styling of the ColorPalette consists of the following:
- *
- * 1. the whole color palette
- * .dijitColorPalette - for outline, border, and background color of the whole color palette
- * Note: outline does not work for IE
- *
- * 2. the color swatch
- * .dijitColorPalette .dijitPaletteImg
- * transparent (but clickable) <img> node inside of each <td>, overlaying the color swatch.
- * displays border around a color swatch
- *
- * 3. hovered swatch
- * .dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg
- * the hovered state of the color swatch - adds border
- *
- * 4. active and selected swatch
- * .dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg
- * .dijitColorPalette .dijitPaletteCellSelected .dijitPaletteImg
- * adds border for active or selected state
- */
-.claro .dijitColorPalette {
- border: 1px solid #b5bcc7;
- background: #ffffff;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-.claro .dijitColorPalette .dijitPaletteImg {
- /* transparent (but clickable) <img> node inside of each <td>, overlaying the color swatch.
- * displays border around a color swatch
- * overrides border color in dijit.css */
-
- border: 1px solid #d3d3d3;
-}
-.claro .dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {
- border: 1px solid #000000;
-}
-.claro .dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg, .claro .dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {
- border: 2px solid #000000;
-}
+.claro .dijitColorPalette {border: 1px solid #b5bcc7; background: #ffffff; -moz-border-radius: 0; border-radius: 0;}.claro .dijitColorPalette .dijitPaletteImg {border: 1px solid #d3d3d3;}.claro .dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {border: 1px solid #000000;}.claro .dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg, .claro .dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {border: 2px solid #000000;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Common.css b/lib/dijit/themes/claro/Common.css
index 83f6128c1..9b79b81d3 100644
--- a/lib/dijit/themes/claro/Common.css
+++ b/lib/dijit/themes/claro/Common.css
@@ -1,65 +1 @@
-/* ========= Styling rules to affect widgets ========= */
-.claro .dijitPopup {
- -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
- -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
- box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
-}
-.claro .dijitTooltipDialogPopup {
- /* exception popups: do not use a shadow on these because they aren't rectangular */
-
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
-}
-/* The highlight is shown in the ComboBox menu. TODO: move to form/Common.less */
-.claro .dijitComboBoxHighlightMatch {
- background-color: #abd6ff;
-}
-.claro .dijitFocusedLabel {
- /* for checkboxes or radio buttons, hatch border around the corresponding label, to indicate focus */
-
- outline: 1px dotted #494949;
-}
-/* Drag and Drop */
-.claro .dojoDndItemBefore, .claro .dojoDndItemAfter {
- border-top: 1px solid #759dc0;
-}
-.claro .dojoDndItemOver {
- cursor: pointer;
-}
-.claro table.dojoDndAvatar {
- border: 1px solid #b5bcc7;
- border-collapse: collapse;
- background-color: #ffffff;
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
- -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
-}
-.claro .dojoDndAvatarHeader td {
- height: 20px;
- padding-left: 21px;
-}
-.claro.dojoDndMove .dojoDndAvatarHeader, .claro.dojoDndCopy .dojoDndAvatarHeader {
- background-image: url("images/dnd.png");
- background-repeat: no-repeat;
- background-position: 2px -122px;
-}
-.claro .dojoDndAvatarItem td {
- padding: 5px;
-}
-.claro.dojoDndMove .dojoDndAvatarHeader {
- background-color: #f58383;
- background-position: 2px -103px;
-}
-.claro.dojoDndCopy .dojoDndAvatarHeader {
- background-color: #f58383;
- background-position: 2px -68px;
-}
-.claro.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {
- background-color: #97e68d;
- background-position: 2px -33px;
-}
-.claro.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {
- background-color: #97e68d;
- background-position: 2px 2px;
-}
+.claro .dijitPopup {-webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);}.claro .dijitTooltipDialogPopup {-webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none;}.claro .dijitComboBoxHighlightMatch {background-color: #abd6ff;}.claro .dijitFocusedLabel {outline: 1px dotted #494949;}.claro .dojoDndItem {border-color: rgba(0, 0, 0, 0); -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s; -webkit-transition-property: background-color, border-color; -moz-transition-property: background-color, border-color; transition-property: background-color, border-color;}.claro .dojoDndItemOver {background-color: #abd6ff; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 1px; border: solid 1px #759dc0; color: #000000;}.claro .dojoDndItemAnchor, .claro .dojoDndItemSelected {background-color: #cfe5fa; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 1px; border: solid 1px #759dc0; color: #000000;}.claro .dojoDndItemBefore, .claro .dojoDndItemAfter {border-color: #759dc0;}.claro table.dojoDndAvatar {border: 1px solid #b5bcc7; border-collapse: collapse; background-color: #ffffff; -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);}.claro .dojoDndAvatarHeader td {height: 20px; padding-left: 21px;}.claro.dojoDndMove .dojoDndAvatarHeader, .claro.dojoDndCopy .dojoDndAvatarHeader {background-image: url("images/dnd.png"); background-repeat: no-repeat; background-position: 2px -122px;}.claro .dojoDndAvatarItem td {padding: 5px;}.claro.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-position: 2px -103px;}.claro.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-position: 2px -68px;}.claro.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-position: 2px -33px;}.claro.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-position: 2px 2px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Common.less b/lib/dijit/themes/claro/Common.less
index 248fc1ab8..078d6fdca 100644
--- a/lib/dijit/themes/claro/Common.less
+++ b/lib/dijit/themes/claro/Common.less
@@ -20,14 +20,36 @@
outline: 1px dotted @focus-outline-color;
}
-/* Drag and Drop */
-.claro .dojoDndItemBefore,
-.claro .dojoDndItemAfter{
- border-top: 1px solid @dnd-dropseparator-color;
+/* Drag and Drop*/
+.claro .dojoDndItem {
+ border-color: rgba(0,0,0,0); // rgba() instead of none to prevent flash on hover fade-in
+ .transition-duration(.25s);
+ .transition-property(background-color, border-color)
}
.claro .dojoDndItemOver {
- cursor:pointer;
- }
+ // Hovered item. Matches dijitTreeRowHover.
+ background-color:@hovered-background-color;
+ .standard-gradient;
+ padding: 1px; // reduce from 2px in dijit.css
+ border:solid 1px @hovered-border-color;
+ color:@hovered-text-color;
+}
+.claro .dojoDndItemAnchor,
+.claro .dojoDndItemSelected {
+ // Selected items(s). Matches dijitTreeRowSelected.
+ background-color:@selected-background-color;
+ .standard-gradient;
+ padding: 1px; // reduce from 2px in dijit.css
+ border:solid 1px @selected-border-color;
+ color:@selected-text-color;
+}
+
+.claro .dojoDndItemBefore,
+.claro .dojoDndItemAfter {
+ // line to indicate that user is dropping before/after this dojoDndItem
+ border-color: @dnd-dropseparator-color;
+}
+
.claro table.dojoDndAvatar {
border: 1px solid @border-color;
border-collapse: collapse;
diff --git a/lib/dijit/themes/claro/Dialog.css b/lib/dijit/themes/claro/Dialog.css
index ae0b18df6..86a752f82 100644
--- a/lib/dijit/themes/claro/Dialog.css
+++ b/lib/dijit/themes/claro/Dialog.css
@@ -1,205 +1 @@
-/* Dialog
- *
- * Styling Dialog includes two sections: Dialog and Tooltip & TooltipDialog
- *
- * Dialog:
- * 1. Dialog (default styling):
- * .dijitDialog - styles for dialog's bounding box
- *
- * 2. Dialog title
- * .dijitDialogTitleBar - styles for the title container at the top of dialog
- * .dijitDialogTitle - the text container in dialog title
- *
- * 3. Dialog content
- * .dijitDialogPaneContent - main container for content area and action bar
- * .dijitDialogPaneContentArea - styles for content container
- *
- * 4. Dialog action bar
- * .dijitDialogPaneActionBar - styles for action buttons lie at the bottom of dialog pane content
- *
- * 5. Dialog underlay
- * .dijitDialogUnderlay - div under the dialog which used for separate dialog and page content
- *
- *
- * Tooltip & TooltipDialog:
- * 1. tooltip content container:
- * .dijitTooltipContainer - tooltip content container
- *
- * 2. tooltip connector:
- * .dijitTooltipConnector - tooltip anchor includes 4 direction(up, down, left, right)
- */
-.claro .dijitDialog {
- border: 1px solid #759dc0;
- -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
- -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
- box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
-}
-.claro .dijitDialogPaneContent {
- background: #ffffff repeat-x top left;
- border-top: 1px solid #759dc0;
- padding: 10px 8px;
- position: relative;
-}
-.claro .dijitDialogPaneContentArea {
- /* trick to get action bar (gray bar at bottom with OK/cancel buttons) to span from
- * left to right but still indent dialog content
- */
- margin: -10px -8px;
- padding: 10px 8px;
-}
-.claro .dijitDialogPaneActionBar {
- /* gray bar at bottom of dialog with OK/Cancel buttons */
-
- background-color: #efefef;
- padding: 3px 5px 2px 7px;
- text-align: right;
- border-top: 1px solid #d3d3d3;
- margin: 10px -8px -10px;
-}
-.claro .dijitDialogPaneActionBar .dijitButton {
- float: none;
-}
-.claro .dijitDialogTitleBar {
- /* outer container for the titlebar of the dialog */
-
- border: 1px solid #ffffff;
- border-top: none;
- background-color: #abd6ff;
- background-image: url("images/titlebar.png");
- background-repeat: repeat-x;
- padding: 5px 7px 4px 7px;
-}
-.claro .dijitDialogTitle {
- /* typography and styling of the dialog title */
-
- padding: 0 1px;
- font-size: 1.091em;
- color: #000000;
-}
-.claro .dijitDialogCloseIcon {
- /* the default close icon for the dialog */
-
- background: url("images/dialogCloseIcon.png");
- background-repeat: no-repeat;
- position: absolute;
- right: 5px;
- height: 15px;
- width: 21px;
-}
-.dj_ie6 .claro .dijitDialogCloseIcon {
- background-image: url("images/dialogCloseIcon8bit.png");
-}
-.claro .dijitDialogCloseIconHover {
- background-position: -21px;
-}
-.claro .dijitDialogCloseIconActive {
- background-position: -42px;
-}
-/* Tooltip and TooltipDialog */
-.claro .dijitTooltip, .claro .dijitTooltipDialog {
- /* the outermost dom node, holding the connector and container */
-
- background: transparent;
- /* make the area on the sides of the arrow transparent */
-
-}
-.dijitTooltipBelow {
- /* leave room for arrow above content */
-
- padding-top: 13px;
- padding-left: 3px;
- padding-right: 3px;
-}
-.dijitTooltipAbove {
- /* leave room for arrow below content */
-
- padding-bottom: 13px;
- padding-left: 3px;
- padding-right: 3px;
-}
-.claro .dijitTooltipContainer {
- /* the part with the text */
-
- background-color: #ffffff;
- background-image: url("images/tooltipGradient.png");
- background-repeat: repeat-x;
- background-position: bottom;
- border: 1px solid #759dc0;
- padding: 6px 8px;
- -moz-border-radius: 4px;
- border-radius: 4px;
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
- -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
- font-size: 1em;
- color: #000000;
-}
-.dj_ie6 .claro .dijitTooltipContainer {
- background-image: none;
-}
-.claro .dijitTooltipConnector {
- /* the arrow piece */
-
- border: 0;
- z-index: 2;
- background-image: url("images/tooltip.png");
- background-repeat: no-repeat;
- width: 16px;
- height: 14px;
-}
-.dj_ie6 .claro .dijitTooltipConnector {
- background-image: url("images/tooltip8bit.png");
-}
-.claro .dijitTooltipABRight .dijitTooltipConnector {
- /* above or below tooltip, but the arrow appears on the right,
- and the right edges of target and tooltip are aligned rather than the left */
-
- left: auto !important;
- right: 3px;
-}
-.claro .dijitTooltipBelow .dijitTooltipConnector {
- /* the arrow piece for tooltips below an element */
-
- top: 0;
- left: 3px;
- background-position: -31px 0;
- width: 16px;
- height: 14px;
-}
-.claro .dijitTooltipAbove .dijitTooltipConnector {
- /* the arrow piece for tooltips above an element */
-
- bottom: 0;
- left: 3px;
- background-position: -15px 0;
- width: 16px;
- height: 14px;
-}
-.dj_ie7 .claro .dijitTooltipAbove .dijitTooltipConnector, .dj_ie6 .claro .dijitTooltipAbove .dijitTooltipConnector {
- bottom: -1px;
-}
-.claro .dijitTooltipLeft {
- padding-right: 14px;
-}
-.claro .dijitTooltipLeft .dijitTooltipConnector {
- /* the arrow piece for tooltips to the left of an element, bottom borders aligned */
-
- right: 0;
- background-position: 0 0;
- width: 16px;
- height: 14px;
-}
-.claro .dijitTooltipRight {
- padding-left: 14px;
-}
-.claro .dijitTooltipRight .dijitTooltipConnector {
- /* the arrow piece for tooltips to the right of an element, bottom borders aligned */
-
- left: 0;
- background-position: -48px 0;
- width: 16px;
- height: 14px;
-}
-.claro .dijitDialogUnderlay {
- background: #ffffff;
-}
+.claro .dijitDialog {border: 1px solid #759dc0; -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);}.claro .dijitDialogPaneContent {background: #ffffff repeat-x top left; border-top: 1px solid #759dc0; padding: 10px 8px; position: relative;}.claro .dijitDialogPaneContentArea {margin: -10px -8px; padding: 10px 8px;}.claro .dijitDialogPaneActionBar {background-color: #efefef; padding: 3px 5px 2px 7px; text-align: right; border-top: 1px solid #d3d3d3; margin: 10px -8px -10px;}.claro .dijitTooltipDialog .dijitDialogPaneActionBar {-webkit-border-bottom-right-radius: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -moz-border-radius-bottomleft: 4px; margin: 10px -10px -8px;}.claro .dijitDialogPaneActionBar .dijitButton {float: none;}.claro .dijitDialogTitleBar {border: 1px solid #ffffff; border-top: none; background-color: #abd6ff; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 5px 7px 4px 7px;}.claro .dijitDialogTitle {padding: 0 1px; font-size: 1.091em; color: #000000;}.claro .dijitDialogCloseIcon {background: url("images/dialogCloseIcon.png"); background-repeat: no-repeat; position: absolute; right: 5px; height: 15px; width: 21px;}.dj_ie6 .claro .dijitDialogCloseIcon {background-image: url("images/dialogCloseIcon8bit.png");}.claro .dijitDialogCloseIconHover {background-position: -21px;}.claro .dijitDialogCloseIconActive {background-position: -42px;}.claro .dijitTooltip, .claro .dijitTooltipDialog {background: transparent;}.dijitTooltipBelow {padding-top: 13px; padding-left: 3px; padding-right: 3px;}.dijitTooltipAbove {padding-bottom: 13px; padding-left: 3px; padding-right: 3px;}.claro .dijitTooltipContainer {background-color: #ffffff; background-image: -moz-linear-gradient(bottom, rgba(207, 229, 250, 0.1) 0px, #ffffff 10px); background-image: -webkit-linear-gradient(bottom, rgba(207, 229, 250, 0.1) 0px, #ffffff 10px); background-image: -o-linear-gradient(bottom, rgba(207, 229, 250, 0.1) 0px, #ffffff 10px); background-image: linear-gradient(bottom, rgba(207, 229, 250, 0.1) 0px, #ffffff 10px); background-position: bottom; border: 1px solid #759dc0; padding: 6px 8px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); font-size: 1em; color: #000000;}.claro .dijitTooltipConnector {border: 0; z-index: 2; background-image: url("images/tooltip.png"); background-repeat: no-repeat; width: 16px; height: 14px;}.dj_ie6 .claro .dijitTooltipConnector {background-image: url("images/tooltip8bit.png");}.claro .dijitTooltipABRight .dijitTooltipConnector {left: auto !important; right: 3px;}.claro .dijitTooltipBelow .dijitTooltipConnector {top: 0; left: 3px; background-position: -31px 0; width: 16px; height: 14px;}.claro .dijitTooltipAbove .dijitTooltipConnector {bottom: 0; left: 3px; background-position: -15px 0; width: 16px; height: 14px;}.dj_ie7 .claro .dijitTooltipAbove .dijitTooltipConnector, .dj_ie6 .claro .dijitTooltipAbove .dijitTooltipConnector {bottom: -1px;}.claro .dijitTooltipLeft {padding-right: 14px;}.claro .dijitTooltipLeft .dijitTooltipConnector {right: 0; background-position: 0 0; width: 16px; height: 14px;}.claro .dijitTooltipRight {padding-left: 14px;}.claro .dijitTooltipRight .dijitTooltipConnector {left: 0; background-position: -48px 0; width: 16px; height: 14px;}.claro .dijitDialogUnderlay {background: #ffffff;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Dialog.less b/lib/dijit/themes/claro/Dialog.less
index 5e74be747..8b5b38673 100644
--- a/lib/dijit/themes/claro/Dialog.less
+++ b/lib/dijit/themes/claro/Dialog.less
@@ -59,6 +59,15 @@
border-top: 1px solid @minor-border-color;
margin: 10px -8px -10px;
}
+.claro .dijitTooltipDialog .dijitDialogPaneActionBar {
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-border-radius-bottomleft: 4px;
+ margin: 10px -10px -8px;
+}
.claro .dijitDialogPaneActionBar .dijitButton {
float: none;
}
@@ -68,8 +77,7 @@
border: 1px solid @dialog-titlebar-border-color;
border-top:none;
background-color: @dialog-titlebar-background-color;
- background-image: url(@image-titlebar);
- background-repeat:repeat-x;
+ .standard-gradient;
padding: 5px 7px 4px 7px;
}
@@ -123,8 +131,7 @@
.claro .dijitTooltipContainer {
/* the part with the text */
background-color:@popup-background-color;
- background-image:url(@image-tooltip-gradient);
- background-repeat:repeat-x;
+ .linear-gradient(bottom, @tooltip-gradient-color 0px, @popup-background-color 10px);
background-position:bottom;
border:1px solid @popup-border-color;
padding:6px 8px;
@@ -134,9 +141,6 @@
color: @text-color;
}
-.dj_ie6 .claro .dijitTooltipContainer {
- background-image: none;
-}
.claro .dijitTooltipConnector {
/* the arrow piece */
border: 0;
diff --git a/lib/dijit/themes/claro/Dialog_rtl.css b/lib/dijit/themes/claro/Dialog_rtl.css
index 34930eb64..0c68ed082 100644
--- a/lib/dijit/themes/claro/Dialog_rtl.css
+++ b/lib/dijit/themes/claro/Dialog_rtl.css
@@ -1,9 +1 @@
-/* Dialog */
-.claro .dijitDialogRtl .dijitDialogCloseIcon {
- right: auto;
- left: 5px;
-}
-.claro .dijitDialogRtl .dijitDialogPaneActionBar {
- text-align: left;
- padding: 3px 7px 2px 5px;
-}
+.claro .dijitDialogRtl .dijitDialogCloseIcon {right: auto; left: 5px;}.claro .dijitDialogRtl .dijitDialogPaneActionBar {text-align: left; padding: 3px 7px 2px 5px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Editor.css b/lib/dijit/themes/claro/Editor.css
index 9f167f921..ad663f633 100644
--- a/lib/dijit/themes/claro/Editor.css
+++ b/lib/dijit/themes/claro/Editor.css
@@ -1,50 +1 @@
-/* Editor
- *
- * Styling Editor means styling the Editor inside iframe container (dijitEditorIFrameContainer)
- *
- * 1. Editor iframe container (default styling):
- * .dijitEditorIFrameContainer - normal state styles: background-color, border, padding
- *
- * 2. hovered Editor iframe container (ie, mouse hover on editor)
- * .dijitEditorHover .dijitEditorIFrameContainer/dijitEditorIFrame - styles when mouse hover on the container
- *
- * 3. focused Editor iframe container (ie, mouse focus on the editor pane)
- * .dijitEditorFocused .dijitEditorIFrameContainer/dijitEditorIFrame - styles when container focused
- *
- * 3. disabled Editor iframe container
- * .dijitEditorDisabled - editor's inner iframe container disable status styles: background, border
- */
-.claro .dijitEditorIFrameContainer {
- padding: 3px 3px 1px 10px;
-}
-.claro .dijitEditorIFrame {
- background-color: #ffffff;
-}
-.claro .dijitEditor {
- border: 1px solid #b5bcc7;
-}
-.claro .dijitEditor .dijitEditorIFrameContainer {
- background-color: #ffffff;
- background-image: url("form/images/textBox_back.png");
- background-repeat: repeat-x;
-}
-.dj_ie6 .claro .dijitEditor .dijitEditorIFrameContainer {
- background-image: none;
-}
-.claro .dijitEditorHover .dijitEditorIFrameContainer, .claro .dijitEditorHover .dijitEditorIFrameContainer .dijitEditorIFrame {
- background-color: #e5f2fe;
-}
-.claro .dijitEditorFocused .dijitEditorIFrameContainer, .claro .dijitEditorFocused .dijitEditorIFrameContainer .dijitEditorIFrame {
- /* TODO: contradicts rule above, which background-color do you want? */
-
- background-color: #ffffff;
-}
-/* Disabled */
-.claro .dijitEditorDisabled {
- border: 1px solid #d3d3d3;
- color: #818181;
-}
-.claro .dijitDisabled .dijitEditorIFrame, .claro .dijitDisabled .dijitEditorIFrameContainer, .claro .dijitDisabled .dijitEditorIFrameContainer .dijitEditorIFrame {
- background-color: #efefef;
- background-image: none;
-}
+.claro .dijitEditorIFrameContainer {padding: 3px 3px 1px 10px;}.claro .dijitEditorIFrame {background-color: #ffffff;}.claro .dijitEditor {border: 1px solid #b5bcc7;}.claro .dijitEditor .dijitEditorIFrameContainer {background-color: #ffffff; background-repeat: repeat-x;}.claro .dijitEditorHover .dijitEditorIFrameContainer, .claro .dijitEditorHover .dijitEditorIFrameContainer .dijitEditorIFrame {background-color: #e5f2fe;}.claro .dijitEditorFocused .dijitEditorIFrameContainer, .claro .dijitEditorFocused .dijitEditorIFrameContainer .dijitEditorIFrame {background-color: #ffffff;}.claro .dijitEditorHover .dijitEditorIFrameContainer, .claro .dijitEditorFocused .dijitEditorIFrameContainer {background-image: -moz-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -webkit-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -o-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px);}.claro .dijitEditorDisabled {border: 1px solid #d3d3d3; color: #818181;}.claro .dijitDisabled .dijitEditorIFrame, .claro .dijitDisabled .dijitEditorIFrameContainer, .claro .dijitDisabled .dijitEditorIFrameContainer .dijitEditorIFrame {background-color: #efefef; background-image: none;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Editor.less b/lib/dijit/themes/claro/Editor.less
index f74a5d462..ddc59ccb4 100644
--- a/lib/dijit/themes/claro/Editor.less
+++ b/lib/dijit/themes/claro/Editor.less
@@ -28,22 +28,20 @@
}
.claro .dijitEditor .dijitEditorIFrameContainer{
background-color: @textbox-background-color;
- background-image: url(@image-form-textbox-background);
background-repeat:repeat-x;
}
-.dj_ie6 .claro .dijitEditor .dijitEditorIFrameContainer{
- background-image: none;
-}
.claro .dijitEditorHover .dijitEditorIFrameContainer,
.claro .dijitEditorHover .dijitEditorIFrameContainer .dijitEditorIFrame{
background-color: @textbox-hovered-background-color;
}
.claro .dijitEditorFocused .dijitEditorIFrameContainer,
.claro .dijitEditorFocused .dijitEditorIFrameContainer .dijitEditorIFrame{
- /* TODO: contradicts rule above, which background-color do you want? */
background-color: @textbox-focused-background-color;
}
-
+.claro .dijitEditorHover .dijitEditorIFrameContainer,
+.claro .dijitEditorFocused .dijitEditorIFrameContainer {
+ .textbox-background-image;
+}
/* Disabled */
.claro .dijitEditorDisabled {
diff --git a/lib/dijit/themes/claro/Editor_rtl.css b/lib/dijit/themes/claro/Editor_rtl.css
index f63355867..541ae04a7 100644
--- a/lib/dijit/themes/claro/Editor_rtl.css
+++ b/lib/dijit/themes/claro/Editor_rtl.css
@@ -1,4 +1 @@
-/* Editor */
-.claro .dijitEditorRtl .dijitEditorIFrameContainer {
- padding: 3px 10px 1px 3px;
-}
+.claro .dijitEditorRtl .dijitEditorIFrameContainer {padding: 3px 10px 1px 3px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/InlineEditBox.css b/lib/dijit/themes/claro/InlineEditBox.css
index 0cd14579d..3a2a03057 100644
--- a/lib/dijit/themes/claro/InlineEditBox.css
+++ b/lib/dijit/themes/claro/InlineEditBox.css
@@ -1,20 +1 @@
-/* InlineEditBox
- *
- * Styling InlineEditBox mainly includes:
- *
- * 1. Normal state
- * .dijitInlineEditBoxDisplayMode - for border
- *
- * 2. Hover state
- * .dijitInlineEditBoxDisplayModeHover - for border and background color
- */
-.claro .dijitInlineEditBoxDisplayMode {
- border: 1px solid transparent;
-}
-.claro .dijitInlineEditBoxDisplayModeHover {
- background-color: #e5f2fe;
- border: solid 1px #759dc0;
-}
-.dj_ie6 .claro .dijitInlineEditBoxDisplayMode {
- border: none;
-}
+.claro .dijitInlineEditBoxDisplayMode {border: 1px solid transparent;}.claro .dijitInlineEditBoxDisplayModeHover {background-color: #e5f2fe; border: solid 1px #759dc0;}.dj_ie6 .claro .dijitInlineEditBoxDisplayMode {border: none;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Menu.css b/lib/dijit/themes/claro/Menu.css
index e1c1562e8..4d4d7a1b5 100644
--- a/lib/dijit/themes/claro/Menu.css
+++ b/lib/dijit/themes/claro/Menu.css
@@ -1,190 +1 @@
-/* Menu
-
-There are three areas of styling for the Menu:
-
- 1. The menu
- There are three types of menus:
- i)Context Menu
- ii)Drop down Menu
- iii) Navigation Menu
- All three types of menus are affected by the .dijitMenu class in which you can set the background-color, padding and border
- .dijitMenu affects the drop down menu in TimeTextBox, Calendar, ComboBox and FilteringSelect
- .dijitMenuTable - for padding - also affects Select widget
-
- 2. The menu bar
- .dijitMenuBar - for border, margins, padding, background-color of the menu bar
- .dijitMenuBar .dijitMenuItem - for padding, text color of menu items in the menu bar (overrides .dijitMenuItem)
-
- 3. Menu items - items in the menu.
- .dijitMenuItem - for color
- .dijitMenuItemHover, .dijitMenuItemSelected - for background-color, border, text color, padding of a menu item or menubar item that has been hovered over or selected
- .dijitMenuItemActive - for bacgkround-color of an active (mousedown) menu item
- td.dijitMenuItemIconCell - for padding around a menu item's icon
- td.dijitMenuItemLabel - for padding around a menu item's label
- .dijitMenuSeparatorTop - for border, top border, of the separator
- .dijitMenuSeparatorBottom - for bottom margin of the separator
-
- Styles specific to ComboBox and FilteringSelect widgets:
- .dijitComboBoxMenu .dijitMenuItem - for padding and border of a menu item in a ComboBox or FilteringSelect widget's menu
- .dijitComboBoxMenu .dijitMenuItemSelected- for text color, background-color and border of a menu item in a ComboBox or FilteringSelect widget's menu
-
-*/
-.claro .dijitMenuBar {
- border: 1px solid #b5bcc7;
- margin: 0;
- padding: 0;
- background-color: #efefef;
- background-image: url("images/commonHighlight.png");
- background-position: 0 0;
- background-repeat: repeat-x;
-}
-.dj_ie6 .claro .dijitMenuBar {
- background-image: none;
-}
-.claro .dijitMenu {
- background-repeat: repeat-y;
- background-color: #ffffff;
- border: 1px solid #759dc0;
- /* so adjoining borders of MenuBar/ComboBox and Menu overlap, avoiding double border */
-
- margin: -1px 0;
-}
-.dj_ie6 .claro .dijitMenu {
- margin: 0;
- /* above -1px makes top/bottom borders disappear on IE6 */
-
-}
-.claro .dijitMenuBar .dijitMenuItem {
- padding: 6px 10px 7px;
- background-position: 0 100px;
- margin: -1px;
-}
-.claro .dijitMenuItem {
- background-image: url("images/menuHighlight.png");
- background-position: 0 -40px;
- background-repeat: repeat-x;
- color: #000000;
-}
-/* this prevents jiggling upon hover of a menu item */
-.claro .dijitMenuTable {
- border-collapse: separate;
- border-spacing: 0 0;
- padding: 0;
-}
-.claro .dijitMenuItem td {
- padding: 1px;
-}
-/* hover over a MenuBarItem */
-.claro .dijitMenuPassive .dijitMenuItemHover, .claro .dijitMenuPassive .dijitMenuItemSelected {
- background-color: #abd6ff;
- border: solid 1px #759dc0;
- background-position: 0 0;
- color: #000000;
- padding: 5px 9px 6px;
-}
-.claro .dijitMenuPassive .dijitMenuItemActive {
- background-position: 0 -177px;
-}
-.dj_ie6 .claro .dijitMenuItem, .dj_ie6 .claro .dijitMenuPassive .dijitMenuItem {
- background-image: none;
-}
-/* MenuBarItem that has been selected and menu drops down from it */
-.claro .dijitMenuActive .dijitMenuItemHover, .claro .dijitMenuActive .dijitMenuItemSelected {
- border: solid 1px #759dc0;
- padding: 5px 9px 6px;
- background-color: #abd6ff;
- background-position: 0 0;
- color: #000000;
-}
-.dj_ie .claro .dijitMenuActive .dijitMenuItemHover,
-.dj_ie .claro .dijitMenuActive .dijitMenuItemSelected,
-.dj_ie .claro .dijitMenuPassive .dijitMenuItemHover,
-.dj_ie .claro .dijitMenuPassive .dijitMenuItemSelected {
- padding-top: 6px;
- padding-bottom: 5px;
- margin-top: -3px;
-}
-.claro .dijitMenuActive .dijitMenuItemActive {
- background-color: #7dbdfa;
- background-position: 0 -177px;
-}
-.claro .dijitMenuItemActive {
- background-position: 0 -177px;
-}
-.claro td.dijitMenuItemIconCell {
- padding: 2px;
- margin: 0 0 0 4px;
-}
-.claro td.dijitMenuItemLabel {
- padding-top: 5px;
- padding-bottom: 5px;
-}
-.claro .dijitMenuExpand {
- width: 7px;
- height: 7px;
- background-image: url("images/spriteArrows.png");
- background-position: -14px 0;
- margin-right: 3px;
-}
-.claro .dijitMenuItemDisabled .dijitMenuItemIconCell {
- opacity: 1;
-}
-.claro .dijitMenuSeparatorTop {
- height: auto;
- margin-top: 1px;
- /* prevents spacing above/below separator */
-
- border-bottom: 1px solid #b5bcc7;
-}
-.claro .dijitMenuSeparatorBottom {
- height: auto;
- margin-bottom: 1px;
-}
-/* the checked menu item */
-.claro .dijitCheckedMenuItemIconChar {
- display: none;
-}
-.claro .dijitCheckedMenuItemIcon {
- background-image: url("form/images/checkboxRadioButtonStates.png");
- background-repeat: no-repeat;
- background-position: -15px 50%;
- width: 15px;
- height: 16px;
-}
-.dj_ie6 .claro .dijitCheckedMenuItemIcon {
- background-image: url("form/images/checkboxAndRadioButtons_IE6.png");
-}
-.claro .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {
- background-position: 0 50%;
-}
-/*ComboBox Menu*/
-.claro .dijitComboBoxMenu {
- margin-left: 0;
- background-image: none;
-}
-.claro .dijitComboBoxMenu .dijitMenuItem {
- padding: 2px;
- border-width: 1px 0 1px 0;
- border-style: solid;
- border-color: #ffffff;
-}
-.claro .dijitComboBoxMenu .dijitMenuItemSelected {
- color: #000000;
- border-color: #759dc0;
- background-color: #abd6ff;
-}
-.claro .dijitComboBoxMenu .dijitMenuItemHover {
- color: #000000;
- border-color: #769dc0;
- background-color: #abd6ff;
- background-position: 0 0;
-}
-.claro .dijitComboBoxMenuActive .dijitMenuItemSelected {
- background-position: 0 -177px;
- background-color: #7dbdfa;
- /* TODO: why is this a different color than normal .dijitMenuItemSelected? */
-
-}
-.claro .dijitMenuPreviousButton, .claro .dijitMenuNextButton {
- font-style: italic;
-}
+.claro .dijitMenuBar {border: 1px solid #b5bcc7; margin: 0; padding: 0; background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitMenu {background-color: #ffffff; border: 1px solid #759dc0; margin: -1px 0;}.dj_ie6 .claro .dijitMenu {margin: 0;}.claro .dijitMenuItem {color: #000000;}.claro .dijitMenuBar .dijitMenuItem {padding: 6px 10px 7px; margin: -1px;}.claro .dijitMenuBar .dijitMenuItemHover, .claro .dijitMenuBar .dijitMenuItemSelected {border: solid 1px #759dc0; padding: 5px 9px 6px;}.claro .dijitMenuTable {border-collapse: separate; border-spacing: 0 0; padding: 0;}.claro .dijitMenuItem td {padding: 1px;}.claro .dijitSelectMenu .dijitMenuItemHover td,.claro .dijitSelectMenu .dijitMenuItemSelected td,.claro .dijitMenuItemHover,.claro .dijitMenuItemSelected {background-color: #abd6ff; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitMenuItemActive {background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.dj_ie .claro .dijitMenuActive .dijitMenuItemHover,.dj_ie .claro .dijitMenuActive .dijitMenuItemSelected,.dj_ie .claro .dijitMenuPassive .dijitMenuItemHover,.dj_ie .claro .dijitMenuPassive .dijitMenuItemSelected {padding-top: 6px; padding-bottom: 5px; margin-top: -3px;}.claro td.dijitMenuItemIconCell {padding: 2px; margin: 0 0 0 4px;}.claro td.dijitMenuItemLabel {padding-top: 5px; padding-bottom: 5px;}.claro .dijitMenuExpand {width: 7px; height: 7px; background-image: url("images/spriteArrows.png"); background-position: -14px 0; margin-right: 3px;}.claro .dijitMenuItemDisabled .dijitMenuItemIconCell {opacity: 1;}.claro .dijitMenuSeparatorTop {height: auto; margin-top: 1px; border-bottom: 1px solid #b5bcc7;}.claro .dijitMenuSeparatorBottom {height: auto; margin-bottom: 1px;}.claro .dijitCheckedMenuItemIconChar {display: none;}.claro .dijitCheckedMenuItemIcon {background-image: url("form/images/checkboxRadioButtonStates.png"); background-repeat: no-repeat; background-position: -15px 50%; width: 15px; height: 16px;}.dj_ie6 .claro .dijitCheckedMenuItemIcon {background-image: url("form/images/checkboxAndRadioButtons_IE6.png");}.claro .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: 0 50%;}.claro .dijitComboBoxMenu {margin-left: 0; background-image: none;}.claro .dijitSelectMenu .dijitMenuItem td, .claro .dijitComboBoxMenu .dijitMenuItem {padding: 2px; border-width: 1px 0 1px 0; border-style: solid; border-color: #ffffff;}.claro .dijitSelectMenu .dijitMenuItemSelected td, .claro .dijitComboBoxMenu .dijitMenuItemSelected {color: #000000; border-color: #759dc0; background-color: #abd6ff;}.claro .dijitSelectMenu .dijitMenuItemHover td, .claro .dijitComboBoxMenu .dijitMenuItemHover {color: #000000; border-color: #769dc0; background-color: #abd6ff;}.claro .dijitComboBoxMenuActive .dijitMenuItemSelected {background-color: #7dbdfa;}.claro .dijitMenuPreviousButton, .claro .dijitMenuNextButton {font-style: italic;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Menu.less b/lib/dijit/themes/claro/Menu.less
index 80467a5b6..9f4f86071 100644
--- a/lib/dijit/themes/claro/Menu.less
+++ b/lib/dijit/themes/claro/Menu.less
@@ -4,8 +4,8 @@ There are three areas of styling for the Menu:
1. The menu
There are three types of menus:
- i)Context Menu
- ii)Drop down Menu
+ i) Context Menu
+ ii) Drop down Menu
iii) Navigation Menu
All three types of menus are affected by the .dijitMenu class in which you can set the background-color, padding and border
.dijitMenu affects the drop down menu in TimeTextBox, Calendar, ComboBox and FilteringSelect
@@ -18,7 +18,7 @@ There are three areas of styling for the Menu:
3. Menu items - items in the menu.
.dijitMenuItem - for color
.dijitMenuItemHover, .dijitMenuItemSelected - for background-color, border, text color, padding of a menu item or menubar item that has been hovered over or selected
- .dijitMenuItemActive - for bacgkround-color of an active (mousedown) menu item
+ .dijitMenuItemActive - for background-color of an active (mousedown) menu item
td.dijitMenuItemIconCell - for padding around a menu item's icon
td.dijitMenuItemLabel - for padding around a menu item's label
.dijitMenuSeparatorTop - for border, top border, of the separator
@@ -37,15 +37,10 @@ There are three areas of styling for the Menu:
margin: 0;
padding: 0;
background-color: @bar-background-color;
- background-image: url(@image-common-highlight);
- background-position:0 0;
- background-repeat:repeat-x;
-}
-.dj_ie6 .claro .dijitMenuBar {
- background-image:none;
+ .standard-gradient;
}
+
.claro .dijitMenu {
- background-repeat:repeat-y;
background-color:@menu-background-color;
border: 1px solid @popup-border-color;
@@ -55,16 +50,19 @@ There are three areas of styling for the Menu:
.dj_ie6 .claro .dijitMenu {
margin: 0; /* above -1px makes top/bottom borders disappear on IE6 */
}
+
+.claro .dijitMenuItem {
+ color: @text-color;
+}
.claro .dijitMenuBar .dijitMenuItem {
padding: 6px 10px 7px;
- background-position:0 100px;
margin:-1px;
-}
-.claro .dijitMenuItem {
- background-image: url(@image-menu-highlight);
- background-position:0 -40px;
- background-repeat:repeat-x;
- color: @text-color;
+}
+.claro .dijitMenuBar .dijitMenuItemHover,
+.claro .dijitMenuBar .dijitMenuItemSelected {
+ // on hover or selection of MenuBar item, add border and reduce padding to compensate
+ border:solid 1px @hovered-border-color;
+ padding: 5px 9px 6px;
}
/* this prevents jiggling upon hover of a menu item */
@@ -76,50 +74,36 @@ There are three areas of styling for the Menu:
.claro .dijitMenuItem td{
padding:1px;
}
-/* hover over a MenuBarItem */
-.claro .dijitMenuPassive .dijitMenuItemHover,
-.claro .dijitMenuPassive .dijitMenuItemSelected {
+/* hover over a MenuItem or MenuBarItem */
+.claro .dijitSelectMenu .dijitMenuItemHover td,
+.claro .dijitSelectMenu .dijitMenuItemSelected td,
+.claro .dijitMenuItemHover,
+.claro .dijitMenuItemSelected {
+ // note: seems like the selected MenuItem should use @pressed-background-color
+ // and .active-gradient, but claro didn't to that
background-color: @hovered-background-color;
- border:solid 1px @hovered-border-color;
- background-position:0 0;
- color:@text-color;
- padding: 5px 9px 6px;
+ .standard-gradient;
}
-.claro .dijitMenuPassive .dijitMenuItemActive{
- background-position:0 -177px;
-}
-.dj_ie6 .claro .dijitMenuItem,
-.dj_ie6 .claro .dijitMenuPassive .dijitMenuItem {
- background-image: none;
-}
-
-/* MenuBarItem that has been selected and menu drops down from it */
-.claro .dijitMenuActive .dijitMenuItemHover,
-.claro .dijitMenuActive .dijitMenuItemSelected {
- border:solid 1px @hovered-border-color;
- padding: 5px 9px 6px;
- background-color: @hovered-background-color;
- background-position:0 0;
- color:@hovered-text-color;
+.claro .dijitMenuItemActive {
+ // todo: seems like the selected MenuItem should come here
+ // todo: seems like should use @pressed-background-color
+ .active-gradient;
}
.dj_ie .claro .dijitMenuActive .dijitMenuItemHover,
.dj_ie .claro .dijitMenuActive .dijitMenuItemSelected,
.dj_ie .claro .dijitMenuPassive .dijitMenuItemHover,
.dj_ie .claro .dijitMenuPassive .dijitMenuItemSelected {
+ // Selectivity set to override ComboBox rules below.
+ // If this rule isn't present, on IE6 hovering an item in the ComboBox drop down causes two
+ // items to be highlighted (except when hovering the first item in the list)
padding-top: 6px;
padding-bottom: 5px;
margin-top: -3px;
}
-.claro .dijitMenuActive .dijitMenuItemActive{
- background-color: @pressed-background-color;
- background-position:0 -177px;
-}
-.claro .dijitMenuItemActive {
- background-position:0 -177px;
-}
+
.claro td.dijitMenuItemIconCell {
- padding: 2px;
- margin: 0 0 0 4px;
+ padding: 2px;
+ margin: 0 0 0 4px;
}
.claro td.dijitMenuItemLabel {
padding-top: 5px;
@@ -168,25 +152,26 @@ There are three areas of styling for the Menu:
background-image: none;
}
+.claro .dijitSelectMenu .dijitMenuItem td,
.claro .dijitComboBoxMenu .dijitMenuItem {
padding: @textbox-padding; // Make drop down menu text line up with text in <input>.
border-width:1px 0 1px 0;
border-style:solid;
border-color: @select-dropdownitem-background-color;
}
+.claro .dijitSelectMenu .dijitMenuItemSelected td,
.claro .dijitComboBoxMenu .dijitMenuItemSelected {
color:@selected-text-color;
border-color:@hovered-border-color;
background-color:@hovered-background-color;
}
+.claro .dijitSelectMenu .dijitMenuItemHover td,
.claro .dijitComboBoxMenu .dijitMenuItemHover {
color: #000000;
border-color: #769dc0;
background-color: #abd6ff;
- background-position: 0 0;
}
.claro .dijitComboBoxMenuActive .dijitMenuItemSelected {
- background-position:0 -177px;
background-color: @select-dropdownitem-hovered-background-color; /* TODO: why is this a different color than normal .dijitMenuItemSelected? */
}
.claro .dijitMenuPreviousButton, .claro .dijitMenuNextButton {
diff --git a/lib/dijit/themes/claro/Menu_rtl.css b/lib/dijit/themes/claro/Menu_rtl.css
index 2b96cbae7..0b1286837 100644
--- a/lib/dijit/themes/claro/Menu_rtl.css
+++ b/lib/dijit/themes/claro/Menu_rtl.css
@@ -1,8 +1 @@
-.claro .dijitMenuItemRtl .dijitMenuExpand {
- background-position: -7px 0;
- margin-right: 0;
- margin-left: 3px;
-}
-.claro .dijitMenuItemRtl .dijitMenuItemIcon {
- margin: 0 4px 0 0;
-}
+.claro .dijitMenuItemRtl .dijitMenuExpand {background-position: -7px 0; margin-right: 0; margin-left: 3px;}.claro .dijitMenuItemRtl .dijitMenuItemIcon {margin: 0 4px 0 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/ProgressBar.css b/lib/dijit/themes/claro/ProgressBar.css
index 925021f7a..047e8d963 100644
--- a/lib/dijit/themes/claro/ProgressBar.css
+++ b/lib/dijit/themes/claro/ProgressBar.css
@@ -1,63 +1 @@
-/* ProgressBar
- *
- * Styling of the ProgressBar consists of the following:
- *
- * 1. the base progress bar
- * .dijitProgressBar - sets margins for the progress bar
- *
- * 2. the empty bar
- * .dijitProgressBarEmpty - sets background img and color for bar or parts of bar that are not finished yet
- * Also sets border color for whole bar
- *
- * 3. tile mode
- * .dijitProgressBarTile
- * inner container for finished portion when in 'tile' (image) mode
- *
- * 4. full bar mode
- * .dijitProgressBarFull
- * adds border to right side of the filled portion of bar
- *
- * 5. text for label of bar
- * .dijitProgressBarLabel - sets text color, which must contrast with both the "Empty" and "Full" parts.
- *
- * 6. indeterminate mode
- * .dijitProgressBarIndeterminate .dijitProgressBarTile
- * sets animated gif for the progress bar in 'indeterminate' mode
- */
-.claro .dijitProgressBar {
- margin: 2px 0 2px 0;
-}
-.claro .dijitProgressBarEmpty {
- /* outer container and background of the bar that's not finished yet*/
-
- background: #ffffff url("images/progressBarEmpty.png") no-repeat left;
- border-color: #759dc0;
-}
-.claro .dijitProgressBarTile {
- /* inner container for finished portion when in 'tile' (image) mode */
-
- background: #abd6ff url("images/progressBarFull.png") repeat-x top;
-}
-.dj_ie6 .claro .dijitProgressBarTile {
- background-image: none;
-}
-.claro .dijitProgressBarFull {
- border-right: 1px solid #759dc0;
- -webkit-transition-property: width;
- -moz-transition-property: width;
- transition-property: width;
- -webkit-transition-duration: 0.25s;
- -moz-transition-duration: 0.25s;
- transition-duration: 0.25s;
-}
-.claro .dijitProgressBarLabel {
- /* Set to a color that contrasts with both the "Empty" and "Full" parts. */
-
- color: #000000;
-}
-.claro .dijitProgressBarIndeterminate .dijitProgressBarTile {
- /* use an animated gif for the progress bar in 'indeterminate' mode;
- background-color won't appear unless user has turned off background images */
-
- background: #efefef url("images/progressBarAnim.gif") repeat-x top;
-}
+.claro .dijitProgressBar {margin: 2px 0 2px 0;}.claro .dijitProgressBarEmpty {background-color: #ffffff; border-color: #759dc0;}.claro .dijitProgressBarTile {background-color: #abd6ff; background-image: url("images/progressBarFull.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.93) 0px, rgba(255, 255, 255, 0.41) 1px, rgba(255, 255, 255, 0.7) 2px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.93) 0px, rgba(255, 255, 255, 0.41) 1px, rgba(255, 255, 255, 0.7) 2px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.93) 0px, rgba(255, 255, 255, 0.41) 1px, rgba(255, 255, 255, 0.7) 2px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.93) 0px, rgba(255, 255, 255, 0.41) 1px, rgba(255, 255, 255, 0.7) 2px, rgba(255, 255, 255, 0) 100%); background-attachment: scroll;}.dj_ie6 .claro .dijitProgressBarTile {background-image: none;}.claro .dijitProgressBarFull {border-right: 1px solid #759dc0; -webkit-transition-property: width; -moz-transition-property: width; transition-property: width; -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s;}.claro .dijitProgressBarLabel {color: #000000;}.claro .dijitProgressBarIndeterminate .dijitProgressBarTile {background: #efefef url("images/progressBarAnim.gif") repeat-x top;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/ProgressBar.less b/lib/dijit/themes/claro/ProgressBar.less
index 8edf426a0..096618f08 100644
--- a/lib/dijit/themes/claro/ProgressBar.less
+++ b/lib/dijit/themes/claro/ProgressBar.less
@@ -32,12 +32,18 @@
}
.claro .dijitProgressBarEmpty {
/* outer container and background of the bar that's not finished yet*/
- background: @progressbar-empty-background-color url(@image-progressbar-empty) no-repeat left;
+ background-color: @progressbar-empty-background-color;
border-color: @progressbar-border-color;
}
.claro .dijitProgressBarTile {
/* inner container for finished portion when in 'tile' (image) mode */
- background: @progressbar-full-background-color url(@image-progressbar-full) repeat-x top;
+ background-color: @progressbar-full-background-color;
+
+ // gradient background using CSS gradient, with fallback to image for IE
+ background-image: url("images/progressBarFull.png");
+ background-repeat: repeat-x;
+ .alpha-white-gradient(0.93,0px, 0.41,1px, 0.7,2px, 0,100%);
+ background-attachment: scroll; // override strange "fixed" setting from dijit.css
}
.dj_ie6 .claro .dijitProgressBarTile {
background-image: none;
diff --git a/lib/dijit/themes/claro/README b/lib/dijit/themes/claro/README
index 3b4b4aa4e..0a254623f 100644
--- a/lib/dijit/themes/claro/README
+++ b/lib/dijit/themes/claro/README
@@ -1,41 +1,11 @@
These are "less" files that compile into the CSS of claro.
----------
-Installing and running on Windows:
-
-1. Install node:
- a) Go to https://github.com/ajaxorg/node-builds, press download button, and select "download zip"
- b) unzip the file into C:\
-
-2. Add node environment variables:
-
- a) open Control Panel --> click System icon --> select Advanced tab --> click Environment variables button
- b) press "edit" on path
- c) depending on what directory you unzipped to and the exact filenames, you will add something like
-
- ;C:\ajaxorg-node-builds-0fcee7d\win32
-
-4. To compile all the files:
-
- C:\> cd C:\myworkspace\dijit\themes\claro
- C:\> node compile.js
-
---------
-To install/run less version 2 on mac:
-
-1. Install Node.js
- Download a built copy from https://github.com/ajaxorg/node-builds.
- Alternately, go to http://nodejs.org/#download (./configure, make, make install).
+1. Install node from http://nodejs.org/#download
-2. Edit .bash_profile etc. to add node to your path
-
- export PATH=$PATH:/opt/less/bin
-
-To compile all the files:
+2. To compile all the files:
$ cd dijit/themes/claro
$ node compile.js
------
See http://lesscss.org/ and https://github.com/cloudhead/less.js/ for more information.
diff --git a/lib/dijit/themes/claro/TimePicker.css b/lib/dijit/themes/claro/TimePicker.css
index c8d6bb29d..f34cddc19 100644
--- a/lib/dijit/themes/claro/TimePicker.css
+++ b/lib/dijit/themes/claro/TimePicker.css
@@ -1,130 +1 @@
-/* Time Picker
- *
- * Styling the Time Picker consists of the following:
- *
- * 1. minor time values
- * .dijitTimePickerTick - set text color, size, background color of minor values
- * .dijitTimePickerTickHover - set hover style of minor time values
- * dijitTimePickerTickSelected - set selected style of minor time values
- *
- * 2. major time values - 1:00, 2:00, times on the hour
- * set text color, size, background color, left/right margins for "zoom" affect
- * .dijitTimePickerMarkerHover - to set hover style of major time values
- * .dijitTimePickerMarkerSelected - set selected style of major time values
- *
- * 3. up and down arrow buttons
- * .dijitTimePicker .dijitButtonNode - background-color, border
- * .dijitTimePicker .dijitUpArrowHover, .dijitTimePicker .dijitDownArrowHover - set background-color for hover state
- *
- * Other classes provide the fundamental structure of the TimePicker and should not be modified.
- */
-/* override Button.css */
-.claro .dijitTimePicker .dijitButtonNode {
- padding: 0 0;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-.claro .dijitTimePicker {
- border: 1px #b5bcc7 solid;
- border-top: none;
- border-bottom: none;
- background-color: #fff;
- /* TODO: useless? Appears to be overridden by settings on individual elements */
-
-}
-.claro .dijitTimePickerItem {
- /* dijitTimePickerItem refers to both Tick's (minor values like 2:15, 2:30, 2:45) and Marker's (major values like 2PM, 3PM) */
-
- background-image: url("images/commonHighlight.png");
- background-position: 0 -1px;
- background-repeat: repeat-x;
- border-top: solid 1px #b5bcc7;
- border-bottom: solid 1px #b5bcc7;
- margin-right: -1px;
- margin-left: -1px;
- margin-top: -1px;
-}
-/* to make up for lack of alpha transparency in IE6 */
-.dj_ie6 .claro .dijitTimePickerItem {
- background-image: none;
-}
-.claro .dijitTimePickerTick {
- /* minor value */
-
- color: #818181;
- background-color: #efefef;
- font-size: 0.818em;
-}
-.claro .dijitTimePickerMarker {
- /* major value - 1:00, 2:00, times on the hour */
-
- background-color: #e5f2fe;
- font-size: 1em;
- white-space: nowrap;
-}
-.claro .dijitTimePickerTickHover,
-.claro .dijitTimePickerMarkerHover,
-.claro .dijitTimePickerMarkerSelected,
-.claro .dijitTimePickerTickSelected {
- background-color: #7dbdfa;
- border: solid 1px #b5bcc7;
- margin-left: -7px;
- margin-right: -7px;
- color: #000000;
-}
-.claro .dijitTimePickerMarkerSelected, .claro .dijitTimePickerTickSelected {
- font-size: 1em;
-}
-.dj_ie .claro .dijitTimePickerTickHover,
-.dj_ie .claro .dijitTimePickerMarkerHover,
-.dj_ie .claro .dijitTimePickerMarkerSelected,
-.dj_ie .claro .dijitTimePickerTickSelected {
- width: 114%;
-}
-.dj_ie6 .claro .dijitTimePickerTickHover,
-.dj_ie6 .claro .dijitTimePickerMarkerHover,
-.dj_ie6 .claro .dijitTimePickerMarkerSelected,
-.dj_ie6 .claro .dijitTimePickerTickSelected {
- position: relative;
- /* creates widening of element */
- zoom: 1;
- /* creates widening of element */
-
-}
-.claro .dijitTimePickerTick .dijitTimePickerItemInner {
- padding: 1px;
- margin: 0;
-}
-.claro .dijitTimePicker .dijitButtonNode {
- border-left: none;
- border-right: none;
- border-color: #b5bcc7;
- background-color: #efefef;
- background-image: url("images/commonHighlight.png");
- background-position: 0 -1px;
- background-repeat: repeat-x;
-}
-.dj_ie6 .claro .dijitTimePicker .dijitButtonNode {
- background-image: none;
-}
-.claro .dijitTimePicker .dijitArrowButtonInner {
- height: 100%;
- /* hack claro.button.css */
-
- background-image: url("form/images/commonFormArrows.png");
- background-repeat: no-repeat;
- background-position: -140px 45%;
-}
-.claro .dijitTimePicker .dijitDownArrowButton .dijitArrowButtonInner {
- background-position: -35px 45%;
-}
-/* hover */
-.claro .dijitTimePicker .dijitUpArrowHover, .claro .dijitTimePicker .dijitDownArrowHover {
- background-color: #abd6ff;
-}
-.claro .dijitTimePicker .dijitUpArrowHover .dijitArrowButtonInner {
- background-position: -175px 45%;
-}
-.claro .dijitTimePicker .dijitDownArrowHover .dijitArrowButtonInner {
- background-position: -70px 45%;
-}
+.claro .dijitTimePicker .dijitButtonNode {padding: 0 0; -moz-border-radius: 0; border-radius: 0;}.claro .dijitTimePicker {border: 1px #b5bcc7 solid; border-top: none; border-bottom: none; background-color: #fff;}.claro .dijitTimePickerItem {background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; border-top: solid 1px #b5bcc7; border-bottom: solid 1px #b5bcc7; margin-right: -1px; margin-left: -1px; margin-top: -1px;}.claro .dijitTimePickerTick {color: #818181; background-color: #efefef; font-size: 0.818em;}.claro .dijitTimePickerMarker {background-color: #e5f2fe; font-size: 1em; white-space: nowrap;}.claro .dijitTimePickerTickHover,.claro .dijitTimePickerMarkerHover,.claro .dijitTimePickerMarkerSelected,.claro .dijitTimePickerTickSelected {background-color: #7dbdfa; border: solid 1px #b5bcc7; margin-left: -7px; margin-right: -7px; color: #000000;}.claro .dijitTimePickerMarkerSelected, .claro .dijitTimePickerTickSelected {font-size: 1em;}.dj_ie .claro .dijitTimePickerTickHover,.dj_ie .claro .dijitTimePickerMarkerHover,.dj_ie .claro .dijitTimePickerMarkerSelected,.dj_ie .claro .dijitTimePickerTickSelected {width: 114%;}.dj_ie6 .claro .dijitTimePickerTickHover,.dj_ie6 .claro .dijitTimePickerMarkerHover,.dj_ie6 .claro .dijitTimePickerMarkerSelected,.dj_ie6 .claro .dijitTimePickerTickSelected {position: relative; zoom: 1;}.claro .dijitTimePickerTick .dijitTimePickerItemInner {padding: 1px; margin: 0;}.claro .dijitTimePicker .dijitButtonNode {border-left: none; border-right: none; border-color: #b5bcc7; background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitTimePicker .dijitArrowButtonInner {height: 100%; background-image: url("form/images/commonFormArrows.png"); background-repeat: no-repeat; background-position: -140px 45%;}.claro .dijitTimePicker .dijitDownArrowButton .dijitArrowButtonInner {background-position: -35px 45%;}.claro .dijitTimePicker .dijitUpArrowHover, .claro .dijitTimePicker .dijitDownArrowHover {background-color: #abd6ff;}.claro .dijitTimePicker .dijitUpArrowHover .dijitArrowButtonInner {background-position: -175px 45%;}.claro .dijitTimePicker .dijitDownArrowHover .dijitArrowButtonInner {background-position: -70px 45%;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/TimePicker.less b/lib/dijit/themes/claro/TimePicker.less
index a6253f7dd..0f3bf9c1a 100644
--- a/lib/dijit/themes/claro/TimePicker.less
+++ b/lib/dijit/themes/claro/TimePicker.less
@@ -34,19 +34,13 @@
}
.claro .dijitTimePickerItem{
/* dijitTimePickerItem refers to both Tick's (minor values like 2:15, 2:30, 2:45) and Marker's (major values like 2PM, 3PM) */
- background-image: url(@image-common-highlight);
- background-position:0 -1px;
- background-repeat:repeat-x;
+ .standard-gradient;
border-top:solid 1px @border-color;
border-bottom:solid 1px @border-color;
margin-right:-1px;
margin-left:-1px;
margin-top:-1px;
}
-/* to make up for lack of alpha transparency in IE6 */
-.dj_ie6 .claro .dijitTimePickerItem {
- background-image: none;
-}
.claro .dijitTimePickerTick {
/* minor value */
color:@timepicker-minorvalue-text-color;
@@ -95,12 +89,7 @@
border-right:none;
border-color:@border-color;
background-color: @unselected-background-color;
- background-image: url(@image-common-highlight);
- background-position:0 -1px;
- background-repeat:repeat-x;
-}
-.dj_ie6 .claro .dijitTimePicker .dijitButtonNode {
- background-image: none;
+ .standard-gradient;
}
.claro .dijitTimePicker .dijitArrowButtonInner{
height: 100%; /* hack claro.button.css */
@@ -122,3 +111,5 @@
.claro .dijitTimePicker .dijitDownArrowHover .dijitArrowButtonInner {
background-position:-70px 45%;
}
+
+// TODO: should have active rule, for clicking a .dijitTimePickerItem \ No newline at end of file
diff --git a/lib/dijit/themes/claro/TimePicker_rtl.css b/lib/dijit/themes/claro/TimePicker_rtl.css
index 6dfcf839e..a584752ec 100644
--- a/lib/dijit/themes/claro/TimePicker_rtl.css
+++ b/lib/dijit/themes/claro/TimePicker_rtl.css
@@ -1,9 +1 @@
-/* TimePicker */
-.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickHover,
-.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerHover,
-.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerSelected,
-.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickSelected {
- margin-left: -6px;
- margin-right: -8px;
- width: 114%;
-}
+.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickHover,.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerHover,.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerSelected,.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickSelected {margin-left: -6px; margin-right: -8px; width: 114%;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/TitlePane.css b/lib/dijit/themes/claro/TitlePane.css
index 141561506..0efb01c64 100644
--- a/lib/dijit/themes/claro/TitlePane.css
+++ b/lib/dijit/themes/claro/TitlePane.css
@@ -1,71 +1 @@
-/* TitlePane
- *
- * Styling TitlePane means styling the TitlePane title and its content container (dijitTitlePane)
- *
- * TitlePane title:
- * 1. TitlePane title (default styling):
- * .dijitTitlePaneTitle - TitlePane's title div style: background-color, border
- *
- * 2. hovered TitlePane title (ie, mouse hover on a title bar)
- * .dijitTitlePaneTitleHover - styles when mouse hover on the title div
- *
- * 3. active TitlePane title (ie, mouse down on a title bar)
- * .dijitTitlePaneTitleActive - styles when mouse down on the title div
- *
- *
- * TitlePane Content Container:
- * 1. outer/inner container:
- * .dijitTitlePaneContentOuter / dijitTitlePaneContentInner - styles for the content outer div
- */
-.claro .dijitTitlePaneTitle {
- background-color: #efefef;
- background-image: url("images/titlebar.png");
- background-repeat: repeat-x;
- border: 1px solid #b5bcc7;
- padding: 0 7px 3px 7px;
- min-height: 17px;
-}
-.dj_ie6 .claro .dijitTitlePaneTitle {
- background-image: none;
-}
-.claro .dijitTitlePaneTitleHover {
- background-color: #abd6ff;
- border-color: #759dc0;
-}
-.claro .dijitTitlePaneTitleActive {
- background-color: #7dbdfa;
- border-color: #759dc0;
- background-position: 0 -136px;
-}
-.claro .dijitTitlePaneTitleFocus {
- margin-top: 3px;
- padding-bottom: 2px;
-}
-.claro .dijitTitlePane .dijitArrowNode {
- background-image: url("images/spriteArrows.png");
- background-repeat: no-repeat;
- height: 8px;
- width: 7px;
-}
-.claro .dijitTitlePane .dijitOpen .dijitArrowNode {
- background-position: 0 0;
-}
-.claro .dijitTitlePane .dijitClosed .dijitArrowNode {
- background-position: -14px 0;
-}
-.claro .dijitTitlePane .dijitTitlePaneTextNode {
- color: #000000;
-}
-.claro .dijitTitlePaneContentOuter {
- background: #ffffff;
- border: 1px solid #b5bcc7;
- border-top: none;
-}
-.claro .dijitTitlePaneContentInner {
- padding: 10px;
-}
-.claro .dijitTitlePaneTextNode {
- margin-left: 4px;
- margin-right: 4px;
- vertical-align: text-top;
-}
+.claro .dijitTitlePaneTitle {background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; border: 1px solid #b5bcc7; padding: 0 7px 3px 7px; min-height: 17px;}.claro .dijitTitlePaneTitleHover {background-color: #abd6ff; border-color: #759dc0;}.claro .dijitTitlePaneTitleActive {background-color: #7dbdfa; border-color: #759dc0; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitTitlePaneTitleFocus {margin-top: 3px; padding-bottom: 2px;}.claro .dijitTitlePane .dijitArrowNode {background-image: url("images/spriteArrows.png"); background-repeat: no-repeat; height: 8px; width: 7px;}.claro .dijitTitlePane .dijitOpen .dijitArrowNode {background-position: 0 0;}.claro .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: -14px 0;}.claro .dijitTitlePane .dijitTitlePaneTextNode {color: #000000;}.claro .dijitTitlePaneContentOuter {background: #ffffff; border: 1px solid #b5bcc7; border-top: none;}.claro .dijitTitlePaneContentInner {padding: 10px;}.claro .dijitTitlePaneTextNode {margin-left: 4px; margin-right: 4px; vertical-align: text-top;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/TitlePane.less b/lib/dijit/themes/claro/TitlePane.less
index 89da9f3d9..d899453d6 100644
--- a/lib/dijit/themes/claro/TitlePane.less
+++ b/lib/dijit/themes/claro/TitlePane.less
@@ -22,15 +22,11 @@
.claro .dijitTitlePaneTitle {
background-color: @unselected-background-color; // TODO: Mailed Jason, shouldn't this toggle to @selected-background-color when pane opened?
- background-image: url(@image-titlebar);
- background-repeat:repeat-x;
+ .standard-gradient;
border:1px solid @border-color;
padding: 0 7px 3px 7px;
min-height:17px;
}
-.dj_ie6 .claro .dijitTitlePaneTitle {
- background-image: none;
-}
.claro .dijitTitlePaneTitleHover {
background-color: @hovered-background-color;
border-color: @hovered-border-color;
@@ -38,7 +34,7 @@
.claro .dijitTitlePaneTitleActive {
background-color: @pressed-background-color;
border-color: @pressed-border-color;
- background-position:0 -136px;
+ .active-gradient;
}
.claro .dijitTitlePaneTitleFocus {
margin-top:3px;
diff --git a/lib/dijit/themes/claro/TitlePane_rtl.css b/lib/dijit/themes/claro/TitlePane_rtl.css
index 3f68ab30e..b349d9c65 100644
--- a/lib/dijit/themes/claro/TitlePane_rtl.css
+++ b/lib/dijit/themes/claro/TitlePane_rtl.css
@@ -1,4 +1 @@
-/* TitlePane */
-.claro .dijitTitlePaneRtl .dijitClosed .dijitArrowNode {
- background-position: -7px 0;
-}
+.claro .dijitTitlePaneRtl .dijitClosed .dijitArrowNode {background-position: -7px 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Toolbar.css b/lib/dijit/themes/claro/Toolbar.css
index 18c605c66..fa80e190d 100644
--- a/lib/dijit/themes/claro/Toolbar.css
+++ b/lib/dijit/themes/claro/Toolbar.css
@@ -1,189 +1 @@
-/* Toolbar
- *
- * Styling Toolbar means styling the toolbar container and the widget inside toolbar (dijitToolbar)
- *
- * 1. toolbar (default styling):
- * .dijitToolbar - styles for outer container
- *
- * 2. widget inside toolbar
- * .dijitToolbar .dijitButtonNode - Button widget
- * .dijitComboButton - ComboButton widget
- * .dijitDropDownButton - DropDownButton widget
- * .dijitToggleButton - ToggleButton widget
- *
- * 3. hovered widget inside toolbar (ie, mouse hover on the widget inside)
- * .dijitToolbar .dijitButtonNodeHover - styles for hovered Button widget
- *
- * 4. actived widget inside toolbar (ie, mouse down on the widget inside)
- * .dijitToolbar .dijitButtonNodeActive - mouse down on Button widget
- */
-.claro .dijitToolbar {
- border-bottom: 1px solid #b5bcc7;
- background-color: #efefef;
- background-image: url("images/commonHighlight.png");
- background-position: 0 0;
- background-repeat: repeat-x;
- padding: 2px 0 2px 4px;
- zoom: 1;
-}
-.claro .dijitToolbar label {
- padding: 0 3px 0 6px;
-}
-/** override claro/form/Button.css, and also ComboBox down arrow **/
-.claro .dijitToolbar .dijitButton .dijitButtonNode,
-.claro .dijitToolbar .dijitDropDownButton .dijitButtonNode,
-.claro .dijitToolbar .dijitComboButton .dijitButtonNode,
-.claro .dijitToolbar .dijitToggleButton .dijitButtonNode,
-.claro .dijitToolbar .dijitComboBox .dijitButtonNode {
- border-width: 0;
- /* on hover/active, border-->1px, padding-->1px */
-
- padding: 2px;
- -moz-border-radius: 2px;
- border-radius: 2px;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
- -webkit-transition-property: background-color;
- -moz-transition-property: background-color;
- transition-property: background-color;
- -webkit-transition-duration: 0.3s, 0.35s;
- -moz-transition-duration: 0.3s, 0.35s;
- transition-duration: 0.3s, 0.35s;
- background-image: url("images/commonHighlight.png");
- background-position: 0 -30px;
- background-repeat: repeat-x;
- background-color: rgba(171, 214, 255, 0);
-}
-.dj_ie .claro .dijitToolbar .dijitButton .dijitButtonNode,
-.dj_ie .claro .dijitToolbar .dijitDropDownButton .dijitButtonNode,
-.dj_ie .claro .dijitToolbar .dijitComboButton .dijitButtonNode,
-.dj_ie .claro .dijitToolbar .dijitToggleButton .dijitButtonNode,
-.dj_ie .claro .dijitToolbar .dijitComboBox .dijitButtonNode {
- background-color: transparent;
- /* for IE, which doesn't understand rgba(...) */
-
-}
-.dj_ie6 .claro .dijitToolbar .dijitButton .dijitButtonNode,
-.dj_ie6 .claro .dijitToolbar .dijitDropDownButton .dijitButtonNode,
-.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitButtonNode,
-.dj_ie6 .claro .dijitToolbar .dijitToggleButton .dijitButtonNode,
-.dj_ie6 .claro .dijitToolbar .dijitComboBox .dijitButtonNode {
- background: none;
- /* because background-color: transparent above doesn't work on IE*/
-
-}
-/* hover status */
-.dj_ie .claro .dijitToolbar .dijitButtonHover .dijitButtonNode,
-.dj_ie .claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode,
-.dj_ie .claro .dijitToolbar .dijitComboButton .dijitButtonNodeHover,
-.dj_ie .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover,
-.dj_ie .claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode {
- /* button should still turn blue on hover, so need to override .dj_ie rules above */
-
- background-color: #abd6ff;
-}
-/* active status */
-.dj_ie .claro .dijitToolbar .dijitButtonActive .dijitButtonNode,
-.dj_ie .claro .dijitToolbar .dijitDropDownButtonActive .dijitButtonNode,
-.dj_ie .claro .dijitToolbar .dijitComboButtonActive .dijitButtonNode,
-.dj_ie .claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode {
- /* button should still turn blue on press, so need to override .dj_ie rules above */
-
- background-color: #abd6ff;
-}
-.claro .dijitToolbar .dijitComboButton .dijitStretch {
- /* no rounded border on side adjacent to arrow */
-
- -moz-border-radius: 2px 0 0 2px;
- border-radius: 2px 0 0 2px;
-}
-.claro .dijitToolbar .dijitComboButton .dijitArrowButton {
- /* no rounded border on side adjacent to button */
-
- -moz-border-radius: 0 2px 2px 0;
- border-radius: 0 2px 2px 0;
-}
-.claro .dijitToolbar .dijitComboBox .dijitButtonNode {
- padding: 0;
-}
-/* hover status */
-.claro .dijitToolbar .dijitButtonHover .dijitButtonNode,
-.claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode,
-.claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode,
-.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNode {
- background-position: 0 0;
- border-width: 1px;
- background-color: #abd6ff;
- padding: 1px;
-}
-.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNode, .claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton {
- background-position: 0 0;
- background-color: #f3ffff;
-}
-.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNodeHover, .claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButtonHover {
- background-color: #abd6ff;
-}
-/* active status */
-.claro .dijitToolbar .dijitButtonActive .dijitButtonNode, .claro .dijitToolbar .dijitDropDownButtonActive .dijitButtonNode, .claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode {
- border-width: 1px;
- background-color: #7dbdfa;
- background-position: 0 -177px;
- padding: 1px;
-}
-.claro .dijitToolbar .dijitComboButtonActive {
- -webkit-transition-duration: 0.2s;
- -moz-transition-duration: 0.2s;
- transition-duration: 0.2s;
- border-width: 1px;
- padding: 0;
-}
-.claro .dijitToolbar .dijitComboButtonActive .dijitButtonNode, .claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButton {
- background-color: #f3ffff;
- background-position: 0 -177px;
- padding: 2px;
-}
-.claro .dijitToolbar .dijitComboButtonActive .dijitButtonNodeActive {
- background-color: #7dbdfa;
-}
-.claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButtonActive {
- background-color: #7dbdfa;
-}
-/* Avoid double border between button and arrow */
-.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton, .claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButton {
- border-left-width: 0;
-}
-.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton {
- padding-left: 2px;
- /* since there's no left border, don't reduce from 2px --> 1px */
-
-}
-/* toggle button checked status */
-.claro .dijitToolbar .dijitToggleButtonChecked .dijitButtonNode {
- margin: 0;
- /* remove margin and add a border */
-
- border-width: 1px;
- border-style: solid;
- background-image: none;
- border-color: #759dc0;
- background-color: #ffffff;
- padding: 1px;
-}
-.dj_ie6 .claro .dijitToolbar {
- background-image: none;
-}
-.claro .dijitToolbarSeparator {
- /* separator icon in the editor sprite */
-
- background: url("../../icons/images/editorIconsEnabled.png");
-}
-/* Toolbar inside of disabled Editor */
-.claro .dijitDisabled .dijitToolbar {
- background: none;
- background-color: #efefef;
- border-bottom: 1px solid #d3d3d3;
-}
-.claro .dijitToolbar .dijitComboBoxDisabled .dijitArrowButtonInner {
- background-position: 0 50%;
-}
+.claro .dijitToolbar {border-bottom: 1px solid #b5bcc7; background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 2px 0 2px 4px; zoom: 1;}.claro .dijitToolbar label {padding: 0 3px 0 6px;}.claro .dijitToolbar .dijitButton .dijitButtonNode,.claro .dijitToolbar .dijitDropDownButton .dijitButtonNode,.claro .dijitToolbar .dijitComboButton .dijitButtonNode,.claro .dijitToolbar .dijitToggleButton .dijitButtonNode,.claro .dijitToolbar .dijitComboBox .dijitButtonNode {border-width: 0; padding: 2px; -moz-border-radius: 2px; border-radius: 2px; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; -webkit-transition-property: background-color; -moz-transition-property: background-color; transition-property: background-color; -webkit-transition-duration: 0.3s; -moz-transition-duration: 0.3s; transition-duration: 0.3s; background-color: rgba(171, 214, 255, 0); background-image: none;}.dj_ie .claro .dijitToolbar .dijitButton .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitDropDownButton .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitComboButton .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitToggleButton .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitComboBox .dijitButtonNode {background-color: transparent;}.dj_ie .claro .dijitToolbar .dijitButtonHover .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitComboButton .dijitButtonNodeHover,.dj_ie .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover,.dj_ie .claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode {background-color: #abd6ff;}.dj_ie .claro .dijitToolbar .dijitButtonActive .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitDropDownButtonActive .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitComboButtonActive .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode {background-color: #abd6ff;}.claro .dijitToolbar .dijitComboButton .dijitStretch {-moz-border-radius: 2px 0 0 2px; border-radius: 2px 0 0 2px;}.claro .dijitToolbar .dijitComboButton .dijitArrowButton {-moz-border-radius: 0 2px 2px 0; border-radius: 0 2px 2px 0;}.claro .dijitToolbar .dijitComboBox .dijitButtonNode {padding: 0;}.claro .dijitToolbar .dijitButtonHover .dijitButtonNode,.claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode,.claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode,.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNode {border-width: 1px; background-color: #abd6ff; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 1px;}.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNode, .claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton {background-color: #f3ffff;}.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNodeHover, .claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButtonHover {background-color: #abd6ff;}.claro .dijitToolbar .dijitButtonActive .dijitButtonNode, .claro .dijitToolbar .dijitDropDownButtonActive .dijitButtonNode, .claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode {border-width: 1px; background-color: #7dbdfa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 1px;}.claro .dijitToolbar .dijitComboButtonActive {-webkit-transition-duration: 0.2s; -moz-transition-duration: 0.2s; transition-duration: 0.2s; border-width: 1px; padding: 0;}.claro .dijitToolbar .dijitComboButtonActive .dijitButtonNode, .claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButton {background-color: #f3ffff; padding: 2px;}.claro .dijitToolbar .dijitComboButtonActive .dijitButtonNodeActive {background-color: #7dbdfa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButtonActive {background-color: #7dbdfa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton, .claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButton {border-left-width: 0;}.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton {padding-left: 2px;}.claro .dijitToolbar .dijitToggleButtonChecked .dijitButtonNode {margin: 0; border-width: 1px; border-style: solid; background-image: none; border-color: #759dc0; background-color: #ffffff; padding: 1px;}.claro .dijitToolbarSeparator {background: url("../../icons/images/editorIconsEnabled.png");}.claro .dijitDisabled .dijitToolbar {background: none; background-color: #efefef; border-bottom: 1px solid #d3d3d3;}.claro .dijitToolbar .dijitComboBoxDisabled .dijitArrowButtonInner {background-position: 0 50%;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Toolbar.less b/lib/dijit/themes/claro/Toolbar.less
index b61e8191a..90b9009e2 100644
--- a/lib/dijit/themes/claro/Toolbar.less
+++ b/lib/dijit/themes/claro/Toolbar.less
@@ -23,9 +23,7 @@
.claro .dijitToolbar {
border-bottom: 1px solid @border-color;
background-color: @bar-background-color;
- background-image: url(@image-common-highlight);
- background-position:0 0;
- background-repeat:repeat-x;
+ .standard-gradient;
padding: 2px 0 2px 4px;
zoom: 1;
}
@@ -45,12 +43,10 @@
.border-radius(@toolbar-button-border-radius);
.box-shadow(none);
.transition-property(background-color);
- .transition-duration(.3s, .35s);
+ .transition-duration(.3s);
- background-image: url(@image-common-highlight);
- background-position:0 -30px;
- background-repeat:repeat-x;
background-color:rgba(171,214,255,0);
+ background-image: none; /* cancel gradient for normal buttons, we don't want any gradient besides toolbar's on non-hovered buttons */
}
.dj_ie .claro .dijitToolbar .dijitButton .dijitButtonNode,
.dj_ie .claro .dijitToolbar .dijitDropDownButton .dijitButtonNode,
@@ -59,13 +55,7 @@
.dj_ie .claro .dijitToolbar .dijitComboBox .dijitButtonNode {
background-color: transparent; /* for IE, which doesn't understand rgba(...) */
}
-.dj_ie6 .claro .dijitToolbar .dijitButton .dijitButtonNode,
-.dj_ie6 .claro .dijitToolbar .dijitDropDownButton .dijitButtonNode,
-.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitButtonNode,
-.dj_ie6 .claro .dijitToolbar .dijitToggleButton .dijitButtonNode,
-.dj_ie6 .claro .dijitToolbar .dijitComboBox .dijitButtonNode {
- background: none; /* because background-color: transparent above doesn't work on IE*/
-}
+
/* hover status */
.dj_ie .claro .dijitToolbar .dijitButtonHover .dijitButtonNode,
.dj_ie .claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode,
@@ -103,14 +93,13 @@
.claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode,
.claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode,
.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNode {
- background-position:0 0;
border-width:1px;
background-color: @hovered-background-color;
+ .standard-gradient;
padding: 1px;
}
.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNode,
.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton {
- background-position:0 0;
background-color: @toolbar-combobutton-hovered-unhoveredsection-background-color;
}
.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNodeHover,
@@ -124,7 +113,7 @@
.claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode {
border-width: 1px;
background-color:@pressed-background-color;
- background-position:0 -177px;
+ .active-gradient;
padding: 1px;
}
.claro .dijitToolbar .dijitComboButtonActive {
@@ -135,14 +124,15 @@
.claro .dijitToolbar .dijitComboButtonActive .dijitButtonNode,
.claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButton {
background-color: @toolbar-combobutton-hovered-unhoveredsection-background-color;
- background-position:0 -177px;
padding: 2px;
}
.claro .dijitToolbar .dijitComboButtonActive .dijitButtonNodeActive {
background-color: @pressed-background-color;
+ .active-gradient;
}
.claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButtonActive {
background-color: @pressed-background-color;
+ .active-gradient;
}
/* Avoid double border between button and arrow */
@@ -165,10 +155,6 @@
padding: 1px;
}
-.dj_ie6 .claro .dijitToolbar {
- background-image: none;
-}
-
.claro .dijitToolbarSeparator {
/* separator icon in the editor sprite */
background: url(@image-editor-icons-enabled);
diff --git a/lib/dijit/themes/claro/Toolbar_rtl.css b/lib/dijit/themes/claro/Toolbar_rtl.css
index 2fab1de32..86da1e2e7 100644
--- a/lib/dijit/themes/claro/Toolbar_rtl.css
+++ b/lib/dijit/themes/claro/Toolbar_rtl.css
@@ -1,30 +1 @@
-/* Toolbar RTL */
-/* Repeated rules from Toolbar.css to override rule from Button_rtl.css, which is loaded after Toolbar.css */
-.claro .dijitToolbar .dijitComboButtonRtl .dijitButtonNode {
- border-width: 0;
- padding: 2px;
-}
-.claro .dijitToolbar .dijitComboButtonRtlHover .dijitButtonNode, .claro .dijitToolbar .dijitComboButtonRtlActive .dijitButtonNode {
- border-width: 1px;
- padding: 1px;
-}
-.claro .dijitToolbar .dijitComboButtonRtl .dijitStretch {
- /* no rounded border on side adjacent to arrow */
-
- -moz-border-radius: 0 2px 2px 0;
- border-radius: 0 2px 2px 0;
-}
-.claro .dijitToolbar .dijitComboButtonRtl .dijitArrowButton {
- /* no rounded border on side adjacent to button */
-
- -moz-border-radius: 2px 0 0 2px;
- border-radius: 2px 0 0 2px;
-}
-.claro .dijitToolbar .dijitComboButtonRtlHover .dijitArrowButton, .claro .dijitToolbar .dijitComboButtonRtlActive .dijitArrowButton {
- /* border between button and arrow */
-
- border-left-width: 1px;
- border-right-width: 0;
- padding-left: 1px;
- padding-right: 2px;
-}
+.claro .dijitToolbar .dijitComboButtonRtl .dijitButtonNode {border-width: 0; padding: 2px;}.claro .dijitToolbar .dijitComboButtonRtlHover .dijitButtonNode, .claro .dijitToolbar .dijitComboButtonRtlActive .dijitButtonNode {border-width: 1px; padding: 1px;}.claro .dijitToolbar .dijitComboButtonRtl .dijitStretch {-moz-border-radius: 0 2px 2px 0; border-radius: 0 2px 2px 0;}.claro .dijitToolbar .dijitComboButtonRtl .dijitArrowButton {-moz-border-radius: 2px 0 0 2px; border-radius: 2px 0 0 2px;}.claro .dijitToolbar .dijitComboButtonRtlHover .dijitArrowButton, .claro .dijitToolbar .dijitComboButtonRtlActive .dijitArrowButton {border-left-width: 1px; border-right-width: 0; padding-left: 1px; padding-right: 2px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Tree.css b/lib/dijit/themes/claro/Tree.css
index 738bb3313..d2eef8838 100644
--- a/lib/dijit/themes/claro/Tree.css
+++ b/lib/dijit/themes/claro/Tree.css
@@ -1,134 +1 @@
-/* Tree
- *
- * Styling Tree mostly means styling the TreeRow (dijitTreeRow)
- * There are 4 basic states to style:
- *
- * Tree Row:
- * 1. tree row (default styling):
- * .dijitTreeRow - styles for each row of the tree
- *
- * 2. hovered tree row (mouse hover on a tree row)
- * .dijitTreeRowHover - styles when mouse over on one row
- *
- * 3. active tree row (mouse down on a tree row)
- * .dijitTreeRowActive - styles when mouse down on one row
- *
- * 4. selected tree row
- * dijitTreeRowSelected - style when the row has been selected
- *
- * Tree Expando:
- * dijitTreeExpando - the expando at the left of the text of each tree row
- *
- * Drag and Drop on TreeNodes: (insert line on dijitTreeContent node so it'll aligned w/ target element)
- * .dijitTreeNode .dojoDndItemBefore/.dojoDndItemAfter - use border style simulate a separate line
- */
-.claro .dijitTreeNode {
- zoom: 1;
- /* force layout on IE (TODO: may not be needed anymore) */
-
-}
-.claro .dijitTreeIsRoot {
- background-image: none;
-}
-/* Styling for basic tree node (unhovered, unselected)
- * Also use this styling when dropping between items on the tree (in other words, don't
- * use hover effect)
- */
-.claro .dijitTreeRow, .claro .dijitTreeNode .dojoDndItemBefore, .claro .dijitTreeNode .dojoDndItemAfter {
- /* so insert line shows up on IE when dropping after a target element */
-
- padding: 4px 1px 2px 0;
- margin: 0 1px;
- /* replaced by border for selected/hovered row */
-
- background-color: none;
- background-color: transparent;
- background-color: rgba(171, 214, 255, 0);
- background-position: 0 0;
- background-repeat: repeat-x;
- border-color: rgba(118, 157, 192, 0);
- border-width: 0;
- color: #000000;
- -webkit-transition-property: background-color, border-color;
- -moz-transition-property: background-color, border-color;
- transition-property: background-color, border-color;
- -webkit-transition-duration: 0.25s;
- -moz-transition-duration: 0.25s;
- transition-duration: 0.25s;
- -webkit-transition-timing-function: ease-out;
- -moz-transition-timing-function: ease-out;
- transition-timing-function: ease-out;
-}
-.claro .dijitTreeRowSelected {
- background-repeat: repeat-x;
- background-color: #cfe5fa;
- background-image: url("images/commonHighlight.png");
- padding: 3px 0 1px;
- margin: 0;
- border: solid 1px #759dc0;
- color: #000000;
-}
-.claro .dijitTreeRowHover {
- background-color: #abd6ff;
- background-image: url("images/commonHighlight.png");
- padding: 3px 0 1px;
- margin: 0;
- border: solid 1px #759dc0;
- color: #000000;
- -webkit-transition-duration: 0.25s;
- -moz-transition-duration: 0.25s;
- transition-duration: 0.25s;
-}
-.claro .dijitTreeRowActive {
- background-color: #7dbdfa;
- background-image: url("images/commonHighlight.png");
- background-position: 0 -177px;
- padding: 3px 0 1px;
- margin-left: 0;
- border: solid 1px #759dc0;
- color: #000000;
-}
-.dj_ie6 .claro .dijitTreeRow {
- background-image: none;
-}
-.claro .dijitTreeRowFocused {
- background-repeat: repeat;
-}
-/* expando (open/closed) icon */
-.claro .dijitTreeExpando {
- background-image: url("images/treeExpandImages.png");
- width: 16px;
- height: 16px;
- background-position: -35px 0;
- /* for dijitTreeExpandoOpened */
-
-}
-.dj_ie6 .claro .dijitTreeExpando {
- background-image: url("images/treeExpandImages8bit.png");
-}
-.claro .dijitTreeRowHover .dijitTreeExpandoOpened {
- background-position: -53px 0;
-}
-.claro .dijitTreeExpandoClosed {
- background-position: 1px 0;
-}
-.claro .dijitTreeRowHover .dijitTreeExpandoClosed {
- background-position: -17px 0;
-}
-.claro .dijitTreeExpandoLeaf, .dj_ie6 .claro .dijitTreeExpandoLeaf {
- background-image: none;
-}
-.claro .dijitTreeExpandoLoading {
- background-image: url("images/loadingAnimation.gif");
-}
-/* Drag and Drop on TreeNodes
- * Put insert line on dijitTreeContent node so it's aligned w/
- * (ie, indented equally with) target element, even
- * though dijitTreeRowNode is the actual "drag object"
- */
-.claro .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {
- border-top: 2px solid #759dc0;
-}
-.claro .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {
- border-bottom: 2px solid #759dc0;
-}
+.claro .dijitTreeNode {zoom: 1;}.claro .dijitTreeIsRoot {background-image: none;}.claro .dijitTreeRow, .claro .dijitTreeNode .dojoDndItemBefore, .claro .dijitTreeNode .dojoDndItemAfter {padding: 4px 0 2px 0; background-color: none; background-color: transparent; background-color: rgba(171, 214, 255, 0); background-position: 0 0; background-repeat: repeat-x; border: solid 0 transparent; color: #000000; -webkit-transition-property: background-color, border-color; -moz-transition-property: background-color, border-color; transition-property: background-color, border-color; -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s; -webkit-transition-timing-function: ease-out; -moz-transition-timing-function: ease-out; transition-timing-function: ease-out;}.claro .dijitTreeRowSelected {background-color: #cfe5fa; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 3px 0 1px; border-color: #759dc0; border-width: 1px 0; color: #000000;}.claro .dijitTreeRowHover {background-color: #abd6ff; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 3px 0 1px; border-color: #759dc0; border-width: 1px 0; color: #000000; -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s;}.claro .dijitTreeRowActive {background-color: #7dbdfa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 3px 0 1px; border-color: #759dc0; border-width: 1px 0; color: #000000;}.claro .dijitTreeRowFocused {background-repeat: repeat;}.claro .dijitTreeExpando {background-image: url("images/treeExpandImages.png"); width: 16px; height: 16px; background-position: -35px 0;}.dj_ie6 .claro .dijitTreeExpando {background-image: url("images/treeExpandImages8bit.png");}.claro .dijitTreeRowHover .dijitTreeExpandoOpened {background-position: -53px 0;}.claro .dijitTreeExpandoClosed {background-position: 1px 0;}.claro .dijitTreeRowHover .dijitTreeExpandoClosed {background-position: -17px 0;}.claro .dijitTreeExpandoLeaf, .dj_ie6 .claro .dijitTreeExpandoLeaf {background-image: none;}.claro .dijitTreeExpandoLoading {background-image: url("images/loadingAnimation.gif");}.claro .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {border-top: 2px solid #759dc0;}.claro .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {border-bottom: 2px solid #759dc0;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/Tree.less b/lib/dijit/themes/claro/Tree.less
index ff6cd5a14..1b027769b 100644
--- a/lib/dijit/themes/claro/Tree.less
+++ b/lib/dijit/themes/claro/Tree.less
@@ -40,8 +40,7 @@
.claro .dijitTreeNode .dojoDndItemBefore,
.claro .dijitTreeNode .dojoDndItemAfter {
/* so insert line shows up on IE when dropping after a target element */
- padding: 4px 1px 2px 0;
- margin: 0 1px; /* replaced by border for selected/hovered row */
+ padding: 4px 0 2px 0;
background-color: none; // IE6 doesn't understand rgba() or transparent below
background-color: transparent; // IE8 doesn't understand rgba() below
@@ -49,8 +48,7 @@
background-position:0 0;
background-repeat:repeat-x;
- border-color: rgba(118,157,192,0); // rgba() instead of none to prevent flash on hover fade-in
- border-width: 0;
+ border: solid 0 transparent;
color: @text-color;
@@ -60,34 +58,29 @@
}
.claro .dijitTreeRowSelected {
- background-repeat:repeat-x;
- background-color:@selected-background-color;
- background-image: url(@image-common-highlight);
+ background-color: @selected-background-color;
+ .standard-gradient;
padding: 3px 0 1px;
- margin: 0;
- border:solid 1px @selected-border-color;
- color:@selected-text-color;
+ border-color: @selected-border-color;
+ border-width: 1px 0;
+ color: @selected-text-color;
}
.claro .dijitTreeRowHover {
- background-color:@hovered-background-color;
- background-image: url(@image-common-highlight);
+ background-color: @hovered-background-color;
+ .standard-gradient;
padding: 3px 0 1px;
- margin: 0;
- border:solid 1px @hovered-border-color;
- color:@hovered-text-color;
+ border-color: @hovered-border-color;
+ border-width: 1px 0;
+ color: @hovered-text-color;
.transition-duration(.25s);
}
.claro .dijitTreeRowActive {
background-color:@pressed-background-color;
- background-image: url(@image-common-highlight);
- background-position:0 -177px;
+ .active-gradient;
padding: 3px 0 1px;
- margin-left: 0;
- border:solid 1px @pressed-border-color;
- color:@selected-text-color;
-}
-.dj_ie6 .claro .dijitTreeRow {
- background-image: none;
+ border-color: @pressed-border-color;
+ border-width: 1px 0;
+ color: @selected-text-color;
}
.claro .dijitTreeRowFocused {
background-repeat: repeat;
diff --git a/lib/dijit/themes/claro/claro.css b/lib/dijit/themes/claro/claro.css
index d3cb2688c..fcbb929d8 100644
--- a/lib/dijit/themes/claro/claro.css
+++ b/lib/dijit/themes/claro/claro.css
@@ -1,28 +1 @@
-@import url("../dijit.css");
-@import url("../../icons/commonIcons.css");/*sprite containing common icons to be used by all themes*/
-@import url("Common.css");
-@import url("form/Common.css");
-@import url("form/Button.css");
-@import url("form/Checkbox.css");
-@import url("form/RadioButton.css");
-@import url("form/Select.css");
-@import url("layout/TabContainer.css");
-@import url("Dialog.css");
-@import url("layout/AccordionContainer.css");
-@import url("layout/ContentPane.css");
-@import url("Calendar.css");
-@import url("Menu.css");
-@import url("form/Slider.css");
-@import url("ColorPalette.css");
-@import url("InlineEditBox.css");
-@import url("ProgressBar.css");
-@import url("TimePicker.css");
-@import url("layout/BorderContainer.css");
-@import url("Tree.css");
-@import url("Toolbar.css");
-@import url("Editor.css");/*in order to test button or menu item with icon */
-@import url("../../icons/editorIcons.css"); /*sprite for editor icons to be used by all themes*/
-@import url("TitlePane.css");
-@import url("form/NumberSpinner.css");
-
-@import url("claro_rtl.css");
+.dijitReset {margin:0; border:0; padding:0; font: inherit; line-height:normal; color: inherit;}.dj_a11y .dijitReset {-moz-appearance: none;}.dijitInline {display:inline-block; #zoom: 1; #display:inline; border:0; padding:0; vertical-align:middle; #vertical-align: auto;}table.dijitInline {display:inline-table; box-sizing: content-box; -moz-box-sizing: content-box;}.dijitHidden {display: none !important;}.dijitVisible {display: block !important; position: relative;}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer {#zoom: 1; overflow: hidden; float: none !important; position: relative;}.dj_ie7 .dijitInputContainer {float: left !important; clear: left; display: inline-block !important;}.dj_ie .dijitSelect input,.dj_ie input.dijitTextBox,.dj_ie .dijitTextBox input {font-size: 100%;}.dijitSelect .dijitButtonText {float: left; vertical-align: top;}TABLE.dijitSelect {padding: 0 !important;}.dijitTextBox .dijitSpinnerButtonContainer,.dijitTextBox .dijitArrowButtonContainer,.dijitValidationTextBox .dijitValidationContainer {float: right; text-align: center;}.dijitSelect input.dijitInputField,.dijitTextBox input.dijitInputField {padding-left: 0 !important; padding-right: 0 !important;}.dijitValidationTextBox .dijitValidationContainer {display: none;}.dijitTeeny {font-size:1px; line-height:1px;}.dijitOffScreen {position: absolute !important; left: 50% !important; top: -10000px !important;}.dijitPopup {position: absolute; background-color: transparent; margin: 0; border: 0; padding: 0;}.dijitPositionOnly {padding: 0 !important; border: 0 !important; background-color: transparent !important; background-image: none !important; height: auto !important; width: auto !important;}.dijitNonPositionOnly {float: none !important; position: static !important; margin: 0 0 0 0 !important; vertical-align: middle !important;}.dijitBackgroundIframe {position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: -1; border: 0; padding: 0; margin: 0;}.dijitDisplayNone {display:none !important;}.dijitContainer {overflow: hidden;}.dj_a11y .dijitIcon,.dj_a11y div.dijitArrowButtonInner, .dj_a11y span.dijitArrowButtonInner,.dj_a11y img.dijitArrowButtonInner,.dj_a11y .dijitCalendarIncrementControl,.dj_a11y .dijitTreeExpando {display: none;}.dijitSpinner div.dijitArrowButtonInner {display: block;}.dj_a11y .dijitA11ySideArrow {display: inline !important; cursor: pointer;}.dj_a11y .dijitCalendarDateLabel {padding: 1px; border: 0px !important;}.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {border-style: solid !important; border-width: 1px !important; padding: 0;}.dj_a11y .dijitCalendarDateTemplate {padding-bottom: 0.1em !important; border: 0px !important;}.dj_a11y .dijitButtonNode {border: black outset medium !important; padding: 0 !important;}.dj_a11y .dijitArrowButton {padding: 0 !important;}.dj_a11y .dijitButtonContents {margin: 0.15em;}.dj_a11y .dijitTextBoxReadOnly .dijitInputField,.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {border-style: outset!important; border-width: medium!important; border-color: #999 !important; color:#999 !important;}.dijitButtonNode * {vertical-align: middle;}.dijitSelect .dijitArrowButtonInner,.dijitButtonNode .dijitArrowButtonInner {background: no-repeat center; width: 12px; height: 12px; direction: ltr;}.dijitLeft {background-position:left top; background-repeat:no-repeat;}.dijitStretch {white-space:nowrap; background-repeat:repeat-x;}.dijitRight {#display:inline; background-position:right top; background-repeat:no-repeat;}.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {opacity: 0.5;}.dijitToggleButton,.dijitButton,.dijitDropDownButton,.dijitComboButton {margin: 0.2em; vertical-align: middle;}.dijitButtonContents {display: block;}td.dijitButtonContents {display: table-cell;}.dijitButtonNode img {vertical-align:middle;}.dijitToolbar .dijitComboButton {border-collapse: separate;}.dijitToolbar .dijitToggleButton,.dijitToolbar .dijitButton,.dijitToolbar .dijitDropDownButton,.dijitToolbar .dijitComboButton {margin: 0;}.dijitToolbar .dijitButtonContents {padding: 1px 2px;}.dj_webkit .dijitToolbar .dijitDropDownButton {padding-left: 0.3em;}.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {padding:0;}.dijitSelect {border:1px solid gray;}.dijitButtonNode {border:1px solid gray; margin:0; line-height:normal; vertical-align: middle; #vertical-align: auto; text-align:center; white-space: nowrap;}.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {line-height:inherit;}.dijitTextBox .dijitButtonNode {border-width: 0;}.dijitSelect,.dijitSelect *,.dijitButtonNode,.dijitButtonNode * {cursor: pointer;}.dj_ie .dijitButtonNode {zoom: 1;}.dj_ie .dijitButtonNode button {overflow: visible;}div.dijitArrowButton {float: right;}.dijitTextBox {border: solid black 1px; #overflow: hidden; width: 15em; vertical-align: middle;}.dijitTextBoxReadOnly,.dijitTextBoxDisabled {color: gray;}.dj_safari .dijitTextBoxDisabled input {color: #B0B0B0;}.dj_safari textarea.dijitTextAreaDisabled {color: #333;}.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, .dj_gecko .dijitTextBoxDisabled input {-moz-user-input: none;}.dijitPlaceHolder {color: #AAAAAA; font-style: italic; position: absolute; top: 0; left: 0; #filter: "";}.dijitTimeTextBox {width: 8em;}.dijitTextBox input:focus {outline: none;}.dijitTextBoxFocused {outline: 5px -webkit-focus-ring-color;}.dijitSelect input,.dijitTextBox input {float: left;}.dj_ie6 input.dijitTextBox,.dj_ie6 .dijitTextBox input {float: none;}.dijitInputInner {border:0 !important; background-color:transparent !important; width:100% !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important;}.dj_a11y .dijitTextBox input {margin: 0 !important;}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner {text-indent: -2em !important; direction: ltr !important; text-align: left !important; height: auto !important; #text-indent: 0 !important; #letter-spacing: -5em !important; #text-align: right !important;}.dj_ie .dijitSelect input,.dj_ie .dijitTextBox input,.dj_ie input.dijitTextBox {overflow-y: visible; line-height: normal;}.dijitSelect .dijitSelectLabel span {line-height: 100%;}.dj_ie .dijitSelect .dijitSelectLabel {line-height: normal;}.dj_ie6 .dijitSelect .dijitSelectLabel,.dj_ie7 .dijitSelect .dijitSelectLabel,.dj_ie8 .dijitSelect .dijitSelectLabel,.dj_iequirks .dijitSelect .dijitSelectLabel,.dijitSelect td,.dj_ie6 .dijitSelect input,.dj_iequirks .dijitSelect input,.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie6 .dijitTextBox input,.dj_ie6 input.dijitTextBox,.dj_iequirks .dijitTextBox input.dijitValidationInner,.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,.dj_iequirks .dijitTextBox input.dijitInputInner,.dj_iequirks input.dijitTextBox {line-height: 100%;}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner {text-indent: 0 !important; width: 1em !important; #text-align: left !important; color: black !important;}.dijitValidationTextBoxError .dijitValidationContainer {display: inline; cursor: default;}.dijitSpinner .dijitSpinnerButtonContainer,.dijitComboBox .dijitArrowButtonContainer {border-width: 0 0 0 1px !important;}.dj_a11y .dijitSelect .dijitArrowButtonContainer,.dijitToolbar .dijitComboBox .dijitArrowButtonContainer {border-width: 0 !important;}.dijitComboBoxMenu {list-style-type: none;}.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0;}.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {clear: both;}.dj_ie .dijitToolbar .dijitComboBox {vertical-align: middle;}.dijitTextBox .dijitSpinnerButtonContainer {width: 1em; position: relative !important; overflow: hidden;}.dijitSpinner .dijitSpinnerButtonInner {width:1em; visibility:hidden !important; overflow-x:hidden;}.dijitComboBox .dijitButtonNode,.dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0;}.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0px !important; border-style: solid !important;}.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,.dj_a11y .dijitSpinner .dijitArrowButtonInner,.dj_a11y .dijitSpinnerButtonContainer input {width: 1em !important;}.dj_a11y .dijitSpinner .dijitArrowButtonInner {margin: 0 auto !important;}.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding-left: 0.3em !important; padding-right: 0.3em !important; margin-left: 0.3em !important; margin-right: 0.3em !important; width: 1.4em !important;}.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding-left: 0 !important; padding-right: 0 !important; width: 1em !important;}.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {margin-left: 0.1em !important; margin-right: 0.1em !important; width: 1em !important;}.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {margin-left: 0 !important; margin-right: 0 !important; width: 2em !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {padding: 0; position: absolute !important; right: 0; float: none; height: 50%; width: 100%; bottom: auto; left: 0; right: auto;}.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: auto;}.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {overflow: visible !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {top: 50%; border-top-width: 1px !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {#bottom: 50%; top: 0;}.dijitSpinner .dijitArrowButtonInner {margin: auto; overflow-x: hidden; height: 100% !important;}.dj_iequirks .dijitSpinner .dijitArrowButtonInner {height: auto !important;}.dijitSpinner .dijitArrowButtonInner .dijitInputField {-moz-transform: scale(0.5); -moz-transform-origin: center top; -webkit-transform: scale(0.5); -webkit-transform-origin: center top; -o-transform: scale(0.5); -o-transform-origin: center top; transform: scale(0.5); transform-origin: left top; padding-top: 0; padding-bottom: 0; padding-left: 0 !important; padding-right: 0 !important; width: 100%; visibility: hidden;}.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {zoom: 50%;}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {overflow: hidden;}.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: 100%;}.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: 1em;}.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {vertical-align:top; visibility: visible;}.dj_a11y .dijitSpinnerButtonContainer {width: 1em;}.dijitCheckBox,.dijitRadio,.dijitCheckBoxInput {padding: 0; border: 0; width: 16px; height: 16px; background-position:center center; background-repeat:no-repeat; overflow: hidden;}.dijitCheckBox input,.dijitRadio input {margin: 0; padding: 0; display: block;}.dijitCheckBoxInput {opacity: 0.01;}.dj_ie .dijitCheckBoxInput {filter: alpha(opacity=0);}.dj_a11y .dijitCheckBox,.dj_a11y .dijitRadio {width: auto !important; height: auto !important;}.dj_a11y .dijitCheckBoxInput {opacity: 1; filter: none; width: auto; height: auto;}.dj_a11y .dijitFocusedLabel {border: 1px dotted; outline: 0px !important;}.dijitProgressBar {z-index: 0;}.dijitProgressBarEmpty {position:relative;overflow:hidden; border:1px solid black; z-index:0;}.dijitProgressBarFull {position:absolute; overflow:hidden; z-index:-1; top:0; width:100%;}.dj_ie6 .dijitProgressBarFull {height:1.6em;}.dijitProgressBarTile {position:absolute; overflow:hidden; top:0; left:0; bottom:0; right:0; margin:0; padding:0; width: 100%; height:auto; background-color:#aaa; background-attachment: fixed;}.dj_a11y .dijitProgressBarTile {border-width:2px; border-style:solid; background-color:transparent !important;}.dj_ie6 .dijitProgressBarTile {position:static; height:1.6em;}.dijitProgressBarIndeterminate .dijitProgressBarTile {}.dijitProgressBarIndeterminateHighContrastImage {display:none;}.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {display:block; position:absolute; top:0; bottom:0; margin:0; padding:0; width:100%; height:auto;}.dijitProgressBarLabel {display:block; position:static; width:100%; text-align:center; background-color:transparent !important;}.dijitTooltip {position: absolute; z-index: 2000; display: block; left: 0; top: -10000px; overflow: visible;}.dijitTooltipContainer {border: solid black 2px; background: #b8b5b5; color: black; font-size: small;}.dijitTooltipFocusNode {padding: 2px 2px 2px 2px;}.dijitTooltipConnector {position: absolute;}.dj_a11y .dijitTooltipConnector {display: none;}.dijitTooltipData {display:none;}.dijitLayoutContainer {position: relative; display: block; overflow: hidden;}.dijitAlignTop,.dijitAlignBottom,.dijitAlignLeft,.dijitAlignRight {position: absolute; overflow: hidden;}body .dijitAlignClient {position: absolute;}.dijitBorderContainer, .dijitBorderContainerNoGutter {position:relative; overflow: hidden; z-index: 0;}.dijitBorderContainerPane,.dijitBorderContainerNoGutterPane {position: absolute !important; z-index: 2;}.dijitBorderContainer > .dijitTextArea {resize: none;}.dijitGutter {position: absolute; font-size: 1px;}.dijitSplitter {position: absolute; overflow: hidden; z-index: 10; background-color: #fff; border-color: gray; border-style: solid; border-width: 0;}.dj_ie .dijitSplitter {z-index: 1;}.dijitSplitterActive {z-index: 11 !important;}.dijitSplitterCover {position:absolute; z-index:-1; top:0; left:0; width:100%; height:100%;}.dijitSplitterCoverActive {z-index:3 !important;}.dj_ie .dijitSplitterCover {background: white; filter: alpha(opacity=0);}.dijitSplitterH {height: 7px; border-top:1px; border-bottom:1px; cursor: row-resize;}.dijitSplitterV {width: 7px; border-left:1px; border-right:1px; cursor: col-resize;}.dijitSplitContainer {position: relative; overflow: hidden; display: block;}.dj_ff3 .dj_a11y div.dijitSplitter:focus {outline-style:dotted; outline-width: 2px;}.dijitSplitPane {position: absolute;}.dijitSplitContainerSizerH,.dijitSplitContainerSizerV {position:absolute; font-size: 1px; background-color: ThreeDFace; border: 1px solid; border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; margin: 0;}.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb {overflow:hidden; position:absolute; top:49%;}.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb {position:absolute; left:49%;}.dijitSplitterShadow,.dijitSplitContainerVirtualSizerH,.dijitSplitContainerVirtualSizerV {font-size: 1px; background-color: ThreeDShadow; -moz-opacity: 0.5; opacity: 0.5; filter: Alpha(Opacity=50); margin: 0;}.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH {cursor: col-resize;}.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV {cursor: row-resize;}.dj_a11y .dijitSplitterH {border-top:1px solid #d3d3d3 !important; border-bottom:1px solid #d3d3d3 !important;}.dj_a11y .dijitSplitterV {border-left:1px solid #d3d3d3 !important; border-right:1px solid #d3d3d3 !important;}.dijitContentPane {display: block; overflow: auto;}.dijitContentPaneSingleChild {overflow: hidden;}.dijitContentPaneLoading .dijitIconLoading,.dijitContentPaneError .dijitIconError {margin-right: 9px;}.dijitTitlePane {display: block; overflow: hidden;}.dijitTitlePaneTitle {cursor: pointer;}.dijitFixedOpen, .dijitFixedClosed {cursor: default;}.dijitFixedOpen .dijitArrowNode, .dijitFixedOpen .dijitArrowNodeInner,.dijitFixedClosed .dijitArrowNode, .dijitFixedClosed .dijitArrowNodeInner{display: none;}.dijitTitlePaneTitle * {vertical-align: middle;}.dijitTitlePane .dijitArrowNodeInner {display: none;}.dj_a11y .dijitTitlePane .dijitArrowNodeInner {display:inline !important; font-family: monospace;}.dj_a11y .dijitTitlePane .dijitArrowNode {display:none;}.dj_ie6 .dijitTitlePaneContentOuter,.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {zoom: 1;}.dijitColorPalette {border: 1px solid #999; background: #fff; position: relative;}.dijitColorPalette .dijitPaletteTable {padding: 2px 3px 3px 3px; position: relative; overflow: hidden; outline: 0; border-collapse: separate;}.dj_ie6 .dijitColorPalette .dijitPaletteTable,.dj_ie7 .dijitColorPalette .dijitPaletteTable,.dj_iequirks .dijitColorPalette .dijitPaletteTable {padding: 0; margin: 2px 3px 3px 3px;}.dijitColorPalette .dijitPaletteCell {font-size: 1px; vertical-align: middle; text-align: center; background: none;}.dijitColorPalette .dijitPaletteImg {padding: 1px; border: 1px solid #999; margin: 2px 1px; cursor: default; font-size: 1px;}.dj_gecko .dijitColorPalette .dijitPaletteImg {padding-bottom: 0;}.dijitColorPalette .dijitColorPaletteSwatch {width: 14px; height: 12px;}.dijitPaletteTable td {padding: 0;}.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {border: 1px solid #000;}.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {border: 2px solid #000; margin: 1px 0;}.dj_a11y .dijitColorPalette .dijitPaletteTable,.dj_a11y .dijitColorPalette .dijitPaletteTable * {background-color: transparent !important;}.dijitAccordionContainer {border:1px solid #b7b7b7; border-top:0 !important;}.dijitAccordionTitle {cursor: pointer;}.dijitAccordionTitleSelected {cursor: default;}.dijitAccordionTitle .arrowTextUp,.dijitAccordionTitle .arrowTextDown {display: none; font-size: 0.65em; font-weight: normal !important;}.dj_a11y .dijitAccordionTitle .arrowTextUp,.dj_a11y .dijitAccordionTitleSelected .arrowTextDown {display: inline;}.dj_a11y .dijitAccordionTitleSelected .arrowTextUp {display: none;}.dijitAccordionChildWrapper {overflow: hidden;}.dijitCalendarContainer {width: auto;}.dijitCalendarContainer th, .dijitCalendarContainer td {padding: 0; vertical-align: middle;}.dijitCalendarYearLabel {white-space: nowrap;}.dijitCalendarNextYear {margin:0 0 0 0.55em;}.dijitCalendarPreviousYear {margin:0 0.55em 0 0;}.dijitCalendarIncrementControl {vertical-align: middle;}.dijitCalendarIncrementControl,.dijitCalendarDateTemplate,.dijitCalendarMonthLabel,.dijitCalendarPreviousYear,.dijitCalendarNextYear {cursor: pointer;}.dijitCalendarDisabledDate {color: gray; text-decoration: line-through; cursor: default;}.dijitSpacer {position: relative; height: 1px; overflow: hidden; visibility: hidden;}.dijitCalendarMonthMenu .dijitCalendarMonthLabel {text-align:center;}.dijitMenu {border:1px solid black; background-color:white;}.dijitMenuTable {border-collapse:collapse; border-width:0; background-color:white;}.dj_webkit .dijitMenuTable td[colspan="2"]{border-right:hidden;}.dijitMenuItem {text-align: left; white-space: nowrap; padding:.1em .2em; cursor:pointer;}.dijitMenuItem:focus {outline: none}.dijitMenuPassive .dijitMenuItemHover,.dijitMenuItemSelected {background-color:black; color:white;}.dijitMenuItemIcon, .dijitMenuExpand {background-repeat: no-repeat;}.dijitMenuItemDisabled * {opacity:0.5; cursor:default;}.dj_ie .dj_a11y .dijitMenuItemDisabled,.dj_ie .dj_a11y .dijitMenuItemDisabled *,.dj_ie .dijitMenuItemDisabled * {color: gray; filter: alpha(opacity=35);}.dijitMenuItemLabel {position: relative; vertical-align: middle;}.dj_a11y .dijitMenuItemSelected {border: 1px dotted black !important;}.dj_ff3 .dj_a11y .dijitMenuItem td {padding: 0 !important; background:none !important;}.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {border-width: 1px; border-style: solid;}.dj_ie8 .dj_a11y .dijitMenuItemLabel {position:static;}.dijitMenuExpandA11y {display: none;}.dj_a11y .dijitMenuExpandA11y {display: inline;}.dijitMenuSeparator td {border: 0; padding: 0;}.dijitMenuSeparatorTop {height: 50%; margin: 0; margin-top:3px; font-size: 1px;}.dijitMenuSeparatorBottom {height: 50%; margin: 0; margin-bottom:3px; font-size: 1px;}.dijitCheckedMenuItemIconChar {vertical-align: middle; visibility:hidden;}.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar {visibility: visible;}.dj_a11y .dijitCheckedMenuItemIconChar {display:inline !important;}.dj_a11y .dijitCheckedMenuItemIcon {display: none;}.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {margin: 0;}.dijitStackController .dijitToggleButtonChecked * {cursor: default;}.dijitTabContainer {z-index: 0; overflow-y: visible;}.dj_ie6 .dijitTabContainer {overflow: hidden;}.dijitTabContainerNoLayout {width: 100%;}.dijitTabContainerBottom-tabs,.dijitTabContainerTop-tabs,.dijitTabContainerLeft-tabs,.dijitTabContainerRight-tabs {z-index: 1; overflow: visible !important;}.dijitTabController {z-index: 1;}.dijitTabContainerBottom-container,.dijitTabContainerTop-container,.dijitTabContainerLeft-container,.dijitTabContainerRight-container {z-index:0; overflow: hidden; border: 1px solid black;}.nowrapTabStrip {width: 50000px; display: block; position: relative; text-align: left; z-index: 1;}.dijitTabListWrapper {overflow: hidden; z-index: 1;}.dj_a11y .tabStripButton img {display: none;}.dijitTabContainerTop-tabs {border-bottom: 1px solid black;}.dijitTabContainerTop-container {border-top: 0;}.dijitTabContainerLeft-tabs {border-right: 1px solid black; float: left;}.dijitTabContainerLeft-container {border-left: 0;}.dijitTabContainerBottom-tabs {border-top: 1px solid black;}.dijitTabContainerBottom-container {border-bottom: 0;}.dijitTabContainerRight-tabs {border-left: 1px solid black; float: left;}.dijitTabContainerRight-container {border-right: 0;}div.dijitTabDisabled, .dj_ie div.dijitTabDisabled {cursor: auto;}.dijitTab {position:relative; cursor:pointer; white-space:nowrap; z-index:3;}.dijitTab * {vertical-align: middle;}.dijitTabChecked {cursor: default;}.dijitTabContainerTop-tabs .dijitTab {top: 1px;}.dijitTabContainerBottom-tabs .dijitTab {top: -1px;}.dijitTabContainerLeft-tabs .dijitTab {left: 1px;}.dijitTabContainerRight-tabs .dijitTab {left: -1px;}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab {display:inline-block; #zoom: 1; #display:inline;}.tabStripButton {z-index: 12;}.dijitTabButtonDisabled .tabStripButton {display: none;}.dijitTabCloseButton {margin-left: 1em;}.dijitTabCloseText {display:none;}.dijitTab .tabLabel {min-height: 15px; display: inline-block;}.dijitNoIcon {display: none;}.dj_ie6 .dijitTab .dijitNoIcon {display: inline; height: 15px; width: 1px;}.dj_a11y .dijitTabCloseButton {background-image: none !important; width: auto !important; height: auto !important;}.dj_a11y .dijitTabCloseText {display: inline;}.dijitTabPane,.dijitStackContainer-child,.dijitAccordionContainer-child {border: none !important;}.dijitInlineEditBoxDisplayMode {border: 1px solid transparent; cursor: text;}.dj_a11y .dijitInlineEditBoxDisplayMode,.dj_ie6 .dijitInlineEditBoxDisplayMode {border: none;}.dijitInlineEditBoxDisplayModeHover,.dj_a11y .dijitInlineEditBoxDisplayModeHover,.dj_ie6 .dijitInlineEditBoxDisplayModeHover {background-color: #e2ebf2; border: solid 1px black;}.dijitInlineEditBoxDisplayModeDisabled {cursor: default;}.dijitTree {overflow: auto;}.dijitTreeIndent {width: 19px;}.dijitTreeRow, .dijitTreeContent {white-space: nowrap;}.dijitTreeRow img {vertical-align: middle;}.dijitTreeContent {cursor: default;}.dijitExpandoText {display: none;}.dj_a11y .dijitExpandoText {display: inline; padding-left: 10px; padding-right: 10px; font-family: monospace; border-style: solid; border-width: thin; cursor: pointer;}.dijitTreeLabel {margin: 0 4px;}.dijitDialog {position: absolute; z-index: 999; overflow: hidden;}.dijitDialogTitleBar {cursor: move;}.dijitDialogFixed .dijitDialogTitleBar {cursor:default;}.dijitDialogCloseIcon {cursor: pointer;}.dijitDialogUnderlayWrapper {position: absolute; left: 0; top: 0; z-index: 998; display: none; background: transparent !important;}.dijitDialogUnderlay {background: #eee; opacity: 0.5;}.dj_ie .dijitDialogUnderlay {filter: alpha(opacity=50);}.dj_a11y .dijitSpinnerButtonContainer,.dj_a11y .dijitDialog {opacity: 1 !important; background-color: white !important;}.dijitDialog .closeText {display:none; position:absolute;}.dj_a11y .dijitDialog .closeText {display:inline;}.dijitSliderMoveable {z-index:99; position:absolute !important; display:block; vertical-align:middle;}.dijitSliderMoveableH {right:0;}.dijitSliderMoveableV {right:50%;}.dj_a11y div.dijitSliderImageHandle,.dijitSliderImageHandle {margin:0; padding:0; position:relative !important; border:8px solid gray; width:0; height:0; cursor: pointer;}.dj_iequirks .dj_a11y .dijitSliderImageHandle {font-size: 0;}.dj_ie7 .dijitSliderImageHandle {overflow: hidden;}.dj_ie7 .dj_a11y .dijitSliderImageHandle {overflow: visible;}.dj_a11y .dijitSliderFocused .dijitSliderImageHandle {border:4px solid #000; height:8px; width:8px;}.dijitSliderImageHandleV {top:-8px; right: -50%;}.dijitSliderImageHandleH {left:50%; top:-5px; vertical-align:top;}.dijitSliderBar {border-style:solid; border-color:black; cursor: pointer;}.dijitSliderBarContainerV {position:relative; height:100%; z-index:1;}.dijitSliderBarContainerH {position:relative; z-index:1;}.dijitSliderBarH {height:4px; border-width:1px 0;}.dijitSliderBarV {width:4px; border-width:0 1px;}.dijitSliderProgressBar {background-color:red; z-index:1;}.dijitSliderProgressBarV {position:static !important; height:0; vertical-align:top; text-align:left;}.dijitSliderProgressBarH {position:absolute !important; width:0; vertical-align:middle; overflow:visible;}.dijitSliderRemainingBar {overflow:hidden; background-color:transparent; z-index:1;}.dijitSliderRemainingBarV {height:100%; text-align:left;}.dijitSliderRemainingBarH {width:100% !important;}.dijitSliderBumper {overflow:hidden; z-index:1;}.dijitSliderBumperV {width:4px; height:8px; border-width:0 1px;}.dijitSliderBumperH {width:8px; height:4px; border-width:1px 0;}.dijitSliderBottomBumper,.dijitSliderLeftBumper {background-color:red;}.dijitSliderTopBumper,.dijitSliderRightBumper {background-color:transparent;}.dijitSliderDecoration {text-align:center;}.dijitSliderDecorationC,.dijitSliderDecorationV {position: relative;}.dijitSliderDecorationH {width: 100%;}.dijitSliderDecorationV {height: 100%; white-space: nowrap;}.dijitSliderButton {font-family:monospace; margin:0; padding:0; display:block;}.dj_a11y .dijitSliderButtonInner {visibility:visible !important;}.dijitSliderButtonContainer {text-align:center; height:0;}.dijitSliderButtonContainer * {cursor: pointer;}.dijitSlider .dijitButtonNode {padding:0; display:block;}.dijitRuleContainer {position:relative; overflow:visible;}.dijitRuleContainerV {height:100%; line-height:0; float:left; text-align:left;}.dj_opera .dijitRuleContainerV {line-height:2%;}.dj_ie .dijitRuleContainerV {line-height:normal;}.dj_gecko .dijitRuleContainerV {margin:0 0 1px 0;}.dijitRuleMark {position:absolute; border:1px solid black; line-height:0; height:100%;}.dijitRuleMarkH {width:0; border-top-width:0 !important; border-bottom-width:0 !important; border-left-width:0 !important;}.dijitRuleLabelContainer {position:absolute;}.dijitRuleLabelContainerH {text-align:center; display:inline-block;}.dijitRuleLabelH {position:relative; left:-50%;}.dijitRuleLabelV {text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}.dijitRuleMarkV {height:0; border-right-width:0 !important; border-bottom-width:0 !important; border-left-width:0 !important; width:100%; left:0;}.dj_ie .dijitRuleLabelContainerV {margin-top:-.55em;}.dj_a11y .dijitSliderReadOnly,.dj_a11y .dijitSliderDisabled {opacity:0.6;}.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {filter: alpha(opacity=40);}.dj_a11y .dijitSlider .dijitSliderButtonContainer div {font-family: monospace; font-size: 1em; line-height: 1em; height: auto; width: auto; margin: 0 4px;}.dj_a11y .dijitButtonContents .dijitButtonText,.dj_a11y .dijitTab .tabLabel {display: inline !important;}.dj_a11y .dijitSelect .dijitButtonText {display: inline-block !important;}.dijitSelectError .dijitButtonContents .dijitButtonText {display: none !important;}.dijitTextArea {width:100%; overflow-y: auto;}.dijitTextArea[cols] {width:auto;}.dj_ie .dijitTextAreaCols {width:auto;}.dijitExpandingTextArea {resize: none;}.dijitToolbarSeparator {height: 18px; width: 5px; padding: 0 1px; margin: 0;}.dijitIEFixedToolbar {position:absolute; top: expression(eval((document.documentElement||document.body).scrollTop));}.dijitEditor {display: block;}.dijitEditorDisabled,.dijitEditorReadOnly {color: gray;}.dijitTimePickerItemInner {text-align:center; border:0; padding:2px 8px 2px 8px;}.dijitTimePickerTick,.dijitTimePickerMarker {border-bottom:1px solid gray;}.dijitTimePicker .dijitDownArrowButton {border-top: none !important;}.dijitTimePickerTick {color:#CCC;}.dijitTimePickerMarker {color:black; background-color:#CCC;}.dijitTimePickerItemSelected {font-weight:bold; color:#333; background-color:#b7cdee;}.dijitTimePickerItemHover {background-color:gray; color:white; cursor:pointer;}.dijitTimePickerItemDisabled {color:gray; text-decoration:line-through;}.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {border: solid 4px black;}.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {border: dashed 4px black;}.dijitToggleButtonIconChar {display:none !important;}.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {display:inline !important; visibility:hidden;}.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText {font-family: "Arial Unicode MS";}.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {display: inline !important; visibility:visible !important;}.dijitArrowButtonChar {display:none !important;}.dj_a11y .dijitArrowButtonChar {display:inline !important;}.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,.dj_a11y .dijitComboButton .dijitArrowButtonInner {display:none !important;}.dj_a11y .dijitSelect {border-collapse: separate !important; border-width: 1px; border-style: solid;}.dj_ie .dijitSelect {vertical-align: middle;}.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie8 .dijitSelect .dijitButtonText {vertical-align: top;}.dj_ie6 .dijitTextBox .dijitInputContainer,.dj_iequirks .dijitTextBox .dijitInputContainer,.dj_ie6 .dijitTextBox .dijitArrowButtonInner,.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,.dijitSelect .dijitSelectLabel {vertical-align: baseline;}.dijitNumberTextBox {text-align: left; direction: ltr;}.dijitNumberTextBox .dijitInputInner {text-align: inherit;}.dijitToolbar .dijitSelect {margin: 0;}.dj_webkit .dijitToolbar .dijitSelect {padding-left: 0.3em;}.dijitSelect .dijitButtonContents {padding: 0; white-space: nowrap; text-align: left; border-style: none solid none none; border-width: 1px;}.dijitSelectFixedWidth .dijitButtonContents {width: 100%;}.dijitSelectMenu .dijitMenuItemIcon {display:none;}.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {position: static;}.dijitSelectLabel *{vertical-align: baseline;}.dijitSelectSelectedOption * {font-weight: bold;}.dijitSelectMenu {border-width: 1px;}.dijitSelectMenu .dijitMenuTable {margin: 0; background-color: transparent;}.dijitForceStatic {position: static !important;}.dijitReadOnly *,.dijitDisabled *,.dijitReadOnly,.dijitDisabled {cursor: default;}.dojoDndItem {padding: 2px; -webkit-touch-callout: none; -webkit-user-select: none;}.dojoDndHorizontal .dojoDndItem {#display: inline; display: inline-block;}.dojoDndItemBefore,.dojoDndItemAfter {border: 0px solid #369;}.dojoDndItemBefore {border-width: 2px 0 0 0; padding: 0 2px 2px 2px;}.dojoDndItemAfter {border-width: 0 0 2px 0; padding: 2px 2px 0 2px;}.dojoDndHorizontal .dojoDndItemBefore {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.dojoDndHorizontal .dojoDndItemAfter {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dojoDndItemOver {cursor:pointer;}.dj_gecko .dijitArrowButtonInner INPUT,.dj_gecko INPUT.dijitArrowButtonInner {-moz-user-focus:ignore;}.dijitIconSave,.dijitIconPrint,.dijitIconCut,.dijitIconCopy,.dijitIconClear,.dijitIconDelete,.dijitIconUndo,.dijitIconEdit,.dijitIconNewTask,.dijitIconEditTask,.dijitIconEditProperty,.dijitIconTask,.dijitIconFilter,.dijitIconConfigure,.dijitIconSearch,.dijitIconApplication,.dijitIconBookmark,.dijitIconChart,.dijitIconConnector,.dijitIconDatabase,.dijitIconDocuments,.dijitIconMail,.dijitLeaf,.dijitIconFile,.dijitIconFunction,.dijitIconKey,.dijitIconPackage,.dijitIconSample,.dijitIconTable,.dijitIconUsers,.dijitFolderClosed,.dijitIconFolderClosed,.dijitFolderOpened,.dijitIconFolderOpen,.dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled.png"); width: 16px; height: 16px;}.dj_ie6 .dijitIconSave,.dj_ie6 .dijitIconPrint,.dj_ie6 .dijitIconCut,.dj_ie6 .dijitIconCopy,.dj_ie6 .dijitIconClear,.dj_ie6 .dijitIconDelete,.dj_ie6 .dijitIconUndo,.dj_ie6 .dijitIconEdit,.dj_ie6 .dijitIconNewTask,.dj_ie6 .dijitIconEditTask,.dj_ie6 .dijitIconEditProperty,.dj_ie6 .dijitIconTask,.dj_ie6 .dijitIconFilter,.dj_ie6 .dijitIconConfigure,.dj_ie6 .dijitIconSearch,.dj_ie6 .dijitIconApplication,.dj_ie6 .dijitIconBookmark,.dj_ie6 .dijitIconChart,.dj_ie6 .dijitIconConnector,.dj_ie6 .dijitIconDatabase,.dj_ie6 .dijitIconDocuments,.dj_ie6 .dijitIconMail,.dj_ie6 .dijitLeaf,.dj_ie6 .dijitIconFile,.dj_ie6 .dijitIconFunction,.dj_ie6 .dijitIconKey,.dj_ie6 .dijitIconPackage,.dj_ie6 .dijitIconSample,.dj_ie6 .dijitIconTable,.dj_ie6 .dijitIconUsers,.dj_ie6 .dijitFolderClosed,.dj_ie6 .dijitIconFolderClosed,.dj_ie6 .dijitFolderOpened,.dj_ie6 .dijitIconFolderOpen,.dj_ie6 .dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled8bit.png");}.dijitDisabled .dijitIconSave,.dijitDisabled .dijitIconPrint,.dijitDisabled .dijitIconCut,.dijitDisabled .dijitIconCopy,.dijitDisabled .dijitIconClear,.dijitDisabled .dijitIconDelete,.dijitDisabled .dijitIconUndo,.dijitDisabled .dijitIconEdit,.dijitDisabled .dijitIconNewTask,.dijitDisabled .dijitIconEditTask,.dijitDisabled .dijitIconEditProperty,.dijitDisabled .dijitIconTask,.dijitDisabled .dijitIconFilter,.dijitDisabled .dijitIconConfigure,.dijitDisabled .dijitIconSearch,.dijitDisabled .dijitIconApplication,.dijitDisabled .dijitIconBookmark,.dijitDisabled .dijitIconChart,.dijitDisabled .dijitIconConnector,.dijitDisabled .dijitIconDatabase,.dijitDisabled .dijitIconDocuments,.dijitDisabled .dijitIconMail,.dijitDisabled .dijitLeaf,.dijitDisabled .dijitIconFile,.dijitDisabled .dijitIconFunction,.dijitDisabled .dijitIconKey,.dijitDisabled .dijitIconPackage,.dijitDisabled .dijitIconSample,.dijitDisabled .dijitIconTable,.dijitDisabled .dijitIconUsers,.dijitDisabled .dijitFolderClosed,.dijitDisabled .dijitIconFolderClosed,.dijitDisabled .dijitFolderOpened,.dijitDisabled .dijitIconFolderOpen,.dijitDisabled .dijitIconError {background-image: url("../../icons/images/commonIconsObjActDisabled.png");}.dijitIconSave {background-position: 0;}.dijitIconPrint {background-position: -16px;}.dijitIconCut {background-position: -32px;}.dijitIconCopy {background-position: -48px;}.dijitIconClear {background-position: -64px;}.dijitIconDelete {background-position: -80px;}.dijitIconUndo {background-position: -96px;}.dijitIconEdit {background-position: -112px;}.dijitIconNewTask {background-position: -128px;}.dijitIconEditTask {background-position: -144px;}.dijitIconEditProperty {background-position: -160px;}.dijitIconTask {background-position: -176px;}.dijitIconFilter {background-position: -192px;}.dijitIconConfigure {background-position: -208px;}.dijitIconSearch {background-position: -224px;}.dijitIconError {background-position: -496px;} .dijitIconApplication {background-position: -240px;}.dijitIconBookmark {background-position: -256px;}.dijitIconChart {background-position: -272px;}.dijitIconConnector {background-position: -288px;}.dijitIconDatabase {background-position: -304px;}.dijitIconDocuments {background-position: -320px;}.dijitIconMail {background-position: -336px;}.dijitIconFile, .dijitLeaf {background-position: -352px;}.dijitIconFunction {background-position: -368px;}.dijitIconKey {background-position: -384px;}.dijitIconPackage{background-position: -400px;}.dijitIconSample {background-position: -416px;}.dijitIconTable {background-position: -432px;}.dijitIconUsers {background-position: -448px;}.dijitIconFolderClosed, .dijitFolderClosed {background-position: -464px;}.dijitIconFolderOpen, .dijitFolderOpened {background-position: -480px;}.dijitIconLoading {background:url("../../icons/images/loadingAnimation_rtl.gif") no-repeat; height: 20px; width: 20px;}.claro .dijitPopup {-webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);}.claro .dijitTooltipDialogPopup {-webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none;}.claro .dijitComboBoxHighlightMatch {background-color: #abd6ff;}.claro .dijitFocusedLabel {outline: 1px dotted #494949;}.claro .dojoDndItem {border-color: rgba(0, 0, 0, 0); -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s; -webkit-transition-property: background-color, border-color; -moz-transition-property: background-color, border-color; transition-property: background-color, border-color;}.claro .dojoDndItemOver {background-color: #abd6ff; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 1px; border: solid 1px #759dc0; color: #000000;}.claro .dojoDndItemAnchor, .claro .dojoDndItemSelected {background-color: #cfe5fa; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 1px; border: solid 1px #759dc0; color: #000000;}.claro .dojoDndItemBefore, .claro .dojoDndItemAfter {border-color: #759dc0;}.claro table.dojoDndAvatar {border: 1px solid #b5bcc7; border-collapse: collapse; background-color: #ffffff; -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);}.claro .dojoDndAvatarHeader td {height: 20px; padding-left: 21px;}.claro.dojoDndMove .dojoDndAvatarHeader, .claro.dojoDndCopy .dojoDndAvatarHeader {background-image: url("images/dnd.png"); background-repeat: no-repeat; background-position: 2px -122px;}.claro .dojoDndAvatarItem td {padding: 5px;}.claro.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-position: 2px -103px;}.claro.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-position: 2px -68px;}.claro.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-position: 2px -33px;}.claro.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-position: 2px 2px;}.claro .dijitTextBox, .claro .dijitInputInner {color: #000000;}.claro .dijitValidationTextBoxError .dijitValidationContainer {background-color: #d46464; background-image: url("form/images/error.png"); background-position: top center; border: solid #d46464 0; width: 9px;}.claro .dijitTextBoxError .dijitValidationContainer {border-left-width: 1px;}.claro .dijitValidationTextBoxError .dijitValidationIcon {width: 0; background-color: transparent !important;}.claro .dijitTextArea, .claro .dijitInputField .dijitPlaceHolder {padding: 2px;}.claro .dijitSelect .dijitInputField, .claro .dijitTextBox .dijitInputField {padding: 1px 2px;}.dj_gecko .claro .dijitTextBox .dijitInputInner, .dj_webkit .claro .dijitTextBox .dijitInputInner {padding: 1px;}.claro .dijitSelect,.claro .dijitSelect .dijitButtonContents,.claro .dijitTextBox,.claro .dijitTextBox .dijitButtonNode {border-color: #b5bcc7; -webkit-transition-property: background-color, border; -moz-transition-property: background-color, border; transition-property: background-color, border; -webkit-transition-duration: 0.35s; -moz-transition-duration: 0.35s; transition-duration: 0.35s;}.claro .dijitSelect, .claro .dijitTextBox {background-color: #ffffff;}.claro .dijitSelectHover,.claro .dijitSelectHover .dijitButtonContents,.claro .dijitTextBoxHover,.claro .dijitTextBoxHover .dijitButtonNode {border-color: #759dc0; -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s;}.claro .dijitTextBoxHover {background-color: #e5f2fe; background-image: -moz-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -webkit-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -o-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px);}.claro .dijitSelectError,.claro .dijitSelectError .dijitButtonContents,.claro .dijitTextBoxError,.claro .dijitTextBoxError .dijitButtonNode {border-color: #d46464;}.claro .dijitSelectFocused,.claro .dijitSelectFocused .dijitButtonContents,.claro .dijitTextBoxFocused,.claro .dijitTextBoxFocused .dijitButtonNode {border-color: #759dc0; -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.claro .dijitTextBoxFocused {background-color: #ffffff; background-image: -moz-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -webkit-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -o-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px);}.claro .dijitTextBoxFocused .dijitInputContainer {background: #ffffff;}.claro .dijitSelectErrorFocused,.claro .dijitSelectErrorFocused .dijitButtonContents,.claro .dijitTextBoxErrorFocused,.claro .dijitTextBoxErrorFocused .dijitButtonNode {border-color: #ce5050;}.claro .dijitSelectDisabled,.claro .dijitSelectDisabled .dijitButtonContents,.claro .dijitTextBoxDisabled,.claro .dijitTextBoxDisabled .dijitButtonNode {border-color: #d3d3d3;}.claro .dijitSelectDisabled, .claro .dijitTextBoxDisabled, .claro .dijitTextBoxDisabled .dijitInputContainer {background-color: #efefef; background-image: none;}.claro .dijitSelectDisabled, .claro .dijitTextBoxDisabled, .claro .dijitTextBoxDisabled .dijitInputInner {color: #818181;}.dj_webkit .claro .dijitDisabled input {color: #757575;}.dj_webkit .claro textarea.dijitTextAreaDisabled {color: #1b1b1b;}.claro .dijitSelect .dijitArrowButtonInner, .claro .dijitComboBox .dijitArrowButtonInner {background-image: url("form/images/commonFormArrows.png"); background-position: -35px 53%; background-repeat: no-repeat; margin: 0; width: 16px;}.claro .dijitComboBox .dijitArrowButtonInner {border: 1px solid #ffffff;}.claro .dijitToolbar .dijitComboBox .dijitArrowButtonInner {border: none;}.claro .dijitToolbar .dijitComboBox .dijitArrowButtonInner {border: none;}.claro .dijitSelectLabel, .claro .dijitTextBox .dijitInputInner, .claro .dijitValidationTextBox .dijitValidationContainer {padding: 1px 0;}.claro .dijitComboBox .dijitButtonNode {background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitComboBoxOpenOnClickHover .dijitButtonNode, .claro .dijitComboBox .dijitDownArrowButtonHover {background-color: #abd6ff;}.claro .dijitComboBoxOpenOnClickHover .dijitArrowButtonInner, .claro .dijitComboBox .dijitDownArrowButtonHover .dijitArrowButtonInner {background-position: -70px 53%;}.claro .dijitComboBox .dijitHasDropDownOpen {background-color: #7dbdfa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 1px;}.dj_iequirks .claro .dijitComboBox .dijitHasDropDownOpen {padding: 1px 0;}.claro .dijitComboBox .dijitHasDropDownOpen .dijitArrowButtonInner {background-position: -70px 53%; border: 0 none;}.claro div.dijitComboBoxDisabled .dijitArrowButtonInner {background-position: 0 50%; background-color: #efefef;}.dj_ff3 .claro .dijitInputField input[type="hidden"] {display: none; height: 0; width: 0;}.dj_borderbox .claro .dijitComboBox .dijitHasDropDownOpen .dijitArrowButtonInner {width: 18px;}.dj_borderbox .claro .dijitComboBoxFocused .dijitHasDropDownOpen .dijitArrowButtonInner {width: 16px;}.claro .dijitButtonNode {-webkit-transition-property: background-color; -moz-transition-property: background-color; transition-property: background-color; -webkit-transition-duration: 0.3s; -moz-transition-duration: 0.3s; transition-duration: 0.3s;}.claro .dijitButton .dijitButtonNode,.claro .dijitDropDownButton .dijitButtonNode,.claro .dijitComboButton .dijitButtonNode,.claro .dijitToggleButton .dijitButtonNode {border: 1px solid #759dc0; padding: 2px 4px 4px 4px; color: #000000; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15); background-color: #bcd8f4; background-image: url("form/images/buttonEnabled.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0) 3px, rgba(255, 255, 255, 0.75) 100%); background-image: -webkit-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0) 3px, rgba(255, 255, 255, 0.75) 100%); background-image: -o-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0) 3px, rgba(255, 255, 255, 0.75) 100%); background-image: linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0) 3px, rgba(255, 255, 255, 0.75) 100%); _background-image: none;}.claro .dijitComboButton .dijitArrowButton {border-left-width: 0; padding: 4px 2px 4px 2px;}.claro .dijitArrowButtonInner {width: 15px; height: 15px; margin: 0 auto; background-image: url("form/images/buttonArrows.png"); background-repeat: no-repeat; background-position: -51px 53%;}.claro .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -77px 53%;}.claro .dijitRightArrowButton .dijitArrowButtonInner {background-position: -26px 53%;}.claro .dijitUpArrowButton .dijitArrowButtonInner {background-position: 0 53%;}.claro .dijitDisabled .dijitArrowButtonInner {background-position: -151px 53%;}.claro .dijitDisabled .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -177px 53%;}.claro .dijitDisabled .dijitRightArrowButton .dijitArrowButtonInner {background-position: -126px 53%;}.claro .dijitDisabled .dijitUpArrowButton .dijitArrowButtonInner {background-position: -100px 53%;}.claro .dijitButtonText {padding: 0 0.3em; text-align: center;}.claro .dijitButtonHover .dijitButtonNode,.claro .dijitDropDownButtonHover .dijitButtonNode,.claro .dijitComboButton .dijitButtonNodeHover,.claro .dijitComboButton .dijitDownArrowButtonHover,.claro .dijitToggleButtonHover .dijitButtonNode {background-color: #86bdf2; color: #000000; -webkit-transition-duration: 0.2s; -moz-transition-duration: 0.2s; transition-duration: 0.2s;}.claro .dijitButtonActive .dijitButtonNode,.claro .dijitDropDownButtonActive .dijitButtonNode,.claro .dijitComboButtonActive .dijitButtonNode,.claro .dijitToggleButtonActive .dijitButtonNode,.claro .dijitToggleButtonChecked .dijitButtonNode {background-color: #86bdf2; -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.claro .dijitButtonDisabled,.claro .dijitDropDownButtonDisabled,.claro .dijitComboButtonDisabled,.claro .dijitToggleButtonDisabled {background-image: none; outline: none;}.claro .dijitButtonDisabled .dijitButtonNode,.claro .dijitDropDownButtonDisabled .dijitButtonNode,.claro .dijitComboButtonDisabled .dijitButtonNode,.claro .dijitToggleButtonDisabled .dijitButtonNode {background-color: #efefef; border: solid 1px #d3d3d3; color: #818181; -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0); -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0); box-shadow: 0 0 0 rgba(0, 0, 0, 0); background-image: url("form/images/buttonDisabled.png"); background-image: -moz-linear-gradient(#ffffff 0%, rgba(255, 255, 255, 0) 40%); background-image: -webkit-linear-gradient(#ffffff 0%, rgba(255, 255, 255, 0) 40%); background-image: -o-linear-gradient(#ffffff 0%, rgba(255, 255, 255, 0) 40%); background-image: linear-gradient(#ffffff 0%, rgba(255, 255, 255, 0) 40%); _background-image: none;}.claro .dijitComboButtonDisabled .dijitArrowButton {border-left-width: 0;}.claro table.dijitComboButton {border-collapse: separate;}.claro .dijitComboButton .dijitStretch {-moz-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px;}.claro .dijitComboButton .dijitArrowButton {-moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0;}.claro .dijitToggleButton .dijitCheckBoxIcon {background-image: url("images/checkmarkNoBorder.png");}.dj_ie6 .claro .dijitToggleButton .dijitCheckBoxIcon {background-image: url("images/checkmarkNoBorder.gif");}.claro .dijitCheckBox, .claro .dijitCheckBoxIcon {background-image: url("form/images/checkboxRadioButtonStates.png"); background-repeat: no-repeat; width: 15px; height: 16px; margin: 0 2px 0 0; padding: 0;}.dj_ie6 .claro .dijitCheckBox, .dj_ie6 .claro .dijitCheckBoxIcon {background-image: url("form/images/checkboxAndRadioButtons_IE6.png");}.claro .dijitCheckBox, .claro .dijitToggleButton .dijitCheckBoxIcon {background-position: -15px;}.claro .dijitCheckBoxChecked, .claro .dijitToggleButtonChecked .dijitCheckBoxIcon {background-position: 0;}.claro .dijitCheckBoxDisabled {background-position: -75px;}.claro .dijitCheckBoxCheckedDisabled {background-position: -60px;}.claro .dijitCheckBoxHover {background-position: -45px;}.claro .dijitCheckBoxCheckedHover {background-position: -30px;}.claro .dijitToggleButton .dijitRadio, .claro .dijitToggleButton .dijitRadioIcon {background-image: url("form/images/checkboxRadioButtonStates.png");}.dj_ie6 .claro .dijitToggleButton .dijitRadio, .dj_ie6 .claro .dijitToggleButton .dijitRadioIcon {background-image: url("form/images/checkboxAndRadioButtons_IE6.png");}.claro .dijitRadio, .claro .dijitRadioIcon {background-image: url("form/images/checkboxRadioButtonStates.png"); background-repeat: no-repeat; width: 15px; height: 15px; margin: 0 2px 0 0; padding: 0;}.dj_ie6 .claro .dijitRadio, .dj_ie6 .claro .dijitRadioIcon {background-image: url("form/images/checkboxAndRadioButtons_IE6.png");}.claro .dijitRadio {background-position: -105px;}.claro .dijitToggleButton .dijitRadioIcon {background-position: -107px;}.claro .dijitRadioDisabled {background-position: -165px;}.claro .dijitRadioHover {background-position: -135px;}.claro .dijitRadioChecked {background-position: -90px;}.claro .dijitToggleButtonChecked .dijitRadioIcon {background-position: -92px;}.claro .dijitRadioCheckedHover {background-position: -120px;}.claro .dijitRadioCheckedDisabled {background-position: -150px;}.claro .dijitSelect .dijitArrowButtonContainer {border: 1px solid #ffffff;}.claro .dijitSelect .dijitArrowButton {padding: 0; background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitSelect .dijitArrowButton .dijitArrowButtonInner {height: 16px;}.claro .dijitSelectHover {background-color: #e5f2fe; background-image: -moz-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -webkit-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -o-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-repeat: repeat-x;}.claro .dijitSelectFocused, .claro .dijitSelectHover {border-color: #759dc0;}.claro .dijitSelectHover .dijitArrowButton {background-color: #abd6ff;}.claro .dijitSelectHover .dijitArrowButton .dijitArrowButtonInner {background-position: -70px 53%;}.claro .dijitSelectFocused .dijitArrowButton {background-color: #7dbefa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitSelectFocused .dijitArrowButton {border: none; padding: 1px;}.claro .dijitSelectFocused .dijitArrowButton .dijitArrowButtonInner {background-position: -70px 53%;}.claro .dijitSelectDisabled {border-color: #d3d3d3; background-color: #efefef; background-image: none; color: #818181;}.claro .dijitSelectDisabled .dijitArrowButton .dijitArrowButtonInner {background-position: 0 53%;}.claro .dijitSelectMenu td.dijitMenuItemIconCell, .claro .dijitSelectMenu td.dijitMenuArrowCell {display: none;}.claro .dijitSelectMenu td.dijitMenuItemLabel {padding: 2px;}.claro .dijitSelectMenu .dijitMenuSeparatorTop {border-bottom: 1px solid #759dc0;}.claro .dijitTabPaneWrapper {background: #ffffff;}.claro .dijitTabPaneWrapper,.claro .dijitTabContainerTop-tabs,.claro .dijitTabContainerBottom-tabs,.claro .dijitTabContainerLeft-tabs,.claro .dijitTabContainerRight-tabs {border-color: #b5bcc7;}.claro .dijitTabCloseButton {background: url("layout/images/tabClose.png") no-repeat; width: 14px; height: 14px; margin-left: 5px; margin-right: -5px;}.claro .dijitTabCloseButtonHover {background-position: -14px;}.claro .dijitTabCloseButtonActive {background-position: -28px;}.claro .dijitTabSpacer {display: none;}.claro .dijitTab {border: 1px solid #b5bcc7; background-color: #efefef; -webkit-transition-property: background-color, border; -moz-transition-property: background-color, border; transition-property: background-color, border; -webkit-transition-duration: 0.35s; -moz-transition-duration: 0.35s; transition-duration: 0.35s; color: #494949;}.claro .dijitTabHover {border-color: #759dc0; background-color: #abd6ff; -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s; color: #000000;}.claro .dijitTabActive {border-color: #759dc0; background-color: #7dbdfa; color: #000000; -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.claro .dijitTabChecked {border-color: #b5bcc7; background-color: #cfe5fa; color: #000000;}.claro .dijitTabDisabled {background-color: #d3d3d3;}.claro .tabStripButton {background-color: transparent; border: none;}.claro .dijitTabContainerTop-tabs .dijitTab {top: 1px; margin-right: 1px; padding: 3px 6px; border-bottom-width: 0; min-width: 60px; text-align: center; background-image: url("layout/images/tabTopUnselected.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); -webkit-box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.04); -moz-box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.04); box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.04);}.claro .dijitTabContainerTop-tabs .dijitTabChecked {padding-bottom: 4px; padding-top: 9px; background-image: url("layout/images/tabTopSelected.png"); background-image: -moz-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: -webkit-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: -o-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); -webkit-box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.05); box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.05);}.claro .dijitTabContainerBottom-tabs .dijitTab {top: -1px; margin-right: 1px; padding: 3px 6px; border-top-width: 0; min-width: 60px; text-align: center; background-image: url("layout/images/tabBottomUnselected.png"); background-repeat: repeat-x; background-position: bottom; background-image: -moz-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);}.claro .dijitTabContainerBottom-tabs .dijitTabChecked {padding-bottom: 9px; padding-top: 4px; background-image: url("layout/images/tabBottomSelected.png"); background-image: -moz-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: -webkit-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: -o-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);}.claro .dijitTabContainerLeft-tabs .dijitTab {left: 1px; margin-bottom: 1px; padding: 3px 8px 4px 4px; background-image: url("layout/images/tabLeftUnselected.png"); background-repeat: repeat-y; background-image: -moz-linear-gradient(left, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(left, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(left, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(left, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%);}.claro .dijitTabContainerLeft-tabs .dijitTabChecked {border-right-width: 0; padding-right: 9px; background-image: url("layout/images/tabLeftSelected.png"); background-image: -moz-linear-gradient(left, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: -o-linear-gradient(left, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: linear-gradient(left, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); -webkit-box-shadow: -1px 0 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: -1px 0 2px rgba(0, 0, 0, 0.05); box-shadow: -1px 0 2px rgba(0, 0, 0, 0.05);}.claro .dijitTabContainerRight-tabs .dijitTab {left: -1px; margin-bottom: 1px; padding: 3px 8px 4px 4px; background-image: url("layout/images/tabRightUnselected.png"); background-repeat: repeat-y; background-position: right; background-image: -moz-linear-gradient(right, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(right, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(right, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(right, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%);}.claro .dijitTabContainerRight-tabs .dijitTabChecked {padding-left: 5px; border-left-width: 0; background-image: url("layout/images/tabRightSelected.png"); background-image: -moz-linear-gradient(right, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: -webkit-linear-gradient(right, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: -o-linear-gradient(right, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: linear-gradient(right, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.07); -moz-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.07); box-shadow: 1px 0 2px rgba(0, 0, 0, 0.07);}.claro .dijitTabContainerTop-tabs .dijitTab {-moz-border-radius: 2px 2px 0 0; border-radius: 2px 2px 0 0;}.claro .dijitTabContainerBottom-tabs .dijitTab {-moz-border-radius: 0 0 2px 2px; border-radius: 0 0 2px 2px;}.claro .dijitTabContainerLeft-tabs .dijitTab {-moz-border-radius: 2px 0 0 2px; border-radius: 2px 0 0 2px;}.claro .dijitTabContainerRight-tabs .dijitTab {-moz-border-radius: 0 2px 2px 0; border-radius: 0 2px 2px 0;}.claro .tabStripButton {background-color: #e5f2fe; border: 1px solid #b5bcc7;}.claro .dijitTabListContainer-top .tabStripButton {padding: 4px 3px; margin-top: 7px; background-image: -moz-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%);}.claro .dijitTabListContainer-bottom .tabStripButton {padding: 4px 3px; margin-bottom: 7px; background-image: -moz-linear-gradient(bottom, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(bottom, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(bottom, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(bottom, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%);}.claro .tabStripButtonHover {background-color: #abd6ff;}.claro .tabStripButtonActive {background-color: #7dbdfa;}.claro .dijitTabStripIcon {height: 15px; width: 15px; margin: 0 auto; background: url("form/images/buttonArrows.png") no-repeat -75px 50%; background-color: transparent;}.claro .dijitTabStripSlideRightIcon {background-position: -24px 50%;}.claro .dijitTabStripMenuIcon {background-position: -51px 50%;}.claro .dijitTabListContainer-top .tabStripButtonDisabled, .claro .dijitTabListContainer-bottom .tabStripButtonDisabled {background-color: #d3d3d3; border: 1px solid #b5bcc7;}.claro .tabStripButtonDisabled .dijitTabStripSlideLeftIcon {background-position: -175px 50%;}.claro .tabStripButtonDisabled .dijitTabStripSlideRightIcon {background-position: -124px 50%;}.claro .tabStripButtonDisabled .dijitTabStripMenuIcon {background-position: -151px 50%;}.claro .dijitTabContainerNested .dijitTabListWrapper {height: auto;}.claro .dijitTabContainerNested .dijitTabContainerTop-tabs {border-bottom: solid 1px #b5bcc7; padding: 2px 2px 4px;}.claro .dijitTabContainerTabListNested .dijitTab {background: rgba(255, 255, 255, 0) none repeat scroll 0 0; border: none; padding: 4px; border-color: rgba(118, 157, 192, 0); -webkit-transition-property: background-color, border-color; -moz-transition-property: background-color, border-color; transition-property: background-color, border-color; -webkit-transition-duration: 0.3s; -moz-transition-duration: 0.3s; transition-duration: 0.3s; -moz-border-radius: 2px; border-radius: 2px;}.claro .dijitTabContainerTabListNested .dijitTab {background: none; border: none; top: 0; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none;}.claro .dijitTabContainerTabListNested .dijitTabHover {background-color: #e5f2fe; border: solid 1px #cfe5fa; padding: 3px; -webkit-transition-duration: 0.2s; -moz-transition-duration: 0.2s; transition-duration: 0.2s;}.claro .dijitTabContainerTabListNested .dijitTabHover .tabLabel {text-decoration: none;}.claro .dijitTabContainerTabListNested .dijitTabActive {border: solid 1px #759dc0; padding: 3px; background: #abd6ff url("layout/images/tabNested.png") repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.61) 0%, rgba(255, 255, 255, 0) 17%, rgba(255, 255, 255, 0) 83%, rgba(255, 255, 255, 0.61) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.61) 0%, rgba(255, 255, 255, 0) 17%, rgba(255, 255, 255, 0) 83%, rgba(255, 255, 255, 0.61) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.61) 0%, rgba(255, 255, 255, 0) 17%, rgba(255, 255, 255, 0) 83%, rgba(255, 255, 255, 0.61) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.61) 0%, rgba(255, 255, 255, 0) 17%, rgba(255, 255, 255, 0) 83%, rgba(255, 255, 255, 0.61) 100%); -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.claro .dijitTabContainerTabListNested .dijitTabChecked {padding: 3px; border: solid 1px #759dc0; background-color: #cfe5fa;}.claro .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {text-decoration: none; background-image: none;}.claro .dijitTabPaneWrapperNested {border: none;}.claro .dijitTab, .claro .tabStripButton {_background-image: none !important;}.claro .dijitDialog {border: 1px solid #759dc0; -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);}.claro .dijitDialogPaneContent {background: #ffffff repeat-x top left; border-top: 1px solid #759dc0; padding: 10px 8px; position: relative;}.claro .dijitDialogPaneContentArea {margin: -10px -8px; padding: 10px 8px;}.claro .dijitDialogPaneActionBar {background-color: #efefef; padding: 3px 5px 2px 7px; text-align: right; border-top: 1px solid #d3d3d3; margin: 10px -8px -10px;}.claro .dijitTooltipDialog .dijitDialogPaneActionBar {-webkit-border-bottom-right-radius: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -moz-border-radius-bottomleft: 4px; margin: 10px -10px -8px;}.claro .dijitDialogPaneActionBar .dijitButton {float: none;}.claro .dijitDialogTitleBar {border: 1px solid #ffffff; border-top: none; background-color: #abd6ff; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 5px 7px 4px 7px;}.claro .dijitDialogTitle {padding: 0 1px; font-size: 1.091em; color: #000000;}.claro .dijitDialogCloseIcon {background: url("images/dialogCloseIcon.png"); background-repeat: no-repeat; position: absolute; right: 5px; height: 15px; width: 21px;}.dj_ie6 .claro .dijitDialogCloseIcon {background-image: url("images/dialogCloseIcon8bit.png");}.claro .dijitDialogCloseIconHover {background-position: -21px;}.claro .dijitDialogCloseIconActive {background-position: -42px;}.claro .dijitTooltip, .claro .dijitTooltipDialog {background: transparent;}.dijitTooltipBelow {padding-top: 13px; padding-left: 3px; padding-right: 3px;}.dijitTooltipAbove {padding-bottom: 13px; padding-left: 3px; padding-right: 3px;}.claro .dijitTooltipContainer {background-color: #ffffff; background-image: -moz-linear-gradient(bottom, rgba(207, 229, 250, 0.1) 0px, #ffffff 10px); background-image: -webkit-linear-gradient(bottom, rgba(207, 229, 250, 0.1) 0px, #ffffff 10px); background-image: -o-linear-gradient(bottom, rgba(207, 229, 250, 0.1) 0px, #ffffff 10px); background-image: linear-gradient(bottom, rgba(207, 229, 250, 0.1) 0px, #ffffff 10px); background-position: bottom; border: 1px solid #759dc0; padding: 6px 8px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); font-size: 1em; color: #000000;}.claro .dijitTooltipConnector {border: 0; z-index: 2; background-image: url("images/tooltip.png"); background-repeat: no-repeat; width: 16px; height: 14px;}.dj_ie6 .claro .dijitTooltipConnector {background-image: url("images/tooltip8bit.png");}.claro .dijitTooltipABRight .dijitTooltipConnector {left: auto !important; right: 3px;}.claro .dijitTooltipBelow .dijitTooltipConnector {top: 0; left: 3px; background-position: -31px 0; width: 16px; height: 14px;}.claro .dijitTooltipAbove .dijitTooltipConnector {bottom: 0; left: 3px; background-position: -15px 0; width: 16px; height: 14px;}.dj_ie7 .claro .dijitTooltipAbove .dijitTooltipConnector, .dj_ie6 .claro .dijitTooltipAbove .dijitTooltipConnector {bottom: -1px;}.claro .dijitTooltipLeft {padding-right: 14px;}.claro .dijitTooltipLeft .dijitTooltipConnector {right: 0; background-position: 0 0; width: 16px; height: 14px;}.claro .dijitTooltipRight {padding-left: 14px;}.claro .dijitTooltipRight .dijitTooltipConnector {left: 0; background-position: -48px 0; width: 16px; height: 14px;}.claro .dijitDialogUnderlay {background: #ffffff;}.claro .dijitAccordionContainer {border: none;}.claro .dijitAccordionInnerContainer {background-color: #efefef; border: solid 1px #b5bcc7; margin-bottom: 1px; -webkit-transition-property: background-color, border; -moz-transition-property: background-color, border; transition-property: background-color, border; -webkit-transition-duration: 0.3s; -moz-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: linear; -moz-transition-timing-function: linear; transition-timing-function: linear;}.claro .dijitAccordionTitle {background-color: transparent; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 5px 7px 2px 7px; min-height: 17px; color: #494949;}.claro .dijitAccordionContainer .dijitAccordionChildWrapper {background-color: #ffffff; border: 1px solid #759dc0; margin: 0 2px 2px;}.claro .dijitAccordionContainer .dijitAccordionContainer-child {padding: 9px;}.claro .dijitAccordionInnerContainerActive {border: 1px solid #759dc0; background-color: #7dbdfa; -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.claro .dijitAccordionInnerContainerActive .dijitAccordionTitle {background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none; color: #000000;}.claro .dijitAccordionInnerContainerSelected {border-color: #759dc0; background-color: #cfe5fa;}.claro .dijitAccordionInnerContainerSelected .dijitAccordionTitle {color: #000000; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitAccordionInnerContainerHover .dijitAccordionTitle {color: #000000;}.claro .dijitAccordionInnerContainerHover, .claro .dijitAccordionInnerContainerSelectedActive {border: 1px solid #759dc0; background-color: #abd6ff; -webkit-transition-duration: 0.2s; -moz-transition-duration: 0.2s; transition-duration: 0.2s;}.claro .dijitAccordionInnerContainerSelectedHover .dijitAccordionChildWrapper, .claro .dijitAccordionInnerContainerSelectedActive .dijitAccordionChildWrapper {background-color: #ffffff; border: 1px solid #759dc0; -webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.25); -moz-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.25); box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.25);}.claro .dijitContentPane {padding: 8px;}.claro .dijitTabContainerTop-dijitContentPane,.claro .dijitTabContainerLeft-dijitContentPane,.claro .dijitTabContainerBottom-dijitContentPane,.claro .dijitTabContainerRight-dijitContentPane,.claro .dijitAccordionContainer-dijitContentPane {background-color: #ffffff; padding: 8px;}.claro .dijitSplitContainer-dijitContentPane, .claro .dijitBorderContainer-dijitContentPane {background-color: #ffffff; padding: 8px;}.claro .dijitCalendar {border: solid 1px #b5bcc7; border-collapse: separate; -moz-border-radius: 4px; border-radius: 4px; background-color: #cfe5fa; background-image: url("images/calendar.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0) 100%); text-align: center; padding: 6px 5px 3px 5px;}.dj_ie6 .claro .dijitCalendar {background-image: none;}.claro .dijitCalendar img {border: none;}.claro .dijitCalendarHover, .claro .dijitCalendar:hover, .claro .dijitCalendarActive {background-color: #abd6ff; border: solid 1px #759dc0;}.claro .dijitCalendarMonthContainer th {text-align: center; padding-bottom: 4px; vertical-align: middle;}.claro .dijitCalendarMonthLabel {color: #000000; font-size: 1.091em; padding: 0 4px;}.claro .dijitCalendarIncrementControl {width: 18px; height: 16px; background-image: url("images/calendarArrows.png"); background-repeat: no-repeat;}.dj_ie6 .claro .dijitCalendarIncrementControl {background-image: url("images/calendarArrows8bit.png");}.claro .dijitCalendarIncrease {background-position: -18px 0;}.claro .dijitCalendarArrowHover .dijitCalendarDecrease, .claro .dijitCalendarArrow:hover .dijitCalendarDecrease {background-position: -36px 0;}.claro .dijitCalendarArrowHover .dijitCalendarIncrease, .claro .dijitCalendarArrow:hover .dijitCalendarIncrease {background-position: -55px 0;}.claro .dijitCalendarArrowActive .dijitCalendarDecrease, .claro .dijitCalendarArrow:active .dijitCalendarDecrease {background-position: -72px 0;}.claro .dijitCalendarArrowActive .dijitCalendarIncrease, .claro .dijitCalendarArrow:active .dijitCalendarIncrease {background-position: -91px 0;}.claro .dijitA11ySideArrow {display: none;}.claro .dijitCalendarDayLabelTemplate {padding-bottom: 0; text-align: center; border-bottom: 1px solid #b5bcc7; padding: 0 3px 2px;}.claro .dijitCalendarDayLabel {padding: 0 4px 0 4px; font-weight: bold; font-size: 0.909em; text-align: center; color: #000000;}.claro .dijitCalendarDateTemplate {text-align: center; background-color: #ffffff; border-bottom: 1px solid #d3d3d3; padding-top: 0; font-size: 0.909em; font-family: Arial; font-weight: bold; letter-spacing: .05em; text-align: center; color: #000000;}.dj_ie6 .claro .dijitCalendarDateTemplate {background-image: none;}.claro .dijitCalendarPreviousMonth, .claro .dijitCalendarNextMonth {background-color: #e5f2fe; background-image: none; border-bottom: solid 1px #d3d3d3;}.claro .dijitCalendarDateTemplate .dijitCalendarDateLabel {text-decoration: none; display: block; padding: 3px 5px 3px 4px; border: solid 1px #ffffff; background-color: rgba(171, 212, 251, 0); -webkit-transition-property: background-color, border; -moz-transition-property: background-color, border; transition-property: background-color, border; -webkit-transition-duration: 0.35s; -moz-transition-duration: 0.35s; transition-duration: 0.35s;}.claro .dijitCalendarPreviousMonth .dijitCalendarDateLabel, .claro .dijitCalendarNextMonth .dijitCalendarDateLabel {color: #759dc0; border-color: #e5f2fe;}.claro .dijitCalendarYearContainer {vertical-align: middle;}.claro .dijitCalendarYearControl {padding: 1px 2px 2px 2px;}.claro .dijitCalendarYearLabel {padding: 2px 0 0 0; margin: 0; font-size: 1.17em;}.claro .dijitCalendarYearLabel span {vertical-align: middle;}.claro .dijitCalendarSelectedYear {padding: 0 3px;}.claro .dijitCalendarNextYear, .claro .dijitCalendarPreviousYear {padding: 1px 6px 1px 6px; font-size: 0.909em;}.claro .dijitCalendarSelectedYear {font-size: 1.091em; color: #000000;}.claro .dijitCalendarHoveredDate .dijitCalendarDateLabel, .claro .dijitCalendarEnabledDate:hover .dijitCalendarDateLabel {background-color: #abd6ff; border: solid 1px #759dc0; color: #000000; -webkit-transition-duration: 0.2s; -moz-transition-duration: 0.2s; transition-duration: 0.2s;}.claro .dijitCalendarNextYearHover,.claro .dijitCalendarNextYear:hover,.claro .dijitCalendarPreviousYearHover,.claro .dijitCalendarPreviousYear:hover {color: #000000; border: solid 1px #ffffff; padding: 0 5px 0 5px; background-color: #e5f2fe;}.claro .dijitCalendarNextYearActive, .claro .dijitCalendarNextYear:active.claro .dijitCalendarPreviousYearActive, .claro .dijitCalendarPreviousYear:active {border: solid 1px #759dc0; padding: 0 5px 0 5px; background-color: #7dbdfa;}.claro .dijitCalendarActiveDate .dijitCalendarDateLabel, .claro .dijitCalendarEnabledDate:active .dijitCalendarDateLabel {background-color: #7dbdfa; border: solid 1px #ffffff; -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.dj_ie6 .claro .dijitCalendarActiveDate .dijitCalendarDateLabel {background-image: none;}.claro .dijitCalendarSelectedDate .dijitCalendarDateLabel {color: #000000; background-color: #abd6ff; border-color: #759dc0;}.claro .dijitCalendarDisabledDate .dijitCalendarDateLabel {color: #818181; text-decoration: line-through;}.claro .dijitCalendar .dijitDropDownButton {margin: 0;}.claro .dijitCalendar .dijitButtonText {padding: 1px 0 3px; margin-right: -4px;}.claro .dijitCalendar .dijitDropDownButton .dijitButtonNode {padding: 0 3px 0 2px; border: solid 1px #b5bcc7; -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0); -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0); box-shadow: 0 0 0 rgba(0, 0, 0, 0); background-color: transparent; background-image: none;}.claro .dijitCalendar .dijitDropDownButtonHover .dijitButtonNode, .claro .dijitCalendar .dijitDropDownButton:hover .dijitButtonNode {background-color: #e5f2fe; border: solid 1px #ffffff;}.claro .dijitCalendarMonthMenu {border-color: #759dc0; background-color: #ffffff; text-align: center; background-image: none;}.claro .dijitCalendarMonthMenu .dijitCalendarMonthLabel {border-top: solid 1px #ffffff; border-bottom: solid 1px #ffffff; padding: 2px 0;}.claro .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover, .claro .dijitCalendarMonthMenu .dijitCalendarMonthLabel:hover {border-color: #759dc0; border-width: 1px 0; background-color: #abd6ff; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0)); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0)); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0)); background-image: linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0)); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr= #ffffff , endColorstr= #abd6ff );}.claro .dijitMenuBar {border: 1px solid #b5bcc7; margin: 0; padding: 0; background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitMenu {background-color: #ffffff; border: 1px solid #759dc0; margin: -1px 0;}.dj_ie6 .claro .dijitMenu {margin: 0;}.claro .dijitMenuItem {color: #000000;}.claro .dijitMenuBar .dijitMenuItem {padding: 6px 10px 7px; margin: -1px;}.claro .dijitMenuBar .dijitMenuItemHover, .claro .dijitMenuBar .dijitMenuItemSelected {border: solid 1px #759dc0; padding: 5px 9px 6px;}.claro .dijitMenuTable {border-collapse: separate; border-spacing: 0 0; padding: 0;}.claro .dijitMenuItem td {padding: 1px;}.claro .dijitSelectMenu .dijitMenuItemHover td,.claro .dijitSelectMenu .dijitMenuItemSelected td,.claro .dijitMenuItemHover,.claro .dijitMenuItemSelected {background-color: #abd6ff; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitMenuItemActive {background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.dj_ie .claro .dijitMenuActive .dijitMenuItemHover,.dj_ie .claro .dijitMenuActive .dijitMenuItemSelected,.dj_ie .claro .dijitMenuPassive .dijitMenuItemHover,.dj_ie .claro .dijitMenuPassive .dijitMenuItemSelected {padding-top: 6px; padding-bottom: 5px; margin-top: -3px;}.claro td.dijitMenuItemIconCell {padding: 2px; margin: 0 0 0 4px;}.claro td.dijitMenuItemLabel {padding-top: 5px; padding-bottom: 5px;}.claro .dijitMenuExpand {width: 7px; height: 7px; background-image: url("images/spriteArrows.png"); background-position: -14px 0; margin-right: 3px;}.claro .dijitMenuItemDisabled .dijitMenuItemIconCell {opacity: 1;}.claro .dijitMenuSeparatorTop {height: auto; margin-top: 1px; border-bottom: 1px solid #b5bcc7;}.claro .dijitMenuSeparatorBottom {height: auto; margin-bottom: 1px;}.claro .dijitCheckedMenuItemIconChar {display: none;}.claro .dijitCheckedMenuItemIcon {background-image: url("form/images/checkboxRadioButtonStates.png"); background-repeat: no-repeat; background-position: -15px 50%; width: 15px; height: 16px;}.dj_ie6 .claro .dijitCheckedMenuItemIcon {background-image: url("form/images/checkboxAndRadioButtons_IE6.png");}.claro .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: 0 50%;}.claro .dijitComboBoxMenu {margin-left: 0; background-image: none;}.claro .dijitSelectMenu .dijitMenuItem td, .claro .dijitComboBoxMenu .dijitMenuItem {padding: 2px; border-width: 1px 0 1px 0; border-style: solid; border-color: #ffffff;}.claro .dijitSelectMenu .dijitMenuItemSelected td, .claro .dijitComboBoxMenu .dijitMenuItemSelected {color: #000000; border-color: #759dc0; background-color: #abd6ff;}.claro .dijitSelectMenu .dijitMenuItemHover td, .claro .dijitComboBoxMenu .dijitMenuItemHover {color: #000000; border-color: #769dc0; background-color: #abd6ff;}.claro .dijitComboBoxMenuActive .dijitMenuItemSelected {background-color: #7dbdfa;}.claro .dijitMenuPreviousButton, .claro .dijitMenuNextButton {font-style: italic;}.claro .dijitSliderBar {border-style: solid; outline: 1px;}.claro .dijitSliderFocused .dijitSliderBar {border-color: #759dc0;}.claro .dijitSliderHover .dijitSliderBar {border-color: #759dc0;}.claro .dijitSliderDisabled .dijitSliderBar {background-image: none; border-color: #d3d3d3;}.claro .dijitRuleLabelsContainer {color: #000000;}.claro .dijitRuleLabelsContainerH {padding: 2px 0;}.claro .dijitSlider .dijitSliderProgressBarH, .claro .dijitSlider .dijitSliderLeftBumper {border-color: #b5bcc7; background-color: #cfe5fa; background-image: -moz-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px); background-image: -webkit-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px); background-image: -o-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px); background-image: linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px);}.claro .dijitSlider .dijitSliderRemainingBarH, .claro .dijitSlider .dijitSliderRightBumper {border-color: #b5bcc7; background-color: #ffffff;}.claro .dijitSliderRightBumper {border-right: solid 1px #b5bcc7;}.claro .dijitSliderLeftBumper {border-left: solid 1px #b5bcc7;}.claro .dijitSliderHover .dijitSliderProgressBarH, .claro .dijitSliderHover .dijitSliderLeftBumper {background-color: #abd6ff; border-color: #759dc0;}.claro .dijitSliderHover .dijitSliderRemainingBarH, .claro .dijitSliderHover .dijitSliderRightBumper {background-color: #ffffff; border-color: #759dc0;}.claro .dijitSliderFocused .dijitSliderProgressBarH, .claro .dijitSliderFocused .dijitSliderLeftBumper {background-color: #abd6ff; border-color: #759dc0; -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2);}.claro .dijitSliderFocused .dijitSliderRemainingBarH, .claro .dijitSliderFocused .dijitSliderRightBumper {background-color: #ffffff; border-color: #759dc0; -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2);}.claro .dijitSliderDisabled .dijitSliderProgressBarH, .claro .dijitSliderDisabled .dijitSliderLeftBumper {background-color: #d3d3d3; background-image: none;}.claro .dijitSliderDisabled .dijitSliderRemainingBarH, .claro .dijitSliderDisabled .dijitSliderRightBumper {background-color: #efefef;}.claro .dijitRuleLabelsContainerV {padding: 0 2px;}.claro .dijitSlider .dijitSliderProgressBarV, .claro .dijitSlider .dijitSliderBottomBumper {border-color: #b5bcc7; background-color: #cfe5fa; background-image: -moz-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 1px); background-image: -webkit-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 1px); background-image: -o-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 1px); background-image: linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 1px);}.claro .dijitSlider .dijitSliderRemainingBarV, .claro .dijitSlider .dijitSliderTopBumper {border-color: #b5bcc7; background-color: #ffffff;}.claro .dijitSliderBottomBumper {border-bottom: solid 1px #b5bcc7;}.claro .dijitSliderTopBumper {border-top: solid 1px #b5bcc7;}.claro .dijitSliderHover .dijitSliderProgressBarV, .claro .dijitSliderHover .dijitSliderBottomBumper {background-color: #abd6ff; border-color: #759dc0;}.claro .dijitSliderHover .dijitSliderRemainingBarV, .claro .dijitSliderHover .dijitSliderTopBumper {background-color: #ffffff; border-color: #759dc0;}.claro .dijitSliderFocused .dijitSliderProgressBarV, .claro .dijitSliderFocused .dijitSliderBottomBumper {background-color: #abd6ff; border-color: #759dc0; -webkit-box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2); box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2);}.claro .dijitSliderFocused .dijitSliderRemainingBarV, .claro .dijitSliderFocused .dijitSliderTopBumper {background-color: #ffffff; border-color: #759dc0; -webkit-box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2); box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2);}.claro .dijitSliderDisabled .dijitSliderProgressBarV, .claro .dijitSliderDisabled .dijitSliderBottomBumper {background-color: #d3d3d3;}.claro .dijitSliderDisabled .dijitSliderRemainingBarV, .claro .dijitSliderDisabled .dijitSliderTopBumper {background-color: #efefef;}.claro .dijitSliderImageHandleH {border: 0; width: 18px; height: 16px; background-image: url("form/images/sliderThumbs.png"); background-repeat: no-repeat; background-position: 0 0;}.claro .dijitSliderHover .dijitSliderImageHandleH {background-position: -18px 0;}.claro .dijitSliderFocused .dijitSliderImageHandleH {background-position: -36px 0;}.claro .dijitSliderProgressBarH .dijitSliderThumbHover {background-position: -36px 0;}.claro .dijitSliderProgressBarH .dijitSliderThumbActive {background-position: -36px 0;}.claro .dijitSliderReadOnly .dijitSliderImageHandleH, .claro .dijitSliderDisabled .dijitSliderImageHandleH {background-position: -54px 0;}.claro .dijitSliderImageHandleV {border: 0; width: 18px; height: 16px; background-image: url("form/images/sliderThumbs.png"); background-repeat: no-repeat; background-position: -289px 0;}.claro .dijitSliderHover .dijitSliderImageHandleV {background-position: -307px 0;}.claro .dijitSliderFocused .dijitSliderImageHandleV {background-position: -325px 0;}.claro .dijitSliderProgressBarV .dijitSliderThumbHover {background-position: -325px 0;}.claro .dijitSliderProgressBarV .dijitSliderThumbActive {background-position: -325px 0;}.claro .dijitSliderReadOnly .dijitSliderImageHandleV, .claro .dijitSliderDisabled .dijitSliderImageHandleV {background-position: -343px 0;}.claro .dijitSliderButtonContainerH {padding: 1px 3px 1px 2px;}.claro .dijitSliderButtonContainerV {padding: 3px 1px 2px 1px;}.claro .dijitSliderDecrementIconH,.claro .dijitSliderIncrementIconH,.claro .dijitSliderDecrementIconV,.claro .dijitSliderIncrementIconV {background-image: url("form/images/commonFormArrows.png"); background-repeat: no-repeat; background-color: #efefef; -moz-border-radius: 2px; border-radius: 2px; border: solid 1px #b5bcc7; font-size: 1px;}.claro .dijitSliderDecrementIconH, .claro .dijitSliderIncrementIconH {height: 12px; width: 9px;}.claro .dijitSliderDecrementIconV, .claro .dijitSliderIncrementIconV {height: 9px; width: 12px;}.claro .dijitSliderActive .dijitSliderDecrementIconH,.claro .dijitSliderActive .dijitSliderIncrementIconH,.claro .dijitSliderActive .dijitSliderDecrementIconV,.claro .dijitSliderActive .dijitSliderIncrementIconV,.claro .dijitSliderHover .dijitSliderDecrementIconH,.claro .dijitSliderHover .dijitSliderIncrementIconH,.claro .dijitSliderHover .dijitSliderDecrementIconV,.claro .dijitSliderHover .dijitSliderIncrementIconV {border: solid 1px #759dc0; background-color: #ffffff;}.claro .dijitSliderDecrementIconH {background-position: -357px 50%;}.claro .dijitSliderActive .dijitSliderDecrementIconH.claro .dijitSliderHover .dijitSliderDecrementIconH {background-position: -393px 50%;}.claro .dijitSliderIncrementIconH {background-position: -251px 50%;}.claro .dijitSliderActive .dijitSliderIncrementIconH.claro .dijitSliderHover .dijitSliderIncrementIconH {background-position: -283px 50%;}.claro .dijitSliderDecrementIconV {background-position: -38px 50%;}.claro .dijitSliderActive .dijitSliderDecrementIconV.claro .dijitSliderHover .dijitSliderDecrementIconV {background-position: -73px 50%;}.claro .dijitSliderIncrementIconV {background-position: -143px 49%;}.claro .dijitSliderActive .dijitSliderIncrementIconV.claro .dijitSliderHover .dijitSliderIncrementIconV {background-position: -178px 49%;}.claro .dijitSliderButtonContainerV .dijitSliderDecrementButtonHover,.claro .dijitSliderButtonContainerH .dijitSliderDecrementButtonHover,.claro .dijitSliderButtonContainerV .dijitSliderIncrementButtonHover,.claro .dijitSliderButtonContainerH .dijitSliderIncrementButtonHover {background-color: #cfe5fa;}.claro .dijitSliderButtonContainerV .dijitSliderDecrementButtonActive,.claro .dijitSliderButtonContainerH .dijitSliderDecrementButtonActive,.claro .dijitSliderButtonContainerV .dijitSliderIncrementButtonActive,.claro .dijitSliderButtonContainerH .dijitSliderIncrementButtonActive {background-color: #abd6ff; border-color: #759dc0;}.claro .dijitSliderButtonInner {visibility: hidden;}.claro .dijitSliderDisabled .dijitSliderBar {border-color: #d3d3d3;}.claro .dijitSliderReadOnly *, .claro .dijitSliderDisabled * {border-color: #d3d3d3; color: #818181;}.claro .dijitSliderReadOnly .dijitSliderDecrementIconH, .claro .dijitSliderDisabled .dijitSliderDecrementIconH {background-position: -321px 50%; background-color: #efefef;}.claro .dijitSliderReadOnly .dijitSliderIncrementIconH, .claro .dijitSliderDisabled .dijitSliderIncrementIconH {background-position: -215px 50%; background-color: #efefef;}.claro .dijitSliderReadOnly .dijitSliderDecrementIconV, .claro .dijitSliderDisabled .dijitSliderDecrementIconV {background-position: -3px 49%; background-color: #efefef;}.claro .dijitSliderReadOnly .dijitSliderIncrementIconV, .claro .dijitSliderDisabled .dijitSliderIncrementIconV {background-position: -107px 49%; background-color: #efefef;}.claro .dijitColorPalette {border: 1px solid #b5bcc7; background: #ffffff; -moz-border-radius: 0; border-radius: 0;}.claro .dijitColorPalette .dijitPaletteImg {border: 1px solid #d3d3d3;}.claro .dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {border: 1px solid #000000;}.claro .dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg, .claro .dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {border: 2px solid #000000;}.claro .dijitInlineEditBoxDisplayMode {border: 1px solid transparent;}.claro .dijitInlineEditBoxDisplayModeHover {background-color: #e5f2fe; border: solid 1px #759dc0;}.dj_ie6 .claro .dijitInlineEditBoxDisplayMode {border: none;}.claro .dijitProgressBar {margin: 2px 0 2px 0;}.claro .dijitProgressBarEmpty {background-color: #ffffff; border-color: #759dc0;}.claro .dijitProgressBarTile {background-color: #abd6ff; background-image: url("images/progressBarFull.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.93) 0px, rgba(255, 255, 255, 0.41) 1px, rgba(255, 255, 255, 0.7) 2px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.93) 0px, rgba(255, 255, 255, 0.41) 1px, rgba(255, 255, 255, 0.7) 2px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.93) 0px, rgba(255, 255, 255, 0.41) 1px, rgba(255, 255, 255, 0.7) 2px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.93) 0px, rgba(255, 255, 255, 0.41) 1px, rgba(255, 255, 255, 0.7) 2px, rgba(255, 255, 255, 0) 100%); background-attachment: scroll;}.dj_ie6 .claro .dijitProgressBarTile {background-image: none;}.claro .dijitProgressBarFull {border-right: 1px solid #759dc0; -webkit-transition-property: width; -moz-transition-property: width; transition-property: width; -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s;}.claro .dijitProgressBarLabel {color: #000000;}.claro .dijitProgressBarIndeterminate .dijitProgressBarTile {background: #efefef url("images/progressBarAnim.gif") repeat-x top;}.claro .dijitTimePicker .dijitButtonNode {padding: 0 0; -moz-border-radius: 0; border-radius: 0;}.claro .dijitTimePicker {border: 1px #b5bcc7 solid; border-top: none; border-bottom: none; background-color: #fff;}.claro .dijitTimePickerItem {background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; border-top: solid 1px #b5bcc7; border-bottom: solid 1px #b5bcc7; margin-right: -1px; margin-left: -1px; margin-top: -1px;}.claro .dijitTimePickerTick {color: #818181; background-color: #efefef; font-size: 0.818em;}.claro .dijitTimePickerMarker {background-color: #e5f2fe; font-size: 1em; white-space: nowrap;}.claro .dijitTimePickerTickHover,.claro .dijitTimePickerMarkerHover,.claro .dijitTimePickerMarkerSelected,.claro .dijitTimePickerTickSelected {background-color: #7dbdfa; border: solid 1px #b5bcc7; margin-left: -7px; margin-right: -7px; color: #000000;}.claro .dijitTimePickerMarkerSelected, .claro .dijitTimePickerTickSelected {font-size: 1em;}.dj_ie .claro .dijitTimePickerTickHover,.dj_ie .claro .dijitTimePickerMarkerHover,.dj_ie .claro .dijitTimePickerMarkerSelected,.dj_ie .claro .dijitTimePickerTickSelected {width: 114%;}.dj_ie6 .claro .dijitTimePickerTickHover,.dj_ie6 .claro .dijitTimePickerMarkerHover,.dj_ie6 .claro .dijitTimePickerMarkerSelected,.dj_ie6 .claro .dijitTimePickerTickSelected {position: relative; zoom: 1;}.claro .dijitTimePickerTick .dijitTimePickerItemInner {padding: 1px; margin: 0;}.claro .dijitTimePicker .dijitButtonNode {border-left: none; border-right: none; border-color: #b5bcc7; background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitTimePicker .dijitArrowButtonInner {height: 100%; background-image: url("form/images/commonFormArrows.png"); background-repeat: no-repeat; background-position: -140px 45%;}.claro .dijitTimePicker .dijitDownArrowButton .dijitArrowButtonInner {background-position: -35px 45%;}.claro .dijitTimePicker .dijitUpArrowHover, .claro .dijitTimePicker .dijitDownArrowHover {background-color: #abd6ff;}.claro .dijitTimePicker .dijitUpArrowHover .dijitArrowButtonInner {background-position: -175px 45%;}.claro .dijitTimePicker .dijitDownArrowHover .dijitArrowButtonInner {background-position: -70px 45%;}.claro .dijitBorderContainer {padding: 5px;}.claro .dijitSplitContainer-child, .claro .dijitBorderContainer-child {border: 1px #b5bcc7 solid;}.claro .dijitBorderContainer-dijitTabContainerTop,.claro .dijitBorderContainer-dijitTabContainerBottom,.claro .dijitBorderContainer-dijitTabContainerLeft,.claro .dijitBorderContainer-dijitTabContainerRight,.claro .dijitBorderContainer-dijitAccordionContainer {border: none;}.claro .dijitBorderContainer-dijitBorderContainer {border: 0; padding: 0;}.claro .dijitSplitterH, .claro .dijitGutterH {background: none; border: 0; height: 5px;}.claro .dijitSplitterH .dijitSplitterThumb {background: #b5bcc7 none; height: 1px; top: 2px; width: 19px;}.claro .dijitSplitterV, .claro .dijitGutterV {background: none; border: 0; width: 5px; margin: 0;}.claro .dijitSplitterV .dijitSplitterThumb {background: #b5bcc7 none; height: 19px; left: 2px; width: 1px; margin: 0;}.claro .dijitSplitterHHover, .claro .dijitSplitterVHover {font-size: 1px; background-color: #cfe5fa;}.claro .dijitSplitterHHover {background-image: -moz-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: -webkit-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: -o-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%);}.claro .dijitSplitterVHover {background-image: -moz-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: -webkit-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: -o-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%);}.claro .dijitSplitterHHover .dijitSplitterThumb, .claro .dijitSplitterVHover .dijitSplitterThumb {background: #759dc0 none;}.claro .dijitSplitterHActive, .claro .dijitSplitterVActive {font-size: 1px; background-color: #abd6ff; background-image: none;}.claro .dijitTreeNode {zoom: 1;}.claro .dijitTreeIsRoot {background-image: none;}.claro .dijitTreeRow, .claro .dijitTreeNode .dojoDndItemBefore, .claro .dijitTreeNode .dojoDndItemAfter {padding: 4px 0 2px 0; background-color: none; background-color: transparent; background-color: rgba(171, 214, 255, 0); background-position: 0 0; background-repeat: repeat-x; border: solid 0 transparent; color: #000000; -webkit-transition-property: background-color, border-color; -moz-transition-property: background-color, border-color; transition-property: background-color, border-color; -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s; -webkit-transition-timing-function: ease-out; -moz-transition-timing-function: ease-out; transition-timing-function: ease-out;}.claro .dijitTreeRowSelected {background-color: #cfe5fa; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 3px 0 1px; border-color: #759dc0; border-width: 1px 0; color: #000000;}.claro .dijitTreeRowHover {background-color: #abd6ff; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 3px 0 1px; border-color: #759dc0; border-width: 1px 0; color: #000000; -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s;}.claro .dijitTreeRowActive {background-color: #7dbdfa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 3px 0 1px; border-color: #759dc0; border-width: 1px 0; color: #000000;}.claro .dijitTreeRowFocused {background-repeat: repeat;}.claro .dijitTreeExpando {background-image: url("images/treeExpandImages.png"); width: 16px; height: 16px; background-position: -35px 0;}.dj_ie6 .claro .dijitTreeExpando {background-image: url("images/treeExpandImages8bit.png");}.claro .dijitTreeRowHover .dijitTreeExpandoOpened {background-position: -53px 0;}.claro .dijitTreeExpandoClosed {background-position: 1px 0;}.claro .dijitTreeRowHover .dijitTreeExpandoClosed {background-position: -17px 0;}.claro .dijitTreeExpandoLeaf, .dj_ie6 .claro .dijitTreeExpandoLeaf {background-image: none;}.claro .dijitTreeExpandoLoading {background-image: url("images/loadingAnimation.gif");}.claro .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {border-top: 2px solid #759dc0;}.claro .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {border-bottom: 2px solid #759dc0;} .claro .dijitToolbar {border-bottom: 1px solid #b5bcc7; background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 2px 0 2px 4px; zoom: 1;}.claro .dijitToolbar label {padding: 0 3px 0 6px;}.claro .dijitToolbar .dijitButton .dijitButtonNode,.claro .dijitToolbar .dijitDropDownButton .dijitButtonNode,.claro .dijitToolbar .dijitComboButton .dijitButtonNode,.claro .dijitToolbar .dijitToggleButton .dijitButtonNode,.claro .dijitToolbar .dijitComboBox .dijitButtonNode {border-width: 0; padding: 2px; -moz-border-radius: 2px; border-radius: 2px; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; -webkit-transition-property: background-color; -moz-transition-property: background-color; transition-property: background-color; -webkit-transition-duration: 0.3s; -moz-transition-duration: 0.3s; transition-duration: 0.3s; background-color: rgba(171, 214, 255, 0); background-image: none;}.dj_ie .claro .dijitToolbar .dijitButton .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitDropDownButton .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitComboButton .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitToggleButton .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitComboBox .dijitButtonNode {background-color: transparent;}.dj_ie .claro .dijitToolbar .dijitButtonHover .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitComboButton .dijitButtonNodeHover,.dj_ie .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover,.dj_ie .claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode {background-color: #abd6ff;}.dj_ie .claro .dijitToolbar .dijitButtonActive .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitDropDownButtonActive .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitComboButtonActive .dijitButtonNode,.dj_ie .claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode {background-color: #abd6ff;}.claro .dijitToolbar .dijitComboButton .dijitStretch {-moz-border-radius: 2px 0 0 2px; border-radius: 2px 0 0 2px;}.claro .dijitToolbar .dijitComboButton .dijitArrowButton {-moz-border-radius: 0 2px 2px 0; border-radius: 0 2px 2px 0;}.claro .dijitToolbar .dijitComboBox .dijitButtonNode {padding: 0;}.claro .dijitToolbar .dijitButtonHover .dijitButtonNode,.claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode,.claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode,.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNode {border-width: 1px; background-color: #abd6ff; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 1px;}.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNode, .claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton {background-color: #f3ffff;}.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNodeHover, .claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButtonHover {background-color: #abd6ff;}.claro .dijitToolbar .dijitButtonActive .dijitButtonNode, .claro .dijitToolbar .dijitDropDownButtonActive .dijitButtonNode, .claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode {border-width: 1px; background-color: #7dbdfa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 1px;}.claro .dijitToolbar .dijitComboButtonActive {-webkit-transition-duration: 0.2s; -moz-transition-duration: 0.2s; transition-duration: 0.2s; border-width: 1px; padding: 0;}.claro .dijitToolbar .dijitComboButtonActive .dijitButtonNode, .claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButton {background-color: #f3ffff; padding: 2px;}.claro .dijitToolbar .dijitComboButtonActive .dijitButtonNodeActive {background-color: #7dbdfa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButtonActive {background-color: #7dbdfa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton, .claro .dijitToolbar .dijitComboButtonActive .dijitDownArrowButton {border-left-width: 0;}.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton {padding-left: 2px;}.claro .dijitToolbar .dijitToggleButtonChecked .dijitButtonNode {margin: 0; border-width: 1px; border-style: solid; background-image: none; border-color: #759dc0; background-color: #ffffff; padding: 1px;}.claro .dijitToolbarSeparator {background: url("../../icons/images/editorIconsEnabled.png");}.claro .dijitDisabled .dijitToolbar {background: none; background-color: #efefef; border-bottom: 1px solid #d3d3d3;}.claro .dijitToolbar .dijitComboBoxDisabled .dijitArrowButtonInner {background-position: 0 50%;}.claro .dijitEditorIFrameContainer {padding: 3px 3px 1px 10px;}.claro .dijitEditorIFrame {background-color: #ffffff;}.claro .dijitEditor {border: 1px solid #b5bcc7;}.claro .dijitEditor .dijitEditorIFrameContainer {background-color: #ffffff; background-repeat: repeat-x;}.claro .dijitEditorHover .dijitEditorIFrameContainer, .claro .dijitEditorHover .dijitEditorIFrameContainer .dijitEditorIFrame {background-color: #e5f2fe;}.claro .dijitEditorFocused .dijitEditorIFrameContainer, .claro .dijitEditorFocused .dijitEditorIFrameContainer .dijitEditorIFrame {background-color: #ffffff;}.claro .dijitEditorHover .dijitEditorIFrameContainer, .claro .dijitEditorFocused .dijitEditorIFrameContainer {background-image: -moz-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -webkit-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -o-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px);}.claro .dijitEditorDisabled {border: 1px solid #d3d3d3; color: #818181;}.claro .dijitDisabled .dijitEditorIFrame, .claro .dijitDisabled .dijitEditorIFrameContainer, .claro .dijitDisabled .dijitEditorIFrameContainer .dijitEditorIFrame {background-color: #efefef; background-image: none;}.dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled.png"); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled.png");}.dijitEditorIconSep {background-position: 0;}.dijitEditorIconSave {background-position: -18px;}.dijitEditorIconPrint {background-position: -36px;}.dijitEditorIconCut {background-position: -54px;}.dijitEditorIconCopy {background-position: -72px;}.dijitEditorIconPaste {background-position: -90px;}.dijitEditorIconDelete {background-position: -108px;}.dijitEditorIconCancel {background-position: -126px;}.dijitEditorIconUndo {background-position: -144px;}.dijitEditorIconRedo {background-position: -162px;}.dijitEditorIconSelectAll {background-position: -180px;}.dijitEditorIconBold {background-position: -198px;}.dijitEditorIconItalic {background-position: -216px;}.dijitEditorIconUnderline {background-position: -234px;}.dijitEditorIconStrikethrough {background-position: -252px;}.dijitEditorIconSuperscript {background-position: -270px;}.dijitEditorIconSubscript {background-position: -288px;}.dijitEditorIconJustifyCenter {background-position: -306px;}.dijitEditorIconJustifyFull {background-position: -324px;}.dijitEditorIconJustifyLeft {background-position: -342px;}.dijitEditorIconJustifyRight {background-position: -360px;}.dijitEditorIconIndent {background-position: -378px;}.dijitEditorIconOutdent {background-position: -396px;}.dijitEditorIconListBulletIndent {background-position: -414px;}.dijitEditorIconListBulletOutdent {background-position: -432px;}.dijitEditorIconListNumIndent {background-position: -450px;}.dijitEditorIconListNumOutdent {background-position: -468px;}.dijitEditorIconTabIndent {background-position: -486px;}.dijitEditorIconLeftToRight {background-position: -504px;}.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir {background-position: -522px;}.dijitEditorIconBackColor {background-position: -540px;}.dijitEditorIconForeColor {background-position: -558px;}.dijitEditorIconHiliteColor {background-position: -576px;}.dijitEditorIconNewPage {background-position: -594px;}.dijitEditorIconInsertImage {background-position: -612px;}.dijitEditorIconInsertTable {background-position: -630px;}.dijitEditorIconSpace {background-position: -648px;}.dijitEditorIconInsertHorizontalRule {background-position: -666px;}.dijitEditorIconInsertOrderedList {background-position: -684px;}.dijitEditorIconInsertUnorderedList {background-position: -702px;}.dijitEditorIconCreateLink {background-position: -720px;}.dijitEditorIconUnlink {background-position: -738px;}.dijitEditorIconViewSource {background-position: -756px;}.dijitEditorIconRemoveFormat {background-position: -774px;}.dijitEditorIconFullScreen {background-position: -792px;}.dijitEditorIconWikiword {background-position: -810px;} .claro .dijitTitlePaneTitle {background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; border: 1px solid #b5bcc7; padding: 0 7px 3px 7px; min-height: 17px;}.claro .dijitTitlePaneTitleHover {background-color: #abd6ff; border-color: #759dc0;}.claro .dijitTitlePaneTitleActive {background-color: #7dbdfa; border-color: #759dc0; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitTitlePaneTitleFocus {margin-top: 3px; padding-bottom: 2px;}.claro .dijitTitlePane .dijitArrowNode {background-image: url("images/spriteArrows.png"); background-repeat: no-repeat; height: 8px; width: 7px;}.claro .dijitTitlePane .dijitOpen .dijitArrowNode {background-position: 0 0;}.claro .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: -14px 0;}.claro .dijitTitlePane .dijitTitlePaneTextNode {color: #000000;}.claro .dijitTitlePaneContentOuter {background: #ffffff; border: 1px solid #b5bcc7; border-top: none;}.claro .dijitTitlePaneContentInner {padding: 10px;}.claro .dijitTitlePaneTextNode {margin-left: 4px; margin-right: 4px; vertical-align: text-top;}.claro .dijitSpinnerButtonContainer {overflow: hidden; position: relative; width: auto; padding: 0 2px;}.claro .dijitSpinnerButtonContainer .dijitSpinnerButtonInner {border-width: 1px 0; border-style: solid none;}.claro .dijitSpinner .dijitArrowButton {width: auto; background-color: #efefef; background-image: url("images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; overflow: hidden;}.dj_iequirks .claro .dijitSpinner .dijitArrowButton {overflow: visible;}.claro .dijitSpinner .dijitSpinnerButtonInner {width: 15px;}.claro .dijitSpinner .dijitArrowButtonInner {border: solid 1px #ffffff; border-bottom-width: 0; background-image: url("form/images/commonFormArrows.png"); background-repeat: no-repeat; height: 100%; width: 15px; padding-left: 1px; padding-right: 1px; background-position: -139px center; display: block; margin: -1px 0 -1px 0;}.dj_iequirks .claro .dijitSpinner .dijitArrowButtonInner,.dj_ie6 .claro .dijitSpinner .dijitArrowButtonInner,.dj_ie7 .claro .dijitSpinner .dijitArrowButtonInner,.dj_ie8 .claro .dijitSpinner .dijitArrowButtonInner {margin-top: 0;}.dj_iequirks .claro .dijitSpinner .dijitArrowButtonInner {width: 19px;}.claro .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner {background-position: -34px;}.claro .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding: 0;}.claro .dijitUpArrowButtonActive, .claro .dijitDownArrowButtonActive {background-color: #abd6ff;}.claro .dijitSpinner .dijitUpArrowButtonHover, .claro .dijitSpinner .dijitDownArrowButtonHover, .claro .dijitSpinnerFocused .dijitArrowButton {background-color: #abd6ff;}.claro .dijitSpinner .dijitUpArrowButtonHover .dijitArrowButtonInner {background-position: -174px;}.claro .dijitSpinner .dijitDownArrowButtonHover .dijitArrowButtonInner {background-position: -69px;}.claro .dijitSpinnerFocused {background-color: #ffffff; background-image: none;}.claro .dijitSpinner .dijitDownArrowButtonActive, .claro .dijitSpinner .dijitUpArrowButtonActive {background-color: #7dbefa; background-image: url("images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner, .claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner {border: 0; padding: 1px; margin-right: 2px; margin-bottom: 1px;}.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner {background-position: -173px;}.claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner {background-position: -68px;}.claro .dijitSpinnerDisabled .dijitArrowButtonInner {background-color: #efefef;}.claro .dijitSpinnerDisabled .dijitUpArrowButton .dijitArrowButtonInner {background-position: -104px;}.claro .dijitSpinnerDisabled .dijitDownArrowButton .dijitArrowButtonInner {background-position: 1px;}.dj_ie7 .claro .dijitSpinner {overflow: visible;}.dijitRtl .dijitPlaceHolder {left: auto; right: 0;}.dijitMenuItemRtl {text-align: right;}.dj_iequirks .dijitComboButtonRtl button {float:left;}.dj_ie .dijitTextBoxRtl .dijitInputContainer {clear: right;}.dijitTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitComboBoxRtl .dijitArrowButtonContainer {border-right-width: 1px !important; border-left-width: 0 !important;}.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton {right: 0; left: auto;}.dijitSelectRtl .dijitButtonText {float: right;}.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitValidationTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitArrowButtonContainer {float: left;}div.dijitNumberTextBoxRtl {text-align: right;}.dijitCalendarRtl .dijitCalendarNextYear {margin:0 0.55em 0 0;}.dijitCalendarRtl .dijitCalendarPreviousYear {margin:0 0 0 0.55em;}.dijitSliderRtl .dijitSliderImageHandleV {left:auto;}.dijitSliderRtl .dijitSliderImageHandleH {left:-50%;}.dijitSliderRtl .dijitSliderMoveableH {right:auto; left:0;}.dijitSliderRtl .dijitRuleContainerV {float:right;}.dj_ie .dijitSliderRtl .dijitRuleContainerV {text-align:right;}.dj_ie .dijitSliderRtl .dijitRuleLabelV {text-align:left;}.dj_ie .dijitSliderRtl .dijitRuleLabelH {zoom:1;}.dijitSliderRtl .dijitSliderProgressBarH {float:right; right:0; left:auto;}.dijitRtl .dijitContentPaneLoading .dijitIconLoading,.dijitRtl .dijitContentPaneError .dijitIconError {margin-right: 0; margin-left: 9px;}.dijitTabControllerRtl .nowrapTabStrip {text-align: right;}.dijitTabRtl .dijitTabCloseButton {margin-left: 0; margin-right: 1em;}.dj_ie6 .dijitTabRtl .tabLabel,.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie6 .dijitTabContainerLeft-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerLeft-tabs .dijitTabRtl {zoom: 1;}.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl {left: 0;}.dj_ie6 .dijitTabContainerRightRtl .dijitTabContainerRight-tabs,.dj_ie6 .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs {width: 1%;}.dj_ie .dijitTimePickerRtl .dijitTimePickerItem {width:100%;}.dijitColorPaletteRtl .dijitColorPaletteUnder {left: auto; right: 0;}.dijitSelectRtl .dijitButtonContents {border-style: none none none solid; text-align: right;}.dijitRtl .dojoDndHorizontal .dojoDndItemBefore {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dijitRtl .dojoDndHorizontal .dojoDndItemAfter {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.claro .dijitTextBoxRtlError .dijitValidationContainer {border-left-width: 0 !important; border-right-width: 1px !important;}.claro .dijitComboButtonRtl .dijitStretch {-moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0;}.claro .dijitComboButtonRtl .dijitArrowButton {-moz-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px; padding: 3px 0 4px; border-left-width: 1px; border-right-width: 0;}.claro .dijitTabContainerTop-tabs .dijitTabRtl, .claro .dijitTabContainerBottom-tabs .dijitTabRtl {margin-right: 0; margin-left: 1px;}.claro .dijitSliderRtl .dijitSliderProgressBarH,.claro .dijitSliderRtl .dijitSliderRemainingBarH,.claro .dijitSliderRtl .dijitSliderLeftBumper,.claro .dijitSliderRtl .dijitSliderRightBumper,.claro .dijitSliderRtl .dijitSliderTopBumper {background-position: top right;}.claro .dijitSliderRtl .dijitSliderProgressBarV, .claro .dijitSliderRtl .dijitSliderRemainingBarV, .claro .dijitSliderRtl .dijitSliderBottomBumper {background-position: bottom right;}.claro .dijitSliderRtl .dijitSliderLeftBumper {border-left-width: 0; border-right-width: 1px;}.claro .dijitSliderRtl .dijitSliderRightBumper {border-left-width: 1px; border-right-width: 0;}.claro .dijitSliderRtl .dijitSliderIncrementIconH {background-position: -357px 50%;}.claro .dijitSliderRtl .dijitSliderDecrementIconH {background-position: -251px 50%;}.claro .dijitDialogRtl .dijitDialogCloseIcon {right: auto; left: 5px;}.claro .dijitDialogRtl .dijitDialogPaneActionBar {text-align: left; padding: 3px 7px 2px 5px;}.claro .dijitEditorRtl .dijitEditorIFrameContainer {padding: 3px 10px 1px 3px;}.dijitEditorRtl .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.dijitEditorRtlDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled_rtl.png");}.dijitToolbarRtl .dijitToolbarSeparator {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.dijitRtl .dijitIconSave,.dijitRtl .dijitIconPrint,.dijitRtl .dijitIconCut,.dijitRtl .dijitIconCopy,.dijitRtl .dijitIconClear,.dijitRtl .dijitIconDelete,.dijitRtl .dijitIconUndo,.dijitRtl .dijitIconEdit,.dijitRtl .dijitIconNewTask,.dijitRtl .dijitIconEditTask,.dijitRtl .dijitIconEditProperty,.dijitRtl .dijitIconTask,.dijitRtl .dijitIconFilter,.dijitRtl .dijitIconConfigure,.dijitRtl .dijitIconSearch,.dijitRtl .dijitIconApplication,.dijitRtl .dijitIconBookmark,.dijitRtl .dijitIconChart,.dijitRtl .dijitIconConnector,.dijitRtl .dijitIconDatabase,.dijitRtl .dijitIconDocuments,.dijitRtl .dijitIconMail,.dijitRtl .dijitLeaf,.dijitRtl .dijitIconFile,.dijitRtl .dijitIconFunction,.dijitRtl .dijitIconKey,.dijitRtl .dijitIconPackage,.dijitRtl .dijitIconSample,.dijitRtl .dijitIconTable,.dijitRtl .dijitIconUsers,.dijitRtl .dijitFolderClosed,.dijitRtl .dijitIconFolderClosed,.dijitRtl .dijitFolderOpened,.dijitRtl .dijitIconFolderOpen,.dijitRtl .dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled_rtl.png"); width: 16px; height: 16px;}.dj_ie6 .dijitRtl .dijitIconSave,.dj_ie6 .dijitRtl .dijitIconPrint,.dj_ie6 .dijitRtl .dijitIconCut,.dj_ie6 .dijitRtl .dijitIconCopy,.dj_ie6 .dijitRtl .dijitIconClear,.dj_ie6 .dijitRtl .dijitIconDelete,.dj_ie6 .dijitRtl .dijitIconUndo,.dj_ie6 .dijitRtl .dijitIconEdit,.dj_ie6 .dijitRtl .dijitIconNewTask,.dj_ie6 .dijitRtl .dijitIconEditTask,.dj_ie6 .dijitRtl .dijitIconEditProperty,.dj_ie6 .dijitRtl .dijitIconTask,.dj_ie6 .dijitRtl .dijitIconFilter,.dj_ie6 .dijitRtl .dijitIconConfigure,.dj_ie6 .dijitRtl .dijitIconSearch,.dj_ie6 .dijitRtl .dijitIconApplication,.dj_ie6 .dijitRtl .dijitIconBookmark,.dj_ie6 .dijitRtl .dijitIconChart,.dj_ie6 .dijitRtl .dijitIconConnector,.dj_ie6 .dijitRtl .dijitIconDatabase,.dj_ie6 .dijitRtl .dijitIconDocuments,.dj_ie6 .dijitRtl .dijitIconMail,.dj_ie6 .dijitRtl .dijitLeaf,.dj_ie6 .dijitRtl .dijitIconFile,.dj_ie6 .dijitRtl .dijitIconFunction,.dj_ie6 .dijitRtl .dijitIconKey,.dj_ie6 .dijitRtl .dijitIconPackage,.dj_ie6 .dijitRtl .dijitIconSample,.dj_ie6 .dijitRtl .dijitIconTable,.dj_ie6 .dijitRtl .dijitIconUsers,.dj_ie6 .dijitRtl .dijitFolderClosed,.dj_ie6 .dijitRtl .dijitIconFolderClosed,.dj_ie6 .dijitRtl .dijitFolderOpened,.dj_ie6 .dijitRtl .dijitIconFolderOpen,.dj_ie6 .dijitRtl .dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled8bit_rtl.png");}.dijitRtl .dijitDisabled .dijitIconSave,.dijitRtl .dijitDisabled .dijitIconPrint,.dijitRtl .dijitDisabled .dijitIconCut,.dijitRtl .dijitDisabled .dijitIconCopy,.dijitRtl .dijitDisabled .dijitIconClear,.dijitRtl .dijitDisabled .dijitIconDelete,.dijitRtl .dijitDisabled .dijitIconUndo,.dijitRtl .dijitDisabled .dijitIconEdit,.dijitRtl .dijitDisabled .dijitIconNewTask,.dijitRtl .dijitDisabled .dijitIconEditTask,.dijitRtl .dijitDisabled .dijitIconEditProperty,.dijitRtl .dijitDisabled .dijitIconTask,.dijitRtl .dijitDisabled .dijitIconFilter,.dijitRtl .dijitDisabled .dijitIconConfigure,.dijitRtl .dijitDisabled .dijitIconSearch,.dijitRtl .dijitDisabled .dijitIconApplication,.dijitRtl .dijitDisabled .dijitIconBookmark,.dijitRtl .dijitDisabled .dijitIconChart,.dijitRtl .dijitDisabled .dijitIconConnector,.dijitRtl .dijitDisabled .dijitIconDatabase,.dijitRtl .dijitDisabled .dijitIconDocuments,.dijitRtl .dijitDisabled .dijitIconMail,.dijitRtl .dijitDisabled .dijitLeaf,.dijitRtl .dijitDisabled .dijitIconFile,.dijitRtl .dijitDisabled .dijitIconFunction,.dijitRtl .dijitDisabled .dijitIconKey,.dijitRtl .dijitDisabled .dijitIconPackage,.dijitRtl .dijitDisabled .dijitIconSample,.dijitRtl .dijitDisabled .dijitIconTable,.dijitRtl .dijitDisabled .dijitIconUsers,.dijitRtl .dijitDisabled .dijitFolderClosed,.dijitRtl .dijitDisabled .dijitIconFolderClosed,.dijitRtl .dijitDisabled .dijitFolderOpened,.dijitRtl .dijitDisabled .dijitIconFolderOpen,.dijitRtl .dijitDisabled .dijitIconError {background-image: url("../../icons/images/commonIconsObjActDisabled_rtl.png");}.claro .dijitTitlePaneRtl .dijitClosed .dijitArrowNode {background-position: -7px 0;}.claro .dijitMenuItemRtl .dijitMenuExpand {background-position: -7px 0; margin-right: 0; margin-left: 3px;}.claro .dijitMenuItemRtl .dijitMenuItemIcon {margin: 0 4px 0 0;}.claro .dijitCalendarRtl .dijitCalendarIncrease {background-position: 0 0;}.claro .dijitCalendarRtl .dijitCalendarDecrease {background-position: -18px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarIncrease {background-position: -36px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarDecrease {background-position: -55px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarIncrease {background-position: -72px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarDecrease {background-position: -91px 0;}.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickHover,.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerHover,.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerSelected,.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickSelected {margin-left: -6px; margin-right: -8px; width: 114%;}.claro .dijitToolbar .dijitComboButtonRtl .dijitButtonNode {border-width: 0; padding: 2px;}.claro .dijitToolbar .dijitComboButtonRtlHover .dijitButtonNode, .claro .dijitToolbar .dijitComboButtonRtlActive .dijitButtonNode {border-width: 1px; padding: 1px;}.claro .dijitToolbar .dijitComboButtonRtl .dijitStretch {-moz-border-radius: 0 2px 2px 0; border-radius: 0 2px 2px 0;}.claro .dijitToolbar .dijitComboButtonRtl .dijitArrowButton {-moz-border-radius: 2px 0 0 2px; border-radius: 2px 0 0 2px;}.claro .dijitToolbar .dijitComboButtonRtlHover .dijitArrowButton, .claro .dijitToolbar .dijitComboButtonRtlActive .dijitArrowButton {border-left-width: 1px; border-right-width: 0; padding-left: 1px; padding-right: 2px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/claro_rtl.css b/lib/dijit/themes/claro/claro_rtl.css
index 6f85707f5..59e6495be 100644
--- a/lib/dijit/themes/claro/claro_rtl.css
+++ b/lib/dijit/themes/claro/claro_rtl.css
@@ -1,16 +1 @@
-/* RTL files */
-@import url("../dijit_rtl.css");
-@import url("form/Common_rtl.css");
-@import url("form/Button_rtl.css");
-@import url("layout/TabContainer_rtl.css");
-@import url("form/Slider_rtl.css");
-@import url("form/Select_rtl.css");
-@import url("Dialog_rtl.css");
-@import url("Editor_rtl.css");
-@import url("../../icons/editorIcons_rtl.css");/* RTL sprite for editor icons to be used by all themes*/
-@import url("../../icons/commonIcons_rtl.css");/* RTL sprite for common icons to be used by all themes*/
-@import url("TitlePane_rtl.css");
-@import url("Menu_rtl.css");
-@import url("Calendar_rtl.css");
-@import url("TimePicker_rtl.css");
-@import url("Toolbar_rtl.css");
+.dijitRtl .dijitPlaceHolder {left: auto; right: 0;}.dijitMenuItemRtl {text-align: right;}.dj_iequirks .dijitComboButtonRtl button {float:left;}.dj_ie .dijitTextBoxRtl .dijitInputContainer {clear: right;}.dijitTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitComboBoxRtl .dijitArrowButtonContainer {border-right-width: 1px !important; border-left-width: 0 !important;}.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton {right: 0; left: auto;}.dijitSelectRtl .dijitButtonText {float: right;}.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitValidationTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitArrowButtonContainer {float: left;}div.dijitNumberTextBoxRtl {text-align: right;}.dijitCalendarRtl .dijitCalendarNextYear {margin:0 0.55em 0 0;}.dijitCalendarRtl .dijitCalendarPreviousYear {margin:0 0 0 0.55em;}.dijitSliderRtl .dijitSliderImageHandleV {left:auto;}.dijitSliderRtl .dijitSliderImageHandleH {left:-50%;}.dijitSliderRtl .dijitSliderMoveableH {right:auto; left:0;}.dijitSliderRtl .dijitRuleContainerV {float:right;}.dj_ie .dijitSliderRtl .dijitRuleContainerV {text-align:right;}.dj_ie .dijitSliderRtl .dijitRuleLabelV {text-align:left;}.dj_ie .dijitSliderRtl .dijitRuleLabelH {zoom:1;}.dijitSliderRtl .dijitSliderProgressBarH {float:right; right:0; left:auto;}.dijitRtl .dijitContentPaneLoading .dijitIconLoading,.dijitRtl .dijitContentPaneError .dijitIconError {margin-right: 0; margin-left: 9px;}.dijitTabControllerRtl .nowrapTabStrip {text-align: right;}.dijitTabRtl .dijitTabCloseButton {margin-left: 0; margin-right: 1em;}.dj_ie6 .dijitTabRtl .tabLabel,.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie6 .dijitTabContainerLeft-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerLeft-tabs .dijitTabRtl {zoom: 1;}.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl {left: 0;}.dj_ie6 .dijitTabContainerRightRtl .dijitTabContainerRight-tabs,.dj_ie6 .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs {width: 1%;}.dj_ie .dijitTimePickerRtl .dijitTimePickerItem {width:100%;}.dijitColorPaletteRtl .dijitColorPaletteUnder {left: auto; right: 0;}.dijitSelectRtl .dijitButtonContents {border-style: none none none solid; text-align: right;}.dijitRtl .dojoDndHorizontal .dojoDndItemBefore {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dijitRtl .dojoDndHorizontal .dojoDndItemAfter {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.claro .dijitTextBoxRtlError .dijitValidationContainer {border-left-width: 0 !important; border-right-width: 1px !important;}.claro .dijitComboButtonRtl .dijitStretch {-moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0;}.claro .dijitComboButtonRtl .dijitArrowButton {-moz-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px; padding: 3px 0 4px; border-left-width: 1px; border-right-width: 0;}.claro .dijitTabContainerTop-tabs .dijitTabRtl, .claro .dijitTabContainerBottom-tabs .dijitTabRtl {margin-right: 0; margin-left: 1px;}.claro .dijitSliderRtl .dijitSliderProgressBarH,.claro .dijitSliderRtl .dijitSliderRemainingBarH,.claro .dijitSliderRtl .dijitSliderLeftBumper,.claro .dijitSliderRtl .dijitSliderRightBumper,.claro .dijitSliderRtl .dijitSliderTopBumper {background-position: top right;}.claro .dijitSliderRtl .dijitSliderProgressBarV, .claro .dijitSliderRtl .dijitSliderRemainingBarV, .claro .dijitSliderRtl .dijitSliderBottomBumper {background-position: bottom right;}.claro .dijitSliderRtl .dijitSliderLeftBumper {border-left-width: 0; border-right-width: 1px;}.claro .dijitSliderRtl .dijitSliderRightBumper {border-left-width: 1px; border-right-width: 0;}.claro .dijitSliderRtl .dijitSliderIncrementIconH {background-position: -357px 50%;}.claro .dijitSliderRtl .dijitSliderDecrementIconH {background-position: -251px 50%;}.claro .dijitDialogRtl .dijitDialogCloseIcon {right: auto; left: 5px;}.claro .dijitDialogRtl .dijitDialogPaneActionBar {text-align: left; padding: 3px 7px 2px 5px;}.claro .dijitEditorRtl .dijitEditorIFrameContainer {padding: 3px 10px 1px 3px;}.dijitEditorRtl .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.dijitEditorRtlDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled_rtl.png");}.dijitToolbarRtl .dijitToolbarSeparator {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.dijitRtl .dijitIconSave,.dijitRtl .dijitIconPrint,.dijitRtl .dijitIconCut,.dijitRtl .dijitIconCopy,.dijitRtl .dijitIconClear,.dijitRtl .dijitIconDelete,.dijitRtl .dijitIconUndo,.dijitRtl .dijitIconEdit,.dijitRtl .dijitIconNewTask,.dijitRtl .dijitIconEditTask,.dijitRtl .dijitIconEditProperty,.dijitRtl .dijitIconTask,.dijitRtl .dijitIconFilter,.dijitRtl .dijitIconConfigure,.dijitRtl .dijitIconSearch,.dijitRtl .dijitIconApplication,.dijitRtl .dijitIconBookmark,.dijitRtl .dijitIconChart,.dijitRtl .dijitIconConnector,.dijitRtl .dijitIconDatabase,.dijitRtl .dijitIconDocuments,.dijitRtl .dijitIconMail,.dijitRtl .dijitLeaf,.dijitRtl .dijitIconFile,.dijitRtl .dijitIconFunction,.dijitRtl .dijitIconKey,.dijitRtl .dijitIconPackage,.dijitRtl .dijitIconSample,.dijitRtl .dijitIconTable,.dijitRtl .dijitIconUsers,.dijitRtl .dijitFolderClosed,.dijitRtl .dijitIconFolderClosed,.dijitRtl .dijitFolderOpened,.dijitRtl .dijitIconFolderOpen,.dijitRtl .dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled_rtl.png"); width: 16px; height: 16px;}.dj_ie6 .dijitRtl .dijitIconSave,.dj_ie6 .dijitRtl .dijitIconPrint,.dj_ie6 .dijitRtl .dijitIconCut,.dj_ie6 .dijitRtl .dijitIconCopy,.dj_ie6 .dijitRtl .dijitIconClear,.dj_ie6 .dijitRtl .dijitIconDelete,.dj_ie6 .dijitRtl .dijitIconUndo,.dj_ie6 .dijitRtl .dijitIconEdit,.dj_ie6 .dijitRtl .dijitIconNewTask,.dj_ie6 .dijitRtl .dijitIconEditTask,.dj_ie6 .dijitRtl .dijitIconEditProperty,.dj_ie6 .dijitRtl .dijitIconTask,.dj_ie6 .dijitRtl .dijitIconFilter,.dj_ie6 .dijitRtl .dijitIconConfigure,.dj_ie6 .dijitRtl .dijitIconSearch,.dj_ie6 .dijitRtl .dijitIconApplication,.dj_ie6 .dijitRtl .dijitIconBookmark,.dj_ie6 .dijitRtl .dijitIconChart,.dj_ie6 .dijitRtl .dijitIconConnector,.dj_ie6 .dijitRtl .dijitIconDatabase,.dj_ie6 .dijitRtl .dijitIconDocuments,.dj_ie6 .dijitRtl .dijitIconMail,.dj_ie6 .dijitRtl .dijitLeaf,.dj_ie6 .dijitRtl .dijitIconFile,.dj_ie6 .dijitRtl .dijitIconFunction,.dj_ie6 .dijitRtl .dijitIconKey,.dj_ie6 .dijitRtl .dijitIconPackage,.dj_ie6 .dijitRtl .dijitIconSample,.dj_ie6 .dijitRtl .dijitIconTable,.dj_ie6 .dijitRtl .dijitIconUsers,.dj_ie6 .dijitRtl .dijitFolderClosed,.dj_ie6 .dijitRtl .dijitIconFolderClosed,.dj_ie6 .dijitRtl .dijitFolderOpened,.dj_ie6 .dijitRtl .dijitIconFolderOpen,.dj_ie6 .dijitRtl .dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled8bit_rtl.png");}.dijitRtl .dijitDisabled .dijitIconSave,.dijitRtl .dijitDisabled .dijitIconPrint,.dijitRtl .dijitDisabled .dijitIconCut,.dijitRtl .dijitDisabled .dijitIconCopy,.dijitRtl .dijitDisabled .dijitIconClear,.dijitRtl .dijitDisabled .dijitIconDelete,.dijitRtl .dijitDisabled .dijitIconUndo,.dijitRtl .dijitDisabled .dijitIconEdit,.dijitRtl .dijitDisabled .dijitIconNewTask,.dijitRtl .dijitDisabled .dijitIconEditTask,.dijitRtl .dijitDisabled .dijitIconEditProperty,.dijitRtl .dijitDisabled .dijitIconTask,.dijitRtl .dijitDisabled .dijitIconFilter,.dijitRtl .dijitDisabled .dijitIconConfigure,.dijitRtl .dijitDisabled .dijitIconSearch,.dijitRtl .dijitDisabled .dijitIconApplication,.dijitRtl .dijitDisabled .dijitIconBookmark,.dijitRtl .dijitDisabled .dijitIconChart,.dijitRtl .dijitDisabled .dijitIconConnector,.dijitRtl .dijitDisabled .dijitIconDatabase,.dijitRtl .dijitDisabled .dijitIconDocuments,.dijitRtl .dijitDisabled .dijitIconMail,.dijitRtl .dijitDisabled .dijitLeaf,.dijitRtl .dijitDisabled .dijitIconFile,.dijitRtl .dijitDisabled .dijitIconFunction,.dijitRtl .dijitDisabled .dijitIconKey,.dijitRtl .dijitDisabled .dijitIconPackage,.dijitRtl .dijitDisabled .dijitIconSample,.dijitRtl .dijitDisabled .dijitIconTable,.dijitRtl .dijitDisabled .dijitIconUsers,.dijitRtl .dijitDisabled .dijitFolderClosed,.dijitRtl .dijitDisabled .dijitIconFolderClosed,.dijitRtl .dijitDisabled .dijitFolderOpened,.dijitRtl .dijitDisabled .dijitIconFolderOpen,.dijitRtl .dijitDisabled .dijitIconError {background-image: url("../../icons/images/commonIconsObjActDisabled_rtl.png");}.claro .dijitTitlePaneRtl .dijitClosed .dijitArrowNode {background-position: -7px 0;}.claro .dijitMenuItemRtl .dijitMenuExpand {background-position: -7px 0; margin-right: 0; margin-left: 3px;}.claro .dijitMenuItemRtl .dijitMenuItemIcon {margin: 0 4px 0 0;}.claro .dijitCalendarRtl .dijitCalendarIncrease {background-position: 0 0;}.claro .dijitCalendarRtl .dijitCalendarDecrease {background-position: -18px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarIncrease {background-position: -36px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarDecrease {background-position: -55px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarIncrease {background-position: -72px 0;}.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarDecrease {background-position: -91px 0;}.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickHover,.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerHover,.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerSelected,.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickSelected {margin-left: -6px; margin-right: -8px; width: 114%;}.claro .dijitToolbar .dijitComboButtonRtl .dijitButtonNode {border-width: 0; padding: 2px;}.claro .dijitToolbar .dijitComboButtonRtlHover .dijitButtonNode, .claro .dijitToolbar .dijitComboButtonRtlActive .dijitButtonNode {border-width: 1px; padding: 1px;}.claro .dijitToolbar .dijitComboButtonRtl .dijitStretch {-moz-border-radius: 0 2px 2px 0; border-radius: 0 2px 2px 0;}.claro .dijitToolbar .dijitComboButtonRtl .dijitArrowButton {-moz-border-radius: 2px 0 0 2px; border-radius: 2px 0 0 2px;}.claro .dijitToolbar .dijitComboButtonRtlHover .dijitArrowButton, .claro .dijitToolbar .dijitComboButtonRtlActive .dijitArrowButton {border-left-width: 1px; border-right-width: 0; padding-left: 1px; padding-right: 2px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/document.css b/lib/dijit/themes/claro/document.css
index 64e470cf3..185cf33c0 100644
--- a/lib/dijit/themes/claro/document.css
+++ b/lib/dijit/themes/claro/document.css
@@ -1,41 +1 @@
-@import url("../../../dojo/resources/dojo.css");
-/* ======= Styling for the document itself (overriding dojo.css) ======== */
-.claro {
- font-family: Verdana, Arial, Helvetica, sans-serif;
- font-size: .688em;
- color: #131313;
-}
-/* Headings */
-.claro h1 {
- font-size: 1.545em;
- margin-bottom: 0.727em;
-}
-.claro h2 {
- font-size: 1.364em;
- line-height: 1.455em;
- margin-top: 1em;
- margin-bottom: 0.60em;
- font-weight: normal;
-}
-.claro h3,
-.claro h4,
-.claro h5,
-.claro h6 {
- font-size: 1.091em;
- font-weight: normal;
-}
-/* paragraphs, quotes and lists */
-.claro p {
- line-height: 1.3em;
-}
-/* pre and code */
-.claro pre, .claro code {
- font-family: inherit;
- background-color: #efefef;
- border: 1px solid #d3d3d3;
-}
-/* tables */
-.claro table.dojoTabular thead, .claro table.dojoTabular tfoot {
- background-color: #efefef;
- border: 1px solid #d3d3d3;
-}
+body, div, dl, dt, dd, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {margin: 0; padding: 0;}fieldset, img {border: 0 none;}address, caption, cite, code, dfn, th, var {font-style: normal; font-weight: normal;}caption, th {text-align: left;}q:before, q:after {content:"";}abbr, acronym {border:0;}body {font: 12px Myriad,Helvetica,Tahoma,Arial,clean,sans-serif; *font-size: 75%;}h1 {font-size: 1.5em; font-weight: normal; line-height: 1em; margin-top: 1em; margin-bottom:0;}h2 {font-size: 1.1667em; font-weight: bold; line-height: 1.286em; margin-top: 1.929em; margin-bottom:0.643em;}h3, h4, h5, h6 {font-size: 1em; font-weight: bold; line-height: 1.5em; margin-top: 1.5em; margin-bottom: 0;}p {font-size: 1em; margin-top: 1.5em; margin-bottom: 1.5em; line-height: 1.5em;}blockquote {font-size: 0.916em; margin-top: 3.272em; margin-bottom: 3.272em; line-height: 1.636em; padding: 1.636em; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc;}ol li, ul li {font-size: 1em; line-height: 1.5em; margin: 0;}pre, code {font-size:115%; *font-size:100%; font-family: Courier, "Courier New"; background-color: #efefef; border: 1px solid #ccc;}pre {border-width: 1px 0; padding: 1.5em;}table {font-size:100%;}.dojoTabular {border-collapse: collapse; border-spacing: 0; border: 1px solid #ccc; margin: 0 1.5em;}.dojoTabular th {text-align: center; font-weight: bold;}.dojoTabular thead,.dojoTabular tfoot {background-color: #efefef; border: 1px solid #ccc; border-width: 1px 0;}.dojoTabular th,.dojoTabular td {padding: 0.25em 0.5em;}.claro {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: .688em; color: #131313;}.claro h1 {font-size: 1.545em; margin-bottom: 0.727em;}.claro h2 {font-size: 1.364em; line-height: 1.455em; margin-top: 1em; margin-bottom: 0.60em; font-weight: normal;}.claro h3,.claro h4,.claro h5,.claro h6 {font-size: 1.091em; font-weight: normal;}.claro p {line-height: 1.3em;}.claro pre, .claro code {font-family: inherit; background-color: #efefef; border: 1px solid #d3d3d3;}.claro table.dojoTabular thead, .claro table.dojoTabular tfoot {background-color: #efefef; border: 1px solid #d3d3d3;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/Button.css b/lib/dijit/themes/claro/form/Button.css
index bc7c3dc18..e95bf379e 100644
--- a/lib/dijit/themes/claro/form/Button.css
+++ b/lib/dijit/themes/claro/form/Button.css
@@ -1,162 +1 @@
-/* Button | DropDownButton | ComboButton | ToggleButton
- *
- * Styling Buttons mainly includes:
- *
- * 1. Containers
- * .dijitButton
- * .dijitDropDownButton
- * .dijitComboButton
- * .dijitButtonNode - common button/arrow wrapper shared across all three button types
- *
- * 2. Button text
- * .dijitButtonText
- *
- * 3. Arrows - only for DropDownButton and ComboButton
- * There are total four directions arrows - down, left, right, up:
- * .dijitArrowButtonInner - down arrow by default
- * .dijitLeftArrowButton .dijitArrowButtonInner - left arrow
- * .dijitRightArrowButton .dijitArrowButtonInner - right arrow
- * .dijitUpArrowButton .dijitArrowButtonInner - up arrow
- *
- * 4. States - Hover, Active, Disabled, e.g.
- * .dijitButtonHover .dijitButtonNode
- * .dijitButtonActive .dijitButtonNode
- * .dijitButtonDisabled .dijitButtonNode
- *
- * .dijitDisabled .dijitArrowButtonInner - disabled arrow states
- */
-.claro .dijitButtonNode {
- /* rules for dijit.form.*Button widgets and arrow nodes on ComboBox, Spinner etc. */
-
- -webkit-transition-property: background-color;
- -moz-transition-property: background-color;
- transition-property: background-color;
- -webkit-transition-duration: 0.3s;
- -moz-transition-duration: 0.3s;
- transition-duration: 0.3s;
-}
-.claro .dijitButton .dijitButtonNode,
-.claro .dijitDropDownButton .dijitButtonNode,
-.claro .dijitComboButton .dijitButtonNode,
-.claro .dijitToggleButton .dijitButtonNode {
- /* rules for the dijit.form.*Button widgets (see also ComboButton section below) */
-
- border: 1px solid #759dc0;
- padding: 2px 4px 4px 4px;
- background-image: url("../form/images/button.png");
- background-position: center top;
- background-repeat: repeat-x;
- background-color: #e5f2fe;
- color: #000000;
- -moz-border-radius: 4px;
- border-radius: 4px;
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
- -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
-}
-.claro .dijitComboButton .dijitArrowButton {
- border-left-width: 0;
- padding: 4px 2px 4px 2px;
- /* TODO: still needed? */
-
-}
-/*arrow styles for down/up/left/right directions*/
-.claro .dijitArrowButtonInner {
- width: 15px;
- height: 15px;
- margin: 0 auto;
- background-image: url("../form/images/buttonArrows.png");
- background-repeat: no-repeat;
- background-position: -51px 53%;
-}
-.claro .dijitLeftArrowButton .dijitArrowButtonInner {
- background-position: -77px 53%;
-}
-.claro .dijitRightArrowButton .dijitArrowButtonInner {
- background-position: -26px 53%;
-}
-.claro .dijitUpArrowButton .dijitArrowButtonInner {
- background-position: 0 53%;
-}
-.claro .dijitDisabled .dijitArrowButtonInner {
- background-position: -151px 53%;
-}
-.claro .dijitDisabled .dijitLeftArrowButton .dijitArrowButtonInner {
- background-position: -177px 53%;
-}
-.claro .dijitDisabled .dijitRightArrowButton .dijitArrowButtonInner {
- background-position: -126px 53%;
-}
-.claro .dijitDisabled .dijitUpArrowButton .dijitArrowButtonInner {
- background-position: -100px 53%;
-}
-.claro .dijitButtonText {
- padding: 0 0.3em;
- text-align: center;
-}
-/* hover status */
-.claro .dijitButtonHover .dijitButtonNode,
-.claro .dijitDropDownButtonHover .dijitButtonNode,
-.claro .dijitComboButton .dijitButtonNodeHover,
-.claro .dijitComboButton .dijitDownArrowButtonHover,
-.claro .dijitToggleButtonHover .dijitButtonNode {
- background-color: #abd6ff;
- color: #000000;
- -webkit-transition-duration: 0.2s;
- -moz-transition-duration: 0.2s;
- transition-duration: 0.2s;
-}
-/* active, checked status */
-.claro .dijitButtonActive .dijitButtonNode,
-.claro .dijitDropDownButtonActive .dijitButtonNode,
-.claro .dijitComboButtonActive .dijitButtonNode,
-.claro .dijitToggleButtonActive .dijitButtonNode,
-.claro .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {
- background-color: #abd6ff;
- -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- -webkit-transition-duration: 0.1s;
- -moz-transition-duration: 0.1s;
- transition-duration: 0.1s;
-}
-/* disabled status */
-.claro .dijitButtonDisabled,
-.claro .dijitDropDownButtonDisabled,
-.claro .dijitComboButtonDisabled,
-.claro .dijitToggleButtonDisabled {
- background-image: none;
- outline: none;
-}
-.claro .dijitButtonDisabled .dijitButtonNode,
-.claro .dijitDropDownButtonDisabled .dijitButtonNode,
-.claro .dijitComboButtonDisabled .dijitButtonNode,
-.claro .dijitToggleButtonDisabled .dijitButtonNode {
- background-position: 0 -149px;
- background-color: #efefef;
- border: solid 1px #d3d3d3;
- color: #818181;
- -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- box-shadow: 0 0 0 rgba(0, 0, 0, 0);
-}
-.claro .dijitComboButtonDisabled .dijitArrowButton {
- border-left-width: 0;
-}
-/* for ComboButton */
-.claro table.dijitComboButton {
- border-collapse: separate;
- /* override dijit.css so that ComboBox rounded corners work */
-
-}
-.dj_ie6 .claro .dijitButtonNode {
- background-image: none;
-}
-.claro .dijitComboButton .dijitStretch {
- -moz-border-radius: 4px 0 0 4px;
- border-radius: 4px 0 0 4px;
-}
-.claro .dijitComboButton .dijitArrowButton {
- -moz-border-radius: 0 4px 4px 0;
- border-radius: 0 4px 4px 0;
-}
+.claro .dijitButtonNode {-webkit-transition-property: background-color; -moz-transition-property: background-color; transition-property: background-color; -webkit-transition-duration: 0.3s; -moz-transition-duration: 0.3s; transition-duration: 0.3s;}.claro .dijitButton .dijitButtonNode,.claro .dijitDropDownButton .dijitButtonNode,.claro .dijitComboButton .dijitButtonNode,.claro .dijitToggleButton .dijitButtonNode {border: 1px solid #759dc0; padding: 2px 4px 4px 4px; color: #000000; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15); background-color: #bcd8f4; background-image: url("images/buttonEnabled.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0) 3px, rgba(255, 255, 255, 0.75) 100%); background-image: -webkit-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0) 3px, rgba(255, 255, 255, 0.75) 100%); background-image: -o-linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0) 3px, rgba(255, 255, 255, 0.75) 100%); background-image: linear-gradient(#ffffff 0px, rgba(255, 255, 255, 0) 3px, rgba(255, 255, 255, 0.75) 100%); _background-image: none;}.claro .dijitComboButton .dijitArrowButton {border-left-width: 0; padding: 4px 2px 4px 2px;}.claro .dijitArrowButtonInner {width: 15px; height: 15px; margin: 0 auto; background-image: url("../form/images/buttonArrows.png"); background-repeat: no-repeat; background-position: -51px 53%;}.claro .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -77px 53%;}.claro .dijitRightArrowButton .dijitArrowButtonInner {background-position: -26px 53%;}.claro .dijitUpArrowButton .dijitArrowButtonInner {background-position: 0 53%;}.claro .dijitDisabled .dijitArrowButtonInner {background-position: -151px 53%;}.claro .dijitDisabled .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -177px 53%;}.claro .dijitDisabled .dijitRightArrowButton .dijitArrowButtonInner {background-position: -126px 53%;}.claro .dijitDisabled .dijitUpArrowButton .dijitArrowButtonInner {background-position: -100px 53%;}.claro .dijitButtonText {padding: 0 0.3em; text-align: center;}.claro .dijitButtonHover .dijitButtonNode,.claro .dijitDropDownButtonHover .dijitButtonNode,.claro .dijitComboButton .dijitButtonNodeHover,.claro .dijitComboButton .dijitDownArrowButtonHover,.claro .dijitToggleButtonHover .dijitButtonNode {background-color: #86bdf2; color: #000000; -webkit-transition-duration: 0.2s; -moz-transition-duration: 0.2s; transition-duration: 0.2s;}.claro .dijitButtonActive .dijitButtonNode,.claro .dijitDropDownButtonActive .dijitButtonNode,.claro .dijitComboButtonActive .dijitButtonNode,.claro .dijitToggleButtonActive .dijitButtonNode,.claro .dijitToggleButtonChecked .dijitButtonNode {background-color: #86bdf2; -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.claro .dijitButtonDisabled,.claro .dijitDropDownButtonDisabled,.claro .dijitComboButtonDisabled,.claro .dijitToggleButtonDisabled {background-image: none; outline: none;}.claro .dijitButtonDisabled .dijitButtonNode,.claro .dijitDropDownButtonDisabled .dijitButtonNode,.claro .dijitComboButtonDisabled .dijitButtonNode,.claro .dijitToggleButtonDisabled .dijitButtonNode {background-color: #efefef; border: solid 1px #d3d3d3; color: #818181; -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0); -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0); box-shadow: 0 0 0 rgba(0, 0, 0, 0); background-image: url("images/buttonDisabled.png"); background-image: -moz-linear-gradient(#ffffff 0%, rgba(255, 255, 255, 0) 40%); background-image: -webkit-linear-gradient(#ffffff 0%, rgba(255, 255, 255, 0) 40%); background-image: -o-linear-gradient(#ffffff 0%, rgba(255, 255, 255, 0) 40%); background-image: linear-gradient(#ffffff 0%, rgba(255, 255, 255, 0) 40%); _background-image: none;}.claro .dijitComboButtonDisabled .dijitArrowButton {border-left-width: 0;}.claro table.dijitComboButton {border-collapse: separate;}.claro .dijitComboButton .dijitStretch {-moz-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px;}.claro .dijitComboButton .dijitArrowButton {-moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/Button.less b/lib/dijit/themes/claro/form/Button.less
index 208e4de52..5d5953237 100644
--- a/lib/dijit/themes/claro/form/Button.less
+++ b/lib/dijit/themes/claro/form/Button.less
@@ -40,16 +40,22 @@
.claro .dijitToggleButton .dijitButtonNode {
/* rules for the dijit.form.*Button widgets (see also ComboButton section below) */
border: 1px solid @button-border-color;
- padding:2px 4px 4px 4px;
- background-image: url("../@{image-form-button}");
- background-position: center top;
- background-repeat: repeat-x;
- background-color: @button-background-color;
+ padding: 2px 4px 4px 4px;
color: @text-color;
.border-radius(@button-border-radius);
.box-shadow(0 1px 1px rgba(0,0,0,0.15));
+
+ background-color: desaturate(darken(@button-background-color, 10), 20);
+
+ // Alpha transparency layer to add gradient to above background color.
+ // Use CSS gradient with fallback to image for IE.
+ background-image: url("images/buttonEnabled.png");
+ background-repeat: repeat-x;
+ .alpha-white-gradient(1, 0px, 0, 3px, 0.75, 100%);
+ _background-image: none; // IE6 can't handle background-color and background-image at once.
}
+
.claro .dijitComboButton .dijitArrowButton {
border-left-width: 0;
padding: 4px 2px 4px 2px; /* TODO: still needed? */
@@ -101,7 +107,7 @@
.claro .dijitComboButton .dijitButtonNodeHover,
.claro .dijitComboButton .dijitDownArrowButtonHover,
.claro .dijitToggleButtonHover .dijitButtonNode {
- background-color: @button-hovered-background-color;
+ background-color: desaturate(darken(@button-hovered-background-color, 10), 20);
color:@text-color;
.transition-duration(.2s);
}
@@ -111,9 +117,9 @@
.claro .dijitDropDownButtonActive .dijitButtonNode,
.claro .dijitComboButtonActive .dijitButtonNode,
.claro .dijitToggleButtonActive .dijitButtonNode,
-.claro .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {
- background-color: @button-pressed-background-color;
- .box-shadow(0 0 0 rgba(0,0,0,0));
+.claro .dijitToggleButtonChecked .dijitButtonNode {
+ background-color: desaturate(darken(@button-pressed-background-color, 10), 20);
+ .box-shadow(inset 0px 1px 1px rgba(0, 0, 0, 0.2));
.transition-duration(.1s);
}
@@ -129,13 +135,19 @@
.claro .dijitButtonDisabled .dijitButtonNode,
.claro .dijitDropDownButtonDisabled .dijitButtonNode,
.claro .dijitComboButtonDisabled .dijitButtonNode,
-.claro .dijitToggleButtonDisabled .dijitButtonNode {
- background-position:0 -149px;
+.claro .dijitToggleButtonDisabled .dijitButtonNode {
background-color: @disabled-background-color;
border: solid 1px @disabled-border-color;
color: @disabled-text-color;
.box-shadow(0 0 0 rgba(0,0,0,0));
+
+ // Change the gradient from light to dark.
+ // Again using CSS gradient with fallback to image for IE.
+ background-image: url("images/buttonDisabled.png");
+ .alpha-white-gradient(1, 0%, 0, 40%);
+ _background-image: none; // IE6 can't handle background-color and background-image at once.
}
+
.claro .dijitComboButtonDisabled .dijitArrowButton{
border-left-width: 0;
}
@@ -144,10 +156,6 @@
border-collapse: separate; /* override dijit.css so that ComboBox rounded corners work */
}
-.dj_ie6 .claro .dijitButtonNode {
- background-image: none;
-}
-
.claro .dijitComboButton .dijitStretch {
.border-radius(@button-border-radius 0 0 @button-border-radius);
}
diff --git a/lib/dijit/themes/claro/form/Button_rtl.css b/lib/dijit/themes/claro/form/Button_rtl.css
index 2d5b08bff..7f22f9f1c 100644
--- a/lib/dijit/themes/claro/form/Button_rtl.css
+++ b/lib/dijit/themes/claro/form/Button_rtl.css
@@ -1,13 +1 @@
-/* Combo Button */
-.claro .dijitComboButtonRtl .dijitStretch {
- -moz-border-radius: 0 4px 4px 0;
- border-radius: 0 4px 4px 0;
-}
-.claro .dijitComboButtonRtl .dijitArrowButton {
- -moz-border-radius: 4px 0 0 4px;
- border-radius: 4px 0 0 4px;
- padding: 3px 0 4px;
- border-left-width: 1px;
- border-right-width: 0;
-}
-/* End Combo Button */ \ No newline at end of file
+.claro .dijitComboButtonRtl .dijitStretch {-moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0;}.claro .dijitComboButtonRtl .dijitArrowButton {-moz-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px; padding: 3px 0 4px; border-left-width: 1px; border-right-width: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/Checkbox.css b/lib/dijit/themes/claro/form/Checkbox.css
index 1c1a3c438..bde32cbb2 100644
--- a/lib/dijit/themes/claro/form/Checkbox.css
+++ b/lib/dijit/themes/claro/form/Checkbox.css
@@ -1,71 +1 @@
-/* CheckBox
- *
- * Styling CheckBox mainly includes:
- *
- * 1. Containers
- * .dijitCheckBox|.dijitCheckBoxIcon - for border, padding, width|height and background image
- *
- * 2. CheckBox within ToggleButton
- * .dijitToggleButton|.dijitToggleButtonChecked .* - for background image
- *
- * 3. Checked state
- * .dijitCheckBoxChecked - for checked background-color|image
- * .dijitToggleButtonChecked - for border, background-color|image, display and width|height
- *
- * 4. Hover state
- * .dijitCheckBoxHover|.dijitCheckBoxCheckedHover - for background image
- *
- * 5. Disabled state
- * .dijitCheckBoxDisabled|.dijitCheckBoxCheckedDisabled - for background image
- */
-.claro .dijitToggleButton .dijitCheckBoxIcon {
- background-image: url("../images/checkmarkNoBorder.png");
-}
-.dj_ie6 .claro .dijitToggleButton .dijitCheckBoxIcon {
- background-image: url("../images/checkmarkNoBorder.gif");
-}
-.claro .dijitCheckBox, .claro .dijitCheckBoxIcon {
- background-image: url("../form/images/checkboxRadioButtonStates.png");
- /* checkbox sprite image */
-
- background-repeat: no-repeat;
- width: 15px;
- height: 16px;
- margin: 0 2px 0 0;
- padding: 0;
-}
-.dj_ie6 .claro .dijitCheckBox, .dj_ie6 .claro .dijitCheckBoxIcon {
- background-image: url("../form/images/checkboxAndRadioButtons_IE6.png");
- /* checkbox sprite image */
-
-}
-.claro .dijitCheckBox, .claro .dijitToggleButton .dijitCheckBoxIcon {
- /* unchecked */
-
- background-position: -15px;
-}
-.claro .dijitCheckBoxChecked, .claro .dijitToggleButtonChecked .dijitCheckBoxIcon {
- /* checked */
-
- background-position: 0;
-}
-.claro .dijitCheckBoxDisabled {
- /* disabled */
-
- background-position: -75px;
-}
-.claro .dijitCheckBoxCheckedDisabled {
- /* disabled but checked */
-
- background-position: -60px;
-}
-.claro .dijitCheckBoxHover {
- /* hovering over an unchecked enabled checkbox */
-
- background-position: -45px;
-}
-.claro .dijitCheckBoxCheckedHover {
- /* hovering over an checked enabled checkbox */
-
- background-position: -30px;
-}
+.claro .dijitToggleButton .dijitCheckBoxIcon {background-image: url("../images/checkmarkNoBorder.png");}.dj_ie6 .claro .dijitToggleButton .dijitCheckBoxIcon {background-image: url("../images/checkmarkNoBorder.gif");}.claro .dijitCheckBox, .claro .dijitCheckBoxIcon {background-image: url("../form/images/checkboxRadioButtonStates.png"); background-repeat: no-repeat; width: 15px; height: 16px; margin: 0 2px 0 0; padding: 0;}.dj_ie6 .claro .dijitCheckBox, .dj_ie6 .claro .dijitCheckBoxIcon {background-image: url("../form/images/checkboxAndRadioButtons_IE6.png");}.claro .dijitCheckBox, .claro .dijitToggleButton .dijitCheckBoxIcon {background-position: -15px;}.claro .dijitCheckBoxChecked, .claro .dijitToggleButtonChecked .dijitCheckBoxIcon {background-position: 0;}.claro .dijitCheckBoxDisabled {background-position: -75px;}.claro .dijitCheckBoxCheckedDisabled {background-position: -60px;}.claro .dijitCheckBoxHover {background-position: -45px;}.claro .dijitCheckBoxCheckedHover {background-position: -30px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/Common.css b/lib/dijit/themes/claro/form/Common.css
index ce108c1ae..6fff5bce9 100644
--- a/lib/dijit/themes/claro/form/Common.css
+++ b/lib/dijit/themes/claro/form/Common.css
@@ -1,178 +1 @@
-/* claro/form/Common.css */
-/*========================= common css =========================*/
-/* 'dijitTextBox' refers to 'dijit(TextBox|DateTextBox|CurrencyTextBox|...)' */
-.claro .dijitTextBox, .claro .dijitInputInner {
- color: #000000;
-}
-.claro .dijitTextBoxError .dijitValidationContainer {
- background-color: #d46464;
- background-image: url("../form/images/error.png");
- background-position: top center;
- border: solid #d46464 0;
- border-left-width: 1px;
- width: 9px;
-}
-.claro .dijitTextBoxError .dijitValidationIcon {
- width: 0;
- background-color: transparent !important;
- /* so the INPUT doesn't obscure the border in rtl+a11y */
-
-}
-/* Padding for the input area of TextBox based widgets, and corresponding padding for the
- * down arrow button and the placeholder. placeholder is explicitly listed because
- * dijitPlaceHolder is absolutely positioned, so padding set on dijitInputField
- * won't affect it
- */
-.claro .dijitTextArea, .claro .dijitInputField .dijitPlaceHolder {
- padding: 2px;
-}
-.claro .dijitTextBox .dijitInputField {
- padding: 1px 2px;
-}
-.dj_gecko .claro .dijitTextBox .dijitInputInner, .dj_webkit .claro .dijitTextBox .dijitInputInner {
- padding: 1px;
-}
-.claro .dijitTextBox, .claro .dijitTextBox .dijitButtonNode {
- /* color for (outer) border on *TextBox widgets, and border between input and buttons on ComboBox and Spinner */
-
- border-color: #b5bcc7;
- -webkit-transition-property: background-color, border;
- -moz-transition-property: background-color, border;
- transition-property: background-color, border;
- -webkit-transition-duration: 0.35s;
- -moz-transition-duration: 0.35s;
- transition-duration: 0.35s;
-}
-.claro .dijitTextBox {
- background-color: #ffffff;
-}
-/* hover */
-.claro .dijitTextBoxHover, .claro .dijitTextBoxHover .dijitButtonNode {
- border-color: #759dc0;
- -webkit-transition-duration: 0.25s;
- -moz-transition-duration: 0.25s;
- transition-duration: 0.25s;
-}
-.claro .dijitTextBoxHover {
- background-color: #e5f2fe;
- background-image: url("../form/images/textBox_back.png");
- background-repeat: repeat-x;
-}
-/* error state */
-.claro .dijitTextBoxError, .claro .dijitTextBoxError .dijitButtonNode {
- border-color: #d46464;
-}
-.claro .dijitTextBoxError, .claro .dijitTextBoxError .dijitInputContainer {
- background-color: #ffffff;
-}
-/* focused state */
-.claro .dijitTextBoxFocused, .claro .dijitTextBoxFocused .dijitButtonNode {
- border-color: #759dc0;
- -webkit-transition-duration: 0.1s;
- -moz-transition-duration: 0.1s;
- transition-duration: 0.1s;
-}
-.claro .dijitTextBoxFocused {
- background-color: #ffffff;
- background-image: url("../form/images/textBox_back.png");
- background-repeat: repeat-x;
-}
-.claro .dijitTextBoxFocused .dijitInputContainer {
- background: #ffffff;
-}
-.claro .dijitTextBoxErrorFocused, .claro .dijitTextBoxErrorFocused .dijitButtonNode {
- border-color: #ce5050;
-}
-/* disabled state */
-.claro .dijitTextBoxDisabled, .claro .dijitTextBoxDisabled .dijitButtonNode {
- border-color: #d3d3d3;
-}
-.claro .dijitTextBoxDisabled, .claro .dijitTextBoxDisabled .dijitInputContainer {
- background-color: #efefef;
- background-image: none;
-}
-.claro .dijitTextBoxDisabled, .claro .dijitTextBoxDisabled .dijitInputInner {
- color: #818181;
-}
-.dj_webkit .claro .dijitTextBoxDisabled input {
- /* because WebKit lightens disabled input/textarea no matter what color you specify */
-
- color: #757575;
-}
-.dj_webkit .claro textarea.dijitTextAreaDisabled {
- /* because WebKit lightens disabled input/textarea no matter what color you specify */
-
- color: #1b1b1b;
-}
-/*========================= for special widgets =========================*/
-/* Input boxes with an arrow (for a drop down) */
-.claro .dijitComboBox .dijitArrowButtonInner {
- background-image: url("../form/images/commonFormArrows.png");
- background-position: -35px 53%;
- background-repeat: no-repeat;
- margin: 0;
- width: 16px;
- border: 1px solid #ffffff;
-}
-.claro .dijitToolbar .dijitComboBox .dijitArrowButtonInner {
- border: none;
-}
-.claro .dijitToolbar .dijitComboBox .dijitArrowButtonInner {
- border: none;
-}
-/* Add 1px vertical padding to the <input> where user types and the validation icon,
- to match the 1px border on arrow button */
-.claro .dijitTextBox .dijitInputInner, .claro .dijitTextBox .dijitValidationContainer {
- padding: 1px 0;
-}
-.claro .dijitComboBox .dijitButtonNode {
- background-color: #efefef;
- background-image: url("../form/images/formHighlight.png");
- background-repeat: repeat-x;
-}
-/* Arrow "hover" effect:
- * The arrow button should change color whenever the mouse is in a position such that clicking it
- * will toggle the drop down. That's either (1) anywhere over the ComboBox or (2) over the arrow
- * button, depending on the openOnClick setting for the widget.
- */
-.claro .dijitComboBoxOpenOnClickHover .dijitButtonNode, .claro .dijitComboBox .dijitDownArrowButtonHover {
- background-color: #abd6ff;
-}
-.claro .dijitComboBoxOpenOnClickHover .dijitArrowButtonInner, .claro .dijitComboBox .dijitDownArrowButtonHover .dijitArrowButtonInner {
- background-position: -70px 53%;
-}
-/* Arrow Button change when drop down is open */
-.claro .dijitComboBox .dijitHasDropDownOpen {
- background-color: #7dbdfa;
- background-position: 0 -177px;
- padding: 1px;
-}
-.claro .dijitComboBox .dijitHasDropDownOpen .dijitArrowButtonInner {
- background-position: -70px 53%;
- border: 0 none;
-}
-/* disabled state */
-.claro div.dijitComboBoxDisabled .dijitArrowButtonInner {
- /* specific selector set to override background-position setting from Button.js
- * (.claro .dijitComboBoxDisabled .dijitArrowButtonInner) */
-
- background-position: 0 50%;
- background-color: #efefef;
-}
-/*========================= hacks for browsers =========================*/
-/* it seems the input[type="hidden"] has a height (16px) too... this may cause the widget's height calculate error */
-.dj_ff3 .claro .dijitInputField input[type="hidden"] {
- display: none;
- height: 0;
- width: 0;
-}
-/* ie6 doesn't support transparent background img */
-.dj_ie6 .claro .dijitTextBox, .dj_ie6 .claro .dijitComboBox .dijitButtonNode {
- background-image: none;
-}
-.dj_borderbox .claro .dijitComboBox .dijitHasDropDownOpen .dijitArrowButtonInner {
- width: 18px;
-}
-.dj_borderbox .claro .dijitComboBoxFocused .dijitHasDropDownOpen .dijitArrowButtonInner {
- width: 16px;
-}
+.claro .dijitTextBox, .claro .dijitInputInner {color: #000000;}.claro .dijitValidationTextBoxError .dijitValidationContainer {background-color: #d46464; background-image: url("../form/images/error.png"); background-position: top center; border: solid #d46464 0; width: 9px;}.claro .dijitTextBoxError .dijitValidationContainer {border-left-width: 1px;}.claro .dijitValidationTextBoxError .dijitValidationIcon {width: 0; background-color: transparent !important;}.claro .dijitTextArea, .claro .dijitInputField .dijitPlaceHolder {padding: 2px;}.claro .dijitSelect .dijitInputField, .claro .dijitTextBox .dijitInputField {padding: 1px 2px;}.dj_gecko .claro .dijitTextBox .dijitInputInner, .dj_webkit .claro .dijitTextBox .dijitInputInner {padding: 1px;}.claro .dijitSelect,.claro .dijitSelect .dijitButtonContents,.claro .dijitTextBox,.claro .dijitTextBox .dijitButtonNode {border-color: #b5bcc7; -webkit-transition-property: background-color, border; -moz-transition-property: background-color, border; transition-property: background-color, border; -webkit-transition-duration: 0.35s; -moz-transition-duration: 0.35s; transition-duration: 0.35s;}.claro .dijitSelect, .claro .dijitTextBox {background-color: #ffffff;}.claro .dijitSelectHover,.claro .dijitSelectHover .dijitButtonContents,.claro .dijitTextBoxHover,.claro .dijitTextBoxHover .dijitButtonNode {border-color: #759dc0; -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s;}.claro .dijitTextBoxHover {background-color: #e5f2fe; background-image: -moz-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -webkit-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -o-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px);}.claro .dijitSelectError,.claro .dijitSelectError .dijitButtonContents,.claro .dijitTextBoxError,.claro .dijitTextBoxError .dijitButtonNode {border-color: #d46464;}.claro .dijitSelectFocused,.claro .dijitSelectFocused .dijitButtonContents,.claro .dijitTextBoxFocused,.claro .dijitTextBoxFocused .dijitButtonNode {border-color: #759dc0; -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.claro .dijitTextBoxFocused {background-color: #ffffff; background-image: -moz-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -webkit-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -o-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px);}.claro .dijitTextBoxFocused .dijitInputContainer {background: #ffffff;}.claro .dijitSelectErrorFocused,.claro .dijitSelectErrorFocused .dijitButtonContents,.claro .dijitTextBoxErrorFocused,.claro .dijitTextBoxErrorFocused .dijitButtonNode {border-color: #ce5050;}.claro .dijitSelectDisabled,.claro .dijitSelectDisabled .dijitButtonContents,.claro .dijitTextBoxDisabled,.claro .dijitTextBoxDisabled .dijitButtonNode {border-color: #d3d3d3;}.claro .dijitSelectDisabled, .claro .dijitTextBoxDisabled, .claro .dijitTextBoxDisabled .dijitInputContainer {background-color: #efefef; background-image: none;}.claro .dijitSelectDisabled, .claro .dijitTextBoxDisabled, .claro .dijitTextBoxDisabled .dijitInputInner {color: #818181;}.dj_webkit .claro .dijitDisabled input {color: #757575;}.dj_webkit .claro textarea.dijitTextAreaDisabled {color: #1b1b1b;}.claro .dijitSelect .dijitArrowButtonInner, .claro .dijitComboBox .dijitArrowButtonInner {background-image: url("../form/images/commonFormArrows.png"); background-position: -35px 53%; background-repeat: no-repeat; margin: 0; width: 16px;}.claro .dijitComboBox .dijitArrowButtonInner {border: 1px solid #ffffff;}.claro .dijitToolbar .dijitComboBox .dijitArrowButtonInner {border: none;}.claro .dijitToolbar .dijitComboBox .dijitArrowButtonInner {border: none;}.claro .dijitSelectLabel, .claro .dijitTextBox .dijitInputInner, .claro .dijitValidationTextBox .dijitValidationContainer {padding: 1px 0;}.claro .dijitComboBox .dijitButtonNode {background-color: #efefef; background-image: url("../images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitComboBoxOpenOnClickHover .dijitButtonNode, .claro .dijitComboBox .dijitDownArrowButtonHover {background-color: #abd6ff;}.claro .dijitComboBoxOpenOnClickHover .dijitArrowButtonInner, .claro .dijitComboBox .dijitDownArrowButtonHover .dijitArrowButtonInner {background-position: -70px 53%;}.claro .dijitComboBox .dijitHasDropDownOpen {background-color: #7dbdfa; background-image: url("../images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 1px;}.dj_iequirks .claro .dijitComboBox .dijitHasDropDownOpen {padding: 1px 0;}.claro .dijitComboBox .dijitHasDropDownOpen .dijitArrowButtonInner {background-position: -70px 53%; border: 0 none;}.claro div.dijitComboBoxDisabled .dijitArrowButtonInner {background-position: 0 50%; background-color: #efefef;}.dj_ff3 .claro .dijitInputField input[type="hidden"] {display: none; height: 0; width: 0;}.dj_borderbox .claro .dijitComboBox .dijitHasDropDownOpen .dijitArrowButtonInner {width: 18px;}.dj_borderbox .claro .dijitComboBoxFocused .dijitHasDropDownOpen .dijitArrowButtonInner {width: 16px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/Common.less b/lib/dijit/themes/claro/form/Common.less
index 742a43ff7..3c625f46f 100644
--- a/lib/dijit/themes/claro/form/Common.less
+++ b/lib/dijit/themes/claro/form/Common.less
@@ -13,15 +13,19 @@
color: @text-color;
}
-.claro .dijitTextBoxError .dijitValidationContainer {
+.claro .dijitValidationTextBoxError .dijitValidationContainer {
background-color: @erroricon-background-color;
background-image: url("../@{image-form-error}");
background-position: top center;
border: solid @erroricon-background-color 0;
- border-left-width: 1px;
width: 9px;
}
-.claro .dijitTextBoxError .dijitValidationIcon {
+
+.claro .dijitTextBoxError .dijitValidationContainer {
+ border-left-width: 1px;
+}
+
+.claro .dijitValidationTextBoxError .dijitValidationIcon {
width: 0;
background-color: transparent !important; /* so the INPUT doesn't obscure the border in rtl+a11y */
}
@@ -35,12 +39,15 @@
.claro .dijitInputField .dijitPlaceHolder {
padding: @textbox-padding;
}
+
+.claro .dijitSelect .dijitInputField,
.claro .dijitTextBox .dijitInputField {
// Subtract 1px from top/bottom because we add 1px to other nodes, see rules below.
// Although we are theoretically only adding 1px to top/bottom browsers seem to pad inputs by 1px on left/right,
// although that varies by so compensate for that too.
padding: @textbox-padding - 1px @textbox-padding;
}
+
.dj_gecko .claro .dijitTextBox .dijitInputInner,
.dj_webkit .claro .dijitTextBox .dijitInputInner {
// Although we are theoretically only adding 1px to top/bottom, some browsers seem to pad inputs by 1px on left/right,
@@ -48,6 +55,8 @@
padding: @textbox-padding - 1px;
}
+.claro .dijitSelect,
+.claro .dijitSelect .dijitButtonContents,
.claro .dijitTextBox,
.claro .dijitTextBox .dijitButtonNode {
/* color for (outer) border on *TextBox widgets, and border between input and buttons on ComboBox and Spinner */
@@ -55,70 +64,84 @@
.transition-property(background-color, border);
.transition-duration(.35s);
}
+
+.claro .dijitSelect,
.claro .dijitTextBox {
background-color: @textbox-background-color;
}
/* hover */
+.claro .dijitSelectHover,
+.claro .dijitSelectHover .dijitButtonContents,
.claro .dijitTextBoxHover,
.claro .dijitTextBoxHover .dijitButtonNode {
border-color: @hovered-border-color;
.transition-duration(.25s);
}
+
.claro .dijitTextBoxHover {
background-color: @textbox-hovered-background-color;
- background-image: url("../@{image-form-textbox-background}");
- background-repeat: repeat-x;
+ .textbox-background-image;
}
/* error state */
+.claro .dijitSelectError,
+.claro .dijitSelectError .dijitButtonContents,
.claro .dijitTextBoxError,
.claro .dijitTextBoxError .dijitButtonNode {
border-color: @error-border-color;
}
-.claro .dijitTextBoxError,
-.claro .dijitTextBoxError .dijitInputContainer {
- background-color: @textbox-error-background-color;
-}
/* focused state */
+.claro .dijitSelectFocused,
+.claro .dijitSelectFocused .dijitButtonContents,
.claro .dijitTextBoxFocused,
.claro .dijitTextBoxFocused .dijitButtonNode {
border-color:@focused-border-color;
.transition-duration(.1s);
}
+
.claro .dijitTextBoxFocused {
background-color: @textbox-focused-background-color;
- background-image: url("../@{image-form-textbox-background}");
- background-repeat: repeat-x;
+ .textbox-background-image;
}
.claro .dijitTextBoxFocused .dijitInputContainer {
background: @textbox-focused-background-color;
}
+.claro .dijitSelectErrorFocused,
+.claro .dijitSelectErrorFocused .dijitButtonContents,
.claro .dijitTextBoxErrorFocused,
.claro .dijitTextBoxErrorFocused .dijitButtonNode {
border-color: @error-focused-border-color;
}
/* disabled state */
+.claro .dijitSelectDisabled,
+.claro .dijitSelectDisabled .dijitButtonContents,
.claro .dijitTextBoxDisabled,
.claro .dijitTextBoxDisabled .dijitButtonNode {
border-color: @disabled-border-color;
}
+
+.claro .dijitSelectDisabled,
.claro .dijitTextBoxDisabled,
.claro .dijitTextBoxDisabled .dijitInputContainer {
background-color: @textbox-disabled-background-color;
background-image: none;
}
+
+.claro .dijitSelectDisabled,
.claro .dijitTextBoxDisabled,
.claro .dijitTextBoxDisabled .dijitInputInner {
color: @disabled-text-color;
}
-.dj_webkit .claro .dijitTextBoxDisabled input {
+
+.dj_webkit .claro .dijitDisabled input {
/* because WebKit lightens disabled input/textarea no matter what color you specify */
color: darken(@disabled-text-color, 5%)
}
+
.dj_webkit .claro textarea.dijitTextAreaDisabled {
/* because WebKit lightens disabled input/textarea no matter what color you specify */
color: darken(@disabled-text-color, 40%)
@@ -128,12 +151,16 @@
/* Input boxes with an arrow (for a drop down) */
+.claro .dijitSelect .dijitArrowButtonInner,
.claro .dijitComboBox .dijitArrowButtonInner {
background-image: url("../@{image-form-common-arrows}");
background-position:-35px 53%;
background-repeat: no-repeat;
margin: 0;
width:16px;
+}
+
+.claro .dijitComboBox .dijitArrowButtonInner {
border: 1px solid @arrowbutton-inner-border-color; // white gutter around the arrow button
}
@@ -147,15 +174,15 @@
/* Add 1px vertical padding to the <input> where user types and the validation icon,
to match the 1px border on arrow button */
+.claro .dijitSelectLabel,
.claro .dijitTextBox .dijitInputInner,
-.claro .dijitTextBox .dijitValidationContainer {
+.claro .dijitValidationTextBox .dijitValidationContainer {
padding: 1px 0;
}
.claro .dijitComboBox .dijitButtonNode {
background-color: @arrowbutton-background-color;
- background-image: url("../@{image-form-highlight}");
- background-repeat:repeat-x;
+ .standard-gradient("../");
}
/* Arrow "hover" effect:
@@ -167,6 +194,7 @@
.claro .dijitComboBox .dijitDownArrowButtonHover {
background-color:@arrowbutton-hovered-background-color;
}
+
.claro .dijitComboBoxOpenOnClickHover .dijitArrowButtonInner,
.claro .dijitComboBox .dijitDownArrowButtonHover .dijitArrowButtonInner {
background-position:-70px 53%;
@@ -175,9 +203,14 @@
/* Arrow Button change when drop down is open */
.claro .dijitComboBox .dijitHasDropDownOpen { // .dijitHasDropDown is on dijitArrowButton node
background-color: @pressed-background-color;
- background-position:0 -177px;
+ .active-gradient("../");
padding: 1px; // Since no border on arrow button (see rule below)
}
+
+.dj_iequirks .claro .dijitComboBox .dijitHasDropDownOpen {
+ padding: 1px 0;
+}
+
.claro .dijitComboBox .dijitHasDropDownOpen .dijitArrowButtonInner {
background-position:-70px 53%;
border: 0 none;
@@ -199,14 +232,10 @@
width: 0;
}
-/* ie6 doesn't support transparent background img */
-.dj_ie6 .claro .dijitTextBox,
-.dj_ie6 .claro .dijitComboBox .dijitButtonNode {
- background-image: none;
-}
.dj_borderbox .claro .dijitComboBox .dijitHasDropDownOpen .dijitArrowButtonInner {
width:18px; // quirks mode means border-box sizing, so 18px with the border (same as 16px without border)
}
+
.dj_borderbox .claro .dijitComboBoxFocused .dijitHasDropDownOpen .dijitArrowButtonInner {
width:16px; // when no border, then back to 16px just like content-box sizing
}
diff --git a/lib/dijit/themes/claro/form/Common_rtl.css b/lib/dijit/themes/claro/form/Common_rtl.css
index 74827c16f..758fb0a5a 100644
--- a/lib/dijit/themes/claro/form/Common_rtl.css
+++ b/lib/dijit/themes/claro/form/Common_rtl.css
@@ -1,10 +1 @@
-/* claro/form/Common_rtl.css */
-/*claro should not have the icon on the container
-.claro .dijitTextBoxRtlError .dijitValidationIcon {
- border-left-width: 0;
- border-right-width: 1px;
-}*/
-.claro .dijitTextBoxRtlError .dijitValidationContainer {
- border-left-width: 0;
- border-right-width: 1px;
-}
+.claro .dijitTextBoxRtlError .dijitValidationContainer {border-left-width: 0 !important; border-right-width: 1px !important;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/Common_rtl.less b/lib/dijit/themes/claro/form/Common_rtl.less
index fd4975a51..7c9952993 100644
--- a/lib/dijit/themes/claro/form/Common_rtl.less
+++ b/lib/dijit/themes/claro/form/Common_rtl.less
@@ -2,12 +2,7 @@
@import "../variables";
-/*claro should not have the icon on the container
-.claro .dijitTextBoxRtlError .dijitValidationIcon {
- border-left-width: 0;
- border-right-width: 1px;
-}*/
.claro .dijitTextBoxRtlError .dijitValidationContainer {
- border-left-width: 0;
- border-right-width: 1px;
+ border-left-width: 0 !important;
+ border-right-width: 1px !important;
}
diff --git a/lib/dijit/themes/claro/form/NumberSpinner.css b/lib/dijit/themes/claro/form/NumberSpinner.css
index fcc804969..d48791ad9 100644
--- a/lib/dijit/themes/claro/form/NumberSpinner.css
+++ b/lib/dijit/themes/claro/form/NumberSpinner.css
@@ -1,138 +1 @@
-/* NumberSpinner - namespace "dijitSpinner"
- *
- * Styling NumberSpinner mainly includes:
- *
- * 1. Arrows
- * Outer containers: .dijitSpinnerButtonContainer|.dijitSpinnerButtonInner - for border, padding and position
- * Arrows: .dijitArrowButton|.dijitUpArrowButton.|dijitDownArrowButton
- * Inner container: .dijitArrowButtonInner - for border, padding, width|height and background image
- *
- * 2. Hover state
- * .dijitUpArrowButtonHover|.dijitDownArrowButtonHover .* - for background color|image
- *
- * 3. Active state
- * .dijitUpArrowButtonActive|.dijitDownArrowButtonActive .* - for border, padding, margin and background color|image
- *
- * 4. Focused state
- * .dijitSpinnerFocused .* - for background color|image
- *
- * 5. Disabled state
- * .dijitSpinnerDisabled .* - for background color|image
- */
-.claro .dijitSpinnerButtonContainer {
- overflow: hidden;
- position: relative;
- width: auto;
- padding: 0 2px;
-}
-.claro .dijitSpinnerButtonContainer .dijitSpinnerButtonInner {
- border-width: 1px 0;
- /* reserve space to match the claro combobox button border with border and not padding to make IE happier */
-
- border-style: solid none;
-}
-/* button */
-.claro .dijitSpinner .dijitArrowButton {
- width: auto;
- background-color: #efefef;
- background-image: url("../form/images/formHighlight.png");
- background-position: 0 0;
- background-repeat: repeat-x;
- overflow: hidden;
-}
-.dj_iequirks .claro .dijitSpinner .dijitArrowButton {
- overflow: visible;
- /* 0 height w/o this */
-
-}
-.claro .dijitSpinner .dijitSpinnerButtonInner {
- width: 15px;
-}
-/* up & down button icons */
-.claro .dijitSpinner .dijitArrowButtonInner {
- border: solid 1px #ffffff;
- border-bottom-width: 0;
- /* 2 top borders = 1 top+bottom border in ComboBox */
-
- background-image: url("../form/images/commonFormArrows.png");
- background-repeat: no-repeat;
- height: 100%;
- width: 15px;
- padding-left: 1px;
- padding-right: 1px;
- /* for up arrow */
-
- background-position: -139px center;
- /* override button.css (TODO: move to Common.css since ComboBox needs this too) */
-
- display: block;
- margin: -1px 0 -1px 0;
- /* compensate for inner border */
-
-}
-.dj_ie6 .claro .dijitSpinner .dijitArrowButtonInner, .dj_ie7 .claro .dijitSpinner .dijitArrowButtonInner {
- margin-top: 0;
- /* since its bottom aligned */
-
-}
-.dj_iequirks .claro .dijitSpinner .dijitArrowButtonInner {
- width: 19px;
-}
-.claro .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner {
- background-position: -34px;
-}
-.claro .dijitSpinner .dijitArrowButtonInner .dijitInputField {
- padding: 0;
-}
-/** hover & focused status **/
-.claro .dijitUpArrowButtonActive, .claro .dijitDownArrowButtonActive {
- background-color: #abd6ff;
-}
-.claro .dijitSpinner .dijitUpArrowButtonHover, .claro .dijitSpinner .dijitDownArrowButtonHover, .claro .dijitSpinnerFocused .dijitArrowButton {
- background-color: #abd6ff;
-}
-.claro .dijitSpinner .dijitUpArrowButtonHover .dijitArrowButtonInner {
- background-position: -174px;
-}
-.claro .dijitSpinner .dijitDownArrowButtonHover .dijitArrowButtonInner {
- background-position: -69px;
-}
-.claro .dijitSpinnerFocused {
- background-color: #ffffff;
- background-image: none;
-}
-/* mouse down status */
-.claro .dijitSpinner .dijitDownArrowButtonActive, .claro .dijitSpinner .dijitUpArrowButtonActive {
- background-color: #7dbefa;
- background-position: 0 -177px;
-}
-.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner, .claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner {
- /* hide inner border while button is depressed */
-
- border: 0;
- padding: 1px;
- margin-right: 2px;
- margin-bottom: 1px;
-}
-.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner {
- background-position: -173px;
-}
-.claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner {
- background-position: -68px;
-}
-/* disabled */
-.claro .dijitSpinnerDisabled .dijitArrowButtonInner {
- background-color: #efefef;
-}
-.claro .dijitSpinnerDisabled .dijitUpArrowButton .dijitArrowButtonInner {
- background-position: -104px;
-}
-.claro .dijitSpinnerDisabled .dijitDownArrowButton .dijitArrowButtonInner {
- background-position: 1px;
-}
-/** hacks for browsers **/
-/* for IE 7, when div is enlarged,
- * should be no empty space between dijitInputLayoutContainer and dijitSpinner*/
-.dj_ie7 .claro .dijitSpinner {
- overflow: visible;
-}
+.claro .dijitSpinnerButtonContainer {overflow: hidden; position: relative; width: auto; padding: 0 2px;}.claro .dijitSpinnerButtonContainer .dijitSpinnerButtonInner {border-width: 1px 0; border-style: solid none;}.claro .dijitSpinner .dijitArrowButton {width: auto; background-color: #efefef; background-image: url("../images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; overflow: hidden;}.dj_iequirks .claro .dijitSpinner .dijitArrowButton {overflow: visible;}.claro .dijitSpinner .dijitSpinnerButtonInner {width: 15px;}.claro .dijitSpinner .dijitArrowButtonInner {border: solid 1px #ffffff; border-bottom-width: 0; background-image: url("../form/images/commonFormArrows.png"); background-repeat: no-repeat; height: 100%; width: 15px; padding-left: 1px; padding-right: 1px; background-position: -139px center; display: block; margin: -1px 0 -1px 0;}.dj_iequirks .claro .dijitSpinner .dijitArrowButtonInner,.dj_ie6 .claro .dijitSpinner .dijitArrowButtonInner,.dj_ie7 .claro .dijitSpinner .dijitArrowButtonInner,.dj_ie8 .claro .dijitSpinner .dijitArrowButtonInner {margin-top: 0;}.dj_iequirks .claro .dijitSpinner .dijitArrowButtonInner {width: 19px;}.claro .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner {background-position: -34px;}.claro .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding: 0;}.claro .dijitUpArrowButtonActive, .claro .dijitDownArrowButtonActive {background-color: #abd6ff;}.claro .dijitSpinner .dijitUpArrowButtonHover, .claro .dijitSpinner .dijitDownArrowButtonHover, .claro .dijitSpinnerFocused .dijitArrowButton {background-color: #abd6ff;}.claro .dijitSpinner .dijitUpArrowButtonHover .dijitArrowButtonInner {background-position: -174px;}.claro .dijitSpinner .dijitDownArrowButtonHover .dijitArrowButtonInner {background-position: -69px;}.claro .dijitSpinnerFocused {background-color: #ffffff; background-image: none;}.claro .dijitSpinner .dijitDownArrowButtonActive, .claro .dijitSpinner .dijitUpArrowButtonActive {background-color: #7dbefa; background-image: url("../images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner, .claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner {border: 0; padding: 1px; margin-right: 2px; margin-bottom: 1px;}.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner {background-position: -173px;}.claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner {background-position: -68px;}.claro .dijitSpinnerDisabled .dijitArrowButtonInner {background-color: #efefef;}.claro .dijitSpinnerDisabled .dijitUpArrowButton .dijitArrowButtonInner {background-position: -104px;}.claro .dijitSpinnerDisabled .dijitDownArrowButton .dijitArrowButtonInner {background-position: 1px;}.dj_ie7 .claro .dijitSpinner {overflow: visible;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/NumberSpinner.less b/lib/dijit/themes/claro/form/NumberSpinner.less
index 1c79d3a37..e15c7821d 100644
--- a/lib/dijit/themes/claro/form/NumberSpinner.less
+++ b/lib/dijit/themes/claro/form/NumberSpinner.less
@@ -37,9 +37,7 @@
.claro .dijitSpinner .dijitArrowButton {
width:auto;
background-color: @arrowbutton-background-color;
- background-image: url("../@{image-form-highlight}");
- background-position:0 0;
- background-repeat:repeat-x;
+ .standard-gradient("../");
overflow: hidden;
}
.dj_iequirks .claro .dijitSpinner .dijitArrowButton {
@@ -68,8 +66,10 @@
margin: -1px 0 -1px 0; /* compensate for inner border */
}
+.dj_iequirks .claro .dijitSpinner .dijitArrowButtonInner,
.dj_ie6 .claro .dijitSpinner .dijitArrowButtonInner,
-.dj_ie7 .claro .dijitSpinner .dijitArrowButtonInner {
+.dj_ie7 .claro .dijitSpinner .dijitArrowButtonInner,
+.dj_ie8 .claro .dijitSpinner .dijitArrowButtonInner {
margin-top: 0; /* since its bottom aligned */
}
@@ -112,7 +112,7 @@
.claro .dijitSpinner .dijitDownArrowButtonActive,
.claro .dijitSpinner .dijitUpArrowButtonActive {
background-color: #7dbefa; // TODO. Mailed Jason about inconsistent ComboBox/Spinner behavior.
- background-position:0 -177px;
+ .active-gradient("../");
}
.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner,
.claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner {
diff --git a/lib/dijit/themes/claro/form/RadioButton.css b/lib/dijit/themes/claro/form/RadioButton.css
index bad1854b4..7c16e9216 100644
--- a/lib/dijit/themes/claro/form/RadioButton.css
+++ b/lib/dijit/themes/claro/form/RadioButton.css
@@ -1,79 +1 @@
-/* RadioButton
- *
- * Styling RadioButton mainly includes:
- *
- * 1. Containers
- * .dijitRadio|.dijitRadioIcon - for border, padding, width|height and background image
- *
- * 2. RadioButton within ToggleButton
- * .dijitToggleButton|.dijitToggleButtonChecked .* - for background image
- *
- * 3. Checked state
- * .dijitRadioChecked - for checked background-color|image
- * .dijitToggleButtonChecked - for border, background-color|image, display and width|height
- *
- * 4. Hover state
- * .dijitRadioHover|.dijitRadioCheckedHover - for background image
- *
- * 5. Disabled state
- * .dijitRadioDisabled|.dijitRadioCheckedDisabled - for background image
- */
-.claro .dijitToggleButton .dijitRadio, .claro .dijitToggleButton .dijitRadioIcon {
- background-image: url("../form/images/checkboxRadioButtonStates.png");
-}
-.dj_ie6 .claro .dijitToggleButton .dijitRadio, .dj_ie6 .claro .dijitToggleButton .dijitRadioIcon {
- background-image: url("../form/images/checkboxAndRadioButtons_IE6.png");
-}
-.claro .dijitRadio, .claro .dijitRadioIcon {
- /* inside a toggle button */
-
- background-image: url("../form/images/checkboxRadioButtonStates.png");
- /* checkbox sprite image */
-
- background-repeat: no-repeat;
- width: 15px;
- height: 15px;
- margin: 0 2px 0 0;
- padding: 0;
-}
-.dj_ie6 .claro .dijitRadio, .dj_ie6 .claro .dijitRadioIcon {
- /* inside a toggle button */
-
- background-image: url("../form/images/checkboxAndRadioButtons_IE6.png");
- /* checkbox sprite image */
-
-}
-.claro .dijitRadio {
- /* unselected */
-
- background-position: -105px;
-}
-.claro .dijitToggleButton .dijitRadioIcon {
- /* unselected */
-
- background-position: -107px;
-}
-.claro .dijitRadioDisabled {
- /* unselected and disabled */
-
- background-position: -165px;
-}
-.claro .dijitRadioHover {
- /* hovering over an unselected enabled radio button */
-
- background-position: -135px;
-}
-.claro .dijitRadioChecked {
- background-position: -90px;
-}
-.claro .dijitToggleButtonChecked .dijitRadioIcon {
- background-position: -92px;
-}
-.claro .dijitRadioCheckedHover {
- background-position: -120px;
-}
-.claro .dijitRadioCheckedDisabled {
- /* selected but disabled */
-
- background-position: -150px;
-}
+.claro .dijitToggleButton .dijitRadio, .claro .dijitToggleButton .dijitRadioIcon {background-image: url("../form/images/checkboxRadioButtonStates.png");}.dj_ie6 .claro .dijitToggleButton .dijitRadio, .dj_ie6 .claro .dijitToggleButton .dijitRadioIcon {background-image: url("../form/images/checkboxAndRadioButtons_IE6.png");}.claro .dijitRadio, .claro .dijitRadioIcon {background-image: url("../form/images/checkboxRadioButtonStates.png"); background-repeat: no-repeat; width: 15px; height: 15px; margin: 0 2px 0 0; padding: 0;}.dj_ie6 .claro .dijitRadio, .dj_ie6 .claro .dijitRadioIcon {background-image: url("../form/images/checkboxAndRadioButtons_IE6.png");}.claro .dijitRadio {background-position: -105px;}.claro .dijitToggleButton .dijitRadioIcon {background-position: -107px;}.claro .dijitRadioDisabled {background-position: -165px;}.claro .dijitRadioHover {background-position: -135px;}.claro .dijitRadioChecked {background-position: -90px;}.claro .dijitToggleButtonChecked .dijitRadioIcon {background-position: -92px;}.claro .dijitRadioCheckedHover {background-position: -120px;}.claro .dijitRadioCheckedDisabled {background-position: -150px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/Select.css b/lib/dijit/themes/claro/form/Select.css
index bfbca4ec8..182f9ead8 100644
--- a/lib/dijit/themes/claro/form/Select.css
+++ b/lib/dijit/themes/claro/form/Select.css
@@ -1,109 +1 @@
-/* Select
- *
- * Styling Select mainly includes:
- *
- * 1. Containers
- * .dijitSelect - for border, background-color
- * .dijitButtonContents - for border
- *
- * 2. Arrow
- * .dijitArrowButton - for border, padding and background-color|image
- * .dijitArrowButtonInner - for border, background-color|image, display and width|height
- *
- * 3. Menu
- * .dijitSelectMenu .* - for border, padding
- *
- * 4. Various states
- * .dijitSelectHover|.dijitSelectFocused|.dijitSelectDisabled .* - for border, padding and background-color|image
- */
-.claro .dijitSelect .dijitButtonText {
- padding: 2px;
-}
-/* normal status */
-.claro .dijitSelect {
- border: 1px solid #b5bcc7;
- background-color: #ffffff;
- border-collapse: separate;
-}
-.dj_ie6 .claro .dijitSelect, .dj_ie6 .claro .dijitSelect .dijitButtonNode {
- background-image: none;
-}
-.claro .dijitSelect .dijitButtonContents {
- border: 0 solid #b5bcc7;
- border-right-width: 1px;
-}
-.claro .dijitSelect .dijitArrowButton {
- padding: 0;
- border: 1px solid #ffffff;
- border-top: none;
- background-color: #efefef;
- background-image: url("../form/images/formHighlight.png");
- background-repeat: repeat-x;
-}
-.claro .dijitSelect .dijitArrowButton .dijitArrowButtonInner {
- background-image: url("../form/images/commonFormArrows.png");
- background-position: -35px 70%;
- background-repeat: no-repeat;
- width: 16px;
- height: 16px;
-}
-/* hover status */
-.claro .dijitSelectHover {
- border: 1px solid #759dc0;
- background-color: #e5f2fe;
- background-image: url("../form/images/textBox_back.png");
- background-repeat: repeat-x;
-}
-.claro .dijitSelectHover .dijitButtonContents {
- border-color: #759dc0;
-}
-.claro .dijitSelectHover .dijitArrowButton {
- background-color: #abd6ff;
-}
-.claro .dijitSelectHover .dijitArrowButton .dijitArrowButtonInner {
- background-position: -70px 70%;
-}
-/* focused status */
-.claro .dijitSelectFocused {
- border: 1px solid #759dc0;
-}
-.claro .dijitSelectFocused .dijitButtonContents {
- border-color: #759dc0;
-}
-.claro .dijitSelectFocused .dijitArrowButton {
- background-color: #7dbefa;
- background-position: 0 -177px;
- border: none;
- padding: 0 1px;
-}
-.claro .dijitSelectFocused .dijitArrowButton .dijitArrowButtonInner {
- background-position: -70px 70%;
- margin-bottom: 1px;
-}
-/* disable status */
-.claro .dijitSelectDisabled {
- border: 1px solid #d3d3d3;
- background-color: #efefef;
- background-image: none;
- color: #818181;
-}
-.claro .dijitSelectDisabled .dijitArrowButton {
- background-color: #efefef;
-}
-.claro .dijitSelectDisabled .dijitArrowButton .dijitArrowButtonInner {
- background-position: 0 70%;
-}
-/* Dropdown menu style for select */
-.claro .dijitSelectMenu td.dijitMenuItemIconCell, .claro .dijitSelectMenu td.dijitMenuArrowCell {
- /* so that arrow and icon cells from MenuItem are not displayed */
-
- display: none;
-}
-.claro .dijitSelectMenu td.dijitMenuItemLabel {
- /* line up menu text with text in select box (in LTR and RTL modes) */
-
- padding: 2px;
-}
-.claro .dijitSelectMenu .dijitMenuSeparatorTop {
- border-bottom: 1px solid #759dc0;
-}
+.claro .dijitSelect .dijitArrowButtonContainer {border: 1px solid #ffffff;}.claro .dijitSelect .dijitArrowButton {padding: 0; background-color: #efefef; background-image: url("../images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitSelect .dijitArrowButton .dijitArrowButtonInner {height: 16px;}.claro .dijitSelectHover {background-color: #e5f2fe; background-image: -moz-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -webkit-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: -o-linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-image: linear-gradient(rgba(127, 127, 127, 0.2) 0%, rgba(127, 127, 127, 0) 2px); background-repeat: repeat-x;}.claro .dijitSelectFocused, .claro .dijitSelectHover {border-color: #759dc0;}.claro .dijitSelectHover .dijitArrowButton {background-color: #abd6ff;}.claro .dijitSelectHover .dijitArrowButton .dijitArrowButtonInner {background-position: -70px 53%;}.claro .dijitSelectFocused .dijitArrowButton {background-color: #7dbefa; background-image: url("../images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitSelectFocused .dijitArrowButton {border: none; padding: 1px;}.claro .dijitSelectFocused .dijitArrowButton .dijitArrowButtonInner {background-position: -70px 53%;}.claro .dijitSelectDisabled {border-color: #d3d3d3; background-color: #efefef; background-image: none; color: #818181;}.claro .dijitSelectDisabled .dijitArrowButton .dijitArrowButtonInner {background-position: 0 53%;}.claro .dijitSelectMenu td.dijitMenuItemIconCell, .claro .dijitSelectMenu td.dijitMenuArrowCell {display: none;}.claro .dijitSelectMenu td.dijitMenuItemLabel {padding: 2px;}.claro .dijitSelectMenu .dijitMenuSeparatorTop {border-bottom: 1px solid #759dc0;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/Select.less b/lib/dijit/themes/claro/form/Select.less
index 0e7426112..3c2cac682 100644
--- a/lib/dijit/themes/claro/form/Select.less
+++ b/lib/dijit/themes/claro/form/Select.less
@@ -19,101 +19,75 @@
@import "../variables";
-.claro .dijitSelect .dijitButtonText {
- padding: @textbox-padding;
-}
-
/* normal status */
-.claro .dijitSelect {
- border: 1px solid @border-color;
- background-color: @textbox-background-color;
- border-collapse: separate;
-}
-.dj_ie6 .claro .dijitSelect,
-.dj_ie6 .claro .dijitSelect .dijitButtonNode {
- background-image:none;
-}
-
-.claro .dijitSelect .dijitButtonContents {
- border: 0 solid @border-color;
- border-right-width: 1px;
+.claro .dijitSelect .dijitArrowButtonContainer {
+ border: 1px solid @arrowbutton-inner-border-color;
}
.claro .dijitSelect .dijitArrowButton {
padding: 0;
- border: 1px solid @arrowbutton-inner-border-color;
- border-top:none;
background-color: @arrowbutton-background-color;
- background-image: url("../@{image-form-highlight}");
- background-repeat:repeat-x;
+ .standard-gradient("../");
}
.claro .dijitSelect .dijitArrowButton .dijitArrowButtonInner {
- background-image: url("../@{image-form-common-arrows}");
- background-position:-35px 70%;
- background-repeat: no-repeat;
- width:16px;
height:16px;
}
/* hover status */
.claro .dijitSelectHover {
- border: 1px solid @hovered-border-color;
background-color: @textbox-hovered-background-color;
- background-image: url("../@{image-form-textbox-background}");
+ .textbox-background-image;
background-repeat: repeat-x;
}
-.claro .dijitSelectHover .dijitButtonContents {
+.claro .dijitSelectFocused,
+.claro .dijitSelectHover {
border-color:@hovered-border-color;
}
.claro .dijitSelectHover .dijitArrowButton {
background-color:@arrowbutton-hovered-background-color;
}
+
.claro .dijitSelectHover .dijitArrowButton .dijitArrowButtonInner {
- background-position:-70px 70%;
+ background-position:-70px 53%;
}
/* focused status */
-.claro .dijitSelectFocused {
- border: 1px solid @focused-border-color;
-}
-.claro .dijitSelectFocused .dijitButtonContents {
- border-color:@focused-border-color;
-}
.claro .dijitSelectFocused .dijitArrowButton {
background-color:#7dbefa; // TODO. Mailed Jason about inconsistent ComboBox/Spinner behavior.
- background-position:0 -177px;
+ .active-gradient("../");
+}
+
+.claro .dijitSelectFocused .dijitArrowButton {
border: none;
- padding: 0 1px;
+ padding: 1px;
}
+
.claro .dijitSelectFocused .dijitArrowButton .dijitArrowButtonInner {
- background-position:-70px 70%;
- margin-bottom: 1px;
+ background-position:-70px 53%;
}
/* disable status */
.claro .dijitSelectDisabled {
- border: 1px solid @disabled-border-color;
+ border-color: @disabled-border-color;
background-color: @disabled-background-color;
background-image: none;
color: @disabled-text-color;
}
-.claro .dijitSelectDisabled .dijitArrowButton {
- background-color: @disabled-background-color;
-}
+
.claro .dijitSelectDisabled .dijitArrowButton .dijitArrowButtonInner {
- background-position:0 70%
+ background-position:0 53%
}
/* Dropdown menu style for select */
-
.claro .dijitSelectMenu td.dijitMenuItemIconCell,
.claro .dijitSelectMenu td.dijitMenuArrowCell {
/* so that arrow and icon cells from MenuItem are not displayed */
display: none;
}
+
.claro .dijitSelectMenu td.dijitMenuItemLabel {
/* line up menu text with text in select box (in LTR and RTL modes) */
padding: @textbox-padding;
diff --git a/lib/dijit/themes/claro/form/Select_rtl.css b/lib/dijit/themes/claro/form/Select_rtl.css
deleted file mode 100644
index a14d4ec42..000000000
--- a/lib/dijit/themes/claro/form/Select_rtl.css
+++ /dev/null
@@ -1,4 +0,0 @@
-.claro .dijitSelectRtl .dijitButtonContents {
- border-right-width: 0;
- border-left-width: 1px;
-}
diff --git a/lib/dijit/themes/claro/form/Select_rtl.less b/lib/dijit/themes/claro/form/Select_rtl.less
deleted file mode 100644
index ffa40dc44..000000000
--- a/lib/dijit/themes/claro/form/Select_rtl.less
+++ /dev/null
@@ -1,6 +0,0 @@
-@import "../variables";
-
-.claro .dijitSelectRtl .dijitButtonContents {
- border-right-width: 0;
- border-left-width: 1px;
-}
diff --git a/lib/dijit/themes/claro/form/Slider.css b/lib/dijit/themes/claro/form/Slider.css
index eb82e17ad..bb7d5b049 100644
--- a/lib/dijit/themes/claro/form/Slider.css
+++ b/lib/dijit/themes/claro/form/Slider.css
@@ -1,329 +1 @@
-/* Slider
- *
- * Styling Slider mainly includes styling the Slider progress bar (dijitSliderProgressBar)
- *
- * Slider progress bar:
- * 1. Slider progress bar (default styling):
- * .dijitSliderProgressBarH - progress bar at the middle of horizontal slider
- * .dijitSliderLeftBumper - bar at the left of horizontal slider
- * .dijitSliderRightBumper - bar at the right of horizontal slider
- * .dijitSliderProgressBarV - progress bar at the middle of vertical slider
- * .dijitSliderTopBumper - bar at the top of vertical slider
- * .dijitSliderBottomtBumper - bar at the bottom of vertical slider
- *
- * 2. hovered Slider progress bar (ie, mouse hover on progress bar)
- * .dijitSliderHover .dijitSliderProgressBarH(horizontal) - hovered bar style: background, border
- *
- * 3. focused Slider progress bar (ie, mouse focused on progress bar)
- * .dijitSliderFocused .dijitSliderProgressBarH(horizontal) - focus bar style: background, border
- *
- * 4. disabled/read-only Slider progress bar
- * .dijitSliderDisabled .dijitSliderProgressBarH(horizontal) - bar styles when slider is disabled
- *
- *
- * Slider Thumbs:
- * 1. Slider Thumbs (default styling):
- * .dijitSliderImageHandleH / .dijitSliderImageHandleV - styles for the controller on the progress bar
- *
- * 2. hovered Slider Thumbs (ie, mouse hover on slider thumbs)
- * .dijitSliderHover .dijitSliderImageHandleH - hovered controller style
- *
- * 3. focused Slider progress bar (ie, mouse focused on slider thumbs)
- * .dijitSliderFocused .dijitSliderImageHandleV - focused controller style
- *
- *
- * Slider Increment/Decrement Buttons:
- * 1. Slider Increment/Decrement Buttons (default styling):
- * .dijitSliderDecrementIconH - decrement icon which lies at the left of horizontal slider
- * .dijitSliderIncrementIconH - increment icon which lies at the right of horizontal slider
- * .dijitSliderDecrementIconV - decrement icon which lies at the bottom of vertical slider
- * .dijitSliderIncrementIconV - increment icon which lies at the top of vertical slider
- *
- * 2. hovered Slider Increment/Decrement Buttons (mouse hover on the icons)
- * .dijitSliderHover .dijitSliderDecrementIconH - for background, border
- *
- * 3. active Slider Increment/Decrement Buttons (mouse down on the icons)
- * .dijitSliderActive .dijitSliderIncrementIconV - for background, border
- *
- * 4. disabled/read-only Slider Increment/Decrement Buttons
- * .dijitSliderDisabled .dijitSliderDecrementIconH - styles for the icons in disabled slider
- * .dijitSliderReadOnly .dijitSliderIncrementIconV - styles for the icons in read-only slider
- */
-.claro .dijitSliderBar {
- border-style: solid;
- outline: 1px;
-}
-.claro .dijitSliderFocused .dijitSliderBar {
- border-color: #759dc0;
-}
-.claro .dijitSliderHover .dijitSliderBar {
- border-color: #759dc0;
-}
-.claro .dijitSliderDisabled .dijitSliderBar {
- background-image: none;
- border-color: #d3d3d3;
-}
-.claro .dijitRuleLabel {
- color: #000000;
-}
-/* Horizontal Slider */
-.claro .dijitRuleLabelsContainerH {
- padding: 2px 0;
-}
-.claro .dijitSlider .dijitSliderProgressBarH, .claro .dijitSlider .dijitSliderLeftBumper {
- background-image: url("../form/images/sliderHorizontal.png");
- background-repeat: repeat-x;
- background-position: 0 -20px;
- border-color: #b5bcc7;
- background-color: #cfe5fa;
-}
-.claro .dijitSlider .dijitSliderRemainingBarH, .claro .dijitSlider .dijitSliderRightBumper {
- background-image: url("../form/images/sliderHorizontal.png");
- background-repeat: repeat-x;
- background-position: 0 -11px;
- border-color: #b5bcc7;
- background-color: #ffffff;
-}
-.claro .dijitSliderRightBumper {
- border-right: solid 1px #b5bcc7;
-}
-.claro .dijitSliderLeftBumper {
- border-left: solid 1px #b5bcc7;
-}
-.claro .dijitSliderHover .dijitSliderProgressBarH, .claro .dijitSliderHover .dijitSliderLeftBumper {
- background-position: 0 -20px;
- background-color: #abd6ff;
- border-color: #759dc0;
-}
-.claro .dijitSliderHover .dijitSliderRemainingBarH, .claro .dijitSliderHover .dijitSliderRightBumper {
- background-position: 0 0;
- background-color: #ffffff;
- border-color: #759dc0;
-}
-.claro .dijitSliderFocused .dijitSliderProgressBarH, .claro .dijitSliderFocused .dijitSliderLeftBumper {
- background-position: 0 -30px;
- background-color: #abd6ff;
- border-color: #759dc0;
-}
-.claro .dijitSliderFocused .dijitSliderRemainingBarH, .claro .dijitSliderFocused .dijitSliderRightBumper {
- background-position: 0 -9px;
- background-color: #ffffff;
- border-color: #759dc0;
-}
-.claro .dijitSliderDisabled .dijitSliderProgressBarH, .claro .dijitSliderDisabled .dijitSliderLeftBumper {
- background-color: #d3d3d3;
- /* left side of slider, fill matches border */
-
- background-image: none;
-}
-.claro .dijitSliderDisabled .dijitSliderRemainingBarH, .claro .dijitSliderDisabled .dijitSliderRightBumper {
- background-color: #efefef;
-}
-/* Vertical Slider */
-.claro .dijitRuleLabelsContainerV {
- padding: 0 2px;
-}
-.claro .dijitSlider .dijitSliderProgressBarV, .claro .dijitSlider .dijitSliderBottomBumper {
- background-image: url("../form/images/sliderVertical.png");
- background-repeat: repeat-y;
- background-position: -36px 0;
- border-color: #b5bcc7;
- background-color: #cfe5fa;
-}
-.claro .dijitSlider .dijitSliderRemainingBarV, .claro .dijitSlider .dijitSliderTopBumper {
- background-image: url("../form/images/sliderVertical.png");
- background-repeat: repeat-y;
- background-position: -3px 0;
- border-color: #b5bcc7;
- background-color: #ffffff;
-}
-.claro .dijitSliderBottomBumper {
- border-bottom: solid 1px #b5bcc7;
-}
-.claro .dijitSliderTopBumper {
- border-top: solid 1px #b5bcc7;
-}
-.claro .dijitSliderHover .dijitSliderProgressBarV, .claro .dijitSliderHover .dijitSliderBottomBumper {
- background-position: -36px 0;
- background-color: #abd6ff;
-}
-.claro .dijitSliderHover .dijitSliderRemainingBarV, .claro .dijitSliderHover .dijitSliderTopBumper {
- background-position: 0 0;
- background-color: #ffffff;
-}
-.claro .dijitSliderFocused .dijitSliderProgressBarV, .claro .dijitSliderFocused .dijitSliderBottomBumper {
- background-position: -56px 0;
- background-color: #abd6ff;
-}
-.claro .dijitSliderFocused .dijitSliderRemainingBarV, .claro .dijitSliderFocused .dijitSliderTopBumper {
- background-position: -18px 0;
- background-color: #ffffff;
-}
-.claro .dijitSliderDisabled .dijitSliderProgressBarV, .claro .dijitSliderDisabled .dijitSliderBottomBumper {
- background-color: #d3d3d3;
- /* bottom side of slider, fill matches border */
-
-}
-.claro .dijitSliderDisabled .dijitSliderRemainingBarV, .claro .dijitSliderDisabled .dijitSliderTopBumper {
- background-color: #efefef;
-}
-/* ------- Thumbs ------- */
-.claro .dijitSliderImageHandleH {
- border: 0;
- width: 18px;
- height: 16px;
- background-image: url("../form/images/sliderThumbs.png");
- background-repeat: no-repeat;
- background-position: 0 0;
-}
-.claro .dijitSliderHover .dijitSliderImageHandleH {
- background-position: -18px 0;
-}
-.claro .dijitSliderFocused .dijitSliderImageHandleH {
- background-position: -36px 0;
-}
-.claro .dijitSliderProgressBarH .dijitSliderThumbHover {
- background-position: -36px 0;
-}
-.claro .dijitSliderProgressBarH .dijitSliderThumbActive {
- background-position: -36px 0;
-}
-.claro .dijitSliderReadOnly .dijitSliderImageHandleH, .claro .dijitSliderDisabled .dijitSliderImageHandleH {
- background-position: -54px 0;
-}
-.claro .dijitSliderImageHandleV {
- border: 0;
- width: 18px;
- height: 16px;
- background-image: url("../form/images/sliderThumbs.png");
- background-repeat: no-repeat;
- background-position: -289px 0;
-}
-.claro .dijitSliderHover .dijitSliderImageHandleV {
- background-position: -307px 0;
-}
-.claro .dijitSliderFocused .dijitSliderImageHandleV {
- background-position: -325px 0;
-}
-.claro .dijitSliderProgressBarV .dijitSliderThumbHover {
- background-position: -325px 0;
-}
-.claro .dijitSliderProgressBarV .dijitSliderThumbActive {
- background-position: -325px 0;
-}
-.claro .dijitSliderReadOnly .dijitSliderImageHandleV, .claro .dijitSliderDisabled .dijitSliderImageHandleV {
- background-position: -343px 0;
-}
-/* ---- Increment/Decrement Buttons ---- */
-.claro .dijitSliderButtonContainerH {
- padding: 1px 3px 1px 2px;
-}
-.claro .dijitSliderButtonContainerV {
- padding: 3px 1px 2px 1px;
-}
-.claro .dijitSliderDecrementIconH,
-.claro .dijitSliderIncrementIconH,
-.claro .dijitSliderDecrementIconV,
-.claro .dijitSliderIncrementIconV {
- background-image: url("../form/images/commonFormArrows.png");
- background-repeat: no-repeat;
- background-color: #efefef;
- -moz-border-radius: 2px;
- border-radius: 2px;
- border: solid 1px #b5bcc7;
- font-size: 1px;
-}
-.claro .dijitSliderDecrementIconH, .claro .dijitSliderIncrementIconH {
- height: 12px;
- width: 9px;
-}
-.claro .dijitSliderDecrementIconV, .claro .dijitSliderIncrementIconV {
- height: 9px;
- width: 12px;
-}
-.claro .dijitSliderActive .dijitSliderDecrementIconH,
-.claro .dijitSliderActive .dijitSliderIncrementIconH,
-.claro .dijitSliderActive .dijitSliderDecrementIconV,
-.claro .dijitSliderActive .dijitSliderIncrementIconV,
-.claro .dijitSliderHover .dijitSliderDecrementIconH,
-.claro .dijitSliderHover .dijitSliderIncrementIconH,
-.claro .dijitSliderHover .dijitSliderDecrementIconV,
-.claro .dijitSliderHover .dijitSliderIncrementIconV {
- /* dijitSliderActive should be treated as dijitSliderHover since "clicking the slider" has no meaning */
-
- border: solid 1px #759dc0;
- background-color: #ffffff;
-}
-.claro .dijitSliderDecrementIconH {
- background-position: -357px 50%;
-}
-.claro .dijitSliderActive .dijitSliderDecrementIconH.claro .dijitSliderHover .dijitSliderDecrementIconH {
- background-position: -393px 50%;
-}
-.claro .dijitSliderIncrementIconH {
- background-position: -251px 50%;
-}
-.claro .dijitSliderActive .dijitSliderIncrementIconH.claro .dijitSliderHover .dijitSliderIncrementIconH {
- background-position: -283px 50%;
-}
-.claro .dijitSliderDecrementIconV {
- background-position: -38px 50%;
-}
-.claro .dijitSliderActive .dijitSliderDecrementIconV.claro .dijitSliderHover .dijitSliderDecrementIconV {
- background-position: -73px 50%;
-}
-.claro .dijitSliderIncrementIconV {
- background-position: -143px 49%;
-}
-.claro .dijitSliderActive .dijitSliderIncrementIconV.claro .dijitSliderHover .dijitSliderIncrementIconV {
- background-position: -178px 49%;
-}
-.claro .dijitSliderButtonContainerV .dijitSliderDecrementButtonHover,
-.claro .dijitSliderButtonContainerH .dijitSliderDecrementButtonHover,
-.claro .dijitSliderButtonContainerV .dijitSliderIncrementButtonHover,
-.claro .dijitSliderButtonContainerH .dijitSliderIncrementButtonHover {
- background-color: #cfe5fa;
-}
-.claro .dijitSliderButtonContainerV .dijitSliderDecrementButtonActive,
-.claro .dijitSliderButtonContainerH .dijitSliderDecrementButtonActive,
-.claro .dijitSliderButtonContainerV .dijitSliderIncrementButtonActive,
-.claro .dijitSliderButtonContainerH .dijitSliderIncrementButtonActive {
- background-color: #abd6ff;
- border-color: #759dc0;
-}
-.claro .dijitSliderButtonInner {
- visibility: hidden;
-}
-.claro .dijitSliderDisabled .dijitSliderBar {
- border-color: #d3d3d3;
-}
-.claro .dijitSliderReadOnly *, .claro .dijitSliderDisabled * {
- border-color: #d3d3d3;
- color: #818181;
-}
-.claro .dijitSliderReadOnly .dijitSliderDecrementIconH, .claro .dijitSliderDisabled .dijitSliderDecrementIconH {
- background-position: -321px 50%;
- background-color: #efefef;
-}
-.claro .dijitSliderReadOnly .dijitSliderIncrementIconH, .claro .dijitSliderDisabled .dijitSliderIncrementIconH {
- background-position: -215px 50%;
- background-color: #efefef;
-}
-.claro .dijitSliderReadOnly .dijitSliderDecrementIconV, .claro .dijitSliderDisabled .dijitSliderDecrementIconV {
- background-position: -3px 49%;
- background-color: #efefef;
-}
-.claro .dijitSliderReadOnly .dijitSliderIncrementIconV, .claro .dijitSliderDisabled .dijitSliderIncrementIconV {
- background-position: -107px 49%;
- background-color: #efefef;
-}
-.dj_ie6 .claro .dijitSlider .dijitSliderProgressBarH,
-.dj_ie6 .claro .dijitSlider .dijitSliderLeftBumper,
-.dj_ie6 .claro .dijitSlider .dijitSliderRemainingBarH,
-.dj_ie6 .claro .dijitSlider .dijitSliderRightBumper,
-.dj_ie6 .claro .dijitSlider .dijitSliderProgressBarV,
-.dj_ie6 .claro .dijitSlider .dijitSliderTopBumper,
-.dj_ie6 .claro .dijitSlider .dijitSliderRemainingBarV,
-.dj_ie6 .claro .dijitSlider .dijitSliderBottomBumper {
- background-image: none;
-}
+.claro .dijitSliderBar {border-style: solid; outline: 1px;}.claro .dijitSliderFocused .dijitSliderBar {border-color: #759dc0;}.claro .dijitSliderHover .dijitSliderBar {border-color: #759dc0;}.claro .dijitSliderDisabled .dijitSliderBar {background-image: none; border-color: #d3d3d3;}.claro .dijitRuleLabelsContainer {color: #000000;}.claro .dijitRuleLabelsContainerH {padding: 2px 0;}.claro .dijitSlider .dijitSliderProgressBarH, .claro .dijitSlider .dijitSliderLeftBumper {border-color: #b5bcc7; background-color: #cfe5fa; background-image: -moz-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px); background-image: -webkit-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px); background-image: -o-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px); background-image: linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px);}.claro .dijitSlider .dijitSliderRemainingBarH, .claro .dijitSlider .dijitSliderRightBumper {border-color: #b5bcc7; background-color: #ffffff;}.claro .dijitSliderRightBumper {border-right: solid 1px #b5bcc7;}.claro .dijitSliderLeftBumper {border-left: solid 1px #b5bcc7;}.claro .dijitSliderHover .dijitSliderProgressBarH, .claro .dijitSliderHover .dijitSliderLeftBumper {background-color: #abd6ff; border-color: #759dc0;}.claro .dijitSliderHover .dijitSliderRemainingBarH, .claro .dijitSliderHover .dijitSliderRightBumper {background-color: #ffffff; border-color: #759dc0;}.claro .dijitSliderFocused .dijitSliderProgressBarH, .claro .dijitSliderFocused .dijitSliderLeftBumper {background-color: #abd6ff; border-color: #759dc0; -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2);}.claro .dijitSliderFocused .dijitSliderRemainingBarH, .claro .dijitSliderFocused .dijitSliderRightBumper {background-color: #ffffff; border-color: #759dc0; -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2); box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2);}.claro .dijitSliderDisabled .dijitSliderProgressBarH, .claro .dijitSliderDisabled .dijitSliderLeftBumper {background-color: #d3d3d3; background-image: none;}.claro .dijitSliderDisabled .dijitSliderRemainingBarH, .claro .dijitSliderDisabled .dijitSliderRightBumper {background-color: #efefef;}.claro .dijitRuleLabelsContainerV {padding: 0 2px;}.claro .dijitSlider .dijitSliderProgressBarV, .claro .dijitSlider .dijitSliderBottomBumper {border-color: #b5bcc7; background-color: #cfe5fa; background-image: -moz-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 1px); background-image: -webkit-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 1px); background-image: -o-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 1px); background-image: linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 1px);}.claro .dijitSlider .dijitSliderRemainingBarV, .claro .dijitSlider .dijitSliderTopBumper {border-color: #b5bcc7; background-color: #ffffff;}.claro .dijitSliderBottomBumper {border-bottom: solid 1px #b5bcc7;}.claro .dijitSliderTopBumper {border-top: solid 1px #b5bcc7;}.claro .dijitSliderHover .dijitSliderProgressBarV, .claro .dijitSliderHover .dijitSliderBottomBumper {background-color: #abd6ff; border-color: #759dc0;}.claro .dijitSliderHover .dijitSliderRemainingBarV, .claro .dijitSliderHover .dijitSliderTopBumper {background-color: #ffffff; border-color: #759dc0;}.claro .dijitSliderFocused .dijitSliderProgressBarV, .claro .dijitSliderFocused .dijitSliderBottomBumper {background-color: #abd6ff; border-color: #759dc0; -webkit-box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2); box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2);}.claro .dijitSliderFocused .dijitSliderRemainingBarV, .claro .dijitSliderFocused .dijitSliderTopBumper {background-color: #ffffff; border-color: #759dc0; -webkit-box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2); box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 0.2);}.claro .dijitSliderDisabled .dijitSliderProgressBarV, .claro .dijitSliderDisabled .dijitSliderBottomBumper {background-color: #d3d3d3;}.claro .dijitSliderDisabled .dijitSliderRemainingBarV, .claro .dijitSliderDisabled .dijitSliderTopBumper {background-color: #efefef;}.claro .dijitSliderImageHandleH {border: 0; width: 18px; height: 16px; background-image: url("../form/images/sliderThumbs.png"); background-repeat: no-repeat; background-position: 0 0;}.claro .dijitSliderHover .dijitSliderImageHandleH {background-position: -18px 0;}.claro .dijitSliderFocused .dijitSliderImageHandleH {background-position: -36px 0;}.claro .dijitSliderProgressBarH .dijitSliderThumbHover {background-position: -36px 0;}.claro .dijitSliderProgressBarH .dijitSliderThumbActive {background-position: -36px 0;}.claro .dijitSliderReadOnly .dijitSliderImageHandleH, .claro .dijitSliderDisabled .dijitSliderImageHandleH {background-position: -54px 0;}.claro .dijitSliderImageHandleV {border: 0; width: 18px; height: 16px; background-image: url("../form/images/sliderThumbs.png"); background-repeat: no-repeat; background-position: -289px 0;}.claro .dijitSliderHover .dijitSliderImageHandleV {background-position: -307px 0;}.claro .dijitSliderFocused .dijitSliderImageHandleV {background-position: -325px 0;}.claro .dijitSliderProgressBarV .dijitSliderThumbHover {background-position: -325px 0;}.claro .dijitSliderProgressBarV .dijitSliderThumbActive {background-position: -325px 0;}.claro .dijitSliderReadOnly .dijitSliderImageHandleV, .claro .dijitSliderDisabled .dijitSliderImageHandleV {background-position: -343px 0;}.claro .dijitSliderButtonContainerH {padding: 1px 3px 1px 2px;}.claro .dijitSliderButtonContainerV {padding: 3px 1px 2px 1px;}.claro .dijitSliderDecrementIconH,.claro .dijitSliderIncrementIconH,.claro .dijitSliderDecrementIconV,.claro .dijitSliderIncrementIconV {background-image: url("../form/images/commonFormArrows.png"); background-repeat: no-repeat; background-color: #efefef; -moz-border-radius: 2px; border-radius: 2px; border: solid 1px #b5bcc7; font-size: 1px;}.claro .dijitSliderDecrementIconH, .claro .dijitSliderIncrementIconH {height: 12px; width: 9px;}.claro .dijitSliderDecrementIconV, .claro .dijitSliderIncrementIconV {height: 9px; width: 12px;}.claro .dijitSliderActive .dijitSliderDecrementIconH,.claro .dijitSliderActive .dijitSliderIncrementIconH,.claro .dijitSliderActive .dijitSliderDecrementIconV,.claro .dijitSliderActive .dijitSliderIncrementIconV,.claro .dijitSliderHover .dijitSliderDecrementIconH,.claro .dijitSliderHover .dijitSliderIncrementIconH,.claro .dijitSliderHover .dijitSliderDecrementIconV,.claro .dijitSliderHover .dijitSliderIncrementIconV {border: solid 1px #759dc0; background-color: #ffffff;}.claro .dijitSliderDecrementIconH {background-position: -357px 50%;}.claro .dijitSliderActive .dijitSliderDecrementIconH.claro .dijitSliderHover .dijitSliderDecrementIconH {background-position: -393px 50%;}.claro .dijitSliderIncrementIconH {background-position: -251px 50%;}.claro .dijitSliderActive .dijitSliderIncrementIconH.claro .dijitSliderHover .dijitSliderIncrementIconH {background-position: -283px 50%;}.claro .dijitSliderDecrementIconV {background-position: -38px 50%;}.claro .dijitSliderActive .dijitSliderDecrementIconV.claro .dijitSliderHover .dijitSliderDecrementIconV {background-position: -73px 50%;}.claro .dijitSliderIncrementIconV {background-position: -143px 49%;}.claro .dijitSliderActive .dijitSliderIncrementIconV.claro .dijitSliderHover .dijitSliderIncrementIconV {background-position: -178px 49%;}.claro .dijitSliderButtonContainerV .dijitSliderDecrementButtonHover,.claro .dijitSliderButtonContainerH .dijitSliderDecrementButtonHover,.claro .dijitSliderButtonContainerV .dijitSliderIncrementButtonHover,.claro .dijitSliderButtonContainerH .dijitSliderIncrementButtonHover {background-color: #cfe5fa;}.claro .dijitSliderButtonContainerV .dijitSliderDecrementButtonActive,.claro .dijitSliderButtonContainerH .dijitSliderDecrementButtonActive,.claro .dijitSliderButtonContainerV .dijitSliderIncrementButtonActive,.claro .dijitSliderButtonContainerH .dijitSliderIncrementButtonActive {background-color: #abd6ff; border-color: #759dc0;}.claro .dijitSliderButtonInner {visibility: hidden;}.claro .dijitSliderDisabled .dijitSliderBar {border-color: #d3d3d3;}.claro .dijitSliderReadOnly *, .claro .dijitSliderDisabled * {border-color: #d3d3d3; color: #818181;}.claro .dijitSliderReadOnly .dijitSliderDecrementIconH, .claro .dijitSliderDisabled .dijitSliderDecrementIconH {background-position: -321px 50%; background-color: #efefef;}.claro .dijitSliderReadOnly .dijitSliderIncrementIconH, .claro .dijitSliderDisabled .dijitSliderIncrementIconH {background-position: -215px 50%; background-color: #efefef;}.claro .dijitSliderReadOnly .dijitSliderDecrementIconV, .claro .dijitSliderDisabled .dijitSliderDecrementIconV {background-position: -3px 49%; background-color: #efefef;}.claro .dijitSliderReadOnly .dijitSliderIncrementIconV, .claro .dijitSliderDisabled .dijitSliderIncrementIconV {background-position: -107px 49%; background-color: #efefef;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/Slider.less b/lib/dijit/themes/claro/form/Slider.less
index db0f8cb24..2c5bfe914 100644
--- a/lib/dijit/themes/claro/form/Slider.less
+++ b/lib/dijit/themes/claro/form/Slider.less
@@ -66,7 +66,7 @@
background-image: none;
border-color: @disabled-border-color;
}
-.claro .dijitRuleLabel {
+.claro .dijitRuleLabelsContainer {
color: @text-color;
}
@@ -77,17 +77,12 @@
}
.claro .dijitSlider .dijitSliderProgressBarH,
.claro .dijitSlider .dijitSliderLeftBumper{
- background-image: url("../@{image-form-slider-horizontal}");
- background-repeat:repeat-x;
- background-position:0 -20px;
border-color: @border-color;
background-color: @slider-fullbar-background-color;
+ .alpha-white-gradient (top, 1,0px, 1,1px, 0,2px);
}
.claro .dijitSlider .dijitSliderRemainingBarH,
.claro .dijitSlider .dijitSliderRightBumper{
- background-image: url("../@{image-form-slider-horizontal}");
- background-repeat:repeat-x;
- background-position:0 -11px;
border-color: @border-color;
background-color: @slider-remainingbar-background-color;
}
@@ -99,27 +94,25 @@
}
.claro .dijitSliderHover .dijitSliderProgressBarH,
.claro .dijitSliderHover .dijitSliderLeftBumper{
- background-position:0 -20px;
background-color: @slider-hovered-fullbar-background-color;
border-color: @hovered-border-color;
}
.claro .dijitSliderHover .dijitSliderRemainingBarH,
.claro .dijitSliderHover .dijitSliderRightBumper{
- background-position:0 0;
background-color: @slider-hovered-remainingbar-background-color;
border-color: @hovered-border-color;
}
.claro .dijitSliderFocused .dijitSliderProgressBarH,
.claro .dijitSliderFocused .dijitSliderLeftBumper{
- background-position:0 -30px;
background-color: @slider-focused-fullbar-background-color;
border-color: @focused-border-color;
+ .box-shadow(inset 0px 1px 1px rgba(0, 0, 0, 0.2));
}
.claro .dijitSliderFocused .dijitSliderRemainingBarH,
.claro .dijitSliderFocused .dijitSliderRightBumper{
- background-position:0 -9px;
background-color: @slider-focused-remainingbar-background-color;
border-color: @focused-border-color;
+ .box-shadow(inset 0px 1px 1px rgba(0, 0, 0, 0.2));
}
.claro .dijitSliderDisabled .dijitSliderProgressBarH,
.claro .dijitSliderDisabled .dijitSliderLeftBumper{
@@ -138,17 +131,12 @@
}
.claro .dijitSlider .dijitSliderProgressBarV,
.claro .dijitSlider .dijitSliderBottomBumper{
- background-image: url("../@{image-form-slider-vertical}");
- background-repeat:repeat-y;
- background-position:-36px 0;
border-color: @border-color;
background-color: @slider-fullbar-background-color;
+ .alpha-white-gradient (left, 1,0px, 0,1px);
}
.claro .dijitSlider .dijitSliderRemainingBarV,
.claro .dijitSlider .dijitSliderTopBumper{
- background-image: url("../@{image-form-slider-vertical}");
- background-repeat:repeat-y;
- background-position:-3px 0;
border-color: @border-color;
background-color: @slider-remainingbar-background-color;
}
@@ -160,23 +148,25 @@
}
.claro .dijitSliderHover .dijitSliderProgressBarV,
.claro .dijitSliderHover .dijitSliderBottomBumper{
- background-position:-36px 0;
background-color: @slider-hovered-fullbar-background-color;
+ border-color: @hovered-border-color;
}
.claro .dijitSliderHover .dijitSliderRemainingBarV,
.claro .dijitSliderHover .dijitSliderTopBumper{
- background-position:0 0;
background-color: @slider-hovered-remainingbar-background-color;
+ border-color: @hovered-border-color;
}
.claro .dijitSliderFocused .dijitSliderProgressBarV,
.claro .dijitSliderFocused .dijitSliderBottomBumper{
- background-position:-56px 0;
background-color: @slider-focused-fullbar-background-color;
+ border-color: @focused-border-color;
+ .box-shadow(inset 1px 0px 1px rgba(0, 0, 0, 0.2));
}
.claro .dijitSliderFocused .dijitSliderRemainingBarV,
.claro .dijitSliderFocused .dijitSliderTopBumper{
- background-position:-18px 0;
background-color: @slider-focused-remainingbar-background-color;
+ border-color: @focused-border-color;
+ .box-shadow(inset 1px 0px 1px rgba(0, 0, 0, 0.2));
}
.claro .dijitSliderDisabled .dijitSliderProgressBarV,
.claro .dijitSliderDisabled .dijitSliderBottomBumper{
@@ -352,14 +342,3 @@
background-position:-107px 49%;
background-color:@disabled-background-color;
}
-
-.dj_ie6 .claro .dijitSlider .dijitSliderProgressBarH,
-.dj_ie6 .claro .dijitSlider .dijitSliderLeftBumper,
-.dj_ie6 .claro .dijitSlider .dijitSliderRemainingBarH,
-.dj_ie6 .claro .dijitSlider .dijitSliderRightBumper,
-.dj_ie6 .claro .dijitSlider .dijitSliderProgressBarV,
-.dj_ie6 .claro .dijitSlider .dijitSliderTopBumper,
-.dj_ie6 .claro .dijitSlider .dijitSliderRemainingBarV,
-.dj_ie6 .claro .dijitSlider .dijitSliderBottomBumper {
- background-image:none;
-}
diff --git a/lib/dijit/themes/claro/form/Slider_rtl.css b/lib/dijit/themes/claro/form/Slider_rtl.css
index 97e078b9f..7e12d0557 100644
--- a/lib/dijit/themes/claro/form/Slider_rtl.css
+++ b/lib/dijit/themes/claro/form/Slider_rtl.css
@@ -1,24 +1 @@
-.claro .dijitSliderRtl .dijitSliderProgressBarH,
-.claro .dijitSliderRtl .dijitSliderRemainingBarH,
-.claro .dijitSliderRtl .dijitSliderLeftBumper,
-.claro .dijitSliderRtl .dijitSliderRightBumper,
-.claro .dijitSliderRtl .dijitSliderTopBumper {
- background-position: top right;
-}
-.claro .dijitSliderRtl .dijitSliderProgressBarV, .claro .dijitSliderRtl .dijitSliderRemainingBarV, .claro .dijitSliderRtl .dijitSliderBottomBumper {
- background-position: bottom right;
-}
-.claro .dijitSliderRtl .dijitSliderLeftBumper {
- border-left-width: 0;
- border-right-width: 1px;
-}
-.claro .dijitSliderRtl .dijitSliderRightBumper {
- border-left-width: 1px;
- border-right-width: 0;
-}
-.claro .dijitSliderRtl .dijitSliderIncrementIconH {
- background-position: -357px 50%;
-}
-.claro .dijitSliderRtl .dijitSliderDecrementIconH {
- background-position: -251px 50%;
-}
+.claro .dijitSliderRtl .dijitSliderProgressBarH,.claro .dijitSliderRtl .dijitSliderRemainingBarH,.claro .dijitSliderRtl .dijitSliderLeftBumper,.claro .dijitSliderRtl .dijitSliderRightBumper,.claro .dijitSliderRtl .dijitSliderTopBumper {background-position: top right;}.claro .dijitSliderRtl .dijitSliderProgressBarV, .claro .dijitSliderRtl .dijitSliderRemainingBarV, .claro .dijitSliderRtl .dijitSliderBottomBumper {background-position: bottom right;}.claro .dijitSliderRtl .dijitSliderLeftBumper {border-left-width: 0; border-right-width: 1px;}.claro .dijitSliderRtl .dijitSliderRightBumper {border-left-width: 1px; border-right-width: 0;}.claro .dijitSliderRtl .dijitSliderIncrementIconH {background-position: -357px 50%;}.claro .dijitSliderRtl .dijitSliderDecrementIconH {background-position: -251px 50%;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/images/button.png b/lib/dijit/themes/claro/form/images/button.png
deleted file mode 100644
index cb787cb2c..000000000
--- a/lib/dijit/themes/claro/form/images/button.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/form/images/buttonDisabled.png b/lib/dijit/themes/claro/form/images/buttonDisabled.png
new file mode 100644
index 000000000..faf57ba1d
--- /dev/null
+++ b/lib/dijit/themes/claro/form/images/buttonDisabled.png
Binary files differ
diff --git a/lib/dijit/themes/claro/form/images/buttonDisabled.svg b/lib/dijit/themes/claro/form/images/buttonDisabled.svg
new file mode 100644
index 000000000..72a51a017
--- /dev/null
+++ b/lib/dijit/themes/claro/form/images/buttonDisabled.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for buttonDisabled.png, which is used by IE7-9 for Button gradients.
+ Compile to png with batik, gimp, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match gradients defined in Button.css. It is however an approximation, since generated
+ output has a constant height, rather than matching the height of each button.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="1px" height="18px" viewBox="0 0 1 18" preserveAspectRatio="none">
+
+ <defs>
+ <linearGradient id="disabled" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="0%" y2="100%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="1"/>
+ <stop offset="50%" stop-color="#ffffff" stop-opacity="0"/>
+ </linearGradient>
+ </defs>
+
+ <!--
+ Swatch for disabled buttons. It will only fill the top part of the disabled buttons.
+ The bottom of disabled buttons are pure background-color
+ -->
+ <rect x="0" y="0" width="1" height="18" fill="url(#disabled)"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/images/buttonEnabled.png b/lib/dijit/themes/claro/form/images/buttonEnabled.png
new file mode 100644
index 000000000..0932a9947
--- /dev/null
+++ b/lib/dijit/themes/claro/form/images/buttonEnabled.png
Binary files differ
diff --git a/lib/dijit/themes/claro/form/images/buttonEnabled.svg b/lib/dijit/themes/claro/form/images/buttonEnabled.svg
new file mode 100644
index 000000000..d9e564ab8
--- /dev/null
+++ b/lib/dijit/themes/claro/form/images/buttonEnabled.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for buttonEnabled.png, which is used by IE7-9 for Button gradients.
+ Compile to png with batik, gimp, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match gradients defined in Button.css. It is however an approximation, since generated
+ output has a constant height, rather than matching the height of each button.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="1px" height="149px" viewBox="0 0 1 149" preserveAspectRatio="none">
+
+ <defs>
+ <linearGradient id="enabled" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="0%" y2="100%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="1"/>
+ <stop offset="2%" stop-color="#ffffff" stop-opacity="0"/>
+ <stop offset="15%" stop-color="#ffffff" stop-opacity="0.7"/> <!-- near bottom of average height buttons -->
+ </linearGradient>
+ </defs>
+
+ <!--
+ Swatch for enabled buttons. It's 149px tall to account for tall buttons, but usually
+ only the top will be visible.
+ -->
+ <rect x="0" y="0" width="1" height="149" fill="url(#enabled)"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/form/images/button_grad_d.png b/lib/dijit/themes/claro/form/images/button_grad_d.png
deleted file mode 100644
index 3a71a4653..000000000
--- a/lib/dijit/themes/claro/form/images/button_grad_d.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/form/images/formHighlight.png b/lib/dijit/themes/claro/form/images/formHighlight.png
deleted file mode 100644
index f90eb25ba..000000000
--- a/lib/dijit/themes/claro/form/images/formHighlight.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/form/images/shadow.png b/lib/dijit/themes/claro/form/images/shadow.png
deleted file mode 100644
index 72d60e628..000000000
--- a/lib/dijit/themes/claro/form/images/shadow.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/form/images/sliderHorizontal.png b/lib/dijit/themes/claro/form/images/sliderHorizontal.png
deleted file mode 100644
index d769a6489..000000000
--- a/lib/dijit/themes/claro/form/images/sliderHorizontal.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/form/images/sliderVertical.png b/lib/dijit/themes/claro/form/images/sliderVertical.png
deleted file mode 100644
index 9d69d04c2..000000000
--- a/lib/dijit/themes/claro/form/images/sliderVertical.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/form/images/textBox_back.png b/lib/dijit/themes/claro/form/images/textBox_back.png
deleted file mode 100644
index dfc752afe..000000000
--- a/lib/dijit/themes/claro/form/images/textBox_back.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/images/activeGradient.png b/lib/dijit/themes/claro/images/activeGradient.png
new file mode 100644
index 000000000..7e5716c0b
--- /dev/null
+++ b/lib/dijit/themes/claro/images/activeGradient.png
Binary files differ
diff --git a/lib/dijit/themes/claro/images/activeGradient.svg b/lib/dijit/themes/claro/images/activeGradient.svg
new file mode 100644
index 000000000..8ab6ce9c1
--- /dev/null
+++ b/lib/dijit/themes/claro/images/activeGradient.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for standardGradient.png, which is used by IE7-9 for light-to-dark gradient of many widgets.
+ Compile to png with batik, gimp, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match CSS gradient from .standard-gradient() mixin in variables.css.
+ It is however an approximation, since generated
+ output has a constant height, rather than matching the height of each node.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="1px" height="16px" viewBox="0 0 1 1" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="0%" y2="100%">
+ <stop offset="0%" stop-color="rgb(190,190,190)" stop-opacity="0.98"/>
+ <stop offset="20%" stop-color="#ffffff" stop-opacity="0.65"/>
+ <stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>
+ </linearGradient>
+ </defs>
+ <rect x="0" y="0" width="1" height="1" fill="url(#gradient)"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/images/calendar.png b/lib/dijit/themes/claro/images/calendar.png
new file mode 100644
index 000000000..de66cbdb4
--- /dev/null
+++ b/lib/dijit/themes/claro/images/calendar.png
Binary files differ
diff --git a/lib/dijit/themes/claro/images/calendarContainerImages.png b/lib/dijit/themes/claro/images/calendarContainerImages.png
deleted file mode 100644
index 44fa088b7..000000000
--- a/lib/dijit/themes/claro/images/calendarContainerImages.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/images/commonHighlight.png b/lib/dijit/themes/claro/images/commonHighlight.png
deleted file mode 100644
index f90eb25ba..000000000
--- a/lib/dijit/themes/claro/images/commonHighlight.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/images/dnd.png b/lib/dijit/themes/claro/images/dnd.png
index 8cb04aa43..29bef4d38 100644
--- a/lib/dijit/themes/claro/images/dnd.png
+++ b/lib/dijit/themes/claro/images/dnd.png
Binary files differ
diff --git a/lib/dijit/themes/claro/images/menuHighlight.png b/lib/dijit/themes/claro/images/menuHighlight.png
deleted file mode 100644
index 22328a7d8..000000000
--- a/lib/dijit/themes/claro/images/menuHighlight.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/images/progressBarEmpty.png b/lib/dijit/themes/claro/images/progressBarEmpty.png
deleted file mode 100644
index e0a68561f..000000000
--- a/lib/dijit/themes/claro/images/progressBarEmpty.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/images/standardGradient.png b/lib/dijit/themes/claro/images/standardGradient.png
new file mode 100644
index 000000000..345402f62
--- /dev/null
+++ b/lib/dijit/themes/claro/images/standardGradient.png
Binary files differ
diff --git a/lib/dijit/themes/claro/images/standardGradient.svg b/lib/dijit/themes/claro/images/standardGradient.svg
new file mode 100644
index 000000000..807c3c70b
--- /dev/null
+++ b/lib/dijit/themes/claro/images/standardGradient.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for standardGradient.png, which is used by IE7-9 for light-to-dark gradient of many widgets.
+ Compile to png with batik, gimp, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match CSS gradient from .standard-gradient() mixin in variables.css.
+ It is however an approximation, since generated
+ output has a constant height, rather than matching the height of each node.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 1 1" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="0%" y2="100%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="0.7"/>
+ <stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>
+ </linearGradient>
+ </defs>
+ <rect x="0" y="0" width="1" height="1" fill="url(#gradient)"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/images/titlebar.png b/lib/dijit/themes/claro/images/titlebar.png
deleted file mode 100644
index 48181035a..000000000
--- a/lib/dijit/themes/claro/images/titlebar.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/images/tooltipGradient.png b/lib/dijit/themes/claro/images/tooltipGradient.png
deleted file mode 100644
index ce4860e79..000000000
--- a/lib/dijit/themes/claro/images/tooltipGradient.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/images/treeExpand_loading.gif b/lib/dijit/themes/claro/images/treeExpand_loading.gif
deleted file mode 100644
index 424d376ac..000000000
--- a/lib/dijit/themes/claro/images/treeExpand_loading.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/AccordionContainer.css b/lib/dijit/themes/claro/layout/AccordionContainer.css
index 34831764c..764a46ce8 100644
--- a/lib/dijit/themes/claro/layout/AccordionContainer.css
+++ b/lib/dijit/themes/claro/layout/AccordionContainer.css
@@ -1,121 +1 @@
-/* Accordion
- *
- * Styling AccordionContainer basically means styling the accordion pane (dijitAccordionInnerContainer)
- * and the title inside of it (dijitAccordionTitle). There are 4 basic states to style:
- *
- * 1. closed pane (and default styling):
- * .dijitAccordionInnerContainer - container for each accordion child
- * .dijitAccordionTitle - title for each accordion child
- *
- * 2. active closed pane (ie, mouse down on a title bar)
- * .dijitAccordionInnerContainerActive - for background-color, border
- * .dijitAccordionInnerContainerActive dijitAccordionTitle - for text color
- *
- * 3. open pane (expanded child)
- * .dijitAccordionChildWrapper - wraps around the child widget (typically ContentPane)
- * setting a margin so that there's blue trim all the way around the child
- *
- * These rules need to override the closed pane active:
- *
- * .dijitAccordionInnerContainerSelected - for background-color, border
- * .dijitAccordionInnerContainerSelected .dijitAccordionTitle - for text color
- *
- * 4. hovered pane, open or closed
- * The selectors below affect hovering over both a closed pane (ie, hovering a title bar),
- * and hovering over an open pane. Also, treat mouse down on an open pane as a hover:
- *
- * .dijitAccordionInnerContainerHover, .dijitAccordionInnerContainerSelectedActive - for background-color, border
- * .dijitAccordionInnerContainerHover .dijitAccordionTitle - for text color
- */
-.claro .dijitAccordionContainer {
- border: none;
-}
-.claro .dijitAccordionInnerContainer {
- background-color: #efefef;
- /* gray, for closed pane */
-
- border: solid 1px #b5bcc7;
- margin-bottom: 1px;
- -webkit-transition-property: background-color, border;
- -moz-transition-property: background-color, border;
- transition-property: background-color, border;
- -webkit-transition-duration: 0.3s;
- -moz-transition-duration: 0.3s;
- transition-duration: 0.3s;
- -webkit-transition-timing-function: linear;
- -moz-transition-timing-function: linear;
- transition-timing-function: linear;
-}
-.claro .dijitAccordionTitle {
- background-color: transparent;
- /* pick up color from dijitAccordionInnerContainer */
-
- background-image: url("../layout/images/accordion.png");
- background-position: 0 0;
- background-repeat: repeat-x;
- padding: 5px 7px 2px 7px;
- min-height: 17px;
- color: #494949;
-}
-.dj_ie6 .claro .dijitAccordionTitle {
- background-image: none;
-}
-.claro .dijitAccordionContainer .dijitAccordionChildWrapper {
- /* this extends the blue trim styling of the title bar to wrapping around the node.
- * done by setting margin
- */
-
- background-color: #ffffff;
- border: 1px solid #759dc0;
- margin: 0 2px 2px;
-}
-.claro .dijitAccordionContainer .dijitAccordionContainer-child {
- /* this is affecting the child widget itself */
-
- padding: 9px;
-}
-/* Active state for closed pane */
-.claro .dijitAccordionInnerContainerActive {
- border: 1px solid #759dc0;
- background-color: #7dbdfa;
- -webkit-transition-duration: 0.1s;
- -moz-transition-duration: 0.1s;
- transition-duration: 0.1s;
-}
-.claro .dijitAccordionInnerContainerActive .dijitAccordionTitle {
- background-position: 0 -136px;
- color: #000000;
-}
-/* Open (a.k.a. selected) pane */
-.claro .dijitAccordionInnerContainerSelected {
- border-color: #759dc0;
- background-color: #cfe5fa;
-}
-.claro .dijitAccordionInnerContainerSelected .dijitAccordionTitle {
- color: #000000;
- background-position: 0 0;
- /* avoid effect when clicking the title of the open pane */
-
-}
-/* Hovering open or closed pane */
-.claro .dijitAccordionInnerContainerHover .dijitAccordionTitle {
- /* both open and closed */
-
- color: #000000;
-}
-.claro .dijitAccordionInnerContainerHover, .claro .dijitAccordionInnerContainerSelectedActive {
- /* note: clicking the currently selected Accordion pane should have no effect, so treating same as hover. */
-
- border: 1px solid #759dc0;
- background-color: #abd6ff;
- -webkit-transition-duration: 0.2s;
- -moz-transition-duration: 0.2s;
- transition-duration: 0.2s;
-}
-.claro .dijitAccordionInnerContainerSelectedHover .dijitAccordionChildWrapper, .claro .dijitAccordionInnerContainerSelectedActive .dijitAccordionChildWrapper {
- background-color: #ffffff;
- border: 1px solid #759dc0 !important;
- -webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.25);
- -moz-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.25);
- box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.25);
-}
+.claro .dijitAccordionContainer {border: none;}.claro .dijitAccordionInnerContainer {background-color: #efefef; border: solid 1px #b5bcc7; margin-bottom: 1px; -webkit-transition-property: background-color, border; -moz-transition-property: background-color, border; transition-property: background-color, border; -webkit-transition-duration: 0.3s; -moz-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: linear; -moz-transition-timing-function: linear; transition-timing-function: linear;}.claro .dijitAccordionTitle {background-color: transparent; background-image: url("../images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none; padding: 5px 7px 2px 7px; min-height: 17px; color: #494949;}.claro .dijitAccordionContainer .dijitAccordionChildWrapper {background-color: #ffffff; border: 1px solid #759dc0; margin: 0 2px 2px;}.claro .dijitAccordionContainer .dijitAccordionContainer-child {padding: 9px;}.claro .dijitAccordionInnerContainerActive {border: 1px solid #759dc0; background-color: #7dbdfa; -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.claro .dijitAccordionInnerContainerActive .dijitAccordionTitle {background-image: url("../images/activeGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(190, 190, 190, 0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%); _background-image: none; color: #000000;}.claro .dijitAccordionInnerContainerSelected {border-color: #759dc0; background-color: #cfe5fa;}.claro .dijitAccordionInnerContainerSelected .dijitAccordionTitle {color: #000000; background-image: url("../images/standardGradient.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%); _background-image: none;}.claro .dijitAccordionInnerContainerHover .dijitAccordionTitle {color: #000000;}.claro .dijitAccordionInnerContainerHover, .claro .dijitAccordionInnerContainerSelectedActive {border: 1px solid #759dc0; background-color: #abd6ff; -webkit-transition-duration: 0.2s; -moz-transition-duration: 0.2s; transition-duration: 0.2s;}.claro .dijitAccordionInnerContainerSelectedHover .dijitAccordionChildWrapper, .claro .dijitAccordionInnerContainerSelectedActive .dijitAccordionChildWrapper {background-color: #ffffff; border: 1px solid #759dc0; -webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.25); -moz-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.25); box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.25);} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/AccordionContainer.less b/lib/dijit/themes/claro/layout/AccordionContainer.less
index b3aa62248..fd4308c30 100644
--- a/lib/dijit/themes/claro/layout/AccordionContainer.less
+++ b/lib/dijit/themes/claro/layout/AccordionContainer.less
@@ -43,16 +43,12 @@
}
.claro .dijitAccordionTitle {
background-color: transparent; /* pick up color from dijitAccordionInnerContainer */
- background-image: url("../@{image-layout-accordion}");
- background-position:0 0;
- background-repeat:repeat-x;
+ .standard-gradient("../");
padding: 5px 7px 2px 7px;
min-height:17px;
color:@unselected-text-color;
}
-.dj_ie6 .claro .dijitAccordionTitle {
- background-image: none;
-}
+
.claro .dijitAccordionContainer .dijitAccordionChildWrapper {
/* this extends the blue trim styling of the title bar to wrapping around the node.
* done by setting margin
@@ -75,7 +71,7 @@
.transition-duration(.1s);
}
.claro .dijitAccordionInnerContainerActive .dijitAccordionTitle {
- background-position:0 -136px;
+ .active-gradient("../");
color:@selected-text-color;
}
@@ -87,7 +83,7 @@
}
.claro .dijitAccordionInnerContainerSelected .dijitAccordionTitle {
color:@selected-text-color;
- background-position: 0 0; /* avoid effect when clicking the title of the open pane */
+ .standard-gradient("../"); /* avoid effect when clicking the title of the open pane */
}
/* Hovering open or closed pane */
@@ -97,6 +93,8 @@
color:@hovered-text-color;
}
+// TODO: why do we have any hover effect on the selected pane?
+// Since you can't click it, there shouldn't be a hover effect.
.claro .dijitAccordionInnerContainerHover,
.claro .dijitAccordionInnerContainerSelectedActive {
/* note: clicking the currently selected Accordion pane should have no effect, so treating same as hover. */
@@ -108,6 +106,6 @@
.claro .dijitAccordionInnerContainerSelectedHover .dijitAccordionChildWrapper,
.claro .dijitAccordionInnerContainerSelectedActive .dijitAccordionChildWrapper {
background-color:@pane-background-color;
- border:1px solid @hovered-border-color !important;
+ border:1px solid @hovered-border-color;
.box-shadow(inset 0 0 3px rgba(0, 0, 0, .25));
}
diff --git a/lib/dijit/themes/claro/layout/BorderContainer.css b/lib/dijit/themes/claro/layout/BorderContainer.css
index 8c0a5fa96..d69087893 100644
--- a/lib/dijit/themes/claro/layout/BorderContainer.css
+++ b/lib/dijit/themes/claro/layout/BorderContainer.css
@@ -1,109 +1 @@
-/* BorderContainer
-
-Splitters and gutters separate panes within a BorderContainer. Splitters can be moved up and down (horizonal splitters) or left and right (vertical splitters), while Gutters are static. A "thumb" is the slit on a Splitter that indicates it is movable.
-
-Styling the BorderContainer widget consists of the following:
-
-.dijitBorderContainer - for border and padding of the entire border container
-
-.dijitSplitContainer-child, .dijitBorderContainer-child - for border or child panes of the border container. By default borders are put on all children of BorderContainer.
-
-.dijitBorderContainer-dijitTabContainerTop,
-.dijitBorderContainer-dijitTabContainerBottom,
-.dijitBorderContainer-dijitTabContainerLeft,
-.dijitBorderContainer-dijitTabContainerRight,
-.dijitBorderContainer-dijitAccordionContainer -for border of the border containers within TabContainer or AccordionContainer widget
-
-.dijitBorderContainer-dijitBorderContainer - for border and padding of nested BorderContainers
-
-Splitters and gutters:
-
-.dijitSplitterH, .dijitGutterH - for height, background, and border of a horizontal splitter and gutter
-.dijitSplitterH .dijitSplitterThumb - for color, height/width of the thumb on a horizontal splitter
-.dijitSplitterV, .dijitGutterV - - for height, background, and border of a vertical splitter and gutter
-.dijitSplitterV .dijitSplitterThumb - for color, height/width of the thumb on a vertical splitter
-.dijitSplitterHHover - for background-color of a hovered horizontal splitter
-.dijitSplitterHHover .dijitSplitterThumb - for background-color of a hovered thumb on a horizontal splitter
-.dijitSplitterVHover - for background-color of a hovered vertical splitter
-.dijitSplitterVHover .dijitSplitterThumb - for background-color of a hovered thumb on a vertical splitter
-.dijitSplitterHActive - for background-color of an active horizontal splitter
-.dijitSplitterVActive - for background-color of an active horizontal splitter
-*/
-.claro .dijitBorderContainer {
- /* matches the width of the splitters between panes */
-
- padding: 5px;
-}
-.claro .dijitSplitContainer-child, .claro .dijitBorderContainer-child {
- /* By default put borders on all children of BorderContainer,
- * to give illusion of borders on the splitters themselves.
- */
-
- border: 1px #b5bcc7 solid;
-}
-.claro .dijitBorderContainer-dijitTabContainerTop,
-.claro .dijitBorderContainer-dijitTabContainerBottom,
-.claro .dijitBorderContainer-dijitTabContainerLeft,
-.claro .dijitBorderContainer-dijitTabContainerRight,
-.claro .dijitBorderContainer-dijitAccordionContainer {
- /* except that TabContainer defines borders on it's sub-nodes (tablist and dijitTabPaneWrapper),
- * so override rule setting border on domNode
- */
-
- border: none;
-}
-.claro .dijitBorderContainer-dijitBorderContainer {
- /* make nested BorderContainers look like a single big widget with lots of splitters */
-
- border: 0;
- padding: 0;
-}
-/* Splitters and gutters */
-.claro .dijitSplitterH, .claro .dijitGutterH {
- background: none;
- border: 0;
- height: 5px;
-}
-.claro .dijitSplitterH .dijitSplitterThumb {
- background: #b5bcc7 none;
- height: 1px;
- top: 2px;
- width: 19px;
-}
-.claro .dijitSplitterV, .claro .dijitGutterV {
- background: none;
- border: 0;
- width: 5px;
- margin: 0;
-}
-.claro .dijitSplitterV .dijitSplitterThumb {
- background: #b5bcc7 none;
- height: 19px;
- left: 2px;
- width: 1px;
- margin: 0;
-}
-/* hovered splitter */
-.claro .dijitSplitterHHover {
- font-size: 1px;
- background: url("../layout/images/splitterHorizontalHover.png") no-repeat center top;
-}
-.claro .dijitSplitterHHover .dijitSplitterThumb {
- background: #759dc0 none;
-}
-.claro .dijitSplitterVHover {
- font-size: 1px;
- background: url("../layout/images/splitterVerticalHover.png") no-repeat center left;
-}
-.claro .dijitSplitterVHover .dijitSplitterThumb {
- background: #759dc0 none;
-}
-.dj_ie6 .dijitSplitterHHover, .dj_ie6 .claro .dijitSplitterVHover {
- background-color: #cfe5fa;
- background-image: none;
-}
-/* active splitter */
-.claro .dijitSplitterHActive, .claro .dijitSplitterVActive {
- font-size: 1px;
- background-color: #abd6ff;
-}
+.claro .dijitBorderContainer {padding: 5px;}.claro .dijitSplitContainer-child, .claro .dijitBorderContainer-child {border: 1px #b5bcc7 solid;}.claro .dijitBorderContainer-dijitTabContainerTop,.claro .dijitBorderContainer-dijitTabContainerBottom,.claro .dijitBorderContainer-dijitTabContainerLeft,.claro .dijitBorderContainer-dijitTabContainerRight,.claro .dijitBorderContainer-dijitAccordionContainer {border: none;}.claro .dijitBorderContainer-dijitBorderContainer {border: 0; padding: 0;}.claro .dijitSplitterH, .claro .dijitGutterH {background: none; border: 0; height: 5px;}.claro .dijitSplitterH .dijitSplitterThumb {background: #b5bcc7 none; height: 1px; top: 2px; width: 19px;}.claro .dijitSplitterV, .claro .dijitGutterV {background: none; border: 0; width: 5px; margin: 0;}.claro .dijitSplitterV .dijitSplitterThumb {background: #b5bcc7 none; height: 19px; left: 2px; width: 1px; margin: 0;}.claro .dijitSplitterHHover, .claro .dijitSplitterVHover {font-size: 1px; background-color: #cfe5fa;}.claro .dijitSplitterHHover {background-image: -moz-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: -webkit-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: -o-linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: linear-gradient(left, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%);}.claro .dijitSplitterVHover {background-image: -moz-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: -webkit-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: -o-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%); background-image: linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0) 50%, #ffffff 100%);}.claro .dijitSplitterHHover .dijitSplitterThumb, .claro .dijitSplitterVHover .dijitSplitterThumb {background: #759dc0 none;}.claro .dijitSplitterHActive, .claro .dijitSplitterVActive {font-size: 1px; background-color: #abd6ff; background-image: none;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/BorderContainer.less b/lib/dijit/themes/claro/layout/BorderContainer.less
index b7c672e63..f3edcd3c5 100644
--- a/lib/dijit/themes/claro/layout/BorderContainer.less
+++ b/lib/dijit/themes/claro/layout/BorderContainer.less
@@ -95,34 +95,30 @@ Splitters and gutters:
}
/* hovered splitter */
-.claro .dijitSplitterHHover {
+.claro .dijitSplitterHHover,
+.claro .dijitSplitterVHover {
font-size: 1px;
- background: url("../@{image-layout-splitter-horizontal-hover}") no-repeat center top;
+ background-color: @splitter-hovered-background-color;
}
-
-.claro .dijitSplitterHHover .dijitSplitterThumb {
- background:@hovered-border-color none;
+.claro .dijitSplitterHHover {
+ .alpha-white-gradient (left, 1,0px, 0,50%, 1,100%);
}
.claro .dijitSplitterVHover {
- font-size: 1px;
- background: url("../@{image-layout-splitter-vertical-hover}") no-repeat center left;
+ .alpha-white-gradient (top, 1,0px, 0,50%, 1,100%);
}
+.claro .dijitSplitterHHover .dijitSplitterThumb,
.claro .dijitSplitterVHover .dijitSplitterThumb {
background:@hovered-border-color none;
}
-.dj_ie6 .dijitSplitterHHover,
-.dj_ie6 .claro .dijitSplitterVHover {
- background-color: @splitter-hovered-background-color;
- background-image:none;
-}
/* active splitter */
.claro .dijitSplitterHActive,
.claro .dijitSplitterVActive {
font-size: 1px;
background-color:@splitter-dragged-background-color;
+ background-image: none; // color all the way across, not gradient like in hover mode
}
diff --git a/lib/dijit/themes/claro/layout/ContentPane.css b/lib/dijit/themes/claro/layout/ContentPane.css
index a7753de1d..101e0c890 100644
--- a/lib/dijit/themes/claro/layout/ContentPane.css
+++ b/lib/dijit/themes/claro/layout/ContentPane.css
@@ -1,38 +1 @@
-/* ContentPane
- *
- * .dijitContentPane
- * set padding for basic content pane
- *
- * Nested layouts:
- *
- * .dijitTabContainerTop-dijitContentPane,
- * .dijitTabContainerLeft-dijitContentPane,
- * .dijitTabContainerBottom-dijitContentPane,
- * .dijitTabContainerRight-dijitContentPane
- * set background-color and padding of ContentPanes nested within TabContainer (can do top, left, bottom, or right) or Accordion Container
- *
- * .dijitAccordionContainer-dijitContentPane
- * set background-color and padding of ContentPane nested within Accordion
- *
- * .dijitSplitContainer-dijitContentPane,
- * set background-color and padding of ContentPane nested within a SplitContainer
- *
- * .dijitBorderContainer-dijitContentPane
- * set background-color and padding of ContentPane nested within a BorderContainer
- */
-.claro .dijitContentPane {
- padding: 8px;
-}
-/* nested layouts */
-.claro .dijitTabContainerTop-dijitContentPane,
-.claro .dijitTabContainerLeft-dijitContentPane,
-.claro .dijitTabContainerBottom-dijitContentPane,
-.claro .dijitTabContainerRight-dijitContentPane,
-.claro .dijitAccordionContainer-dijitContentPane {
- background-color: #ffffff;
- padding: 8px;
-}
-.claro .dijitSplitContainer-dijitContentPane, .claro .dijitBorderContainer-dijitContentPane {
- background-color: #ffffff;
- padding: 8px;
-}
+.claro .dijitContentPane {padding: 8px;}.claro .dijitTabContainerTop-dijitContentPane,.claro .dijitTabContainerLeft-dijitContentPane,.claro .dijitTabContainerBottom-dijitContentPane,.claro .dijitTabContainerRight-dijitContentPane,.claro .dijitAccordionContainer-dijitContentPane {background-color: #ffffff; padding: 8px;}.claro .dijitSplitContainer-dijitContentPane, .claro .dijitBorderContainer-dijitContentPane {background-color: #ffffff; padding: 8px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/TabContainer.css b/lib/dijit/themes/claro/layout/TabContainer.css
index 641b921ec..35d80ab9e 100644
--- a/lib/dijit/themes/claro/layout/TabContainer.css
+++ b/lib/dijit/themes/claro/layout/TabContainer.css
@@ -1,434 +1 @@
-/* TabContainer
- *
- * Styling TabContainer means styling the TabList and Its content container (dijitTitlePane)
- *
- * Tab List: (including 4 kinds of tab location)
- * .dijitTabContainerTop-tabs - tablist container at top
- * .dijitTabContainerBottom-tabs - tablist container at bottom
- * .dijitTabContainerLeft-tabs - tablist container at left
- * .dijitTabContainerRight-tabs - tablist container at right
- *
- * Tab Strip Button:
- * .dijitTabStripIcon - tab strip button icon
- * .dijitTabStripMenuIcon - down arrow icon position
- * .dijitTabStripSlideLeftIcon - left arrow icon position
- * .dijitTabStripSlideRightIcon - right arrow icon position
- *
- * .tabStripButtonDisabled - styles for disabled tab strip buttons
- *
- * Tab Button:
- * .dijitTabContainerTop-tabs .dijitTabInnerDiv/.dijitTabContent - styles for top tab button container
- * .dijitTabContainerBottom-tabs .dijitTabInnerDiv/.dijitTabContent - styles for bottom tab button container
- * .dijitTabContainerLeft-tabs .dijitTabInnerDiv/.dijitTabContent - styles for left tab button container
- * .dijitTabContainerRight-tabs .dijitTabInnerDiv/.dijitTabContent - styles for right tab button container
- *
- * .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabInnerDiv/.dijitTabContent
- * - styles for selected status of top tab button
- * same to Bottom, Left, Right Tabs
- *
- * .dijitTabHover .dijitTabInnerDiv - styles when mouse hover on tab buttons
- * .dijitTabActive .dijitTabInnerDiv - styles when mouse down on tab buttons
- * .dijitTabChecked .dijitTabInnerDiv - styles when on buttons of selected tab
- *
- * .dijitTabCloseButton - the close action buttons lie at the right top of each tab button on closable tabs
- * .dijitTabCloseButtonHover - styles when mouse hover on close action button
- * .dijitTabCloseButtonActive - styles when mouse down on close action button
- *
- * Tab Button: (checked status)
- *
- * Tab Content Container:
- * .dijitTabContainerTop-dijitContentPane
- * .dijitTabContainerBottom-dijitContentPane
- * .dijitTabContainerLeft-dijitContentPane
- * .dijitTabContainerRight-dijitContentPane - for background and padding
- *
- * Nested Tabs:
- * .dijitTabContainerNested - Container for nested tabs
- * .dijitTabContainerTabListNested - tab list container for nested tabs
- */
-/*** some common features ***/
-.claro .dijitTabPaneWrapper {
- background: #ffffff;
-}
-.claro .dijitTabPaneWrapper,
-.claro .dijitTabContainerTop-tabs,
-.claro .dijitTabContainerBottom-tabs,
-.claro .dijitTabContainerLeft-tabs,
-.claro .dijitTabContainerRight-tabs {
- /* todo: add common class name for this div */
-
- border-color: #b5bcc7;
-}
-.claro .dijitTabCloseButton {
- background: url("../layout/images/tabClose.png") no-repeat;
- width: 14px;
- height: 14px;
- margin-left: 5px;
- margin-right: -5px;
-}
-.claro .dijitTabCloseButtonHover {
- background-position: -14px;
-}
-.claro .dijitTabCloseButtonActive {
- background-position: -28px;
-}
-.claro .dijitTabSpacer {
- /* set the spacer invisible. note that height:0 doesn't work on IE/quirks, it's still 10px. */
-
- display: none;
-}
-.claro .dijitTabInnerDiv {
- background-color: #efefef;
- -webkit-transition-property: background-color, border;
- -moz-transition-property: background-color, border;
- transition-property: background-color, border;
- -webkit-transition-duration: 0.35s;
- -moz-transition-duration: 0.35s;
- transition-duration: 0.35s;
- color: #494949;
-}
-.claro .dijitTabHover .dijitTabInnerDiv {
- background-color: #abd6ff;
- -webkit-transition-duration: 0.25s;
- -moz-transition-duration: 0.25s;
- transition-duration: 0.25s;
- color: #000000;
-}
-.claro .dijitTabActive .dijitTabInnerDiv {
- background-color: #7dbdfa;
- color: #000000;
- -webkit-transition-duration: 0.1s;
- -moz-transition-duration: 0.1s;
- transition-duration: 0.1s;
-}
-.claro .dijitTabChecked .dijitTabInnerDiv {
- background-color: #cfe5fa;
- color: #000000;
-}
-.claro .dijitTabContent {
- border: 1px solid #b5bcc7;
-}
-.claro .dijitTabHover .dijitTabContent {
- border-color: #759dc0;
-}
-.claro .dijitTabActive .dijitTabContent {
- border-color: #759dc0;
-}
-.claro .dijitTabChecked .dijitTabContent {
- color: #000000;
- border-color: #b5bcc7;
-}
-.claro .tabStripButton .dijitTabInnerDiv {
- background-color: transparent;
-}
-.claro .tabStripButton .dijitTabContent {
- border: none;
-}
-/*** end common ***/
-/*************** top tab ***************/
-.claro .dijitTabContainerTop-tabs .dijitTab {
- top: 1px;
- /* used for overlap */
-
- margin-right: 1px;
- padding-top: 3px;
-}
-.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTab {
- top: 3px;
-}
-/* for top tab padding. change height when status changes */
-.claro .dijitTabContainerTop-tabs .dijitTabContent {
- padding: 3px 6px;
- border-bottom-width: 0;
- background-image: url("../layout/images/tabTop.png");
- background-position: 0 0;
- background-repeat: repeat-x;
- min-width: 60px;
- text-align: center;
-}
-.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabContent {
- padding-bottom: 4px;
- padding-top: 6px;
-}
-/* normal status */
-.claro .dijitTabContainerTop-tabs .dijitTabInnerDiv {
- background-image: url("../layout/images/tabTop.png");
- background-position: 0 -248px;
- background-position: bottom;
- background-repeat: repeat-x;
- -webkit-box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.04);
- -moz-box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.04);
- box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.04);
-}
-/* checked status */
-.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabInnerDiv {
- background-image: none;
- -webkit-box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.05);
-}
-.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabContent {
- background-position: 0 -102px;
- background-repeat: repeat-x;
-}
-/** end top tab **/
-/*************** bottom tab ***************/
-.claro .dijitTabContainerBottom-tabs .dijitTab {
- top: -1px;
- /* used for overlap */
-
- margin-right: 1px;
-}
-/* calculate the position and size */
-.claro .dijitTabContainerBottom-tabs .dijitTabContent {
- padding: 3px 6px;
- border-top-width: 0;
- background-image: url("../layout/images/tabBottom.png");
- background-position: 0 -249px;
- background-repeat: repeat-x;
- background-position: bottom;
- min-width: 60px;
- text-align: center;
-}
-.claro .dijitTabContainerBottom-tabs .dijitTab {
- padding-bottom: 3px;
-}
-/* normal status */
-.claro .dijitTabContainerBottom-tabs .dijitTabInnerDiv {
- background-image: url("../layout/images/tabBottom.png");
- background-position: top;
- background-repeat: repeat-x;
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
- -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
-}
-/* checked status */
-.claro .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabContent {
- padding-bottom: 7px;
- padding-top: 4px;
- background-position: 0 -119px;
-}
-.claro .dijitTabContainerBottom-tabs .dijitTabChecked {
- padding-bottom: 0;
-}
-.claro .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv {
- background-image: none;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-/** end bottom tab **/
-/*************** left tab ***************/
-.claro .dijitTabContainerLeft-tabs .dijitTab {
- border-right-width: 0;
- left: 1px;
- /* used for overlap */
-
- margin-bottom: 1px;
-}
-/* normal status */
-.claro .dijitTabContainerLeft-tabs .dijitTabInnerDiv {
- background-image: url("../layout/images/tabLeft.png");
- background-position: -347px -340px;
- background-repeat: repeat-y;
-}
-.claro .dijitTabContainerLeft-tabs .dijitTabContent {
- padding: 3px 8px 4px 4px;
- background-image: url("../layout/images/tabLeft.png");
- background-repeat: repeat-y;
- background-position: 0 0;
-}
-/* checked status */
-.claro .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabContent {
- padding-right: 9px;
- border-right: none;
- background-image: none;
-}
-.claro .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv {
- background-position: 0 -179px;
- background-repeat: repeat-y;
- -webkit-box-shadow: -1px 0 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: -1px 0 2px rgba(0, 0, 0, 0.05);
- box-shadow: -1px 0 2px rgba(0, 0, 0, 0.05);
-}
-/** end left tab **/
-/*************** right tab ***************/
-.claro .dijitTabContainerRight-tabs .dijitTab {
- border-left-width: 0;
- left: -1px;
- /* used for overlap */
-
- margin-bottom: 1px;
-}
-/* normal status */
-.claro .dijitTabContainerRight-tabs .dijitTabInnerDiv {
- background-image: url("../layout/images/tabRight.png");
- background-repeat: repeat-y;
- background-position: -1px -347px;
-}
-.claro .dijitTabContainerRight-tabs .dijitTabContent {
- padding: 3px 8px 4px 4px;
- background-image: url("../layout/images/tabRight.png");
- background-position: right top;
- background-repeat: repeat-y;
-}
-/* checked status */
-.claro .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabContent {
- padding-left: 5px;
- border-left: none;
- background-image: none;
-}
-.claro .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv {
- background-position: -348px -179px;
- -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.07);
- -moz-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.07);
- box-shadow: 1px 0 2px rgba(0, 0, 0, 0.07);
-}
-/** end right tab **/
-/** round corner **/
-.claro .dijitTabContainerTop-tabs .dijitTabInnerDiv, .claro .dijitTabContainerTop-tabs .dijitTabContent {
- -moz-border-radius: 2px 2px 0 0;
- border-radius: 2px 2px 0 0;
-}
-.claro .dijitTabContainerBottom-tabs .dijitTabInnerDiv, .claro .dijitTabContainerBottom-tabs .dijitTabContent {
- -moz-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px;
-}
-.claro .dijitTabContainerLeft-tabs .dijitTabInnerDiv, .claro .dijitTabContainerLeft-tabs .dijitTabContent {
- -moz-border-radius: 2px 0 0 2px;
- border-radius: 2px 0 0 2px;
-}
-.claro .dijitTabContainerRight-tabs .dijitTabInnerDiv, .claro .dijitTabContainerRight-tabs .dijitTabContent {
- -moz-border-radius: 0 2px 2px 0;
- border-radius: 0 2px 2px 0;
-}
-/************ left/right scroll buttons + menu button ************/
-.claro .tabStripButton {
- background-color: #e5f2fe;
- border: 1px solid #b5bcc7;
-}
-.claro .dijitTabListContainer-top .tabStripButton {
- padding: 4px 3px;
- margin-top: 7px;
- background-image: url("../layout/images/tabTop.png");
- background-position: 0 0;
-}
-.claro .dijitTabListContainer-bottom .tabStripButton {
- padding: 5px 3px;
- margin-bottom: 4px;
- background-image: url("../layout/images/tabTop.png");
- background-position: 0 -248px;
- background-position: bottom;
-}
-.claro .tabStripButtonHover {
- background-color: #abd6ff;
-}
-.claro .tabStripButtonActive {
- background-color: #7dbdfa;
-}
-.claro .dijitTabStripIcon {
- height: 15px;
- width: 15px;
- margin: 0 auto;
- background: url("../form/images/buttonArrows.png") no-repeat -75px 50%;
- background-color: transparent;
-}
-.claro .dijitTabStripSlideRightIcon {
- background-position: -24px 50%;
-}
-.claro .dijitTabStripMenuIcon {
- background-position: -51px 50%;
-}
-/*disabled styles for tab strip buttons*/
-.claro .dijitTabListContainer-top .tabStripButtonDisabled, .claro .dijitTabListContainer-bottom .tabStripButtonDisabled {
- background-color: #d3d3d3;
- border: 1px solid #b5bcc7;
- /* to match border of TabContainer itself */
-
-}
-.claro .tabStripButtonDisabled .dijitTabStripSlideLeftIcon {
- background-position: -175px 50%;
-}
-.claro .tabStripButtonDisabled .dijitTabStripSlideRightIcon {
- background-position: -124px 50%;
-}
-.claro .tabStripButtonDisabled .dijitTabStripMenuIcon {
- background-position: -151px 50%;
-}
-/* Nested Tabs */
-.claro .dijitTabContainerNested .dijitTabListWrapper {
- height: auto;
-}
-.claro .dijitTabContainerNested .dijitTabContainerTop-tabs {
- border-bottom: solid 1px #b5bcc7;
- padding: 1px 2px 4px;
- margin-top: -2px;
-}
-.claro .dijitTabContainerTabListNested .dijitTabContent {
- background: rgba(255, 255, 255, 0) none repeat scroll 0 0;
- border: none;
- padding: 4px;
- border-color: rgba(118, 157, 192, 0);
- -webkit-transition-property: background-color, border-color;
- -moz-transition-property: background-color, border-color;
- transition-property: background-color, border-color;
- -webkit-transition-duration: 0.3s;
- -moz-transition-duration: 0.3s;
- transition-duration: 0.3s;
- -moz-border-radius: 2px;
- border-radius: 2px;
-}
-.claro .dijitTabContainerTabListNested .dijitTab .dijitTabInnerDiv {
- /* 4 element selector to override box-shadow setting from above rule:
- * .claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabInnerDiv { ... }
- */
-
- background: none;
- border: none;
- top: 0;
- /* to override top: 1px/-1px for normal tabs */
-
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
-}
-.claro .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent {
- background-color: #e5f2fe;
- border: solid 1px #cfe5fa;
- padding: 3px;
- -webkit-transition-duration: 0.2s;
- -moz-transition-duration: 0.2s;
- transition-duration: 0.2s;
-}
-.claro .dijitTabContainerTabListNested .dijitTabHover .tabLabel {
- text-decoration: none;
-}
-.claro .dijitTabContainerTabListNested .dijitTabActive .dijitTabContent {
- border: solid 1px #759dc0;
- padding: 3px;
- background: #abd6ff url("../layout/images/tabNested.png") repeat-x;
- -webkit-transition-duration: 0.1s;
- -moz-transition-duration: 0.1s;
- transition-duration: 0.1s;
-}
-.claro .dijitTabContainerTabListNested .dijitTabChecked .dijitTabContent {
- padding: 3px;
- border: solid 1px #759dc0;
- background-position: 0 105px;
- background-color: #cfe5fa;
-}
-.claro .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {
- text-decoration: none;
- background-image: none;
-}
-.claro .dijitTabPaneWrapperNested {
- border: none;
- /* prevent double border */
-
-}
-.dj_ie6 .claro .dijitTabContent,
-.dj_ie6 .claro .dijitTabInnerDiv,
-.dj_ie6 .dijitTabListContainer-top .tabStripButton,
-.dj_ie6 .dijitTabListContainer-bottom .tabStripButton {
- background-image: none;
-}
+.claro .dijitTabPaneWrapper {background: #ffffff;}.claro .dijitTabPaneWrapper,.claro .dijitTabContainerTop-tabs,.claro .dijitTabContainerBottom-tabs,.claro .dijitTabContainerLeft-tabs,.claro .dijitTabContainerRight-tabs {border-color: #b5bcc7;}.claro .dijitTabCloseButton {background: url("../layout/images/tabClose.png") no-repeat; width: 14px; height: 14px; margin-left: 5px; margin-right: -5px;}.claro .dijitTabCloseButtonHover {background-position: -14px;}.claro .dijitTabCloseButtonActive {background-position: -28px;}.claro .dijitTabSpacer {display: none;}.claro .dijitTab {border: 1px solid #b5bcc7; background-color: #efefef; -webkit-transition-property: background-color, border; -moz-transition-property: background-color, border; transition-property: background-color, border; -webkit-transition-duration: 0.35s; -moz-transition-duration: 0.35s; transition-duration: 0.35s; color: #494949;}.claro .dijitTabHover {border-color: #759dc0; background-color: #abd6ff; -webkit-transition-duration: 0.25s; -moz-transition-duration: 0.25s; transition-duration: 0.25s; color: #000000;}.claro .dijitTabActive {border-color: #759dc0; background-color: #7dbdfa; color: #000000; -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.claro .dijitTabChecked {border-color: #b5bcc7; background-color: #cfe5fa; color: #000000;}.claro .dijitTabDisabled {background-color: #d3d3d3;}.claro .tabStripButton {background-color: transparent; border: none;}.claro .dijitTabContainerTop-tabs .dijitTab {top: 1px; margin-right: 1px; padding: 3px 6px; border-bottom-width: 0; min-width: 60px; text-align: center; background-image: url("images/tabTopUnselected.png"); background-repeat: repeat-x; background-image: -moz-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); -webkit-box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.04); -moz-box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.04); box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.04);}.claro .dijitTabContainerTop-tabs .dijitTabChecked {padding-bottom: 4px; padding-top: 9px; background-image: url("images/tabTopSelected.png"); background-image: -moz-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: -webkit-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: -o-linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: linear-gradient(top, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); -webkit-box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.05); box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.05);}.claro .dijitTabContainerBottom-tabs .dijitTab {top: -1px; margin-right: 1px; padding: 3px 6px; border-top-width: 0; min-width: 60px; text-align: center; background-image: url("images/tabBottomUnselected.png"); background-repeat: repeat-x; background-position: bottom; background-image: -moz-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);}.claro .dijitTabContainerBottom-tabs .dijitTabChecked {padding-bottom: 9px; padding-top: 4px; background-image: url("images/tabBottomSelected.png"); background-image: -moz-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: -webkit-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: -o-linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); background-image: linear-gradient(bottom, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0) 2px, #ffffff 7px); -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);}.claro .dijitTabContainerLeft-tabs .dijitTab {left: 1px; margin-bottom: 1px; padding: 3px 8px 4px 4px; background-image: url("images/tabLeftUnselected.png"); background-repeat: repeat-y; background-image: -moz-linear-gradient(left, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(left, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(left, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(left, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%);}.claro .dijitTabContainerLeft-tabs .dijitTabChecked {border-right-width: 0; padding-right: 9px; background-image: url("images/tabLeftSelected.png"); background-image: -moz-linear-gradient(left, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: -o-linear-gradient(left, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: linear-gradient(left, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); -webkit-box-shadow: -1px 0 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: -1px 0 2px rgba(0, 0, 0, 0.05); box-shadow: -1px 0 2px rgba(0, 0, 0, 0.05);}.claro .dijitTabContainerRight-tabs .dijitTab {left: -1px; margin-bottom: 1px; padding: 3px 8px 4px 4px; background-image: url("images/tabRightUnselected.png"); background-repeat: repeat-y; background-position: right; background-image: -moz-linear-gradient(right, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(right, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(right, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(right, #ffffff 0px, #ffffff 1px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.6) 7px, rgba(255, 255, 255, 0) 100%);}.claro .dijitTabContainerRight-tabs .dijitTabChecked {padding-left: 5px; border-left-width: 0; background-image: url("images/tabRightSelected.png"); background-image: -moz-linear-gradient(right, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: -webkit-linear-gradient(right, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: -o-linear-gradient(right, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); background-image: linear-gradient(right, rgba(255, 255, 255, 0.5) 0px, #ffffff 30px); -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.07); -moz-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.07); box-shadow: 1px 0 2px rgba(0, 0, 0, 0.07);}.claro .dijitTabContainerTop-tabs .dijitTab {-moz-border-radius: 2px 2px 0 0; border-radius: 2px 2px 0 0;}.claro .dijitTabContainerBottom-tabs .dijitTab {-moz-border-radius: 0 0 2px 2px; border-radius: 0 0 2px 2px;}.claro .dijitTabContainerLeft-tabs .dijitTab {-moz-border-radius: 2px 0 0 2px; border-radius: 2px 0 0 2px;}.claro .dijitTabContainerRight-tabs .dijitTab {-moz-border-radius: 0 2px 2px 0; border-radius: 0 2px 2px 0;}.claro .tabStripButton {background-color: #e5f2fe; border: 1px solid #b5bcc7;}.claro .dijitTabListContainer-top .tabStripButton {padding: 4px 3px; margin-top: 7px; background-image: -moz-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(top, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%);}.claro .dijitTabListContainer-bottom .tabStripButton {padding: 4px 3px; margin-bottom: 7px; background-image: -moz-linear-gradient(bottom, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: -webkit-linear-gradient(bottom, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(bottom, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(bottom, #ffffff 0px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.6) 6px, rgba(255, 255, 255, 0) 100%);}.claro .tabStripButtonHover {background-color: #abd6ff;}.claro .tabStripButtonActive {background-color: #7dbdfa;}.claro .dijitTabStripIcon {height: 15px; width: 15px; margin: 0 auto; background: url("../form/images/buttonArrows.png") no-repeat -75px 50%; background-color: transparent;}.claro .dijitTabStripSlideRightIcon {background-position: -24px 50%;}.claro .dijitTabStripMenuIcon {background-position: -51px 50%;}.claro .dijitTabListContainer-top .tabStripButtonDisabled, .claro .dijitTabListContainer-bottom .tabStripButtonDisabled {background-color: #d3d3d3; border: 1px solid #b5bcc7;}.claro .tabStripButtonDisabled .dijitTabStripSlideLeftIcon {background-position: -175px 50%;}.claro .tabStripButtonDisabled .dijitTabStripSlideRightIcon {background-position: -124px 50%;}.claro .tabStripButtonDisabled .dijitTabStripMenuIcon {background-position: -151px 50%;}.claro .dijitTabContainerNested .dijitTabListWrapper {height: auto;}.claro .dijitTabContainerNested .dijitTabContainerTop-tabs {border-bottom: solid 1px #b5bcc7; padding: 2px 2px 4px;}.claro .dijitTabContainerTabListNested .dijitTab {background: rgba(255, 255, 255, 0) none repeat scroll 0 0; border: none; padding: 4px; border-color: rgba(118, 157, 192, 0); -webkit-transition-property: background-color, border-color; -moz-transition-property: background-color, border-color; transition-property: background-color, border-color; -webkit-transition-duration: 0.3s; -moz-transition-duration: 0.3s; transition-duration: 0.3s; -moz-border-radius: 2px; border-radius: 2px;}.claro .dijitTabContainerTabListNested .dijitTab {background: none; border: none; top: 0; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none;}.claro .dijitTabContainerTabListNested .dijitTabHover {background-color: #e5f2fe; border: solid 1px #cfe5fa; padding: 3px; -webkit-transition-duration: 0.2s; -moz-transition-duration: 0.2s; transition-duration: 0.2s;}.claro .dijitTabContainerTabListNested .dijitTabHover .tabLabel {text-decoration: none;}.claro .dijitTabContainerTabListNested .dijitTabActive {border: solid 1px #759dc0; padding: 3px; background: #abd6ff url("images/tabNested.png") repeat-x; background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.61) 0%, rgba(255, 255, 255, 0) 17%, rgba(255, 255, 255, 0) 83%, rgba(255, 255, 255, 0.61) 100%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.61) 0%, rgba(255, 255, 255, 0) 17%, rgba(255, 255, 255, 0) 83%, rgba(255, 255, 255, 0.61) 100%); background-image: -o-linear-gradient(rgba(255, 255, 255, 0.61) 0%, rgba(255, 255, 255, 0) 17%, rgba(255, 255, 255, 0) 83%, rgba(255, 255, 255, 0.61) 100%); background-image: linear-gradient(rgba(255, 255, 255, 0.61) 0%, rgba(255, 255, 255, 0) 17%, rgba(255, 255, 255, 0) 83%, rgba(255, 255, 255, 0.61) 100%); -webkit-transition-duration: 0.1s; -moz-transition-duration: 0.1s; transition-duration: 0.1s;}.claro .dijitTabContainerTabListNested .dijitTabChecked {padding: 3px; border: solid 1px #759dc0; background-color: #cfe5fa;}.claro .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {text-decoration: none; background-image: none;}.claro .dijitTabPaneWrapperNested {border: none;}.claro .dijitTab, .claro .tabStripButton {_background-image: none !important;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/TabContainer.less b/lib/dijit/themes/claro/layout/TabContainer.less
index 16947ff9c..74495b209 100644
--- a/lib/dijit/themes/claro/layout/TabContainer.less
+++ b/lib/dijit/themes/claro/layout/TabContainer.less
@@ -17,18 +17,18 @@
* .tabStripButtonDisabled - styles for disabled tab strip buttons
*
* Tab Button:
- * .dijitTabContainerTop-tabs .dijitTabInnerDiv/.dijitTabContent - styles for top tab button container
- * .dijitTabContainerBottom-tabs .dijitTabInnerDiv/.dijitTabContent - styles for bottom tab button container
- * .dijitTabContainerLeft-tabs .dijitTabInnerDiv/.dijitTabContent - styles for left tab button container
- * .dijitTabContainerRight-tabs .dijitTabInnerDiv/.dijitTabContent - styles for right tab button container
+ * .dijitTabContainerTop-tabs .dijitTab - styles for top tab button container
+ * .dijitTabContainerBottom-tabs .dijitTab - styles for bottom tab button container
+ * .dijitTabContainerLeft-tabs .dijitTab - styles for left tab button container
+ * .dijitTabContainerRight-tabs .dijitTab - styles for right tab button container
*
- * .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabInnerDiv/.dijitTabContent
+ * .dijitTabContainerTop-tabs .dijitTabChecked .dijitTab
* - styles for selected status of top tab button
* same to Bottom, Left, Right Tabs
*
- * .dijitTabHover .dijitTabInnerDiv - styles when mouse hover on tab buttons
- * .dijitTabActive .dijitTabInnerDiv - styles when mouse down on tab buttons
- * .dijitTabChecked .dijitTabInnerDiv - styles when on buttons of selected tab
+ * .dijitTabHover .dijitTab - styles when mouse hover on tab buttons
+ * .dijitTabActive .dijitTab - styles when mouse down on tab buttons
+ * .dijitTabChecked .dijitTab - styles when on buttons of selected tab
*
* .dijitTabCloseButton - the close action buttons lie at the right top of each tab button on closable tabs
* .dijitTabCloseButtonHover - styles when mouse hover on close action button
@@ -49,6 +49,13 @@
@import "../variables";
+.unselected-tab-gradient (@direction) {
+ // white line, dark line, then fade from light to dark
+ .alpha-white-gradient (@direction, 1,0px, 1,1px, 0.1,2px, 0.6,7px, 0,100%);
+}
+.topBottom-selected-tab-gradient (@direction) {
+ .alpha-white-gradient (@direction, 1,0px, 1,1px, 0,2px, 1,7px); // white line, blue line, remainder white
+}
/*** some common features ***/
.claro .dijitTabPaneWrapper {
background:@pane-background-color;
@@ -78,45 +85,37 @@
/* set the spacer invisible. note that height:0 doesn't work on IE/quirks, it's still 10px. */
display: none;
}
-.claro .dijitTabInnerDiv {
+.claro .dijitTab {
+ border: 1px solid @border-color;
background-color:@unselected-background-color;
.transition-property(background-color, border);
.transition-duration(.35s);
color:@unselected-text-color;
}
-.claro .dijitTabHover .dijitTabInnerDiv {
+.claro .dijitTabHover {
+ border-color: @hovered-border-color;
background-color:@hovered-background-color;
.transition-duration(.25s);
color:@hovered-text-color;
}
-.claro .dijitTabActive .dijitTabInnerDiv {
+.claro .dijitTabActive {
+ border-color: @pressed-border-color;
background-color:@pressed-background-color;
color:@selected-text-color;
.transition-duration(.1s);
}
-.claro .dijitTabChecked .dijitTabInnerDiv {
- background-color:@selected-background-color;
- color:@selected-text-color;
-}
-
-.claro .dijitTabContent {
- border: 1px solid @border-color;
-}
-.claro .dijitTabHover .dijitTabContent {
- border-color: @hovered-border-color;
-}
-.claro .dijitTabActive .dijitTabContent {
- border-color: @pressed-border-color;
-}
-.claro .dijitTabChecked .dijitTabContent {
- color:@selected-text-color; // todo: redundant with .claro .dijitTabChecked .dijitTabInnerDiv above?
+.claro .dijitTabChecked {
+ // selected tab
border-color: @border-color; // don't use @selected-border-color because need to match border of TabContainer
+ background-color: @selected-background-color;
+ color: @selected-text-color;
+}
+.claro .dijitTabDisabled {
+ background-color: @tab-disabled-background-color;
}
-.claro .tabStripButton .dijitTabInnerDiv {
+.claro .tabStripButton {
background-color: transparent;
-}
-.claro .tabStripButton .dijitTabContent {
border: none;
}
/*** end common ***/
@@ -124,169 +123,133 @@
/*************** top tab ***************/
.claro .dijitTabContainerTop-tabs .dijitTab {
+ /* unselected (and not hovered/pressed) tab */
top: 1px; /* used for overlap */
margin-right: 1px;
- padding-top: 3px;
-}
-.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTab {
- top: 3px;
-}
-/* for top tab padding. change height when status changes */
-.claro .dijitTabContainerTop-tabs .dijitTabContent {
padding:3px 6px;
border-bottom-width: 0;
- background-image:url("../@{image-layout-tab-top}");
- background-position:0 0;
- background-repeat:repeat-x;
min-width: 60px;
text-align: center;
+
+ // gradient (CSS gradient, with backup image for IE6-9)
+ background-image: url("images/tabTopUnselected.png");
+ background-repeat: repeat-x;
+ .unselected-tab-gradient(top);
+
+ .box-shadow(0 -1px 1px rgba(0, 0, 0, 0.04));
}
-.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabContent {
+
+.claro .dijitTabContainerTop-tabs .dijitTabChecked {
+ /* selected tab */
padding-bottom: 4px;
- padding-top: 6px;
-}
+ padding-top: 9px;
-/* normal status */
-.claro .dijitTabContainerTop-tabs .dijitTabInnerDiv {
- background-image:url("../@{image-layout-tab-top}");
- background-position:0 -248px;
- background-position:bottom;
- background-repeat:repeat-x;
- .box-shadow(0 -1px 1px rgba(0, 0, 0, 0.04));
-}
+ // gradient (CSS gradient, with backup image for IE6-9)
+ background-image: url("images/tabTopSelected.png");
+ .topBottom-selected-tab-gradient (top);
-/* checked status */
-.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabInnerDiv {
- background-image:none;
.box-shadow(0 -1px 2px rgba(0, 0, 0, 0.05));
}
-.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabContent {
- background-position:0 -102px;
- background-repeat:repeat-x;
-}
+
/** end top tab **/
/*************** bottom tab ***************/
.claro .dijitTabContainerBottom-tabs .dijitTab {
+ /* unselected (and not hovered/pressed) tab */
top: -1px; /* used for overlap */
margin-right: 1px;
-}
-/* calculate the position and size */
-.claro .dijitTabContainerBottom-tabs .dijitTabContent {
padding:3px 6px;
border-top-width: 0;
- background-image: url("../@{image-layout-tab-bottom}");
- background-position:0 -249px;
- background-repeat: repeat-x;
- background-position:bottom;
min-width: 60px;
text-align: center;
-}
-.claro .dijitTabContainerBottom-tabs .dijitTab {
- padding-bottom: 3px;
-}
-/* normal status */
-.claro .dijitTabContainerBottom-tabs .dijitTabInnerDiv {
- background-image: url("../@{image-layout-tab-bottom}");
- background-position: top;
+
+ // gradient (CSS gradient, with backup image for IE6-9)
+ background-image: url("images/tabBottomUnselected.png");
background-repeat: repeat-x;
+ background-position: bottom;
+ .unselected-tab-gradient(bottom);
+
.box-shadow(0 1px 1px rgba(0, 0, 0, 0.04));
-
}
-/* checked status */
-.claro .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabContent {
- padding-bottom: 7px;
- padding-top: 4px;
- background-position:0 -119px;
-}
+/* selected tab */
.claro .dijitTabContainerBottom-tabs .dijitTabChecked {
- padding-bottom: 0;
-}
-.claro .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv {
- background-image:none;
+ padding-bottom: 9px;
+ padding-top: 4px;
+
+ // gradient (CSS gradient, with backup image for IE6-9)
+ background-image: url("images/tabBottomSelected.png");
+ .topBottom-selected-tab-gradient (bottom);
+
.box-shadow(0 1px 2px rgba(0, 0, 0, 0.05));
}
/** end bottom tab **/
/*************** left tab ***************/
.claro .dijitTabContainerLeft-tabs .dijitTab {
- border-right-width: 0;
+ /* unselected (and not hovered/pressed) tab */
left: 1px; /* used for overlap */
margin-bottom: 1px;
-}
-/* normal status */
-.claro .dijitTabContainerLeft-tabs .dijitTabInnerDiv {
- background-image: url("../@{image-layout-tab-left}");
- background-position: -347px -340px;
- background-repeat: repeat-y;
-}
-.claro .dijitTabContainerLeft-tabs .dijitTabContent {
padding:3px 8px 4px 4px;
- background-image: url("../@{image-layout-tab-left}");
+
+ // gradient (CSS gradient, with backup image for IE6-9)
+ background-image: url("images/tabLeftUnselected.png");
background-repeat: repeat-y;
- background-position:0 0;
+ .unselected-tab-gradient(left);
}
-/* checked status */
-.claro .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabContent {
+
+/* selected tab */
+.claro .dijitTabContainerLeft-tabs .dijitTabChecked {
+ border-right-width: 0;
padding-right: 9px;
- border-right: none;
- background-image: none;
-}
-.claro .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv {
- background-position:0 -179px;
- background-repeat:repeat-y;
+
+ // gradient (CSS gradient, with backup image for IE6-9)
+ background-image: url("images/tabLeftSelected.png");
+ .alpha-white-gradient (left, 0.5,0px, 1,30px); // 1/2 inch blue gradient, remainder white
+
.box-shadow(-1px 0 2px rgba(0, 0, 0, .05));
}
/** end left tab **/
/*************** right tab ***************/
.claro .dijitTabContainerRight-tabs .dijitTab {
- border-left-width: 0;
+ /* unselected (and not hovered/pressed) tab */
left: -1px; /* used for overlap */
margin-bottom: 1px;
-}
-/* normal status */
-.claro .dijitTabContainerRight-tabs .dijitTabInnerDiv {
- background-image: url("../@{image-layout-tab-right}");
- background-repeat: repeat-y;
- background-position: -1px -347px;
-}
-.claro .dijitTabContainerRight-tabs .dijitTabContent {
padding:3px 8px 4px 4px;
- background-image: url("../@{image-layout-tab-right}");
- background-position:right top;
+
+ // gradient (CSS gradient, with backup image for IE6-9)
+ background-image: url("images/tabRightUnselected.png");
background-repeat: repeat-y;
+ background-position: right;
+ .unselected-tab-gradient(right);
}
-/* checked status */
-.claro .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabContent {
+.claro .dijitTabContainerRight-tabs .dijitTabChecked {
+ /* selected tab */
padding-left: 5px;
- border-left: none;
- background-image: none;
-}
-.claro .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv {
- background-position:-348px -179px;
+ border-left-width: 0;
+
+ // gradient (CSS gradient, with backup image for IE6-9)
+ background-image: url("images/tabRightSelected.png");
+ .alpha-white-gradient (right, 0.5,0px, 1,30px); // 1/2 inch blue gradient, remainder white
+
.box-shadow(1px 0 2px rgba(0, 0, 0, 0.07));
}
/** end right tab **/
/** round corner **/
-.claro .dijitTabContainerTop-tabs .dijitTabInnerDiv,
-.claro .dijitTabContainerTop-tabs .dijitTabContent {
+.claro .dijitTabContainerTop-tabs .dijitTab {
.border-radius(2px 2px 0 0);
}
-.claro .dijitTabContainerBottom-tabs .dijitTabInnerDiv,
-.claro .dijitTabContainerBottom-tabs .dijitTabContent{
+.claro .dijitTabContainerBottom-tabs .dijitTab {
.border-radius(0 0 2px 2px);
}
-.claro .dijitTabContainerLeft-tabs .dijitTabInnerDiv,
-.claro .dijitTabContainerLeft-tabs .dijitTabContent{
+.claro .dijitTabContainerLeft-tabs .dijitTab {
.border-radius(2px 0 0 2px);
}
-.claro .dijitTabContainerRight-tabs .dijitTabInnerDiv,
-.claro .dijitTabContainerRight-tabs .dijitTabContent{
+.claro .dijitTabContainerRight-tabs .dijitTab {
.border-radius(0 2px 2px 0);
}
@@ -298,15 +261,12 @@
.claro .dijitTabListContainer-top .tabStripButton {
padding: 4px 3px;
margin-top:7px;
- background-image: url("../@{image-layout-tab-top}");
- background-position:0 0;
+ .alpha-white-gradient (top, 1,0px, 0.1,1px, 0.6,6px, 0,100%); // to match unselected tab, but had to tweak numbers
}
.claro .dijitTabListContainer-bottom .tabStripButton {
- padding:5px 3px;
- margin-bottom:4px;
- background-image: url("../@{image-layout-tab-top}");
- background-position:0 -248px;
- background-position:bottom;
+ padding:4px 3px;
+ margin-bottom:7px;
+ .alpha-white-gradient (bottom, 1,0px, 0.1,1px, 0.6,6px, 0,100%); // to match unselected tab, but had to tweak numbers
}
.claro .tabStripButtonHover {
background-color:@hovered-background-color;
@@ -349,10 +309,9 @@
}
.claro .dijitTabContainerNested .dijitTabContainerTop-tabs {
border-bottom:solid 1px @border-color;
- padding:1px 2px 4px;
- margin-top:-2px;
+ padding:2px 2px 4px;
}
-.claro .dijitTabContainerTabListNested .dijitTabContent {
+.claro .dijitTabContainerTabListNested .dijitTab {
background:rgba(255, 255, 255, 0) none repeat scroll 0 0;
border: none;
padding: 4px;
@@ -361,34 +320,35 @@
.transition-duration(.3s);
.border-radius(2px);
}
-.claro .dijitTabContainerTabListNested .dijitTab .dijitTabInnerDiv {
- /* 4 element selector to override box-shadow setting from above rule:
- * .claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabInnerDiv { ... }
- */
+.claro .dijitTabContainerTabListNested .dijitTab {
background: none;
border: none;
top: 0;/* to override top: 1px/-1px for normal tabs */
.box-shadow(none);
}
-.claro .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent {
+.claro .dijitTabContainerTabListNested .dijitTabHover {
background-color: @nestedtab-hovered-background-color;
border:solid 1px @nestedtab-hovered-border-color;
- padding: 3px;
+ padding: 3px; // 4px above padding - 1px compensation for border
.transition-duration(.2s);
}
.claro .dijitTabContainerTabListNested .dijitTabHover .tabLabel {
text-decoration: none;
}
-.claro .dijitTabContainerTabListNested .dijitTabActive .dijitTabContent {
+.claro .dijitTabContainerTabListNested .dijitTabActive {
border:solid 1px @nestedtab-selected-border-color;
padding: 3px;
- background: @nestedtab-selected-background-color url("../@{image-layout-tab-nested}") repeat-x;
+
+ // CSS gradient with fallback to image for IE
+ // this is in a weird place, only for active state; mailed Jason about it
+ background: @nestedtab-selected-background-color url("images/tabNested.png") repeat-x;
+ .alpha-white-gradient (0.61,0%, 0,17%, 0,83%, 0.61,100%);
+
.transition-duration(.1s);
}
-.claro .dijitTabContainerTabListNested .dijitTabChecked .dijitTabContent {
+.claro .dijitTabContainerTabListNested .dijitTabChecked {
padding: 3px;
border:solid 1px @selected-border-color;
- background-position: 0 105px;
background-color:@selected-background-color;
}
.claro .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {
@@ -399,10 +359,8 @@
border: none;/* prevent double border */
}
-
-.dj_ie6 .claro .dijitTabContent,
-.dj_ie6 .claro .dijitTabInnerDiv,
-.dj_ie6 .dijitTabListContainer-top .tabStripButton,
-.dj_ie6 .dijitTabListContainer-bottom .tabStripButton{
- background-image: none;
+.claro .dijitTab,
+.claro .tabStripButton {
+ // IE6 can't handle background-image and background-color on same node
+ _background-image: none !important;
}
diff --git a/lib/dijit/themes/claro/layout/TabContainer_rtl.css b/lib/dijit/themes/claro/layout/TabContainer_rtl.css
index 89fdff097..907494370 100644
--- a/lib/dijit/themes/claro/layout/TabContainer_rtl.css
+++ b/lib/dijit/themes/claro/layout/TabContainer_rtl.css
@@ -1,67 +1 @@
-.claro .dijitTabContainerTop-tabs .dijitTabRtl, .claro .dijitTabContainerBottom-tabs .dijitTabRtl {
- margin-right: 0;
- margin-left: 1px;
-}
-.claro .dijitTabRtl {
- -moz-box-orient: horizontal;
- text-align: right;
-}
-.dj_ie7 .claro .dijitTabRtl .dijitTabContent {
- display: block;
- left: 0;
-}
-.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabRtl, .dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabCheckedRtl {
- top: 1px;
-}
-.dj_ie7 .claro .tabStripButtonRtl .dijitButtonContents,
-.dj_ie8 .claro .tabStripButtonRtl .dijitButtonContents,
-.dj_ie6 .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_ie6 .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_ie7 .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_iequirks .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_iequirks .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv {
- float: left;
-}
-.dj_ie6 .claro .dijitTabRtl .tabLabel,
-.dj_ie6 .claro .dijitTabContainerRight-tabs .dijitTabRtl,
-.dj_ie6 .claro .dijitTabContainerLeft-tabs .dijitTabRtl,
-.dj_ie7 .claro .dijitTabContainerRight-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_ie7 .claro .dijitTabContainerLeft-tabs .dijitTabRtl .dijitTabInnerDiv {
- /*Make the .tablabel have width in ie6 with haslayout property, fix Close icon position bug*/
-
- zoom: 1;
-}
-.dj_ie6 .claro .dijitTabRtl .dijitTabCloseButton, .dj_ie7 .claro .dijitTabRtl .dijitTabCloseButton, .dj_iequirks .claro .dijitTabRtl .dijitTabCloseButton {
- margin-right: 5px;
-}
-.dj_ie6 .claro .dijitTabContainerRightRtl .dijitTabContainerRight-tabs, .dj_ie6 .claro .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs {
- width: 1%;
-}
-.dj_ie6 .dijitTabContainerTopStrip, .dj_ie6 .dijitTabContainerBottomStrip {
- position: absolute;
-}
-.dj_iequirks .claro .dijitTabContainerTopRtl .dijitTabContainerTopStrip {
- padding-top: 10px;
-}
-.dj_ie7 .claro .dijitTabContainerRight-tabs .dijitTabRtlChecked .dijitTabInnerDiv {
- background-position: -341px -179px;
-}
-.dj_ie6 .dijitTabContainerTopRtl .dijitTabStripIcon, .dj_ie6 .dijitTabContainerBottomRtl .dijitTabStripIcon {
- position: relative;
-}
-.dj_ie6-rtl .claro .dijitTabContainerTop-tabs {
- /* this strange rule prevents IE6 bug in themeTester.html?dir=rtl upon closing
- * "Closable" tab, where the other tabs disappear
- */
-
- padding-left: 3px;
-}
-.dj_iequirks-rtl .claro .dijitTabListWrapper {
- /* this strange rule prevents IE6 bug in themeTesterQuirk.html?dir=rtl upon closing
- * "Closable" tab, where the other tabs disappear
- */
-
- border-left: 1px solid #ffffff;
- border-right: 1px solid #ffffff;
-}
+.claro .dijitTabContainerTop-tabs .dijitTabRtl, .claro .dijitTabContainerBottom-tabs .dijitTabRtl {margin-right: 0; margin-left: 1px;} \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/TabContainer_rtl.less b/lib/dijit/themes/claro/layout/TabContainer_rtl.less
index eaada0d0a..c6cec49fd 100644
--- a/lib/dijit/themes/claro/layout/TabContainer_rtl.less
+++ b/lib/dijit/themes/claro/layout/TabContainer_rtl.less
@@ -5,77 +5,3 @@
margin-right: 0;
margin-left: 1px;
}
-.claro .dijitTabRtl {
- -moz-box-orient:horizontal;
- text-align: right;
-}
-.dj_ie7 .claro .dijitTabRtl .dijitTabContent {
- display: block;
- left: 0;
-}
-.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabRtl,
-.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabCheckedRtl {
- top: 1px;
-}
-
-// Note that .tabStripButtonRtl .dijitButtonContents needed for IE8 quirks but breaks IE6 quirks
-.dj_ie7 .claro .tabStripButtonRtl .dijitButtonContents,
-.dj_ie8 .claro .tabStripButtonRtl .dijitButtonContents,
-.dj_ie6 .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_ie6 .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_ie7 .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_iequirks .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_iequirks .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv {
- float:left;
-}
-.dj_ie6 .claro .dijitTabRtl .tabLabel,
-.dj_ie6 .claro .dijitTabContainerRight-tabs .dijitTabRtl,
-.dj_ie6 .claro .dijitTabContainerLeft-tabs .dijitTabRtl,
-.dj_ie7 .claro .dijitTabContainerRight-tabs .dijitTabRtl .dijitTabInnerDiv,
-.dj_ie7 .claro .dijitTabContainerLeft-tabs .dijitTabRtl .dijitTabInnerDiv {
- /*Make the .tablabel have width in ie6 with haslayout property, fix Close icon position bug*/
- zoom:1;
-}
-.dj_ie6 .claro .dijitTabRtl .dijitTabCloseButton,
-.dj_ie7 .claro .dijitTabRtl .dijitTabCloseButton,
-.dj_iequirks .claro .dijitTabRtl .dijitTabCloseButton {
- margin-right:5px;
-}
-
-.dj_ie6 .claro .dijitTabContainerRightRtl .dijitTabContainerRight-tabs,
-.dj_ie6 .claro .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs {
- width:1%;
-}
-
-.dj_ie6 .dijitTabContainerTopStrip,
-.dj_ie6 .dijitTabContainerBottomStrip {
- position:absolute;
-}
-.dj_iequirks .claro .dijitTabContainerTopRtl .dijitTabContainerTopStrip {
- padding-top: 10px;
-}
-.dj_ie7 .claro .dijitTabContainerRight-tabs .dijitTabRtlChecked .dijitTabInnerDiv {
- background-position:-341px -179px;
-}
-
-.dj_ie6 .dijitTabContainerTopRtl .dijitTabStripIcon,
-.dj_ie6 .dijitTabContainerBottomRtl .dijitTabStripIcon {
- position: relative;
-}
-
-
-.dj_ie6-rtl .claro .dijitTabContainerTop-tabs {
- /* this strange rule prevents IE6 bug in themeTester.html?dir=rtl upon closing
- * "Closable" tab, where the other tabs disappear
- */
- padding-left: 3px;
-}
-
-.dj_iequirks-rtl .claro .dijitTabListWrapper {
- /* this strange rule prevents IE6 bug in themeTesterQuirk.html?dir=rtl upon closing
- * "Closable" tab, where the other tabs disappear
- */
- border-left: 1px solid @pane-background-color;
- border-right: 1px solid @pane-background-color;
-}
diff --git a/lib/dijit/themes/claro/layout/images/accordion.png b/lib/dijit/themes/claro/layout/images/accordion.png
deleted file mode 100644
index 48181035a..000000000
--- a/lib/dijit/themes/claro/layout/images/accordion.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/splitterHorizontalHover.png b/lib/dijit/themes/claro/layout/images/splitterHorizontalHover.png
deleted file mode 100644
index 0f5b691f6..000000000
--- a/lib/dijit/themes/claro/layout/images/splitterHorizontalHover.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/splitterVerticalHover.png b/lib/dijit/themes/claro/layout/images/splitterVerticalHover.png
deleted file mode 100644
index 2c3c6960e..000000000
--- a/lib/dijit/themes/claro/layout/images/splitterVerticalHover.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabBottom.png b/lib/dijit/themes/claro/layout/images/tabBottom.png
deleted file mode 100644
index dbcfc851b..000000000
--- a/lib/dijit/themes/claro/layout/images/tabBottom.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabBottomSelected.png b/lib/dijit/themes/claro/layout/images/tabBottomSelected.png
new file mode 100644
index 000000000..f92b05f45
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabBottomSelected.png
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabBottomSelected.svg b/lib/dijit/themes/claro/layout/images/tabBottomSelected.svg
new file mode 100644
index 000000000..4e6ff6d43
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabBottomSelected.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for tabBottomSelected.png, which is used by IE7-9 for selected tabs.
+ Compile to png with batik, gimp, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match CSS gradient from .topBottom-selected-tab-gradient() from TabContainer.less.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="1px" height="250px" viewBox="0 0 1 250" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="0%" y2="100%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="1"/>
+ <stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>
+ </linearGradient>
+ </defs>
+ <rect x="0" y="0" width="1" height="242" fill="white"/>
+ <rect x="0" y="242" width="1" height="6" fill="url(#gradient)"/>
+ <rect x="0" y="248" width="1" height="2" fill="white"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/images/tabBottomUnselected.png b/lib/dijit/themes/claro/layout/images/tabBottomUnselected.png
new file mode 100644
index 000000000..7815d9cfb
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabBottomUnselected.png
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabBottomUnselected.svg b/lib/dijit/themes/claro/layout/images/tabBottomUnselected.svg
new file mode 100644
index 000000000..4193238e8
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabBottomUnselected.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for tabBottomUnselected.png, which is used by IE7-9 for the selected tabs.
+ Compile to png with batik, gimp, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match CSS gradient from TabContainer.less.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="1px" height="16px" viewBox="0 0 1 16" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="gradient" gradientUnits="objectBoundingBox" x1="0%" y1="100%" x2="0%" y2="0%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="1"/>
+ <stop offset="6%" stop-color="#ffffff" stop-opacity="1"/>
+ <stop offset="13%" stop-color="#ffffff" stop-opacity="0.2"/>
+ <stop offset="43%" stop-color="#ffffff" stop-opacity="0.6"/>
+ <stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>
+ </linearGradient>
+ </defs>
+ <rect x="0" y="0" width="1" height="16" fill="url(#gradient)"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/images/tabLeft.png b/lib/dijit/themes/claro/layout/images/tabLeft.png
deleted file mode 100644
index 8e9fcba27..000000000
--- a/lib/dijit/themes/claro/layout/images/tabLeft.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabLeftSelected.png b/lib/dijit/themes/claro/layout/images/tabLeftSelected.png
new file mode 100644
index 000000000..9700afb37
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabLeftSelected.png
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabLeftSelected.svg b/lib/dijit/themes/claro/layout/images/tabLeftSelected.svg
new file mode 100644
index 000000000..12e7d8a64
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabLeftSelected.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for tabLeftSelected.png, which is used by IE7-9 for selected tabs.
+ Compile to png with batik, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match CSS gradient from TabContainer.less.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="1000px" height="1px" viewBox="0 0 1000 1" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="0.5"/>
+ <stop offset="100%" stop-color="#ffffff" stop-opacity="1"/>
+ </linearGradient>
+ </defs>
+ <rect x="0" y="0" width="30" height="1" fill="url(#gradient)"/>
+ <rect x="30" y="0" width="970" height="1" fill="white"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/images/tabLeftUnselected.png b/lib/dijit/themes/claro/layout/images/tabLeftUnselected.png
new file mode 100644
index 000000000..412390e08
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabLeftUnselected.png
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabLeftUnselected.svg b/lib/dijit/themes/claro/layout/images/tabLeftUnselected.svg
new file mode 100644
index 000000000..e31c211b7
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabLeftUnselected.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for tabLeftUnselected.png, which is used by IE7-9 for the selected tabs.
+ Compile to png with batik, gimp, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match CSS gradient from TabContainer.less.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="150px" height="1px" viewBox="0 0 100 1" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="0.5"/>
+ <stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>
+ </linearGradient>
+ </defs>
+ <rect x="0" y="0" width="150" height="1" fill="url(#gradient)"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/images/tabRight.png b/lib/dijit/themes/claro/layout/images/tabRight.png
deleted file mode 100644
index 0aaae53a1..000000000
--- a/lib/dijit/themes/claro/layout/images/tabRight.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabRightSelected.png b/lib/dijit/themes/claro/layout/images/tabRightSelected.png
new file mode 100644
index 000000000..1a2843499
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabRightSelected.png
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabRightSelected.svg b/lib/dijit/themes/claro/layout/images/tabRightSelected.svg
new file mode 100644
index 000000000..d8d3d674a
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabRightSelected.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for tabRightSelected.png, which is used by IE7-9 for selected tabs.
+ Compile to png with batik, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match CSS gradient from TabContainer.less.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="1000px" height="1px" viewBox="0 0 1000 1" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="gradient" gradientUnits="objectBoundingBox" x1="100%" y1="0%" x2="0%" y2="0%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="0.5"/>
+ <stop offset="100%" stop-color="#ffffff" stop-opacity="1"/>
+ </linearGradient>
+ </defs>
+ <rect x="0" y="0" width="970" height="1" fill="white"/>
+ <rect x="970" y="0" width="30" height="1" fill="url(#gradient)"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/images/tabRightUnselected.png b/lib/dijit/themes/claro/layout/images/tabRightUnselected.png
new file mode 100644
index 000000000..2bdd00e4d
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabRightUnselected.png
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabRightUnselected.svg b/lib/dijit/themes/claro/layout/images/tabRightUnselected.svg
new file mode 100644
index 000000000..d1379a717
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabRightUnselected.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for tabRightUnselected.png, which is used by IE7-9 for the selected tabs.
+ Compile to png with batik, gimp, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match CSS gradient from TabContainer.less.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="150px" height="1px" viewBox="0 0 100 1" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="gradient" gradientUnits="objectBoundingBox" x1="100%" y1="0%" x2="0%" y2="0%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="0.5"/>
+ <stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>
+ </linearGradient>
+ </defs>
+ <rect x="0" y="0" width="150" height="1" fill="url(#gradient)"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/images/tabTop.png b/lib/dijit/themes/claro/layout/images/tabTop.png
deleted file mode 100644
index 2822487ed..000000000
--- a/lib/dijit/themes/claro/layout/images/tabTop.png
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabTopSelected.png b/lib/dijit/themes/claro/layout/images/tabTopSelected.png
new file mode 100644
index 000000000..f4d577258
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabTopSelected.png
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabTopSelected.svg b/lib/dijit/themes/claro/layout/images/tabTopSelected.svg
new file mode 100644
index 000000000..d06e646ea
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabTopSelected.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for tabTopSelected.png, which is used by IE7-9 for the selected tabs.
+ Compile to png with batik, gimp, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match CSS gradient from .topBottom-selected-tab-gradient() from TabContainer.less.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="1px" height="250px" viewBox="0 0 1 250" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="0%" y2="100%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
+ <stop offset="100%" stop-color="#ffffff" stop-opacity="1"/>
+ </linearGradient>
+ </defs>
+ <rect x="0" y="0" width="1" height="2" fill="white"/>
+ <rect x="0" y="2" width="1" height="6" fill="url(#gradient)"/>
+ <rect x="0" y="8" width="1" height="242" fill="white"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/layout/images/tabTopUnselected.png b/lib/dijit/themes/claro/layout/images/tabTopUnselected.png
new file mode 100644
index 000000000..8c34545f5
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabTopUnselected.png
Binary files differ
diff --git a/lib/dijit/themes/claro/layout/images/tabTopUnselected.svg b/lib/dijit/themes/claro/layout/images/tabTopUnselected.svg
new file mode 100644
index 000000000..c55e92532
--- /dev/null
+++ b/lib/dijit/themes/claro/layout/images/tabTopUnselected.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" ?>
+<!--
+ Source file for tabTopUnSelected.png, which is used by IE7-9 for the selected tabs.
+ Compile to png with batik, gimp, or online tool ex: http://www.fileformat.info/convert/image/svg2raster.htm
+
+ Output should match CSS gradient from TabContainer.less.
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="1px" height="16px" viewBox="0 0 1 16" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="0%" y2="100%">
+ <stop offset="0%" stop-color="#ffffff" stop-opacity="1"/>
+ <stop offset="6%" stop-color="#ffffff" stop-opacity="1"/>
+ <stop offset="13%" stop-color="#ffffff" stop-opacity="0.2"/>
+ <stop offset="43%" stop-color="#ffffff" stop-opacity="0.6"/>
+ <stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>
+ </linearGradient>
+ </defs>
+ <rect x="0" y="0" width="1" height="16" fill="url(#gradient)"/>
+</svg> \ No newline at end of file
diff --git a/lib/dijit/themes/claro/variables.less b/lib/dijit/themes/claro/variables.less
index ca7d6773c..ac21a5ff7 100644
--- a/lib/dijit/themes/claro/variables.less
+++ b/lib/dijit/themes/claro/variables.less
@@ -6,7 +6,7 @@
@disabled-color: #d3d3d3; // Base for disabled backgrounds and borders
@error-color: #d46464;
-@container-background-color:#fff; // Backgrounds for various content areas such as TitlePane, ContentPane and Inputs
+@container-background-color:#fff; // Backgrounds for various content areas such as TitlePane, ContentPane and Inputs (if changed, adjust selected tab to match)
@minor-selected-color: spin(saturate(darken(@primary-color, 6), 19), 0); // Color for various arrows and buttons
@base-border-color: spin(desaturate(darken(@primary-color, 29), 44), -1); // Augmented and used directly by variables to create border colors for various widgets
@@ -136,6 +136,9 @@
@dialog-titlebar-border-color: @container-background-color; // Inner border around the title sectionof a Dialog, inside the main border of the Dialog and the border between title and content
@dialog-titlebar-background-color: @minor-selected-color;
+// Tooltip
+@tooltip-gradient-color: fade(@primary-color,10%); // a little swath of color at the bottom of tooltips
+
// BorderContainer
@splitter-hovered-background-color: @primary-color; // Color of splitter when user hovers it, before mouse down
@splitter-dragged-background-color: @minor-selected-color; // Color of splitter while it's being dragged
@@ -156,49 +159,29 @@
@document-shadedsection-background-color: @bar-background-color;// background color used for <pre>, <code>, and table header rows
@document-border-color: @disabled-color; // Border for <pre>, <code>, tables, etc.
-// Images
+// Icons, arrows, etc.
@image-arrow-sprite: "images/spriteArrows.png";
-@image-calendar-container: "images/calendarContainerImages.png";
@image-calendar-arrows: "images/calendarArrows.png";
@image-calendar-arrows-ie6: "images/calendarArrows8bit.png";
@image-checkmark: "images/checkmarkNoBorder.png";
@image-checkmark-ie6: "images/checkmarkNoBorder.gif";
-@image-common-highlight: "images/commonHighlight.png";
@image-dialog-close: "images/dialogCloseIcon.png";
@image-dialog-close-ie6: "images/dialogCloseIcon8bit.png";
@image-dnd: "images/dnd.png";
@image-editor-icons-enabled: "../../icons/images/editorIconsEnabled.png";
-@image-form-button: "form/images/button.png";
@image-form-button-arrows: "form/images/buttonArrows.png";
@image-form-checkbox-and-radios: "form/images/checkboxRadioButtonStates.png";
@image-form-checkbox-and-radios-ie6: "form/images/checkboxAndRadioButtons_IE6.png";
@image-form-common-arrows: "form/images/commonFormArrows.png";
@image-form-error: "form/images/error.png";
-@image-form-highlight: "form/images/formHighlight.png";
-@image-form-slider-horizontal: "form/images/sliderHorizontal.png";
@image-form-slider-thumbs: "form/images/sliderThumbs.png";
-@image-form-slider-vertical: "form/images/sliderVertical.png";
-@image-form-textbox-background: "form/images/textBox_back.png";
-@image-layout-accordion: "layout/images/accordion.png";
-@image-layout-splitter-horizontal-hover: "layout/images/splitterHorizontalHover.png";
-@image-layout-splitter-vertical-hover: "layout/images/splitterVerticalHover.png";
-@image-layout-tab-bottom: "layout/images/tabBottom.png";
-@image-layout-tab-close: "layout/images/tabClose.png";
-@image-layout-tab-left: "layout/images/tabLeft.png";
-@image-layout-tab-nested: "layout/images/tabNested.png";
-@image-layout-tab-right: "layout/images/tabRight.png";
-@image-layout-tab-top: "layout/images/tabTop.png";
+@image-layout-tab-close: "layout/images/tabClose.png"; // [x] icon to close a tab
@image-loading-animation: "images/loadingAnimation.gif";
-@image-menu-highlight: "images/menuHighlight.png";
-@image-progressbar-empty: "images/progressBarEmpty.png";
-@image-progressbar-full: "images/progressBarFull.png";
-@image-progressbar-anim: "images/progressBarAnim.gif";
-@image-titlebar: "images/titlebar.png";
-@image-tooltip: "images/tooltip.png";
-@image-tooltip-ie6: "images/tooltip8bit.png";
-@image-tooltip-gradient: "images/tooltipGradient.png";
+@image-tooltip: "images/tooltip.png"; // arrow connectors
+@image-tooltip-ie6: "images/tooltip8bit.png"; // arrow connectors (8 bit)
@image-tree-expand: "images/treeExpandImages.png";
@image-tree-expand-ie6: "images/treeExpandImages8bit.png";
+@image-progressbar-anim: "images/progressBarAnim.gif";
// Mixins
@@ -242,3 +225,154 @@
-moz-transition-timing-function: @value;
transition-timing-function: @value;
}
+
+.linear-gradient (@value1, @value2) {
+ // summary:
+ // Expands to browser specific background-image specifications for a linear-gradient (2 stops)
+ background-image: -moz-linear-gradient(@value1, @value2); // FF3.6 - FF15 (FF16+ supports linear-gradient)
+ background-image: -webkit-linear-gradient(@value1, @value2); // Chrome10+, Safari5.1+
+ background-image: -o-linear-gradient(@value1, @value2); // Opera 11.10+
+ background-image: linear-gradient(@value1, @value2);
+}
+.linear-gradient (@value1, @value2, @value3) {
+ background-image: -moz-linear-gradient(@value1, @value2, @value3); // FF3.6 - FF15 (FF16+ supports linear-gradient)
+ background-image: -webkit-linear-gradient(@value1, @value2, @value3); // Chrome10+, Safari5.1+
+ background-image: -o-linear-gradient(@value1, @value2, @value3); // Opera 11.10+
+ background-image: linear-gradient(@value1, @value2, @value3);
+}
+.linear-gradient (@value1, @value2, @value3, @value4) {
+ background-image: -moz-linear-gradient(@value1, @value2, @value3, @value4); // FF3.6 - FF15 (FF16+ supports linear-gradient)
+ background-image: -webkit-linear-gradient(@value1, @value2, @value3, @value4); // Chrome10+, Safari5.1+
+ background-image: -o-linear-gradient(@value1, @value2, @value3, @value4); // Opera 11.10+
+ background-image: linear-gradient(@value1, @value2, @value3, @value4);
+}
+.linear-gradient (@value1, @value2, @value3, @value4, @value5) {
+ background-image: -moz-linear-gradient(@value1, @value2, @value3, @value4, @value5); // FF3.6 - FF15 (FF16+ supports linear-gradient)
+ background-image: -webkit-linear-gradient(@value1, @value2, @value3, @value4, @value5); // Chrome10+, Safari5.1+
+ background-image: -o-linear-gradient(@value1, @value2, @value3, @value4, @value5); // Opera 11.10+
+ background-image: linear-gradient(@value1, @value2, @value3, @value4, @value5);
+}
+.linear-gradient (@value1, @value2, @value3, @value4, @value5, @value6) {
+ background-image: -moz-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6); // FF3.6 - FF15 (FF16+ supports linear-gradient)
+ background-image: -webkit-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6); // Chrome10+, Safari5.1+
+ background-image: -o-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6); // Opera 11.10+
+ background-image: linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6);
+}
+.linear-gradient (@value1, @value2, @value3, @value4, @value5, @value6, @value7) {
+ background-image: -moz-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6, @value7); // FF3.6 - FF15 (FF16+ supports linear-gradient)
+ background-image: -webkit-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6, @value7); // Chrome10+, Safari5.1+
+ background-image: -o-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6, @value7); // Opera 11.10+
+ background-image: linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6, @value7);
+}
+
+.alpha-white-gradient (@opacity1, @stop1, @opacity2, @stop2) {
+ // summary:
+ // For setting up white background-image with variable transparency.
+ // example:
+ // Gradient starts at top (0%) with 30% opacity, and then ends at bottom (100%) with full transparency
+ // | .alpha-white-gradient(0.3, 0%, 0, 100%)
+ //
+ .linear-gradient(rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2);
+}
+.alpha-white-gradient (@start, @opacity1, @stop1, @opacity2, @stop2) {
+ .linear-gradient(@start, rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2);
+}
+.alpha-white-gradient (@opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3) {
+ .linear-gradient(rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3);
+}
+.alpha-white-gradient (@start, @opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3) {
+ .linear-gradient(@start, rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3);
+}
+.alpha-white-gradient (@opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3, @opacity4, @stop4) {
+ .linear-gradient(rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3, rgba(255,255,255, @opacity4) @stop4);
+}
+.alpha-white-gradient (@start, @opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3, @opacity4, @stop4) {
+ .linear-gradient(@start, rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3, rgba(255,255,255, @opacity4) @stop4);
+}
+.alpha-white-gradient (@start, @opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3, @opacity4, @stop4, @opacity5, @stop5) {
+ .linear-gradient(@start, rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3, rgba(255,255,255, @opacity4) @stop4, rgba(255,255,255, @opacity5) @stop5);
+}
+.alpha-white-gradient (@start, @opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3, @opacity4, @stop4, @opacity5, @stop5, @opacity6, @stop6) {
+ .linear-gradient(@start, rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3, rgba(255,255,255, @opacity4) @stop4, rgba(255,255,255, @opacity5) @stop5, rgba(255,255,255, @opacity6) @stop6);
+}
+
+.gradient-and-filter (@color, @fade1, @fade2) {
+ // summary:
+ // Sets up a background color with a vertical gradient.
+ // In order to make transitions work properly on mozilla and webkit, this is done by combining
+ // a background-color which will be changed based on state (ex: hover) with a constant
+ // white alpha-transparency background-image. On IE it creates a DXImageTransform filter.
+ // @color:
+ // The color
+ // @fade1:
+ // The percent to fade at the top
+ // @fade2:
+ // The percent to fade at the bottom
+ background-color: @color; // the base color
+ .linear-gradient(fadeout(#fff, 100-@fade1), fadeout(#fff, 100-@fade2));
+ filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr="lighten(@color, @fade1)~", endColorstr="lighten(@color, @fade2)~")"; // IE
+}
+.horizontal-gradient-and-filter (@color, @fade1, @fade2) {
+ // summary:
+ // Sets up a background color with a horizontal gradient.
+ // In order to make transitions work properly on mozilla and webkit, this is done by combining
+ // a background-color which will be changed based on state (ex: hover) with a constant
+ // white alpha-transparency background-image. On IE it creates a DXImageTransform filter.
+ // @color:
+ // The color
+ // @fade1:
+ // The percent to fade at the top
+ // @fade2:
+ // The percent to fade at the bottom
+ background-color: @color; // the base color
+ .linear-gradient(left, fadeout(#fff, 100-@fade1), fadeout(#fff, 100-@fade2));
+ filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr="lighten(@color, @fade1)~", endColorstr="lighten(@color, @fade2)~"gradientType=1)"; // IE
+}
+
+
+// Mixins defining gradients
+
+.textbox-background-image () {
+ // summary:
+ // Background image used for hovered TextBoxes and similar controls.
+ // It's just a small inset shadow below the top border (inside of the TextBox).
+ .linear-gradient(rgba(127,127,127,0.2) 0%, rgba(127,127,127,0) 2px);
+}
+
+.standard-gradient (@pathToRoot: "") {
+ // summary:
+ // Light to dark background-image used by widgets with short height (~16px) including:
+ // - MenuBar, and hovered MenuItem/MenuBarItem
+ // - arrow icon wrapper for Select, ComboBox, Spinner
+ // - Toolbar and hovered Toolbar buttons
+ // - TitlePane title bar, AccordionContainer title bar, Dialog title bar
+
+ // Fallback for IE
+ background-image: url("@{pathToRoot}images/standardGradient.png");
+ background-repeat: repeat-x;
+
+ // CSS gradient for other browsers
+ .alpha-white-gradient(0.7, 0%, 0, 100%);
+
+ // IE6 can't handle a background-image with transparency and a background-color; the color is blocked out
+ _background-image: none;
+}
+.active-gradient (@pathToRoot: "") {
+ // summary:
+ // Light to dark background-image with an inset gray shadow at the top,
+ // used by widgets when they are active (ie: mousedown) or selected, including:
+ // - active MenuItem/MenuBarItem
+ // - arrow icon wrapper for Select, ComboBox, Spinner when active or drop down is open
+ // - active Toolbar buttons
+ // - active TitlePane title bar, AccordionContainer title bar
+
+ // Fallback for IE
+ background-image: url("@{pathToRoot}images/activeGradient.png");
+ background-repeat: repeat-x;
+
+ // CSS gradient for other browsers
+ .linear-gradient(rgba(190,190,190,0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%);
+
+ // IE6 can't handle a background-image with transparency and a background-color; the color is blocked out
+ _background-image: none;
+}
diff --git a/lib/dijit/themes/dijit.css b/lib/dijit/themes/dijit.css
index 4c60bf371..e52d81f51 100644
--- a/lib/dijit/themes/dijit.css
+++ b/lib/dijit/themes/dijit.css
@@ -1,2051 +1 @@
-/*
- Essential styles that themes can inherit.
- In other words, works but doesn't look great.
-*/
-
-
-
-/****
- GENERIC PIECES
- ****/
-
-.dijitReset {
- /* Use this style to null out padding, margin, border in your template elements
- so that page specific styles don't break them.
- - Use in all TABLE, TR and TD tags.
- */
- margin:0;
- border:0;
- padding:0;
- line-height:normal;
- font: inherit;
- color: inherit;
-}
-.dijit_a11y .dijitReset {
- -moz-appearance: none; /* remove predefined high-contrast styling in Firefox */
-}
-
-.dijitInline {
- /* To inline block elements.
- Similar to InlineBox below, but this has fewer side-effects in Moz.
- Also, apparently works on a DIV as well as a FIELDSET.
- */
- display:inline-block; /* webkit and FF3 */
- #zoom: 1; /* set hasLayout:true to mimic inline-block */
- #display:inline; /* don't use .dj_ie since that increases the priority */
- border:0;
- padding:0;
- vertical-align:middle;
- #vertical-align: auto; /* makes TextBox,Button line up w/native counterparts on IE6 */
-}
-
-table.dijitInline {
- /* To inline tables with a given width set */
- display:inline-table;
- box-sizing: content-box; -moz-box-sizing: content-box;
-}
-
-.dijitHidden {
- /* To hide unselected panes in StackContainer etc. */
- display: none !important;
-}
-
-.dijitVisible {
- /* To show selected pane in StackContainer etc. */
- display: block !important; /* override user's display:none setting via style setting or indirectly via class */
- position: relative; /* to support setting width/height, see #2033 */
-}
-
-.dijitInputContainer {
- /* for positioning of placeHolder */
- #zoom: 1;
- overflow: hidden;
- float: none !important; /* needed by FF to squeeze the INPUT in */
- position: relative;
- vertical-align: middle;
- #display: inline;
-}
-
-.dj_ie input.dijitTextBox,
-.dj_ie .dijitTextBox input {
- font-size: 100%;
-}
-.dijitTextBox .dijitSpinnerButtonContainer,
-.dijitTextBox .dijitArrowButtonContainer,
-.dijitTextBox .dijitValidationContainer {
- float: right;
- text-align: center;
-}
-.dijitTextBox input.dijitInputField {
- /* override unreasonable user styling of buttons and icons */
- padding-left: 0 !important;
- padding-right: 0 !important;
-}
-.dijitTextBox .dijitValidationContainer {
- display: none;
-}
-
-.dijitTeeny {
- font-size:1px;
- line-height:1px;
-}
-
-.dijitOffScreen {
- position: absolute;
- left: 50%;
- top: -10000px;
-}
-
-/*
- * Popup items have a wrapper div (dijitPopup)
- * with the real popup inside, and maybe an iframe too
- */
-.dijitPopup {
- position: absolute;
- background-color: transparent;
- margin: 0;
- border: 0;
- padding: 0;
-}
-
-.dijitPositionOnly {
- /* Null out all position-related properties */
- padding: 0 !important;
- border: 0 !important;
- background-color: transparent !important;
- background-image: none !important;
- height: auto !important;
- width: auto !important;
-}
-
-.dijitNonPositionOnly {
- /* Null position-related properties */
- float: none !important;
- position: static !important;
- margin: 0 0 0 0 !important;
- vertical-align: middle !important;
-}
-
-.dijitBackgroundIframe {
- /* iframe used to prevent problems with PDF or other applets overlaying menus etc */
- position: absolute;
- left: 0;
- top: 0;
- width: 100%;
- height: 100%;
- z-index: -1;
- border: 0;
- padding: 0;
- margin: 0;
-}
-
-.dijitDisplayNone {
- /* hide something. Use this as a class rather than element.style so another class can override */
- display:none !important;
-}
-
-.dijitContainer {
- /* for all layout containers */
- overflow: hidden; /* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */
-}
-
-/****
- A11Y
- ****/
-.dijit_a11y .dijitIcon,
-.dijit_a11y div.dijitArrowButtonInner, /* is this only for Spinner? if so, it should be deleted */
-.dijit_a11y span.dijitArrowButtonInner,
-.dijit_a11y img.dijitArrowButtonInner,
-.dijit_a11y .dijitCalendarIncrementControl,
-.dijit_a11y .dijitTreeExpando {
- /* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents
- * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */
- display: none;
-}
-.dijitSpinner div.dijitArrowButtonInner {
- display: block; /* override previous rule */
-}
-
-.dijit_a11y .dijitA11ySideArrow {
- display: inline !important; /* display text instead */
- cursor: pointer;
-}
-
-/*
- * Since we can't use shading in a11y mode, and since the underline indicates today's date,
- * use a border to show the selected date.
- * Avoid screen jitter when switching selected date by compensating for the selected node's
- * border w/padding on other nodes.
- */
-.dijit_a11y .dijitCalendarDateLabel {
- padding: 1px;
- border: 0px !important;
-}
-.dijit_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {
- border-style: solid !important;
- border-width: 1px !important;
- padding: 0;
-}
-.dijit_a11y .dijitCalendarDateTemplate {
- padding-bottom: 0.1em !important; /* otherwise bottom border doesn't appear on IE */
- border: 0px !important;
-}
-.dijit_a11y .dijitButtonNode {
- border: black outset medium !important;
-
- /* In claro, hovering a toolbar button reduces padding and adds a border.
- * Not needed in a11y mode since Toolbar buttons always have a border.
- */
- padding: 0 !important;
-}
-
-.dijit_a11y .dijitButtonContents{
- margin: 0.15em; /* Margin needed to make focus outline visible */
-}
-
-.dijit_a11y .dijitTextBoxReadOnly .dijitInputField,
-.dijit_a11y .dijitTextBoxReadOnly .dijitButtonNode {
- border-style: outset!important;
- border-width: medium!important;
- border-color: #999 !important;
- color:#999 !important;
-}
-
-/* button inner contents - labels, icons etc. */
-.dijitButtonNode * {
- vertical-align: middle;
-}
-.dijitButtonNode .dijitArrowButtonInner {
- /* the arrow icon node */
- background: no-repeat center;
- width: 12px;
- height: 12px;
- direction: ltr; /* needed by IE/RTL */
-}
-
-/****
- 3-element borders: ( dijitLeft + dijitStretch + dijitRight )
- These were added for rounded corners on dijit.form.*Button but never actually used.
- ****/
-
-.dijitLeft {
- /* Left part of a 3-element border */
- background-position:left top;
- background-repeat:no-repeat;
-}
-
-.dijitStretch {
- /* Middle (stretchy) part of a 3-element border */
- white-space:nowrap; /* MOW: move somewhere else */
- background-repeat:repeat-x;
-}
-
-.dijitRight {
- /* Right part of a 3-element border */
- #display:inline; /* IE7 sizes to outer size w/o this */
- background-position:right top;
- background-repeat:no-repeat;
-}
-
-/* Buttons */
-.dj_gecko .dijit_a11y .dijitButtonDisabled .dijitButtonNode {
- opacity: 0.5;
-}
-
-.dijitToggleButton,
-.dijitButton,
-.dijitDropDownButton,
-.dijitComboButton {
- /* outside of button */
- margin: 0.2em;
- vertical-align: middle;
-}
-
-.dijitButtonContents {
- display: block; /* to make focus border rectangular */
-}
-td.dijitButtonContents {
- display: table-cell; /* but don't affect Select, ComboButton */
-}
-
-.dijitButtonNode img {
- /* make text and images line up cleanly */
- vertical-align:middle;
- /*margin-bottom:.2em;*/
-}
-
-.dijitToolbar .dijitComboButton {
- /* because Toolbar only draws a border around the hovered thing */
- border-collapse: separate;
-}
-
-.dijitToolbar .dijitToggleButton,
-.dijitToolbar .dijitButton,
-.dijitToolbar .dijitDropDownButton,
-.dijitToolbar .dijitComboButton {
- margin: 0;
-}
-
-.dijitToolbar .dijitButtonContents {
- /* just because it used to be this way */
- padding: 1px 2px;
-}
-
-
-.dj_webkit .dijitToolbar .dijitDropDownButton {
- padding-left: 0.3em;
-}
-.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {
- padding:0;
-}
-
-.dijitButtonNode {
- /* Node that is acting as a button -- may or may not be a BUTTON element */
- border:1px solid gray;
- margin:0;
- line-height:normal;
- vertical-align: middle;
- #vertical-align: auto;
- text-align:center;
- white-space: nowrap;
-}
-.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {
- /* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode)
- can be different than just a single line-height:normal, visible in InlineEditBox/Spinner */
- line-height:inherit;
-}
-.dijitTextBox .dijitButtonNode {
- border-width: 0;
-}
-
-.dijitButtonNode,
-.dijitButtonNode * {
- cursor: pointer;
-}
-
-.dj_ie .dijitButtonNode {
- /* ensure hasLayout */
- zoom: 1;
-}
-
-.dj_ie .dijitButtonNode button {
- /*
- disgusting hack to get rid of spurious padding around button elements
- on IE. MSIE is truly the web's boat anchor.
- */
- overflow: visible;
-}
-
-div.dijitArrowButton {
- float: right;
-}
-
-/******
- TextBox related.
- Everything that has an <input>
-*******/
-
-.dijitTextBox {
- border: solid black 1px;
- #overflow: hidden; /* #6027, #6067 */
- width: 15em; /* need to set default size on outer node since inner nodes say <input style="width:100%"> and <td width=100%>. user can override */
- vertical-align: middle;
-}
-
-.dijitTextBoxReadOnly,
-.dijitTextBoxDisabled {
- color: gray;
-}
-.dj_webkit .dijitTextBoxDisabled input {
- color: #eee; /* because WebKit lightens disabled input/textarea no matter what color you specify */
-}
-.dj_webkit textarea.dijitTextAreaDisabled {
- color: #333; /* because WebKit lightens disabled input/textarea no matter what color you specify */
-}
-.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */
-.dj_gecko .dijitTextBoxDisabled input {
- -moz-user-input: none; /* prevent focus of disabled textbox buttons */
-}
-
-.dijitPlaceHolder {
- /* hint text that appears in a textbox until user starts typing */
- color: #AAAAAA;
- font-style: italic;
- position: absolute;
- top: 0;
- left: 0;
- #filter: ""; /* make this showup in IE6 after the rendering of the widget */
-}
-
-.dijitTimeTextBox {
- width: 8em;
-}
-
-/* rules for webkit to deal with fuzzy blue focus border */
-.dijitTextBox input:focus {
- outline: none; /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */
-}
-.dijitTextBoxFocused {
- outline: 5px -webkit-focus-ring-color;
-}
-
-.dijitTextBox input {
- float: left; /* needed by IE to remove secret margin */
-}
-.dijitInputInner {
- /* for when an <input> is embedded inside an inline-block <div> with a size and border */
- border:0 !important;
- vertical-align:middle !important;
- background-color:transparent !important;
- width:100% !important;
- /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */
- padding-left: 0 !important;
- padding-right: 0 !important;
- margin-left: 0 !important;
- margin-right: 0 !important;
-}
-.dijit_a11y .dijitTextBox input {
- margin: 0 !important;
-}
-.dijitTextBoxError input.dijitValidationInner,
-.dijitTextBox input.dijitArrowButtonInner {
- /* <input> used to display arrow icon/validation icon, or in arrow character in high contrast mode.
- * The css below is a trick to hide the character in non-high-contrast mode
- */
- text-indent: -1em !important;
- direction: ltr !important;
- text-align: left !important;
- height: auto !important;
- #text-indent: 0 !important;
- #letter-spacing: -5em !important;
- #text-align: right !important;
-}
-.dj_ie .dijitTextBox input,
-.dj_ie input.dijitTextBox {
- overflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */
- line-height: normal; /* strict mode */
-}
-.dj_ie7 .dijitTextBox input.dijitValidationInner,
-.dj_ie7 .dijitTextBox input.dijitArrowButtonInner {
- line-height: 86%; /* IE7 problem where the icon is vertically too low w/o this - real input stays at normal */
-}
-.dj_ie6 .dijitTextBox input,
-.dj_ie6 input.dijitTextBox,
-.dj_iequirks .dijitTextBox input.dijitValidationInner,
-.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,
-.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,
-.dj_iequirks .dijitTextBox input.dijitInputInner,
-.dj_iequirks input.dijitTextBox {
- line-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */
-}
-.dijit_a11y input.dijitValidationInner,
-.dijit_a11y input.dijitArrowButtonInner {
- /* (in high contrast mode) revert rules from above so character displays */
- text-indent: 0 !important;
- width: 1em !important;
- #text-align: left !important;
-}
-.dijitTextBoxError .dijitValidationContainer {
- display: inline;
- cursor: default;
-}
-
-/* ComboBox & Spinner */
-
-.dijitSpinner .dijitSpinnerButtonContainer,
-.dijitComboBox .dijitArrowButtonContainer {
- /* dividing line between input area and up/down button(s) for ComboBox and Spinner */
- border-width: 0 0 0 1px !important; /* !important needed due to wayward ".theme .dijitButtonNode" rules */
-}
-.dijitToolbar .dijitComboBox .dijitArrowButtonContainer {
- /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */
- border-width: 0 !important;
-}
-
-.dijitComboBoxMenu {
- /* Drop down menu is implemented as <ul> <li/> <li/> ... but we don't want circles before each item */
- list-style-type: none;
-}
-.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {
- /* dividing line between input area and up/down button(s) for ComboBox and Spinner */
- border-width: 0;
-}
-.dj_ie .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {
- clear: both; /* IE workaround */
-}
-
-.dj_ie .dijitToolbar .dijitComboBox {
- /* make combobox buttons align properly with other buttons in a toolbar */
- vertical-align: middle;
-}
-
-/* Spinner */
-
-.dijitTextBox .dijitSpinnerButtonContainer {
- width: 1em;
- position: relative !important;
- overflow: hidden;
-}
-.dijitSpinner .dijitSpinnerButtonInner {
- width:1em;
- visibility:hidden !important; /* just a sizing element */
- overflow-x:hidden;
-}
-.dijitComboBox .dijitButtonNode,
-.dijitSpinnerButtonContainer .dijitButtonNode {
- border-width: 0;
-}
-.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode {
- border: 0 none !important;
-}
-.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer,
-.dijit_a11y .dijitSpinner .dijitArrowButtonInner,
-.dijit_a11y .dijitSpinnerButtonContainer input {
- width: 1em !important;
-}
-.dijit_a11y .dijitSpinner .dijitArrowButtonInner {
- margin: 0 auto !important; /* should auto-center */
-}
-.dj_ie .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
- padding-left: 0.3em !important;
- padding-right: 0.3em !important;
- margin-left: 0.3em !important;
- margin-right: 0.3em !important;
- width: 1.4em !important;
-}
-.dj_ie7 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
- padding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */
- padding-right: 0 !important;
- width: 1em !important;
-}
-.dj_ie6 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
- margin-left: 0.1em !important;
- margin-right: 0.1em !important;
- width: 1em !important;
-}
-.dj_iequirks .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
- margin-left: 0 !important;
- margin-right: 0 !important;
- width: 2em !important;
-}
-.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
- /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings
- * for dijit.form.Button
- */
- padding: 0;
- position: absolute !important;
- right: 0;
- float: none;
- height: 50%;
- width: 100%;
- bottom: auto;
- left: 0;
- right: auto;
-}
-.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
- width: auto;
-}
-.dijit_a11y .dijitSpinnerButtonContainer .dijitArrowButton {
- overflow: visible !important;
-}
-.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {
- top: 50%;
- border-top-width: 1px !important;
-}
-.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {
- #bottom: 50%; /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */
- top: 0;
-}
-.dijitSpinner .dijitArrowButtonInner {
- margin: auto;
- overflow-x: hidden;
- height: 100% !important;
-}
-.dj_iequirks .dijitSpinner .dijitArrowButtonInner {
- height: auto !important;
-}
-.dijitSpinner .dijitArrowButtonInner .dijitInputField {
- -moz-transform: scale(0.5);
- -moz-transform-origin: center top;
- -webkit-transform: scale(0.5);
- -webkit-transform-origin: center top;
- -o-transform: scale(0.5);
- -o-transform-origin: center top;
- transform: scale(0.5);
- transform-origin: left top;
- padding-top: 0;
- padding-bottom: 0;
- padding-left: 0 !important;
- padding-right: 0 !important;
- width: 100%;
-}
-.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {
- zoom: 50%; /* emulate transform: scale(0.5) */
-}
-.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {
- overflow: hidden;
-}
-
-.dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
- width: 100%;
-}
-.dj_iequirks .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
- width: 1em; /* matches .dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */
-}
-.dijitSpinner .dijitArrowButtonInner .dijitInputField {
- visibility: hidden;
-}
-.dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
- vertical-align:top;
- visibility: visible;
-}
-.dijit_a11y .dijitSpinnerButtonContainer {
- width: 1em;
-}
-.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode {
- border-width: 1px 0 0 0;
- border-style: solid !important;
-}
-
-/****
- dijit.form.CheckBox
- &
- dijit.form.RadioButton
- ****/
-
-.dijitCheckBox,
-.dijitRadio,
-.dijitCheckBoxInput {
- padding: 0;
- border: 0;
- width: 16px;
- height: 16px;
- background-position:center center;
- background-repeat:no-repeat;
- overflow: hidden;
-}
-
-.dijitCheckBox input,
-.dijitRadio input {
- margin: 0;
- padding: 0;
- display: block;
-}
-
-.dijitCheckBoxInput {
- /* place the actual input on top, but all-but-invisible */
- opacity: 0.01;
-}
-
-.dj_ie .dijitCheckBoxInput {
- filter: alpha(opacity=0);
-}
-
-.dijit_a11y .dijitCheckBox,
-.dijit_a11y .dijitRadio {
- /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */
- width: auto !important;
- height: auto !important;
-}
-.dijit_a11y .dijitCheckBoxInput {
- opacity: 1;
- filter: none;
- width: auto;
- height: auto;
-}
-
-.dijit_a11y .dijitFocusedLabel {
- /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/
- border: 1px dotted;
- outline: 0px !important;
-}
-
-/****
- dijit.ProgressBar
- ****/
-
-.dijitProgressBarEmpty {
- /* outer container and background of the bar that's not finished yet*/
- position:relative;overflow:hidden;
- border:1px solid black; /* a11y: border necessary for high-contrast mode */
- z-index:0; /* establish a stacking context for this progress bar */
-}
-
-.dijitProgressBarFull {
- /* outer container for background of bar that is finished */
- position:absolute;
- overflow:hidden;
- z-index:-1;
- top:0;
- width:100%;
-}
-.dj_ie6 .dijitProgressBarFull {
- height:1.6em;
-}
-
-.dijitProgressBarTile {
- /* inner container for finished portion */
- position:absolute;
- overflow:hidden;
- top:0;
- left:0;
- bottom:0;
- right:0;
- margin:0;
- padding:0;
- width: 100%; /* needed for IE/quirks */
- height:auto;
- background-color:#aaa;
- background-attachment: fixed;
-}
-
-.dijit_a11y .dijitProgressBarTile {
- /* a11y: The border provides visibility in high-contrast mode */
- border-width:2px;
- border-style:solid;
- background-color:transparent !important;
-}
-
-.dj_ie6 .dijitProgressBarTile {
- /* width:auto works in IE6 with position:static but not position:absolute */
- position:static;
- /* height:auto or 100% does not work in IE6 */
- height:1.6em;
-}
-
-.dijitProgressBarIndeterminate .dijitProgressBarTile {
- /* animated gif for 'indeterminate' mode */
-}
-
-.dijitProgressBarIndeterminateHighContrastImage {
- display:none;
-}
-
-.dijit_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {
- display:block;
- position:absolute;
- top:0;
- bottom:0;
- margin:0;
- padding:0;
- width:100%;
- height:auto;
-}
-
-.dijitProgressBarLabel {
- display:block;
- position:static;
- width:100%;
- text-align:center;
- background-color:transparent !important;
-}
-
-/****
- dijit.Tooltip
- ****/
-
-.dijitTooltip {
- position: absolute;
- z-index: 2000;
- display: block;
- /* make visible but off screen */
- left: 0;
- top: -10000px;
- overflow: visible;
-}
-
-.dijitTooltipContainer {
- border: solid black 2px;
- background: #b8b5b5;
- color: black;
- font-size: small;
-}
-
-.dijitTooltipFocusNode {
- padding: 2px 2px 2px 2px;
-}
-
-.dijitTooltipConnector {
- position: absolute;
-}
-.dijit_a11y .dijitTooltipConnector {
- display: none; /* won't show b/c it's background-image; hide to avoid border gap */
-}
-
-.dijitTooltipData {
- display:none;
-}
-
-/* Layout widgets. This is essential CSS to make layout work (it isn't "styling" CSS)
- make sure that the position:absolute in dijitAlign* overrides other classes */
-
-.dijitLayoutContainer {
- position: relative;
- display: block;
- overflow: hidden;
-}
-
-.dijitAlignTop,
-.dijitAlignBottom,
-.dijitAlignLeft,
-.dijitAlignRight {
- position: absolute;
- overflow: hidden;
-}
-
-body .dijitAlignClient { position: absolute; }
-
-/*
- * BorderContainer
- *
- * .dijitBorderContainer is a stylized layout where panes have border and margin.
- * .dijitBorderContainerNoGutter is a raw layout.
- */
-.dijitBorderContainer, .dijitBorderContainerNoGutter {
- position:relative;
- overflow: hidden;
-}
-
-.dijitBorderContainerPane,
-.dijitBorderContainerNoGutterPane {
- position: absolute !important; /* !important to override position:relative in dijitTabContainer etc. */
- z-index: 2; /* above the splitters so that off-by-one browser errors don't cover up border of pane */
-}
-
-.dijitBorderContainer > .dijitTextArea {
- /* On Safari, for SimpleTextArea inside a BorderContainer,
- don't want to display the grip to resize */
- resize: none;
-}
-
-.dijitGutter {
- /* gutter is just a place holder for empty space between panes in BorderContainer */
- position: absolute;
- font-size: 1px; /* needed by IE6 even though div is empty, otherwise goes to 15px */
-}
-
-/* SplitContainer
-
- 'V' == container that splits vertically (up/down)
- 'H' = horizontal (left/right)
-*/
-
-.dijitSplitter {
- position: absolute;
- overflow: hidden;
- z-index: 10; /* above the panes so that splitter focus is visible on FF, see #7583*/
- background-color: #fff;
- border-color: gray;
- border-style: solid;
- border-width: 0;
-}
-.dj_ie .dijitSplitter {
- z-index: 1; /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */
-}
-
-.dijitSplitterActive {
- z-index: 11 !important;
-}
-
-.dijitSplitterCover {
- position:absolute;
- z-index:-1;
- top:0;
- left:0;
- width:100%;
- height:100%;
-}
-
-.dijitSplitterCoverActive {
- z-index:3 !important;
-}
-
-/* #6945: stop mouse events */
-.dj_ie .dijitSplitterCover {
- background: white;
- filter: alpha(opacity=0);
-}
-
-.dijitSplitterH {
- height: 7px;
- border-top:1px;
- border-bottom:1px;
- cursor: row-resize;
-}
-.dijitSplitterV {
- width: 7px;
- border-left:1px;
- border-right:1px;
- cursor: col-resize;
-}
-.dijitSplitContainer {
- position: relative;
- overflow: hidden;
- display: block;
-}
-.dj_ff3 .dijit_a11y div.dijitSplitter:focus {
- outline-style:dotted;
- outline-width: 2px;
-}
-
-.dijitSplitPane {
- position: absolute;
-}
-
-.dijitSplitContainerSizerH,
-.dijitSplitContainerSizerV {
- position:absolute;
- font-size: 1px;
- background-color: ThreeDFace;
- border: 1px solid;
- border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;
- margin: 0;
-}
-
-.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb {
- overflow:hidden;
- position:absolute;
- top:49%;
-}
-
-.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb {
- position:absolute;
- left:49%;
-}
-
-.dijitSplitterShadow,
-.dijitSplitContainerVirtualSizerH,
-.dijitSplitContainerVirtualSizerV {
- font-size: 1px;
- background-color: ThreeDShadow;
- -moz-opacity: 0.5;
- opacity: 0.5;
- filter: Alpha(Opacity=50);
- margin: 0;
-}
-
-.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH {
- cursor: col-resize;
-}
-
-.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV {
- cursor: row-resize;
-}
-
-.dijit_a11y .dijitSplitterH {
- border-top:1px solid #d3d3d3 !important;
- border-bottom:1px solid #d3d3d3 !important;
-}
-.dijit_a11y .dijitSplitterV {
- border-left:1px solid #d3d3d3 !important;
- border-right:1px solid #d3d3d3 !important;
-}
-
-/* ContentPane */
-
-.dijitContentPane {
- display: block;
- overflow: auto; /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */
-}
-
-.dijitContentPaneSingleChild {
- /*
- * if the ContentPane holds a single layout widget child which is being sized to match the content pane,
- * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449
- */
- overflow: hidden;
-}
-
-.dijitContentPaneLoading .dijitIconLoading,
-.dijitContentPaneError .dijitIconError {
- margin-right: 9px;
-}
-
-/* TitlePane */
-
-.dijitTitlePane {
- display: block;
- overflow: hidden;
-}
-.dijitTitlePaneTitle {
- cursor: pointer;
-}
-.dijitFixedOpen, .dijitFixedClosed {
- /* TitlePane that cannot be toggled */
- cursor: default;
-}
-.dijitTitlePaneTitle * {
- vertical-align: middle;
-}
-.dijitTitlePane .dijitArrowNodeInner {
- /* normally, hide arrow text in favor of icon */
- display: none;
-}
-.dijit_a11y .dijitTitlePane .dijitArrowNodeInner {
- /* ... except in a11y mode, then show text arrow */
- display:inline !important;
- font-family: monospace; /* because - and + are different widths */
-}
-.dijit_a11y .dijitTitlePane .dijitArrowNode {
- /* ... and hide icon */
- display:none;
-}
-
-.dj_ie6 .dijitTitlePaneContentOuter,
-.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {
- /* force hasLayout to ensure borders etc, show up */
- zoom: 1;
-}
-
-/* Color Palette
- * Sizes designed so that table cell positions match icons in underlying image,
- * which appear at 20x20 intervals.
- */
-
-.dijitColorPalette {
- border: 1px solid #999;
- background: #fff;
- position: relative;
-}
-
-.dijitColorPalette .dijitPaletteTable {
- /* Table that holds the palette cells, and overlays image file with color swatches.
- * padding/margin to align table with image.
- */
- padding: 2px 3px 3px 3px;
- position: relative;
- overflow: hidden;
- outline: 0;
- border-collapse: separate;
-}
-.dj_ie6 .dijitColorPalette .dijitPaletteTable,
-.dj_ie7 .dijitColorPalette .dijitPaletteTable,
-.dj_iequirks .dijitColorPalette .dijitPaletteTable {
- /* using padding above so that focus border isn't cutoff on moz/webkit,
- * but using margin on IE because padding doesn't seem to work
- */
- padding: 0;
- margin: 2px 3px 3px 3px;
-}
-
-.dijitColorPalette .dijitPaletteCell {
- /* <td> in the <table> */
- font-size: 1px;
- vertical-align: middle;
- text-align: center;
- background: none;
-}
-.dijitColorPalette .dijitPaletteImg {
- /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */
- padding: 1px; /* white area between gray border and color swatch */
- border: 1px solid #999;
- margin: 2px 1px;
- cursor: default;
- font-size: 1px; /* prevent <span> from getting bigger just to hold a character */
-}
-.dj_gecko .dijitColorPalette .dijitPaletteImg {
- padding-bottom: 0; /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */
-}
-.dijitColorPalette .dijitColorPaletteSwatch {
- /* the actual part where the color is */
- width: 14px;
- height: 12px;
-}
-.dijitPaletteTable td {
- padding: 0;
-}
-.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {
- /* hovered color swatch */
- border: 1px solid #000;
-}
-
-.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,
-.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {
- border: 2px solid #000;
- margin: 1px 0; /* reduce margin to compensate for increased border */
-}
-
-
-.dijit_a11y .dijitColorPalette .dijitPaletteTable,
-.dijit_a11y .dijitColorPalette .dijitPaletteTable * {
- /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */
- background-color: transparent !important;
-}
-
-/* AccordionContainer */
-
-.dijitAccordionContainer {
- border:1px solid #b7b7b7;
- border-top:0 !important;
-}
-.dijitAccordionTitle {
- cursor: pointer;
-}
-.dijitAccordionTitleSelected {
- cursor: default;
-}
-
-/* images off, high-contrast mode styles */
-.dijitAccordionTitle .arrowTextUp,
-.dijitAccordionTitle .arrowTextDown {
- display: none;
- font-size: 0.65em;
- font-weight: normal !important;
-}
-
-.dijit_a11y .dijitAccordionTitle .arrowTextUp,
-.dijit_a11y .dijitAccordionTitleSelected .arrowTextDown {
- display: inline;
-}
-
-.dijit_a11y .dijitAccordionTitleSelected .arrowTextUp {
- display: none;
-}
-
-.dijitAccordionChildWrapper {
- /* this is the node whose height is adjusted */
- overflow: hidden;
-}
-
-/* Calendar */
-
-.dijitCalendarContainer {
- width: auto; /* in case user has specified a width for the TABLE nodes, see #10553 */
-}
-.dijitCalendarContainer th, .dijitCalendarContainer td {
- padding: 0;
- vertical-align: middle;
-}
-
-.dijitCalendarYearLabel {
- white-space: nowrap; /* make sure previous, current, and next year appear on same row */
-}
-
-.dijitCalendarNextYear {
- margin:0 0 0 0.55em;
-}
-
-.dijitCalendarPreviousYear {
- margin:0 0.55em 0 0;
-}
-
-.dijitCalendarIncrementControl {
- vertical-align: middle;
-}
-
-.dijitCalendarIncrementControl,
-.dijitCalendarDateTemplate,
-.dijitCalendarMonthLabel,
-.dijitCalendarPreviousYear,
-.dijitCalendarNextYear {
- cursor: pointer;
-}
-
-.dijitCalendarDisabledDate {
- color: gray;
- text-decoration: line-through;
- cursor: default;
-}
-
-.dijitSpacer {
- /* don't display it, but make it affect the width */
- position: relative;
- height: 1px;
- overflow: hidden;
- visibility: hidden;
-}
-
-/* Styling for month drop down list */
-
-.dijitCalendarMonthMenu .dijitCalendarMonthLabel {
- text-align:center;
-}
-
-/* Menu */
-
-.dijitMenu {
- border:1px solid black;
- background-color:white;
-}
-.dijitMenuTable {
- border-collapse:collapse;
- border-width:0;
- background-color:white;
-}
-
-/* workaround for webkit bug #8427, remove this when it is fixed upstream */
-.dj_webkit .dijitMenuTable td[colspan="2"]{
- border-right:hidden;
-}
-
-.dijitMenuItem {
- text-align: left;
- white-space: nowrap;
- padding:.1em .2em;
- cursor:pointer;
-}
-
-.dijitMenuPassive .dijitMenuItemHover,
-.dijitMenuItemSelected {
- /*
- * dijitMenuItemHover refers to actual mouse over
- * dijitMenuItemSelected is used after a menu has been "activated" by
- * clicking it, tabbing into it, or being opened from a parent menu,
- * and denotes that the menu item has focus or that focus is on a child
- * menu
- */
- background-color:black;
- color:white;
-}
-
-.dijitMenuItemIcon, .dijitMenuExpand {
- background-repeat: no-repeat;
-}
-
-.dijitMenuItemDisabled * {
- /* for a disabled menu item, just set it to mostly transparent */
- opacity:0.5;
- cursor:default;
-}
-.dj_ie .dijit_a11y .dijitMenuItemDisabled,
-.dj_ie .dijit_a11y .dijitMenuItemDisabled td,
-.dj_ie .dijitMenuItemDisabled *,
-.dj_ie .dijitMenuItemDisabled td {
- color:gray !important;
- filter: alpha(opacity=35);
-}
-
-.dijitMenuItemLabel {
- position: relative;
- vertical-align: middle;
-}
-
-.dijit_a11y .dijitMenuItemSelected {
- border: 1px dotted black !important;
-}
-.dj_ff3 .dijit_a11y .dijitMenuItem td {
- padding: 0 !important;
- background:none !important;
-}
-.dijit_a11y .dijitMenuItemSelected .dijitMenuItemLabel {
- border-width: 1px;
- border-style: solid;
-}
-.dj_ie8 .dijit_a11y .dijitMenuItemLabel {
- position:static;
-}
-
-.dijitMenuExpandA11y {
- display: none;
-}
-.dijit_a11y .dijitMenuExpandA11y {
- display: inline;
-}
-
-.dijitMenuSeparator td {
- border: 0;
- padding: 0;
-}
-
-/* separator can be two pixels -- set border of either one to 0 to have only one */
-.dijitMenuSeparatorTop {
- height: 50%;
- margin: 0;
- margin-top:3px;
- font-size: 1px;
-}
-
-.dijitMenuSeparatorBottom {
- height: 50%;
- margin: 0;
- margin-bottom:3px;
- font-size: 1px;
-}
-
-/* the checked menu item */
-.dijitCheckedMenuItemIconChar {
- vertical-align: middle;
- visibility:hidden;
-}
-.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar {
- visibility: visible;
-}
-.dijit_a11y .dijitCheckedMenuItemIconChar {
- display:inline !important;
-}
-.dijit_a11y .dijitCheckedMenuItemIcon {
- display: none;
-}
-.dj_ie .dijit_a11y .dijitMenuBar .dijitMenuItem {
- /* so bottom border of MenuBar appears on IE7 in high-contrast mode */
- margin: 0;
-}
-
-/* StackContainer */
-
-.dijitStackController .dijitToggleButtonChecked * {
- cursor: default; /* because pressing it has no effect */
-}
-
-/* TabContainer */
-
-.dijitTabContainerNoLayout {
- width: 100%; /* otherwise ScrollingTabController goes to 50K pixels wide */
-}
-
-.dijitTabContainerBottom-tabs,
-.dijitTabContainerTop-tabs,
-.dijitTabContainerLeft-tabs,
-.dijitTabContainerRight-tabs {
- overflow: visible !important; /* so tabs can cover up border adjacent to container */
-}
-
-.dijitTabContainerBottom-container,
-.dijitTabContainerTop-container,
-.dijitTabContainerLeft-container,
-.dijitTabContainerRight-container {
- z-index:0;
- overflow: hidden;
- border: 1px solid black;
-}
-.nowrapTabStrip {
- width: 50000px;
- display: block;
- position: relative;
- text-align: left; /* just in case ancestor has non-standard setting */
-}
-.dijitTabListWrapper {
- overflow: hidden;
-}
-
-.dijit_a11y .tabStripButton img {
- /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */
- display: none;
-}
-
-.dijitTabContainerTop-tabs {
- border-bottom: 1px solid black;
-}
-.dijitTabContainerTop-container {
- border-top: 0;
-}
-
-.dijitTabContainerLeft-tabs {
- border-right: 1px solid black;
- float: left;
-}
-.dijitTabContainerLeft-container {
- border-left: 0;
-}
-
-.dijitTabContainerBottom-tabs {
- border-top: 1px solid black;
-}
-.dijitTabContainerBottom-container {
- border-bottom: 0;
-}
-
-.dijitTabContainerRight-tabs {
- border-left: 1px solid black;
- float: left;
-}
-.dijitTabContainerRight-container {
- border-right: 0;
-}
-
-div.dijitTabDisabled, .dj_ie div.dijitTabDisabled {
- cursor: auto;
-}
-
-.dijitTab {
- position:relative;
- cursor:pointer;
- white-space:nowrap;
- z-index:3;
-}
-.dijitTab * {
- /* make tab icons and close icon line up w/text */
- vertical-align: middle;
-}
-.dijitTabChecked {
- cursor: default; /* because clicking will have no effect */
-}
-
-.dijitTabContainerTop-tabs .dijitTab {
- top: 1px; /* to overlap border on .dijitTabContainerTop-tabs */
-}
-.dijitTabContainerBottom-tabs .dijitTab {
- top: -1px; /* to overlap border on .dijitTabContainerBottom-tabs */
-}
-.dijitTabContainerLeft-tabs .dijitTab {
- left: 1px; /* to overlap border on .dijitTabContainerLeft-tabs */
-}
-.dijitTabContainerRight-tabs .dijitTab {
- left: -1px; /* to overlap border on .dijitTabContainerRight-tabs */
-}
-
-
-.dijitTabContainerTop-tabs .dijitTab,
-.dijitTabContainerBottom-tabs .dijitTab {
- /* Inline-block */
- display:inline-block; /* webkit and FF3 */
- #zoom: 1; /* set hasLayout:true to mimic inline-block */
- #display:inline; /* don't use .dj_ie since that increases the priority */
-}
-
-.dijitTabInnerDiv {
- position:relative;
-}
-
-
-.tabStripButton {
- z-index: 12;
-}
-
-.dijitTabButtonDisabled .tabStripButton {
- display: none;
-}
-
-
-.dijitTabCloseButton {
- margin-left: 1em;
-}
-
-.dijitTabCloseText {
- display:none;
-}
-
-.dijitTab .tabLabel {
- /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font.
- * assumes <=15px height for close button icon.
- */
- min-height: 15px;
- display: inline-block;
-}
-.dijitNoIcon {
- /* applied to <img>/<span> node when there is no icon specified */
- display: none;
-}
-.dj_ie6 .dijitTab .dijitNoIcon {
- /* because min-height (on .tabLabel, above) doesn't work on IE6 */
- display: inline;
- height: 15px;
- width: 1px;
-}
-
-/* images off, high-contrast mode styles */
-
-.dijit_a11y .dijitTabCloseButton {
- background-image: none !important;
- width: auto !important;
- height: auto !important;
-}
-
-.dijit_a11y .dijitTabCloseText {
- display: inline;
-}
-
-.dijitTabPane,
-.dijitStackContainer-child,
-.dijitAccordionContainer-child {
- /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders
- * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself.
- */
- border: none !important;
-}
-
-/* InlineEditBox */
-.dijitInlineEditBoxDisplayMode {
- border: 1px solid transparent; /* so keyline (border) on hover can appear without screen jump */
- cursor: text;
-}
-
-.dijit_a11y .dijitInlineEditBoxDisplayMode,
-.dj_ie6 .dijitInlineEditBoxDisplayMode {
- /* except that IE6 doesn't support transparent borders, nor does high contrast mode */
- border: none;
-}
-
-.dijitInlineEditBoxDisplayModeHover,
-.dijit_a11y .dijitInlineEditBoxDisplayModeHover,
-.dj_ie6 .dijitInlineEditBoxDisplayModeHover {
- /* An InlineEditBox in view mode (click this to edit the text) */
- background-color: #e2ebf2;
- border: solid 1px black;
-}
-
-.dijitInlineEditBoxDisplayModeDisabled {
- cursor: default;
-}
-
-/* Tree */
-.dijitTree {
- overflow: auto; /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */
-}
-
-.dijitTreeIndent {
- /* amount to indent each tree node (relative to parent node) */
- width: 19px;
-}
-
-.dijitTreeRow, .dijitTreeContent {
- white-space: nowrap;
-}
-
-.dijitTreeRow img {
- /* make the expando and folder icons line up with the label */
- vertical-align: middle;
-}
-
-.dijitTreeContent {
- cursor: default;
-}
-
-.dijitExpandoText {
- display: none;
-}
-
-.dijit_a11y .dijitExpandoText {
- display: inline;
- padding-left: 10px;
- padding-right: 10px;
- font-family: monospace;
- border-style: solid;
- border-width: thin;
- cursor: pointer;
-}
-
-.dijitTreeLabel {
- margin: 0 4px;
-}
-
-/* Dialog */
-
-.dijitDialog {
- position: absolute;
- z-index: 999;
- overflow: hidden; /* override overflow: auto; from ContentPane to make dragging smoother */
-}
-
-.dijitDialogTitleBar {
- cursor: move;
-}
-.dijitDialogFixed .dijitDialogTitleBar {
- cursor:default;
-}
-.dijitDialogCloseIcon {
- cursor: pointer;
-}
-.dijitDialogUnderlayWrapper {
- position: absolute;
- left: 0;
- top: 0;
- z-index: 998;
- display: none;
- background: transparent !important;
-}
-
-.dijitDialogUnderlay {
- background: #eee;
- opacity: 0.5;
-}
-
-.dj_ie .dijitDialogUnderlay {
- filter: alpha(opacity=50);
-}
-
-/* images off, high-contrast mode styles */
-.dijit_a11y .dijitSpinnerButtonContainer,
-.dijit_a11y .dijitDialog {
- opacity: 1 !important;
- background-color: white !important;
-}
-
-.dijitDialog .closeText {
- display:none;
- /* for the onhover border in high contrast on IE: */
- position:absolute;
-}
-
-.dijit_a11y .dijitDialog .closeText {
- display:inline;
-}
-
-/* Slider */
-
-.dijitSliderMoveable {
- z-index:99;
- position:absolute !important;
- display:block;
- vertical-align:middle;
-}
-
-.dijitSliderMoveableH {
- right:0;
-}
-.dijitSliderMoveableV {
- right:50%;
-}
-
-.dijit_a11y div.dijitSliderImageHandle,
-.dijitSliderImageHandle {
- margin:0;
- padding:0;
- position:relative !important;
- border:8px solid gray;
- width:0;
- height:0;
- cursor: pointer;
-}
-.dj_iequirks .dijit_a11y .dijitSliderImageHandle {
- font-size: 0;
-}
-.dj_ie7 .dijitSliderImageHandle {
- overflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */
-}
-.dj_ie7 .dijit_a11y .dijitSliderImageHandle {
- overflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */
-}
-.dijit_a11y .dijitSliderFocused .dijitSliderImageHandle {
- border:4px solid #000;
- height:8px;
- width:8px;
-}
-
-.dijitSliderImageHandleV {
- top:-8px;
- right: -50%;
-}
-
-.dijitSliderImageHandleH {
- left:50%;
- top:-5px;
- vertical-align:top;
-}
-
-.dijitSliderBar {
- border-style:solid;
- border-color:black;
- cursor: pointer;
-}
-
-.dijitSliderBarContainerV {
- position:relative;
- height:100%;
- z-index:1;
-}
-
-.dijitSliderBarContainerH {
- position:relative;
- z-index:1;
-}
-
-.dijitSliderBarH {
- height:4px;
- border-width:1px 0;
-}
-
-.dijitSliderBarV {
- width:4px;
- border-width:0 1px;
-}
-
-.dijitSliderProgressBar {
- background-color:red;
- z-index:1;
-}
-
-.dijitSliderProgressBarV {
- position:static !important;
- height:0;
- vertical-align:top;
- text-align:left;
-}
-
-.dijitSliderProgressBarH {
- position:absolute !important;
- width:0;
- vertical-align:middle;
- overflow:visible;
-}
-
-.dijitSliderRemainingBar {
- overflow:hidden;
- background-color:transparent;
- z-index:1;
-}
-
-.dijitSliderRemainingBarV {
- height:100%;
- text-align:left;
-}
-
-.dijitSliderRemainingBarH {
- width:100% !important;
-}
-
-/* the slider bumper is the space consumed by the slider handle when it hangs over an edge */
-.dijitSliderBumper {
- overflow:hidden;
- z-index:1;
-}
-
-.dijitSliderBumperV {
- width:4px;
- height:8px;
- border-width:0 1px;
-}
-
-.dijitSliderBumperH {
- width:8px;
- height:4px;
- border-width:1px 0;
-}
-
-.dijitSliderBottomBumper,
-.dijitSliderLeftBumper {
- background-color:red;
-}
-
-.dijitSliderTopBumper,
-.dijitSliderRightBumper {
- background-color:transparent;
-}
-
-.dijitSliderDecoration {
- text-align:center;
-}
-
-.dijitSliderDecorationC,
-.dijitSliderDecorationV {
- position: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */
-}
-
-.dijitSliderDecorationH {
- width: 100%;
-}
-
-.dijitSliderDecorationV {
- height: 100%;
-}
-
-.dijitSliderButton {
- font-family:monospace;
- margin:0;
- padding:0;
- display:block;
-}
-
-.dijit_a11y .dijitSliderButtonInner {
- visibility:visible !important;
-}
-
-.dijitSliderButtonContainer {
- text-align:center;
- height:0; /* ??? */
-}
-.dijitSliderButtonContainer * {
- cursor: pointer;
-}
-
-.dijitSlider .dijitButtonNode {
- padding:0;
- display:block;
-}
-
-.dijitRuleContainer {
- position:relative;
- overflow:visible;
-}
-
-.dijitRuleContainerV {
- height:100%;
- line-height:0;
- float:left;
- text-align:left;
-}
-
-.dj_opera .dijitRuleContainerV {
- line-height:2%;
-}
-
-.dj_ie .dijitRuleContainerV {
- line-height:normal;
-}
-
-.dj_gecko .dijitRuleContainerV {
- margin:0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */
-}
-
-.dijitRuleMark {
- position:absolute;
- border:1px solid black;
- line-height:0;
- height:100%;
-}
-
-.dijitRuleMarkH {
- width:0;
- border-top-width:0 !important;
- border-bottom-width:0 !important;
- border-left-width:0 !important;
-}
-
-.dijitRuleLabelContainer {
- position:absolute;
-}
-
-.dijitRuleLabelContainerH {
- text-align:center;
- display:inline-block;
-}
-
-.dijitRuleLabelH {
- position:relative;
- left:-50%;
-}
-
-.dijitRuleLabelV {
- /* so that long labels don't overflow to multiple rows, or overwrite slider itself */
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
-}
-
-.dijitRuleMarkV {
- height:0;
- border-right-width:0 !important;
- border-bottom-width:0 !important;
- border-left-width:0 !important;
- width:100%;
- left:0;
-}
-
-.dj_ie .dijitRuleLabelContainerV {
- margin-top:-.55em;
-}
-
-.dijit_a11y .dijitSliderReadOnly,
-.dijit_a11y .dijitSliderDisabled {
- opacity:0.6;
-}
-.dj_ie .dijit_a11y .dijitSliderReadOnly .dijitSliderBar,
-.dj_ie .dijit_a11y .dijitSliderDisabled .dijitSliderBar {
- filter: alpha(opacity=40);
-}
-
-/* + and - Slider buttons: override theme settings to display icons */
-.dijit_a11y .dijitSlider .dijitSliderButtonContainer div {
- font-family: monospace; /* otherwise hyphen is larger and more vertically centered */
- font-size: 1em;
- line-height: 1em;
- height: auto;
- width: auto;
- margin: 0 4px;
-}
-
-/* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */
-.dijit_a11y .dijitButtonContents .dijitButtonText,
-.dijit_a11y .dijitTab .tabLabel {
- display: inline !important;
-}
-
-/* TextArea, SimpleTextArea */
-.dijitTextArea {
- width:100%;
- overflow-y: auto; /* w/out this IE's SimpleTextArea goes to overflow: scroll */
-}
-.dijitTextArea[cols] {
- width:auto; /* SimpleTextArea cols */
-}
-.dj_ie .dijitTextAreaCols {
- width:auto;
-}
-
-.dijitExpandingTextArea {
- /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */
- resize: none;
-}
-
-
-/* Toolbar
- * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file.
- */
-
-.dijitToolbarSeparator {
- height: 18px;
- width: 5px;
- padding: 0 1px;
- margin: 0;
-}
-
-/* Editor */
-.dijitIEFixedToolbar {
- position:absolute;
- /* top:0; */
- top: expression(eval((document.documentElement||document.body).scrollTop));
-}
-
-.dijitEditor {
- display: block; /* prevents glitch on FF with InlineEditBox, see #8404 */
-}
-
-.dijitEditorDisabled,
-.dijitEditorReadOnly {
- color: gray;
-}
-
-/* TimePicker */
-
-.dijitTimePickerItemInner {
- text-align:center;
- border:0;
- padding:2px 8px 2px 8px;
-}
-
-.dijitTimePickerTick,
-.dijitTimePickerMarker {
- border-bottom:1px solid gray;
-}
-
-.dijitTimePicker .dijitDownArrowButton {
- border-top: none !important;
-}
-
-.dijitTimePickerTick {
- color:#CCC;
-}
-
-.dijitTimePickerMarker {
- color:black;
- background-color:#CCC;
-}
-
-.dijitTimePickerItemSelected {
- font-weight:bold;
- color:#333;
- background-color:#b7cdee;
-}
-
-.dijitTimePickerItemHover {
- background-color:gray;
- color:white;
- cursor:pointer;
-}
-.dijit_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {
- border: solid 4px black;
-}
-.dijit_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {
- border: dashed 4px black;
-}
-
-
-.dijitToggleButtonIconChar {
- /* character (instead of icon) to show that ToggleButton is checked */
- display:none !important;
-}
-.dijit_a11y .dijitToggleButton .dijitToggleButtonIconChar {
- display:inline !important;
- visibility:hidden;
-}
-.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText {
- font-family: "Arial Unicode MS"; /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */
-}
-.dijit_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {
- display: inline !important; /* In high contrast mode, display the check symbol */
- visibility:visible !important;
-}
-
-.dijitArrowButtonChar {
- display:none !important;
-}
-.dijit_a11y .dijitArrowButtonChar {
- display:inline !important;
-}
-
-.dijit_a11y .dijitDropDownButton .dijitArrowButtonInner,
-.dijit_a11y .dijitComboButton .dijitArrowButtonInner {
- display:none !important;
-}
-
-/* Select */
-.dijitSelect {
- margin: 0.2em;
- border-collapse: collapse;
-}
-.dj_ie .dijitSelect,
-.dj_ie7 .dijitSelect,
-.dj_iequirks .dijitSelect {
- vertical-align: middle; /* Set this back for what we hack in dijit inline */
-}
-.dj_ie8 .dijitSelect .dijitButtonText {
- vertical-align: top;
-}
-.dijitToolbar .dijitSelect {
- margin: 0;
-}
-.dj_webkit .dijitToolbar .dijitSelect {
- padding-left: 0.3em;
-}
-.dijit_a11y .dijitSelectDisabled .dijitButtonNode {
- border-style: outset!important;
- border-width: medium!important;
- border-color: #999 !important;
- color:#999 !important;
-}
-.dijitSelect .dijitButtonContents {
- padding: 0;
- background: transparent none;
- white-space: nowrap;
- text-align: left;
-}
-.dijitSelectFixedWidth .dijitButtonContents {
- width: 100%;
-}
-
-.dijitSelectMenu .dijitMenuItemIcon {
- /* avoid blank area in left side of menu (since we have no icons) */
- display:none;
-}
-.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,
-.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {
- /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */
- position: static;
-}
-
-/* Fix the baseline of our label (for multi-size font elements) */
-.dijitSelectLabel *
-{
- vertical-align: baseline;
-}
-
-/* Styling for the currently-selected option (rich text can mess this up) */
-.dijitSelectSelectedOption * {
- font-weight: bold;
-}
-
-/* Fix the styling of the dropdown menu to be more combobox-like */
-.dijitSelectMenu {
- border-width: 1px;
-}
-
-/* Style the different areas of the button to look like a "real" dropdown */
-/* Remove margins on the sub-table */
-.dijitSelectMenu .dijitMenuTable {
- margin: 0;
- background-color: transparent;
-}
-
-/* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */
-.dijitForceStatic {
- position: static !important;
-}
-
-/**** Disabled cursor *****/
-.dijitReadOnly *,
-.dijitDisabled *,
-.dijitReadOnly,
-.dijitDisabled {
- /* a region the user would be able to click on, but it's disabled */
- cursor: default;
-}
+.dijitReset {margin:0; border:0; padding:0; font: inherit; line-height:normal; color: inherit;}.dj_a11y .dijitReset {-moz-appearance: none;}.dijitInline {display:inline-block; #zoom: 1; #display:inline; border:0; padding:0; vertical-align:middle; #vertical-align: auto;}table.dijitInline {display:inline-table; box-sizing: content-box; -moz-box-sizing: content-box;}.dijitHidden {display: none !important;}.dijitVisible {display: block !important; position: relative;}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer {#zoom: 1; overflow: hidden; float: none !important; position: relative;}.dj_ie7 .dijitInputContainer {float: left !important; clear: left; display: inline-block !important;}.dj_ie .dijitSelect input,.dj_ie input.dijitTextBox,.dj_ie .dijitTextBox input {font-size: 100%;}.dijitSelect .dijitButtonText {float: left; vertical-align: top;}TABLE.dijitSelect {padding: 0 !important;}.dijitTextBox .dijitSpinnerButtonContainer,.dijitTextBox .dijitArrowButtonContainer,.dijitValidationTextBox .dijitValidationContainer {float: right; text-align: center;}.dijitSelect input.dijitInputField,.dijitTextBox input.dijitInputField {padding-left: 0 !important; padding-right: 0 !important;}.dijitValidationTextBox .dijitValidationContainer {display: none;}.dijitTeeny {font-size:1px; line-height:1px;}.dijitOffScreen {position: absolute !important; left: 50% !important; top: -10000px !important;}.dijitPopup {position: absolute; background-color: transparent; margin: 0; border: 0; padding: 0;}.dijitPositionOnly {padding: 0 !important; border: 0 !important; background-color: transparent !important; background-image: none !important; height: auto !important; width: auto !important;}.dijitNonPositionOnly {float: none !important; position: static !important; margin: 0 0 0 0 !important; vertical-align: middle !important;}.dijitBackgroundIframe {position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: -1; border: 0; padding: 0; margin: 0;}.dijitDisplayNone {display:none !important;}.dijitContainer {overflow: hidden;}.dj_a11y .dijitIcon,.dj_a11y div.dijitArrowButtonInner, .dj_a11y span.dijitArrowButtonInner,.dj_a11y img.dijitArrowButtonInner,.dj_a11y .dijitCalendarIncrementControl,.dj_a11y .dijitTreeExpando {display: none;}.dijitSpinner div.dijitArrowButtonInner {display: block;}.dj_a11y .dijitA11ySideArrow {display: inline !important; cursor: pointer;}.dj_a11y .dijitCalendarDateLabel {padding: 1px; border: 0px !important;}.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {border-style: solid !important; border-width: 1px !important; padding: 0;}.dj_a11y .dijitCalendarDateTemplate {padding-bottom: 0.1em !important; border: 0px !important;}.dj_a11y .dijitButtonNode {border: black outset medium !important; padding: 0 !important;}.dj_a11y .dijitArrowButton {padding: 0 !important;}.dj_a11y .dijitButtonContents {margin: 0.15em;}.dj_a11y .dijitTextBoxReadOnly .dijitInputField,.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {border-style: outset!important; border-width: medium!important; border-color: #999 !important; color:#999 !important;}.dijitButtonNode * {vertical-align: middle;}.dijitSelect .dijitArrowButtonInner,.dijitButtonNode .dijitArrowButtonInner {background: no-repeat center; width: 12px; height: 12px; direction: ltr;}.dijitLeft {background-position:left top; background-repeat:no-repeat;}.dijitStretch {white-space:nowrap; background-repeat:repeat-x;}.dijitRight {#display:inline; background-position:right top; background-repeat:no-repeat;}.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {opacity: 0.5;}.dijitToggleButton,.dijitButton,.dijitDropDownButton,.dijitComboButton {margin: 0.2em; vertical-align: middle;}.dijitButtonContents {display: block;}td.dijitButtonContents {display: table-cell;}.dijitButtonNode img {vertical-align:middle;}.dijitToolbar .dijitComboButton {border-collapse: separate;}.dijitToolbar .dijitToggleButton,.dijitToolbar .dijitButton,.dijitToolbar .dijitDropDownButton,.dijitToolbar .dijitComboButton {margin: 0;}.dijitToolbar .dijitButtonContents {padding: 1px 2px;}.dj_webkit .dijitToolbar .dijitDropDownButton {padding-left: 0.3em;}.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {padding:0;}.dijitSelect {border:1px solid gray;}.dijitButtonNode {border:1px solid gray; margin:0; line-height:normal; vertical-align: middle; #vertical-align: auto; text-align:center; white-space: nowrap;}.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {line-height:inherit;}.dijitTextBox .dijitButtonNode {border-width: 0;}.dijitSelect,.dijitSelect *,.dijitButtonNode,.dijitButtonNode * {cursor: pointer;}.dj_ie .dijitButtonNode {zoom: 1;}.dj_ie .dijitButtonNode button {overflow: visible;}div.dijitArrowButton {float: right;}.dijitTextBox {border: solid black 1px; #overflow: hidden; width: 15em; vertical-align: middle;}.dijitTextBoxReadOnly,.dijitTextBoxDisabled {color: gray;}.dj_safari .dijitTextBoxDisabled input {color: #B0B0B0;}.dj_safari textarea.dijitTextAreaDisabled {color: #333;}.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, .dj_gecko .dijitTextBoxDisabled input {-moz-user-input: none;}.dijitPlaceHolder {color: #AAAAAA; font-style: italic; position: absolute; top: 0; left: 0; #filter: "";}.dijitTimeTextBox {width: 8em;}.dijitTextBox input:focus {outline: none;}.dijitTextBoxFocused {outline: 5px -webkit-focus-ring-color;}.dijitSelect input,.dijitTextBox input {float: left;}.dj_ie6 input.dijitTextBox,.dj_ie6 .dijitTextBox input {float: none;}.dijitInputInner {border:0 !important; background-color:transparent !important; width:100% !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important;}.dj_a11y .dijitTextBox input {margin: 0 !important;}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner {text-indent: -2em !important; direction: ltr !important; text-align: left !important; height: auto !important; #text-indent: 0 !important; #letter-spacing: -5em !important; #text-align: right !important;}.dj_ie .dijitSelect input,.dj_ie .dijitTextBox input,.dj_ie input.dijitTextBox {overflow-y: visible; line-height: normal;}.dijitSelect .dijitSelectLabel span {line-height: 100%;}.dj_ie .dijitSelect .dijitSelectLabel {line-height: normal;}.dj_ie6 .dijitSelect .dijitSelectLabel,.dj_ie7 .dijitSelect .dijitSelectLabel,.dj_ie8 .dijitSelect .dijitSelectLabel,.dj_iequirks .dijitSelect .dijitSelectLabel,.dijitSelect td,.dj_ie6 .dijitSelect input,.dj_iequirks .dijitSelect input,.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie6 .dijitTextBox input,.dj_ie6 input.dijitTextBox,.dj_iequirks .dijitTextBox input.dijitValidationInner,.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,.dj_iequirks .dijitTextBox input.dijitInputInner,.dj_iequirks input.dijitTextBox {line-height: 100%;}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner {text-indent: 0 !important; width: 1em !important; #text-align: left !important; color: black !important;}.dijitValidationTextBoxError .dijitValidationContainer {display: inline; cursor: default;}.dijitSpinner .dijitSpinnerButtonContainer,.dijitComboBox .dijitArrowButtonContainer {border-width: 0 0 0 1px !important;}.dj_a11y .dijitSelect .dijitArrowButtonContainer,.dijitToolbar .dijitComboBox .dijitArrowButtonContainer {border-width: 0 !important;}.dijitComboBoxMenu {list-style-type: none;}.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0;}.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {clear: both;}.dj_ie .dijitToolbar .dijitComboBox {vertical-align: middle;}.dijitTextBox .dijitSpinnerButtonContainer {width: 1em; position: relative !important; overflow: hidden;}.dijitSpinner .dijitSpinnerButtonInner {width:1em; visibility:hidden !important; overflow-x:hidden;}.dijitComboBox .dijitButtonNode,.dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0;}.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0px !important; border-style: solid !important;}.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,.dj_a11y .dijitSpinner .dijitArrowButtonInner,.dj_a11y .dijitSpinnerButtonContainer input {width: 1em !important;}.dj_a11y .dijitSpinner .dijitArrowButtonInner {margin: 0 auto !important;}.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding-left: 0.3em !important; padding-right: 0.3em !important; margin-left: 0.3em !important; margin-right: 0.3em !important; width: 1.4em !important;}.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding-left: 0 !important; padding-right: 0 !important; width: 1em !important;}.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {margin-left: 0.1em !important; margin-right: 0.1em !important; width: 1em !important;}.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {margin-left: 0 !important; margin-right: 0 !important; width: 2em !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {padding: 0; position: absolute !important; right: 0; float: none; height: 50%; width: 100%; bottom: auto; left: 0; right: auto;}.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: auto;}.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {overflow: visible !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {top: 50%; border-top-width: 1px !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {#bottom: 50%; top: 0;}.dijitSpinner .dijitArrowButtonInner {margin: auto; overflow-x: hidden; height: 100% !important;}.dj_iequirks .dijitSpinner .dijitArrowButtonInner {height: auto !important;}.dijitSpinner .dijitArrowButtonInner .dijitInputField {-moz-transform: scale(0.5); -moz-transform-origin: center top; -webkit-transform: scale(0.5); -webkit-transform-origin: center top; -o-transform: scale(0.5); -o-transform-origin: center top; transform: scale(0.5); transform-origin: left top; padding-top: 0; padding-bottom: 0; padding-left: 0 !important; padding-right: 0 !important; width: 100%; visibility: hidden;}.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {zoom: 50%;}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {overflow: hidden;}.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: 100%;}.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: 1em;}.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {vertical-align:top; visibility: visible;}.dj_a11y .dijitSpinnerButtonContainer {width: 1em;}.dijitCheckBox,.dijitRadio,.dijitCheckBoxInput {padding: 0; border: 0; width: 16px; height: 16px; background-position:center center; background-repeat:no-repeat; overflow: hidden;}.dijitCheckBox input,.dijitRadio input {margin: 0; padding: 0; display: block;}.dijitCheckBoxInput {opacity: 0.01;}.dj_ie .dijitCheckBoxInput {filter: alpha(opacity=0);}.dj_a11y .dijitCheckBox,.dj_a11y .dijitRadio {width: auto !important; height: auto !important;}.dj_a11y .dijitCheckBoxInput {opacity: 1; filter: none; width: auto; height: auto;}.dj_a11y .dijitFocusedLabel {border: 1px dotted; outline: 0px !important;}.dijitProgressBar {z-index: 0;}.dijitProgressBarEmpty {position:relative;overflow:hidden; border:1px solid black; z-index:0;}.dijitProgressBarFull {position:absolute; overflow:hidden; z-index:-1; top:0; width:100%;}.dj_ie6 .dijitProgressBarFull {height:1.6em;}.dijitProgressBarTile {position:absolute; overflow:hidden; top:0; left:0; bottom:0; right:0; margin:0; padding:0; width: 100%; height:auto; background-color:#aaa; background-attachment: fixed;}.dj_a11y .dijitProgressBarTile {border-width:2px; border-style:solid; background-color:transparent !important;}.dj_ie6 .dijitProgressBarTile {position:static; height:1.6em;}.dijitProgressBarIndeterminate .dijitProgressBarTile {}.dijitProgressBarIndeterminateHighContrastImage {display:none;}.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {display:block; position:absolute; top:0; bottom:0; margin:0; padding:0; width:100%; height:auto;}.dijitProgressBarLabel {display:block; position:static; width:100%; text-align:center; background-color:transparent !important;}.dijitTooltip {position: absolute; z-index: 2000; display: block; left: 0; top: -10000px; overflow: visible;}.dijitTooltipContainer {border: solid black 2px; background: #b8b5b5; color: black; font-size: small;}.dijitTooltipFocusNode {padding: 2px 2px 2px 2px;}.dijitTooltipConnector {position: absolute;}.dj_a11y .dijitTooltipConnector {display: none;}.dijitTooltipData {display:none;}.dijitLayoutContainer {position: relative; display: block; overflow: hidden;}.dijitAlignTop,.dijitAlignBottom,.dijitAlignLeft,.dijitAlignRight {position: absolute; overflow: hidden;}body .dijitAlignClient {position: absolute;}.dijitBorderContainer, .dijitBorderContainerNoGutter {position:relative; overflow: hidden; z-index: 0;}.dijitBorderContainerPane,.dijitBorderContainerNoGutterPane {position: absolute !important; z-index: 2;}.dijitBorderContainer > .dijitTextArea {resize: none;}.dijitGutter {position: absolute; font-size: 1px;}.dijitSplitter {position: absolute; overflow: hidden; z-index: 10; background-color: #fff; border-color: gray; border-style: solid; border-width: 0;}.dj_ie .dijitSplitter {z-index: 1;}.dijitSplitterActive {z-index: 11 !important;}.dijitSplitterCover {position:absolute; z-index:-1; top:0; left:0; width:100%; height:100%;}.dijitSplitterCoverActive {z-index:3 !important;}.dj_ie .dijitSplitterCover {background: white; filter: alpha(opacity=0);}.dijitSplitterH {height: 7px; border-top:1px; border-bottom:1px; cursor: row-resize;}.dijitSplitterV {width: 7px; border-left:1px; border-right:1px; cursor: col-resize;}.dijitSplitContainer {position: relative; overflow: hidden; display: block;}.dj_ff3 .dj_a11y div.dijitSplitter:focus {outline-style:dotted; outline-width: 2px;}.dijitSplitPane {position: absolute;}.dijitSplitContainerSizerH,.dijitSplitContainerSizerV {position:absolute; font-size: 1px; background-color: ThreeDFace; border: 1px solid; border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; margin: 0;}.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb {overflow:hidden; position:absolute; top:49%;}.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb {position:absolute; left:49%;}.dijitSplitterShadow,.dijitSplitContainerVirtualSizerH,.dijitSplitContainerVirtualSizerV {font-size: 1px; background-color: ThreeDShadow; -moz-opacity: 0.5; opacity: 0.5; filter: Alpha(Opacity=50); margin: 0;}.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH {cursor: col-resize;}.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV {cursor: row-resize;}.dj_a11y .dijitSplitterH {border-top:1px solid #d3d3d3 !important; border-bottom:1px solid #d3d3d3 !important;}.dj_a11y .dijitSplitterV {border-left:1px solid #d3d3d3 !important; border-right:1px solid #d3d3d3 !important;}.dijitContentPane {display: block; overflow: auto;}.dijitContentPaneSingleChild {overflow: hidden;}.dijitContentPaneLoading .dijitIconLoading,.dijitContentPaneError .dijitIconError {margin-right: 9px;}.dijitTitlePane {display: block; overflow: hidden;}.dijitTitlePaneTitle {cursor: pointer;}.dijitFixedOpen, .dijitFixedClosed {cursor: default;}.dijitFixedOpen .dijitArrowNode, .dijitFixedOpen .dijitArrowNodeInner,.dijitFixedClosed .dijitArrowNode, .dijitFixedClosed .dijitArrowNodeInner{display: none;}.dijitTitlePaneTitle * {vertical-align: middle;}.dijitTitlePane .dijitArrowNodeInner {display: none;}.dj_a11y .dijitTitlePane .dijitArrowNodeInner {display:inline !important; font-family: monospace;}.dj_a11y .dijitTitlePane .dijitArrowNode {display:none;}.dj_ie6 .dijitTitlePaneContentOuter,.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {zoom: 1;}.dijitColorPalette {border: 1px solid #999; background: #fff; position: relative;}.dijitColorPalette .dijitPaletteTable {padding: 2px 3px 3px 3px; position: relative; overflow: hidden; outline: 0; border-collapse: separate;}.dj_ie6 .dijitColorPalette .dijitPaletteTable,.dj_ie7 .dijitColorPalette .dijitPaletteTable,.dj_iequirks .dijitColorPalette .dijitPaletteTable {padding: 0; margin: 2px 3px 3px 3px;}.dijitColorPalette .dijitPaletteCell {font-size: 1px; vertical-align: middle; text-align: center; background: none;}.dijitColorPalette .dijitPaletteImg {padding: 1px; border: 1px solid #999; margin: 2px 1px; cursor: default; font-size: 1px;}.dj_gecko .dijitColorPalette .dijitPaletteImg {padding-bottom: 0;}.dijitColorPalette .dijitColorPaletteSwatch {width: 14px; height: 12px;}.dijitPaletteTable td {padding: 0;}.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {border: 1px solid #000;}.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {border: 2px solid #000; margin: 1px 0;}.dj_a11y .dijitColorPalette .dijitPaletteTable,.dj_a11y .dijitColorPalette .dijitPaletteTable * {background-color: transparent !important;}.dijitAccordionContainer {border:1px solid #b7b7b7; border-top:0 !important;}.dijitAccordionTitle {cursor: pointer;}.dijitAccordionTitleSelected {cursor: default;}.dijitAccordionTitle .arrowTextUp,.dijitAccordionTitle .arrowTextDown {display: none; font-size: 0.65em; font-weight: normal !important;}.dj_a11y .dijitAccordionTitle .arrowTextUp,.dj_a11y .dijitAccordionTitleSelected .arrowTextDown {display: inline;}.dj_a11y .dijitAccordionTitleSelected .arrowTextUp {display: none;}.dijitAccordionChildWrapper {overflow: hidden;}.dijitCalendarContainer {width: auto;}.dijitCalendarContainer th, .dijitCalendarContainer td {padding: 0; vertical-align: middle;}.dijitCalendarYearLabel {white-space: nowrap;}.dijitCalendarNextYear {margin:0 0 0 0.55em;}.dijitCalendarPreviousYear {margin:0 0.55em 0 0;}.dijitCalendarIncrementControl {vertical-align: middle;}.dijitCalendarIncrementControl,.dijitCalendarDateTemplate,.dijitCalendarMonthLabel,.dijitCalendarPreviousYear,.dijitCalendarNextYear {cursor: pointer;}.dijitCalendarDisabledDate {color: gray; text-decoration: line-through; cursor: default;}.dijitSpacer {position: relative; height: 1px; overflow: hidden; visibility: hidden;}.dijitCalendarMonthMenu .dijitCalendarMonthLabel {text-align:center;}.dijitMenu {border:1px solid black; background-color:white;}.dijitMenuTable {border-collapse:collapse; border-width:0; background-color:white;}.dj_webkit .dijitMenuTable td[colspan="2"]{border-right:hidden;}.dijitMenuItem {text-align: left; white-space: nowrap; padding:.1em .2em; cursor:pointer;}.dijitMenuItem:focus {outline: none}.dijitMenuPassive .dijitMenuItemHover,.dijitMenuItemSelected {background-color:black; color:white;}.dijitMenuItemIcon, .dijitMenuExpand {background-repeat: no-repeat;}.dijitMenuItemDisabled * {opacity:0.5; cursor:default;}.dj_ie .dj_a11y .dijitMenuItemDisabled,.dj_ie .dj_a11y .dijitMenuItemDisabled *,.dj_ie .dijitMenuItemDisabled * {color: gray; filter: alpha(opacity=35);}.dijitMenuItemLabel {position: relative; vertical-align: middle;}.dj_a11y .dijitMenuItemSelected {border: 1px dotted black !important;}.dj_ff3 .dj_a11y .dijitMenuItem td {padding: 0 !important; background:none !important;}.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {border-width: 1px; border-style: solid;}.dj_ie8 .dj_a11y .dijitMenuItemLabel {position:static;}.dijitMenuExpandA11y {display: none;}.dj_a11y .dijitMenuExpandA11y {display: inline;}.dijitMenuSeparator td {border: 0; padding: 0;}.dijitMenuSeparatorTop {height: 50%; margin: 0; margin-top:3px; font-size: 1px;}.dijitMenuSeparatorBottom {height: 50%; margin: 0; margin-bottom:3px; font-size: 1px;}.dijitCheckedMenuItemIconChar {vertical-align: middle; visibility:hidden;}.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar {visibility: visible;}.dj_a11y .dijitCheckedMenuItemIconChar {display:inline !important;}.dj_a11y .dijitCheckedMenuItemIcon {display: none;}.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {margin: 0;}.dijitStackController .dijitToggleButtonChecked * {cursor: default;}.dijitTabContainer {z-index: 0; overflow-y: visible;}.dj_ie6 .dijitTabContainer {overflow: hidden;}.dijitTabContainerNoLayout {width: 100%;}.dijitTabContainerBottom-tabs,.dijitTabContainerTop-tabs,.dijitTabContainerLeft-tabs,.dijitTabContainerRight-tabs {z-index: 1; overflow: visible !important;}.dijitTabController {z-index: 1;}.dijitTabContainerBottom-container,.dijitTabContainerTop-container,.dijitTabContainerLeft-container,.dijitTabContainerRight-container {z-index:0; overflow: hidden; border: 1px solid black;}.nowrapTabStrip {width: 50000px; display: block; position: relative; text-align: left; z-index: 1;}.dijitTabListWrapper {overflow: hidden; z-index: 1;}.dj_a11y .tabStripButton img {display: none;}.dijitTabContainerTop-tabs {border-bottom: 1px solid black;}.dijitTabContainerTop-container {border-top: 0;}.dijitTabContainerLeft-tabs {border-right: 1px solid black; float: left;}.dijitTabContainerLeft-container {border-left: 0;}.dijitTabContainerBottom-tabs {border-top: 1px solid black;}.dijitTabContainerBottom-container {border-bottom: 0;}.dijitTabContainerRight-tabs {border-left: 1px solid black; float: left;}.dijitTabContainerRight-container {border-right: 0;}div.dijitTabDisabled, .dj_ie div.dijitTabDisabled {cursor: auto;}.dijitTab {position:relative; cursor:pointer; white-space:nowrap; z-index:3;}.dijitTab * {vertical-align: middle;}.dijitTabChecked {cursor: default;}.dijitTabContainerTop-tabs .dijitTab {top: 1px;}.dijitTabContainerBottom-tabs .dijitTab {top: -1px;}.dijitTabContainerLeft-tabs .dijitTab {left: 1px;}.dijitTabContainerRight-tabs .dijitTab {left: -1px;}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab {display:inline-block; #zoom: 1; #display:inline;}.tabStripButton {z-index: 12;}.dijitTabButtonDisabled .tabStripButton {display: none;}.dijitTabCloseButton {margin-left: 1em;}.dijitTabCloseText {display:none;}.dijitTab .tabLabel {min-height: 15px; display: inline-block;}.dijitNoIcon {display: none;}.dj_ie6 .dijitTab .dijitNoIcon {display: inline; height: 15px; width: 1px;}.dj_a11y .dijitTabCloseButton {background-image: none !important; width: auto !important; height: auto !important;}.dj_a11y .dijitTabCloseText {display: inline;}.dijitTabPane,.dijitStackContainer-child,.dijitAccordionContainer-child {border: none !important;}.dijitInlineEditBoxDisplayMode {border: 1px solid transparent; cursor: text;}.dj_a11y .dijitInlineEditBoxDisplayMode,.dj_ie6 .dijitInlineEditBoxDisplayMode {border: none;}.dijitInlineEditBoxDisplayModeHover,.dj_a11y .dijitInlineEditBoxDisplayModeHover,.dj_ie6 .dijitInlineEditBoxDisplayModeHover {background-color: #e2ebf2; border: solid 1px black;}.dijitInlineEditBoxDisplayModeDisabled {cursor: default;}.dijitTree {overflow: auto;}.dijitTreeIndent {width: 19px;}.dijitTreeRow, .dijitTreeContent {white-space: nowrap;}.dijitTreeRow img {vertical-align: middle;}.dijitTreeContent {cursor: default;}.dijitExpandoText {display: none;}.dj_a11y .dijitExpandoText {display: inline; padding-left: 10px; padding-right: 10px; font-family: monospace; border-style: solid; border-width: thin; cursor: pointer;}.dijitTreeLabel {margin: 0 4px;}.dijitDialog {position: absolute; z-index: 999; overflow: hidden;}.dijitDialogTitleBar {cursor: move;}.dijitDialogFixed .dijitDialogTitleBar {cursor:default;}.dijitDialogCloseIcon {cursor: pointer;}.dijitDialogUnderlayWrapper {position: absolute; left: 0; top: 0; z-index: 998; display: none; background: transparent !important;}.dijitDialogUnderlay {background: #eee; opacity: 0.5;}.dj_ie .dijitDialogUnderlay {filter: alpha(opacity=50);}.dj_a11y .dijitSpinnerButtonContainer,.dj_a11y .dijitDialog {opacity: 1 !important; background-color: white !important;}.dijitDialog .closeText {display:none; position:absolute;}.dj_a11y .dijitDialog .closeText {display:inline;}.dijitSliderMoveable {z-index:99; position:absolute !important; display:block; vertical-align:middle;}.dijitSliderMoveableH {right:0;}.dijitSliderMoveableV {right:50%;}.dj_a11y div.dijitSliderImageHandle,.dijitSliderImageHandle {margin:0; padding:0; position:relative !important; border:8px solid gray; width:0; height:0; cursor: pointer;}.dj_iequirks .dj_a11y .dijitSliderImageHandle {font-size: 0;}.dj_ie7 .dijitSliderImageHandle {overflow: hidden;}.dj_ie7 .dj_a11y .dijitSliderImageHandle {overflow: visible;}.dj_a11y .dijitSliderFocused .dijitSliderImageHandle {border:4px solid #000; height:8px; width:8px;}.dijitSliderImageHandleV {top:-8px; right: -50%;}.dijitSliderImageHandleH {left:50%; top:-5px; vertical-align:top;}.dijitSliderBar {border-style:solid; border-color:black; cursor: pointer;}.dijitSliderBarContainerV {position:relative; height:100%; z-index:1;}.dijitSliderBarContainerH {position:relative; z-index:1;}.dijitSliderBarH {height:4px; border-width:1px 0;}.dijitSliderBarV {width:4px; border-width:0 1px;}.dijitSliderProgressBar {background-color:red; z-index:1;}.dijitSliderProgressBarV {position:static !important; height:0; vertical-align:top; text-align:left;}.dijitSliderProgressBarH {position:absolute !important; width:0; vertical-align:middle; overflow:visible;}.dijitSliderRemainingBar {overflow:hidden; background-color:transparent; z-index:1;}.dijitSliderRemainingBarV {height:100%; text-align:left;}.dijitSliderRemainingBarH {width:100% !important;}.dijitSliderBumper {overflow:hidden; z-index:1;}.dijitSliderBumperV {width:4px; height:8px; border-width:0 1px;}.dijitSliderBumperH {width:8px; height:4px; border-width:1px 0;}.dijitSliderBottomBumper,.dijitSliderLeftBumper {background-color:red;}.dijitSliderTopBumper,.dijitSliderRightBumper {background-color:transparent;}.dijitSliderDecoration {text-align:center;}.dijitSliderDecorationC,.dijitSliderDecorationV {position: relative;}.dijitSliderDecorationH {width: 100%;}.dijitSliderDecorationV {height: 100%; white-space: nowrap;}.dijitSliderButton {font-family:monospace; margin:0; padding:0; display:block;}.dj_a11y .dijitSliderButtonInner {visibility:visible !important;}.dijitSliderButtonContainer {text-align:center; height:0;}.dijitSliderButtonContainer * {cursor: pointer;}.dijitSlider .dijitButtonNode {padding:0; display:block;}.dijitRuleContainer {position:relative; overflow:visible;}.dijitRuleContainerV {height:100%; line-height:0; float:left; text-align:left;}.dj_opera .dijitRuleContainerV {line-height:2%;}.dj_ie .dijitRuleContainerV {line-height:normal;}.dj_gecko .dijitRuleContainerV {margin:0 0 1px 0;}.dijitRuleMark {position:absolute; border:1px solid black; line-height:0; height:100%;}.dijitRuleMarkH {width:0; border-top-width:0 !important; border-bottom-width:0 !important; border-left-width:0 !important;}.dijitRuleLabelContainer {position:absolute;}.dijitRuleLabelContainerH {text-align:center; display:inline-block;}.dijitRuleLabelH {position:relative; left:-50%;}.dijitRuleLabelV {text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}.dijitRuleMarkV {height:0; border-right-width:0 !important; border-bottom-width:0 !important; border-left-width:0 !important; width:100%; left:0;}.dj_ie .dijitRuleLabelContainerV {margin-top:-.55em;}.dj_a11y .dijitSliderReadOnly,.dj_a11y .dijitSliderDisabled {opacity:0.6;}.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {filter: alpha(opacity=40);}.dj_a11y .dijitSlider .dijitSliderButtonContainer div {font-family: monospace; font-size: 1em; line-height: 1em; height: auto; width: auto; margin: 0 4px;}.dj_a11y .dijitButtonContents .dijitButtonText,.dj_a11y .dijitTab .tabLabel {display: inline !important;}.dj_a11y .dijitSelect .dijitButtonText {display: inline-block !important;}.dijitSelectError .dijitButtonContents .dijitButtonText {display: none !important;}.dijitTextArea {width:100%; overflow-y: auto;}.dijitTextArea[cols] {width:auto;}.dj_ie .dijitTextAreaCols {width:auto;}.dijitExpandingTextArea {resize: none;}.dijitToolbarSeparator {height: 18px; width: 5px; padding: 0 1px; margin: 0;}.dijitIEFixedToolbar {position:absolute; top: expression(eval((document.documentElement||document.body).scrollTop));}.dijitEditor {display: block;}.dijitEditorDisabled,.dijitEditorReadOnly {color: gray;}.dijitTimePickerItemInner {text-align:center; border:0; padding:2px 8px 2px 8px;}.dijitTimePickerTick,.dijitTimePickerMarker {border-bottom:1px solid gray;}.dijitTimePicker .dijitDownArrowButton {border-top: none !important;}.dijitTimePickerTick {color:#CCC;}.dijitTimePickerMarker {color:black; background-color:#CCC;}.dijitTimePickerItemSelected {font-weight:bold; color:#333; background-color:#b7cdee;}.dijitTimePickerItemHover {background-color:gray; color:white; cursor:pointer;}.dijitTimePickerItemDisabled {color:gray; text-decoration:line-through;}.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {border: solid 4px black;}.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {border: dashed 4px black;}.dijitToggleButtonIconChar {display:none !important;}.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {display:inline !important; visibility:hidden;}.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText {font-family: "Arial Unicode MS";}.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {display: inline !important; visibility:visible !important;}.dijitArrowButtonChar {display:none !important;}.dj_a11y .dijitArrowButtonChar {display:inline !important;}.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,.dj_a11y .dijitComboButton .dijitArrowButtonInner {display:none !important;}.dj_a11y .dijitSelect {border-collapse: separate !important; border-width: 1px; border-style: solid;}.dj_ie .dijitSelect {vertical-align: middle;}.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie8 .dijitSelect .dijitButtonText {vertical-align: top;}.dj_ie6 .dijitTextBox .dijitInputContainer,.dj_iequirks .dijitTextBox .dijitInputContainer,.dj_ie6 .dijitTextBox .dijitArrowButtonInner,.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,.dijitSelect .dijitSelectLabel {vertical-align: baseline;}.dijitNumberTextBox {text-align: left; direction: ltr;}.dijitNumberTextBox .dijitInputInner {text-align: inherit;}.dijitToolbar .dijitSelect {margin: 0;}.dj_webkit .dijitToolbar .dijitSelect {padding-left: 0.3em;}.dijitSelect .dijitButtonContents {padding: 0; white-space: nowrap; text-align: left; border-style: none solid none none; border-width: 1px;}.dijitSelectFixedWidth .dijitButtonContents {width: 100%;}.dijitSelectMenu .dijitMenuItemIcon {display:none;}.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {position: static;}.dijitSelectLabel *{vertical-align: baseline;}.dijitSelectSelectedOption * {font-weight: bold;}.dijitSelectMenu {border-width: 1px;}.dijitSelectMenu .dijitMenuTable {margin: 0; background-color: transparent;}.dijitForceStatic {position: static !important;}.dijitReadOnly *,.dijitDisabled *,.dijitReadOnly,.dijitDisabled {cursor: default;}.dojoDndItem {padding: 2px; -webkit-touch-callout: none; -webkit-user-select: none;}.dojoDndHorizontal .dojoDndItem {#display: inline; display: inline-block;}.dojoDndItemBefore,.dojoDndItemAfter {border: 0px solid #369;}.dojoDndItemBefore {border-width: 2px 0 0 0; padding: 0 2px 2px 2px;}.dojoDndItemAfter {border-width: 0 0 2px 0; padding: 2px 2px 0 2px;}.dojoDndHorizontal .dojoDndItemBefore {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.dojoDndHorizontal .dojoDndItemAfter {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dojoDndItemOver {cursor:pointer;}.dj_gecko .dijitArrowButtonInner INPUT,.dj_gecko INPUT.dijitArrowButtonInner {-moz-user-focus:ignore;} \ No newline at end of file
diff --git a/lib/dijit/themes/dijit_rtl.css b/lib/dijit/themes/dijit_rtl.css
index 9c1b69c0d..6246c1565 100644
--- a/lib/dijit/themes/dijit_rtl.css
+++ b/lib/dijit/themes/dijit_rtl.css
@@ -1,128 +1 @@
-.dijitRtl .dijitPlaceHolder {
- left: auto;
- right: 0;
-}
-
-/* Menu */
-
-.dijitMenuItemRtl {
- text-align: right;
-}
-
-/* Button */
-
-.dj_iequirks .dijitComboButtonRtl button {
- /* workaround bug where label invisible (themeTesterQuirk.html?dir=rtl) */
- float:left;
-}
-
-/* TextBox, ComboBox, Spinner */
-
-.dijitTextBoxRtl .dijitValidationContainer,
-.dijitTextBoxRtl .dijitSpinnerButtonContainer,
-.dijitComboBoxRtl .dijitArrowButtonContainer {
- /* combobox and spinner: line between the input area and the drop down button */
- border-right-width: 1px !important;
- border-left-width: 0 !important;
-}
-
-.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton {
- right: 0;
- left: auto;
-}
-
-.dj_ie7 .dijitInputContainer {
- /* to fix wrong text alignment in rtl text box in IE */
- display: inline-block;
-}
-
-.dijitTextBoxRtl .dijitSpinnerButtonContainer,
-.dijitTextBoxRtl .dijitValidationContainer,
-.dijitTextBoxRtl .dijitArrowButtonContainer {
- float: left;
-}
-
-/* Calendar */
-
-.dijitCalendarRtl .dijitCalendarNextYear {
- margin:0 0.55em 0 0;
-}
-
-.dijitCalendarRtl .dijitCalendarPreviousYear {
- margin:0 0 0 0.55em;
-}
-
-
-/* Slider */
-
-.dijitSliderRtl .dijitSliderImageHandleV {
- left:auto;
-}
-
-.dijitSliderRtl .dijitSliderImageHandleH {
- left:-50%;
-}
-
-.dijitSliderRtl .dijitSliderMoveableH {
- right:auto;
- left:0;
-}
-
-.dijitSliderRtl .dijitRuleContainerV {
- float:right;
-}
-
-.dj_ie .dijitSliderRtl .dijitRuleContainerV {
- text-align:right;
-}
-
-.dj_ie .dijitSliderRtl .dijitRuleLabelV {
- text-align:left;
-}
-
-.dj_ie .dijitSliderRtl .dijitRuleLabelH {
- zoom:1;
-}
-
-.dijitSliderRtl .dijitSliderProgressBarH {
- /* workarounds for IE and FF */
- float:right;
- right:0;
- left:auto;
-}
-
-/* ContentPane*/
-
-.dijitRtl .dijitContentPaneLoading .dijitIconLoading,
-.dijitRtl .dijitContentPaneError .dijitIconError {
- margin-right: 0;
- margin-left: 9px;
-}
-
-/* TabContainer */
-
-.dijitTabControllerRtl .nowrapTabStrip {
- text-align: right; /* just in case ancestor has non-standard setting */
-}
-.dijitTabRtl .dijitTabCloseButton {
- margin-left: 0;
- margin-right: 1em;
-}
-
-/* TimePicker */
-.dj_ie .dijitTimePickerRtl .dijitTimePickerItem {
- width:100%;
-}
-
-
-/* ColorPalette */
-.dijitColorPaletteRtl .dijitColorPaletteUnder {
- /* needed in RTL mode when DropDownButton expands the ColorPalette beyond it's natural width */
- left: auto;
- right: 0;
-}
-
-/* Select */
-.dijitSelectRtl .dijitButtonContents {
- text-align: right;
-}
+.dijitRtl .dijitPlaceHolder {left: auto; right: 0;}.dijitMenuItemRtl {text-align: right;}.dj_iequirks .dijitComboButtonRtl button {float:left;}.dj_ie .dijitTextBoxRtl .dijitInputContainer {clear: right;}.dijitTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitComboBoxRtl .dijitArrowButtonContainer {border-right-width: 1px !important; border-left-width: 0 !important;}.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton {right: 0; left: auto;}.dijitSelectRtl .dijitButtonText {float: right;}.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitValidationTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitArrowButtonContainer {float: left;}div.dijitNumberTextBoxRtl {text-align: right;}.dijitCalendarRtl .dijitCalendarNextYear {margin:0 0.55em 0 0;}.dijitCalendarRtl .dijitCalendarPreviousYear {margin:0 0 0 0.55em;}.dijitSliderRtl .dijitSliderImageHandleV {left:auto;}.dijitSliderRtl .dijitSliderImageHandleH {left:-50%;}.dijitSliderRtl .dijitSliderMoveableH {right:auto; left:0;}.dijitSliderRtl .dijitRuleContainerV {float:right;}.dj_ie .dijitSliderRtl .dijitRuleContainerV {text-align:right;}.dj_ie .dijitSliderRtl .dijitRuleLabelV {text-align:left;}.dj_ie .dijitSliderRtl .dijitRuleLabelH {zoom:1;}.dijitSliderRtl .dijitSliderProgressBarH {float:right; right:0; left:auto;}.dijitRtl .dijitContentPaneLoading .dijitIconLoading,.dijitRtl .dijitContentPaneError .dijitIconError {margin-right: 0; margin-left: 9px;}.dijitTabControllerRtl .nowrapTabStrip {text-align: right;}.dijitTabRtl .dijitTabCloseButton {margin-left: 0; margin-right: 1em;}.dj_ie6 .dijitTabRtl .tabLabel,.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie6 .dijitTabContainerLeft-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerLeft-tabs .dijitTabRtl {zoom: 1;}.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl {left: 0;}.dj_ie6 .dijitTabContainerRightRtl .dijitTabContainerRight-tabs,.dj_ie6 .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs {width: 1%;}.dj_ie .dijitTimePickerRtl .dijitTimePickerItem {width:100%;}.dijitColorPaletteRtl .dijitColorPaletteUnder {left: auto; right: 0;}.dijitSelectRtl .dijitButtonContents {border-style: none none none solid; text-align: right;}.dijitRtl .dojoDndHorizontal .dojoDndItemBefore {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dijitRtl .dojoDndHorizontal .dojoDndItemAfter {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Calendar.css b/lib/dijit/themes/nihilo/Calendar.css
index 55bb2ccae..88c634337 100644
--- a/lib/dijit/themes/nihilo/Calendar.css
+++ b/lib/dijit/themes/nihilo/Calendar.css
@@ -1,161 +1 @@
-/* Calendar*/
-
-.nihilo .dijitCalendarIncrementControl {
- /* next/prev month buttons */
- width:15px;
- height:15px;
- background-image: url("images/spriteRoundedIconsSmall.png");
- background-repeat: no-repeat
-}
-.dj_ie6 .nihilo .dijitCalendarIncrementControl {
- font-size:.1em;
- background-image: url("images/spriteRoundedIconsSmall.gif");
-}
-
-.nihilo .dijitA11ySideArrow {
- display: none;
-}
-
-.nihilo .dijitCalendarDecrease {
- background-position: top left;
-}
-.nihilo .dijitCalendarIncrease {
- background-position: -30px top;
-}
-
-.nihilo table.dijitCalendarContainer {
- font-size: 100%;
- border-spacing: 0;
- border-collapse: separate;
- border: 1px solid #ccc;
- margin: 0;
-}
-
-.nihilo .dijitCalendarMonthContainer th {
- /* month header cell */
- background:#d3d3d3 url("images/titleBar.png") repeat-x top;
- padding-top:.3em;
- padding-bottom:.2em;
- text-align:center;
-}
-.dj_ie6 .nihilo .dijitCalendarMonthContainer th {
- padding-top:.2em;
- padding-bottom:.1em;
-}
-
-.nihilo .dijitCalendarDayLabelTemplate {
- /* day of week labels */
- background:#fefefe;
- font-weight:normal;
- padding-top:.15em;
- padding-bottom:.2em;
- border-bottom: 1px solid #eeeeee;
- color:#293a4b;
- text-align:center;
-}
-
-.nihilo .dijitCalendarBodyContainer {
- border-bottom: 1px solid #eeeeee;
-}
-
-.nihilo .dijitCalendarMonthLabel {
- color:#293a4b;
- font-weight: bold;
- padding: 0 4px;
-}
-
-.nihilo .dijitCalendarDateTemplate {
- /* style for each day cell */
- font-size: 0.9em;
- font-weight: bold;
- text-align: center;
- padding: 0.3em 0.3em 0.05em 0.3em;
- letter-spacing: 1px;
- background-color: #fdfdfd;
- border:#fdfdfd solid 1px !important;
-}
-
-.dj_ie .nihilo .dijitCalendarDateTemplate {
- padding: 0.1em .33em 0.02em .33em;
-}
-
-.nihilo .dijitCalendarPreviousMonth,
-.nihilo .dijitCalendarNextMonth {
- /* days that are part of the previous or next month */
- color:#999999;
- background-color:#f5f5f5 !important;
- border:#f5f5f5 solid 1px !important;
-}
-
-.nihilo .dijitCalendarCurrentMonth {
- /* days that are part of this month */
-}
-
-.nihilo .dijitCalendarDisabledDate {
- text-decoration:line-through !important;
-}
-
-.nihilo .dijitCalendarCurrentDate {
- /* cell for today's date */
- text-decoration:underline;
- font-weight:bold;
-}
-
-.nihilo .dijitCalendarSelectedDate {
- /* cell for the selected date */
- background-color:#ffe284 !important;
- color:black !important;
- border:#f7c95c solid 1px !important;
-}
-
-
-.nihilo .dijitCalendarYearContainer {
- /* footer of the table that contains the year display/selector */
- background:white url("images/titleBar.png") repeat-x top;
-}
-
-.nihilo .dijitCalendarYearLabel {
- /* container for all of 3 year labels */
- margin:0;
- padding:0.4em 0 0.25em 0;
- text-align:center;
- font-size: 1.17em;
-}
-
-.nihilo .dijitCalendarSelectedYear {
- /* label for selected year */
- font-weight:bolder;
- color:black;
- padding:0.2em;
- padding-bottom:0.1em;
- background-color:#ffe284 !important;
- border:#f7c95c solid 1px !important;
-}
-
-.nihilo .dijitCalendarNextYear,
-.nihilo .dijitCalendarPreviousYear {
- /* label for next/prev years */
- color:black !important;
- font-weight:normal;
-}
-
-/* Styling for month DropDownButton */
-
-.nihilo .dijitCalendar .dijitDropDownButton {
- margin: 0;
-}
-.nihilo .dijitCalendar .dijitButtonText {
- padding: 0;
-}
-.nihilo .dijitCalendar .dijitDropDownButton .dijitButtonNode {
- background-color: transparent;
- background-image: none;
- padding: 0;
-}
-
-/* Styling for month drop down list */
-
-.nihilo .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover {
- background-color: #ffe284;
- color: #243C5F;
-}
+.nihilo .dijitCalendarIncrementControl {width:15px; height:15px; background-image: url("images/spriteRoundedIconsSmall.png"); background-repeat: no-repeat}.dj_ie6 .nihilo .dijitCalendarIncrementControl {font-size:.1em; background-image: url("images/spriteRoundedIconsSmall.gif");}.nihilo .dijitA11ySideArrow {display: none;}.nihilo .dijitCalendarDecrease {background-position: top left;}.nihilo .dijitCalendarIncrease {background-position: -30px top;}.nihilo table.dijitCalendarContainer {font-size: 100%; border-spacing: 0; border-collapse: separate; border: 1px solid #ccc; margin: 0;}.nihilo .dijitCalendarMonthContainer th {background:#d3d3d3 url("images/titleBar.png") repeat-x top; padding-top:.3em; padding-bottom:.2em; text-align:center;}.dj_ie6 .nihilo .dijitCalendarMonthContainer th {padding-top:.2em; padding-bottom:.1em;}.nihilo .dijitCalendarDayLabelTemplate {background:#fefefe; font-weight:normal; padding-top:.15em; padding-bottom:.2em; border-bottom: 1px solid #eeeeee; color:#293a4b; text-align:center;}.nihilo .dijitCalendarBodyContainer {border-bottom: 1px solid #eeeeee;}.nihilo .dijitCalendarMonthLabel {color:#293a4b; font-weight: bold; padding: 0 4px;}.nihilo .dijitCalendarDateTemplate {font-size: 0.9em; font-weight: bold; text-align: center; padding: 0.3em 0.3em 0.05em 0.3em; letter-spacing: 1px; background-color: #fdfdfd; border:#fdfdfd solid 1px !important;}.dj_ie .nihilo .dijitCalendarDateTemplate {padding: 0.1em .33em 0.02em .33em;}.nihilo .dijitCalendarPreviousMonth,.nihilo .dijitCalendarNextMonth {color:#999999; background-color:#f5f5f5 !important; border:#f5f5f5 solid 1px !important;}.nihilo .dijitCalendarCurrentMonth {}.nihilo .dijitCalendarDisabledDate {text-decoration:line-through !important;}.nihilo .dijitCalendarCurrentDate {text-decoration:underline; font-weight:bold;}.nihilo .dijitCalendarSelectedDate {background-color:#ffe284 !important; color:black !important; border:#f7c95c solid 1px !important;}.nihilo .dijitCalendarYearContainer {background:white url("images/titleBar.png") repeat-x top;}.nihilo .dijitCalendarYearLabel {margin:0; padding:0.4em 0 0.25em 0; text-align:center; font-size: 1.17em;}.nihilo .dijitCalendarSelectedYear {font-weight:bolder; color:black; padding:0.2em; padding-bottom:0.1em; background-color:#ffe284 !important; border:#f7c95c solid 1px !important;}.nihilo .dijitCalendarNextYear,.nihilo .dijitCalendarPreviousYear {color:black !important; font-weight:normal;}.nihilo .dijitCalendar .dijitDropDownButton {margin: 0;}.nihilo .dijitCalendar .dijitButtonText {padding: 0;}.nihilo .dijitCalendar .dijitDropDownButton .dijitButtonNode {background-color: transparent; background-image: none; padding: 0;}.nihilo .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover {background-color: #ffe284; color: #243C5F;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Calendar_rtl.css b/lib/dijit/themes/nihilo/Calendar_rtl.css
index 6fc06f4e3..a210dbe77 100644
--- a/lib/dijit/themes/nihilo/Calendar_rtl.css
+++ b/lib/dijit/themes/nihilo/Calendar_rtl.css
@@ -1,9 +1 @@
-/* Calendar */
-
-.dijitRtl .nihilo .dijitCalendarDecrease {
- background-position: -30px top;
-}
-
-.dijitRtl .nihilo .dijitCalendarIncrease {
- background-position: 0 top;
-}
+.dijitRtl .nihilo .dijitCalendarDecrease {background-position: -30px top;}.dijitRtl .nihilo .dijitCalendarIncrease {background-position: 0 top;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/ColorPalette.css b/lib/dijit/themes/nihilo/ColorPalette.css
index 8fbe9d7ef..86be83514 100644
--- a/lib/dijit/themes/nihilo/ColorPalette.css
+++ b/lib/dijit/themes/nihilo/ColorPalette.css
@@ -1,5 +1 @@
-.dijitColorPalette {
- border:1px solid #d3d3d3;
- background:#fff;
- -moz-border-radius: 0 !important;
-} \ No newline at end of file
+.dijitColorPalette {border:1px solid #d3d3d3; background:#fff; -moz-border-radius: 0 !important;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Common.css b/lib/dijit/themes/nihilo/Common.css
index 498699083..34c059803 100644
--- a/lib/dijit/themes/nihilo/Common.css
+++ b/lib/dijit/themes/nihilo/Common.css
@@ -1,23 +1 @@
-/* DnD avatar-specific settings */
-/* For now it uses a default set of rules. Some other DnD classes can be modified as well. */
-.nihilo .dojoDndItemBefore {
- border-top: 2px solid #369;
-}
-
-.nihilo .dojoDndItemAfter {
- border-bottom: 2px solid #369;
-}
-
-.nihilo .dojoDndItemOver {
- cursor:pointer;
-}
-
-.nihilo table.dojoDndAvatar { -moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;}
-.nihilo .dojoDndAvatar td { border: none; }
-.nihilo .dojoDndAvatar tr { border: none; }
-.nihilo .dojoDndAvatarHeader td { height: 20px; padding: 0 0 0 21px; }
-.nihilo .dojoDndAvatarItem td { padding: 2px;}
-.nihilo.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;}
-.nihilo.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;}
-.nihilo.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;}
-.nihilo.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;}
+.nihilo .dojoDndItemOver {background-image: url(images/treeHover.png);}.nihilo table.dojoDndAvatar {-moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;}.nihilo .dojoDndAvatar td {border: none;}.nihilo .dojoDndAvatar tr {border: none;}.nihilo .dojoDndAvatarHeader td {height: 20px; padding: 0 0 0 21px;}.nihilo .dojoDndAvatarItem td {padding: 2px;}.nihilo.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;}.nihilo.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;}.nihilo.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;}.nihilo.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Dialog.css b/lib/dijit/themes/nihilo/Dialog.css
index 4affeb866..4b68361a6 100644
--- a/lib/dijit/themes/nihilo/Dialog.css
+++ b/lib/dijit/themes/nihilo/Dialog.css
@@ -1,152 +1 @@
-/* Dialog */
-
-.nihilo .dijitDialog {
- background: #eee;
- border: 1px solid #d3d3d3;
- -webkit-box-shadow: 0 5px 10px #adadad;
- padding: 0;
-}
-
-.nihilo .dijitDialog .dijitDialogTitle {
- /* typography and styling of the dialog title */
- font-size: 0.9em;
- color: #243C5F;
- font-weight: bold;
- padding: 0 4px;
-}
-
-.nihilo .dijitDialog .dijitDialogPaneContent {
- background: #ffffff;
- border-top: 1px solid #d3d3d3;
- padding:10px;
-
-}
-
-.nihilo .dijitDialogTitleBar {
- /* outer container for the titlebar of the dialog */
- background: #fafafa url("images/titleBar.png") repeat-x top left;
- padding: 5px 6px 3px 6px;
- outline:0; /* remove this line if keyboard focus on dialog startup is an issue. tab still takes you to first focusable element */
-}
-
-.nihilo .dijitDialogCloseIcon {
- /* the default close icon for the dialog */
- background-image: url("images/spriteRoundedIconsSmall.png");
- background-repeat: no-repeat;
- background-position: -60px 0;
- position: absolute;
- vertical-align: middle;
- right: 6px;
- top: 4px;
- height: 15px;
- width: 15px;
-}
-.dj_ie6 .nihilo .dijitDialogCloseIcon {
- background-image: url("images/spriteRoundedIconsSmall.gif");
-}
-.nihilo .dijitDialogCloseIconHover {
- background-position: -60px -15px;
-}
-
-/* Tooltip and TooltipDialog */
-
-.nihilo .dijitTooltip,
-.nihilo .dijitTooltipDialog {
- /* the outermost dom node, holding the connector and container */
- background: transparent; /* make the area on the sides of the arrow transparent */
-}
-
-.dijitTooltipBelow {
- /* leave room for arrow above content */
- padding-top: 10px;
-}
-
-.dijitTooltipAbove {
- /* leave room for arrow below content */
- padding-bottom: 10px;
-}
-
-.nihilo .dijitTooltipContainer {
- /*
- The part with the text.
-
- NOTE:
- FF doesn't clip images used as CSS bgs if you specify a border
- radius. If you use a solid color, it does. Webkit gets it right.
- Sigh.
- background: #ffffff url("images/popupMenuBg.gif") repeat-x bottom left;
- */
- background-color: #fff;
- border:1px solid #d3d3d3;
- padding:0.45em;
-}
-
-.nihilo .dijitTooltipConnector {
- /* the arrow piece */
- border:0;
- z-index: 2;
-}
-
-.nihilo .dijitTooltipABRight .dijitTooltipConnector {
- /* above or below tooltip, but the arrow appears on the right,
- and the right edges of target and tooltip are aligned rather than the left */
- left: auto !important;
- right: 6px;
-}
-
-.nihilo .dijitTooltipBelow .dijitTooltipConnector {
- /* the arrow piece for tooltips below an element */
- top: 0;
- left: 6px;
- background:url("images/tooltipConnectorUp.png") no-repeat top left;
- width:17px;
- height:11px;
-}
-
-.dj_ie .nihilo .dijitTooltipBelow .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorUp.gif");
-}
-
-.nihilo .dijitTooltipAbove .dijitTooltipConnector {
- /* the arrow piece for tooltips above an element */
- bottom: 0;
- left: 6px;
- background:url("images/tooltipConnectorDown.png") no-repeat top left;
- width:17px;
- height:11px;
-}
-.dj_ie .nihilo .dijitTooltipAbove .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorDown.gif");
-}
-.dj_ie6 .nihilo .dijitTooltipAbove .dijitTooltipConnector {
- bottom: -5px;
-}
-
-.nihilo .dijitTooltipLeft {
- padding-right: 10px;
-}
-.nihilo .dijitTooltipLeft .dijitTooltipConnector {
- /* the arrow piece for tooltips to the left of an element, bottom borders aligned */
- right: 0;
- background:url("images/tooltipConnectorRight.png") no-repeat top left;
- width:11px;
- height:17px;
-}
-.dj_ie .nihilo .dijitTooltipLeft .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorRight.gif");
-}
-
-.nihilo .dijitTooltipRight {
- padding-left: 10px;
-}
-.nihilo .dijitTooltipRight .dijitTooltipConnector {
- /* the arrow piece for tooltips to the right of an element, bottom borders aligned */
- left: 0;
- background:url("images/tooltipConnectorLeft.png") no-repeat top left;
- width:11px;
- height:17px;
-}
-.dj_ie .nihilo .dijitTooltipRight .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorLeft.gif");
-}
-
+.nihilo .dijitDialog {background: #eee; border: 1px solid #d3d3d3; -webkit-box-shadow: 0 5px 10px #adadad; padding: 0;}.nihilo .dijitDialog .dijitDialogTitle {font-size: 0.9em; color: #243C5F; font-weight: bold; padding: 0 4px;}.nihilo .dijitDialog .dijitDialogPaneContent {background: #ffffff; border-top: 1px solid #d3d3d3; padding:10px;}.nihilo .dijitDialogTitleBar {background: #fafafa url("images/titleBar.png") repeat-x top left; padding: 5px 6px 3px 6px; outline:0;}.nihilo .dijitDialogCloseIcon {background-image: url("images/spriteRoundedIconsSmall.png"); background-repeat: no-repeat; background-position: -60px 0; position: absolute; vertical-align: middle; right: 6px; top: 4px; height: 15px; width: 15px;}.dj_ie6 .nihilo .dijitDialogCloseIcon {background-image: url("images/spriteRoundedIconsSmall.gif");}.nihilo .dijitDialogCloseIconHover {background-position: -60px -15px;}.nihilo .dijitTooltip,.nihilo .dijitTooltipDialog {background: transparent;}.dijitTooltipBelow {padding-top: 10px;}.dijitTooltipAbove {padding-bottom: 10px;}.nihilo .dijitTooltipContainer {background-color: #fff; border:1px solid #d3d3d3; padding:0.45em;}.nihilo .dijitTooltipConnector {border:0; z-index: 2;}.nihilo .dijitTooltipABRight .dijitTooltipConnector {left: auto !important; right: 6px;}.nihilo .dijitTooltipBelow .dijitTooltipConnector {top: 0; left: 6px; background:url("images/tooltipConnectorUp.png") no-repeat top left; width:17px; height:11px;}.dj_ie .nihilo .dijitTooltipBelow .dijitTooltipConnector {background-image: url("images/tooltipConnectorUp.gif");}.nihilo .dijitTooltipAbove .dijitTooltipConnector {bottom: 0; left: 6px; background:url("images/tooltipConnectorDown.png") no-repeat top left; width:17px; height:11px;}.dj_ie .nihilo .dijitTooltipAbove .dijitTooltipConnector {background-image: url("images/tooltipConnectorDown.gif");}.dj_ie6 .nihilo .dijitTooltipAbove .dijitTooltipConnector {bottom: -5px;}.nihilo .dijitTooltipLeft {padding-right: 10px;}.nihilo .dijitTooltipLeft .dijitTooltipConnector {right: 0; background:url("images/tooltipConnectorRight.png") no-repeat top left; width:11px; height:17px;}.dj_ie .nihilo .dijitTooltipLeft .dijitTooltipConnector {background-image: url("images/tooltipConnectorRight.gif");}.nihilo .dijitTooltipRight {padding-left: 10px;}.nihilo .dijitTooltipRight .dijitTooltipConnector {left: 0; background:url("images/tooltipConnectorLeft.png") no-repeat top left; width:11px; height:17px;}.dj_ie .nihilo .dijitTooltipRight .dijitTooltipConnector {background-image: url("images/tooltipConnectorLeft.gif");} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Dialog_rtl.css b/lib/dijit/themes/nihilo/Dialog_rtl.css
index 5e0cffc3d..9a0d311e7 100644
--- a/lib/dijit/themes/nihilo/Dialog_rtl.css
+++ b/lib/dijit/themes/nihilo/Dialog_rtl.css
@@ -1,6 +1 @@
-/* Dialog */
-
-.dijitRtl .nihilo .dijitDialogTitleBar .dijitDialogCloseIcon {
- right: auto;
- left: 5px;
-}
+.dijitRtl .nihilo .dijitDialogTitleBar .dijitDialogCloseIcon {right: auto; left: 5px;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Editor.css b/lib/dijit/themes/nihilo/Editor.css
index 108aae78c..8ca81e08c 100644
--- a/lib/dijit/themes/nihilo/Editor.css
+++ b/lib/dijit/themes/nihilo/Editor.css
@@ -1,16 +1 @@
-.nihilo .dijitToolbar .dijitToolbarSeparator {
- background: url('../../icons/images/editorIconsEnabled.png'); /* separator in editor icons sprite image - enabled state */
-}
-
-/**** ICONS *****/
-
-.nihilo .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsEnabled.png'); /* editor icons sprite image - enabled state */
- background-repeat: no-repeat;
- width: 18px;
- height: 18px;
- text-align: center;
-}
-.nihilo .dijitDisabled .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsDisabled.png'); /* editor icons sprite image - disabled state */
-}
+.nihilo .dijitToolbar .dijitToolbarSeparator {background: url('../../icons/images/editorIconsEnabled.png');}.nihilo .dijitEditorIcon {background-image: url('../../icons/images/editorIconsEnabled.png'); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.nihilo .dijitDisabled .dijitEditorIcon {background-image: url('../../icons/images/editorIconsDisabled.png');} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Editor_rtl.css b/lib/dijit/themes/nihilo/Editor_rtl.css
index ca1cc0c86..8b92c7dd3 100644
--- a/lib/dijit/themes/nihilo/Editor_rtl.css
+++ b/lib/dijit/themes/nihilo/Editor_rtl.css
@@ -1,9 +1 @@
-/* Editor */
-.dijitRtl .nihilo .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsEnabled_rtl.png'); /* editor icons sprite image - enabled state */
-}
-.dijitRtl .nihilo .dijitDisabled .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsDisabled_rtl.png'); /* editor icons sprite image - disabled state */
-}
-
-
+.dijitRtl .nihilo .dijitEditorIcon {background-image: url('../../icons/images/editorIconsEnabled_rtl.png');}.dijitRtl .nihilo .dijitDisabled .dijitEditorIcon {background-image: url('../../icons/images/editorIconsDisabled_rtl.png');} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Menu.css b/lib/dijit/themes/nihilo/Menu.css
index 1a8ec139e..d9517defe 100644
--- a/lib/dijit/themes/nihilo/Menu.css
+++ b/lib/dijit/themes/nihilo/Menu.css
@@ -1,78 +1 @@
-
-/* Menu */
-.nihilo .dijitMenu,
-.nihilo .dijitMenuBar {
- border: 1px solid #d3d3d3;
- margin: 0;
- padding: 0;
- background-color: #fff;
-}
-
-.nihilo .dijitBorderContainer .dijitMenuBar {
- border: 1px #ccc solid;
-}
-
-.nihilo .dijitMenuItem {
- font-family: sans-serif;
- margin: 0;
- color: #243C5F;
-}
-.nihilo .dijitMenuBar .dijitMenuItem {
- padding: 4px 5px;
-}
-
-.nihilo .dijitMenuPreviousButton, .nihilo .dijitMenuNextButton {
- font-style: italic;
-}
-.nihilo .dijitMenuItem TD {
- padding:1px;
-}
-
-.nihilo .dijitMenuPassive .dijitMenuItemHover,
-.nihilo .dijitComboBoxMenu .dijitMenuItemHover,
-.nihilo .dijitMenuItemSelected {
- background-color: #ffe284; /* #95a0b0; #555555; #aaaaaa; #646464; #60a1ea; #848484; */
- color: #243C5F;
-}
-
-.nihilo .dijitMenuItemIcon {
- width: 15px;
- height: 15px;
-}
-
-.nihilo .dijitMenuExpand {
- width:15px;
- height:15px;
- background-image: url('images/spriteRoundedIconsSmall.png');
- background-position: -30px top;
-}
-.dj_ie6 .nihilo .dijitMenuExpand {
- background-image:url('images/spriteRoundedIconsSmall.gif');
-}
-
-.nihilo .dijitMenuSeparator {
- height: 1px;
-}
-
-/* separator can be two pixels -- set border of either one to 0 to have only one */
-.nihilo .dijitMenuSeparatorTop {
- border-bottom: 1px solid #fff; /*97adcb; */
-}
-
-.nihilo .dijitMenuSeparatorBottom {
- border-top: 1px solid #d3d3d3;
-}
-
-/* the checked menu item */
-.nihilo .dijitCheckedMenuItemIconChar {
- display: none;
-}
-
-.nihilo .dijitCheckedMenuItemIcon {
- background-image: url('images/spriteCheckbox.gif');
- background-position: -80px;
-}
-
-.nihilo .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {
- background-position: -64px;
-} \ No newline at end of file
+.nihilo .dijitMenu,.nihilo .dijitMenuBar {border: 1px solid #d3d3d3; margin: 0; padding: 0; background-color: #fff;}.nihilo .dijitBorderContainer .dijitMenuBar {border: 1px #ccc solid;}.nihilo .dijitMenuItem {font-family: sans-serif; margin: 0; color: #243C5F;}.nihilo .dijitMenuBar .dijitMenuItem {padding: 4px 5px;}.nihilo .dijitMenuPreviousButton, .nihilo .dijitMenuNextButton {font-style: italic;}.nihilo .dijitMenuItem TD {padding:1px;}.nihilo .dijitMenuPassive .dijitMenuItemHover,.nihilo .dijitComboBoxMenu .dijitMenuItemHover,.nihilo .dijitMenuItemSelected {background-color: #ffe284; color: #243C5F;}.nihilo .dijitMenuItemIcon {width: 15px; height: 15px;}.nihilo .dijitMenuExpand {width:15px; height:15px; background-image: url('images/spriteRoundedIconsSmall.png'); background-position: -30px top;}.dj_ie6 .nihilo .dijitMenuExpand {background-image:url('images/spriteRoundedIconsSmall.gif');}.nihilo .dijitMenuSeparator {height: 1px;}.nihilo .dijitMenuSeparatorTop {border-bottom: 1px solid #fff;}.nihilo .dijitMenuSeparatorBottom {border-top: 1px solid #d3d3d3;}.nihilo .dijitCheckedMenuItemIconChar {display: none;}.nihilo .dijitCheckedMenuItemIcon {background-image: url('images/spriteCheckbox.gif'); background-position: -80px;}.nihilo .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: -64px;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Menu_rtl.css b/lib/dijit/themes/nihilo/Menu_rtl.css
index 40b3b4124..b560e460b 100644
--- a/lib/dijit/themes/nihilo/Menu_rtl.css
+++ b/lib/dijit/themes/nihilo/Menu_rtl.css
@@ -1,10 +1 @@
-/* Menu */
-
-.dijitRtl .nihilo .dijitMenuItem .dijitMenuItemIcon {
- padding-left: 3px;
- padding-right: 0;
-}
-
-.dijitRtl .nihilo .dijitMenuItem .dijitMenuExpand {
- background-position: 0 top;
-} \ No newline at end of file
+.dijitRtl .nihilo .dijitMenuItem .dijitMenuItemIcon {padding-left: 3px; padding-right: 0;}.dijitRtl .nihilo .dijitMenuItem .dijitMenuExpand {background-position: 0 top;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/ProgressBar.css b/lib/dijit/themes/nihilo/ProgressBar.css
index 6c50a7ef6..68089ce88 100644
--- a/lib/dijit/themes/nihilo/ProgressBar.css
+++ b/lib/dijit/themes/nihilo/ProgressBar.css
@@ -1,33 +1 @@
-
-/****
- dijit.ProgressBar
- ****/
-
-.nihilo .dijitProgressBar {
- margin:2px 0 2px 0;
-}
-
-.nihilo .dijitProgressBarEmpty{
- /* outer container and background of the bar that's not finished yet*/
- background:#fff url("images/progressBarEmpty.png") repeat-x center center;
- border-color: #f8d582 #f8d582 #f8d582 #f8d582;
-}
-
-.nihilo .dijitProgressBarTile{
- /* inner container for finished portion when in 'tile' (image) mode */
- background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center;
-}
-
-.nihilo .dijitProgressBarFull {
- border-right:1px solid #f8d582;
-}
-
-.nihilo .dijitProgressBarLabel {
- /* Set to a color that contrasts with both the "Empty" and "Full" parts. */
- color:#293a4b;
-}
-
-.nihilo .dijitProgressBarIndeterminate .dijitProgressBarTile {
- /* use an animated gif for the progress bar in 'indeterminate' mode */
- background:#cad2de url("images/progressBarAnim.gif") repeat-x center center;
-} \ No newline at end of file
+.nihilo .dijitProgressBar {margin:2px 0 2px 0;}.nihilo .dijitProgressBarEmpty{background:#fff url("images/progressBarEmpty.png") repeat-x center center; border-color: #f8d582 #f8d582 #f8d582 #f8d582;}.nihilo .dijitProgressBarTile{background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center;}.nihilo .dijitProgressBarFull {border-right:1px solid #f8d582;}.nihilo .dijitProgressBarLabel {color:#293a4b;}.nihilo .dijitProgressBarIndeterminate .dijitProgressBarTile {background:#cad2de url("images/progressBarAnim.gif") repeat-x center center;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/TimePicker.css b/lib/dijit/themes/nihilo/TimePicker.css
index cffdbf55f..cb8737aea 100644
--- a/lib/dijit/themes/nihilo/TimePicker.css
+++ b/lib/dijit/themes/nihilo/TimePicker.css
@@ -1,51 +1 @@
-/* Time Picker */
-.nihilo .dijitTimePickerTick,
-.nihilo .dijitTimePickerMarker {
- border-color: #eeeeee;
-}
-
-.nihilo .dijitTimePickerTick {
- color:white;
-}
-
-.nihilo .dijitTimePickerMarker {
- background:#d3d3d3 url("images/titleBar.png") repeat-x top;
- color:#293a4b;
- font-weight: bold;
-}
-
-.nihilo .dijitTimePickerItemSelected {
- color: black;
- background: #ffe284 none;
-}
-
-.nihilo .dijitTimePickerItemHover {
- background: #d6d6dd none;
- color:black;
-}
-
-.nihilo .dijitTimePickerItemHover,
-.nihilo .dijitTimePickerItemSelected {
- position: relative;
- z-index: 10;
-}
-
-.nihilo .dijitTimePickerTick .dijitTimePickerItemInner {
- font-size:0.4em;
-}
-
-.nihilo .dijitTimePickerItemHover .dijitTimePickerItemInner,
-.nihilo .dijitTimePickerItemSelected .dijitTimePickerItemInner {
- font-size:1em;
-}
-
-.nihilo .dijitTimePickerMarkerHover {
- border-top: 1px solid #eeeeee;
-}
-
-.nihilo .dijitTimePickerTickHover,
-.nihilo .dijitTimePickerTickSelected {
- margin-top:-0.3em;
- margin-bottom:-0.3em;
- border-bottom: none;
-} \ No newline at end of file
+.nihilo .dijitTimePickerTick,.nihilo .dijitTimePickerMarker {border-color: #eeeeee;}.nihilo .dijitTimePickerTick {color:white;}.nihilo .dijitTimePickerMarker {background:#d3d3d3 url("images/titleBar.png") repeat-x top; color:#293a4b; font-weight: bold;}.nihilo .dijitTimePickerItemSelected {color: black; background: #ffe284 none;}.nihilo .dijitTimePickerItemHover {background: #d6d6dd none; color:black;}.nihilo .dijitTimePickerItemHover,.nihilo .dijitTimePickerItemSelected {position: relative; z-index: 10;}.nihilo .dijitTimePickerTick .dijitTimePickerItemInner {font-size:0.4em;}.nihilo .dijitTimePickerItemHover .dijitTimePickerItemInner,.nihilo .dijitTimePickerItemSelected .dijitTimePickerItemInner {font-size:1em;}.nihilo .dijitTimePickerMarkerHover {border-top: 1px solid #eeeeee;}.nihilo .dijitTimePickerTickHover,.nihilo .dijitTimePickerTickSelected {margin-top:-0.3em; margin-bottom:-0.3em; border-bottom: none;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/TimePicker_rtl.css b/lib/dijit/themes/nihilo/TimePicker_rtl.css
index 50848c3fb..71723eb46 100644
--- a/lib/dijit/themes/nihilo/TimePicker_rtl.css
+++ b/lib/dijit/themes/nihilo/TimePicker_rtl.css
@@ -1,4 +1 @@
-.dj_ie6-rtl .nihilo .dijitTimePickerMarkerHover,
-.dj_ie7-rtl .nihilo .dijitTimePickerMarkerHover {
- border-top: 0; /* IE6/7 bug causes mouseover/out event storm */
-}
+.dj_ie6-rtl .nihilo .dijitTimePickerMarkerHover,.dj_ie7-rtl .nihilo .dijitTimePickerMarkerHover {border-top: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/TitlePane.css b/lib/dijit/themes/nihilo/TitlePane.css
index 6d16ff940..2e7ed9258 100644
--- a/lib/dijit/themes/nihilo/TitlePane.css
+++ b/lib/dijit/themes/nihilo/TitlePane.css
@@ -1,54 +1 @@
-/**
- * dijit.TitlePane
- *
- */
-
-.nihilo .dijitTitlePaneTitle {
- background: #cccccc;
- background:#fff url("images/titleBar.png") repeat-x top left;
- border:1px solid #bfbfbf;
- padding:3px 4px;
- font-size: 0.9em;
- font-weight: bold;
- color: #6d6d6d;
-}
-.nihilo .dijitTitlePaneTitleHover {
- background: #f9f9f9 url("images/accordionItemActive.png") top repeat-x;
-}
-
-.nihilo .dijitTitlePane .dijitOpen .dijitArrowNode,
-.nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {
- width:15px;
- height:15px;
-}
-
-.nihilo .dijitTitlePaneTextNode {
- color: #243C5F;
-}
-
-.nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {
- background: url('images/spriteRoundedIconsSmall.png') no-repeat -30px top;
-}
-.dj_ie6 .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {
- background:url('images/spriteRoundedIconsSmall.gif') no-repeat -30px top;
-}
-.nihilo .dijitTitlePane .dijitOpen .dijitArrowNode {
- background:url('images/spriteRoundedIconsSmall.png') no-repeat -15px top;
-}
-.dj_ie6 .nihilo .dijitTitlePane .dijitOpen .dijitArrowNode {
- background:url('images/spriteRoundedIconsSmall.gif') no-repeat -15px top;
-}
-
-.nihilo .dijitTitlePaneContentOuter {
- background: #ffffff;
- border:1px solid #bfbfbf;
- border-top: 0;
-}
-.nihilo .dijitTitlePaneContentInner {
- padding:10px;
-}
-
-.nihilo .dijitTitlePaneTextNode {
- margin-left: 4px;
- margin-right: 4px;
-} \ No newline at end of file
+.nihilo .dijitTitlePaneTitle {background: #cccccc; background:#fff url("images/titleBar.png") repeat-x top left; border:1px solid #bfbfbf; padding:3px 4px; font-size: 0.9em; font-weight: bold; color: #6d6d6d;}.nihilo .dijitTitlePaneTitleHover {background: #f9f9f9 url("images/accordionItemActive.png") top repeat-x;}.nihilo .dijitTitlePane .dijitOpen .dijitArrowNode,.nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {width:15px; height:15px;}.nihilo .dijitTitlePaneTextNode {color: #243C5F;}.nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {background: url('images/spriteRoundedIconsSmall.png') no-repeat -30px top;}.dj_ie6 .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {background:url('images/spriteRoundedIconsSmall.gif') no-repeat -30px top;}.nihilo .dijitTitlePane .dijitOpen .dijitArrowNode {background:url('images/spriteRoundedIconsSmall.png') no-repeat -15px top;}.dj_ie6 .nihilo .dijitTitlePane .dijitOpen .dijitArrowNode {background:url('images/spriteRoundedIconsSmall.gif') no-repeat -15px top;}.nihilo .dijitTitlePaneContentOuter {background: #ffffff; border:1px solid #bfbfbf; border-top: 0;}.nihilo .dijitTitlePaneContentInner {padding:10px;}.nihilo .dijitTitlePaneTextNode {margin-left: 4px; margin-right: 4px;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/TitlePane_rtl.css b/lib/dijit/themes/nihilo/TitlePane_rtl.css
index 7b3ba21f2..405c57dea 100644
--- a/lib/dijit/themes/nihilo/TitlePane_rtl.css
+++ b/lib/dijit/themes/nihilo/TitlePane_rtl.css
@@ -1,6 +1 @@
-.dijitRtl .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {
- background-position: 0 top;
-}
-.dj_ie6-rtl .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {
- background-position: 0 top;
-} \ No newline at end of file
+.dijitRtl .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: 0 top;}.dj_ie6-rtl .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: 0 top;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Toolbar.css b/lib/dijit/themes/nihilo/Toolbar.css
index 1c3e32702..838316e3d 100644
--- a/lib/dijit/themes/nihilo/Toolbar.css
+++ b/lib/dijit/themes/nihilo/Toolbar.css
@@ -1,65 +1 @@
-.nihilo .dijitToolbar {
- border-bottom: 1px solid #ccc;
- background:#eaeaea url("images/titleBar.png") repeat-x top left;
-}
-
-/* setting a min-height on ditor toolbar */
-.dj_ie6 .nihilo .dijitToolbar {
- height: 10px;
-}
-
-.nihilo .dijitToolbar .dijitButtonNode,
-.nihilo .dijitToolbar .dijitComboButton .dijitButtonContents,
-.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButton {
- background: none;
- margin: 0;
- padding: 0;
- border: none;
- font-size: 12px;
-}
-
-.nihilo .dijitToolbar .dijitButton,
-.nihilo .dijitToolbar .dijitToggleButton,
-.nihilo .dijitToolbar .dijitDropDownButton,
-.nihilo .dijitToolbar .dijitComboButton .dijitButtonContents,
-.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButton {
- background: none;
- padding: 1px; /* on hover etc., margin replaced w/border */
-}
-
-.nihilo .dijitToolbar .dijitButtonChecked,
-.nihilo .dijitToolbar .dijitToggleButtonChecked {
- background-color:#ffeeb9;
- border:1px solid #f7c95c;
- padding: 0;
-}
-
-.nihilo .dijitToolbar .dijitButtonCheckedHover,
-.nihilo .dijitToolbar .dijitToggleButtonCheckedHover
- {
- background-color:#ffe284;
- border:1px solid #f7c95c;
- padding: 0;
-}
-
-.nihilo .dijitToolbar .dijitButtonHover,
-.nihilo .dijitToolbar .dijitToggleButtonHover,
-.nihilo .dijitToolbar .dijitDropDownButtonHover,
-.nihilo .dijitToolbar .dijitComboButton .dijitButtonContentsHover,
-.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover {
- /* TODO: change this from Hover to Selected so that button is still highlighted while drop down is being used */
- border: 1px solid #f7c95c;
- padding: 0;
- background-color:#ffe284;
-}
-
-.nihilo .dijitToolbar label {
- padding: 3px 3px 0 6px;
-}
-
-.dj_ie .nihilo .dijitToolbar .dijitComboButton .dijitButtonContentsFocused,
-.dj_ie .nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused {
- /* focus border doesn't appear on <td> for IE, so need to add it manually */
- border: 1px #555 dotted !important;
- padding: 0;
-} \ No newline at end of file
+.nihilo .dijitToolbar {border-bottom: 1px solid #ccc; background:#eaeaea url("images/titleBar.png") repeat-x top left;}.dj_ie6 .nihilo .dijitToolbar {height: 10px;}.nihilo .dijitToolbar .dijitButtonNode,.nihilo .dijitToolbar .dijitComboButton .dijitButtonContents,.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; margin: 0; padding: 0; border: none; font-size: 12px;}.nihilo .dijitToolbar .dijitButton,.nihilo .dijitToolbar .dijitToggleButton,.nihilo .dijitToolbar .dijitDropDownButton,.nihilo .dijitToolbar .dijitComboButton .dijitButtonContents,.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; padding: 1px;}.nihilo .dijitToolbar .dijitButtonChecked,.nihilo .dijitToolbar .dijitToggleButtonChecked {background-color:#ffeeb9; border:1px solid #f7c95c; padding: 0;}.nihilo .dijitToolbar .dijitButtonCheckedHover,.nihilo .dijitToolbar .dijitToggleButtonCheckedHover {background-color:#ffe284; border:1px solid #f7c95c; padding: 0;}.nihilo .dijitToolbar .dijitButtonHover,.nihilo .dijitToolbar .dijitToggleButtonHover,.nihilo .dijitToolbar .dijitDropDownButtonHover,.nihilo .dijitToolbar .dijitComboButton .dijitButtonContentsHover,.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover {border: 1px solid #f7c95c; padding: 0; background-color:#ffe284;}.nihilo .dijitToolbar label {padding: 3px 3px 0 6px;}.dj_ie .nihilo .dijitToolbar .dijitComboButton .dijitButtonContentsFocused,.dj_ie .nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused {border: 1px #555 dotted !important; padding: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Tree.css b/lib/dijit/themes/nihilo/Tree.css
index a33b9696e..782ace0ed 100644
--- a/lib/dijit/themes/nihilo/Tree.css
+++ b/lib/dijit/themes/nihilo/Tree.css
@@ -1,100 +1 @@
-/* Tree */
-
-.nihilo .dijitTreeNode {
- background : url('images/treeI.gif') no-repeat;
- background-position : top left;
- background-repeat : repeat-y;
- zoom: 1;
-}
-
-/* left vertical line (grid) for all nodes */
-.nihilo .dijitTreeIsLast {
- background: url('images/treeI_half.gif') no-repeat;
-}
-
-.nihilo .dijitTreeRowHover {
- /* using a transparent png so that we can still see grid lines, which are (unfortunately) behind the dijitRowNode that we are hovering over */
- background-image: url(images/treeHover.png);
- background-repeat: repeat;
- background-color: transparent !important;
-}
-
-.nihilo .dijitTreeLabel {
- font-weight: normal;
- margin-left: 3px;
-}
-
-.nihilo .dijitTreeIsRoot {
- margin-left: 0;
- background-image: none;
-}
-
-.nihilo .dijitTreeExpando {
- width: 18px;
- height: 18px;
-}
-
-.nihilo .dijitTreeRow {
- /* so insert line shows up on IE when dropping after a target element */
- padding-bottom: 2px;
-}
-
-.nihilo .dijitTreeContent {
- min-height: 18px;
- min-width: 18px;
- padding-left:1px;
-}
-
-.nihilo .dijitTreeExpandoOpened {
- background: url('images/spriteTree.gif') no-repeat -18px top;
-}
-
-.nihilo .dijitTreeExpandoClosed {
- background-image: url('images/spriteTree.gif');
-}
-
-.nihilo .dijitTreeExpandoLeaf {
- background: url('images/spriteTree.gif') no-repeat -36px top;
-}
-
-.nihilo .dijitTreeExpandoLoading {
- background-image: url('images/treeExpand_loading.gif');
-}
-
-.nihilo .dijitTreeIcon {
- width: 16px;
- height: 16px;
-}
-
-.nihilo .dijitFolderOpened {
- background: url('images/spriteDivIcons.gif') no-repeat -16px top;
-}
-
-.nihilo .dijitFolderClosed {
- background: url('images/spriteDivIcons.gif') no-repeat top left;
-}
-
-.nihilo .dijitLeaf {
- background: url('images/spriteDivIcons.gif') no-repeat -32px top;
-}
-
-/* Drag and Drop on TreeNodes
- * Put insert line on dijitTreeContent node so it's aligned w/
- * (ie, indented equally with) target element, even
- * though dijitTreeRowNode is the actual "drag object"
- */
-.nihilo .dijitTreeNode .dojoDndItemBefore,
-.nihilo .dijitTreeNode .dojoDndItemAfter {
- border-bottom: none;
- border-top: none;
-}
-
-.nihilo .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {
- /* copied from Common.css */
- border-top: 2px solid #369;
-}
-
-.nihilo .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {
- /* copied from Common.css */
- border-bottom: 2px solid #369;
-} \ No newline at end of file
+.nihilo .dijitTreeNode {background : url('images/treeI.gif') no-repeat; background-position : top left; background-repeat : repeat-y; zoom: 1;}.nihilo .dijitTreeIsLast {background: url('images/treeI_half.gif') no-repeat;}.nihilo .dijitTreeRowHover {background-image: url(images/treeHover.png); background-repeat: repeat; background-color: transparent !important;}.nihilo .dijitTreeLabel {font-weight: normal; margin-left: 3px;}.nihilo .dijitTreeIsRoot {margin-left: 0; background-image: none;}.nihilo .dijitTreeExpando {width: 18px; height: 18px;}.nihilo .dijitTreeRow {padding-bottom: 2px;}.nihilo .dijitTreeContent {min-height: 18px; min-width: 18px; padding-left:1px;}.nihilo .dijitTreeExpandoOpened {background: url('images/spriteTree.gif') no-repeat -18px top;}.nihilo .dijitTreeExpandoClosed {background-image: url('images/spriteTree.gif');}.nihilo .dijitTreeExpandoLeaf {background: url('images/spriteTree.gif') no-repeat -36px top;}.nihilo .dijitTreeExpandoLoading {background-image: url('images/treeExpand_loading.gif');}.nihilo .dijitTreeIcon {width: 16px; height: 16px;}.nihilo .dijitFolderOpened {background: url('images/spriteDivIcons.gif') no-repeat -16px top;}.nihilo .dijitFolderClosed {background: url('images/spriteDivIcons.gif') no-repeat top left;}.nihilo .dijitLeaf {background: url('images/spriteDivIcons.gif') no-repeat -32px top;}.nihilo .dijitTreeNode .dojoDndItemBefore,.nihilo .dijitTreeNode .dojoDndItemAfter {border-bottom: none; border-top: none;}.nihilo .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {border-top: 2px solid #369;}.nihilo .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {border-bottom: 2px solid #369;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/Tree_rtl.css b/lib/dijit/themes/nihilo/Tree_rtl.css
index 4462ed1bf..03c30a35d 100644
--- a/lib/dijit/themes/nihilo/Tree_rtl.css
+++ b/lib/dijit/themes/nihilo/Tree_rtl.css
@@ -1,22 +1 @@
-/* Tree */
-
-.dijitRtl .nihilo .dijitTreeNode,
-.dijitRtl .nihilo .dijitTreeExpandoLeaf {
- /* disable grid lines for Tree in RTL mode, too hard to support */
- background-image: none;
-}
-
-.dijitRtl .nihilo .dijitTreeContent {
- padding-left: 0;
- padding-right: 1px;
-}
-
-.dijitRtl .nihilo .dijitTreeExpandoOpened {
- /* todo: icon contains grid line but grid lines disabled above */
- background: url('images/spriteTree_rtl.gif') no-repeat -18px top;
-}
-
-.dijitRtl .nihilo .dijitTreeExpandoClosed {
- /* todo: icon contains grid line but grid lines disabled above */
- background-image: url('images/spriteTree_rtl.gif');
-}
+.dijitRtl .nihilo .dijitTreeNode,.dijitRtl .nihilo .dijitTreeExpandoLeaf {background-image: none;}.dijitRtl .nihilo .dijitTreeContent {padding-left: 0; padding-right: 1px;}.dijitRtl .nihilo .dijitTreeExpandoOpened {background: url('images/spriteTree_rtl.gif') no-repeat -18px top;}.dijitRtl .nihilo .dijitTreeExpandoClosed {background-image: url('images/spriteTree_rtl.gif');} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/form/Button.css b/lib/dijit/themes/nihilo/form/Button.css
index 90e1ee2cc..3b5d0a0d5 100644
--- a/lib/dijit/themes/nihilo/form/Button.css
+++ b/lib/dijit/themes/nihilo/form/Button.css
@@ -1,129 +1 @@
-
-/*****
- dijit.form.Button
- dijit.form.DropDownButton
- dijit.form.ComboButton
- dijit.form.ComboBox (partial)
- dijit.form.Spinner (partial) (TODO: create NumberSpinner.css file like claro has)
- *****/
-
-.nihilo .dijitButtonNode {
- /* enabled state - inner */
- /* border:1px outset #a0a0a0; */
- border:1px solid #dedede;
- border-bottom:1px solid #dedede;
- padding: 0.1em 0.2em 0.2em 0.2em;
- background: #fff url("../images/buttonEnabled.png") repeat-x top left;
-}
-
-.nihilo .dijitSelect .dijitButtonContents {
- border-right: none;
-}
-
-.nihilo .dijitButtonText {
- text-align: center;
- padding: 0 0.3em;
-}
-
-.nihilo .dijitComboBox .dijitButtonNode {
- border-width: 0 0 0 1px;
-}
-
-.nihilo .dijitArrowButton {
- color: #111;
-}
-
-.nihilo .dijitComboButton .dijitDownArrowButton {
- padding-right:4px;
-}
-
-.nihilo .dijitComboBoxReadOnly,
-.nihilo .dijitSpinnerReadOnly,
-.nihilo .dijitSpinnerReadOnly .dijitButtonNode,
-.nihilo .dijitButtonDisabled .dijitButtonNode,
-.nihilo .dijitToggleButtonDisabled .dijitButtonNode,
-.nihilo .dijitDropDownButtonDisabled .dijitButtonNode,
-.nihilo .dijitComboButtonDisabled .dijitButtonNode,
-.nihilo .dijitComboBoxDisabled,
-.nihilo .dijitSpinnerDisabled,
-.nihilo .dijitSpinnerDisabled .dijitButtonNode {
- /* disabled state - inner */
- border-color: #dedede;
- background:#fafafa url("../images/buttonDisabled.png") top repeat-x;
- opacity: 0.60;
-}
-.dj_ie6 .nihilo .dijitReadOnly input,
-.dj_ie7 .nihilo .dijitReadOnly input,
-.dj_ie6 .nihilo .dijitComboButtonDisabled .dijitButtonText,
-.dj_ie7 .nihilo .dijitComboButtonDisabled .dijitButtonText {
- /* opacity doesn't work on table node in IE, work around here */
- color: #aaa;
-}
-
-
-.nihilo .dijitButtonHover .dijitButtonNode,
-.nihilo .dijitButtonNodeHover,
-.nihilo .dijitToggleButtonHover .dijitButtonNode,
-.nihilo .dijitDropDownButtonHover .dijitButtonNode,
-.nihilo .dijitButtonContentsHover,
-.nihilo .dijitDownArrowButtonHover,
-.nihilo .dijitUpArrowButtonHover {
- /* hover state - inner */
- /* TODO: change from Hover to Selected so that button is still highlighted while drop down is being used */
- color:#243C5F;
- background:#fcfcfc url("../images/buttonHover.png") repeat-x top left;
-}
-
-.nihilo .dijitUpArrowButtonActive,
-.nihilo .dijitDownArrowButtonActive,
-.nihilo .dijitButtonActive .dijitButtonNode,
-.nihilo .dijitToggleButtonActive .dijitButtonNode,
-.nihilo .dijitDropDownButtonActive .dijitButtonNode,
-.nihilo .dijitComboButton .dijitButtonContentsActive,
-.nihilo .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {
- /* active state - inner (for when you are pressing a normal button, or
- * when a radio-type button is in a depressed state
- */
- border-color:#dedede;
- background: #f5f5f5 url("../images/buttonActive.png") top left repeat-x;
-}
-
-
-.nihilo .dijitArrowButtonInner {
- background-image: url("../images/spriteArrows.png");
- background-repeat: no-repeat;
- background-position: 0 center;
- width: 11px;
- height: 11px;
-}
-.nihilo .dijitLeftArrowButton .dijitArrowButtonInner {
- background-position: -11px center;
-}
-.nihilo .dijitUpArrowButton .dijitArrowButtonInner {
- background-position: -22px center;
-}
-.nihilo .dijitRightArrowButton .dijitArrowButtonInner {
- background-position: -33px center;
-}
-.dj_ie6 .nihilo .dijitArrowButtonInner {
- background-image: url("../images/spriteArrows.gif");
-}
-.dj_webkit .nihilo .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner {
- margin-top: -1px; /* image has too many blank pixels on top */
-}
-.dj_ie .nihilo .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner {
- margin-top: 1px; /* image has too many blank pixels on top */
-}
-.nihilo .dijitSpinnerButtonContainer {
- width: auto;
- padding: 0;
-}
-.nihilo .dijitSpinner .dijitArrowButton {
- width: 15px;
-}
-.nihilo .dijitSpinner .dijitSpinnerButtonInner {
- width: 15px;
-}
-.nihilo .dijitSpinner .dijitArrowButtonInner .dijitInputField {
- padding: 0;
-}
+.nihilo .dijitButtonNode {border:1px solid #dedede; border-bottom:1px solid #dedede; padding: 0.1em 0.2em 0.2em 0.2em; background: #fff url("../images/buttonEnabled.png") repeat-x top left;}.nihilo .dijitButtonText {text-align: center; padding: 0 0.3em;}.nihilo .dijitInputField {padding: 0;}.nihilo .dijitComboBox .dijitButtonNode {border-width: 0 0 0 1px;}.nihilo .dijitArrowButton {color: #111;}.nihilo .dijitComboButton .dijitDownArrowButton {padding-right:4px;}.nihilo .dijitComboBoxReadOnly,.nihilo .dijitSpinnerReadOnly,.nihilo .dijitSpinnerReadOnly .dijitButtonNode,.nihilo .dijitButtonDisabled .dijitButtonNode,.nihilo .dijitToggleButtonDisabled .dijitButtonNode,.nihilo .dijitDropDownButtonDisabled .dijitButtonNode,.nihilo .dijitComboButtonDisabled .dijitButtonNode,.nihilo .dijitComboBoxDisabled,.nihilo .dijitSpinnerDisabled,.nihilo .dijitSpinnerDisabled .dijitButtonNode {border-color: #dedede; background:#fafafa url("../images/buttonDisabled.png") top repeat-x; opacity: 0.60;}.dj_ie6 .nihilo .dijitReadOnly input,.dj_ie7 .nihilo .dijitReadOnly input,.dj_ie6 .nihilo .dijitComboButtonDisabled .dijitButtonText,.dj_ie7 .nihilo .dijitComboButtonDisabled .dijitButtonText {color: #aaa;}.nihilo .dijitButtonHover .dijitButtonNode,.nihilo .dijitButtonNodeHover,.nihilo .dijitToggleButtonHover .dijitButtonNode,.nihilo .dijitDropDownButtonHover .dijitButtonNode,.nihilo .dijitButtonContentsHover,.nihilo .dijitDownArrowButtonHover,.nihilo .dijitUpArrowButtonHover {color:#243C5F; background:#fcfcfc url("../images/buttonHover.png") repeat-x top left;}.nihilo .dijitUpArrowButtonActive,.nihilo .dijitDownArrowButtonActive,.nihilo .dijitButtonActive .dijitButtonNode,.nihilo .dijitToggleButtonActive .dijitButtonNode,.nihilo .dijitDropDownButtonActive .dijitButtonNode,.nihilo .dijitComboButton .dijitButtonContentsActive,.nihilo .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {border-color:#dedede; background: #f5f5f5 url("../images/buttonActive.png") top left repeat-x;}.nihilo .dijitArrowButtonInner {background-image: url("../images/spriteArrows.png"); background-repeat: no-repeat; background-position: 0 center; width: 11px; height: 11px;}.nihilo .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -11px center;}.nihilo .dijitUpArrowButton .dijitArrowButtonInner {background-position: -22px center;}.nihilo .dijitRightArrowButton .dijitArrowButtonInner {background-position: -33px center;}.dj_ie6 .nihilo .dijitArrowButtonInner {background-image: url("../images/spriteArrows.gif");}.dj_webkit .nihilo .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner {margin-top: -1px;}.dj_ie .nihilo .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner {margin-top: 1px;}.nihilo .dijitSpinnerButtonContainer {width: auto; padding: 0;}.nihilo .dijitSpinner .dijitArrowButton {width: 15px;}.nihilo .dijitSpinner .dijitSpinnerButtonInner {width: 15px;}.nihilo .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/form/Button_rtl.css b/lib/dijit/themes/nihilo/form/Button_rtl.css
index 60d4c4da4..91e4fc9ef 100644
--- a/lib/dijit/themes/nihilo/form/Button_rtl.css
+++ b/lib/dijit/themes/nihilo/form/Button_rtl.css
@@ -1,8 +1 @@
-.dijitRtl .nihilo .dijitComboBox .dijitButtonNode {
- border-width: 0 0 0 1px;
-}
-.dijitRtl .nihilo .dijitSelect .dijitButtonContents {
- border-left: none;
- border-right-width: 1px;
-}
-
+.nihilo .dijitComboBoxRtl .dijitButtonNode {border-width: 0 0 0 1px;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/form/Checkbox.css b/lib/dijit/themes/nihilo/form/Checkbox.css
index 260666f99..71ecfc18e 100644
--- a/lib/dijit/themes/nihilo/form/Checkbox.css
+++ b/lib/dijit/themes/nihilo/form/Checkbox.css
@@ -1,67 +1 @@
-
-/*
- * CheckBox and Radio Widgets,
- * and the CSS to embed a checkbox or radio icon inside a ToggleButton.
- *
- * Order of images in the default sprite (from L to R, checkbox and radio in same image):
- * checkbox normal - checked
- * - unchecked
- * disabled - checked
- * - unchecked
- * hover - checked
- * - unchecked
- *
- * radio normal - checked
- * - unchecked
- * disabled - checked
- * - unchecked
- * hover - checked
- * - unchecked
-*/
-
-.nihilo .dijitToggleButton .dijitCheckBox,
-.nihilo .dijitToggleButton .dijitCheckBoxIcon {
- background-image: url('../images/spriteCheckbox.gif');
-}
-
-.nihilo .dijitCheckBox,
-.nihilo .dijitCheckBoxIcon { /* inside a toggle button */
- background-image: url('../images/spriteCheckbox.gif'); /* checkbox sprite image */
- background-repeat: no-repeat;
- width: 16px;
- height: 16px;
- margin: 0;
- padding: 0;
-}
-
-.nihilo .dijitCheckBox,
-.nihilo .dijitToggleButton .dijitCheckBoxIcon {
- /* unchecked */
- background-position: -16px;
-}
-
-.nihilo .dijitCheckBoxChecked,
-.nihilo .dijitToggleButtonChecked .dijitCheckBoxIcon {
- /* checked */
- background-position: 0;
-}
-
-.nihilo .dijitCheckBoxDisabled {
- /* disabled */
- background-position: -48px;
-}
-
-.nihilo .dijitCheckBoxCheckedDisabled {
- /* disabled but checked */
- background-position: -32px;
-}
-
-.nihilo .dijitCheckBoxHover {
- /* hovering over an unchecked enabled checkbox */
- background-position: -80px;
-}
-
-.nihilo .dijitCheckBoxCheckedHover {
- /* hovering over a checked enabled checkbox */
- background-position: -64px;
-} \ No newline at end of file
+.nihilo .dijitToggleButton .dijitCheckBox,.nihilo .dijitToggleButton .dijitCheckBoxIcon {background-image: url('../images/spriteCheckbox.gif');}.nihilo .dijitCheckBox,.nihilo .dijitCheckBoxIcon {background-image: url('../images/spriteCheckbox.gif'); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0; padding: 0;}.nihilo .dijitCheckBox,.nihilo .dijitToggleButton .dijitCheckBoxIcon {background-position: -16px;}.nihilo .dijitCheckBoxChecked,.nihilo .dijitToggleButtonChecked .dijitCheckBoxIcon {background-position: 0;}.nihilo .dijitCheckBoxDisabled {background-position: -48px;}.nihilo .dijitCheckBoxCheckedDisabled {background-position: -32px;}.nihilo .dijitCheckBoxHover {background-position: -80px;}.nihilo .dijitCheckBoxCheckedHover {background-position: -64px;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/form/Common.css b/lib/dijit/themes/nihilo/form/Common.css
index b67195f4b..d92dd9958 100644
--- a/lib/dijit/themes/nihilo/form/Common.css
+++ b/lib/dijit/themes/nihilo/form/Common.css
@@ -1,74 +1 @@
-
-/****
- dijit.form.TextBox
- dijit.form.ValidationTextBox
- dijit.form.SerializableTextBox
- dijit.form.RangeBoundTextBox
- dijit.form.NumberTextBox
- dijit.form.CurrencyTextBox
- dijit.form.NumberSpinner
- dijit.form.ComboBox (partial)
- ****/
-
-.nihilo .dijitInputContainer input,
-.nihilo .dijitTextBox {
- margin: 0 0.1em;
-}
-
-.nihilo .dijitTextBox,
-.nihilo .dijitTextArea {
- /* For all except dijit.form.NumberSpinner: the actual input element.
- For TextBox, ComboBox, Spinner: the table that contains the input.
- Otherwise the actual input element.
- */
- background:#fff url("../images/validationInputBg.png") repeat-x top left;
- #background:#fff url('../images/validationInputBg.gif') repeat-x top left;
- border:1px solid #d3d3d3;
-}
-
-.nihilo .dijitComboBox .dijitButtonNode {
- padding: 0 0.2em !important;
-}
-.nihilo .dijitTextBox .dijitButtonNode {
- /* line between the input area and the drop down button */
- border-color: #d3d3d3;
-}
-
-.nihilo .dijitTextBoxFocused,
-.nihilo .dijitTextAreaFocused {
- /* input field when focused (ie: typing affects it) */
- border-color:#b3b3b3;
-}
-.nihilo .dijitTextBoxFocused .dijitButtonNode,
-.nihilo .dijitSpinner .dijitUpArrowButtonActive,
-.nihilo .dijitSpinner .dijitDownArrowButtonActive {
- border-left-color:#d3d3d3;
-}
-.nihilo .dijitSpinnerFocused .dijitDownArrowButton,
-.nihilo .dijitSpinner .dijitUpArrowButtonActive,
-.nihilo .dijitSpinner .dijitDownArrowButtonActive {
- border-top-color:#d3d3d3;
-}
-
-.nihilo .dijitError {
- border-color:#b3b3b3;
- background-color:#f9f7ba;
- background-image:none;
-}
-
-.nihilo .dijitErrorFocused {
- background-color:#ff6;
- background-image:none;
-}
-
-/* Validation errors */
-.nihilo .dijitValidationIcon {
- /* prevent height change when widget goes from valid to invalid state */
- width: 16px;
- background: transparent url('../images/warning.png') no-repeat center center;
-}
-
-/* The highlight is shown in the ComboBox menu. */
-.nihilo .dijitComboBoxHighlightMatch {
- background-color:#d3d3d3;
-}
+.nihilo .dijitInputContainer input {margin: 0 0.1em;}.nihilo .dijitSelect .dijitButtonContents,.nihilo .dijitSelect,.nihilo .dijitTextBox,.nihilo .dijitTextArea {background:#fff url("../images/validationInputBg.png") repeat-x top left; #background:#fff url('../images/validationInputBg.gif') repeat-x top left;}.nihilo .dijitSelect,.nihilo .dijitTextBox,.nihilo .dijitTextArea {border:1px solid #d3d3d3;}.nihilo .dijitSelect .dijitArrowButton,.nihilo .dijitComboBox .dijitButtonNode {padding: 0 0.2em;}.nihilo .dijitSelect .dijitButtonContents,.nihilo .dijitTextBox .dijitButtonNode {border-color: #d3d3d3;}.nihilo .dijitSelectFocused,.nihilo .dijitTextBoxFocused,.nihilo .dijitTextAreaFocused {border-color:#b3b3b3;}.nihilo .dijitSelectFocused TD,.nihilo .dijitTextBoxFocused .dijitButtonNode,.nihilo .dijitSpinner .dijitUpArrowButtonActive,.nihilo .dijitSpinner .dijitDownArrowButtonActive {border-color:#d3d3d3;}.nihilo .dijitSpinnerFocused .dijitDownArrowButton,.nihilo .dijitSpinner .dijitUpArrowButtonActive,.nihilo .dijitSpinner .dijitDownArrowButtonActive {border-top-color:#d3d3d3;}.nihilo .dijitError {border-color:#b3b3b3; background-color:#f9f7ba; background-image:none;}.nihilo .dijitErrorFocused {background-color:#ff6; background-image:none;}.nihilo .dijitValidationTextBoxError .dijitValidationIcon {width: 16px; background: transparent url('../images/warning.png') no-repeat center center;}.nihilo .dijitComboBoxHighlightMatch {background-color:#d3d3d3;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/form/RadioButton.css b/lib/dijit/themes/nihilo/form/RadioButton.css
index d0dba3020..d4dee0a46 100644
--- a/lib/dijit/themes/nihilo/form/RadioButton.css
+++ b/lib/dijit/themes/nihilo/form/RadioButton.css
@@ -1,66 +1 @@
-/*
- * CheckBox and Radio Widgets,
- * and the CSS to embed a checkbox or radio icon inside a ToggleButton.
- *
- * Order of images in the default sprite (from L to R, checkbox and radio in same image):
- * checkbox normal - checked
- * - unchecked
- * disabled - checked
- * - unchecked
- * hover - checked
- * - unchecked
- *
- * radio normal - checked
- * - unchecked
- * disabled - checked
- * - unchecked
- * hover - checked
- * - unchecked
-*/
-
-.nihilo .dijitToggleButton .dijitRadio,
-.nihilo .dijitToggleButton .dijitRadioIcon {
- background-image: url('../images/spriteRadio.gif');
-}
-
-.nihilo .dijitRadio,
-.nihilo .dijitRadioIcon { /* inside a toggle button */
- background-image: url('../images/spriteRadio.gif'); /* checkbox sprite image */
- background-repeat: no-repeat;
- width: 16px;
- height: 16px;
- margin: 0;
- padding: 0;
-}
-
-.nihilo .dijitRadio,
-.nihilo .dijitToggleButton .dijitRadioIcon {
- /* unselected */
- background-position: -16px;
-}
-
-.nihilo .dijitRadioChecked,
-.nihilo .dijitToggleButtonChecked .dijitRadioIcon {
- /* selected */
- background-position: 0;
-}
-
-.nihilo .dijitRadioDisabled {
- /* unselected and disabled */
- background-position: -48px;
-}
-
-.nihilo .dijitRadioCheckedDisabled {
- /* selected but disabled */
- background-position: -32px;
-}
-
-.nihilo .dijitRadioHover {
- /* hovering over an unselected enabled radio button */
- background-position: -80px;
-}
-
-.nihilo .dijitRadioCheckedHover {
- /* hovering over a selected enabled radio button */
- background-position: -64px;
-} \ No newline at end of file
+.nihilo .dijitToggleButton .dijitRadio,.nihilo .dijitToggleButton .dijitRadioIcon {background-image: url('../images/spriteRadio.gif');}.nihilo .dijitRadio,.nihilo .dijitRadioIcon {background-image: url('../images/spriteRadio.gif'); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0; padding: 0;}.nihilo .dijitRadio,.nihilo .dijitToggleButton .dijitRadioIcon {background-position: -16px;}.nihilo .dijitRadioChecked,.nihilo .dijitToggleButtonChecked .dijitRadioIcon {background-position: 0;}.nihilo .dijitRadioDisabled {background-position: -48px;}.nihilo .dijitRadioCheckedDisabled {background-position: -32px;}.nihilo .dijitRadioHover {background-position: -80px;}.nihilo .dijitRadioCheckedHover {background-position: -64px;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/form/Select.css b/lib/dijit/themes/nihilo/form/Select.css
index 61967e550..272986068 100644
--- a/lib/dijit/themes/nihilo/form/Select.css
+++ b/lib/dijit/themes/nihilo/form/Select.css
@@ -1,54 +1 @@
-.nihilo .dijitSelect .dijitButtonNode {
- padding: 0;
-}
-
-/* Make unselected "look" more like a text box and less like a button */
-.nihilo .dijitSelect .dijitButtonContents {
- padding-top: 1px;
- background:#fff url("../images/validationInputBg.png") repeat-x top left;
- #background:#fff url('../images/validationInputBg.gif') repeat-x top left;
-}
-.nihilo .dijitSelectHover .dijitButtonContents,
-.nihilo .dijitSelectActive .dijitButtonContents,
-.nihilo .dijitSelectOpened .dijitButtonContents,
-.nihilo .dijitSelectDisabled .dijitButtonContents,
-.nihilo .dijitSelectReadOnly .dijitButtonContents{
- background: transparent none;
-}
-.dj_ie .nihilo .dijitSelect .dijitButtonContents {
- padding-top: 0;
-}
-
-.nihilo .dijitSelect .dijitArrowButton {
- padding: 0 2px;
-}
-
-/* Mirror DropDownButton */
-.nihilo .dijitSelectDisabled .dijitButtonNode {
- border-color: #dedede;
- background:#fafafa url("../images/buttonDisabled.png") top repeat-x;
-}
-.dj_ie .nihilo .dijitSelectDisabled .dijitButtonNode * {
- filter: gray() alpha(opacity=50);
-}
-
-.nihilo .dijitSelectHover .dijitButtonNode {
- color:#000;
- background:#fcfcfc url("../images/buttonHover.png") repeat-x top left;
-}
-
-.nihilo .dijitSelectActive .dijitButtonNode,
-.nihilo .dijitSelectOpened .dijitButtonNode {
- border-color:#dedede;
- background: #f5f5f5 url("../images/buttonActive.png") top left repeat-x;
-}
-
-/* Make the menu look more combobox-like */
-.nihilo .dijitSelectMenu td {
- padding: 0;
-}
-.nihilo .dijitSelectMenu .dijitMenuItemLabel,
-.nihilo .dijitSelectMenu .dijitMenuArrowCell {
- padding: 0.1em 0.2em;
-}
-
+.nihilo .dijitSelectError .dijitButtonContents,.nihilo .dijitSelectHover .dijitArrowButton,.nihilo .dijitSelectActive .dijitArrowButton,.nihilo .dijitSelectOpened .dijitArrowButton,.nihilo .dijitSelectDisabled .dijitArrowButton,.nihilo .dijitSelectReadOnly .dijitArrowButton {background: transparent none;}.nihilo .dijitSelect .dijitArrowButton {background: #bcd5f0 url("../images/buttonEnabled.png") repeat-x top left; border-width: 0;}.nihilo .dijitSelectDisabled,.nihilo .dijitSelectDisabled TD {border-color: #dedede !important; background:#fafafa url("../images/buttonDisabled.png") top repeat-x;}.dj_ie .nihilo .dijitSelectDisabled TD * {filter: gray() alpha(opacity=50);}.nihilo .dijitSelectHover,.nihilo .dijitSelectHover TD {color:#000; background:#fcfcfc url("../images/buttonHover.png") repeat-x top left;}.nihilo .dijitSelectActive,.nihilo .dijitSelectOpened,.nihilo .dijitSelectActive TD,.nihilo .dijitSelectOpened TD {border-color:#dedede !important; background: #f5f5f5 url("../images/buttonActive.png") top left repeat-x;}.nihilo .dijitSelectMenu td {padding: 0;}.nihilo .dijitSelectMenu .dijitMenuItemLabel,.nihilo .dijitSelectMenu .dijitMenuArrowCell {padding: 0.1em 0.2em;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/form/Slider.css b/lib/dijit/themes/nihilo/form/Slider.css
index 16bcd0980..93cc9b269 100644
--- a/lib/dijit/themes/nihilo/form/Slider.css
+++ b/lib/dijit/themes/nihilo/form/Slider.css
@@ -1,141 +1 @@
-
-/****
- SLIDER
-****/
-
-.nihilo .dijitSliderProgressBarH {
- border-color: #aab0bb;
- background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;
-}
-
-.nihilo .dijitSliderProgressBarV {
- border-color: #aab0bb;
- background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;
-}
-
-.nihilo .dijitSliderFocused .dijitSliderProgressBarH,
-.nihilo .dijitSliderFocused .dijitSliderLeftBumper {
- background-image:url("../images/sliderFullFocus.png");
-}
-
-.nihilo .dijitSliderFocused .dijitSliderProgressBarV,
-.nihilo .dijitSliderFocused .dijitSliderBottomBumper {
- background-image:url("../images/sliderFullVerticalFocus.png");
-}
-
-.nihilo .dijitSliderRemainingBarV {
- border-color: #b4b4b4;
- background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y bottom left;
-}
-
-.nihilo .dijitSliderRemainingBarH {
- border-color: #b4b4b4;
- background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left;
-}
-
-.nihilo .dijitSliderBar {
- border-style: solid;
- outline:1px;
- /* border-color: #b4b4b4; */
-}
-.nihilo .dijitSliderFocused .dijitSliderBar {
- border-color:#727272;
-}
-
-.nihilo .dijitSliderImageHandleH {
- border:0;
- width:15px;
- height:18px;
- background:url("../images/preciseSliderThumb.png") no-repeat center top;
- #background:url("../images/preciseSliderThumb.gif") no-repeat center top;
-}
-.nihilo .dijitSliderFocused .dijitSliderImageHandleH {
- background-image:url("../images/preciseSliderThumbFocus.png");
- #background-image:url("../images/preciseSliderThumbFocus.gif");
-}
-
-.nihilo .dijitSliderLeftBumper {
- border-left-width: 1px;
- border-color: #aab0bb;
- background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;
-}
-
-.nihilo .dijitSliderRightBumper {
- background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left;
- border-color: #b4b4b4;
- border-right-width: 1px;
-}
-
-.nihilo .dijitSliderImageHandleV {
- border:0;
- width:20px;
- height:15px;
- background:url("../images/sliderThumb.png") no-repeat center center;
- #background:url("../images/sliderThumb.gif") no-repeat center center;
-}
-
-.nihilo .dijitSliderFocused .dijitSliderImageHandleV {
- background-image:url("../images/sliderThumbFocus.png");
- #background-image:url("../images/sliderThumbFocus.gif");
-}
-
-.nihilo .dijitSliderBottomBumper {
- border-bottom-width: 1px;
- border-color: #aab0bb;
- background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;
-}
-
-.nihilo .dijitSliderTopBumper {
- background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y top left;
- border-color: #b4b4b4;
- border-top-width: 1px;
-}
-
-.nihilo .dijitSliderIncrementIconH,
-.nihilo .dijitSliderIncrementIconV {
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat -45px top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -45px top;
- width:15px; height:15px;
-}
-.nihilo .dijitSliderIncrementIconH {
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top;
-}
-
-.nihilo .dijitSliderDecrementIconH,
-.nihilo .dijitSliderDecrementIconV {
- width:15px;
- height:15px;
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat -15px top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -15px top;
-}
-.nihilo .dijitSliderDecrementIconH {
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat 0 top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat 0 top;
-}
-
-.nihilo .dijitSliderButtonInner {
- visibility:hidden;
-}
-
-.nihilo .dijitSliderReadOnly *,
-.nihilo .dijitSliderDisabled * {
- border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5;
- color: #bdbdbd;
-}
-.nihilo .dijitSliderReadOnly .dijitSliderDecrementIconH,
-.nihilo .dijitSliderDisabled .dijitSliderDecrementIconH {
- background-position: 0 -15px;
-}
-.nihilo .dijitSliderReadOnly .dijitSliderIncrementIconH,
-.nihilo .dijitSliderDisabled .dijitSliderIncrementIconH {
- background-position: -30px -15px;
-}
-.nihilo .dijitSliderReadOnly .dijitSliderDecrementIconV,
-.nihilo .dijitSliderDisabled .dijitSliderDecrementIconV {
- background-position: -15px -15px;
-}
-.nihilo .dijitSliderReadOnly .dijitSliderIncrementIconV,
-.nihilo .dijitSliderDisabled .dijitSliderIncrementIconV {
- background-position: -45px -15px;
-} \ No newline at end of file
+.nihilo .dijitSliderProgressBarH {border-color: #aab0bb; background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;}.nihilo .dijitSliderProgressBarV {border-color: #aab0bb; background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;}.nihilo .dijitSliderFocused .dijitSliderProgressBarH,.nihilo .dijitSliderFocused .dijitSliderLeftBumper {background-image:url("../images/sliderFullFocus.png");}.nihilo .dijitSliderFocused .dijitSliderProgressBarV,.nihilo .dijitSliderFocused .dijitSliderBottomBumper {background-image:url("../images/sliderFullVerticalFocus.png");}.nihilo .dijitSliderRemainingBarV {border-color: #b4b4b4; background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y bottom left;}.nihilo .dijitSliderRemainingBarH {border-color: #b4b4b4; background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left;}.nihilo .dijitSliderBar {border-style: solid; outline:1px;}.nihilo .dijitSliderFocused .dijitSliderBar {border-color:#727272;}.nihilo .dijitSliderImageHandleH {border:0; width:15px; height:18px; background:url("../images/preciseSliderThumb.png") no-repeat center top; #background:url("../images/preciseSliderThumb.gif") no-repeat center top;}.nihilo .dijitSliderFocused .dijitSliderImageHandleH {background-image:url("../images/preciseSliderThumbFocus.png"); #background-image:url("../images/preciseSliderThumbFocus.gif");}.nihilo .dijitSliderLeftBumper {border-left-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;}.nihilo .dijitSliderRightBumper {background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left; border-color: #b4b4b4; border-right-width: 1px;}.nihilo .dijitSliderImageHandleV {border:0; width:20px; height:15px; background:url("../images/sliderThumb.png") no-repeat center center; #background:url("../images/sliderThumb.gif") no-repeat center center;}.nihilo .dijitSliderFocused .dijitSliderImageHandleV {background-image:url("../images/sliderThumbFocus.png"); #background-image:url("../images/sliderThumbFocus.gif");}.nihilo .dijitSliderBottomBumper {border-bottom-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;}.nihilo .dijitSliderTopBumper {background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y top left; border-color: #b4b4b4; border-top-width: 1px;}.nihilo .dijitSliderIncrementIconH,.nihilo .dijitSliderIncrementIconV {background:url('../images/spriteRoundedIconsSmall.png') no-repeat -45px top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -45px top; width:15px; height:15px;}.nihilo .dijitSliderIncrementIconH {background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top;}.nihilo .dijitSliderDecrementIconH,.nihilo .dijitSliderDecrementIconV {width:15px; height:15px; background:url('../images/spriteRoundedIconsSmall.png') no-repeat -15px top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -15px top;}.nihilo .dijitSliderDecrementIconH {background:url('../images/spriteRoundedIconsSmall.png') no-repeat 0 top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat 0 top;}.nihilo .dijitSliderButtonInner {visibility:hidden;}.nihilo .dijitSliderReadOnly *,.nihilo .dijitSliderDisabled * {border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; color: #bdbdbd;}.nihilo .dijitSliderReadOnly .dijitSliderDecrementIconH,.nihilo .dijitSliderDisabled .dijitSliderDecrementIconH {background-position: 0 -15px;}.nihilo .dijitSliderReadOnly .dijitSliderIncrementIconH,.nihilo .dijitSliderDisabled .dijitSliderIncrementIconH {background-position: -30px -15px;}.nihilo .dijitSliderReadOnly .dijitSliderDecrementIconV,.nihilo .dijitSliderDisabled .dijitSliderDecrementIconV {background-position: -15px -15px;}.nihilo .dijitSliderReadOnly .dijitSliderIncrementIconV,.nihilo .dijitSliderDisabled .dijitSliderIncrementIconV {background-position: -45px -15px;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/form/Slider_rtl.css b/lib/dijit/themes/nihilo/form/Slider_rtl.css
index 1523d4a96..7d8037fba 100644
--- a/lib/dijit/themes/nihilo/form/Slider_rtl.css
+++ b/lib/dijit/themes/nihilo/form/Slider_rtl.css
@@ -1,36 +1 @@
-
-/* Slider */
-
-.dijitRtl .nihilo .dijitSliderProgressBarH,
-.dijitRtl .nihilo .dijitSliderRemainingBarH,
-.dijitRtl .nihilo .dijitSliderLeftBumper,
-.dijitRtl .nihilo .dijitSliderRightBumper,
-.dijitRtl .nihilo .dijitSliderTopBumper {
- background-position: top right;
-}
-
-.dijitRtl .nihilo .dijitSliderProgressBarV,
-.dijitRtl .nihilo .dijitSliderRemainingBarV,
-.dijitRtl .nihilo .dijitSliderBottomBumper {
- background-position: bottom right;
-}
-
-.dijitRtl .nihilo .dijitSliderLeftBumper {
- border-left-width: 0;
- border-right-width: 1px;
-}
-
-.dijitRtl .nihilo .dijitSliderRightBumper {
- border-left-width: 1px;
- border-right-width: 0;
-}
-
-.dijitRtl .nihilo .dijitSliderIncrementIconH {
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat left top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat left top;
-}
-
-.dijitRtl .nihilo .dijitSliderDecrementIconH {
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top;
-}
+.dijitRtl .nihilo .dijitSliderProgressBarH,.dijitRtl .nihilo .dijitSliderRemainingBarH,.dijitRtl .nihilo .dijitSliderLeftBumper,.dijitRtl .nihilo .dijitSliderRightBumper,.dijitRtl .nihilo .dijitSliderTopBumper {background-position: top right;}.dijitRtl .nihilo .dijitSliderProgressBarV,.dijitRtl .nihilo .dijitSliderRemainingBarV,.dijitRtl .nihilo .dijitSliderBottomBumper {background-position: bottom right;}.dijitRtl .nihilo .dijitSliderLeftBumper {border-left-width: 0; border-right-width: 1px;}.dijitRtl .nihilo .dijitSliderRightBumper {border-left-width: 1px; border-right-width: 0;}.dijitRtl .nihilo .dijitSliderIncrementIconH {background:url('../images/spriteRoundedIconsSmall.png') no-repeat left top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat left top;}.dijitRtl .nihilo .dijitSliderDecrementIconH {background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/images/dndNoCopy.png b/lib/dijit/themes/nihilo/images/dndNoCopy.png
index 9bf9c3396..998c2f269 100644
--- a/lib/dijit/themes/nihilo/images/dndNoCopy.png
+++ b/lib/dijit/themes/nihilo/images/dndNoCopy.png
Binary files differ
diff --git a/lib/dijit/themes/nihilo/images/dndNoMove.png b/lib/dijit/themes/nihilo/images/dndNoMove.png
index cb8bd8bdd..e909173e0 100644
--- a/lib/dijit/themes/nihilo/images/dndNoMove.png
+++ b/lib/dijit/themes/nihilo/images/dndNoMove.png
Binary files differ
diff --git a/lib/dijit/themes/nihilo/images/tabBottomActiveSpriteLR.gif b/lib/dijit/themes/nihilo/images/tabBottomActiveSpriteLR.gif
deleted file mode 100644
index 6803db442..000000000
--- a/lib/dijit/themes/nihilo/images/tabBottomActiveSpriteLR.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/nihilo/images/tabBottomEnabledSpriteLR.gif b/lib/dijit/themes/nihilo/images/tabBottomEnabledSpriteLR.gif
deleted file mode 100644
index b6b08ce48..000000000
--- a/lib/dijit/themes/nihilo/images/tabBottomEnabledSpriteLR.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/nihilo/images/tabBottomHoverSpriteLR.gif b/lib/dijit/themes/nihilo/images/tabBottomHoverSpriteLR.gif
deleted file mode 100644
index 010b08ae9..000000000
--- a/lib/dijit/themes/nihilo/images/tabBottomHoverSpriteLR.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/nihilo/images/tabLeftChecked.gif b/lib/dijit/themes/nihilo/images/tabLeftChecked.gif
deleted file mode 100644
index d59fd4a5b..000000000
--- a/lib/dijit/themes/nihilo/images/tabLeftChecked.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/nihilo/images/tabRightChecked.gif b/lib/dijit/themes/nihilo/images/tabRightChecked.gif
deleted file mode 100644
index d32f44e3c..000000000
--- a/lib/dijit/themes/nihilo/images/tabRightChecked.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/nihilo/images/tabStripe.gif b/lib/dijit/themes/nihilo/images/tabStripe.gif
deleted file mode 100644
index a93467520..000000000
--- a/lib/dijit/themes/nihilo/images/tabStripe.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/nihilo/images/tabStripeBottom.gif b/lib/dijit/themes/nihilo/images/tabStripeBottom.gif
deleted file mode 100644
index 64c3376bd..000000000
--- a/lib/dijit/themes/nihilo/images/tabStripeBottom.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/nihilo/images/tabStripeLeft.gif b/lib/dijit/themes/nihilo/images/tabStripeLeft.gif
deleted file mode 100644
index d607a45f7..000000000
--- a/lib/dijit/themes/nihilo/images/tabStripeLeft.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/nihilo/images/tabStripeRight.gif b/lib/dijit/themes/nihilo/images/tabStripeRight.gif
deleted file mode 100644
index 9778cedf7..000000000
--- a/lib/dijit/themes/nihilo/images/tabStripeRight.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/nihilo/layout/AccordionContainer.css b/lib/dijit/themes/nihilo/layout/AccordionContainer.css
index f42db806c..b62a7c36f 100644
--- a/lib/dijit/themes/nihilo/layout/AccordionContainer.css
+++ b/lib/dijit/themes/nihilo/layout/AccordionContainer.css
@@ -1,46 +1 @@
-/**
- * dijit.layout.Accordioncontainer
- *
- */
-
-.nihilo .dijitAccordionContainer {
- border-color: #ccc;
- background-color: #fff;
-}
-
-/* common */
-
-.nihilo .dijitAccordionTitle {
- background:#fafafa url("../images/titleBar.png") repeat-x top left;
- border-top: 1px solid #dedede;
- padding: 5px 4px 6px 8px;
- font-size: 0.9em;
- font-weight: bold;
- color: #6d6d6d;
-}
-
-.nihilo .dijitAccordionTitleSelected {
- background: #f9f9f9 url("../images/accordionItemActive.png") top repeat-x;
- font-weight: bold;
- border-top: 1px solid #dedede;
- border-bottom: 1px solid #dedede;
- padding: 5px 4px 5px 8px;
- color: #243C5F;
-}
-
-.nihilo .dijitAccordionArrow {
- background:url("../images/spriteRoundedIconsSmall.gif") no-repeat -30px top;
- width:15px;
- height:15px;
- margin-top:-1px;
-}
-
-.nihilo .dijitAccordionTitleSelected .dijitAccordionArrow {
- background:url("../images/spriteRoundedIconsSmall.gif") no-repeat -15px top;
- margin-top:-1px;
-}
-
-.nihilo .dijitAccordionText {
- margin-left: 4px;
- margin-right: 4px;
-}
+.nihilo .dijitAccordionContainer {border-color: #ccc; background-color: #fff;}.nihilo .dijitAccordionTitle {background:#fafafa url("../images/titleBar.png") repeat-x top left; border-top: 1px solid #dedede; padding: 5px 4px 6px 8px; font-size: 0.9em; font-weight: bold; color: #6d6d6d;}.nihilo .dijitAccordionTitleSelected {background: #f9f9f9 url("../images/accordionItemActive.png") top repeat-x; font-weight: bold; border-top: 1px solid #dedede; border-bottom: 1px solid #dedede; padding: 5px 4px 5px 8px; color: #243C5F;}.nihilo .dijitAccordionArrow {background:url("../images/spriteRoundedIconsSmall.gif") no-repeat -30px top; width:15px; height:15px; margin-top:-1px;}.nihilo .dijitAccordionTitleSelected .dijitAccordionArrow {background:url("../images/spriteRoundedIconsSmall.gif") no-repeat -15px top; margin-top:-1px;}.nihilo .dijitAccordionText {margin-left: 4px; margin-right: 4px;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/layout/AccordionContainer_rtl.css b/lib/dijit/themes/nihilo/layout/AccordionContainer_rtl.css
index f669a4753..f47d59e39 100644
--- a/lib/dijit/themes/nihilo/layout/AccordionContainer_rtl.css
+++ b/lib/dijit/themes/nihilo/layout/AccordionContainer_rtl.css
@@ -1,8 +1 @@
-.dijitRtl .nihilo .dijitAccordionArrow {
- background-position: 0 top;
-}
-
-.dijitRtl .nihilo .dijitAccordionTitleSelected .dijitAccordionArrow {
- /* same rule as LTR mode, just listed to override previous rule in this file */
- background-position: -15px top;
-}
+.dijitRtl .nihilo .dijitAccordionArrow {background-position: 0 top;}.dijitRtl .nihilo .dijitAccordionTitleSelected .dijitAccordionArrow {background-position: -15px top;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/layout/BorderContainer.css b/lib/dijit/themes/nihilo/layout/BorderContainer.css
index 493da54e1..59bd065cc 100644
--- a/lib/dijit/themes/nihilo/layout/BorderContainer.css
+++ b/lib/dijit/themes/nihilo/layout/BorderContainer.css
@@ -1,76 +1 @@
-/**
- * dijit.layout.BorderContainer
- *
- */
-
-.nihilo .dijitBorderContainer {
- background-color: #fcfcfc;
- padding: 5px;
-}
-
-.nihilo .dijitSplitContainer-child,
-.nihilo .dijitBorderContainer-child {
- /* By default, put borders on all children of BorderContainer,
- * to give illusion of borders on the splitters themselves.
- */
- border: 1px #ccc solid;
-}
-
-.nihilo .dijitBorderContainer-dijitTabContainerTop,
-.nihilo .dijitBorderContainer-dijitTabContainerBottom,
-.nihilo .dijitBorderContainer-dijitTabContainerLeft,
-.nihilo .dijitBorderContainer-dijitTabContainerRight {
- /* except that TabContainer defines borders on it's sub-nodes (tablist and dijitTabPaneWrapper),
- * so override rule setting border on domNode
- */
- border: none;
-}
-
-.nihilo .dijitBorderContainer-dijitBorderContainer {
- /* also, make nested BorderContainers look like a single big widget with lots of splitters */
- border: none;
- padding: 0;
-}
-
-.nihilo .dijitSplitterH,
-.nihilo .dijitGutterH {
- background:#FCFCFC;
- border:0;
- border-left:0 solid #d3d3d3;
- border-right:0 solid #d3d3d3;
- height:5px;
-}
-
-.nihilo .dijitSplitterH .dijitSplitterThumb {
- background:#8BA0BD none;
- height:1px;
- top:2px;
- width:19px;
-}
-
-.nihilo .dijitSplitterV,
-.nihilo .dijitGutterV {
- background:#FCFCFC;
- border:0;
- border-top:0 solid #d3d3d3;
- border-bottom:0 solid #d3d3d3;
- width:5px;
-}
-
-.nihilo .dijitSplitterV .dijitSplitterThumb {
- background:#8BA0BD none;
- height:19px;
- left:2px;
- width:1px;
-}
-
-/* active splitter */
-.nihilo .dijitSplitterActive {
- font-size: 1px;
- background-image: none;
- background-color: #aaa;
- -moz-opacity: 0.6;
- opacity: 0.6;
- filter: Alpha(Opacity=60);
- margin: 0;
-} \ No newline at end of file
+.nihilo .dijitBorderContainer {background-color: #fcfcfc; padding: 5px;}.nihilo .dijitSplitContainer-child,.nihilo .dijitBorderContainer-child {border: 1px #ccc solid;}.nihilo .dijitBorderContainer-dijitTabContainerTop,.nihilo .dijitBorderContainer-dijitTabContainerBottom,.nihilo .dijitBorderContainer-dijitTabContainerLeft,.nihilo .dijitBorderContainer-dijitTabContainerRight {border: none;}.nihilo .dijitBorderContainer-dijitBorderContainer {border: none; padding: 0;}.nihilo .dijitSplitterH,.nihilo .dijitGutterH {background:#FCFCFC; border:0; border-left:0 solid #d3d3d3; border-right:0 solid #d3d3d3; height:5px;}.nihilo .dijitSplitterH .dijitSplitterThumb {background:#8BA0BD none; height:1px; top:2px; width:19px;}.nihilo .dijitSplitterV,.nihilo .dijitGutterV {background:#FCFCFC; border:0; border-top:0 solid #d3d3d3; border-bottom:0 solid #d3d3d3; width:5px;}.nihilo .dijitSplitterV .dijitSplitterThumb {background:#8BA0BD none; height:19px; left:2px; width:1px;}.nihilo .dijitSplitterActive {font-size: 1px; background-image: none; background-color: #aaa; -moz-opacity: 0.6; opacity: 0.6; filter: Alpha(Opacity=60); margin: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/layout/ContentPane.css b/lib/dijit/themes/nihilo/layout/ContentPane.css
index 75272db5a..9bef1a7e2 100644
--- a/lib/dijit/themes/nihilo/layout/ContentPane.css
+++ b/lib/dijit/themes/nihilo/layout/ContentPane.css
@@ -1,21 +1 @@
-/* ContentPane */
-
-.nihilo .dijitContentPane {
- padding: 0;
-}
-
-/* nested layouts */
-.nihilo .dijitTabContainerTop-dijitContentPane,
-.nihilo .dijitTabContainerLeft-dijitContentPane,
-.nihilo .dijitTabContainerRight-dijitContentPane,
-.nihilo .dijitTabContainerBottom-dijitContentPane,
-.nihilo .dijitAccordionContainer-dijitContentPane {
- background-color: #fff;
- padding: 5px;
-}
-
-.nihilo .dijitSplitContainer-dijitContentPane,
-.nihilo .dijitBorderContainer-dijitContentPane {
- background-color: #fff; /* override background-color setting on parent .dijitBorderContainer */
- padding: 5px;
-} \ No newline at end of file
+.nihilo .dijitContentPane {padding: 0;}.nihilo .dijitTabContainerTop-dijitContentPane,.nihilo .dijitTabContainerLeft-dijitContentPane,.nihilo .dijitTabContainerRight-dijitContentPane,.nihilo .dijitTabContainerBottom-dijitContentPane,.nihilo .dijitAccordionContainer-dijitContentPane {background-color: #fff; padding: 5px;}.nihilo .dijitSplitContainer-dijitContentPane,.nihilo .dijitBorderContainer-dijitContentPane {background-color: #fff; padding: 5px;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/layout/SplitContainer.css b/lib/dijit/themes/nihilo/layout/SplitContainer.css
index 9f4defadd..6a8acbdc4 100644
--- a/lib/dijit/themes/nihilo/layout/SplitContainer.css
+++ b/lib/dijit/themes/nihilo/layout/SplitContainer.css
@@ -1,34 +1 @@
-/**
- * dijit.layout.SplitContainer
- *
- */
-
-.nihilo .dijitSplitContainerSizerH {
- background:url("../images/splitContainerSizerV.png") repeat-y #fff;
- border:0;
- border-left:0 solid #d3d3d3;
- border-right:0 solid #d3d3d3;
- width:5px;
-}
-
-.nihilo .dijitSplitContainerSizerH .thumb {
- background:url("../images/splitContainerSizerV-thumb.png") no-repeat;
- left:1px;
- width:2px;
- height:19px;
-}
-
-.nihilo .dijitSplitContainerSizerV {
- background:url("../images/splitContainerSizerH.png") repeat-x #fff;
- border:0;
- border-top:0 solid #d3d3d3;
- border-bottom:0 solid #d3d3d3;
- height:2px;
-}
-
-.nihilo .dijitSplitContainerSizerV .thumb {
- background:url("../images/splitContainerSizerH-thumb.png") no-repeat;
- top:1px;
- width:19px;
- height:5px;
-} \ No newline at end of file
+.nihilo .dijitSplitContainerSizerH {background:url("../images/splitContainerSizerV.png") repeat-y #fff; border:0; border-left:0 solid #d3d3d3; border-right:0 solid #d3d3d3; width:5px;}.nihilo .dijitSplitContainerSizerH .thumb {background:url("../images/splitContainerSizerV-thumb.png") no-repeat; left:1px; width:2px; height:19px;}.nihilo .dijitSplitContainerSizerV {background:url("../images/splitContainerSizerH.png") repeat-x #fff; border:0; border-top:0 solid #d3d3d3; border-bottom:0 solid #d3d3d3; height:2px;}.nihilo .dijitSplitContainerSizerV .thumb {background:url("../images/splitContainerSizerH-thumb.png") no-repeat; top:1px; width:19px; height:5px;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/layout/TabContainer.css b/lib/dijit/themes/nihilo/layout/TabContainer.css
index 21266577e..27a13a4a9 100644
--- a/lib/dijit/themes/nihilo/layout/TabContainer.css
+++ b/lib/dijit/themes/nihilo/layout/TabContainer.css
@@ -1,496 +1 @@
-/**
- * dijit.layout.TabContainer
- *
- * To style TabContainer with rounded corners
- * you can use these classes: .dijitTab (left), .dijitTabContent (center), dijitTabInnerDiv (right)
- * For tabs aligned to top you can style a stripe div right underneath the tabs using .dijitTabStripe
- */
-@import url("../Menu.css");
-
-/* Classes for all types of tabs (top/bottom/left/right) */
-
-.nihilo .dijitTabContainer .tabStripRBtn {
- margin-right: 21px;
-}
-.nihilo .dijitTabContainer .tabStripLBtn {
- margin-left: 21px;
-}
-
-.nihilo .dijitTabContainerBottom .nowrapTabStrip .dijitTab {
- top: 0;
-}
-
-/* Tabs, shared classes */
-.nihilo .dijitTabPaneWrapper {
- background:#fff;
- border:1px solid #ccc;
- margin: 0;
- padding: 0;
-}
-
-.nihilo .dijitTabInnerDiv {
- padding:0 3px 0 0;
- margin: 0 0 0 4px;
- background: url("../images/tabContainerSprite.gif") no-repeat;
- background-position: right -400px;
-}
-
-.nihilo .dijitTab {
- line-height:normal;
- margin:0 2px 0 0; /* space between one tab and the next in top/bottom mode */
- padding:0;
- background: url("../images/tabContainerSprite.gif") no-repeat 0 -300px;
- color: #6d6d6d;
- border-bottom: 1px #ccc solid;
-}
-
-.nihilo .dijitTabInnerDiv .dijitTabContent {
- padding:3px 3px 3px 4px;
- background: url("../images/tabContainerSprite.gif") repeat-x 0 -350px;
- position: relative;
-}
-
-/* hovered tab */
-.nihilo .dijitTabHover {
- color: #243C5F;
- background: url("../images/tabContainerSprite.gif") no-repeat 0 -150px;
-}
-
-.nihilo .dijitTabHover .dijitTabInnerDiv {
- background: url("../images/tabContainerSprite.gif") no-repeat right -250px;
-}
-
-.nihilo .dijitTabHover .dijitTabInnerDiv .dijitTabContent {
- background: url("../images/tabContainerSprite.gif") repeat-x 0 -200px;
-}
-
-/* checked tab*/
-.nihilo .dijitTabChecked
-{
- /* the selected tab (with or without hover) */
- background: url("../images/tabContainerSprite.gif") no-repeat 0 -0;
-}
-
-.nihilo .dijitTabChecked .dijitTabInnerDiv {
- background: url("../images/tabContainerSprite.gif") no-repeat right -100px;
-}
-
-.nihilo .dijitTabChecked .dijitTabInnerDiv .dijitTabContent {
- background: url("../images/tabContainerSprite.gif") repeat-x 0 -50px;
- color: #243C5F !important;
-}
-
-/* Nested Tabs */
-.nihilo .dijitTabContainerNested .dijitTabListWrapper {
- height: auto;
-}
-
-.nihilo .dijitTabContainerTabListNested {
- background: #FDFDFD;
- border: none;
- margin-bottom: 0; /* override margin: -1px; */
-}
-.nihilo .dijitTabContainerTabListNested .dijitTab {
- background: none;
- border: none;
- top: 0; /* override top:1px setting of top-level tabs */
-}
-.nihilo .dijitTabContainerTabListNested .dijitTab .dijitTabInnerDiv,
-.nihilo .dijitTabContainerTabListNested .dijitTab .dijitTabContent {
- background: none;
-}
-.nihilo .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent .tabLabel {
- text-decoration: underline;
-}
-.nihilo .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {
- text-decoration: underline;
- font-weight: bold;
-}
-.nihilo .dijitTabContainerSpacerNested {
- /* thinner line between tab (labels) and content */
- height: 0;
- border-bottom: 0;
-}
-.nihilo .dijitTabPaneWrapperNested {
- border: none; /* prevent double border */
-}
-
-
-/* Close button */
-.nihilo .dijitTabCloseButton {
- background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px top;
- width: 15px;
- height: 15px;
- margin-top: -1px;
-}
-
-.dj_ie6 .nihilo .dijitTabCloseButton {
- background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px top;
-}
-.nihilo .dijitTabCloseButtonHover {
- background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px -15px;
-}
-.dj_ie6 .nihilo .dijitTabCloseButtonHover {
- background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px -15px;
-}
-
-/* ================================ */
-/* top tabs */
-.nihilo .dijitTabContainerTop-tabs {
- border-bottom: none;
- padding-bottom: 1px;
- background-position: bottom;
- padding-left: 3px;
-}
-
-.dj_ie6 .nihilo .dijitTabListContainer-top,
-.dj_ie7 .nihilo .dijitTabListContainer-top {
- z-index: 3;
-}
-
-.dj_ie6 .nihilo .dijitTabContainerTop-tabs,
-.dj_ie7 .nihilo .dijitTabContainerTop-tabs {
- border-bottom: 1px solid #ccc;
- padding-bottom: 0;
-}
-
-.nihilo .dijitTabContainerTopNoStrip {
- padding-top: 3px;
-}
-
-/* top container */
-.nihilo .dijitTabContainerTop-container {
- border-top: none;
-}
-
-/* checked tabs */
-.nihilo .dijitTabContainerTop-tabs .dijitTabChecked {
- border-bottom-color: #f8f8f8;
-}
-
-/* strip */
-.nihilo .dijitTabContainer .dijitTabContainerTopStrip {
- border-bottom: none;
- padding-top: 1px;
- margin-top: 1px;
- background: #f2f2f2;
- border-top: 1px solid #CCC;
- border-right: 1px solid #CCC;
- border-left: 1px solid #CCC;
-}
-
-
-/* ================================ */
-/* bottom tabs */
-.nihilo .dijitTabContainerBottom-tabs {
- border-top: none;
- background-position: top;
- padding-left: 3px;
-}
-
-.dj_ie6 .nihilo .dijitTabListContainer-bottom,
-.dj_ie7 .nihilo .dijitTabListContainer-bottom {
- z-index: 3;
-}
-
-.dj_ie6 .nihilo .dijitTabContainerBottom-tabs,
-.dj_ie7 .nihilo .dijitTabContainerBottom-tabs {
- border-top: 1px solid #ccc;
- margin-top: -1px;
-}
-
-/* bottom container */
-.nihilo .dijitTabContainerBottom-container {
- border-bottom: none;
-}
-
-.nihilo .dijitTabContainerBottom-tabs .dijitTab {
- border-bottom: none;
- border-top: 1px solid #ccc;
- background: url("../images/tabBottomEnabledSpriteLR.gif") no-repeat bottom left;
-}
-
-/* checked tabs */
-.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked {
- border-top-color: #f8f8f8;
-}
-
-.nihilo .dijitTabContainerBottom-tabs .dijitTabInnerDiv .dijitTabContent {
- padding-top: 3px;
- padding-bottom: 3px;
- background: url("../images/tabBottomEnabledC.gif") repeat-x bottom left;
-}
-
-.nihilo .dijitTabContainerBottom-tabs .dijitTabInnerDiv {
- background: url("../images/tabBottomEnabledSpriteLR.gif") no-repeat bottom right;
-}
-
-.nihilo .dijitTabContainerBottom-tabs .dijitTabHover {
- color: #243C5F;
- background: url("../images/tabBottomHoverSpriteLR.gif") no-repeat bottom left;
-}
-
-.nihilo .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv {
- background: url("../images/tabBottomHoverSpriteLR.gif") no-repeat bottom right;
-}
-
-.nihilo .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv .dijitTabContent {
- background: url("../images/tabBottomHoverC.gif") repeat-x bottom left;
-}
-
-.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked {
- /* the selected tab (with or without hover) */
- background: url("../images/tabBottomActiveSpriteLR.gif") no-repeat bottom left;
-}
-
-.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv {
- background: url("../images/tabBottomActiveSpriteLR.gif") no-repeat bottom right;
-}
-
-.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv .dijitTabContent {
- background: url("../images/tabBottomActiveC.gif") repeat-x bottom left;
-}
-
-/* strip */
-.nihilo .dijitTabContainer .dijitTabContainerBottomStrip {
- border: 1px solid #ccc;
- background: #f2f2f2;
- border-top: none;
- padding-bottom: 2px;
-}
-
-/* top/bottom strip */
-.nihilo .dijitTabContainerBottom-spacer,
-.nihilo .dijitTabContainerTop-spacer {
- height: 2px;
- border: 1px solid #ccc;
- background: #f8f8f8;
-}
-
-.nihilo .dijitTabContainerTop-spacer {
- margin-top: -1px;
-}
-.nihilo .dijitTabContainerBottom-spacer {
- margin-bottom: -1px;
-}
-
-
-/* ================================ */
-/* right tabs */
-.nihilo .dijitTabContainerRight-tabs {
- border-color: #ccc;
- padding-top: 3px;
-}
-.nihilo .dijitTabContainerRight .dijitTabListWrapper {
- padding-right: 3px;
-}
-
-/* right container */
-.nihilo .dijitTabContainerRight-container {
- border-right: none;
-}
-
-.nihilo .dijitTabContainerRight-tabs .dijitTab {
- border-bottom: none;
- border-left: 1px solid #ccc;
- border-bottom: 1px solid #dedede !important;
-}
-
-
-/* some odd ie bug when borders dissapear when setting a bottom margin, this sortof helps */
-.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabInnerDiv {
- border-bottom: solid #fff 1px;
-}
-
-/* checked tabs */
-.nihilo .dijitTabContainerRight-tabs .dijitTabChecked {
- border-left-color: #f8f8f8;
-}
-
-.nihilo .dijitTabContainerRight-tabs .dijitTabChecked {
- background: url("../images/tabRightChecked.gif") no-repeat left top !important;
-}
-
-/* some odd ie bug when borders dissapear when setting a bottom margin, this sortof helps */
-.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv,
-.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabCheckedHover .dijitTabInnerDiv {
- border-bottom: solid #efefef 1px;
-}
-
-.nihilo .dijitTabContainerRight-tabs .dijitTab {
- background: url("../images/tabContainerSprite.gif") no-repeat left -350px;
-}
-.nihilo .dijitTabContainerRight-tabs .dijitTabHover .dijitTab {
- background: url("../images/tabContainerSprite.gif") no-repeat left -200px;
-}
-
-/* strip */
-.nihilo .dijitTabContainerRightStrip {
- padding-right: 2px;
- border: 1px solid #ccc;
- border-left: none;
- background: #f2f2f2;
-}
-
-/* ================================ */
-/* left tabs */
-.nihilo .dijitTabContainerLeft-tabs {
- border-color: #ccc;
- padding-top: 3px;
-}
-
-/* left conatiner */
-.nihilo .dijitTabContainerLeft-container {
- border-left: none;
-}
-
-.nihilo .dijitTabContainerLeft-tabs .dijitTab {
- border-right: 1px solid #ccc;
- border-bottom: 1px solid #dedede;
-}
-
-/* checked tabs */
-.nihilo .dijitTabContainerLeft-tabs .dijitTabChecked {
- border-right: 1px solid #f8f8f8;
-}
-
-.nihilo .dijitTabContainerLeft-tabs .dijitTabInnerDiv {
- background: url("../images/tabContainerSprite.gif") no-repeat right -350px;
-}
-.nihilo .dijitTabContainerLeft-tabs .dijitTabHover .dijitTabInnerDiv {
- background: url("../images/tabContainerSprite.gif") no-repeat right -200px;
-}
-.nihilo .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv,
-.nihilo .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv {
- background: url("../images/tabLeftChecked.gif") no-repeat right top;
-}
-
-.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv,
-.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv {
- border-bottom: solid #efefef 1px;
-}
-
-.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabInnerDiv {
- border-bottom: solid #fff 1px;
-}
-
-/* strip */
-.nihilo .dijitTabContainerLeftStrip {
- padding-left: 2px;
- border: 1px solid #ccc;
- border-right: none;
-}
-
-.nihilo .dijitTabContainerLeftStrip {
- background: #f2f2f2;
-}
-
-/* ================================ */
-/* left/right tabs */
-.nihilo .dijitTabContainerLeft-tabs .dijitTab,
-.nihilo .dijitTabContainerRight-tabs .dijitTab {
- margin-right:auto;
- margin-bottom:2px; /* space between one tab and the next in left/right mode */
-}
-
-/* left/right tabstrip */
-.nihilo .dijitTabContainerLeft-spacer,
-.nihilo .dijitTabContainerRight-spacer {
- width: 2px;
- border: 1px solid #ccc;
- background: #f8f8f8;
-}
-
-.nihilo .dijitTabContainerRight-spacer {
- border-right: none;
-}
-
-.nihilo .dijitTabContainerRight-tabs {
- padding-top: 3px;
- height: 100%;
-}
-.nihilo .dijitTabContainerLeft-tabs {
- height: 100%;
-}
-
-.nihilo .dijitTabContainerLeft-spacer {
- border-left: none;
-}
-
-/* ================================ */
-
-/* this resets the tabcontainer stripe when within a contentpane */
-.nihilo .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs {
- border-left: 0 solid #ccc;
- border-top: 0 solid #ccc;
- border-right: 0 solid #ccc;
- padding-top: 0;
- padding-left: 0;
-}
-
-/* ================================ */
-
-/* Menu and slider control styles */
-.nihilo .dijitTabContainer .tabStripButton {
- margin-right: 0;
-}
-
-.nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent {
- padding: 5px 0 6px;
-}
-
-.dj_ie6 .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent,
-.dj_ie7 .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent,
-.dj_opera .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent {
- padding-bottom: 7px;
-}
-
-.nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent {
- padding: 3px 0 5px;
-}
-
-.dj_ie6 .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent,
-.dj_ie7 .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent,
-.dj_opera .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent {
- padding-top: 4px;
-}
-
-.nihilo .dijitTabStripIcon {
- height: 14px;
- width: 14px;
- background: url(../images/spriteRoundedIconsSmall.png) no-repeat left top;
-}
-
-.dj_ie6 .nihilo .dijitTabStripIcon {
- background-image: url(../images/spriteRoundedIconsSmall.gif);
-}
-
-.nihilo .dijitTabStripSlideRightIcon {
- background-position: -30px top;
-}
-
-.nihilo .dijitTabStripMenuIcon {
- background-position: -15px top;
-}
-
-.nihilo .dijitTabContainerTopNone {
- padding-top: 0;
-}
-
-.nihilo .dijitTabContainer .tabStripButton-top {
- margin-top: 1px;
-}
-
-.nihilo .dijitTabContainer .tabStripButton-bottom {
- background: transparent url(../images/tabBottomEnabledSpriteLR.gif) no-repeat scroll left bottom;
- border-bottom: medium none;
- border-top: 1px solid #CCCCCC;
-}
-
-.nihilo .dijitTabContainer .tabStripButton-bottom .dijitTabInnerDiv {
- background: transparent url(../images/tabBottomEnabledSpriteLR.gif) no-repeat scroll right bottom;
-}
-
-.nihilo .dijitTabContainer .tabStripButton-bottom .dijitTabContent {
- background: transparent;
-} \ No newline at end of file
+.nihilo .dijitMenu,.nihilo .dijitMenuBar {border: 1px solid #d3d3d3; margin: 0; padding: 0; background-color: #fff;}.nihilo .dijitBorderContainer .dijitMenuBar {border: 1px #ccc solid;}.nihilo .dijitMenuItem {font-family: sans-serif; margin: 0; color: #243C5F;}.nihilo .dijitMenuBar .dijitMenuItem {padding: 4px 5px;}.nihilo .dijitMenuPreviousButton, .nihilo .dijitMenuNextButton {font-style: italic;}.nihilo .dijitMenuItem TD {padding:1px;}.nihilo .dijitMenuPassive .dijitMenuItemHover,.nihilo .dijitComboBoxMenu .dijitMenuItemHover,.nihilo .dijitMenuItemSelected {background-color: #ffe284; color: #243C5F;}.nihilo .dijitMenuItemIcon {width: 15px; height: 15px;}.nihilo .dijitMenuExpand {width:15px; height:15px; background-image: url("../images/spriteRoundedIconsSmall.png"); background-position: -30px top;}.dj_ie6 .nihilo .dijitMenuExpand {background-image:url("../images/spriteRoundedIconsSmall.gif");}.nihilo .dijitMenuSeparator {height: 1px;}.nihilo .dijitMenuSeparatorTop {border-bottom: 1px solid #fff;}.nihilo .dijitMenuSeparatorBottom {border-top: 1px solid #d3d3d3;}.nihilo .dijitCheckedMenuItemIconChar {display: none;}.nihilo .dijitCheckedMenuItemIcon {background-image: url("../images/spriteCheckbox.gif"); background-position: -80px;}.nihilo .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: -64px;}.nihilo .dijitTabContainer .tabStripRBtn {margin-right: 21px;}.nihilo .dijitTabContainer .tabStripLBtn {margin-left: 21px;}.nihilo .dijitTabContainerBottom .nowrapTabStrip .dijitTab {top: 0;}.nihilo .dijitTabPaneWrapper {background:#fff; border:1px solid #ccc; margin: 0; padding: 0;}.nihilo .dijitTab {padding:3px 6px 3px 4px; background: url("../images/tabContainerSprite.gif") repeat-x 0 -350px; position: relative; line-height:normal; margin: 0 1px; color: #6d6d6d; border: 1px #dedede solid; border-bottom: 1px #ccc solid;}.nihilo .dijitTabHover {color: #243C5F; background: url("../images/tabContainerSprite.gif") repeat-x 0 -200px;}.nihilo .dijitTabChecked {background: url("../images/tabContainerSprite.gif") repeat-x 0 -50px; color: #243C5F !important;}.nihilo .dijitTabContainerNested .dijitTabListWrapper {height: auto;}.nihilo .dijitTabContainerTabListNested {background: #FDFDFD; border: none; margin-bottom: 0;}.nihilo .dijitTabContainerTabListNested .dijitTab {background: none; border: none; top: 0;}.nihilo .dijitTabContainerTabListNested .dijitTabHover .tabLabel {text-decoration: underline;}.nihilo .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {text-decoration: underline; font-weight: bold;}.nihilo .dijitTabContainerSpacerNested {height: 0; border-bottom: 0;}.nihilo .dijitTabPaneWrapperNested {border: none;}.nihilo .dijitTabCloseButton {background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px top; width: 15px; height: 15px; margin-top: -1px;}.dj_ie6 .nihilo .dijitTabCloseButton {background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px top;}.nihilo .dijitTabCloseButtonHover {background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px -15px;}.dj_ie6 .nihilo .dijitTabCloseButtonHover {background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px -15px;}.nihilo .dijitTabContainerTop-tabs {border-bottom: none; padding-bottom: 1px; background-position: bottom; padding-left: 3px;}.nihilo .dijitTabContainerTop-tabs .dijitTab {border-radius: 4px 4px 0 0; -moz-border-radius: 4px 4px 0 0;}.dj_ie6 .nihilo .dijitTabListContainer-top,.dj_ie7 .nihilo .dijitTabListContainer-top {z-index: 3;}.dj_ie6 .nihilo .dijitTabContainerTop-tabs,.dj_ie7 .nihilo .dijitTabContainerTop-tabs {border-bottom: 1px solid #ccc; padding-bottom: 0;}.nihilo .dijitTabContainerTopNoStrip {padding-top: 3px;}.nihilo .dijitTabContainerTop-container {border-top: none;}.nihilo .dijitTabContainerTop-tabs .dijitTabChecked {border-bottom-color: #f8f8f8;}.nihilo .dijitTabContainer .dijitTabContainerTopStrip {border-bottom: none; padding-top: 1px; margin-top: 1px; background: #f2f2f2; border-top: 1px solid #CCC; border-right: 1px solid #CCC; border-left: 1px solid #CCC;}.nihilo .dijitTabContainerBottom-tabs {border-top: none; background-position: top; padding-left: 3px;}.nihilo .dijitTabContainerBottom-tabs .dijitTab {border-radius: 0 0 4px 4px; -moz-border-radius: 0 0 4px 4px; border-bottom: none; border-top: 1px solid #ccc; padding-top: 3px; padding-bottom: 3px; background: url("../images/tabBottomEnabledC.gif") repeat-x bottom left;}.nihilo .dijitTabContainerBottom-tabs .dijitTabHover {color: #243C5F; background: url("../images/tabBottomHoverC.gif") repeat-x bottom left;}.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked {border-top-color: #f8f8f8; background: url("../images/tabBottomActiveC.gif") repeat-x bottom left;}.dj_ie6 .nihilo .dijitTabListContainer-bottom,.dj_ie7 .nihilo .dijitTabListContainer-bottom {z-index: 3;}.dj_ie6 .nihilo .dijitTabContainerBottom-tabs,.dj_ie7 .nihilo .dijitTabContainerBottom-tabs {border-top: 1px solid #ccc; margin-top: -1px;}.nihilo .dijitTabContainerBottom-container {border-bottom: none;}.nihilo .dijitTabContainer .dijitTabContainerBottomStrip {border: 1px solid #ccc; background: #f2f2f2; border-top: none; padding-bottom: 2px;}.nihilo .dijitTabContainerBottom-spacer,.nihilo .dijitTabContainerTop-spacer {height: 2px; border: 1px solid #ccc;}.nihilo .dijitTabContainerTop-spacer {margin-top: -1px; background: #f3f3f3;}.nihilo .dijitTabContainerBottom-spacer {margin-bottom: -1px; background: #f8f8f8;}.nihilo .dijitTabContainerRight-tabs {border-color: #ccc; padding-top: 3px;}.nihilo .dijitTabContainerRight-tabs .dijitTab {border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-left: 1px solid #ccc; border-bottom: 1px solid #dedede !important;}.nihilo .dijitTabContainerRight .dijitTabListWrapper {padding-right: 3px;}.nihilo .dijitTabContainerRight-tabs .dijitTabChecked {border-left: 1px solid #f8f8f8;}.nihilo .dijitTabContainerRight-container {border-right: none;}.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTab {border-bottom: solid #fff 1px;}.nihilo .dijitTabContainerRight-tabs .dijitTabChecked {border-left-color: #f8f8f8;}.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabChecked,.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabCheckedHover {border-bottom: solid #efefef 1px;}.nihilo .dijitTabContainerRightStrip {padding-right: 2px; border: 1px solid #ccc; border-left: none; background: #f2f2f2;}.nihilo .dijitTabContainerLeft-tabs {border-color: #ccc; padding-top: 3px;}.nihilo .dijitTabContainerLeft-tabs .dijitTab {border-radius: 4px 0 0 4px; -moz-border-radius: 4px 0 0 4px; border-right: 1px solid #ccc; border-bottom: 1px solid #dedede;}.nihilo .dijitTabContainerLeft-tabs .dijitTabChecked {border-right: 1px solid #f8f8f8;}.nihilo .dijitTabContainerLeft-container {border-left: none;}.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabChecked,.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabCheckedHover {border-bottom: solid #efefef 1px;}.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabInnerDiv {border-bottom: solid #fff 1px;}.nihilo .dijitTabContainerLeftStrip {padding-left: 2px; border: 1px solid #ccc; border-right: none;}.nihilo .dijitTabContainerLeftStrip {background: #f2f2f2;}.nihilo .dijitTabContainerLeft-tabs .dijitTab,.nihilo .dijitTabContainerRight-tabs .dijitTab {margin: 1px 0;}.nihilo .dijitTabContainerLeft-spacer,.nihilo .dijitTabContainerRight-spacer {width: 2px; border: 1px solid #ccc; background: #f8f8f8;}.nihilo .dijitTabContainerRight-spacer {border-right: none;}.nihilo .dijitTabContainerRight-tabs {padding-top: 3px; height: 100%;}.nihilo .dijitTabContainerLeft-tabs {height: 100%;}.nihilo .dijitTabContainerLeft-spacer {border-left: none;}.nihilo .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs {border-left: 0 solid #ccc; border-top: 0 solid #ccc; border-right: 0 solid #ccc; padding-top: 0; padding-left: 0;}.nihilo .dijitTabContainer .tabStripButton {margin-right: 0; padding: 5px 3px 6px 0px;}.dj_ie6 .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent,.dj_ie7 .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent,.dj_opera .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent {padding-bottom: 7px;}.dj_ie6 .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent,.dj_ie7 .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent,.dj_opera .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent {padding-top: 4px;}.nihilo .dijitTabStripIcon {height: 14px; width: 14px; background: url(../images/spriteRoundedIconsSmall.png) no-repeat left top;}.dj_ie6 .nihilo .dijitTabStripIcon {background-image: url(../images/spriteRoundedIconsSmall.gif);}.nihilo .dijitTabStripSlideRightIcon {background-position: -30px top;}.nihilo .dijitTabStripMenuIcon {background-position: -15px top;}.nihilo .dijitTabContainerTopNone {padding-top: 0;}.nihilo .dijitTabContainer .tabStripButton-top {margin-top: 1px;}.nihilo .dijitTabContainer .tabStripButton-bottom {border-bottom: medium none; border-top: 1px solid #CCCCCC;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/layout/TabContainer_rtl.css b/lib/dijit/themes/nihilo/layout/TabContainer_rtl.css
index 225fc3eba..1735cb92b 100644
--- a/lib/dijit/themes/nihilo/layout/TabContainer_rtl.css
+++ b/lib/dijit/themes/nihilo/layout/TabContainer_rtl.css
@@ -1,43 +1 @@
-.dijitRtl .nihilo .dijitTab {
- margin-right:0;
- margin-left:2px; /* space between one tab and the next in top/bottom mode */
-}
-
-/* tab strips */
-.dijitRtl .nihilo .dijitTabContainer .tabStripButton {
- margin-left: 0;
-}
-
-.dijitRtl .nihilo .dijitTabContainerTopStrip,
-.dijitRtl .nihilo .dijitTabContainerBottomStrip,
-.dijitRtl .nihilo .dijitTabContainerTop-tabs,
-.dijitRtl .nihilo .dijitTabContainerBottom-tabs {
- padding-left: 0;
- padding-right: 3px;
-}
-
-.dijitRtl .nihilo .dijitTabInnerDiv {
- padding-left: 3px;
- padding-right: 4px;
-}
-
-.dijitRtl .nihilo .dijitTabPaneWrapper {
- #zoom: 1;
-}
-
-.dj_ie-rtl .nihilo .dijitTabContainerLeft-tabs {
- margin-left: 0 !important;
-}
-
-.dj_ie-rtl .nihilo .dijitTabContainerRight-tabs {
- margin-right: 0 !important;
-}
-
-.dijitRtl .nihilo .dijitTabContainerLeft-tabs .dijitTab,
-.dijitRtl .nihilo .dijitTabContainerRight-tabs .dijitTab {
- margin-left:0;
-}
-
-.dj_ie-rtl .nihilo .dijitTab .dijitTabInnerDiv{
- width : 1%;
-} \ No newline at end of file
+.dijitRtl .nihilo .dijitTab {margin-right:0; margin-left:2px;}.dijitRtl .nihilo .dijitTabContainer .tabStripButton {margin-left: 0;}.dijitRtl .nihilo .dijitTabContainerTopStrip,.dijitRtl .nihilo .dijitTabContainerBottomStrip,.dijitRtl .nihilo .dijitTabContainerTop-tabs,.dijitRtl .nihilo .dijitTabContainerBottom-tabs {padding-left: 0; padding-right: 3px;}.dijitRtl .nihilo .dijitTabInnerDiv {padding-left: 3px; padding-right: 4px;}.dijitRtl .nihilo .dijitTabPaneWrapper {#zoom: 1;}.dj_ie-rtl .nihilo .dijitTabContainerLeft-tabs {margin-left: 0 !important;}.dj_ie-rtl .nihilo .dijitTabContainerRight-tabs {margin-right: 0 !important;}.dijitRtl .nihilo .dijitTabContainerLeft-tabs .dijitTab,.dijitRtl .nihilo .dijitTabContainerRight-tabs .dijitTab {margin-left:0;}.dj_ie-rtl .nihilo .dijitTab .dijitTabInnerDiv{width : 1%;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/nihilo.css b/lib/dijit/themes/nihilo/nihilo.css
index 97ba8f6eb..e5e92e15f 100644
--- a/lib/dijit/themes/nihilo/nihilo.css
+++ b/lib/dijit/themes/nihilo/nihilo.css
@@ -1,42 +1 @@
-/*
- Adds cosmetic styling to Dijit. Users may swap with a custom theme CSS file.
-
- NOTES:
- ---
- Dialog.css contains css classes for both Dialog and Tooltip!
- This because currently a dijit.TooltipDialog exist. Until this is resolved
- you need to include Dialog.css for both dijits
- ---
- Toolbar.css contains classes also used in Editor. Until this is resolved
- you need to include Toolbar.css for both Toolbar and Editor
- ---
- Button.css contains classes for combobox,
-
-*/
-
-@import url("../dijit.css");
-@import url("../../icons/commonIcons.css");/*sprite containing common icons to be used by all themes*/
-@import url("Common.css");
-
-@import url("layout/ContentPane.css");
-@import url("layout/TabContainer.css");
-@import url("layout/AccordionContainer.css");
-@import url("layout/SplitContainer.css");
-@import url("layout/BorderContainer.css");
-@import url("form/Common.css");
-@import url("form/Button.css");
-@import url("form/Checkbox.css");
-@import url("form/RadioButton.css");
-@import url("form/Slider.css");
-@import url("form/Select.css");
-@import url("Tree.css");
-@import url("ProgressBar.css");
-@import url("TitlePane.css");
-@import url("Calendar.css");
-@import url("TimePicker.css");
-@import url("Toolbar.css");
-@import url("Dialog.css");
-@import url("Menu.css");
-@import url("Editor.css");
-@import url("../../icons/editorIcons.css"); /* sprite for editor icons to be used by all themes */
-@import url("ColorPalette.css"); \ No newline at end of file
+.dijitReset {margin:0; border:0; padding:0; font: inherit; line-height:normal; color: inherit;}.dj_a11y .dijitReset {-moz-appearance: none;}.dijitInline {display:inline-block; #zoom: 1; #display:inline; border:0; padding:0; vertical-align:middle; #vertical-align: auto;}table.dijitInline {display:inline-table; box-sizing: content-box; -moz-box-sizing: content-box;}.dijitHidden {display: none !important;}.dijitVisible {display: block !important; position: relative;}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer {#zoom: 1; overflow: hidden; float: none !important; position: relative;}.dj_ie7 .dijitInputContainer {float: left !important; clear: left; display: inline-block !important;}.dj_ie .dijitSelect input,.dj_ie input.dijitTextBox,.dj_ie .dijitTextBox input {font-size: 100%;}.dijitSelect .dijitButtonText {float: left; vertical-align: top;}TABLE.dijitSelect {padding: 0 !important;}.dijitTextBox .dijitSpinnerButtonContainer,.dijitTextBox .dijitArrowButtonContainer,.dijitValidationTextBox .dijitValidationContainer {float: right; text-align: center;}.dijitSelect input.dijitInputField,.dijitTextBox input.dijitInputField {padding-left: 0 !important; padding-right: 0 !important;}.dijitValidationTextBox .dijitValidationContainer {display: none;}.dijitTeeny {font-size:1px; line-height:1px;}.dijitOffScreen {position: absolute !important; left: 50% !important; top: -10000px !important;}.dijitPopup {position: absolute; background-color: transparent; margin: 0; border: 0; padding: 0;}.dijitPositionOnly {padding: 0 !important; border: 0 !important; background-color: transparent !important; background-image: none !important; height: auto !important; width: auto !important;}.dijitNonPositionOnly {float: none !important; position: static !important; margin: 0 0 0 0 !important; vertical-align: middle !important;}.dijitBackgroundIframe {position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: -1; border: 0; padding: 0; margin: 0;}.dijitDisplayNone {display:none !important;}.dijitContainer {overflow: hidden;}.dj_a11y .dijitIcon,.dj_a11y div.dijitArrowButtonInner, .dj_a11y span.dijitArrowButtonInner,.dj_a11y img.dijitArrowButtonInner,.dj_a11y .dijitCalendarIncrementControl,.dj_a11y .dijitTreeExpando {display: none;}.dijitSpinner div.dijitArrowButtonInner {display: block;}.dj_a11y .dijitA11ySideArrow {display: inline !important; cursor: pointer;}.dj_a11y .dijitCalendarDateLabel {padding: 1px; border: 0px !important;}.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {border-style: solid !important; border-width: 1px !important; padding: 0;}.dj_a11y .dijitCalendarDateTemplate {padding-bottom: 0.1em !important; border: 0px !important;}.dj_a11y .dijitButtonNode {border: black outset medium !important; padding: 0 !important;}.dj_a11y .dijitArrowButton {padding: 0 !important;}.dj_a11y .dijitButtonContents {margin: 0.15em;}.dj_a11y .dijitTextBoxReadOnly .dijitInputField,.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {border-style: outset!important; border-width: medium!important; border-color: #999 !important; color:#999 !important;}.dijitButtonNode * {vertical-align: middle;}.dijitSelect .dijitArrowButtonInner,.dijitButtonNode .dijitArrowButtonInner {background: no-repeat center; width: 12px; height: 12px; direction: ltr;}.dijitLeft {background-position:left top; background-repeat:no-repeat;}.dijitStretch {white-space:nowrap; background-repeat:repeat-x;}.dijitRight {#display:inline; background-position:right top; background-repeat:no-repeat;}.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {opacity: 0.5;}.dijitToggleButton,.dijitButton,.dijitDropDownButton,.dijitComboButton {margin: 0.2em; vertical-align: middle;}.dijitButtonContents {display: block;}td.dijitButtonContents {display: table-cell;}.dijitButtonNode img {vertical-align:middle;}.dijitToolbar .dijitComboButton {border-collapse: separate;}.dijitToolbar .dijitToggleButton,.dijitToolbar .dijitButton,.dijitToolbar .dijitDropDownButton,.dijitToolbar .dijitComboButton {margin: 0;}.dijitToolbar .dijitButtonContents {padding: 1px 2px;}.dj_webkit .dijitToolbar .dijitDropDownButton {padding-left: 0.3em;}.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {padding:0;}.dijitSelect {border:1px solid gray;}.dijitButtonNode {border:1px solid gray; margin:0; line-height:normal; vertical-align: middle; #vertical-align: auto; text-align:center; white-space: nowrap;}.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {line-height:inherit;}.dijitTextBox .dijitButtonNode {border-width: 0;}.dijitSelect,.dijitSelect *,.dijitButtonNode,.dijitButtonNode * {cursor: pointer;}.dj_ie .dijitButtonNode {zoom: 1;}.dj_ie .dijitButtonNode button {overflow: visible;}div.dijitArrowButton {float: right;}.dijitTextBox {border: solid black 1px; #overflow: hidden; width: 15em; vertical-align: middle;}.dijitTextBoxReadOnly,.dijitTextBoxDisabled {color: gray;}.dj_safari .dijitTextBoxDisabled input {color: #B0B0B0;}.dj_safari textarea.dijitTextAreaDisabled {color: #333;}.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, .dj_gecko .dijitTextBoxDisabled input {-moz-user-input: none;}.dijitPlaceHolder {color: #AAAAAA; font-style: italic; position: absolute; top: 0; left: 0; #filter: "";}.dijitTimeTextBox {width: 8em;}.dijitTextBox input:focus {outline: none;}.dijitTextBoxFocused {outline: 5px -webkit-focus-ring-color;}.dijitSelect input,.dijitTextBox input {float: left;}.dj_ie6 input.dijitTextBox,.dj_ie6 .dijitTextBox input {float: none;}.dijitInputInner {border:0 !important; background-color:transparent !important; width:100% !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important;}.dj_a11y .dijitTextBox input {margin: 0 !important;}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner {text-indent: -2em !important; direction: ltr !important; text-align: left !important; height: auto !important; #text-indent: 0 !important; #letter-spacing: -5em !important; #text-align: right !important;}.dj_ie .dijitSelect input,.dj_ie .dijitTextBox input,.dj_ie input.dijitTextBox {overflow-y: visible; line-height: normal;}.dijitSelect .dijitSelectLabel span {line-height: 100%;}.dj_ie .dijitSelect .dijitSelectLabel {line-height: normal;}.dj_ie6 .dijitSelect .dijitSelectLabel,.dj_ie7 .dijitSelect .dijitSelectLabel,.dj_ie8 .dijitSelect .dijitSelectLabel,.dj_iequirks .dijitSelect .dijitSelectLabel,.dijitSelect td,.dj_ie6 .dijitSelect input,.dj_iequirks .dijitSelect input,.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie6 .dijitTextBox input,.dj_ie6 input.dijitTextBox,.dj_iequirks .dijitTextBox input.dijitValidationInner,.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,.dj_iequirks .dijitTextBox input.dijitInputInner,.dj_iequirks input.dijitTextBox {line-height: 100%;}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner {text-indent: 0 !important; width: 1em !important; #text-align: left !important; color: black !important;}.dijitValidationTextBoxError .dijitValidationContainer {display: inline; cursor: default;}.dijitSpinner .dijitSpinnerButtonContainer,.dijitComboBox .dijitArrowButtonContainer {border-width: 0 0 0 1px !important;}.dj_a11y .dijitSelect .dijitArrowButtonContainer,.dijitToolbar .dijitComboBox .dijitArrowButtonContainer {border-width: 0 !important;}.dijitComboBoxMenu {list-style-type: none;}.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0;}.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {clear: both;}.dj_ie .dijitToolbar .dijitComboBox {vertical-align: middle;}.dijitTextBox .dijitSpinnerButtonContainer {width: 1em; position: relative !important; overflow: hidden;}.dijitSpinner .dijitSpinnerButtonInner {width:1em; visibility:hidden !important; overflow-x:hidden;}.dijitComboBox .dijitButtonNode,.dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0;}.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0px !important; border-style: solid !important;}.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,.dj_a11y .dijitSpinner .dijitArrowButtonInner,.dj_a11y .dijitSpinnerButtonContainer input {width: 1em !important;}.dj_a11y .dijitSpinner .dijitArrowButtonInner {margin: 0 auto !important;}.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding-left: 0.3em !important; padding-right: 0.3em !important; margin-left: 0.3em !important; margin-right: 0.3em !important; width: 1.4em !important;}.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding-left: 0 !important; padding-right: 0 !important; width: 1em !important;}.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {margin-left: 0.1em !important; margin-right: 0.1em !important; width: 1em !important;}.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {margin-left: 0 !important; margin-right: 0 !important; width: 2em !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {padding: 0; position: absolute !important; right: 0; float: none; height: 50%; width: 100%; bottom: auto; left: 0; right: auto;}.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: auto;}.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {overflow: visible !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {top: 50%; border-top-width: 1px !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {#bottom: 50%; top: 0;}.dijitSpinner .dijitArrowButtonInner {margin: auto; overflow-x: hidden; height: 100% !important;}.dj_iequirks .dijitSpinner .dijitArrowButtonInner {height: auto !important;}.dijitSpinner .dijitArrowButtonInner .dijitInputField {-moz-transform: scale(0.5); -moz-transform-origin: center top; -webkit-transform: scale(0.5); -webkit-transform-origin: center top; -o-transform: scale(0.5); -o-transform-origin: center top; transform: scale(0.5); transform-origin: left top; padding-top: 0; padding-bottom: 0; padding-left: 0 !important; padding-right: 0 !important; width: 100%; visibility: hidden;}.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {zoom: 50%;}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {overflow: hidden;}.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: 100%;}.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: 1em;}.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {vertical-align:top; visibility: visible;}.dj_a11y .dijitSpinnerButtonContainer {width: 1em;}.dijitCheckBox,.dijitRadio,.dijitCheckBoxInput {padding: 0; border: 0; width: 16px; height: 16px; background-position:center center; background-repeat:no-repeat; overflow: hidden;}.dijitCheckBox input,.dijitRadio input {margin: 0; padding: 0; display: block;}.dijitCheckBoxInput {opacity: 0.01;}.dj_ie .dijitCheckBoxInput {filter: alpha(opacity=0);}.dj_a11y .dijitCheckBox,.dj_a11y .dijitRadio {width: auto !important; height: auto !important;}.dj_a11y .dijitCheckBoxInput {opacity: 1; filter: none; width: auto; height: auto;}.dj_a11y .dijitFocusedLabel {border: 1px dotted; outline: 0px !important;}.dijitProgressBar {z-index: 0;}.dijitProgressBarEmpty {position:relative;overflow:hidden; border:1px solid black; z-index:0;}.dijitProgressBarFull {position:absolute; overflow:hidden; z-index:-1; top:0; width:100%;}.dj_ie6 .dijitProgressBarFull {height:1.6em;}.dijitProgressBarTile {position:absolute; overflow:hidden; top:0; left:0; bottom:0; right:0; margin:0; padding:0; width: 100%; height:auto; background-color:#aaa; background-attachment: fixed;}.dj_a11y .dijitProgressBarTile {border-width:2px; border-style:solid; background-color:transparent !important;}.dj_ie6 .dijitProgressBarTile {position:static; height:1.6em;}.dijitProgressBarIndeterminate .dijitProgressBarTile {}.dijitProgressBarIndeterminateHighContrastImage {display:none;}.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {display:block; position:absolute; top:0; bottom:0; margin:0; padding:0; width:100%; height:auto;}.dijitProgressBarLabel {display:block; position:static; width:100%; text-align:center; background-color:transparent !important;}.dijitTooltip {position: absolute; z-index: 2000; display: block; left: 0; top: -10000px; overflow: visible;}.dijitTooltipContainer {border: solid black 2px; background: #b8b5b5; color: black; font-size: small;}.dijitTooltipFocusNode {padding: 2px 2px 2px 2px;}.dijitTooltipConnector {position: absolute;}.dj_a11y .dijitTooltipConnector {display: none;}.dijitTooltipData {display:none;}.dijitLayoutContainer {position: relative; display: block; overflow: hidden;}.dijitAlignTop,.dijitAlignBottom,.dijitAlignLeft,.dijitAlignRight {position: absolute; overflow: hidden;}body .dijitAlignClient {position: absolute;}.dijitBorderContainer, .dijitBorderContainerNoGutter {position:relative; overflow: hidden; z-index: 0;}.dijitBorderContainerPane,.dijitBorderContainerNoGutterPane {position: absolute !important; z-index: 2;}.dijitBorderContainer > .dijitTextArea {resize: none;}.dijitGutter {position: absolute; font-size: 1px;}.dijitSplitter {position: absolute; overflow: hidden; z-index: 10; background-color: #fff; border-color: gray; border-style: solid; border-width: 0;}.dj_ie .dijitSplitter {z-index: 1;}.dijitSplitterActive {z-index: 11 !important;}.dijitSplitterCover {position:absolute; z-index:-1; top:0; left:0; width:100%; height:100%;}.dijitSplitterCoverActive {z-index:3 !important;}.dj_ie .dijitSplitterCover {background: white; filter: alpha(opacity=0);}.dijitSplitterH {height: 7px; border-top:1px; border-bottom:1px; cursor: row-resize;}.dijitSplitterV {width: 7px; border-left:1px; border-right:1px; cursor: col-resize;}.dijitSplitContainer {position: relative; overflow: hidden; display: block;}.dj_ff3 .dj_a11y div.dijitSplitter:focus {outline-style:dotted; outline-width: 2px;}.dijitSplitPane {position: absolute;}.dijitSplitContainerSizerH,.dijitSplitContainerSizerV {position:absolute; font-size: 1px; background-color: ThreeDFace; border: 1px solid; border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; margin: 0;}.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb {overflow:hidden; position:absolute; top:49%;}.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb {position:absolute; left:49%;}.dijitSplitterShadow,.dijitSplitContainerVirtualSizerH,.dijitSplitContainerVirtualSizerV {font-size: 1px; background-color: ThreeDShadow; -moz-opacity: 0.5; opacity: 0.5; filter: Alpha(Opacity=50); margin: 0;}.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH {cursor: col-resize;}.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV {cursor: row-resize;}.dj_a11y .dijitSplitterH {border-top:1px solid #d3d3d3 !important; border-bottom:1px solid #d3d3d3 !important;}.dj_a11y .dijitSplitterV {border-left:1px solid #d3d3d3 !important; border-right:1px solid #d3d3d3 !important;}.dijitContentPane {display: block; overflow: auto;}.dijitContentPaneSingleChild {overflow: hidden;}.dijitContentPaneLoading .dijitIconLoading,.dijitContentPaneError .dijitIconError {margin-right: 9px;}.dijitTitlePane {display: block; overflow: hidden;}.dijitTitlePaneTitle {cursor: pointer;}.dijitFixedOpen, .dijitFixedClosed {cursor: default;}.dijitFixedOpen .dijitArrowNode, .dijitFixedOpen .dijitArrowNodeInner,.dijitFixedClosed .dijitArrowNode, .dijitFixedClosed .dijitArrowNodeInner{display: none;}.dijitTitlePaneTitle * {vertical-align: middle;}.dijitTitlePane .dijitArrowNodeInner {display: none;}.dj_a11y .dijitTitlePane .dijitArrowNodeInner {display:inline !important; font-family: monospace;}.dj_a11y .dijitTitlePane .dijitArrowNode {display:none;}.dj_ie6 .dijitTitlePaneContentOuter,.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {zoom: 1;}.dijitColorPalette {border: 1px solid #999; background: #fff; position: relative;}.dijitColorPalette .dijitPaletteTable {padding: 2px 3px 3px 3px; position: relative; overflow: hidden; outline: 0; border-collapse: separate;}.dj_ie6 .dijitColorPalette .dijitPaletteTable,.dj_ie7 .dijitColorPalette .dijitPaletteTable,.dj_iequirks .dijitColorPalette .dijitPaletteTable {padding: 0; margin: 2px 3px 3px 3px;}.dijitColorPalette .dijitPaletteCell {font-size: 1px; vertical-align: middle; text-align: center; background: none;}.dijitColorPalette .dijitPaletteImg {padding: 1px; border: 1px solid #999; margin: 2px 1px; cursor: default; font-size: 1px;}.dj_gecko .dijitColorPalette .dijitPaletteImg {padding-bottom: 0;}.dijitColorPalette .dijitColorPaletteSwatch {width: 14px; height: 12px;}.dijitPaletteTable td {padding: 0;}.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {border: 1px solid #000;}.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {border: 2px solid #000; margin: 1px 0;}.dj_a11y .dijitColorPalette .dijitPaletteTable,.dj_a11y .dijitColorPalette .dijitPaletteTable * {background-color: transparent !important;}.dijitAccordionContainer {border:1px solid #b7b7b7; border-top:0 !important;}.dijitAccordionTitle {cursor: pointer;}.dijitAccordionTitleSelected {cursor: default;}.dijitAccordionTitle .arrowTextUp,.dijitAccordionTitle .arrowTextDown {display: none; font-size: 0.65em; font-weight: normal !important;}.dj_a11y .dijitAccordionTitle .arrowTextUp,.dj_a11y .dijitAccordionTitleSelected .arrowTextDown {display: inline;}.dj_a11y .dijitAccordionTitleSelected .arrowTextUp {display: none;}.dijitAccordionChildWrapper {overflow: hidden;}.dijitCalendarContainer {width: auto;}.dijitCalendarContainer th, .dijitCalendarContainer td {padding: 0; vertical-align: middle;}.dijitCalendarYearLabel {white-space: nowrap;}.dijitCalendarNextYear {margin:0 0 0 0.55em;}.dijitCalendarPreviousYear {margin:0 0.55em 0 0;}.dijitCalendarIncrementControl {vertical-align: middle;}.dijitCalendarIncrementControl,.dijitCalendarDateTemplate,.dijitCalendarMonthLabel,.dijitCalendarPreviousYear,.dijitCalendarNextYear {cursor: pointer;}.dijitCalendarDisabledDate {color: gray; text-decoration: line-through; cursor: default;}.dijitSpacer {position: relative; height: 1px; overflow: hidden; visibility: hidden;}.dijitCalendarMonthMenu .dijitCalendarMonthLabel {text-align:center;}.dijitMenu {border:1px solid black; background-color:white;}.dijitMenuTable {border-collapse:collapse; border-width:0; background-color:white;}.dj_webkit .dijitMenuTable td[colspan="2"]{border-right:hidden;}.dijitMenuItem {text-align: left; white-space: nowrap; padding:.1em .2em; cursor:pointer;}.dijitMenuItem:focus {outline: none}.dijitMenuPassive .dijitMenuItemHover,.dijitMenuItemSelected {background-color:black; color:white;}.dijitMenuItemIcon, .dijitMenuExpand {background-repeat: no-repeat;}.dijitMenuItemDisabled * {opacity:0.5; cursor:default;}.dj_ie .dj_a11y .dijitMenuItemDisabled,.dj_ie .dj_a11y .dijitMenuItemDisabled *,.dj_ie .dijitMenuItemDisabled * {color: gray; filter: alpha(opacity=35);}.dijitMenuItemLabel {position: relative; vertical-align: middle;}.dj_a11y .dijitMenuItemSelected {border: 1px dotted black !important;}.dj_ff3 .dj_a11y .dijitMenuItem td {padding: 0 !important; background:none !important;}.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {border-width: 1px; border-style: solid;}.dj_ie8 .dj_a11y .dijitMenuItemLabel {position:static;}.dijitMenuExpandA11y {display: none;}.dj_a11y .dijitMenuExpandA11y {display: inline;}.dijitMenuSeparator td {border: 0; padding: 0;}.dijitMenuSeparatorTop {height: 50%; margin: 0; margin-top:3px; font-size: 1px;}.dijitMenuSeparatorBottom {height: 50%; margin: 0; margin-bottom:3px; font-size: 1px;}.dijitCheckedMenuItemIconChar {vertical-align: middle; visibility:hidden;}.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar {visibility: visible;}.dj_a11y .dijitCheckedMenuItemIconChar {display:inline !important;}.dj_a11y .dijitCheckedMenuItemIcon {display: none;}.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {margin: 0;}.dijitStackController .dijitToggleButtonChecked * {cursor: default;}.dijitTabContainer {z-index: 0; overflow-y: visible;}.dj_ie6 .dijitTabContainer {overflow: hidden;}.dijitTabContainerNoLayout {width: 100%;}.dijitTabContainerBottom-tabs,.dijitTabContainerTop-tabs,.dijitTabContainerLeft-tabs,.dijitTabContainerRight-tabs {z-index: 1; overflow: visible !important;}.dijitTabController {z-index: 1;}.dijitTabContainerBottom-container,.dijitTabContainerTop-container,.dijitTabContainerLeft-container,.dijitTabContainerRight-container {z-index:0; overflow: hidden; border: 1px solid black;}.nowrapTabStrip {width: 50000px; display: block; position: relative; text-align: left; z-index: 1;}.dijitTabListWrapper {overflow: hidden; z-index: 1;}.dj_a11y .tabStripButton img {display: none;}.dijitTabContainerTop-tabs {border-bottom: 1px solid black;}.dijitTabContainerTop-container {border-top: 0;}.dijitTabContainerLeft-tabs {border-right: 1px solid black; float: left;}.dijitTabContainerLeft-container {border-left: 0;}.dijitTabContainerBottom-tabs {border-top: 1px solid black;}.dijitTabContainerBottom-container {border-bottom: 0;}.dijitTabContainerRight-tabs {border-left: 1px solid black; float: left;}.dijitTabContainerRight-container {border-right: 0;}div.dijitTabDisabled, .dj_ie div.dijitTabDisabled {cursor: auto;}.dijitTab {position:relative; cursor:pointer; white-space:nowrap; z-index:3;}.dijitTab * {vertical-align: middle;}.dijitTabChecked {cursor: default;}.dijitTabContainerTop-tabs .dijitTab {top: 1px;}.dijitTabContainerBottom-tabs .dijitTab {top: -1px;}.dijitTabContainerLeft-tabs .dijitTab {left: 1px;}.dijitTabContainerRight-tabs .dijitTab {left: -1px;}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab {display:inline-block; #zoom: 1; #display:inline;}.tabStripButton {z-index: 12;}.dijitTabButtonDisabled .tabStripButton {display: none;}.dijitTabCloseButton {margin-left: 1em;}.dijitTabCloseText {display:none;}.dijitTab .tabLabel {min-height: 15px; display: inline-block;}.dijitNoIcon {display: none;}.dj_ie6 .dijitTab .dijitNoIcon {display: inline; height: 15px; width: 1px;}.dj_a11y .dijitTabCloseButton {background-image: none !important; width: auto !important; height: auto !important;}.dj_a11y .dijitTabCloseText {display: inline;}.dijitTabPane,.dijitStackContainer-child,.dijitAccordionContainer-child {border: none !important;}.dijitInlineEditBoxDisplayMode {border: 1px solid transparent; cursor: text;}.dj_a11y .dijitInlineEditBoxDisplayMode,.dj_ie6 .dijitInlineEditBoxDisplayMode {border: none;}.dijitInlineEditBoxDisplayModeHover,.dj_a11y .dijitInlineEditBoxDisplayModeHover,.dj_ie6 .dijitInlineEditBoxDisplayModeHover {background-color: #e2ebf2; border: solid 1px black;}.dijitInlineEditBoxDisplayModeDisabled {cursor: default;}.dijitTree {overflow: auto;}.dijitTreeIndent {width: 19px;}.dijitTreeRow, .dijitTreeContent {white-space: nowrap;}.dijitTreeRow img {vertical-align: middle;}.dijitTreeContent {cursor: default;}.dijitExpandoText {display: none;}.dj_a11y .dijitExpandoText {display: inline; padding-left: 10px; padding-right: 10px; font-family: monospace; border-style: solid; border-width: thin; cursor: pointer;}.dijitTreeLabel {margin: 0 4px;}.dijitDialog {position: absolute; z-index: 999; overflow: hidden;}.dijitDialogTitleBar {cursor: move;}.dijitDialogFixed .dijitDialogTitleBar {cursor:default;}.dijitDialogCloseIcon {cursor: pointer;}.dijitDialogUnderlayWrapper {position: absolute; left: 0; top: 0; z-index: 998; display: none; background: transparent !important;}.dijitDialogUnderlay {background: #eee; opacity: 0.5;}.dj_ie .dijitDialogUnderlay {filter: alpha(opacity=50);}.dj_a11y .dijitSpinnerButtonContainer,.dj_a11y .dijitDialog {opacity: 1 !important; background-color: white !important;}.dijitDialog .closeText {display:none; position:absolute;}.dj_a11y .dijitDialog .closeText {display:inline;}.dijitSliderMoveable {z-index:99; position:absolute !important; display:block; vertical-align:middle;}.dijitSliderMoveableH {right:0;}.dijitSliderMoveableV {right:50%;}.dj_a11y div.dijitSliderImageHandle,.dijitSliderImageHandle {margin:0; padding:0; position:relative !important; border:8px solid gray; width:0; height:0; cursor: pointer;}.dj_iequirks .dj_a11y .dijitSliderImageHandle {font-size: 0;}.dj_ie7 .dijitSliderImageHandle {overflow: hidden;}.dj_ie7 .dj_a11y .dijitSliderImageHandle {overflow: visible;}.dj_a11y .dijitSliderFocused .dijitSliderImageHandle {border:4px solid #000; height:8px; width:8px;}.dijitSliderImageHandleV {top:-8px; right: -50%;}.dijitSliderImageHandleH {left:50%; top:-5px; vertical-align:top;}.dijitSliderBar {border-style:solid; border-color:black; cursor: pointer;}.dijitSliderBarContainerV {position:relative; height:100%; z-index:1;}.dijitSliderBarContainerH {position:relative; z-index:1;}.dijitSliderBarH {height:4px; border-width:1px 0;}.dijitSliderBarV {width:4px; border-width:0 1px;}.dijitSliderProgressBar {background-color:red; z-index:1;}.dijitSliderProgressBarV {position:static !important; height:0; vertical-align:top; text-align:left;}.dijitSliderProgressBarH {position:absolute !important; width:0; vertical-align:middle; overflow:visible;}.dijitSliderRemainingBar {overflow:hidden; background-color:transparent; z-index:1;}.dijitSliderRemainingBarV {height:100%; text-align:left;}.dijitSliderRemainingBarH {width:100% !important;}.dijitSliderBumper {overflow:hidden; z-index:1;}.dijitSliderBumperV {width:4px; height:8px; border-width:0 1px;}.dijitSliderBumperH {width:8px; height:4px; border-width:1px 0;}.dijitSliderBottomBumper,.dijitSliderLeftBumper {background-color:red;}.dijitSliderTopBumper,.dijitSliderRightBumper {background-color:transparent;}.dijitSliderDecoration {text-align:center;}.dijitSliderDecorationC,.dijitSliderDecorationV {position: relative;}.dijitSliderDecorationH {width: 100%;}.dijitSliderDecorationV {height: 100%; white-space: nowrap;}.dijitSliderButton {font-family:monospace; margin:0; padding:0; display:block;}.dj_a11y .dijitSliderButtonInner {visibility:visible !important;}.dijitSliderButtonContainer {text-align:center; height:0;}.dijitSliderButtonContainer * {cursor: pointer;}.dijitSlider .dijitButtonNode {padding:0; display:block;}.dijitRuleContainer {position:relative; overflow:visible;}.dijitRuleContainerV {height:100%; line-height:0; float:left; text-align:left;}.dj_opera .dijitRuleContainerV {line-height:2%;}.dj_ie .dijitRuleContainerV {line-height:normal;}.dj_gecko .dijitRuleContainerV {margin:0 0 1px 0;}.dijitRuleMark {position:absolute; border:1px solid black; line-height:0; height:100%;}.dijitRuleMarkH {width:0; border-top-width:0 !important; border-bottom-width:0 !important; border-left-width:0 !important;}.dijitRuleLabelContainer {position:absolute;}.dijitRuleLabelContainerH {text-align:center; display:inline-block;}.dijitRuleLabelH {position:relative; left:-50%;}.dijitRuleLabelV {text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}.dijitRuleMarkV {height:0; border-right-width:0 !important; border-bottom-width:0 !important; border-left-width:0 !important; width:100%; left:0;}.dj_ie .dijitRuleLabelContainerV {margin-top:-.55em;}.dj_a11y .dijitSliderReadOnly,.dj_a11y .dijitSliderDisabled {opacity:0.6;}.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {filter: alpha(opacity=40);}.dj_a11y .dijitSlider .dijitSliderButtonContainer div {font-family: monospace; font-size: 1em; line-height: 1em; height: auto; width: auto; margin: 0 4px;}.dj_a11y .dijitButtonContents .dijitButtonText,.dj_a11y .dijitTab .tabLabel {display: inline !important;}.dj_a11y .dijitSelect .dijitButtonText {display: inline-block !important;}.dijitSelectError .dijitButtonContents .dijitButtonText {display: none !important;}.dijitTextArea {width:100%; overflow-y: auto;}.dijitTextArea[cols] {width:auto;}.dj_ie .dijitTextAreaCols {width:auto;}.dijitExpandingTextArea {resize: none;}.dijitToolbarSeparator {height: 18px; width: 5px; padding: 0 1px; margin: 0;}.dijitIEFixedToolbar {position:absolute; top: expression(eval((document.documentElement||document.body).scrollTop));}.dijitEditor {display: block;}.dijitEditorDisabled,.dijitEditorReadOnly {color: gray;}.dijitTimePickerItemInner {text-align:center; border:0; padding:2px 8px 2px 8px;}.dijitTimePickerTick,.dijitTimePickerMarker {border-bottom:1px solid gray;}.dijitTimePicker .dijitDownArrowButton {border-top: none !important;}.dijitTimePickerTick {color:#CCC;}.dijitTimePickerMarker {color:black; background-color:#CCC;}.dijitTimePickerItemSelected {font-weight:bold; color:#333; background-color:#b7cdee;}.dijitTimePickerItemHover {background-color:gray; color:white; cursor:pointer;}.dijitTimePickerItemDisabled {color:gray; text-decoration:line-through;}.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {border: solid 4px black;}.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {border: dashed 4px black;}.dijitToggleButtonIconChar {display:none !important;}.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {display:inline !important; visibility:hidden;}.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText {font-family: "Arial Unicode MS";}.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {display: inline !important; visibility:visible !important;}.dijitArrowButtonChar {display:none !important;}.dj_a11y .dijitArrowButtonChar {display:inline !important;}.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,.dj_a11y .dijitComboButton .dijitArrowButtonInner {display:none !important;}.dj_a11y .dijitSelect {border-collapse: separate !important; border-width: 1px; border-style: solid;}.dj_ie .dijitSelect {vertical-align: middle;}.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie8 .dijitSelect .dijitButtonText {vertical-align: top;}.dj_ie6 .dijitTextBox .dijitInputContainer,.dj_iequirks .dijitTextBox .dijitInputContainer,.dj_ie6 .dijitTextBox .dijitArrowButtonInner,.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,.dijitSelect .dijitSelectLabel {vertical-align: baseline;}.dijitNumberTextBox {text-align: left; direction: ltr;}.dijitNumberTextBox .dijitInputInner {text-align: inherit;}.dijitToolbar .dijitSelect {margin: 0;}.dj_webkit .dijitToolbar .dijitSelect {padding-left: 0.3em;}.dijitSelect .dijitButtonContents {padding: 0; white-space: nowrap; text-align: left; border-style: none solid none none; border-width: 1px;}.dijitSelectFixedWidth .dijitButtonContents {width: 100%;}.dijitSelectMenu .dijitMenuItemIcon {display:none;}.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {position: static;}.dijitSelectLabel *{vertical-align: baseline;}.dijitSelectSelectedOption * {font-weight: bold;}.dijitSelectMenu {border-width: 1px;}.dijitSelectMenu .dijitMenuTable {margin: 0; background-color: transparent;}.dijitForceStatic {position: static !important;}.dijitReadOnly *,.dijitDisabled *,.dijitReadOnly,.dijitDisabled {cursor: default;}.dojoDndItem {padding: 2px; -webkit-touch-callout: none; -webkit-user-select: none;}.dojoDndHorizontal .dojoDndItem {#display: inline; display: inline-block;}.dojoDndItemBefore,.dojoDndItemAfter {border: 0px solid #369;}.dojoDndItemBefore {border-width: 2px 0 0 0; padding: 0 2px 2px 2px;}.dojoDndItemAfter {border-width: 0 0 2px 0; padding: 2px 2px 0 2px;}.dojoDndHorizontal .dojoDndItemBefore {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.dojoDndHorizontal .dojoDndItemAfter {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dojoDndItemOver {cursor:pointer;}.dj_gecko .dijitArrowButtonInner INPUT,.dj_gecko INPUT.dijitArrowButtonInner {-moz-user-focus:ignore;}.dijitIconSave,.dijitIconPrint,.dijitIconCut,.dijitIconCopy,.dijitIconClear,.dijitIconDelete,.dijitIconUndo,.dijitIconEdit,.dijitIconNewTask,.dijitIconEditTask,.dijitIconEditProperty,.dijitIconTask,.dijitIconFilter,.dijitIconConfigure,.dijitIconSearch,.dijitIconApplication,.dijitIconBookmark,.dijitIconChart,.dijitIconConnector,.dijitIconDatabase,.dijitIconDocuments,.dijitIconMail,.dijitLeaf,.dijitIconFile,.dijitIconFunction,.dijitIconKey,.dijitIconPackage,.dijitIconSample,.dijitIconTable,.dijitIconUsers,.dijitFolderClosed,.dijitIconFolderClosed,.dijitFolderOpened,.dijitIconFolderOpen,.dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled.png"); width: 16px; height: 16px;}.dj_ie6 .dijitIconSave,.dj_ie6 .dijitIconPrint,.dj_ie6 .dijitIconCut,.dj_ie6 .dijitIconCopy,.dj_ie6 .dijitIconClear,.dj_ie6 .dijitIconDelete,.dj_ie6 .dijitIconUndo,.dj_ie6 .dijitIconEdit,.dj_ie6 .dijitIconNewTask,.dj_ie6 .dijitIconEditTask,.dj_ie6 .dijitIconEditProperty,.dj_ie6 .dijitIconTask,.dj_ie6 .dijitIconFilter,.dj_ie6 .dijitIconConfigure,.dj_ie6 .dijitIconSearch,.dj_ie6 .dijitIconApplication,.dj_ie6 .dijitIconBookmark,.dj_ie6 .dijitIconChart,.dj_ie6 .dijitIconConnector,.dj_ie6 .dijitIconDatabase,.dj_ie6 .dijitIconDocuments,.dj_ie6 .dijitIconMail,.dj_ie6 .dijitLeaf,.dj_ie6 .dijitIconFile,.dj_ie6 .dijitIconFunction,.dj_ie6 .dijitIconKey,.dj_ie6 .dijitIconPackage,.dj_ie6 .dijitIconSample,.dj_ie6 .dijitIconTable,.dj_ie6 .dijitIconUsers,.dj_ie6 .dijitFolderClosed,.dj_ie6 .dijitIconFolderClosed,.dj_ie6 .dijitFolderOpened,.dj_ie6 .dijitIconFolderOpen,.dj_ie6 .dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled8bit.png");}.dijitDisabled .dijitIconSave,.dijitDisabled .dijitIconPrint,.dijitDisabled .dijitIconCut,.dijitDisabled .dijitIconCopy,.dijitDisabled .dijitIconClear,.dijitDisabled .dijitIconDelete,.dijitDisabled .dijitIconUndo,.dijitDisabled .dijitIconEdit,.dijitDisabled .dijitIconNewTask,.dijitDisabled .dijitIconEditTask,.dijitDisabled .dijitIconEditProperty,.dijitDisabled .dijitIconTask,.dijitDisabled .dijitIconFilter,.dijitDisabled .dijitIconConfigure,.dijitDisabled .dijitIconSearch,.dijitDisabled .dijitIconApplication,.dijitDisabled .dijitIconBookmark,.dijitDisabled .dijitIconChart,.dijitDisabled .dijitIconConnector,.dijitDisabled .dijitIconDatabase,.dijitDisabled .dijitIconDocuments,.dijitDisabled .dijitIconMail,.dijitDisabled .dijitLeaf,.dijitDisabled .dijitIconFile,.dijitDisabled .dijitIconFunction,.dijitDisabled .dijitIconKey,.dijitDisabled .dijitIconPackage,.dijitDisabled .dijitIconSample,.dijitDisabled .dijitIconTable,.dijitDisabled .dijitIconUsers,.dijitDisabled .dijitFolderClosed,.dijitDisabled .dijitIconFolderClosed,.dijitDisabled .dijitFolderOpened,.dijitDisabled .dijitIconFolderOpen,.dijitDisabled .dijitIconError {background-image: url("../../icons/images/commonIconsObjActDisabled.png");}.dijitIconSave {background-position: 0;}.dijitIconPrint {background-position: -16px;}.dijitIconCut {background-position: -32px;}.dijitIconCopy {background-position: -48px;}.dijitIconClear {background-position: -64px;}.dijitIconDelete {background-position: -80px;}.dijitIconUndo {background-position: -96px;}.dijitIconEdit {background-position: -112px;}.dijitIconNewTask {background-position: -128px;}.dijitIconEditTask {background-position: -144px;}.dijitIconEditProperty {background-position: -160px;}.dijitIconTask {background-position: -176px;}.dijitIconFilter {background-position: -192px;}.dijitIconConfigure {background-position: -208px;}.dijitIconSearch {background-position: -224px;}.dijitIconError {background-position: -496px;} .dijitIconApplication {background-position: -240px;}.dijitIconBookmark {background-position: -256px;}.dijitIconChart {background-position: -272px;}.dijitIconConnector {background-position: -288px;}.dijitIconDatabase {background-position: -304px;}.dijitIconDocuments {background-position: -320px;}.dijitIconMail {background-position: -336px;}.dijitIconFile, .dijitLeaf {background-position: -352px;}.dijitIconFunction {background-position: -368px;}.dijitIconKey {background-position: -384px;}.dijitIconPackage{background-position: -400px;}.dijitIconSample {background-position: -416px;}.dijitIconTable {background-position: -432px;}.dijitIconUsers {background-position: -448px;}.dijitIconFolderClosed, .dijitFolderClosed {background-position: -464px;}.dijitIconFolderOpen, .dijitFolderOpened {background-position: -480px;}.dijitIconLoading {background:url("../../icons/images/loadingAnimation_rtl.gif") no-repeat; height: 20px; width: 20px;}.nihilo .dojoDndItemOver {background-image: url("images/treeHover.png");}.nihilo table.dojoDndAvatar {-moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;}.nihilo .dojoDndAvatar td {border: none;}.nihilo .dojoDndAvatar tr {border: none;}.nihilo .dojoDndAvatarHeader td {height: 20px; padding: 0 0 0 21px;}.nihilo .dojoDndAvatarItem td {padding: 2px;}.nihilo.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url("images/dndNoMove.png"); background-repeat: no-repeat; background-position: 2px center;}.nihilo.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url("images/dndNoCopy.png"); background-repeat: no-repeat; background-position: 2px center;}.nihilo.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url("images/dndMove.png"); background-repeat: no-repeat; background-position: 2px center;}.nihilo.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url("images/dndCopy.png"); background-repeat: no-repeat; background-position: 2px center;}.nihilo .dijitContentPane {padding: 0;}.nihilo .dijitTabContainerTop-dijitContentPane,.nihilo .dijitTabContainerLeft-dijitContentPane,.nihilo .dijitTabContainerRight-dijitContentPane,.nihilo .dijitTabContainerBottom-dijitContentPane,.nihilo .dijitAccordionContainer-dijitContentPane {background-color: #fff; padding: 5px;}.nihilo .dijitSplitContainer-dijitContentPane,.nihilo .dijitBorderContainer-dijitContentPane {background-color: #fff; padding: 5px;}.nihilo .dijitMenu,.nihilo .dijitMenuBar {border: 1px solid #d3d3d3; margin: 0; padding: 0; background-color: #fff;}.nihilo .dijitBorderContainer .dijitMenuBar {border: 1px #ccc solid;}.nihilo .dijitMenuItem {font-family: sans-serif; margin: 0; color: #243C5F;}.nihilo .dijitMenuBar .dijitMenuItem {padding: 4px 5px;}.nihilo .dijitMenuPreviousButton, .nihilo .dijitMenuNextButton {font-style: italic;}.nihilo .dijitMenuItem TD {padding:1px;}.nihilo .dijitMenuPassive .dijitMenuItemHover,.nihilo .dijitComboBoxMenu .dijitMenuItemHover,.nihilo .dijitMenuItemSelected {background-color: #ffe284; color: #243C5F;}.nihilo .dijitMenuItemIcon {width: 15px; height: 15px;}.nihilo .dijitMenuExpand {width:15px; height:15px; background-image: url("images/spriteRoundedIconsSmall.png"); background-position: -30px top;}.dj_ie6 .nihilo .dijitMenuExpand {background-image:url("images/spriteRoundedIconsSmall.gif");}.nihilo .dijitMenuSeparator {height: 1px;}.nihilo .dijitMenuSeparatorTop {border-bottom: 1px solid #fff;}.nihilo .dijitMenuSeparatorBottom {border-top: 1px solid #d3d3d3;}.nihilo .dijitCheckedMenuItemIconChar {display: none;}.nihilo .dijitCheckedMenuItemIcon {background-image: url("images/spriteCheckbox.gif"); background-position: -80px;}.nihilo .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: -64px;}.nihilo .dijitTabContainer .tabStripRBtn {margin-right: 21px;}.nihilo .dijitTabContainer .tabStripLBtn {margin-left: 21px;}.nihilo .dijitTabContainerBottom .nowrapTabStrip .dijitTab {top: 0;}.nihilo .dijitTabPaneWrapper {background:#fff; border:1px solid #ccc; margin: 0; padding: 0;}.nihilo .dijitTab {padding:3px 6px 3px 4px; background: url("images/tabContainerSprite.gif") repeat-x 0 -350px; position: relative; line-height:normal; margin: 0 1px; color: #6d6d6d; border: 1px #dedede solid; border-bottom: 1px #ccc solid;}.nihilo .dijitTabHover {color: #243C5F; background: url("images/tabContainerSprite.gif") repeat-x 0 -200px;}.nihilo .dijitTabChecked {background: url("images/tabContainerSprite.gif") repeat-x 0 -50px; color: #243C5F !important;}.nihilo .dijitTabContainerNested .dijitTabListWrapper {height: auto;}.nihilo .dijitTabContainerTabListNested {background: #FDFDFD; border: none; margin-bottom: 0;}.nihilo .dijitTabContainerTabListNested .dijitTab {background: none; border: none; top: 0;}.nihilo .dijitTabContainerTabListNested .dijitTabHover .tabLabel {text-decoration: underline;}.nihilo .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {text-decoration: underline; font-weight: bold;}.nihilo .dijitTabContainerSpacerNested {height: 0; border-bottom: 0;}.nihilo .dijitTabPaneWrapperNested {border: none;}.nihilo .dijitTabCloseButton {background: url("images/spriteRoundedIconsSmall.png") no-repeat -60px top; width: 15px; height: 15px; margin-top: -1px;}.dj_ie6 .nihilo .dijitTabCloseButton {background: url("images/spriteRoundedIconsSmall.gif") no-repeat -60px top;}.nihilo .dijitTabCloseButtonHover {background: url("images/spriteRoundedIconsSmall.png") no-repeat -60px -15px;}.dj_ie6 .nihilo .dijitTabCloseButtonHover {background: url("images/spriteRoundedIconsSmall.gif") no-repeat -60px -15px;}.nihilo .dijitTabContainerTop-tabs {border-bottom: none; padding-bottom: 1px; background-position: bottom; padding-left: 3px;}.nihilo .dijitTabContainerTop-tabs .dijitTab {border-radius: 4px 4px 0 0; -moz-border-radius: 4px 4px 0 0;}.dj_ie6 .nihilo .dijitTabListContainer-top,.dj_ie7 .nihilo .dijitTabListContainer-top {z-index: 3;}.dj_ie6 .nihilo .dijitTabContainerTop-tabs,.dj_ie7 .nihilo .dijitTabContainerTop-tabs {border-bottom: 1px solid #ccc; padding-bottom: 0;}.nihilo .dijitTabContainerTopNoStrip {padding-top: 3px;}.nihilo .dijitTabContainerTop-container {border-top: none;}.nihilo .dijitTabContainerTop-tabs .dijitTabChecked {border-bottom-color: #f8f8f8;}.nihilo .dijitTabContainer .dijitTabContainerTopStrip {border-bottom: none; padding-top: 1px; margin-top: 1px; background: #f2f2f2; border-top: 1px solid #CCC; border-right: 1px solid #CCC; border-left: 1px solid #CCC;}.nihilo .dijitTabContainerBottom-tabs {border-top: none; background-position: top; padding-left: 3px;}.nihilo .dijitTabContainerBottom-tabs .dijitTab {border-radius: 0 0 4px 4px; -moz-border-radius: 0 0 4px 4px; border-bottom: none; border-top: 1px solid #ccc; padding-top: 3px; padding-bottom: 3px; background: url("images/tabBottomEnabledC.gif") repeat-x bottom left;}.nihilo .dijitTabContainerBottom-tabs .dijitTabHover {color: #243C5F; background: url("images/tabBottomHoverC.gif") repeat-x bottom left;}.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked {border-top-color: #f8f8f8; background: url("images/tabBottomActiveC.gif") repeat-x bottom left;}.dj_ie6 .nihilo .dijitTabListContainer-bottom,.dj_ie7 .nihilo .dijitTabListContainer-bottom {z-index: 3;}.dj_ie6 .nihilo .dijitTabContainerBottom-tabs,.dj_ie7 .nihilo .dijitTabContainerBottom-tabs {border-top: 1px solid #ccc; margin-top: -1px;}.nihilo .dijitTabContainerBottom-container {border-bottom: none;}.nihilo .dijitTabContainer .dijitTabContainerBottomStrip {border: 1px solid #ccc; background: #f2f2f2; border-top: none; padding-bottom: 2px;}.nihilo .dijitTabContainerBottom-spacer,.nihilo .dijitTabContainerTop-spacer {height: 2px; border: 1px solid #ccc;}.nihilo .dijitTabContainerTop-spacer {margin-top: -1px; background: #f3f3f3;}.nihilo .dijitTabContainerBottom-spacer {margin-bottom: -1px; background: #f8f8f8;}.nihilo .dijitTabContainerRight-tabs {border-color: #ccc; padding-top: 3px;}.nihilo .dijitTabContainerRight-tabs .dijitTab {border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-left: 1px solid #ccc; border-bottom: 1px solid #dedede !important;}.nihilo .dijitTabContainerRight .dijitTabListWrapper {padding-right: 3px;}.nihilo .dijitTabContainerRight-tabs .dijitTabChecked {border-left: 1px solid #f8f8f8;}.nihilo .dijitTabContainerRight-container {border-right: none;}.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTab {border-bottom: solid #fff 1px;}.nihilo .dijitTabContainerRight-tabs .dijitTabChecked {border-left-color: #f8f8f8;}.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabChecked,.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabCheckedHover {border-bottom: solid #efefef 1px;}.nihilo .dijitTabContainerRightStrip {padding-right: 2px; border: 1px solid #ccc; border-left: none; background: #f2f2f2;}.nihilo .dijitTabContainerLeft-tabs {border-color: #ccc; padding-top: 3px;}.nihilo .dijitTabContainerLeft-tabs .dijitTab {border-radius: 4px 0 0 4px; -moz-border-radius: 4px 0 0 4px; border-right: 1px solid #ccc; border-bottom: 1px solid #dedede;}.nihilo .dijitTabContainerLeft-tabs .dijitTabChecked {border-right: 1px solid #f8f8f8;}.nihilo .dijitTabContainerLeft-container {border-left: none;}.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabChecked,.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabCheckedHover {border-bottom: solid #efefef 1px;}.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabInnerDiv {border-bottom: solid #fff 1px;}.nihilo .dijitTabContainerLeftStrip {padding-left: 2px; border: 1px solid #ccc; border-right: none;}.nihilo .dijitTabContainerLeftStrip {background: #f2f2f2;}.nihilo .dijitTabContainerLeft-tabs .dijitTab,.nihilo .dijitTabContainerRight-tabs .dijitTab {margin: 1px 0;}.nihilo .dijitTabContainerLeft-spacer,.nihilo .dijitTabContainerRight-spacer {width: 2px; border: 1px solid #ccc; background: #f8f8f8;}.nihilo .dijitTabContainerRight-spacer {border-right: none;}.nihilo .dijitTabContainerRight-tabs {padding-top: 3px; height: 100%;}.nihilo .dijitTabContainerLeft-tabs {height: 100%;}.nihilo .dijitTabContainerLeft-spacer {border-left: none;}.nihilo .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs {border-left: 0 solid #ccc; border-top: 0 solid #ccc; border-right: 0 solid #ccc; padding-top: 0; padding-left: 0;}.nihilo .dijitTabContainer .tabStripButton {margin-right: 0; padding: 5px 3px 6px 0px;}.dj_ie6 .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent,.dj_ie7 .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent,.dj_opera .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent {padding-bottom: 7px;}.dj_ie6 .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent,.dj_ie7 .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent,.dj_opera .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent {padding-top: 4px;}.nihilo .dijitTabStripIcon {height: 14px; width: 14px; background: url("images/spriteRoundedIconsSmall.png") no-repeat left top;}.dj_ie6 .nihilo .dijitTabStripIcon {background-image: url("images/spriteRoundedIconsSmall.gif");}.nihilo .dijitTabStripSlideRightIcon {background-position: -30px top;}.nihilo .dijitTabStripMenuIcon {background-position: -15px top;}.nihilo .dijitTabContainerTopNone {padding-top: 0;}.nihilo .dijitTabContainer .tabStripButton-top {margin-top: 1px;}.nihilo .dijitTabContainer .tabStripButton-bottom {border-bottom: medium none; border-top: 1px solid #CCCCCC;}.nihilo .dijitAccordionContainer {border-color: #ccc; background-color: #fff;}.nihilo .dijitAccordionTitle {background:#fafafa url("images/titleBar.png") repeat-x top left; border-top: 1px solid #dedede; padding: 5px 4px 6px 8px; font-size: 0.9em; font-weight: bold; color: #6d6d6d;}.nihilo .dijitAccordionTitleSelected {background: #f9f9f9 url("images/accordionItemActive.png") top repeat-x; font-weight: bold; border-top: 1px solid #dedede; border-bottom: 1px solid #dedede; padding: 5px 4px 5px 8px; color: #243C5F;}.nihilo .dijitAccordionArrow {background:url("images/spriteRoundedIconsSmall.gif") no-repeat -30px top; width:15px; height:15px; margin-top:-1px;}.nihilo .dijitAccordionTitleSelected .dijitAccordionArrow {background:url("images/spriteRoundedIconsSmall.gif") no-repeat -15px top; margin-top:-1px;}.nihilo .dijitAccordionText {margin-left: 4px; margin-right: 4px;}.nihilo .dijitSplitContainerSizerH {background:url("images/splitContainerSizerV.png") repeat-y #fff; border:0; border-left:0 solid #d3d3d3; border-right:0 solid #d3d3d3; width:5px;}.nihilo .dijitSplitContainerSizerH .thumb {background:url("images/splitContainerSizerV-thumb.png") no-repeat; left:1px; width:2px; height:19px;}.nihilo .dijitSplitContainerSizerV {background:url("images/splitContainerSizerH.png") repeat-x #fff; border:0; border-top:0 solid #d3d3d3; border-bottom:0 solid #d3d3d3; height:2px;}.nihilo .dijitSplitContainerSizerV .thumb {background:url("images/splitContainerSizerH-thumb.png") no-repeat; top:1px; width:19px; height:5px;}.nihilo .dijitBorderContainer {background-color: #fcfcfc; padding: 5px;}.nihilo .dijitSplitContainer-child,.nihilo .dijitBorderContainer-child {border: 1px #ccc solid;}.nihilo .dijitBorderContainer-dijitTabContainerTop,.nihilo .dijitBorderContainer-dijitTabContainerBottom,.nihilo .dijitBorderContainer-dijitTabContainerLeft,.nihilo .dijitBorderContainer-dijitTabContainerRight {border: none;}.nihilo .dijitBorderContainer-dijitBorderContainer {border: none; padding: 0;}.nihilo .dijitSplitterH,.nihilo .dijitGutterH {background:#FCFCFC; border:0; border-left:0 solid #d3d3d3; border-right:0 solid #d3d3d3; height:5px;}.nihilo .dijitSplitterH .dijitSplitterThumb {background:#8BA0BD none; height:1px; top:2px; width:19px;}.nihilo .dijitSplitterV,.nihilo .dijitGutterV {background:#FCFCFC; border:0; border-top:0 solid #d3d3d3; border-bottom:0 solid #d3d3d3; width:5px;}.nihilo .dijitSplitterV .dijitSplitterThumb {background:#8BA0BD none; height:19px; left:2px; width:1px;}.nihilo .dijitSplitterActive {font-size: 1px; background-image: none; background-color: #aaa; -moz-opacity: 0.6; opacity: 0.6; filter: Alpha(Opacity=60); margin: 0;}.nihilo .dijitInputContainer input {margin: 0 0.1em;}.nihilo .dijitSelect .dijitButtonContents,.nihilo .dijitSelect,.nihilo .dijitTextBox,.nihilo .dijitTextArea {background:#fff url("images/validationInputBg.png") repeat-x top left; #background:#fff url("images/validationInputBg.gif") repeat-x top left;}.nihilo .dijitSelect,.nihilo .dijitTextBox,.nihilo .dijitTextArea {border:1px solid #d3d3d3;}.nihilo .dijitSelect .dijitArrowButton,.nihilo .dijitComboBox .dijitButtonNode {padding: 0 0.2em;}.nihilo .dijitSelect .dijitButtonContents,.nihilo .dijitTextBox .dijitButtonNode {border-color: #d3d3d3;}.nihilo .dijitSelectFocused,.nihilo .dijitTextBoxFocused,.nihilo .dijitTextAreaFocused {border-color:#b3b3b3;}.nihilo .dijitSelectFocused TD,.nihilo .dijitTextBoxFocused .dijitButtonNode,.nihilo .dijitSpinner .dijitUpArrowButtonActive,.nihilo .dijitSpinner .dijitDownArrowButtonActive {border-color:#d3d3d3;}.nihilo .dijitSpinnerFocused .dijitDownArrowButton,.nihilo .dijitSpinner .dijitUpArrowButtonActive,.nihilo .dijitSpinner .dijitDownArrowButtonActive {border-top-color:#d3d3d3;}.nihilo .dijitError {border-color:#b3b3b3; background-color:#f9f7ba; background-image:none;}.nihilo .dijitErrorFocused {background-color:#ff6; background-image:none;}.nihilo .dijitValidationTextBoxError .dijitValidationIcon {width: 16px; background: transparent url("images/warning.png") no-repeat center center;}.nihilo .dijitComboBoxHighlightMatch {background-color:#d3d3d3;}.nihilo .dijitButtonNode {border:1px solid #dedede; border-bottom:1px solid #dedede; padding: 0.1em 0.2em 0.2em 0.2em; background: #fff url("images/buttonEnabled.png") repeat-x top left;}.nihilo .dijitButtonText {text-align: center; padding: 0 0.3em;}.nihilo .dijitInputField {padding: 0;}.nihilo .dijitComboBox .dijitButtonNode {border-width: 0 0 0 1px;}.nihilo .dijitArrowButton {color: #111;}.nihilo .dijitComboButton .dijitDownArrowButton {padding-right:4px;}.nihilo .dijitComboBoxReadOnly,.nihilo .dijitSpinnerReadOnly,.nihilo .dijitSpinnerReadOnly .dijitButtonNode,.nihilo .dijitButtonDisabled .dijitButtonNode,.nihilo .dijitToggleButtonDisabled .dijitButtonNode,.nihilo .dijitDropDownButtonDisabled .dijitButtonNode,.nihilo .dijitComboButtonDisabled .dijitButtonNode,.nihilo .dijitComboBoxDisabled,.nihilo .dijitSpinnerDisabled,.nihilo .dijitSpinnerDisabled .dijitButtonNode {border-color: #dedede; background:#fafafa url("images/buttonDisabled.png") top repeat-x; opacity: 0.60;}.dj_ie6 .nihilo .dijitReadOnly input,.dj_ie7 .nihilo .dijitReadOnly input,.dj_ie6 .nihilo .dijitComboButtonDisabled .dijitButtonText,.dj_ie7 .nihilo .dijitComboButtonDisabled .dijitButtonText {color: #aaa;}.nihilo .dijitButtonHover .dijitButtonNode,.nihilo .dijitButtonNodeHover,.nihilo .dijitToggleButtonHover .dijitButtonNode,.nihilo .dijitDropDownButtonHover .dijitButtonNode,.nihilo .dijitButtonContentsHover,.nihilo .dijitDownArrowButtonHover,.nihilo .dijitUpArrowButtonHover {color:#243C5F; background:#fcfcfc url("images/buttonHover.png") repeat-x top left;}.nihilo .dijitUpArrowButtonActive,.nihilo .dijitDownArrowButtonActive,.nihilo .dijitButtonActive .dijitButtonNode,.nihilo .dijitToggleButtonActive .dijitButtonNode,.nihilo .dijitDropDownButtonActive .dijitButtonNode,.nihilo .dijitComboButton .dijitButtonContentsActive,.nihilo .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {border-color:#dedede; background: #f5f5f5 url("images/buttonActive.png") top left repeat-x;}.nihilo .dijitArrowButtonInner {background-image: url("images/spriteArrows.png"); background-repeat: no-repeat; background-position: 0 center; width: 11px; height: 11px;}.nihilo .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -11px center;}.nihilo .dijitUpArrowButton .dijitArrowButtonInner {background-position: -22px center;}.nihilo .dijitRightArrowButton .dijitArrowButtonInner {background-position: -33px center;}.dj_ie6 .nihilo .dijitArrowButtonInner {background-image: url("images/spriteArrows.gif");}.dj_webkit .nihilo .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner {margin-top: -1px;}.dj_ie .nihilo .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner {margin-top: 1px;}.nihilo .dijitSpinnerButtonContainer {width: auto; padding: 0;}.nihilo .dijitSpinner .dijitArrowButton {width: 15px;}.nihilo .dijitSpinner .dijitSpinnerButtonInner {width: 15px;}.nihilo .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding: 0;}.nihilo .dijitToggleButton .dijitCheckBox,.nihilo .dijitToggleButton .dijitCheckBoxIcon {background-image: url("images/spriteCheckbox.gif");}.nihilo .dijitCheckBox,.nihilo .dijitCheckBoxIcon {background-image: url("images/spriteCheckbox.gif"); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0; padding: 0;}.nihilo .dijitCheckBox,.nihilo .dijitToggleButton .dijitCheckBoxIcon {background-position: -16px;}.nihilo .dijitCheckBoxChecked,.nihilo .dijitToggleButtonChecked .dijitCheckBoxIcon {background-position: 0;}.nihilo .dijitCheckBoxDisabled {background-position: -48px;}.nihilo .dijitCheckBoxCheckedDisabled {background-position: -32px;}.nihilo .dijitCheckBoxHover {background-position: -80px;}.nihilo .dijitCheckBoxCheckedHover {background-position: -64px;}.nihilo .dijitToggleButton .dijitRadio,.nihilo .dijitToggleButton .dijitRadioIcon {background-image: url("images/spriteRadio.gif");}.nihilo .dijitRadio,.nihilo .dijitRadioIcon {background-image: url("images/spriteRadio.gif"); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0; padding: 0;}.nihilo .dijitRadio,.nihilo .dijitToggleButton .dijitRadioIcon {background-position: -16px;}.nihilo .dijitRadioChecked,.nihilo .dijitToggleButtonChecked .dijitRadioIcon {background-position: 0;}.nihilo .dijitRadioDisabled {background-position: -48px;}.nihilo .dijitRadioCheckedDisabled {background-position: -32px;}.nihilo .dijitRadioHover {background-position: -80px;}.nihilo .dijitRadioCheckedHover {background-position: -64px;}.nihilo .dijitSliderProgressBarH {border-color: #aab0bb; background: #c0c2c5 url("images/sliderFull.png") repeat-x top left;}.nihilo .dijitSliderProgressBarV {border-color: #aab0bb; background: #c0c2c5 url("images/sliderFullVertical.png") repeat-y bottom left;}.nihilo .dijitSliderFocused .dijitSliderProgressBarH,.nihilo .dijitSliderFocused .dijitSliderLeftBumper {background-image:url("images/sliderFullFocus.png");}.nihilo .dijitSliderFocused .dijitSliderProgressBarV,.nihilo .dijitSliderFocused .dijitSliderBottomBumper {background-image:url("images/sliderFullVerticalFocus.png");}.nihilo .dijitSliderRemainingBarV {border-color: #b4b4b4; background: #dcdcdc url("images/sliderEmptyVertical.png") repeat-y bottom left;}.nihilo .dijitSliderRemainingBarH {border-color: #b4b4b4; background: #dcdcdc url("images/sliderEmpty.png") repeat-x top left;}.nihilo .dijitSliderBar {border-style: solid; outline:1px;}.nihilo .dijitSliderFocused .dijitSliderBar {border-color:#727272;}.nihilo .dijitSliderImageHandleH {border:0; width:15px; height:18px; background:url("images/preciseSliderThumb.png") no-repeat center top; #background:url("images/preciseSliderThumb.gif") no-repeat center top;}.nihilo .dijitSliderFocused .dijitSliderImageHandleH {background-image:url("images/preciseSliderThumbFocus.png"); #background-image:url("images/preciseSliderThumbFocus.gif");}.nihilo .dijitSliderLeftBumper {border-left-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("images/sliderFull.png") repeat-x top left;}.nihilo .dijitSliderRightBumper {background: #dcdcdc url("images/sliderEmpty.png") repeat-x top left; border-color: #b4b4b4; border-right-width: 1px;}.nihilo .dijitSliderImageHandleV {border:0; width:20px; height:15px; background:url("images/sliderThumb.png") no-repeat center center; #background:url("images/sliderThumb.gif") no-repeat center center;}.nihilo .dijitSliderFocused .dijitSliderImageHandleV {background-image:url("images/sliderThumbFocus.png"); #background-image:url("images/sliderThumbFocus.gif");}.nihilo .dijitSliderBottomBumper {border-bottom-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("images/sliderFullVertical.png") repeat-y bottom left;}.nihilo .dijitSliderTopBumper {background: #dcdcdc url("images/sliderEmptyVertical.png") repeat-y top left; border-color: #b4b4b4; border-top-width: 1px;}.nihilo .dijitSliderIncrementIconH,.nihilo .dijitSliderIncrementIconV {background:url("images/spriteRoundedIconsSmall.png") no-repeat -45px top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat -45px top; width:15px; height:15px;}.nihilo .dijitSliderIncrementIconH {background:url("images/spriteRoundedIconsSmall.png") no-repeat -30px top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat -30px top;}.nihilo .dijitSliderDecrementIconH,.nihilo .dijitSliderDecrementIconV {width:15px; height:15px; background:url("images/spriteRoundedIconsSmall.png") no-repeat -15px top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat -15px top;}.nihilo .dijitSliderDecrementIconH {background:url("images/spriteRoundedIconsSmall.png") no-repeat 0 top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat 0 top;}.nihilo .dijitSliderButtonInner {visibility:hidden;}.nihilo .dijitSliderReadOnly *,.nihilo .dijitSliderDisabled * {border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; color: #bdbdbd;}.nihilo .dijitSliderReadOnly .dijitSliderDecrementIconH,.nihilo .dijitSliderDisabled .dijitSliderDecrementIconH {background-position: 0 -15px;}.nihilo .dijitSliderReadOnly .dijitSliderIncrementIconH,.nihilo .dijitSliderDisabled .dijitSliderIncrementIconH {background-position: -30px -15px;}.nihilo .dijitSliderReadOnly .dijitSliderDecrementIconV,.nihilo .dijitSliderDisabled .dijitSliderDecrementIconV {background-position: -15px -15px;}.nihilo .dijitSliderReadOnly .dijitSliderIncrementIconV,.nihilo .dijitSliderDisabled .dijitSliderIncrementIconV {background-position: -45px -15px;}.nihilo .dijitSelectError .dijitButtonContents,.nihilo .dijitSelectHover .dijitArrowButton,.nihilo .dijitSelectActive .dijitArrowButton,.nihilo .dijitSelectOpened .dijitArrowButton,.nihilo .dijitSelectDisabled .dijitArrowButton,.nihilo .dijitSelectReadOnly .dijitArrowButton {background: transparent none;}.nihilo .dijitSelect .dijitArrowButton {background: #bcd5f0 url("images/buttonEnabled.png") repeat-x top left; border-width: 0;}.nihilo .dijitSelectDisabled,.nihilo .dijitSelectDisabled TD {border-color: #dedede !important; background:#fafafa url("images/buttonDisabled.png") top repeat-x;}.dj_ie .nihilo .dijitSelectDisabled TD * {filter: gray() alpha(opacity=50);}.nihilo .dijitSelectHover,.nihilo .dijitSelectHover TD {color:#000; background:#fcfcfc url("images/buttonHover.png") repeat-x top left;}.nihilo .dijitSelectActive,.nihilo .dijitSelectOpened,.nihilo .dijitSelectActive TD,.nihilo .dijitSelectOpened TD {border-color:#dedede !important; background: #f5f5f5 url("images/buttonActive.png") top left repeat-x;}.nihilo .dijitSelectMenu td {padding: 0;}.nihilo .dijitSelectMenu .dijitMenuItemLabel,.nihilo .dijitSelectMenu .dijitMenuArrowCell {padding: 0.1em 0.2em;}.nihilo .dijitTreeNode {background : url("images/treeI.gif") no-repeat; background-position : top left; background-repeat : repeat-y; zoom: 1;}.nihilo .dijitTreeIsLast {background: url("images/treeI_half.gif") no-repeat;}.nihilo .dijitTreeRowHover {background-image: url("images/treeHover.png"); background-repeat: repeat; background-color: transparent !important;}.nihilo .dijitTreeLabel {font-weight: normal; margin-left: 3px;}.nihilo .dijitTreeIsRoot {margin-left: 0; background-image: none;}.nihilo .dijitTreeExpando {width: 18px; height: 18px;}.nihilo .dijitTreeRow {padding-bottom: 2px;}.nihilo .dijitTreeContent {min-height: 18px; min-width: 18px; padding-left:1px;}.nihilo .dijitTreeExpandoOpened {background: url("images/spriteTree.gif") no-repeat -18px top;}.nihilo .dijitTreeExpandoClosed {background-image: url("images/spriteTree.gif");}.nihilo .dijitTreeExpandoLeaf {background: url("images/spriteTree.gif") no-repeat -36px top;}.nihilo .dijitTreeExpandoLoading {background-image: url("images/treeExpand_loading.gif");}.nihilo .dijitTreeIcon {width: 16px; height: 16px;}.nihilo .dijitFolderOpened {background: url("images/spriteDivIcons.gif") no-repeat -16px top;}.nihilo .dijitFolderClosed {background: url("images/spriteDivIcons.gif") no-repeat top left;}.nihilo .dijitLeaf {background: url("images/spriteDivIcons.gif") no-repeat -32px top;}.nihilo .dijitTreeNode .dojoDndItemBefore,.nihilo .dijitTreeNode .dojoDndItemAfter {border-bottom: none; border-top: none;}.nihilo .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {border-top: 2px solid #369;}.nihilo .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {border-bottom: 2px solid #369;}.nihilo .dijitProgressBar {margin:2px 0 2px 0;}.nihilo .dijitProgressBarEmpty{background:#fff url("images/progressBarEmpty.png") repeat-x center center; border-color: #f8d582 #f8d582 #f8d582 #f8d582;}.nihilo .dijitProgressBarTile{background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center;}.nihilo .dijitProgressBarFull {border-right:1px solid #f8d582;}.nihilo .dijitProgressBarLabel {color:#293a4b;}.nihilo .dijitProgressBarIndeterminate .dijitProgressBarTile {background:#cad2de url("images/progressBarAnim.gif") repeat-x center center;}.nihilo .dijitTitlePaneTitle {background: #cccccc; background:#fff url("images/titleBar.png") repeat-x top left; border:1px solid #bfbfbf; padding:3px 4px; font-size: 0.9em; font-weight: bold; color: #6d6d6d;}.nihilo .dijitTitlePaneTitleHover {background: #f9f9f9 url("images/accordionItemActive.png") top repeat-x;}.nihilo .dijitTitlePane .dijitOpen .dijitArrowNode,.nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {width:15px; height:15px;}.nihilo .dijitTitlePaneTextNode {color: #243C5F;}.nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {background: url("images/spriteRoundedIconsSmall.png") no-repeat -30px top;}.dj_ie6 .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {background:url("images/spriteRoundedIconsSmall.gif") no-repeat -30px top;}.nihilo .dijitTitlePane .dijitOpen .dijitArrowNode {background:url("images/spriteRoundedIconsSmall.png") no-repeat -15px top;}.dj_ie6 .nihilo .dijitTitlePane .dijitOpen .dijitArrowNode {background:url("images/spriteRoundedIconsSmall.gif") no-repeat -15px top;}.nihilo .dijitTitlePaneContentOuter {background: #ffffff; border:1px solid #bfbfbf; border-top: 0;}.nihilo .dijitTitlePaneContentInner {padding:10px;}.nihilo .dijitTitlePaneTextNode {margin-left: 4px; margin-right: 4px;}.nihilo .dijitCalendarIncrementControl {width:15px; height:15px; background-image: url("images/spriteRoundedIconsSmall.png"); background-repeat: no-repeat}.dj_ie6 .nihilo .dijitCalendarIncrementControl {font-size:.1em; background-image: url("images/spriteRoundedIconsSmall.gif");}.nihilo .dijitA11ySideArrow {display: none;}.nihilo .dijitCalendarDecrease {background-position: top left;}.nihilo .dijitCalendarIncrease {background-position: -30px top;}.nihilo table.dijitCalendarContainer {font-size: 100%; border-spacing: 0; border-collapse: separate; border: 1px solid #ccc; margin: 0;}.nihilo .dijitCalendarMonthContainer th {background:#d3d3d3 url("images/titleBar.png") repeat-x top; padding-top:.3em; padding-bottom:.2em; text-align:center;}.dj_ie6 .nihilo .dijitCalendarMonthContainer th {padding-top:.2em; padding-bottom:.1em;}.nihilo .dijitCalendarDayLabelTemplate {background:#fefefe; font-weight:normal; padding-top:.15em; padding-bottom:.2em; border-bottom: 1px solid #eeeeee; color:#293a4b; text-align:center;}.nihilo .dijitCalendarBodyContainer {border-bottom: 1px solid #eeeeee;}.nihilo .dijitCalendarMonthLabel {color:#293a4b; font-weight: bold; padding: 0 4px;}.nihilo .dijitCalendarDateTemplate {font-size: 0.9em; font-weight: bold; text-align: center; padding: 0.3em 0.3em 0.05em 0.3em; letter-spacing: 1px; background-color: #fdfdfd; border:#fdfdfd solid 1px !important;}.dj_ie .nihilo .dijitCalendarDateTemplate {padding: 0.1em .33em 0.02em .33em;}.nihilo .dijitCalendarPreviousMonth,.nihilo .dijitCalendarNextMonth {color:#999999; background-color:#f5f5f5 !important; border:#f5f5f5 solid 1px !important;}.nihilo .dijitCalendarCurrentMonth {}.nihilo .dijitCalendarDisabledDate {text-decoration:line-through !important;}.nihilo .dijitCalendarCurrentDate {text-decoration:underline; font-weight:bold;}.nihilo .dijitCalendarSelectedDate {background-color:#ffe284 !important; color:black !important; border:#f7c95c solid 1px !important;}.nihilo .dijitCalendarYearContainer {background:white url("images/titleBar.png") repeat-x top;}.nihilo .dijitCalendarYearLabel {margin:0; padding:0.4em 0 0.25em 0; text-align:center; font-size: 1.17em;}.nihilo .dijitCalendarSelectedYear {font-weight:bolder; color:black; padding:0.2em; padding-bottom:0.1em; background-color:#ffe284 !important; border:#f7c95c solid 1px !important;}.nihilo .dijitCalendarNextYear,.nihilo .dijitCalendarPreviousYear {color:black !important; font-weight:normal;}.nihilo .dijitCalendar .dijitDropDownButton {margin: 0;}.nihilo .dijitCalendar .dijitButtonText {padding: 0;}.nihilo .dijitCalendar .dijitDropDownButton .dijitButtonNode {background-color: transparent; background-image: none; padding: 0;}.nihilo .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover {background-color: #ffe284; color: #243C5F;}.nihilo .dijitTimePickerTick,.nihilo .dijitTimePickerMarker {border-color: #eeeeee;}.nihilo .dijitTimePickerTick {color:white;}.nihilo .dijitTimePickerMarker {background:#d3d3d3 url("images/titleBar.png") repeat-x top; color:#293a4b; font-weight: bold;}.nihilo .dijitTimePickerItemSelected {color: black; background: #ffe284 none;}.nihilo .dijitTimePickerItemHover {background: #d6d6dd none; color:black;}.nihilo .dijitTimePickerItemHover,.nihilo .dijitTimePickerItemSelected {position: relative; z-index: 10;}.nihilo .dijitTimePickerTick .dijitTimePickerItemInner {font-size:0.4em;}.nihilo .dijitTimePickerItemHover .dijitTimePickerItemInner,.nihilo .dijitTimePickerItemSelected .dijitTimePickerItemInner {font-size:1em;}.nihilo .dijitTimePickerMarkerHover {border-top: 1px solid #eeeeee;}.nihilo .dijitTimePickerTickHover,.nihilo .dijitTimePickerTickSelected {margin-top:-0.3em; margin-bottom:-0.3em; border-bottom: none;}.nihilo .dijitToolbar {border-bottom: 1px solid #ccc; background:#eaeaea url("images/titleBar.png") repeat-x top left;}.dj_ie6 .nihilo .dijitToolbar {height: 10px;}.nihilo .dijitToolbar .dijitButtonNode,.nihilo .dijitToolbar .dijitComboButton .dijitButtonContents,.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; margin: 0; padding: 0; border: none; font-size: 12px;}.nihilo .dijitToolbar .dijitButton,.nihilo .dijitToolbar .dijitToggleButton,.nihilo .dijitToolbar .dijitDropDownButton,.nihilo .dijitToolbar .dijitComboButton .dijitButtonContents,.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; padding: 1px;}.nihilo .dijitToolbar .dijitButtonChecked,.nihilo .dijitToolbar .dijitToggleButtonChecked {background-color:#ffeeb9; border:1px solid #f7c95c; padding: 0;}.nihilo .dijitToolbar .dijitButtonCheckedHover,.nihilo .dijitToolbar .dijitToggleButtonCheckedHover {background-color:#ffe284; border:1px solid #f7c95c; padding: 0;}.nihilo .dijitToolbar .dijitButtonHover,.nihilo .dijitToolbar .dijitToggleButtonHover,.nihilo .dijitToolbar .dijitDropDownButtonHover,.nihilo .dijitToolbar .dijitComboButton .dijitButtonContentsHover,.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover {border: 1px solid #f7c95c; padding: 0; background-color:#ffe284;}.nihilo .dijitToolbar label {padding: 3px 3px 0 6px;}.dj_ie .nihilo .dijitToolbar .dijitComboButton .dijitButtonContentsFocused,.dj_ie .nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused {border: 1px #555 dotted !important; padding: 0;}.nihilo .dijitDialog {background: #eee; border: 1px solid #d3d3d3; -webkit-box-shadow: 0 5px 10px #adadad; padding: 0;}.nihilo .dijitDialog .dijitDialogTitle {font-size: 0.9em; color: #243C5F; font-weight: bold; padding: 0 4px;}.nihilo .dijitDialog .dijitDialogPaneContent {background: #ffffff; border-top: 1px solid #d3d3d3; padding:10px;}.nihilo .dijitDialogTitleBar {background: #fafafa url("images/titleBar.png") repeat-x top left; padding: 5px 6px 3px 6px; outline:0;}.nihilo .dijitDialogCloseIcon {background-image: url("images/spriteRoundedIconsSmall.png"); background-repeat: no-repeat; background-position: -60px 0; position: absolute; vertical-align: middle; right: 6px; top: 4px; height: 15px; width: 15px;}.dj_ie6 .nihilo .dijitDialogCloseIcon {background-image: url("images/spriteRoundedIconsSmall.gif");}.nihilo .dijitDialogCloseIconHover {background-position: -60px -15px;}.nihilo .dijitTooltip,.nihilo .dijitTooltipDialog {background: transparent;}.dijitTooltipBelow {padding-top: 10px;}.dijitTooltipAbove {padding-bottom: 10px;}.nihilo .dijitTooltipContainer {background-color: #fff; border:1px solid #d3d3d3; padding:0.45em;}.nihilo .dijitTooltipConnector {border:0; z-index: 2;}.nihilo .dijitTooltipABRight .dijitTooltipConnector {left: auto !important; right: 6px;}.nihilo .dijitTooltipBelow .dijitTooltipConnector {top: 0; left: 6px; background:url("images/tooltipConnectorUp.png") no-repeat top left; width:17px; height:11px;}.dj_ie .nihilo .dijitTooltipBelow .dijitTooltipConnector {background-image: url("images/tooltipConnectorUp.gif");}.nihilo .dijitTooltipAbove .dijitTooltipConnector {bottom: 0; left: 6px; background:url("images/tooltipConnectorDown.png") no-repeat top left; width:17px; height:11px;}.dj_ie .nihilo .dijitTooltipAbove .dijitTooltipConnector {background-image: url("images/tooltipConnectorDown.gif");}.dj_ie6 .nihilo .dijitTooltipAbove .dijitTooltipConnector {bottom: -5px;}.nihilo .dijitTooltipLeft {padding-right: 10px;}.nihilo .dijitTooltipLeft .dijitTooltipConnector {right: 0; background:url("images/tooltipConnectorRight.png") no-repeat top left; width:11px; height:17px;}.dj_ie .nihilo .dijitTooltipLeft .dijitTooltipConnector {background-image: url("images/tooltipConnectorRight.gif");}.nihilo .dijitTooltipRight {padding-left: 10px;}.nihilo .dijitTooltipRight .dijitTooltipConnector {left: 0; background:url("images/tooltipConnectorLeft.png") no-repeat top left; width:11px; height:17px;}.dj_ie .nihilo .dijitTooltipRight .dijitTooltipConnector {background-image: url("images/tooltipConnectorLeft.gif");}.nihilo .dijitMenu,.nihilo .dijitMenuBar {border: 1px solid #d3d3d3; margin: 0; padding: 0; background-color: #fff;}.nihilo .dijitBorderContainer .dijitMenuBar {border: 1px #ccc solid;}.nihilo .dijitMenuItem {font-family: sans-serif; margin: 0; color: #243C5F;}.nihilo .dijitMenuBar .dijitMenuItem {padding: 4px 5px;}.nihilo .dijitMenuPreviousButton, .nihilo .dijitMenuNextButton {font-style: italic;}.nihilo .dijitMenuItem TD {padding:1px;}.nihilo .dijitMenuPassive .dijitMenuItemHover,.nihilo .dijitComboBoxMenu .dijitMenuItemHover,.nihilo .dijitMenuItemSelected {background-color: #ffe284; color: #243C5F;}.nihilo .dijitMenuItemIcon {width: 15px; height: 15px;}.nihilo .dijitMenuExpand {width:15px; height:15px; background-image: url("images/spriteRoundedIconsSmall.png"); background-position: -30px top;}.dj_ie6 .nihilo .dijitMenuExpand {background-image:url("images/spriteRoundedIconsSmall.gif");}.nihilo .dijitMenuSeparator {height: 1px;}.nihilo .dijitMenuSeparatorTop {border-bottom: 1px solid #fff;}.nihilo .dijitMenuSeparatorBottom {border-top: 1px solid #d3d3d3;}.nihilo .dijitCheckedMenuItemIconChar {display: none;}.nihilo .dijitCheckedMenuItemIcon {background-image: url("images/spriteCheckbox.gif"); background-position: -80px;}.nihilo .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: -64px;}.nihilo .dijitToolbar .dijitToolbarSeparator {background: url("../../icons/images/editorIconsEnabled.png");}.nihilo .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled.png"); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.nihilo .dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled.png");}.dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled.png"); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled.png");}.dijitEditorIconSep {background-position: 0;}.dijitEditorIconSave {background-position: -18px;}.dijitEditorIconPrint {background-position: -36px;}.dijitEditorIconCut {background-position: -54px;}.dijitEditorIconCopy {background-position: -72px;}.dijitEditorIconPaste {background-position: -90px;}.dijitEditorIconDelete {background-position: -108px;}.dijitEditorIconCancel {background-position: -126px;}.dijitEditorIconUndo {background-position: -144px;}.dijitEditorIconRedo {background-position: -162px;}.dijitEditorIconSelectAll {background-position: -180px;}.dijitEditorIconBold {background-position: -198px;}.dijitEditorIconItalic {background-position: -216px;}.dijitEditorIconUnderline {background-position: -234px;}.dijitEditorIconStrikethrough {background-position: -252px;}.dijitEditorIconSuperscript {background-position: -270px;}.dijitEditorIconSubscript {background-position: -288px;}.dijitEditorIconJustifyCenter {background-position: -306px;}.dijitEditorIconJustifyFull {background-position: -324px;}.dijitEditorIconJustifyLeft {background-position: -342px;}.dijitEditorIconJustifyRight {background-position: -360px;}.dijitEditorIconIndent {background-position: -378px;}.dijitEditorIconOutdent {background-position: -396px;}.dijitEditorIconListBulletIndent {background-position: -414px;}.dijitEditorIconListBulletOutdent {background-position: -432px;}.dijitEditorIconListNumIndent {background-position: -450px;}.dijitEditorIconListNumOutdent {background-position: -468px;}.dijitEditorIconTabIndent {background-position: -486px;}.dijitEditorIconLeftToRight {background-position: -504px;}.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir {background-position: -522px;}.dijitEditorIconBackColor {background-position: -540px;}.dijitEditorIconForeColor {background-position: -558px;}.dijitEditorIconHiliteColor {background-position: -576px;}.dijitEditorIconNewPage {background-position: -594px;}.dijitEditorIconInsertImage {background-position: -612px;}.dijitEditorIconInsertTable {background-position: -630px;}.dijitEditorIconSpace {background-position: -648px;}.dijitEditorIconInsertHorizontalRule {background-position: -666px;}.dijitEditorIconInsertOrderedList {background-position: -684px;}.dijitEditorIconInsertUnorderedList {background-position: -702px;}.dijitEditorIconCreateLink {background-position: -720px;}.dijitEditorIconUnlink {background-position: -738px;}.dijitEditorIconViewSource {background-position: -756px;}.dijitEditorIconRemoveFormat {background-position: -774px;}.dijitEditorIconFullScreen {background-position: -792px;}.dijitEditorIconWikiword {background-position: -810px;} .dijitColorPalette {border:1px solid #d3d3d3; background:#fff; -moz-border-radius: 0 !important;} \ No newline at end of file
diff --git a/lib/dijit/themes/nihilo/nihilo_rtl.css b/lib/dijit/themes/nihilo/nihilo_rtl.css
index 1e9a6af85..f932b5f71 100644
--- a/lib/dijit/themes/nihilo/nihilo_rtl.css
+++ b/lib/dijit/themes/nihilo/nihilo_rtl.css
@@ -1,29 +1 @@
-/*
- Adds cosmetic styling to Dijit. Users may swap with a custom theme CSS file.
-
- NOTES:
- ---
- Dialog.css contains css classes for both Dialog and Tooltip!
- This because currently a dijit.TooltipDialog exist. Until this is resolved
- you need to include Dialog.css for both dijits
- ---
- Toolbar.css contains classes also used in Editor. Until this is resolved
- you need to include Toolbar.css for both Toolbar and Editor
- ---
- Button.css contains classes for combobox,
-
-*/
-
-@import url("../dijit_rtl.css");
-@import url("layout/TabContainer_rtl.css");
-@import url("layout/AccordionContainer_rtl.css");
-@import url("form/Slider_rtl.css");
-@import url("form/Button_rtl.css");
-@import url("Tree_rtl.css");
-@import url("TitlePane_rtl.css");
-@import url("Calendar_rtl.css");
-@import url("TimePicker_rtl.css");
-@import url("Dialog_rtl.css");
-@import url("Menu_rtl.css");
-@import url("Editor_rtl.css");
-@import url("../../icons/editorIcons_rtl.css");/* RTL sprite for editor icons to be used by all themes*/ \ No newline at end of file
+.dijitRtl .dijitPlaceHolder {left: auto; right: 0;}.dijitMenuItemRtl {text-align: right;}.dj_iequirks .dijitComboButtonRtl button {float:left;}.dj_ie .dijitTextBoxRtl .dijitInputContainer {clear: right;}.dijitTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitComboBoxRtl .dijitArrowButtonContainer {border-right-width: 1px !important; border-left-width: 0 !important;}.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton {right: 0; left: auto;}.dijitSelectRtl .dijitButtonText {float: right;}.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitValidationTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitArrowButtonContainer {float: left;}div.dijitNumberTextBoxRtl {text-align: right;}.dijitCalendarRtl .dijitCalendarNextYear {margin:0 0.55em 0 0;}.dijitCalendarRtl .dijitCalendarPreviousYear {margin:0 0 0 0.55em;}.dijitSliderRtl .dijitSliderImageHandleV {left:auto;}.dijitSliderRtl .dijitSliderImageHandleH {left:-50%;}.dijitSliderRtl .dijitSliderMoveableH {right:auto; left:0;}.dijitSliderRtl .dijitRuleContainerV {float:right;}.dj_ie .dijitSliderRtl .dijitRuleContainerV {text-align:right;}.dj_ie .dijitSliderRtl .dijitRuleLabelV {text-align:left;}.dj_ie .dijitSliderRtl .dijitRuleLabelH {zoom:1;}.dijitSliderRtl .dijitSliderProgressBarH {float:right; right:0; left:auto;}.dijitRtl .dijitContentPaneLoading .dijitIconLoading,.dijitRtl .dijitContentPaneError .dijitIconError {margin-right: 0; margin-left: 9px;}.dijitTabControllerRtl .nowrapTabStrip {text-align: right;}.dijitTabRtl .dijitTabCloseButton {margin-left: 0; margin-right: 1em;}.dj_ie6 .dijitTabRtl .tabLabel,.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie6 .dijitTabContainerLeft-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerLeft-tabs .dijitTabRtl {zoom: 1;}.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl {left: 0;}.dj_ie6 .dijitTabContainerRightRtl .dijitTabContainerRight-tabs,.dj_ie6 .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs {width: 1%;}.dj_ie .dijitTimePickerRtl .dijitTimePickerItem {width:100%;}.dijitColorPaletteRtl .dijitColorPaletteUnder {left: auto; right: 0;}.dijitSelectRtl .dijitButtonContents {border-style: none none none solid; text-align: right;}.dijitRtl .dojoDndHorizontal .dojoDndItemBefore {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dijitRtl .dojoDndHorizontal .dojoDndItemAfter {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.dijitRtl .nihilo .dijitTab {margin-right:0; margin-left:2px;}.dijitRtl .nihilo .dijitTabContainer .tabStripButton {margin-left: 0;}.dijitRtl .nihilo .dijitTabContainerTopStrip,.dijitRtl .nihilo .dijitTabContainerBottomStrip,.dijitRtl .nihilo .dijitTabContainerTop-tabs,.dijitRtl .nihilo .dijitTabContainerBottom-tabs {padding-left: 0; padding-right: 3px;}.dijitRtl .nihilo .dijitTabInnerDiv {padding-left: 3px; padding-right: 4px;}.dijitRtl .nihilo .dijitTabPaneWrapper {#zoom: 1;}.dj_ie-rtl .nihilo .dijitTabContainerLeft-tabs {margin-left: 0 !important;}.dj_ie-rtl .nihilo .dijitTabContainerRight-tabs {margin-right: 0 !important;}.dijitRtl .nihilo .dijitTabContainerLeft-tabs .dijitTab,.dijitRtl .nihilo .dijitTabContainerRight-tabs .dijitTab {margin-left:0;}.dj_ie-rtl .nihilo .dijitTab .dijitTabInnerDiv{width : 1%;}.dijitRtl .nihilo .dijitAccordionArrow {background-position: 0 top;}.dijitRtl .nihilo .dijitAccordionTitleSelected .dijitAccordionArrow {background-position: -15px top;}.dijitRtl .nihilo .dijitSliderProgressBarH,.dijitRtl .nihilo .dijitSliderRemainingBarH,.dijitRtl .nihilo .dijitSliderLeftBumper,.dijitRtl .nihilo .dijitSliderRightBumper,.dijitRtl .nihilo .dijitSliderTopBumper {background-position: top right;}.dijitRtl .nihilo .dijitSliderProgressBarV,.dijitRtl .nihilo .dijitSliderRemainingBarV,.dijitRtl .nihilo .dijitSliderBottomBumper {background-position: bottom right;}.dijitRtl .nihilo .dijitSliderLeftBumper {border-left-width: 0; border-right-width: 1px;}.dijitRtl .nihilo .dijitSliderRightBumper {border-left-width: 1px; border-right-width: 0;}.dijitRtl .nihilo .dijitSliderIncrementIconH {background:url("images/spriteRoundedIconsSmall.png") no-repeat left top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat left top;}.dijitRtl .nihilo .dijitSliderDecrementIconH {background:url("images/spriteRoundedIconsSmall.png") no-repeat -30px top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat -30px top;}.nihilo .dijitComboBoxRtl .dijitButtonNode {border-width: 0 0 0 1px;}.dijitRtl .nihilo .dijitTreeNode,.dijitRtl .nihilo .dijitTreeExpandoLeaf {background-image: none;}.dijitRtl .nihilo .dijitTreeContent {padding-left: 0; padding-right: 1px;}.dijitRtl .nihilo .dijitTreeExpandoOpened {background: url("images/spriteTree_rtl.gif") no-repeat -18px top;}.dijitRtl .nihilo .dijitTreeExpandoClosed {background-image: url("images/spriteTree_rtl.gif");}.dijitRtl .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: 0 top;}.dj_ie6-rtl .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: 0 top;}.dijitRtl .nihilo .dijitCalendarDecrease {background-position: -30px top;}.dijitRtl .nihilo .dijitCalendarIncrease {background-position: 0 top;}.dj_ie6-rtl .nihilo .dijitTimePickerMarkerHover,.dj_ie7-rtl .nihilo .dijitTimePickerMarkerHover {border-top: 0;}.dijitRtl .nihilo .dijitDialogTitleBar .dijitDialogCloseIcon {right: auto; left: 5px;}.dijitRtl .nihilo .dijitMenuItem .dijitMenuItemIcon {padding-left: 3px; padding-right: 0;}.dijitRtl .nihilo .dijitMenuItem .dijitMenuExpand {background-position: 0 top;}.dijitRtl .nihilo .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.dijitRtl .nihilo .dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled_rtl.png");}.dijitEditorRtl .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.dijitEditorRtlDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled_rtl.png");}.dijitToolbarRtl .dijitToolbarSeparator {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Calendar.css b/lib/dijit/themes/soria/Calendar.css
index f77acd2eb..ae12497d0 100644
--- a/lib/dijit/themes/soria/Calendar.css
+++ b/lib/dijit/themes/soria/Calendar.css
@@ -1,161 +1 @@
-/* Calendar*/
-
-.soria .dijitCalendarIncrementControl {
- /* next/prev month buttons */
- width:15px;
- height:15px;
- background-image: url("images/spriteRoundedIconsSmall.png");
- background-repeat: no-repeat;
-}
-.dj_ie6 .soria .dijitCalendarIncrementControl {
- font-size:.1em;
- background-image: url("images/spriteRoundedIconsSmall.gif");
-}
-
-.soria .dijitA11ySideArrow {
- display: none;
-}
-
-.soria .dijitCalendarDecrease {
- background-position: top left;
-}
-.soria .dijitCalendarIncrease {
- background-position: -30px top;
-}
-
-.soria table.dijitCalendarContainer {
- font-size: 100%;
- border-spacing: 0;
- border-collapse: separate;
- border: 1px solid #b1badf;
- margin: 0;
-}
-
-.soria .dijitCalendarMonthContainer th {
- /* month header cell */
- background:#bed7f0 url("images/titleBar.png") repeat-x top;
- padding-top:.3em;
- padding-bottom:.2em;
- text-align:center;
-}
-.dj_ie6 .soria .dijitCalendarMonthContainer th {
- padding-top:.2em;
- padding-bottom:.1em;
-}
-
-.soria .dijitCalendarDayLabelTemplate {
- /* day of week labels */
- background:#bed7f0;
- font-weight:normal;
- padding-top:.15em;
- padding-bottom:.2em;
- border-bottom: 1px solid #b1badf;
- color:#293a4b;
- text-align:center;
-}
-
-.soria .dijitCalendarBodyContainer {
- border-bottom: 1px solid #eeeeee;
-}
-
-.soria .dijitCalendarMonthLabel {
- color:#293a4b;
- font-weight: bold;
- padding: 0 4px;
-}
-
-.soria .dijitCalendarDateTemplate {
- /* style for each day cell */
- font-size: 0.9em;
- font-weight: bold;
- text-align: center;
- padding: 0.3em 0.3em 0.05em 0.3em;
- letter-spacing: 1px;
- background-color: #fff;
- border:#fff solid 1px !important;
-}
-
-.dj_ie .soria .dijitCalendarDateTemplate {
- padding: 0.1em .33em 0.02em .33em;
-}
-
-.soria .dijitCalendarPreviousMonth,
-.soria .dijitCalendarNextMonth {
- /* days that are part of the previous or next month */
- color:#999999;
- background-color:#fdfdfd !important;
- border:#fdfdfd solid 1px !important;
-}
-
-.soria .dijitCalendarCurrentMonth {
- /* days that are part of this month */
-}
-
-.soria .dijitCalendarDisabledDate {
- text-decoration:line-through !important;
-}
-
-.soria .dijitCalendarCurrentDate {
- /* cell for today's date */
- text-decoration:underline;
- font-weight:bold;
-}
-
-.soria .dijitCalendarSelectedDate {
- /* cell for the selected date */
- background-color:#b9cbf1 !important;
- color:black !important;
- border:#4b5aaa solid 1px !important;
-}
-
-
-.soria .dijitCalendarYearContainer {
- /* footer of the table that contains the year display/selector */
- background:white url("images/titleBar.png") repeat-x top;
-}
-
-.soria .dijitCalendarYearLabel {
- /* container for all of 3 year labels */
- margin:0;
- padding:0.4em 0 0.25em 0;
- text-align:center;
- font-size: 1.17em;
-}
-
-.soria .dijitCalendarSelectedYear {
- /* label for selected year */
- font-weight:bolder;
- color:black;
- padding:0.2em;
- padding-bottom:0.1em;
- background-color:#b9cbf1 !important;
- border:#4b5aaa solid 1px !important;
-}
-
-.soria .dijitCalendarNextYear,
-.soria .dijitCalendarPreviousYear {
- /* label for next/prev years */
- color:black !important;
- font-weight:normal;
-}
-
-/* Styling for month DropDownButton */
-
-.soria .dijitCalendar .dijitDropDownButton {
- margin: 0;
-}
-.soria .dijitCalendar .dijitButtonText {
- padding: 0;
-}
-.soria .dijitCalendar .dijitDropDownButton .dijitButtonNode {
- background-color: transparent;
- background-image: none;
- padding: 0;
-}
-
-/* Styling for month drop down list */
-
-.soria .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover {
- background-color: #d9e6f9;
- color: #243C5F;
-}
+.soria .dijitCalendarIncrementControl {width:15px; height:15px; background-image: url("images/spriteRoundedIconsSmall.png"); background-repeat: no-repeat;}.dj_ie6 .soria .dijitCalendarIncrementControl {font-size:.1em; background-image: url("images/spriteRoundedIconsSmall.gif");}.soria .dijitA11ySideArrow {display: none;}.soria .dijitCalendarDecrease {background-position: top left;}.soria .dijitCalendarIncrease {background-position: -30px top;}.soria table.dijitCalendarContainer {font-size: 100%; border-spacing: 0; border-collapse: separate; border: 1px solid #b1badf; margin: 0;}.soria .dijitCalendarMonthContainer th {background:#bed7f0 url("images/titleBar.png") repeat-x top; padding-top:.3em; padding-bottom:.2em; text-align:center;}.dj_ie6 .soria .dijitCalendarMonthContainer th {padding-top:.2em; padding-bottom:.1em;}.soria .dijitCalendarDayLabelTemplate {background:#bed7f0; font-weight:normal; padding-top:.15em; padding-bottom:.2em; border-bottom: 1px solid #b1badf; color:#293a4b; text-align:center;}.soria .dijitCalendarBodyContainer {border-bottom: 1px solid #eeeeee;}.soria .dijitCalendarMonthLabel {color:#293a4b; font-weight: bold; padding: 0 4px;}.soria .dijitCalendarDateTemplate {font-size: 0.9em; font-weight: bold; text-align: center; padding: 0.3em 0.3em 0.05em 0.3em; letter-spacing: 1px; background-color: #fff; border:#fff solid 1px !important;}.dj_ie .soria .dijitCalendarDateTemplate {padding: 0.1em .33em 0.02em .33em;}.soria .dijitCalendarPreviousMonth,.soria .dijitCalendarNextMonth {color:#999999; background-color:#fdfdfd !important; border:#fdfdfd solid 1px !important;}.soria .dijitCalendarCurrentMonth {}.soria .dijitCalendarDisabledDate {text-decoration:line-through !important;}.soria .dijitCalendarCurrentDate {text-decoration:underline; font-weight:bold;}.soria .dijitCalendarSelectedDate {background-color:#b9cbf1 !important; color:black !important; border:#4b5aaa solid 1px !important;}.soria .dijitCalendarYearContainer {background:white url("images/titleBar.png") repeat-x top;}.soria .dijitCalendarYearLabel {margin:0; padding:0.4em 0 0.25em 0; text-align:center; font-size: 1.17em;}.soria .dijitCalendarSelectedYear {font-weight:bolder; color:black; padding:0.2em; padding-bottom:0.1em; background-color:#b9cbf1 !important; border:#4b5aaa solid 1px !important;}.soria .dijitCalendarNextYear,.soria .dijitCalendarPreviousYear {color:black !important; font-weight:normal;}.soria .dijitCalendar .dijitDropDownButton {margin: 0;}.soria .dijitCalendar .dijitButtonText {padding: 0;}.soria .dijitCalendar .dijitDropDownButton .dijitButtonNode {background-color: transparent; background-image: none; padding: 0;}.soria .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover {background-color: #d9e6f9; color: #243C5F;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Calendar_rtl.css b/lib/dijit/themes/soria/Calendar_rtl.css
index c2350b4ed..679d8373d 100644
--- a/lib/dijit/themes/soria/Calendar_rtl.css
+++ b/lib/dijit/themes/soria/Calendar_rtl.css
@@ -1,9 +1 @@
-/* Calendar */
-
-.dijitRtl .soria .dijitCalendarDecrease {
- background-position: -30px top;
-}
-
-.dijitRtl .soria .dijitCalendarIncrease {
- background-position: 0 top;
-}
+.dijitRtl .soria .dijitCalendarDecrease {background-position: -30px top;}.dijitRtl .soria .dijitCalendarIncrease {background-position: 0 top;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/ColorPalette.css b/lib/dijit/themes/soria/ColorPalette.css
index 85d6dd819..9368feba8 100644
--- a/lib/dijit/themes/soria/ColorPalette.css
+++ b/lib/dijit/themes/soria/ColorPalette.css
@@ -1,5 +1 @@
-.dijitColorPalette {
- border:1px solid #cbcbcb;
- background:#fff;
- -moz-border-radius: 0 !important;
-} \ No newline at end of file
+.dijitColorPalette {border:1px solid #cbcbcb; background:#fff; -moz-border-radius: 0 !important;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Common.css b/lib/dijit/themes/soria/Common.css
index d5a7c9df6..61759b9fe 100644
--- a/lib/dijit/themes/soria/Common.css
+++ b/lib/dijit/themes/soria/Common.css
@@ -1,23 +1 @@
-/* DnD avatar-specific settings */
-/* For now it uses a default set of rules. Some other DnD classes can be modified as well. */
-.soria .dojoDndItemBefore {
- border-top: 2px solid #369;
-}
-
-.soria .dojoDndItemAfter {
- border-bottom: 2px solid #369;
-}
-
-.soria .dojoDndItemOver {
- cursor:pointer;
-}
-
-.soria table.dojoDndAvatar { -moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;}
-.soria .dojoDndAvatar td { border: none; }
-.soria .dojoDndAvatar tr { border: none; }
-.soria .dojoDndAvatarHeader td { height: 20px; padding: 0 0 0 21px; }
-.soria .dojoDndAvatarItem td { padding: 2px;}
-.soria.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;}
-.soria.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;}
-.soria.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;}
-.soria.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;}
+.soria .dojoDndItemOver {background-image: url(images/treeHover.png);}.soria .dojoDndItemAnchor,.soria .dojoDndItemSelected {background-color: #B8CBEC;}.soria table.dojoDndAvatar {-moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;}.soria .dojoDndAvatar td {border: none;}.soria .dojoDndAvatar tr {border: none;}.soria .dojoDndAvatarHeader td {height: 20px; padding: 0 0 0 21px;}.soria .dojoDndAvatarItem td {padding: 2px;}.soria.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;}.soria.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;}.soria.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;}.soria.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Dialog.css b/lib/dijit/themes/soria/Dialog.css
index 1e0503a0b..903f69b27 100644
--- a/lib/dijit/themes/soria/Dialog.css
+++ b/lib/dijit/themes/soria/Dialog.css
@@ -1,155 +1 @@
-/* Dialog */
-
-.soria .dijitDialog {
- background: #eee;
- border: 1px solid #cbcbcb;
- -webkit-box-shadow: 0 5px 10px #adadad;
- padding: 0;
-}
-
-.soria .dijitDialog .dijitDialogTitle {
- /* typography and styling of the dialog title */
- font-weight: bold;
- padding: 0 4px;
- font-size: 0.9em;
- color: #243C5F;
-}
-
-.soria .dijitDialog .dijitDialogPaneContent {
- background: #ffffff;
- border-top: 1px solid #b1badf;
- padding:10px;
-
-}
-
-.soria .dijitDialogTitleBar {
- /* outer container for the titlebar of the dialog */
- background: #fafafa url("images/titleBar.png") repeat-x top left;
- padding: 5px 6px 3px 6px;
- outline:0; /* remove this line if keyboard focus on dialog startup is an issue. tab still takes you to first focusable element */
-}
-
-.soria .dijitDialogCloseIcon {
- /* the default close icon for the dialog */
- background-image: url("images/spriteRoundedIconsSmallBl.png");
- background-repeat: no-repeat;
- background-position: -60px 0;
- position: absolute;
- vertical-align: middle;
- right: 6px;
- top: 4px;
- height: 15px;
- width: 15px;
-}
-.dj_ie6 .soria .dijitDialogCloseIcon {
- background-image: url("images/spriteRoundedIconsSmallBl.gif");
-}
-.soria .dijitDialogCloseIconHover {
- background-position: -60px -15px;
-}
-
-/* Tooltip and TooltipDialog */
-
-.soria .dijitTooltip,
-.soria .dijitTooltipDialog {
- /* the outermost dom node, holding the connector and container */
- background: transparent; /* make the area on the sides of the arrow transparent */
-}
-
-.dijitTooltipBelow {
- /* leave room for arrow above content */
- padding-top: 10px;
-}
-
-.dijitTooltipAbove {
- /* leave room for arrow below content */
- padding-bottom: 10px;
-}
-
-.soria .dijitTooltipContainer {
- /*
- The part with the text.
-
- NOTE:
- FF doesn't clip images used as CSS bgs if you specify a border
- radius. If you use a solid color, it does. Webkit gets it right.
- Sigh.
- background: #ffffff url("images/popupMenuBg.gif") repeat-x bottom left;
- */
- background-color: #fff;
- border:1px solid #cbcbcb;
- padding:0.45em;
-}
-
-.soria .dijitTooltipConnector {
- /* the arrow piece */
- border:0;
- z-index: 2;
-}
-
-.soria .dijitTooltipABRight .dijitTooltipConnector {
- /* above or below tooltip, but the arrow appears on the right,
- and the right edges of target and tooltip are aligned rather than the left */
- left: auto !important;
- right: 6px;
-}
-
-.soria .dijitTooltipBelow .dijitTooltipConnector {
- /* the arrow piece for tooltips below an element */
- top: 0;
- left: 6px;
- background:url("images/tooltipConnectorUp.png") no-repeat top left;
- width:17px;
- height:11px;
-}
-
-.dj_ie .soria .dijitTooltipBelow .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorUp.gif");
-}
-
-.soria .dijitTooltipAbove .dijitTooltipConnector {
- /* the arrow piece for tooltips above an element */
- bottom: 0;
- left: 6px;
- background:url("images/tooltipConnectorDown.png") no-repeat top left;
- width:17px;
- height:11px;
-}
-.dj_ie .soria .dijitTooltipAbove .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorDown.gif");
-}
-.dj_ie .soria .dijitTooltipAbove .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorDown.gif");
-}
-.dj_ie6 .soria .dijitTooltipAbove .dijitTooltipConnector {
- bottom: -5px;
-}
-
-.soria .dijitTooltipLeft {
- padding-right: 10px;
-}
-.soria .dijitTooltipLeft .dijitTooltipConnector {
- /* the arrow piece for tooltips to the left of an element, bottom borders aligned */
- right: 0;
- background:url("images/tooltipConnectorRight.png") no-repeat top left;
- width:11px;
- height:17px;
-}
-.dj_ie .soria .dijitTooltipLeft .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorRight.gif");
-}
-
-.soria .dijitTooltipRight {
- padding-left: 10px;
-}
-.soria .dijitTooltipRight .dijitTooltipConnector {
- /* the arrow piece for tooltips to the right of an element, bottom borders aligned */
- left: 0;
- background:url("images/tooltipConnectorLeft.png") no-repeat top left;
- width:11px;
- height:17px;
-}
-.dj_ie .soria .dijitTooltipRight .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorLeft.gif");
-}
-
+.soria .dijitDialog {background: #eee; border: 1px solid #cbcbcb; -webkit-box-shadow: 0 5px 10px #adadad; padding: 0;}.soria .dijitDialog .dijitDialogTitle {font-weight: bold; padding: 0 4px; font-size: 0.9em; color: #243C5F;}.soria .dijitDialog .dijitDialogPaneContent {background: #ffffff; border-top: 1px solid #b1badf; padding:10px;}.soria .dijitDialogTitleBar {background: #fafafa url("images/titleBar.png") repeat-x top left; padding: 5px 6px 3px 6px; outline:0;}.soria .dijitDialogCloseIcon {background-image: url("images/spriteRoundedIconsSmallBl.png"); background-repeat: no-repeat; background-position: -60px 0; position: absolute; vertical-align: middle; right: 6px; top: 4px; height: 15px; width: 15px;}.dj_ie6 .soria .dijitDialogCloseIcon {background-image: url("images/spriteRoundedIconsSmallBl.gif");}.soria .dijitDialogCloseIconHover {background-position: -60px -15px;}.soria .dijitTooltip,.soria .dijitTooltipDialog {background: transparent;}.dijitTooltipBelow {padding-top: 10px;}.dijitTooltipAbove {padding-bottom: 10px;}.soria .dijitTooltipContainer {background-color: #fff; border:1px solid #cbcbcb; padding:0.45em;}.soria .dijitTooltipConnector {border:0; z-index: 2;}.soria .dijitTooltipABRight .dijitTooltipConnector {left: auto !important; right: 6px;}.soria .dijitTooltipBelow .dijitTooltipConnector {top: 0; left: 6px; background:url("images/tooltipConnectorUp.png") no-repeat top left; width:17px; height:11px;}.dj_ie .soria .dijitTooltipBelow .dijitTooltipConnector {background-image: url("images/tooltipConnectorUp.gif");}.soria .dijitTooltipAbove .dijitTooltipConnector {bottom: 0; left: 6px; background:url("images/tooltipConnectorDown.png") no-repeat top left; width:17px; height:11px;}.dj_ie .soria .dijitTooltipAbove .dijitTooltipConnector {background-image: url("images/tooltipConnectorDown.gif");}.dj_ie .soria .dijitTooltipAbove .dijitTooltipConnector {background-image: url("images/tooltipConnectorDown.gif");}.dj_ie6 .soria .dijitTooltipAbove .dijitTooltipConnector {bottom: -5px;}.soria .dijitTooltipLeft {padding-right: 10px;}.soria .dijitTooltipLeft .dijitTooltipConnector {right: 0; background:url("images/tooltipConnectorRight.png") no-repeat top left; width:11px; height:17px;}.dj_ie .soria .dijitTooltipLeft .dijitTooltipConnector {background-image: url("images/tooltipConnectorRight.gif");}.soria .dijitTooltipRight {padding-left: 10px;}.soria .dijitTooltipRight .dijitTooltipConnector {left: 0; background:url("images/tooltipConnectorLeft.png") no-repeat top left; width:11px; height:17px;}.dj_ie .soria .dijitTooltipRight .dijitTooltipConnector {background-image: url("images/tooltipConnectorLeft.gif");} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Dialog_rtl.css b/lib/dijit/themes/soria/Dialog_rtl.css
index 838700af5..3a0553e74 100644
--- a/lib/dijit/themes/soria/Dialog_rtl.css
+++ b/lib/dijit/themes/soria/Dialog_rtl.css
@@ -1,5 +1 @@
-/* Dialog */
-.dijitRtl .soria .dijitDialogTitleBar .dijitDialogCloseIcon {
- right: auto;
- left: 5px;
-}
+.dijitRtl .soria .dijitDialogTitleBar .dijitDialogCloseIcon {right: auto; left: 5px;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Editor.css b/lib/dijit/themes/soria/Editor.css
index d2dd29303..ebb5b8556 100644
--- a/lib/dijit/themes/soria/Editor.css
+++ b/lib/dijit/themes/soria/Editor.css
@@ -1,17 +1 @@
-.soria .dijitToolbar .dijitToolbarSeparator {
- background: url('../../icons/images/editorIconsEnabled.png'); /* separator in editor icons sprite image - enabled state */
-}
-
-/**** ICONS *****/
-
-.soria .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsEnabled.png'); /* editor icons sprite image - enabled state */
- background-repeat: no-repeat;
- width: 18px;
- height: 18px;
- text-align: center;
-}
-.soria .dijitDisabled .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsDisabled.png'); /* editor icons sprite image - disabled state */
-}
-
+.soria .dijitToolbar .dijitToolbarSeparator {background: url('../../icons/images/editorIconsEnabled.png');}.soria .dijitEditorIcon {background-image: url('../../icons/images/editorIconsEnabled.png'); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.soria .dijitDisabled .dijitEditorIcon {background-image: url('../../icons/images/editorIconsDisabled.png');} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Editor_rtl.css b/lib/dijit/themes/soria/Editor_rtl.css
index a1f76e8c4..1a939efd7 100644
--- a/lib/dijit/themes/soria/Editor_rtl.css
+++ b/lib/dijit/themes/soria/Editor_rtl.css
@@ -1,7 +1 @@
-/* Editor */
-.dijitRtl .soria .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsEnabled_rtl.png'); /* editor icons sprite image - enabled state */
-}
-.dijitRtl .soria .dijitDisabled .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsDisabled_rtl.png'); /* editor icons sprite image - disabled state */
-}
+.dijitRtl .soria .dijitEditorIcon {background-image: url('../../icons/images/editorIconsEnabled_rtl.png');}.dijitRtl .soria .dijitDisabled .dijitEditorIcon {background-image: url('../../icons/images/editorIconsDisabled_rtl.png');} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Menu.css b/lib/dijit/themes/soria/Menu.css
index ebd2e2885..4dd717ec4 100644
--- a/lib/dijit/themes/soria/Menu.css
+++ b/lib/dijit/themes/soria/Menu.css
@@ -1,78 +1 @@
-
-/* Menu */
-.soria .dijitMenu,
-.soria .dijitMenuBar {
- border: 1px solid #cbcbcb;
- margin: 0;
- padding: 0;
- background-color: #fff;
-}
-
-.soria .dijitBorderContainer .dijitMenuBar {
- border:1px solid #B1BADF;
-}
-
-.soria .dijitMenuItem {
- font-family: sans-serif;
- margin: 0;
- color: #243C5F;
-}
-.soria .dijitMenuBar .dijitMenuItem {
- padding: 4px 5px;
-}
-
-.soria .dijitMenuPreviousButton, .soria .dijitMenuNextButton {
- font-style: italic;
-}
-.soria .dijitMenuItem TD {
- padding:1px;
-}
-
-.soria .dijitMenuPassive .dijitMenuItemHover,
-.soria .dijitComboBoxMenu .dijitMenuItemHover,
-.soria .dijitMenuItemSelected {
- background-color: #d9e6f9; /* #95a0b0; #555555; #aaaaaa; #646464; #60a1ea; #848484; */
- color: #243C5F;
-}
-
-.soria .dijitMenuItemIcon {
- width: 15px;
- height: 15px;
-}
-
-.soria .dijitMenuExpand {
- width:15px;
- height:15px;
- background-image: url('images/spriteRoundedIconsSmall.png');
- background-position: -30px top;
-}
-.dj_ie6 .soria .dijitMenuExpand {
- background-image: url('images/spriteRoundedIconsSmall.gif');
-}
-
-.soria .dijitMenuSeparator {
- height: 1px;
-}
-
-/* separator can be two pixels -- set border of either one to 0 to have only one */
-.soria .dijitMenuSeparatorTop {
- border-bottom: 1px solid #fff; /*97adcb; */
-}
-
-.soria .dijitMenuSeparatorBottom {
- border-top: 1px solid #8ba0bd;
-}
-
-/* the checked menu item */
-.soria .dijitCheckedMenuItemIconChar {
- display: none;
-}
-
-.soria .dijitCheckedMenuItemIcon {
- background-image: url('images/spriteCheckbox.gif');
- background-position: -80px;
-}
-
-.soria .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {
- background-position: -64px;
-} \ No newline at end of file
+.soria .dijitMenu,.soria .dijitMenuBar {border: 1px solid #cbcbcb; margin: 0; padding: 0; background-color: #fff;}.soria .dijitBorderContainer .dijitMenuBar {border:1px solid #B1BADF;}.soria .dijitMenuItem {font-family: sans-serif; margin: 0; color: #243C5F;}.soria .dijitMenuBar .dijitMenuItem {padding: 4px 5px;}.soria .dijitMenuPreviousButton, .soria .dijitMenuNextButton {font-style: italic;}.soria .dijitMenuItem TD {padding:1px;}.soria .dijitMenuPassive .dijitMenuItemHover,.soria .dijitComboBoxMenu .dijitMenuItemHover,.soria .dijitMenuItemSelected {background-color: #d9e6f9; color: #243C5F;}.soria .dijitMenuItemIcon {width: 15px; height: 15px;}.soria .dijitMenuExpand {width:15px; height:15px; background-image: url('images/spriteRoundedIconsSmall.png'); background-position: -30px top;}.dj_ie6 .soria .dijitMenuExpand {background-image: url('images/spriteRoundedIconsSmall.gif');}.soria .dijitMenuSeparator {height: 1px;}.soria .dijitMenuSeparatorTop {border-bottom: 1px solid #fff;}.soria .dijitMenuSeparatorBottom {border-top: 1px solid #8ba0bd;}.soria .dijitCheckedMenuItemIconChar {display: none;}.soria .dijitCheckedMenuItemIcon {background-image: url('images/spriteCheckbox.gif'); background-position: -80px;}.soria .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: -64px;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Menu_rtl.css b/lib/dijit/themes/soria/Menu_rtl.css
index 0e0148394..845bd379d 100644
--- a/lib/dijit/themes/soria/Menu_rtl.css
+++ b/lib/dijit/themes/soria/Menu_rtl.css
@@ -1,10 +1 @@
-/* Menu */
-
-.dijitRtl .soria .dijitMenuItem .dijitMenuItemIcon {
- padding-left: 3px;
- padding-right: 0;
-}
-
-.dijitRtl .soria .dijitMenuItem .dijitMenuExpand {
- background-position: left top;
-}
+.dijitRtl .soria .dijitMenuItem .dijitMenuItemIcon {padding-left: 3px; padding-right: 0;}.dijitRtl .soria .dijitMenuItem .dijitMenuExpand {background-position: left top;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/ProgressBar.css b/lib/dijit/themes/soria/ProgressBar.css
index b2f6d1fbe..3fe492773 100644
--- a/lib/dijit/themes/soria/ProgressBar.css
+++ b/lib/dijit/themes/soria/ProgressBar.css
@@ -1,33 +1 @@
-
-/****
- dijit.ProgressBar
- ****/
-
-.soria .dijitProgressBar {
- margin:2px 0 2px 0;
-}
-
-.soria .dijitProgressBarEmpty{
- /* outer container and background of the bar that's not finished yet*/
- background:#fff url("images/progressBarEmpty.png") repeat-x center center;
- border-color: #8ba0bd;
-}
-
-.soria .dijitProgressBarTile{
- /* inner container for finished portion when in 'tile' (image) mode */
- background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center;
-}
-
-.soria .dijitProgressBarFull {
- border-right:1px solid #8ba0bd;
-}
-
-.soria .dijitProgressBarLabel {
- /* Set to a color that contrasts with both the "Empty" and "Full" parts. */
- color:#293a4b;
-}
-
-.soria .dijitProgressBarIndeterminate .dijitProgressBarTile {
- /* use an animated gif for the progress bar in 'indeterminate' mode */
- background:#cad2de url("images/progressBarAnim.gif") repeat-x center center;
-} \ No newline at end of file
+.soria .dijitProgressBar {margin:2px 0 2px 0;}.soria .dijitProgressBarEmpty{background:#fff url("images/progressBarEmpty.png") repeat-x center center; border-color: #8ba0bd;}.soria .dijitProgressBarTile{background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center;}.soria .dijitProgressBarFull {border-right:1px solid #8ba0bd;}.soria .dijitProgressBarLabel {color:#293a4b;}.soria .dijitProgressBarIndeterminate .dijitProgressBarTile {background:#cad2de url("images/progressBarAnim.gif") repeat-x center center;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/TimePicker.css b/lib/dijit/themes/soria/TimePicker.css
index 757d746d8..a82093fde 100644
--- a/lib/dijit/themes/soria/TimePicker.css
+++ b/lib/dijit/themes/soria/TimePicker.css
@@ -1,51 +1 @@
-/* Time Picker */
-.soria .dijitTimePickerTick,
-.soria .dijitTimePickerMarker {
- border-color: #b1badf;
-}
-
-.soria .dijitTimePickerTick {
- color:white;
-}
-
-.soria .dijitTimePickerMarker {
- background:#bed7f0 url("images/titleBar.png") repeat-x top;
- color:#293a4b;
- font-weight: bold;
-}
-
-.soria .dijitTimePickerItemSelected {
- color: black;
- background: #b9cbf1 none;
-}
-
-.soria .dijitTimePickerItemHover {
- background: #60a1ea none;
- color:white;
-}
-
-.soria .dijitTimePickerItemHover,
-.soria .dijitTimePickerItemSelected {
- position: relative;
- z-index: 10;
-}
-
-.soria .dijitTimePickerTick .dijitTimePickerItemInner {
- font-size:0.4em;
-}
-
-.soria .dijitTimePickerItemHover .dijitTimePickerItemInner,
-.soria .dijitTimePickerItemSelected .dijitTimePickerItemInner {
- font-size:1em;
-}
-
-.soria .dijitTimePickerMarkerHover {
- border-top: 1px solid #94b9ef;
-}
-
-.soria .dijitTimePickerTickHover,
-.soria .dijitTimePickerTickSelected {
- margin-top:-0.3em;
- margin-bottom:-0.3em;
- border-bottom: none;
-}
+.soria .dijitTimePickerTick,.soria .dijitTimePickerMarker {border-color: #b1badf;}.soria .dijitTimePickerTick {color:white;}.soria .dijitTimePickerMarker {background:#bed7f0 url("images/titleBar.png") repeat-x top; color:#293a4b; font-weight: bold;}.soria .dijitTimePickerItemSelected {color: black; background: #b9cbf1 none;}.soria .dijitTimePickerItemHover {background: #60a1ea none; color:white;}.soria .dijitTimePickerItemHover,.soria .dijitTimePickerItemSelected {position: relative; z-index: 10;}.soria .dijitTimePickerTick .dijitTimePickerItemInner {font-size:0.4em;}.soria .dijitTimePickerItemHover .dijitTimePickerItemInner,.soria .dijitTimePickerItemSelected .dijitTimePickerItemInner {font-size:1em;}.soria .dijitTimePickerMarkerHover {border-top: 1px solid #94b9ef;}.soria .dijitTimePickerTickHover,.soria .dijitTimePickerTickSelected {margin-top:-0.3em; margin-bottom:-0.3em; border-bottom: none;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/TimePicker_rtl.css b/lib/dijit/themes/soria/TimePicker_rtl.css
index a802ba6b6..e641c0e88 100644
--- a/lib/dijit/themes/soria/TimePicker_rtl.css
+++ b/lib/dijit/themes/soria/TimePicker_rtl.css
@@ -1,4 +1 @@
-.dj_ie6-rtl .soria .dijitTimePickerMarkerHover,
-.dj_ie7-rtl .soria .dijitTimePickerMarkerHover {
- border-top: 0; /* IE6/7 bug causes mouseover/out event storm */
-}
+.dj_ie6-rtl .soria .dijitTimePickerMarkerHover,.dj_ie7-rtl .soria .dijitTimePickerMarkerHover {border-top: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/TitlePane.css b/lib/dijit/themes/soria/TitlePane.css
index 7e1042e2a..b0cda77e8 100644
--- a/lib/dijit/themes/soria/TitlePane.css
+++ b/lib/dijit/themes/soria/TitlePane.css
@@ -1,58 +1 @@
-/**
- * dijit.TitlePane
- *
- */
-
-.soria .dijitTitlePaneTitle {
- background: #cccccc;
- background:#fff url("images/titleBar.png") repeat-x top left;
- border:1px solid #bfbfbf;
- padding:3px 4px;
- font-size: 0.9em;
- font-weight: bold;
- color: #6d6d6d;
-}
-.soria .dijitTitlePaneTitleHover {
- background: #f9f9f9 url("images/accordionItemActive.png") top repeat-x;
-}
-
-.soria .dijitTitlePaneTitle * {
- vertical-align: middle;
-}
-
-.soria .dijitTitlePane .dijitOpen .dijitArrowNode,
-.soria .dijitTitlePane .dijitClosed .dijitArrowNode {
- width:15px;
- height:15px;
-}
-
-.soria .dijitTitlePaneTextNode {
- color: #243C5F;
-}
-
-.soria .dijitTitlePane .dijitClosed .dijitArrowNode {
- background: url('images/spriteRoundedIconsSmall.png') no-repeat -30px top;
-}
-.dj_ie6 .soria .dijitTitlePane .dijitClosed .dijitArrowNode {
- background:url('images/spriteRoundedIconsSmall.gif') no-repeat -30px top;
-}
-.soria .dijitTitlePane .dijitOpen .dijitArrowNode {
- background:url('images/spriteRoundedIconsSmall.png') no-repeat -15px top;
-}
-.dj_ie6 .soria .dijitTitlePane .dijitOpen .dijitArrowNode {
- background:url('images/spriteRoundedIconsSmall.gif') no-repeat -15px top;
-}
-
-.soria .dijitTitlePaneContentOuter {
- background: #ffffff;
- border: 1px solid #bfbfbf;
- border-top: 0;
-}
-.soria .dijitTitlePaneContentInner {
- padding:10px;
-}
-
-.soria .dijitTitlePaneTextNode {
- margin-left: 4px;
- margin-right: 4px;
-} \ No newline at end of file
+.soria .dijitTitlePaneTitle {background: #cccccc; background:#fff url("images/titleBar.png") repeat-x top left; border:1px solid #bfbfbf; padding:3px 4px; font-size: 0.9em; font-weight: bold; color: #6d6d6d;}.soria .dijitTitlePaneTitleHover {background: #f9f9f9 url("images/accordionItemActive.png") top repeat-x;}.soria .dijitTitlePaneTitle * {vertical-align: middle;}.soria .dijitTitlePane .dijitOpen .dijitArrowNode,.soria .dijitTitlePane .dijitClosed .dijitArrowNode {width:15px; height:15px;}.soria .dijitTitlePaneTextNode {color: #243C5F;}.soria .dijitTitlePane .dijitClosed .dijitArrowNode {background: url('images/spriteRoundedIconsSmall.png') no-repeat -30px top;}.dj_ie6 .soria .dijitTitlePane .dijitClosed .dijitArrowNode {background:url('images/spriteRoundedIconsSmall.gif') no-repeat -30px top;}.soria .dijitTitlePane .dijitOpen .dijitArrowNode {background:url('images/spriteRoundedIconsSmall.png') no-repeat -15px top;}.dj_ie6 .soria .dijitTitlePane .dijitOpen .dijitArrowNode {background:url('images/spriteRoundedIconsSmall.gif') no-repeat -15px top;}.soria .dijitTitlePaneContentOuter {background: #ffffff; border: 1px solid #bfbfbf; border-top: 0;}.soria .dijitTitlePaneContentInner {padding:10px;}.soria .dijitTitlePaneTextNode {margin-left: 4px; margin-right: 4px;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/TitlePane_rtl.css b/lib/dijit/themes/soria/TitlePane_rtl.css
index 8a1b73d4e..0180dee58 100644
--- a/lib/dijit/themes/soria/TitlePane_rtl.css
+++ b/lib/dijit/themes/soria/TitlePane_rtl.css
@@ -1,6 +1 @@
-.dijitRtl .soria .dijitTitlePane .dijitClosed .dijitArrowNode {
- background-position: 0 top;
-}
-.dj_ie6-rtl .soria .dijitTitlePane .dijitClosed .dijitArrowNode {
- background-position: 0 top;
-} \ No newline at end of file
+.dijitRtl .soria .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: 0 top;}.dj_ie6-rtl .soria .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: 0 top;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Toolbar.css b/lib/dijit/themes/soria/Toolbar.css
index 8af426a11..71a93a3dc 100644
--- a/lib/dijit/themes/soria/Toolbar.css
+++ b/lib/dijit/themes/soria/Toolbar.css
@@ -1,65 +1 @@
-.soria .dijitToolbar {
- border-bottom: 1px solid #ccc;
- background:#eaeaea url("images/titleBar.png") repeat-x top left;
-}
-
-/* setting a min-height on ditor toolbar */
-.dj_ie6 .soria .dijitToolbar {
- height: 10px;
-}
-
-.soria .dijitToolbar .dijitButtonNode,
-.soria .dijitToolbar .dijitComboButton .dijitButtonContents,
-.soria .dijitToolbar .dijitComboButton .dijitDownArrowButton {
- background: none;
- margin: 0;
- padding: 0;
- border: none;
- font-size: 12px;
-}
-
-.soria .dijitToolbar .dijitButton,
-.soria .dijitToolbar .dijitToggleButton,
-.soria .dijitToolbar .dijitDropDownButton,
-.soria .dijitToolbar .dijitComboButton .dijitButtonContents,
-.soria .dijitToolbar .dijitComboButton .dijitDownArrowButton {
- background: none;
- padding: 1px; /* on hover etc., margin replaced w/border */
-}
-
-.soria .dijitToolbar .dijitButtonChecked,
-.soria .dijitToolbar .dijitToggleButtonChecked {
- background-color:#d8e5f8;
- border:1px solid #316ac5;
- padding: 0;
-}
-
-.soria .dijitToolbar .dijitButtonCheckedHover,
-.soria .dijitToolbar .dijitToggleButtonCheckedHover
- {
- background-color:#9abbea;
- border:1px solid #316ac5;
- padding: 0;
-}
-
-.soria .dijitToolbar .dijitButtonHover,
-.soria .dijitToolbar .dijitToggleButtonHover,
-.soria .dijitToolbar .dijitDropDownButtonHover,
-.soria .dijitToolbar .dijitComboButton .dijitButtonContentsHover,
-.soria .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover {
- /* TODO: change this from Hover to Selected so that button is still highlighted while drop down is being used */
- border: 1px solid #316ac5;
- padding: 0;
- background-color:#9abbea;
-}
-
-.soria .dijitToolbar label {
- padding: 3px 3px 0 6px;
-}
-
-.dj_ie .soria .dijitToolbar .dijitComboButton .dijitButtonContentsFocused,
-.dj_ie .soria .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused {
- /* focus border doesn't appear on <td> for IE, so need to add it manually */
- border: 1px #777 dotted !important;
- padding: 0;
-}
+.soria .dijitToolbar {border-bottom: 1px solid #ccc; background:#eaeaea url("images/titleBar.png") repeat-x top left;}.dj_ie6 .soria .dijitToolbar {height: 10px;}.soria .dijitToolbar .dijitButtonNode,.soria .dijitToolbar .dijitComboButton .dijitButtonContents,.soria .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; margin: 0; padding: 0; border: none; font-size: 12px;}.soria .dijitToolbar .dijitButton,.soria .dijitToolbar .dijitToggleButton,.soria .dijitToolbar .dijitDropDownButton,.soria .dijitToolbar .dijitComboButton .dijitButtonContents,.soria .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; padding: 1px;}.soria .dijitToolbar .dijitButtonChecked,.soria .dijitToolbar .dijitToggleButtonChecked {background-color:#d8e5f8; border:1px solid #316ac5; padding: 0;}.soria .dijitToolbar .dijitButtonCheckedHover,.soria .dijitToolbar .dijitToggleButtonCheckedHover {background-color:#9abbea; border:1px solid #316ac5; padding: 0;}.soria .dijitToolbar .dijitButtonHover,.soria .dijitToolbar .dijitToggleButtonHover,.soria .dijitToolbar .dijitDropDownButtonHover,.soria .dijitToolbar .dijitComboButton .dijitButtonContentsHover,.soria .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover {border: 1px solid #316ac5; padding: 0; background-color:#9abbea;}.soria .dijitToolbar label {padding: 3px 3px 0 6px;}.dj_ie .soria .dijitToolbar .dijitComboButton .dijitButtonContentsFocused,.dj_ie .soria .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused {border: 1px #777 dotted !important; padding: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Tree.css b/lib/dijit/themes/soria/Tree.css
index d8edb67df..97ecfee31 100644
--- a/lib/dijit/themes/soria/Tree.css
+++ b/lib/dijit/themes/soria/Tree.css
@@ -1,105 +1 @@
-/* Tree */
-
-.soria .dijitTreeNode {
- background : url('images/treeI.gif') no-repeat;
- background-position : top left;
- background-repeat : repeat-y;
- zoom: 1;
-}
-
-.soria .dijitTreeRowHover {
- /* using a transparent png so that we can still see grid lines, which are (unfortunately) behind the dijitRowNode that we are hovering over */
- background-image: url(images/treeHover.png);
- background-repeat: repeat;
- background-color: transparent !important;
-}
-
-
-/* left vertical line (grid) for all nodes */
-.soria .dijitTreeIsLast {
- background: url('images/treeI_half.gif') no-repeat;
-}
-
-.soria .dijitTreeLabel {
- font-weight: normal;
- margin-left: 3px;
-}
-
-.soria .dijitTreeIsRoot {
- margin-left: 0;
- background-image: none;
-}
-
-.soria .dijitTreeExpando {
- width: 18px;
- height: 18px;
-}
-
-.soria .dijitTreeRow {
- /* so insert line shows up on IE when dropping after a target element */
- padding-bottom: 2px;
-}
-
-.soria .dijitTreeContent {
- min-height: 18px;
- min-width: 18px;
- padding-left:1px;
-}
-
-.soria .dijitTreeRowSelected .dijitTreeLabel{
- background:#b8cbec;
-}
-
-.soria .dijitTreeExpandoOpened {
- background: url('images/spriteTree.gif') no-repeat -18px top;
-}
-
-.soria .dijitTreeExpandoClosed {
- background-image: url('images/spriteTree.gif');
-}
-
-.soria .dijitTreeExpandoLeaf {
- background: url('images/spriteTree.gif') no-repeat -36px top;
-}
-
-.soria .dijitTreeExpandoLoading {
- background-image: url('images/treeExpand_loading.gif');
-}
-
-.soria .dijitTreeIcon {
- width: 16px;
- height: 16px;
-}
-
-.soria .dijitFolderOpened {
- background: url('images/spriteDivIcons.gif') no-repeat -16px top;
-}
-
-.soria .dijitFolderClosed {
- background: url('images/spriteDivIcons.gif') no-repeat top left;
-}
-
-.soria .dijitLeaf {
- background: url('images/spriteDivIcons.gif') no-repeat -32px top;
-}
-
-/* Drag and Drop on TreeNodes
- * Put insert line on dijitTreeContent node so it's aligned w/
- * (ie, indented equally with) target element, even
- * though dijitTreeRowNode is the actual "drag object"
- */
-.soria .dijitTreeNode .dojoDndItemBefore,
-.soria .dijitTreeNode .dojoDndItemAfter {
- border-bottom: none;
- border-top: none;
-}
-
-.soria .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {
- /* copied from Common.css */
- border-top: 2px solid #369;
-}
-
-.soria .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {
- /* copied from Common.css */
- border-bottom: 2px solid #369;
-}
+.soria .dijitTreeNode {background : url('images/treeI.gif') no-repeat; background-position : top left; background-repeat : repeat-y; zoom: 1;}.soria .dijitTreeRowHover {background-image: url(images/treeHover.png); background-repeat: repeat; background-color: transparent !important;}.soria .dijitTreeIsLast {background: url('images/treeI_half.gif') no-repeat;}.soria .dijitTreeLabel {font-weight: normal; margin-left: 3px;}.soria .dijitTreeIsRoot {margin-left: 0; background-image: none;}.soria .dijitTreeExpando {width: 18px; height: 18px;}.soria .dijitTreeRow {padding-bottom: 2px;}.soria .dijitTreeContent {min-height: 18px; min-width: 18px; padding-left:1px;}.soria .dijitTreeRowSelected .dijitTreeLabel{background:#b8cbec;}.soria .dijitTreeExpandoOpened {background: url('images/spriteTree.gif') no-repeat -18px top;}.soria .dijitTreeExpandoClosed {background-image: url('images/spriteTree.gif');}.soria .dijitTreeExpandoLeaf {background: url('images/spriteTree.gif') no-repeat -36px top;}.soria .dijitTreeExpandoLoading {background-image: url('images/treeExpand_loading.gif');}.soria .dijitTreeIcon {width: 16px; height: 16px;}.soria .dijitFolderOpened {background: url('images/spriteDivIcons.gif') no-repeat -16px top;}.soria .dijitFolderClosed {background: url('images/spriteDivIcons.gif') no-repeat top left;}.soria .dijitLeaf {background: url('images/spriteDivIcons.gif') no-repeat -32px top;}.soria .dijitTreeNode .dojoDndItemBefore,.soria .dijitTreeNode .dojoDndItemAfter {border-bottom: none; border-top: none;}.soria .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {border-top: 2px solid #369;}.soria .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {border-bottom: 2px solid #369;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/Tree_rtl.css b/lib/dijit/themes/soria/Tree_rtl.css
index 44daf3aa8..c7007acb0 100644
--- a/lib/dijit/themes/soria/Tree_rtl.css
+++ b/lib/dijit/themes/soria/Tree_rtl.css
@@ -1,22 +1 @@
-/* Tree */
-
-.dijitRtl .soria .dijitTreeNode,
-.dijitRtl .soria .dijitTreeExpandoLeaf {
- /* disable grid lines for Tree in RTL mode, too hard to support */
- background-image: none;
-}
-
-.dijitRtl .soria .dijitTreeContent {
- padding-left: 0;
- padding-right: 1px;
-}
-
-.dijitRtl .soria .dijitTreeExpandoOpened {
- /* todo: icon contains grid line but grid lines disabled above */
- background: url('images/spriteTree_rtl.gif') no-repeat -18px top;
-}
-
-.dijitRtl .soria .dijitTreeExpandoClosed {
- /* todo: icon contains grid line but grid lines disabled above */
- background-image: url('images/spriteTree_rtl.gif');
-}
+.dijitRtl .soria .dijitTreeNode,.dijitRtl .soria .dijitTreeExpandoLeaf {background-image: none;}.dijitRtl .soria .dijitTreeContent {padding-left: 0; padding-right: 1px;}.dijitRtl .soria .dijitTreeExpandoOpened {background: url('images/spriteTree_rtl.gif') no-repeat -18px top;}.dijitRtl .soria .dijitTreeExpandoClosed {background-image: url('images/spriteTree_rtl.gif');} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/form/Button.css b/lib/dijit/themes/soria/form/Button.css
index 9efe7ead8..0b5e0b53c 100644
--- a/lib/dijit/themes/soria/form/Button.css
+++ b/lib/dijit/themes/soria/form/Button.css
@@ -1,122 +1 @@
-
-/*****
- dijit.form.Button
- dijit.form.DropDownButton
- dijit.form.ComboButton
- dijit.form.ComboBox (partial)
- dijit.form.Spinner (partial) (TODO: create NumberSpinner.css file like claro has)
- *****/
-
-.soria .dijitButtonNode {
- /* enabled state - inner */
- border: 1px solid #8ba0bd;
- border-bottom:1px solid #657c9c;
- padding: 0.1em 0.2em 0.2em 0.2em;
- background: #bcd5f0 url("../images/buttonEnabled.png") repeat-x top left;
-}
-.soria .dijitSelect .dijitButtonContents {
- border-right: none;
-}
-
-.soria .dijitButtonText {
- text-align: center;
- padding: 0 0.3em;
-}
-
-.soria .dijitArrowButton {
- color: #111;
-}
-
-.soria .dijitComboButton .dijitDownArrowButton {
- padding-right:4px;
-}
-
-.soria .dijitTextBoxReadOnly,
-.soria .dijitTextBoxReadOnly .dijitButtonNode,
-.soria .dijitButtonDisabled .dijitButtonNode,
-.soria .dijitToggleButtonDisabled .dijitButtonNode,
-.soria .dijitDropDownButtonDisabled .dijitButtonNode,
-.soria .dijitComboButtonDisabled .dijitButtonNode,
-.soria .dijitTextBoxDisabled,
-.soria .dijitTextBoxDisabled .dijitButtonNode {
- /* disabled state - inner */
- border-color: #b9bbdd #b9bbdd #b9bbdd #b9bbdd;
- background:#c3d3e5 url("../images/buttonDisabled.png") top repeat-x;
- opacity: 0.60;
-}
-.dj_ie6 .soria .dijitReadOnly input,
-.dj_ie7 .soria .dijitReadOnly input,
-.dj_ie6 .soria .dijitComboButtonDisabled .dijitButtonText,
-.dj_ie7 .soria .dijitComboButtonDisabled .dijitButtonText {
- /* opacity doesn't work on table node in IE, work around here */
- color: #aaa;
-}
-.soria .dijitButtonHover .dijitButtonNode,
-.soria .dijitButtonNodeHover,
-.soria .dijitToggleButtonHover .dijitButtonNode,
-.soria .dijitDropDownButtonHover .dijitButtonNode,
-.soria .dijitButtonContentsHover,
-.soria .dijitUpArrowButtonHover,
-.soria .dijitDownArrowButtonHover {
- /* hover state - inner */
- /* TODO: change from Hover to Selected so that button is still highlighted while drop down is being used */
- color:#243C5F;
- background:#acc5e2 url("../images/buttonHover.png") repeat-x top left;
-}
-
-.soria .dijitButtonActive .dijitButtonNode,
-.soria .dijitToggleButtonActive .dijitButtonNode,
-.soria .dijitDropDownButtonActive .dijitButtonNode,
-.soria .dijitComboButtonActive .dijitButtonContents,
-.soria .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {
- /* active state - inner (for when you are pressing a normal button, or
- * when a radio-type button is in a depressed state
- */
- border-color:#657c9c;
- background: #91b4e5 url("../images/buttonActive.png") top left repeat-x;
-}
-.soria .dijitUpArrowButtonActive,
-.soria .dijitDownArrowButtonActive {
- /* same as above except don't adjust border color (it's controlled by the containing Spinner/ComboBox) */
- background: #91b4e5 url("../images/buttonActive.png") top left repeat-x;
-}
-
-
-.soria .dijitArrowButtonInner {
- background-image: url("../images/spriteArrows.png");
- background-repeat: no-repeat;
- background-position: 0 center;
- width: 11px;
- height: 11px;
-}
-.soria .dijitComboBox .dijitArrowButtonInner {
- background-position: 0 center;
-}
-.soria .dijitLeftArrowButton .dijitArrowButtonInner {
- background-position: -11px center;
-}
-.soria .dijitUpArrowButton .dijitArrowButtonInner {
- background-position: -22px center;
-}
-.soria .dijitRightArrowButton .dijitArrowButtonInner {
- background-position: -33px center;
-}
-.dj_ie6 .soria .dijitArrowButtonInner {
- background-image: url("../images/spriteArrows.gif");
-}
-.dj_ie .soria .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner {
- margin-top: 1px; /* image has too many blank pixels on top */
-}
-.soria .dijitSpinnerButtonContainer {
- width: auto;
- padding: 0;
-}
-.soria .dijitSpinner .dijitArrowButton {
- width: 15px;
-}
-.soria .dijitSpinner .dijitSpinnerButtonInner {
- width: 15px;
-}
-.soria .dijitSpinner .dijitArrowButtonInner .dijitInputField {
- padding: 0;
-}
+.soria .dijitButtonNode {border: 1px solid #8ba0bd; border-bottom:1px solid #657c9c; padding: 0.1em 0.2em 0.2em 0.2em; background: #bcd5f0 url("../images/buttonEnabled.png") repeat-x top left;}.soria .dijitButtonText {text-align: center; padding: 0 0.3em;}.soria .dijitInputField {padding: 0;}.soria .dijitArrowButton {color: #111;}.soria .dijitComboButton .dijitDownArrowButton {padding-right:4px;}.soria .dijitTextBoxReadOnly,.soria .dijitTextBoxReadOnly .dijitButtonNode,.soria .dijitButtonDisabled .dijitButtonNode,.soria .dijitToggleButtonDisabled .dijitButtonNode,.soria .dijitDropDownButtonDisabled .dijitButtonNode,.soria .dijitComboButtonDisabled .dijitButtonNode,.soria .dijitTextBoxDisabled,.soria .dijitTextBoxDisabled .dijitButtonNode {border-color: #b9bbdd #b9bbdd #b9bbdd #b9bbdd; background:#c3d3e5 url("../images/buttonDisabled.png") top repeat-x; opacity: 0.60;}.dj_ie6 .soria .dijitReadOnly input,.dj_ie7 .soria .dijitReadOnly input,.dj_ie6 .soria .dijitComboButtonDisabled .dijitButtonText,.dj_ie7 .soria .dijitComboButtonDisabled .dijitButtonText {color: #aaa;}.soria .dijitButtonHover .dijitButtonNode,.soria .dijitButtonNodeHover,.soria .dijitToggleButtonHover .dijitButtonNode,.soria .dijitDropDownButtonHover .dijitButtonNode,.soria .dijitButtonContentsHover,.soria .dijitUpArrowButtonHover,.soria .dijitDownArrowButtonHover {color:#243C5F; background:#acc5e2 url("../images/buttonHover.png") repeat-x top left;}.soria .dijitButtonActive .dijitButtonNode,.soria .dijitToggleButtonActive .dijitButtonNode,.soria .dijitDropDownButtonActive .dijitButtonNode,.soria .dijitComboButtonActive .dijitButtonContents,.soria .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {border-color:#657c9c; background: #91b4e5 url("../images/buttonActive.png") top left repeat-x;}.soria .dijitUpArrowButtonActive,.soria .dijitDownArrowButtonActive {background: #91b4e5 url("../images/buttonActive.png") top left repeat-x;}.soria .dijitArrowButtonInner {background-image: url("../images/spriteArrows.png"); background-repeat: no-repeat; background-position: 0 center; width: 11px; height: 11px;}.soria .dijitComboBox .dijitArrowButtonInner {background-position: 0 center;}.soria .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -11px center;}.soria .dijitUpArrowButton .dijitArrowButtonInner {background-position: -22px center;}.soria .dijitRightArrowButton .dijitArrowButtonInner {background-position: -33px center;}.dj_ie6 .soria .dijitArrowButtonInner {background-image: url("../images/spriteArrows.gif");}.dj_ie .soria .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner {margin-top: 1px;}.soria .dijitSpinnerButtonContainer {width: auto; padding: 0;}.soria .dijitSpinner .dijitArrowButton {width: 15px;}.soria .dijitSpinner .dijitSpinnerButtonInner {width: 15px;}.soria .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/form/Button_rtl.css b/lib/dijit/themes/soria/form/Button_rtl.css
index e2f3728f3..80d72f289 100644
--- a/lib/dijit/themes/soria/form/Button_rtl.css
+++ b/lib/dijit/themes/soria/form/Button_rtl.css
@@ -1,7 +1 @@
-.dijitRtl .soria .dijitComboBox .dijitButtonNode {
- border-width: 0 0 0 1px;
-}
-.dijitRtl .soria .dijitSelect .dijitButtonContents {
- border-left: none;
- border-right-width: 1px;
-}
+.soria .dijitComboBoxRtl .dijitButtonNode {border-width: 0 0 0 1px;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/form/Checkbox.css b/lib/dijit/themes/soria/form/Checkbox.css
index 5a72bfc06..a82bf29ef 100644
--- a/lib/dijit/themes/soria/form/Checkbox.css
+++ b/lib/dijit/themes/soria/form/Checkbox.css
@@ -1,67 +1 @@
-
-/*
- * CheckBox and Radio Widgets,
- * and the CSS to embed a checkbox or radio icon inside a ToggleButton.
- *
- * Order of images in the default sprite (from L to R, checkbox and radio in same image):
- * checkbox normal - checked
- * - unchecked
- * disabled - checked
- * - unchecked
- * hover - checked
- * - unchecked
- *
- * radio normal - checked
- * - unchecked
- * disabled - checked
- * - unchecked
- * hover - checked
- * - unchecked
-*/
-
-.soria .dijitToggleButton .dijitCheckBox,
-.soria .dijitToggleButton .dijitCheckBoxIcon {
- background-image: url('../images/spriteCheckbox.gif');
-}
-
-.soria .dijitCheckBox,
-.soria .dijitCheckBoxIcon { /* inside a toggle button */
- background-image: url('../images/spriteCheckbox.gif'); /* checkbox sprite image */
- background-repeat: no-repeat;
- width: 16px;
- height: 16px;
- margin: 0;
- padding: 0;
-}
-
-.soria .dijitCheckBox,
-.soria .dijitToggleButton .dijitCheckBoxIcon {
- /* unchecked */
- background-position: -16px;
-}
-
-.soria .dijitCheckBoxChecked,
-.soria .dijitToggleButtonChecked .dijitCheckBoxIcon {
- /* checked */
- background-position: 0;
-}
-
-.soria .dijitCheckBoxDisabled {
- /* disabled */
- background-position: -48px;
-}
-
-.soria .dijitCheckBoxCheckedDisabled {
- /* disabled but checked */
- background-position: -32px;
-}
-
-.soria .dijitCheckBoxHover {
- /* hovering over an unchecked enabled checkbox */
- background-position: -80px;
-}
-
-.soria .dijitCheckBoxCheckedHover {
- /* hovering over a checked enabled checkbox */
- background-position: -64px;
-} \ No newline at end of file
+.soria .dijitToggleButton .dijitCheckBox,.soria .dijitToggleButton .dijitCheckBoxIcon {background-image: url('../images/spriteCheckbox.gif');}.soria .dijitCheckBox,.soria .dijitCheckBoxIcon {background-image: url('../images/spriteCheckbox.gif'); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0; padding: 0;}.soria .dijitCheckBox,.soria .dijitToggleButton .dijitCheckBoxIcon {background-position: -16px;}.soria .dijitCheckBoxChecked,.soria .dijitToggleButtonChecked .dijitCheckBoxIcon {background-position: 0;}.soria .dijitCheckBoxDisabled {background-position: -48px;}.soria .dijitCheckBoxCheckedDisabled {background-position: -32px;}.soria .dijitCheckBoxHover {background-position: -80px;}.soria .dijitCheckBoxCheckedHover {background-position: -64px;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/form/Common.css b/lib/dijit/themes/soria/form/Common.css
index 42dfefa2e..f3345092f 100644
--- a/lib/dijit/themes/soria/form/Common.css
+++ b/lib/dijit/themes/soria/form/Common.css
@@ -1,74 +1 @@
-
-/****
- dijit.form.TextBox
- dijit.form.ValidationTextBox
- dijit.form.SerializableTextBox
- dijit.form.RangeBoundTextBox
- dijit.form.NumberTextBox
- dijit.form.CurrencyTextBox
- dijit.form.NumberSpinner
- dijit.form.ComboBox (partial)
- ****/
-
-.soria .dijitInputContainer input,
-.soria .dijitTextBox {
- margin: 0 0.1em;
-}
-
-.soria .dijitTextBox,
-.soria .dijitTextArea {
- /* For all except dijit.form.NumberSpinner: the actual input element.
- For TextBox, ComboBox, Spinner: the table that contains the input.
- Otherwise the actual input element.
- */
- background:#fff url("../images/validationInputBg.png") repeat-x top left;
- #background:#fff url('../images/validationInputBg.gif') repeat-x top left;
- border:1px solid #8ba0bd;
-}
-
-.soria .dijitComboBox .dijitButtonNode {
- padding: 0 0.2em;
-}
-.soria .dijitTextBox .dijitButtonNode {
- /* line between the input area and the drop down button */
- border-color: #8ba0bd;
-}
-
-.soria .dijitTextBoxFocused,
-.soria .dijitTextAreaFocused {
- /* input field when focused (ie: typing affects it) */
- border-color:#406b9b;
-}
-.soria .dijitTextBoxFocused .dijitButtonNode,
-.soria .dijitSpinner .dijitUpArrowButtonActive,
-.soria .dijitSpinner .dijitDownArrowButtonActive {
- border-left-color:#8ba0bd;
-}
-.soria .dijitSpinnerFocused .dijitDownArrowButton,
-.soria .dijitSpinner .dijitUpArrowButtonActive,
-.soria .dijitSpinner .dijitDownArrowButtonActive {
- border-top-color:#8ba0bd;
-}
-
-.soria .dijitError {
- border-color:#f3d118;
- background-color:#f9f7ba;
- background-image:none;
-}
-
-.soria .dijitErrorFocused {
- background-color:#ff6;
- background-image:none;
-}
-
-/* Validation errors */
-.soria .dijitValidationIcon {
- /* prevent height change when widget goes from valid to invalid state */
- width: 16px;
- background: transparent url('../images/warning.png') no-repeat center center;
-}
-
-/* The highlight is shown in the ComboBox menu. */
-.soria .dijitComboBoxHighlightMatch {
- background-color:#f9f7ba;
-}
+.soria .dijitInputContainer input {margin: 0 0.1em;}.soria .dijitSelect .dijitButtonContents,.soria .dijitSelect,.soria .dijitTextBox,.soria .dijitTextArea {background:#fff url("../images/validationInputBg.png") repeat-x top left; #background:#fff url('../images/validationInputBg.gif') repeat-x top left;}.soria .dijitSelect,.soria .dijitTextBox,.soria .dijitTextArea {border:1px solid #8ba0bd;}.soria .dijitSelect .dijitArrowButton,.soria .dijitComboBox .dijitButtonNode {padding: 0 0.2em;}.soria .dijitSelect .dijitButtonContents,.soria .dijitTextBox .dijitButtonNode {border-color: #8ba0bd;}.soria .dijitSelectFocused,.soria .dijitTextBoxFocused,.soria .dijitTextAreaFocused {border-color:#406b9b;}.soria .dijitSelectFocused TD,.soria .dijitTextBoxFocused .dijitButtonNode,.soria .dijitSpinner .dijitUpArrowButtonActive,.soria .dijitSpinner .dijitDownArrowButtonActive {border-color:#8ba0bd;}.soria .dijitSpinnerFocused .dijitDownArrowButton,.soria .dijitSpinner .dijitUpArrowButtonActive,.soria .dijitSpinner .dijitDownArrowButtonActive {border-top-color:#8ba0bd;}.soria .dijitError {border-color:#f3d118; background-color:#f9f7ba; background-image:none;}.soria .dijitErrorFocused {background-color:#ff6; background-image:none;}.soria .dijitValidationTextBoxError .dijitValidationIcon {width: 16px; background: transparent url('../images/warning.png') no-repeat center center;}.soria .dijitComboBoxHighlightMatch {background-color:#f9f7ba;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/form/RadioButton.css b/lib/dijit/themes/soria/form/RadioButton.css
index 1ea27bf65..4270d9968 100644
--- a/lib/dijit/themes/soria/form/RadioButton.css
+++ b/lib/dijit/themes/soria/form/RadioButton.css
@@ -1,66 +1 @@
-/*
- * CheckBox and Radio Widgets,
- * and the CSS to embed a checkbox or radio icon inside a ToggleButton.
- *
- * Order of images in the default sprite (from L to R, checkbox and radio in same image):
- * checkbox normal - checked
- * - unchecked
- * disabled - checked
- * - unchecked
- * hover - checked
- * - unchecked
- *
- * radio normal - checked
- * - unchecked
- * disabled - checked
- * - unchecked
- * hover - checked
- * - unchecked
-*/
-
-.soria .dijitToggleButton .dijitRadio,
-.soria .dijitToggleButton .dijitRadioIcon {
- background-image: url('../images/spriteRadio.gif');
-}
-
-.soria .dijitRadio,
-.soria .dijitRadioIcon { /* inside a toggle button */
- background-image: url('../images/spriteRadio.gif'); /* checkbox sprite image */
- background-repeat: no-repeat;
- width: 16px;
- height: 16px;
- margin: 0;
- padding: 0;
-}
-
-.soria .dijitRadio,
-.soria .dijitToggleButton .dijitRadioIcon {
- /* unselected */
- background-position: -16px;
-}
-
-.soria .dijitRadioChecked,
-.soria .dijitToggleButtonChecked .dijitRadioIcon {
- /* selected */
- background-position: 0;
-}
-
-.soria .dijitRadioDisabled {
- /* unselected and disabled */
- background-position: -48px;
-}
-
-.soria .dijitRadioCheckedDisabled {
- /* selected but disabled */
- background-position: -32px;
-}
-
-.soria .dijitRadioHover {
- /* hovering over an unselected enabled radio button */
- background-position: -80px;
-}
-
-.soria .dijitRadioCheckedHover {
- /* hovering over a selected enabled radio button */
- background-position: -64px;
-} \ No newline at end of file
+.soria .dijitToggleButton .dijitRadio,.soria .dijitToggleButton .dijitRadioIcon {background-image: url('../images/spriteRadio.gif');}.soria .dijitRadio,.soria .dijitRadioIcon {background-image: url('../images/spriteRadio.gif'); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0; padding: 0;}.soria .dijitRadio,.soria .dijitToggleButton .dijitRadioIcon {background-position: -16px;}.soria .dijitRadioChecked,.soria .dijitToggleButtonChecked .dijitRadioIcon {background-position: 0;}.soria .dijitRadioDisabled {background-position: -48px;}.soria .dijitRadioCheckedDisabled {background-position: -32px;}.soria .dijitRadioHover {background-position: -80px;}.soria .dijitRadioCheckedHover {background-position: -64px;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/form/Select.css b/lib/dijit/themes/soria/form/Select.css
index 18567720e..40e688fa1 100644
--- a/lib/dijit/themes/soria/form/Select.css
+++ b/lib/dijit/themes/soria/form/Select.css
@@ -1,54 +1 @@
-.soria .dijitSelect .dijitButtonNode {
- padding: 0;
-}
-
-/* Make unselected "look" more like a text box and less like a button */
-.soria .dijitSelect .dijitButtonContents {
- padding-top: 1px;
- background:#fff url("../images/validationInputBg.png") repeat-x top left;
- #background:#fff url('../images/validationInputBg.gif') repeat-x top left;
-}
-.soria .dijitSelectHover .dijitButtonContents,
-.soria .dijitSelectActive .dijitButtonContents,
-.soria .dijitSelectOpened .dijitButtonContents,
-.soria .dijitSelectDisabled .dijitButtonContents,
-.soria .dijitSelectReadOnly .dijitButtonContents{
- background: transparent none;
-}
-.dj_ie .soria .dijitSelect .dijitButtonContents {
- padding-top: 0;
-}
-
-.soria .dijitSelect .dijitArrowButton {
- padding: 0 2px;
-}
-
-/* Mirror DropDownButton */
-.soria .dijitSelectDisabled .dijitButtonNode {
- border-color: #b9bbdd #b9bbdd #b9bbdd #b9bbdd;
- background:#c3d3e5 url("../images/buttonDisabled.png") top repeat-x;
-}
-.dj_ie .soria .dijitSelectDisabled .dijitButtonNode * {
- filter: gray() alpha(opacity=50);
-}
-
-.soria .dijitSelectHover .dijitButtonNode {
- color:#000;
- background:#acc5e2 url("../images/buttonHover.png") repeat-x top left;
-}
-
-.soria .dijitSelectActive .dijitButtonNode,
-.soria .dijitSelectOpened .dijitButtonNode {
- border-color:#657c9c;
- background: #91b4e5 url("../images/buttonActive.png") top left repeat-x;
-}
-
-/* Make the menu look more combobox-like */
-.soria .dijitSelectMenu td {
- padding: 0;
-}
-.soria .dijitSelectMenu .dijitMenuItemLabel,
-.soria .dijitSelectMenu .dijitMenuArrowCell {
- padding: 0.1em 0.2em;
-}
-
+.soria .dijitSelectError .dijitButtonContents,.soria .dijitSelectHover .dijitArrowButton,.soria .dijitSelectActive .dijitArrowButton,.soria .dijitSelectOpened .dijitArrowButton,.soria .dijitSelectDisabled .dijitArrowButton,.soria .dijitSelectReadOnly .dijitArrowButton {background: transparent none;}.soria .dijitSelect .dijitArrowButton {background: #bcd5f0 url("../images/buttonEnabled.png") repeat-x top left; border-width: 0;}.soria .dijitSelectDisabled,.soria .dijitSelectDisabled TD {border-color: #b9bbdd !important; background:#c3d3e5 url("../images/buttonDisabled.png") top repeat-x;}.dj_ie .soria .dijitSelectDisabled TD * {filter: gray() alpha(opacity=50);}.soria .dijitSelectHover,.soria .dijitSelectHover TD {border-color:#a5beda #5c7590 #5c7590 #a5beda !important; color:#000; background:#acc5e2 url("../images/buttonHover.png") repeat-x top left;}.soria .dijitSelectActive,.soria .dijitSelectOpened,.soria .dijitSelectActive TD,.soria .dijitSelectOpened TD {border-color:#657c9c !important; background: #91b4e5 url("../images/buttonActive.png") top left repeat-x;}.soria .dijitSelectMenu td {padding: 0;}.soria .dijitSelectMenu .dijitMenuItemLabel,.soria .dijitSelectMenu .dijitMenuArrowCell {padding: 0.1em 0.2em;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/form/Slider.css b/lib/dijit/themes/soria/form/Slider.css
index 3a68f4631..d437fbc2d 100644
--- a/lib/dijit/themes/soria/form/Slider.css
+++ b/lib/dijit/themes/soria/form/Slider.css
@@ -1,144 +1 @@
-
-/****
- SLIDER
-****/
-
-.soria .dijitSliderProgressBarH {
- border-color: #b1badf;
- background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;
-}
-
-.soria .dijitSliderProgressBarV {
- border-color: #b1badf;
- background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;
-}
-
-.soria .dijitSliderFocused .dijitSliderProgressBarH,
-.soria .dijitSliderFocused .dijitSliderLeftBumper {
- background-image:url("../images/sliderFullFocus.png");
-}
-
-.soria .dijitSliderFocused .dijitSliderProgressBarV,
-.soria .dijitSliderFocused .dijitSliderBottomBumper {
- background-image:url("../images/sliderFullVerticalFocus.png");
-}
-
-.soria .dijitSliderRemainingBarV {
- border-color: #b4b4b4;
- background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y bottom left;
-}
-
-.soria .dijitSliderRemainingBarH {
- border-color: #b4b4b4;
- background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left;
-}
-
-.soria .dijitSliderBar {
- border-style: solid;
- outline:1px;
- /* border-color: #b4b4b4; */
-}
-.soria .dijitSliderFocused .dijitSliderBar {
- border-color:#8ba0bd;
-}
-
-.soria .dijitSliderImageHandleH {
- border:0;
- width:15px;
- height:18px;
- background:url("../images/preciseSliderThumb.png") no-repeat center top;
-}
-.soria .dijitSliderFocused .dijitSliderImageHandleH {
- background-image:url("../images/preciseSliderThumbFocus.png");
- #background-image:url("../images/preciseSliderThumbFocus.gif");
-}
-
-.dj_ie6 .soria .dijitSliderImageHandleH {
- background-image:url("../images/preciseSliderThumb.gif");
-}
-
-.soria .dijitSliderLeftBumper {
- border-left-width: 1px;
- border-color: #aab0bb;
- background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;
-}
-
-.soria .dijitSliderRightBumper {
- background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left;
- border-color: #b4b4b4;
- border-right-width: 1px;
-}
-
-.soria .dijitSliderImageHandleV {
- border:0;
- width:20px;
- height:15px;
- background:url("../images/sliderThumb.png") no-repeat center center;
- #background:url("../images/sliderThumb.gif") no-repeat center center;
-}
-
-.soria .dijitSliderFocused .dijitSliderImageHandleV {
- background-image:url("../images/sliderThumbFocus.png");
- #background-image:url("../images/sliderThumbFocus.gif");
-}
-
-.soria .dijitSliderBottomBumper {
- border-bottom-width: 1px;
- border-color: #aab0bb;
- background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;
-}
-
-.soria .dijitSliderTopBumper {
- background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y top left;
- border-color: #b4b4b4;
- border-top-width: 1px;
-}
-
-.soria .dijitSliderIncrementIconH,
-.soria .dijitSliderIncrementIconV {
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat -45px top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -45px top;
- width:15px; height:15px;
-}
-.soria .dijitSliderIncrementIconH {
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top;
-}
-
-.soria .dijitSliderDecrementIconH,
-.soria .dijitSliderDecrementIconV {
- width:15px;
- height:15px;
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat -15px top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -15px top;
-}
-.soria .dijitSliderDecrementIconH {
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat 0 top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat 0 top;
-}
-
-.soria .dijitSliderButtonInner {
- visibility:hidden;
-}
-
-.soria .dijitSliderReadOnly *,
-.soria .dijitSliderDisabled * {
- border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5;
- color: #bdbdbd;
-}
-.soria .dijitSliderReadOnly .dijitSliderDecrementIconH,
-.soria .dijitSliderDisabled .dijitSliderDecrementIconH {
- background-position: 0 -15px;
-}
-.soria .dijitSliderReadOnly .dijitSliderIncrementIconH,
-.soria .dijitSliderDisabled .dijitSliderIncrementIconH {
- background-position: -30px -15px;
-}
-.soria .dijitSliderReadOnly .dijitSliderDecrementIconV,
-.soria .dijitSliderDisabled .dijitSliderDecrementIconV {
- background-position: -15px -15px;
-}
-.soria .dijitSliderReadOnly .dijitSliderIncrementIconV,
-.soria .dijitSliderDisabled .dijitSliderIncrementIconV {
- background-position: -45px -15px;
-} \ No newline at end of file
+.soria .dijitSliderProgressBarH {border-color: #b1badf; background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;}.soria .dijitSliderProgressBarV {border-color: #b1badf; background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;}.soria .dijitSliderFocused .dijitSliderProgressBarH,.soria .dijitSliderFocused .dijitSliderLeftBumper {background-image:url("../images/sliderFullFocus.png");}.soria .dijitSliderFocused .dijitSliderProgressBarV,.soria .dijitSliderFocused .dijitSliderBottomBumper {background-image:url("../images/sliderFullVerticalFocus.png");}.soria .dijitSliderRemainingBarV {border-color: #b4b4b4; background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y bottom left;}.soria .dijitSliderRemainingBarH {border-color: #b4b4b4; background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left;}.soria .dijitSliderBar {border-style: solid; outline:1px;}.soria .dijitSliderFocused .dijitSliderBar {border-color:#8ba0bd;}.soria .dijitSliderImageHandleH {border:0; width:15px; height:18px; background:url("../images/preciseSliderThumb.png") no-repeat center top;}.soria .dijitSliderFocused .dijitSliderImageHandleH {background-image:url("../images/preciseSliderThumbFocus.png"); #background-image:url("../images/preciseSliderThumbFocus.gif");}.dj_ie6 .soria .dijitSliderImageHandleH {background-image:url("../images/preciseSliderThumb.gif");}.soria .dijitSliderLeftBumper {border-left-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;}.soria .dijitSliderRightBumper {background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left; border-color: #b4b4b4; border-right-width: 1px;}.soria .dijitSliderImageHandleV {border:0; width:20px; height:15px; background:url("../images/sliderThumb.png") no-repeat center center; #background:url("../images/sliderThumb.gif") no-repeat center center;}.soria .dijitSliderFocused .dijitSliderImageHandleV {background-image:url("../images/sliderThumbFocus.png"); #background-image:url("../images/sliderThumbFocus.gif");}.soria .dijitSliderBottomBumper {border-bottom-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;}.soria .dijitSliderTopBumper {background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y top left; border-color: #b4b4b4; border-top-width: 1px;}.soria .dijitSliderIncrementIconH,.soria .dijitSliderIncrementIconV {background:url('../images/spriteRoundedIconsSmall.png') no-repeat -45px top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -45px top; width:15px; height:15px;}.soria .dijitSliderIncrementIconH {background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top;}.soria .dijitSliderDecrementIconH,.soria .dijitSliderDecrementIconV {width:15px; height:15px; background:url('../images/spriteRoundedIconsSmall.png') no-repeat -15px top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -15px top;}.soria .dijitSliderDecrementIconH {background:url('../images/spriteRoundedIconsSmall.png') no-repeat 0 top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat 0 top;}.soria .dijitSliderButtonInner {visibility:hidden;}.soria .dijitSliderReadOnly *,.soria .dijitSliderDisabled * {border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; color: #bdbdbd;}.soria .dijitSliderReadOnly .dijitSliderDecrementIconH,.soria .dijitSliderDisabled .dijitSliderDecrementIconH {background-position: 0 -15px;}.soria .dijitSliderReadOnly .dijitSliderIncrementIconH,.soria .dijitSliderDisabled .dijitSliderIncrementIconH {background-position: -30px -15px;}.soria .dijitSliderReadOnly .dijitSliderDecrementIconV,.soria .dijitSliderDisabled .dijitSliderDecrementIconV {background-position: -15px -15px;}.soria .dijitSliderReadOnly .dijitSliderIncrementIconV,.soria .dijitSliderDisabled .dijitSliderIncrementIconV {background-position: -45px -15px;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/form/Slider_rtl.css b/lib/dijit/themes/soria/form/Slider_rtl.css
index d9b67c504..1c113c3fb 100644
--- a/lib/dijit/themes/soria/form/Slider_rtl.css
+++ b/lib/dijit/themes/soria/form/Slider_rtl.css
@@ -1,36 +1 @@
-
-/* Slider */
-
-.dijitRtl .soria .dijitSliderProgressBarH,
-.dijitRtl .soria .dijitSliderRemainingBarH,
-.dijitRtl .soria .dijitSliderLeftBumper,
-.dijitRtl .soria .dijitSliderRightBumper,
-.dijitRtl .soria .dijitSliderTopBumper {
- background-position: top right;
-}
-
-.dijitRtl .soria .dijitSliderProgressBarV,
-.dijitRtl .soria .dijitSliderRemainingBarV,
-.dijitRtl .soria .dijitSliderBottomBumper {
- background-position: bottom right;
-}
-
-.dijitRtl .soria .dijitSliderLeftBumper {
- border-left-width: 0;
- border-right-width: 1px;
-}
-
-.dijitRtl .soria .dijitSliderRightBumper {
- border-left-width: 1px;
- border-right-width: 0;
-}
-
-.dijitRtl .soria .dijitSliderIncrementIconH {
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat left top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat left top;
-}
-
-.dijitRtl .soria .dijitSliderDecrementIconH {
- background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top;
- #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top;
-}
+.dijitRtl .soria .dijitSliderProgressBarH,.dijitRtl .soria .dijitSliderRemainingBarH,.dijitRtl .soria .dijitSliderLeftBumper,.dijitRtl .soria .dijitSliderRightBumper,.dijitRtl .soria .dijitSliderTopBumper {background-position: top right;}.dijitRtl .soria .dijitSliderProgressBarV,.dijitRtl .soria .dijitSliderRemainingBarV,.dijitRtl .soria .dijitSliderBottomBumper {background-position: bottom right;}.dijitRtl .soria .dijitSliderLeftBumper {border-left-width: 0; border-right-width: 1px;}.dijitRtl .soria .dijitSliderRightBumper {border-left-width: 1px; border-right-width: 0;}.dijitRtl .soria .dijitSliderIncrementIconH {background:url('../images/spriteRoundedIconsSmall.png') no-repeat left top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat left top;}.dijitRtl .soria .dijitSliderDecrementIconH {background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top; #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/images/dndNoCopy.png b/lib/dijit/themes/soria/images/dndNoCopy.png
index 9bf9c3396..998c2f269 100644
--- a/lib/dijit/themes/soria/images/dndNoCopy.png
+++ b/lib/dijit/themes/soria/images/dndNoCopy.png
Binary files differ
diff --git a/lib/dijit/themes/soria/images/dndNoMove.png b/lib/dijit/themes/soria/images/dndNoMove.png
index cb8bd8bdd..e909173e0 100644
--- a/lib/dijit/themes/soria/images/dndNoMove.png
+++ b/lib/dijit/themes/soria/images/dndNoMove.png
Binary files differ
diff --git a/lib/dijit/themes/soria/images/tabBottomActiveSpriteLR.gif b/lib/dijit/themes/soria/images/tabBottomActiveSpriteLR.gif
deleted file mode 100644
index 7c2ed86d2..000000000
--- a/lib/dijit/themes/soria/images/tabBottomActiveSpriteLR.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/soria/images/tabBottomHoverSpriteLR.gif b/lib/dijit/themes/soria/images/tabBottomHoverSpriteLR.gif
deleted file mode 100644
index 59f3edd60..000000000
--- a/lib/dijit/themes/soria/images/tabBottomHoverSpriteLR.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/soria/images/tabLeftChecked.gif b/lib/dijit/themes/soria/images/tabLeftChecked.gif
index 3e7475aa5..439aa6b44 100644
--- a/lib/dijit/themes/soria/images/tabLeftChecked.gif
+++ b/lib/dijit/themes/soria/images/tabLeftChecked.gif
Binary files differ
diff --git a/lib/dijit/themes/soria/images/tabRightChecked.gif b/lib/dijit/themes/soria/images/tabRightChecked.gif
index ec4b65936..cfffd1e70 100644
--- a/lib/dijit/themes/soria/images/tabRightChecked.gif
+++ b/lib/dijit/themes/soria/images/tabRightChecked.gif
Binary files differ
diff --git a/lib/dijit/themes/soria/images/tabStripe.gif b/lib/dijit/themes/soria/images/tabStripe.gif
deleted file mode 100644
index 51a2d40aa..000000000
--- a/lib/dijit/themes/soria/images/tabStripe.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/soria/images/tabStripeBottom.gif b/lib/dijit/themes/soria/images/tabStripeBottom.gif
deleted file mode 100644
index 41b1ac0f6..000000000
--- a/lib/dijit/themes/soria/images/tabStripeBottom.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/soria/images/tabStripeLeft.gif b/lib/dijit/themes/soria/images/tabStripeLeft.gif
deleted file mode 100644
index b2214fa41..000000000
--- a/lib/dijit/themes/soria/images/tabStripeLeft.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/soria/images/tabStripeRight.gif b/lib/dijit/themes/soria/images/tabStripeRight.gif
deleted file mode 100644
index bff311553..000000000
--- a/lib/dijit/themes/soria/images/tabStripeRight.gif
+++ /dev/null
Binary files differ
diff --git a/lib/dijit/themes/soria/layout/AccordionContainer.css b/lib/dijit/themes/soria/layout/AccordionContainer.css
index 3e2d22d57..219bd4012 100644
--- a/lib/dijit/themes/soria/layout/AccordionContainer.css
+++ b/lib/dijit/themes/soria/layout/AccordionContainer.css
@@ -1,46 +1 @@
-/**
- * dijit.layout.Accordioncontainer
- *
- */
-
-.soria .dijitAccordionContainer {
- border-color: #b1badf;
- background-color: #fff;
-}
-
-/* common */
-
-.soria .dijitAccordionTitle {
- background:#fafafa url("../images/titleBar.png") repeat-x top left;
- border-top: 1px solid #b9bbdd;
- padding: 5px 4px 6px 8px;
- font-size: 0.9em;
- font-weight: bold;
- color: #373941;
-}
-
-.soria .dijitAccordionTitleSelected {
- background: #f9f9f9 url("../images/accordionItemActive.png") top repeat-x;
- font-weight: bold;
- border-top: 1px solid #b9bbdd;
- border-bottom: 1px solid #b9bbdd;
- padding: 5px 4px 5px 8px;
- color: #243C5F;
-}
-
-.soria .dijitAccordionArrow {
- background:url("../images/spriteRoundedIconsSmallBl.gif") no-repeat -30px top;
- width:15px;
- height:15px;
- margin-top:-1px;
-}
-
-.soria .dijitAccordionTitleSelected .dijitAccordionArrow {
- background:url("../images/spriteRoundedIconsSmallBl.gif") no-repeat -15px top;
- margin-top:-1px;
-}
-
-.soria .dijitAccordionText {
- margin-left: 4px;
- margin-right: 4px;
-} \ No newline at end of file
+.soria .dijitAccordionContainer {border-color: #b1badf; background-color: #fff;}.soria .dijitAccordionTitle {background:#fafafa url("../images/titleBar.png") repeat-x top left; border-top: 1px solid #b9bbdd; padding: 5px 4px 6px 8px; font-size: 0.9em; font-weight: bold; color: #373941;}.soria .dijitAccordionTitleSelected {background: #f9f9f9 url("../images/accordionItemActive.png") top repeat-x; font-weight: bold; border-top: 1px solid #b9bbdd; border-bottom: 1px solid #b9bbdd; padding: 5px 4px 5px 8px; color: #243C5F;}.soria .dijitAccordionArrow {background:url("../images/spriteRoundedIconsSmallBl.gif") no-repeat -30px top; width:15px; height:15px; margin-top:-1px;}.soria .dijitAccordionTitleSelected .dijitAccordionArrow {background:url("../images/spriteRoundedIconsSmallBl.gif") no-repeat -15px top; margin-top:-1px;}.soria .dijitAccordionText {margin-left: 4px; margin-right: 4px;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/layout/AccordionContainer_rtl.css b/lib/dijit/themes/soria/layout/AccordionContainer_rtl.css
index c6bb820f3..5ef84ff22 100644
--- a/lib/dijit/themes/soria/layout/AccordionContainer_rtl.css
+++ b/lib/dijit/themes/soria/layout/AccordionContainer_rtl.css
@@ -1,8 +1 @@
-.dijitRtl .soria .dijitAccordionArrow {
- background-position: 0 top;
-}
-
-.dijitRtl .soria .dijitAccordionTitleSelected .dijitAccordionArrow {
- /* same rule as LTR mode, just listed to override previous rule in this file */
- background-position: -15px top;
-}
+.dijitRtl .soria .dijitAccordionArrow {background-position: 0 top;}.dijitRtl .soria .dijitAccordionTitleSelected .dijitAccordionArrow {background-position: -15px top;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/layout/BorderContainer.css b/lib/dijit/themes/soria/layout/BorderContainer.css
index 63f2bf365..e9dac7059 100644
--- a/lib/dijit/themes/soria/layout/BorderContainer.css
+++ b/lib/dijit/themes/soria/layout/BorderContainer.css
@@ -1,77 +1 @@
-/**
- * dijit.layout.BorderContainer
- *
- */
-
-.soria .dijitBorderContainer {
- background-color: #e1ebfb;
- padding: 5px;
-}
-
-.soria .dijitSplitContainer-child,
-.soria .dijitBorderContainer-child {
- /* By default put borders on all children of BorderContainer,
- * to give illusion of borders on the splitters themselves.
- */
- border: 1px #b1badf solid;
-}
-
-.soria .dijitBorderContainer-dijitTabContainerTop,
-.soria .dijitBorderContainer-dijitTabContainerBottom,
-.soria .dijitBorderContainer-dijitTabContainerLeft,
-.soria .dijitBorderContainer-dijitTabContainerRight {
- /* except that TabContainer defines borders on it's sub-nodes (tablist and dijitTabPaneWrapper),
- * so no border on domNode
- */
- border: none;
-}
-
-.soria .dijitBorderContainer-dijitBorderContainer {
- /* also, make nested BorderContainers look like a single big widget with lots of splitters */
- border: none;
- padding: 0;
-}
-
-
-.soria .dijitSplitterH,
-.soria .dijitGutterH {
- background: #E1EBFB;
- border:0;
- border-left:0 solid #d3d3d3;
- border-right:0 solid #d3d3d3;
- height:5px;
-}
-
-.soria .dijitSplitterH .dijitSplitterThumb {
- background:#B0B0B0 none;
- height:1px;
- top:2px;
- width:19px;
-}
-
-.soria .dijitSplitterV,
-.soria .dijitGutterV {
- background: #E1EBFB;
- border:0;
- border-top:0 solid #d3d3d3;
- border-bottom:0 solid #d3d3d3;
- width:5px;
-}
-
-.soria .dijitSplitterV .dijitSplitterThumb {
- background:#B0B0B0 none;
- height:19px;
- left:2px;
- width:1px;
-}
-
-/* active splitter */
-.soria .dijitSplitterActive {
- font-size: 1px;
- background-image: none;
- background-color: #aaa;
- -moz-opacity: 0.6;
- opacity: 0.6;
- filter: Alpha(Opacity=60);
- margin: 0;
-} \ No newline at end of file
+.soria .dijitBorderContainer {background-color: #e1ebfb; padding: 5px;}.soria .dijitSplitContainer-child,.soria .dijitBorderContainer-child {border: 1px #b1badf solid;}.soria .dijitBorderContainer-dijitTabContainerTop,.soria .dijitBorderContainer-dijitTabContainerBottom,.soria .dijitBorderContainer-dijitTabContainerLeft,.soria .dijitBorderContainer-dijitTabContainerRight {border: none;}.soria .dijitBorderContainer-dijitBorderContainer {border: none; padding: 0;}.soria .dijitSplitterH,.soria .dijitGutterH {background: #E1EBFB; border:0; border-left:0 solid #d3d3d3; border-right:0 solid #d3d3d3; height:5px;}.soria .dijitSplitterH .dijitSplitterThumb {background:#B0B0B0 none; height:1px; top:2px; width:19px;}.soria .dijitSplitterV,.soria .dijitGutterV {background: #E1EBFB; border:0; border-top:0 solid #d3d3d3; border-bottom:0 solid #d3d3d3; width:5px;}.soria .dijitSplitterV .dijitSplitterThumb {background:#B0B0B0 none; height:19px; left:2px; width:1px;}.soria .dijitSplitterActive {font-size: 1px; background-image: none; background-color: #aaa; -moz-opacity: 0.6; opacity: 0.6; filter: Alpha(Opacity=60); margin: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/layout/ContentPane.css b/lib/dijit/themes/soria/layout/ContentPane.css
index 32398dc08..4af9d977b 100644
--- a/lib/dijit/themes/soria/layout/ContentPane.css
+++ b/lib/dijit/themes/soria/layout/ContentPane.css
@@ -1,21 +1 @@
-/* ContentPane */
-
-.soria .dijitContentPane {
- padding: 0;
-}
-
-/* nested layouts */
-.soria .dijitTabContainerTop-dijitContentPane,
-.soria .dijitTabContainerLeft-dijitContentPane,
-.soria .dijitTabContainerBottom-dijitContentPane,
-.soria .dijitTabContainerRight-dijitContentPane,
-.soria .dijitAccordionContainer-dijitContentPane {
- background-color: #fff;
- padding: 5px;
-}
-
-.soria .dijitSplitContainer-dijitContentPane,
-.soria .dijitBorderContainer-dijitContentPane {
- background-color: #fff; /* override background-color setting on parent .dijitBorderContainer */
- padding: 5px;
-} \ No newline at end of file
+.soria .dijitContentPane {padding: 0;}.soria .dijitTabContainerTop-dijitContentPane,.soria .dijitTabContainerLeft-dijitContentPane,.soria .dijitTabContainerBottom-dijitContentPane,.soria .dijitTabContainerRight-dijitContentPane,.soria .dijitAccordionContainer-dijitContentPane {background-color: #fff; padding: 5px;}.soria .dijitSplitContainer-dijitContentPane,.soria .dijitBorderContainer-dijitContentPane {background-color: #fff; padding: 5px;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/layout/SplitContainer.css b/lib/dijit/themes/soria/layout/SplitContainer.css
index bf7ca1625..56211f51a 100644
--- a/lib/dijit/themes/soria/layout/SplitContainer.css
+++ b/lib/dijit/themes/soria/layout/SplitContainer.css
@@ -1,34 +1 @@
-/**
- * dijit.layout.SplitContainer
- *
- */
-
-.soria .dijitSplitContainerSizerH {
- background:url("../images/splitContainerSizerV.png") repeat-y #cddef4;
- border:0;
- border-left:0 solid #436496;
- border-right:0 solid #436496;
- width:5px;
-}
-
-.soria .dijitSplitContainerSizerH .thumb {
- background:url("../images/splitContainerSizerV-thumb.png") no-repeat #ccc;
- left:1px;
- width:2px;
- height:19px;
-}
-
-.soria .dijitSplitContainerSizerV {
- background:url("../images/splitContainerSizerH.png") repeat-x #cddef4;
- border:0;
- border-top:0 solid #436496;
- border-bottom:0 solid #436496;
- height:2px;
-}
-
-.soria .dijitSplitContainerSizerV .thumb {
- background:url("../images/splitContainerSizerH-thumb.png") no-repeat #ccc;
- top:1px;
- width:19px;
- height:5px;
-} \ No newline at end of file
+.soria .dijitSplitContainerSizerH {background:url("../images/splitContainerSizerV.png") repeat-y #cddef4; border:0; border-left:0 solid #436496; border-right:0 solid #436496; width:5px;}.soria .dijitSplitContainerSizerH .thumb {background:url("../images/splitContainerSizerV-thumb.png") no-repeat #ccc; left:1px; width:2px; height:19px;}.soria .dijitSplitContainerSizerV {background:url("../images/splitContainerSizerH.png") repeat-x #cddef4; border:0; border-top:0 solid #436496; border-bottom:0 solid #436496; height:2px;}.soria .dijitSplitContainerSizerV .thumb {background:url("../images/splitContainerSizerH-thumb.png") no-repeat #ccc; top:1px; width:19px; height:5px;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/layout/TabContainer.css b/lib/dijit/themes/soria/layout/TabContainer.css
index b96d16955..940651f5b 100644
--- a/lib/dijit/themes/soria/layout/TabContainer.css
+++ b/lib/dijit/themes/soria/layout/TabContainer.css
@@ -1,492 +1 @@
-/**
- * dijit.layout.TabContainer
- *
- * To style TabContainer with rounded corners
- * you can use these classes: .dijitTab (left), .dijitTabContent (center), dijitTabInnerDiv (right)
- * For tabs aligned to top you can style a stripe div right underneath the tabs using .dijitTabStripe
- */
-
-/* Classes for all types of tabs (top/bottom/left/right) */
-
- .soria .dijitTabContainer .tabStripRBtn {
- margin-right: 21px;
-}
- .soria .dijitTabContainer .tabStripLBtn {
- margin-left: 21px;
-}
-
- .soria .nowrapTabStrip .dijitTab {
- top: 2px;
-}
-
- .soria .dijitTabContainerBottom-tabs .dijitTab {
- top: -1px;
- bottom: 2px;
-}
-
-/* Tabs, shared classes */
-.soria .dijitTabPaneWrapper {
- background:#fff;
- border:1px solid #B1BADF;
- margin: 0;
- padding-left: 0;
-}
-
-.soria .dijitTabInnerDiv {
- padding:0 3px 0 0;
- margin: 0 0 0 4px;
- background: url("../images/tabContainerSprite.gif") no-repeat;
- background-position: right -400px;
-}
-
-.soria .dijitTab {
- line-height:normal;
- margin:0 2px 0 0; /* space between one tab and the next in top/bottom mode */
- padding:0;
- background: url("../images/tabContainerSprite.gif") no-repeat 0 -300px;
- color: #243C5F;
- border-bottom: 1px #B1BADF solid;
-}
-
-.soria .dijitTabInnerDiv .dijitTabContent {
- padding:4px 3px 2px 4px;
- background: url("../images/tabContainerSprite.gif") repeat-x 0 -350px;
- position: relative;
-}
-
-
-
-.soria .dijitTabListWrapper {
- z-index: 10;
-}
-
-/* hovered tab */
-.soria .dijitTabHover {
- color: #243C5F;
- background: url("../images/tabContainerSprite.gif") no-repeat 0 -150px;
-}
-
-.soria .dijitTabHover .dijitTabInnerDiv {
- background: url("../images/tabContainerSprite.gif") no-repeat right -250px;
-}
-
-.soria .dijitTabHover .dijitTabInnerDiv .dijitTabContent {
- background: url("../images/tabContainerSprite.gif") repeat-x 0 -200px;
-}
-
-/* checked tab*/
-.soria .dijitTabChecked
-{
- /* the selected tab (with or without hover) */
- background: url("../images/tabContainerSprite.gif") no-repeat 0 -0;
-}
-
-.soria .dijitTabChecked .dijitTabInnerDiv {
- background: url("../images/tabContainerSprite.gif") no-repeat right -100px;
-}
-
-.soria .dijitTabChecked .dijitTabInnerDiv .dijitTabContent {
- background: url("../images/tabContainerSprite.gif") repeat-x 0 -50px;
- color: #243C5F !important;
-}
-
-/* Nested Tabs */
-
-.soria .dijitTabContainerTabListNested {
- background: #F0F4FC;
- background: #D9E9F9;
- border: none;
-}
-.soria .dijitTabContainerTabListNested .dijitTab {
- background: none;
- border: none;
- top: 0; /* override top:1px setting of top-level tabs */
-}
-.soria .dijitTabContainerTabListNested .dijitTab .dijitTabInnerDiv,
-.soria .dijitTabContainerTabListNested .dijitTab .dijitTabContent {
- background: none;
-}
-.soria .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent .tabLabel {
- text-decoration: underline;
-}
-.soria .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {
- text-decoration: underline;
- font-weight: bold;
-}
-.soria .dijitTabContainerSpacerNested .dijitTabSpacer {
- /* thinner line between tab (labels) and content */
- height: 0;
-}
-.soria .dijitTabPaneWrapperNested {
- border: none; /* prevent double border */
-}
-
-
-/* Close Button */
-.soria .dijitTabCloseButton {
- width: 15px;
- height: 15px;
- background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px top;
- margin-top: -1px;
-}
-.dj_ie6 .soria .dijitTabCloseButton {
- background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px top;
-}
-
-.soria .dijitTabCloseButtonHover {
- background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px -15px;
-}
-.dj_ie6 .soria .dijitTabCloseButtonHover {
- background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px -15px;
-}
-
-/* ================================ */
-/* top tabs */
-.soria .dijitTabContainerTop-tabs {
- border-color: #B1BADF;
- padding-left: 3px;
-}
-
-.soria .dijitTabContainerTopNoStrip {
- padding-top: 3px;
-}
-
-/* top container */
-.soria .dijitTabContainerTop-container {
- border-top: none;
-}
-
-.soria .dijitTabContainerTop .dijitTabListWrapper {
- border-bottom: none;
-}
-
-/*non-checked tabs */
-.soria .dijitTabContainerTop-tabs .dijitTab {
- top: 1px;
-}
-
-/* checked tabs */
-.soria .dijitTabContainerTop-tabs .dijitTabChecked {
- border-bottom-color: #94b4e6;
-}
-
-/* strip */
-.soria .dijitTabContainerTopStrip {
- border: 1px solid #B1BADF;
- margin-top: 1px;
- padding-top: 1px;
- background: #F0F4FC;
-}
-
-.soria .dijitTabContainerTopStrip .dijitTabContainerTop-tabs {
- padding-left: 3px;
-}
-
-
-.soria .dijitTabContainerNested .dijitTabListWrapper {
- height: auto;
-}
-
-/* ================================ */
-/* bottom tabs */
-.soria .dijitTabContainerBottom-tabs {
- margin-top: -1px;
- padding-left: 3px;
- border-top: 1px solid #B1BADF;
-}
-
-.soria .dijitTabContainerBottom .dijitTabListWrapper {
- border-top: none;
- padding-top: 1px;
- padding-bottom: 1px;
- float: left;
-}
-
-/* bottom container */
-.soria .dijitTabContainerBottom-container {
- border-bottom: none;
-}
-
-.soria .dijitTabContainerBottom-tabs .dijitTab {
- border-bottom: none;
- border-top: 1px solid #B1BADF;
- background: url("../images/tabBottomEnabledSpriteLR.gif") no-repeat bottom left;
-}
-
-/* checked tabs */
-.soria .dijitTabContainerBottom-tabs .dijitTabChecked {
- border-top-color:#94b4e6;
-}
-
-
-.soria .dijitTabContainerBottom-tabs .dijitTabInnerDiv .dijitTabContent {
- padding-top: 3px;
- padding-bottom: 3px;
- background: url("../images/tabBottomEnabledC.gif") repeat-x bottom left;
-}
-
-.soria .dijitTabContainerBottom-tabs .dijitTabInnerDiv {
- background: url("../images/tabBottomEnabledSpriteLR.gif") no-repeat bottom right;
-}
-
-.soria .dijitTabContainerBottom-tabs .dijitTabHover {
- color: #243C5F;
- background: url("../images/tabBottomHoverSpriteLR.gif") no-repeat bottom left;
-}
-
-.soria .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv {
- background: url("../images/tabBottomHoverSpriteLR.gif") no-repeat bottom right;
-}
-
-.soria .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv .dijitTabContent {
- background: url("../images/tabBottomHoverC.gif") repeat-x bottom left;
-}
-
-.soria .dijitTabContainerBottom-tabs .dijitTabChecked {
- /* the selected tab (with or without hover) */
- background: url("../images/tabBottomActiveSpriteLR.gif") no-repeat bottom left;
-}
-
-.soria .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv {
- background: url("../images/tabBottomActiveSpriteLR.gif") no-repeat bottom right;
-}
-
-.soria .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv .dijitTabContent {
- background: url("../images/tabBottomActiveC.gif") repeat-x bottom left;
-}
-
-/* strip */
-.soria .dijitTabContainerBottomStrip {
- padding-bottom: 2px;
- border: 1px solid #B1BADF;
-}
-
-.soria .dijitTabContainerBottomStrip {
- background: #F0F4FC;
-}
-
-/* top/bottom strip */
-.soria .dijitTabContainerBottom-spacer,
-.soria .dijitTabContainerTop-spacer {
- height: 2px;
- border: 1px solid #8ba0bd;
- background: #94b4e6;
-}
-
-.soria .dijitTabContainerTop-spacer {
- border-top: none;
-}
-
-.soria .dijitTabContainerBottom-spacer {
- border-bottom: none;
-}
-
-/* ================================ */
-/* right tabs */
-.soria .dijitTabContainerRight-tabs {
- height: 100%;
- border-color: #ccc;
- padding-top: 3px;
-}
-
-/* right container */
-.soria .dijitTabContainerRight-container {
- border-right: none;
-}
-
-.soria .dijitTabContainerRight-tabs .dijitTab {
- border-bottom: none;
- border-left: 1px solid #B1BADF;
- border-bottom: 1px solid #B1BADF !important;
-}
-
-
-/* some odd ie bug when borders dissapear when setting a bottom margin, this sortof helps */
-.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabInnerDiv,
-.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabInnerDiv {
- border-bottom: solid #B1BADF 1px;
- margin-bottom: -1px;
-}
-
-/* checked tabs */
-.soria .dijitTabContainerRight-tabs .dijitTabChecked {
- border-left-color: #94b4e6;
-}
-
-.soria .dijitTabContainerRight-tabs .dijitTabChecked {
- background: url("../images/tabRightChecked.gif") no-repeat left top !important;
-}
-
-/* some odd ie bug when borders dissapear when setting a bottom margin, this sortof helps */
-.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv,
-.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv,
-.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabCheckedHover .dijitTabInnerDiv,
-.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabCheckedHover .dijitTabInnerDiv {
- border-bottom: solid #94b4e6 1px;
- margin-bottom: -1px;
-}
-
-.soria .dijitTabContainerRight-tabs .dijitTab {
- background: url("../images/tabContainerSprite.gif") no-repeat left -350px;
-}
-.soria .dijitTabContainerRight-tabs .dijitTabHover .dijitTab {
- background: url("../images/tabContainerSprite.gif") no-repeat left -200px;
-}
-
-/* strip */
-.soria .dijitTabContainerRightStrip {
- padding-right: 2px;
- border: 1px solid #B1BADF;
- background: #F0F4FC;
- border-left: none;
-}
-
-/* ================================ */
-/* left tabs */
-.soria .dijitTabContainerLeft-tabs {
- border-color: #ccc;
- padding-top: 3px;
- height: 100%;
-}
-
-/* left conatiner */
-.soria .dijitTabContainerLeft-container {
- border-left: none;
-}
-
-.soria .dijitTabContainerLeft-tabs .dijitTab {
- border-right: 1px solid #B1BADF;
- border-bottom: 1px solid #B1BADF;
-}
-
-/* checked tabs */
-.soria .dijitTabContainerLeft-tabs .dijitTabChecked {
- border-right: 1px solid #94b4e6;
-}
-
-.soria .dijitTabContainerLeft-tabs .dijitTabInnerDiv {
- background: url("../images/tabContainerSprite.gif") no-repeat right -350px;
-}
-.soria .dijitTabContainerLeft-tabs .dijitTabHover .dijitTabInnerDiv {
- background: url("../images/tabContainerSprite.gif") no-repeat right -200px;
-}
-.soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv,
-.soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv {
- background: url("../images/tabLeftChecked.gif") no-repeat right top;
-}
-
-.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabInnerDiv,
-.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabInnerDiv {
- border-bottom: solid #B1BADF 1px;
- margin-bottom: -1px;
-}
-
-.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv,
-.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv,
-.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv,
-.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv {
- border-bottom: solid #94b4e6 1px;
- margin-bottom: -1px;
-}
-
-/* strip */
-.soria .dijitTabContainerLeftStrip {
- padding-left: 2px;
- border: 1px solid #B1BADF;
- background: #F0F4FC;
- border-right: none;
-}
-
-/* ================================ */
-/* left/right tabs */
-.soria .dijitTabContainerLeft-tabs .dijitTab,
-.soria .dijitTabContainerRight-tabs .dijitTab {
- margin-right:auto;
- margin-bottom:2px; /* space between one tab and the next in left/right mode */
-}
-
-/* left/right tabstrip */
-.soria .dijitTabContainerLeft-spacer,
-.soria .dijitTabContainerRight-spacer {
- width: 2px;
- border: 1px solid #8ba0bd;
- background: #94b4e6;
-}
-
-.soria .dijitTabContainerLeft-spacer {
- border-left: none;
-}
-.soria .dijitTabContainerRight-spacer {
- border-right: none;
-}
-/* ================================ */
-
-/* this resets the tabcontainer stripe when within a contentpane */
-.soria .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs {
- border-left: 0 solid #ccc;
- border-top: 0 solid #ccc;
- border-right: 0 solid #ccc;
- padding-top: 0;
- padding-left: 0;
-}
-
-
-/* ================================ */
-
-/* Menu and slider control styles */
-.soria .dijitTabContainer .tabStripButton {
- margin-right: 0;
-}
-.soria .dijitTabContainer .tabStripButton-top {
- margin-top: 1px;
-}
-
-.soria .tabStripButton .dijitTabContent{
- padding: 6px 0 5px 0;
-}
-
-.dj_ie6 .soria .tabStripButton .dijitTabContent,
-.dj_ie7 .soria .tabStripButton .dijitTabContent {
- padding-top: 7px;
-}
-
-.soria .tabStrip-disabled .tabStripButton .dijitTabContent {
- padding: 5px 0 3px 0;
-}
-
-.dj_ie6 .soria .tabStrip-disabled .tabStripButton .dijitTabContent,
-.dj_ie7 .soria .tabStrip-disabled .tabStripButton .dijitTabContent {
- padding-top: 6px;
-}
-
-.soria .dijitTabContainer .tabStripButton-bottom {
- background: transparent url(../images/tabBottomEnabledSpriteLR.gif) no-repeat scroll left bottom;
- border-bottom: medium none;
- border-top: 1px solid #B1BADF;
-}
-
-.soria .dijitTabContainer .tabStripButton-bottom .dijitTabInnerDiv {
- background: transparent url(../images/tabBottomEnabledSpriteLR.gif) no-repeat scroll right bottom;
-}
-
-.soria .dijitTabContainer .tabStripButton-bottom .dijitTabContent {
- background: transparent;
-}
-
-.soria .dijitTabStripIcon {
- height: 14px;
- width: 14px;
- background: url(../images/spriteRoundedIconsSmall.png) no-repeat left top ;
-}
-
-.dj_ie6 .soria .dijitTabStripIcon {
- background-image: url(../images/spriteRoundedIconsSmall.gif);
-}
-
-.soria .dijitTabStripSlideRightIcon {
- background-position: -30px top;
-}
-
-.soria .dijitTabStripMenuIcon {
- background-position: -15px top;
-} \ No newline at end of file
+ .soria .dijitTabContainer .tabStripRBtn {margin-right: 21px;} .soria .dijitTabContainer .tabStripLBtn {margin-left: 21px;} .soria .nowrapTabStrip .dijitTab {top: 2px;} .soria .dijitTabContainerBottom-tabs .dijitTab {top: -1px; bottom: 2px;}.soria .dijitTabPaneWrapper {background:#fff; border:1px solid #B1BADF; margin: 0; padding-left: 0;}.soria .dijitTab {padding:4px 6px 2px 4px; background: url("../images/tabContainerSprite.gif") repeat-x 0 -351px; position: relative; line-height:normal; margin:0 2px 0 0; color: #243C5F; border: 1px #8BA0BD solid; border-bottom: 1px #B1BADF solid;}.soria .dijitTabHover {color: #243C5F; background: url("../images/tabContainerSprite.gif") repeat-x 0 -201px;}.soria .dijitTabChecked{background: url("../images/tabContainerSprite.gif") repeat-x 0 -51px; color: #243C5F !important;}.soria .dijitTabListWrapper {z-index: 10;}.soria .dijitTabContainerTabListNested {background: #D9E9F9; border: none;}.soria .dijitTabContainerTabListNested .dijitTab {background: none; border: none; top: 0;}.soria .dijitTabContainerTabListNested .dijitTabHover .tabLabel {text-decoration: underline;}.soria .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {text-decoration: underline; font-weight: bold;}.soria .dijitTabContainerSpacerNested .dijitTabSpacer {height: 0;}.soria .dijitTabPaneWrapperNested {border: none;}.soria .dijitTabCloseButton {width: 15px; height: 15px; background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px top; margin-top: -1px;}.dj_ie6 .soria .dijitTabCloseButton {background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px top;}.soria .dijitTabCloseButtonHover {background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px -15px;}.dj_ie6 .soria .dijitTabCloseButtonHover {background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px -15px;}.soria .dijitTabContainerTop-tabs {border-color: #B1BADF; padding-left: 3px;}.soria .dijitTabContainerTop-tabs .dijitTab {border-radius: 4px 4px 0 0; -moz-border-radius: 4px 4px 0 0;}.soria .dijitTabContainerTopNoStrip {padding-top: 3px;}.soria .dijitTabContainerTop-container {border-top: none;}.soria .dijitTabContainerTop .dijitTabListWrapper {border-bottom: none;}.soria .dijitTabContainerTop-tabs .dijitTab {top: 1px;}.soria .dijitTabContainerTop-tabs .dijitTabChecked {border-bottom-color: #94b4e6;}.soria .dijitTabContainerTopStrip {border: 1px solid #B1BADF; margin-top: 1px; padding-top: 1px; background: #F0F4FC;}.soria .dijitTabContainerTopStrip .dijitTabContainerTop-tabs {padding-left: 3px;}.soria .dijitTabContainerNested .dijitTabListWrapper {height: auto;}.soria .dijitTabContainerBottom-tabs {margin-top: -1px; padding-left: 3px; border-top: 1px solid #B1BADF;}.soria .dijitTabContainerBottom .dijitTabListWrapper {border-top: none; padding-top: 1px; padding-bottom: 1px; float: left;}.soria .dijitTabContainerBottom-tabs .dijitTab {border-bottom: none; border-top: 1px solid #B1BADF; border-radius: 0 0 4px 4px; -moz-border-radius: 0 0 4px 4px; padding-top: 3px; padding-bottom: 3px; background: url("../images/tabBottomEnabledC.gif") repeat-x bottom left;}.soria .dijitTabContainerBottom-tabs .dijitTabHover {background: url("../images/tabBottomHoverC.gif") repeat-x bottom left;}.soria .dijitTabContainerBottom-tabs .dijitTabChecked {border-top-color:#94b4e6; background: url("../images/tabBottomActiveC.gif") repeat-x bottom left;}.soria .dijitTabContainerBottom-container {border-bottom: none;}.soria .dijitTabContainerBottomStrip {padding-bottom: 2px; border: 1px solid #B1BADF;}.soria .dijitTabContainerBottomStrip {background: #F0F4FC;}.soria .dijitTabContainerBottom-spacer,.soria .dijitTabContainerTop-spacer {height: 2px; border: 1px solid #8ba0bd; background: #94b4e6;}.soria .dijitTabContainerTop-spacer {border-top: none;}.soria .dijitTabContainerBottom-spacer {border-bottom: none;}.soria .dijitTabContainerRight-tabs {height: 100%; border-color: #ccc; padding-top: 3px;}.soria .dijitTabContainerRight-tabs .dijitTab {border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-bottom: none; border-left: 1px solid #B1BADF; border-bottom: 1px solid #B1BADF !important; padding: 4px 6px 2px 8px;}.soria .dijitTabContainerRight-tabs .dijitTabChecked {border-left-color: #94b4e6; background: url("../images/tabRightChecked.gif") no-repeat left top !important;}.soria .dijitTabContainerRight-container {border-right: none;}.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTab,.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTab {border-bottom: solid #B1BADF 1px; margin-bottom: -1px;}.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabChecked,.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabChecked,.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabCheckedHover,.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabCheckedHover {border-bottom: solid #94b4e6 1px; margin-bottom: -1px;}.soria .dijitTabContainerRightStrip {padding-right: 2px; border: 1px solid #B1BADF; background: #F0F4FC; border-left: none;}.soria .dijitTabContainerLeft-tabs {border-color: #ccc; padding-top: 3px; height: 100%;}.soria .dijitTabContainerLeft-tabs .dijitTab {border-radius: 4px 0 0 4px; -moz-border-radius: 4px 0 0 4px; border-right: 1px solid #B1BADF; border-bottom: 1px solid #B1BADF;}.soria .dijitTabContainerLeft-tabs .dijitTabChecked {border-right: 1px solid #94b4e6; background: url("../images/tabLeftChecked.gif") no-repeat right top;}.soria .dijitTabContainerLeft-container {border-left: none;}.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTab,.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTab {border-bottom: solid #B1BADF 1px; margin-bottom: -1px;}.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTab,.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTab,.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTab,.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTab {border-bottom: solid #94b4e6 1px; margin-bottom: -1px;}.soria .dijitTabContainerLeftStrip {padding-left: 2px; border: 1px solid #B1BADF; background: #F0F4FC; border-right: none;}.soria .dijitTabContainerLeft-tabs .dijitTab,.soria .dijitTabContainerRight-tabs .dijitTab {margin: 1px 0;}.soria .dijitTabContainerLeft-spacer,.soria .dijitTabContainerRight-spacer {width: 2px; border: 1px solid #8ba0bd; background: #94b4e6;}.soria .dijitTabContainerLeft-spacer {border-left: none;}.soria .dijitTabContainerRight-spacer {border-right: none;}.soria .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs {border-left: 0 solid #ccc; border-top: 0 solid #ccc; border-right: 0 solid #ccc; padding-top: 0; padding-left: 0;}.soria .dijitTabContainer .tabStripButton {margin-right: 0;}.soria .dijitTabContainer .tabStripButton-top {margin-top: 1px;}.dj_ie6 .soria .tabStripButton .dijitTabContent,.dj_ie7 .soria .tabStripButton .dijitTabContent {padding-top: 7px;}.dj_ie6 .soria .tabStrip-disabled .tabStripButton .dijitTabContent,.dj_ie7 .soria .tabStrip-disabled .tabStripButton .dijitTabContent {padding-top: 6px;}.soria .dijitTabContainer .tabStripButton-bottom {background: transparent url(../images/tabBottomEnabledSpriteLR.gif) no-repeat scroll left bottom; border-bottom: medium none; border-top: 1px solid #B1BADF;}.soria .dijitTabContainer .tabStripButton-bottom .dijitTab {background: transparent url(../images/tabBottomEnabledSpriteLR.gif) no-repeat scroll right bottom;}.soria .dijitTabStripIcon {height: 14px; width: 14px; background: url(../images/spriteRoundedIconsSmall.png) no-repeat left top ;}.dj_ie6 .soria .dijitTabStripIcon {background-image: url(../images/spriteRoundedIconsSmall.gif);}.soria .dijitTabStripSlideRightIcon {background-position: -30px top;}.soria .dijitTabStripMenuIcon {background-position: -15px top;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/layout/TabContainer_rtl.css b/lib/dijit/themes/soria/layout/TabContainer_rtl.css
index eba3963b9..9366ac486 100644
--- a/lib/dijit/themes/soria/layout/TabContainer_rtl.css
+++ b/lib/dijit/themes/soria/layout/TabContainer_rtl.css
@@ -1,43 +1 @@
-.dijitRtl .soria .dijitTab {
- margin-right:0;
- margin-left:2px; /* space between one tab and the next in top/bottom mode */
-}
-
-/* tab strips */
-.dijitRtl .soria .dijitTabContainer .tabStripButton {
- margin-left: 0;
-}
-
-.dijitRtl .soria .dijitTabContainerTopStrip,
-.dijitRtl .soria .dijitTabContainerBottomStrip,
-.dijitRtl .soria .dijitTabContainerTop-tabs,
-.dijitRtl .soria .dijitTabContainerBottom-tabs {
- padding-left: 0;
- padding-right: 3px;
-}
-
-.dijitRtl .soria .dijitTabInnerDiv {
- padding-left: 3px;
- padding-right: 4px;
-}
-
-.dijitRtl .soria .dijitTabPaneWrapper {
- #zoom: 1;
-}
-
-.dj_ie-rtl .soria .dijitTabContainerLeft-tabs {
- margin-left: 0 !important;
-}
-
-.dj_ie-rtl .soria .dijitTabContainerRight-tabs {
- margin-right: 0 !important;
-}
-
-.dijitRtl .soria .dijitTabContainerLeft-tabs .dijitTab,
-.dijitRtl .soria .dijitTabContainerRight-tabs .dijitTab {
- margin-left:0;
-}
-
-.dj_ie-rtl .soria .dijitTab .dijitTabInnerDiv{
- width : 1%;
-} \ No newline at end of file
+.dijitRtl .soria .dijitTab {margin-right:0; margin-left:2px;}.dijitRtl .soria .dijitTabContainer .tabStripButton {margin-left: 0;}.dijitRtl .soria .dijitTabContainerTopStrip,.dijitRtl .soria .dijitTabContainerBottomStrip,.dijitRtl .soria .dijitTabContainerTop-tabs,.dijitRtl .soria .dijitTabContainerBottom-tabs {padding-left: 0; padding-right: 3px;}.dijitRtl .soria .dijitTabInnerDiv {padding-left: 3px; padding-right: 4px;}.dijitRtl .soria .dijitTabPaneWrapper {#zoom: 1;}.dj_ie-rtl .soria .dijitTabContainerLeft-tabs {margin-left: 0 !important;}.dj_ie-rtl .soria .dijitTabContainerRight-tabs {margin-right: 0 !important;}.dijitRtl .soria .dijitTabContainerLeft-tabs .dijitTab,.dijitRtl .soria .dijitTabContainerRight-tabs .dijitTab {margin-left:0;}.dj_ie-rtl .soria .dijitTab .dijitTabInnerDiv{width : 1%;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/soria.css b/lib/dijit/themes/soria/soria.css
index 36471d03a..c03d8df2b 100644
--- a/lib/dijit/themes/soria/soria.css
+++ b/lib/dijit/themes/soria/soria.css
@@ -1,41 +1 @@
-/*
- Adds cosmetic styling to Dijit. Users may swap with a custom theme CSS file.
-
- NOTES:
- ---
- Dialog.css contains css classes for both Dialog and Tooltip!
- This because currently a dijit.TooltipDialog exist. Until this is resolved
- you need to include Dialog.css for both dijits
- ---
- Toolbar.css contains classes also used in Editor. Until this is resolved
- you need to include Toolbar.css for both Toolbar and Editor
- ---
- Button.css contains classes for combobox,
-
-*/
-
-@import url("../dijit.css");
-@import url("../../icons/commonIcons.css");/*sprite containing common icons to be used by all themes*/
-@import url("Common.css");
-@import url("layout/ContentPane.css");
-@import url("layout/TabContainer.css");
-@import url("layout/AccordionContainer.css");
-@import url("layout/SplitContainer.css");
-@import url("layout/BorderContainer.css");
-@import url("form/Common.css");
-@import url("form/Button.css");
-@import url("form/Checkbox.css");
-@import url("form/RadioButton.css");
-@import url("form/Slider.css");
-@import url("form/Select.css");
-@import url("Tree.css");
-@import url("ProgressBar.css");
-@import url("TitlePane.css");
-@import url("Calendar.css");
-@import url("TimePicker.css");
-@import url("Toolbar.css");
-@import url("Dialog.css");
-@import url("Menu.css");
-@import url("Editor.css");
-@import url("../../icons/editorIcons.css"); /* sprite for editor icons to be used by all themes */
-@import url("ColorPalette.css"); \ No newline at end of file
+.dijitReset {margin:0; border:0; padding:0; font: inherit; line-height:normal; color: inherit;}.dj_a11y .dijitReset {-moz-appearance: none;}.dijitInline {display:inline-block; #zoom: 1; #display:inline; border:0; padding:0; vertical-align:middle; #vertical-align: auto;}table.dijitInline {display:inline-table; box-sizing: content-box; -moz-box-sizing: content-box;}.dijitHidden {display: none !important;}.dijitVisible {display: block !important; position: relative;}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer {#zoom: 1; overflow: hidden; float: none !important; position: relative;}.dj_ie7 .dijitInputContainer {float: left !important; clear: left; display: inline-block !important;}.dj_ie .dijitSelect input,.dj_ie input.dijitTextBox,.dj_ie .dijitTextBox input {font-size: 100%;}.dijitSelect .dijitButtonText {float: left; vertical-align: top;}TABLE.dijitSelect {padding: 0 !important;}.dijitTextBox .dijitSpinnerButtonContainer,.dijitTextBox .dijitArrowButtonContainer,.dijitValidationTextBox .dijitValidationContainer {float: right; text-align: center;}.dijitSelect input.dijitInputField,.dijitTextBox input.dijitInputField {padding-left: 0 !important; padding-right: 0 !important;}.dijitValidationTextBox .dijitValidationContainer {display: none;}.dijitTeeny {font-size:1px; line-height:1px;}.dijitOffScreen {position: absolute !important; left: 50% !important; top: -10000px !important;}.dijitPopup {position: absolute; background-color: transparent; margin: 0; border: 0; padding: 0;}.dijitPositionOnly {padding: 0 !important; border: 0 !important; background-color: transparent !important; background-image: none !important; height: auto !important; width: auto !important;}.dijitNonPositionOnly {float: none !important; position: static !important; margin: 0 0 0 0 !important; vertical-align: middle !important;}.dijitBackgroundIframe {position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: -1; border: 0; padding: 0; margin: 0;}.dijitDisplayNone {display:none !important;}.dijitContainer {overflow: hidden;}.dj_a11y .dijitIcon,.dj_a11y div.dijitArrowButtonInner, .dj_a11y span.dijitArrowButtonInner,.dj_a11y img.dijitArrowButtonInner,.dj_a11y .dijitCalendarIncrementControl,.dj_a11y .dijitTreeExpando {display: none;}.dijitSpinner div.dijitArrowButtonInner {display: block;}.dj_a11y .dijitA11ySideArrow {display: inline !important; cursor: pointer;}.dj_a11y .dijitCalendarDateLabel {padding: 1px; border: 0px !important;}.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {border-style: solid !important; border-width: 1px !important; padding: 0;}.dj_a11y .dijitCalendarDateTemplate {padding-bottom: 0.1em !important; border: 0px !important;}.dj_a11y .dijitButtonNode {border: black outset medium !important; padding: 0 !important;}.dj_a11y .dijitArrowButton {padding: 0 !important;}.dj_a11y .dijitButtonContents {margin: 0.15em;}.dj_a11y .dijitTextBoxReadOnly .dijitInputField,.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {border-style: outset!important; border-width: medium!important; border-color: #999 !important; color:#999 !important;}.dijitButtonNode * {vertical-align: middle;}.dijitSelect .dijitArrowButtonInner,.dijitButtonNode .dijitArrowButtonInner {background: no-repeat center; width: 12px; height: 12px; direction: ltr;}.dijitLeft {background-position:left top; background-repeat:no-repeat;}.dijitStretch {white-space:nowrap; background-repeat:repeat-x;}.dijitRight {#display:inline; background-position:right top; background-repeat:no-repeat;}.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {opacity: 0.5;}.dijitToggleButton,.dijitButton,.dijitDropDownButton,.dijitComboButton {margin: 0.2em; vertical-align: middle;}.dijitButtonContents {display: block;}td.dijitButtonContents {display: table-cell;}.dijitButtonNode img {vertical-align:middle;}.dijitToolbar .dijitComboButton {border-collapse: separate;}.dijitToolbar .dijitToggleButton,.dijitToolbar .dijitButton,.dijitToolbar .dijitDropDownButton,.dijitToolbar .dijitComboButton {margin: 0;}.dijitToolbar .dijitButtonContents {padding: 1px 2px;}.dj_webkit .dijitToolbar .dijitDropDownButton {padding-left: 0.3em;}.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {padding:0;}.dijitSelect {border:1px solid gray;}.dijitButtonNode {border:1px solid gray; margin:0; line-height:normal; vertical-align: middle; #vertical-align: auto; text-align:center; white-space: nowrap;}.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {line-height:inherit;}.dijitTextBox .dijitButtonNode {border-width: 0;}.dijitSelect,.dijitSelect *,.dijitButtonNode,.dijitButtonNode * {cursor: pointer;}.dj_ie .dijitButtonNode {zoom: 1;}.dj_ie .dijitButtonNode button {overflow: visible;}div.dijitArrowButton {float: right;}.dijitTextBox {border: solid black 1px; #overflow: hidden; width: 15em; vertical-align: middle;}.dijitTextBoxReadOnly,.dijitTextBoxDisabled {color: gray;}.dj_safari .dijitTextBoxDisabled input {color: #B0B0B0;}.dj_safari textarea.dijitTextAreaDisabled {color: #333;}.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, .dj_gecko .dijitTextBoxDisabled input {-moz-user-input: none;}.dijitPlaceHolder {color: #AAAAAA; font-style: italic; position: absolute; top: 0; left: 0; #filter: "";}.dijitTimeTextBox {width: 8em;}.dijitTextBox input:focus {outline: none;}.dijitTextBoxFocused {outline: 5px -webkit-focus-ring-color;}.dijitSelect input,.dijitTextBox input {float: left;}.dj_ie6 input.dijitTextBox,.dj_ie6 .dijitTextBox input {float: none;}.dijitInputInner {border:0 !important; background-color:transparent !important; width:100% !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important;}.dj_a11y .dijitTextBox input {margin: 0 !important;}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner {text-indent: -2em !important; direction: ltr !important; text-align: left !important; height: auto !important; #text-indent: 0 !important; #letter-spacing: -5em !important; #text-align: right !important;}.dj_ie .dijitSelect input,.dj_ie .dijitTextBox input,.dj_ie input.dijitTextBox {overflow-y: visible; line-height: normal;}.dijitSelect .dijitSelectLabel span {line-height: 100%;}.dj_ie .dijitSelect .dijitSelectLabel {line-height: normal;}.dj_ie6 .dijitSelect .dijitSelectLabel,.dj_ie7 .dijitSelect .dijitSelectLabel,.dj_ie8 .dijitSelect .dijitSelectLabel,.dj_iequirks .dijitSelect .dijitSelectLabel,.dijitSelect td,.dj_ie6 .dijitSelect input,.dj_iequirks .dijitSelect input,.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie6 .dijitTextBox input,.dj_ie6 input.dijitTextBox,.dj_iequirks .dijitTextBox input.dijitValidationInner,.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,.dj_iequirks .dijitTextBox input.dijitInputInner,.dj_iequirks input.dijitTextBox {line-height: 100%;}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner {text-indent: 0 !important; width: 1em !important; #text-align: left !important; color: black !important;}.dijitValidationTextBoxError .dijitValidationContainer {display: inline; cursor: default;}.dijitSpinner .dijitSpinnerButtonContainer,.dijitComboBox .dijitArrowButtonContainer {border-width: 0 0 0 1px !important;}.dj_a11y .dijitSelect .dijitArrowButtonContainer,.dijitToolbar .dijitComboBox .dijitArrowButtonContainer {border-width: 0 !important;}.dijitComboBoxMenu {list-style-type: none;}.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0;}.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {clear: both;}.dj_ie .dijitToolbar .dijitComboBox {vertical-align: middle;}.dijitTextBox .dijitSpinnerButtonContainer {width: 1em; position: relative !important; overflow: hidden;}.dijitSpinner .dijitSpinnerButtonInner {width:1em; visibility:hidden !important; overflow-x:hidden;}.dijitComboBox .dijitButtonNode,.dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0;}.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0px !important; border-style: solid !important;}.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,.dj_a11y .dijitSpinner .dijitArrowButtonInner,.dj_a11y .dijitSpinnerButtonContainer input {width: 1em !important;}.dj_a11y .dijitSpinner .dijitArrowButtonInner {margin: 0 auto !important;}.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding-left: 0.3em !important; padding-right: 0.3em !important; margin-left: 0.3em !important; margin-right: 0.3em !important; width: 1.4em !important;}.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding-left: 0 !important; padding-right: 0 !important; width: 1em !important;}.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {margin-left: 0.1em !important; margin-right: 0.1em !important; width: 1em !important;}.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {margin-left: 0 !important; margin-right: 0 !important; width: 2em !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {padding: 0; position: absolute !important; right: 0; float: none; height: 50%; width: 100%; bottom: auto; left: 0; right: auto;}.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: auto;}.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {overflow: visible !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {top: 50%; border-top-width: 1px !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {#bottom: 50%; top: 0;}.dijitSpinner .dijitArrowButtonInner {margin: auto; overflow-x: hidden; height: 100% !important;}.dj_iequirks .dijitSpinner .dijitArrowButtonInner {height: auto !important;}.dijitSpinner .dijitArrowButtonInner .dijitInputField {-moz-transform: scale(0.5); -moz-transform-origin: center top; -webkit-transform: scale(0.5); -webkit-transform-origin: center top; -o-transform: scale(0.5); -o-transform-origin: center top; transform: scale(0.5); transform-origin: left top; padding-top: 0; padding-bottom: 0; padding-left: 0 !important; padding-right: 0 !important; width: 100%; visibility: hidden;}.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {zoom: 50%;}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {overflow: hidden;}.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: 100%;}.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: 1em;}.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {vertical-align:top; visibility: visible;}.dj_a11y .dijitSpinnerButtonContainer {width: 1em;}.dijitCheckBox,.dijitRadio,.dijitCheckBoxInput {padding: 0; border: 0; width: 16px; height: 16px; background-position:center center; background-repeat:no-repeat; overflow: hidden;}.dijitCheckBox input,.dijitRadio input {margin: 0; padding: 0; display: block;}.dijitCheckBoxInput {opacity: 0.01;}.dj_ie .dijitCheckBoxInput {filter: alpha(opacity=0);}.dj_a11y .dijitCheckBox,.dj_a11y .dijitRadio {width: auto !important; height: auto !important;}.dj_a11y .dijitCheckBoxInput {opacity: 1; filter: none; width: auto; height: auto;}.dj_a11y .dijitFocusedLabel {border: 1px dotted; outline: 0px !important;}.dijitProgressBar {z-index: 0;}.dijitProgressBarEmpty {position:relative;overflow:hidden; border:1px solid black; z-index:0;}.dijitProgressBarFull {position:absolute; overflow:hidden; z-index:-1; top:0; width:100%;}.dj_ie6 .dijitProgressBarFull {height:1.6em;}.dijitProgressBarTile {position:absolute; overflow:hidden; top:0; left:0; bottom:0; right:0; margin:0; padding:0; width: 100%; height:auto; background-color:#aaa; background-attachment: fixed;}.dj_a11y .dijitProgressBarTile {border-width:2px; border-style:solid; background-color:transparent !important;}.dj_ie6 .dijitProgressBarTile {position:static; height:1.6em;}.dijitProgressBarIndeterminate .dijitProgressBarTile {}.dijitProgressBarIndeterminateHighContrastImage {display:none;}.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {display:block; position:absolute; top:0; bottom:0; margin:0; padding:0; width:100%; height:auto;}.dijitProgressBarLabel {display:block; position:static; width:100%; text-align:center; background-color:transparent !important;}.dijitTooltip {position: absolute; z-index: 2000; display: block; left: 0; top: -10000px; overflow: visible;}.dijitTooltipContainer {border: solid black 2px; background: #b8b5b5; color: black; font-size: small;}.dijitTooltipFocusNode {padding: 2px 2px 2px 2px;}.dijitTooltipConnector {position: absolute;}.dj_a11y .dijitTooltipConnector {display: none;}.dijitTooltipData {display:none;}.dijitLayoutContainer {position: relative; display: block; overflow: hidden;}.dijitAlignTop,.dijitAlignBottom,.dijitAlignLeft,.dijitAlignRight {position: absolute; overflow: hidden;}body .dijitAlignClient {position: absolute;}.dijitBorderContainer, .dijitBorderContainerNoGutter {position:relative; overflow: hidden; z-index: 0;}.dijitBorderContainerPane,.dijitBorderContainerNoGutterPane {position: absolute !important; z-index: 2;}.dijitBorderContainer > .dijitTextArea {resize: none;}.dijitGutter {position: absolute; font-size: 1px;}.dijitSplitter {position: absolute; overflow: hidden; z-index: 10; background-color: #fff; border-color: gray; border-style: solid; border-width: 0;}.dj_ie .dijitSplitter {z-index: 1;}.dijitSplitterActive {z-index: 11 !important;}.dijitSplitterCover {position:absolute; z-index:-1; top:0; left:0; width:100%; height:100%;}.dijitSplitterCoverActive {z-index:3 !important;}.dj_ie .dijitSplitterCover {background: white; filter: alpha(opacity=0);}.dijitSplitterH {height: 7px; border-top:1px; border-bottom:1px; cursor: row-resize;}.dijitSplitterV {width: 7px; border-left:1px; border-right:1px; cursor: col-resize;}.dijitSplitContainer {position: relative; overflow: hidden; display: block;}.dj_ff3 .dj_a11y div.dijitSplitter:focus {outline-style:dotted; outline-width: 2px;}.dijitSplitPane {position: absolute;}.dijitSplitContainerSizerH,.dijitSplitContainerSizerV {position:absolute; font-size: 1px; background-color: ThreeDFace; border: 1px solid; border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; margin: 0;}.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb {overflow:hidden; position:absolute; top:49%;}.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb {position:absolute; left:49%;}.dijitSplitterShadow,.dijitSplitContainerVirtualSizerH,.dijitSplitContainerVirtualSizerV {font-size: 1px; background-color: ThreeDShadow; -moz-opacity: 0.5; opacity: 0.5; filter: Alpha(Opacity=50); margin: 0;}.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH {cursor: col-resize;}.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV {cursor: row-resize;}.dj_a11y .dijitSplitterH {border-top:1px solid #d3d3d3 !important; border-bottom:1px solid #d3d3d3 !important;}.dj_a11y .dijitSplitterV {border-left:1px solid #d3d3d3 !important; border-right:1px solid #d3d3d3 !important;}.dijitContentPane {display: block; overflow: auto;}.dijitContentPaneSingleChild {overflow: hidden;}.dijitContentPaneLoading .dijitIconLoading,.dijitContentPaneError .dijitIconError {margin-right: 9px;}.dijitTitlePane {display: block; overflow: hidden;}.dijitTitlePaneTitle {cursor: pointer;}.dijitFixedOpen, .dijitFixedClosed {cursor: default;}.dijitFixedOpen .dijitArrowNode, .dijitFixedOpen .dijitArrowNodeInner,.dijitFixedClosed .dijitArrowNode, .dijitFixedClosed .dijitArrowNodeInner{display: none;}.dijitTitlePaneTitle * {vertical-align: middle;}.dijitTitlePane .dijitArrowNodeInner {display: none;}.dj_a11y .dijitTitlePane .dijitArrowNodeInner {display:inline !important; font-family: monospace;}.dj_a11y .dijitTitlePane .dijitArrowNode {display:none;}.dj_ie6 .dijitTitlePaneContentOuter,.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {zoom: 1;}.dijitColorPalette {border: 1px solid #999; background: #fff; position: relative;}.dijitColorPalette .dijitPaletteTable {padding: 2px 3px 3px 3px; position: relative; overflow: hidden; outline: 0; border-collapse: separate;}.dj_ie6 .dijitColorPalette .dijitPaletteTable,.dj_ie7 .dijitColorPalette .dijitPaletteTable,.dj_iequirks .dijitColorPalette .dijitPaletteTable {padding: 0; margin: 2px 3px 3px 3px;}.dijitColorPalette .dijitPaletteCell {font-size: 1px; vertical-align: middle; text-align: center; background: none;}.dijitColorPalette .dijitPaletteImg {padding: 1px; border: 1px solid #999; margin: 2px 1px; cursor: default; font-size: 1px;}.dj_gecko .dijitColorPalette .dijitPaletteImg {padding-bottom: 0;}.dijitColorPalette .dijitColorPaletteSwatch {width: 14px; height: 12px;}.dijitPaletteTable td {padding: 0;}.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {border: 1px solid #000;}.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {border: 2px solid #000; margin: 1px 0;}.dj_a11y .dijitColorPalette .dijitPaletteTable,.dj_a11y .dijitColorPalette .dijitPaletteTable * {background-color: transparent !important;}.dijitAccordionContainer {border:1px solid #b7b7b7; border-top:0 !important;}.dijitAccordionTitle {cursor: pointer;}.dijitAccordionTitleSelected {cursor: default;}.dijitAccordionTitle .arrowTextUp,.dijitAccordionTitle .arrowTextDown {display: none; font-size: 0.65em; font-weight: normal !important;}.dj_a11y .dijitAccordionTitle .arrowTextUp,.dj_a11y .dijitAccordionTitleSelected .arrowTextDown {display: inline;}.dj_a11y .dijitAccordionTitleSelected .arrowTextUp {display: none;}.dijitAccordionChildWrapper {overflow: hidden;}.dijitCalendarContainer {width: auto;}.dijitCalendarContainer th, .dijitCalendarContainer td {padding: 0; vertical-align: middle;}.dijitCalendarYearLabel {white-space: nowrap;}.dijitCalendarNextYear {margin:0 0 0 0.55em;}.dijitCalendarPreviousYear {margin:0 0.55em 0 0;}.dijitCalendarIncrementControl {vertical-align: middle;}.dijitCalendarIncrementControl,.dijitCalendarDateTemplate,.dijitCalendarMonthLabel,.dijitCalendarPreviousYear,.dijitCalendarNextYear {cursor: pointer;}.dijitCalendarDisabledDate {color: gray; text-decoration: line-through; cursor: default;}.dijitSpacer {position: relative; height: 1px; overflow: hidden; visibility: hidden;}.dijitCalendarMonthMenu .dijitCalendarMonthLabel {text-align:center;}.dijitMenu {border:1px solid black; background-color:white;}.dijitMenuTable {border-collapse:collapse; border-width:0; background-color:white;}.dj_webkit .dijitMenuTable td[colspan="2"]{border-right:hidden;}.dijitMenuItem {text-align: left; white-space: nowrap; padding:.1em .2em; cursor:pointer;}.dijitMenuItem:focus {outline: none}.dijitMenuPassive .dijitMenuItemHover,.dijitMenuItemSelected {background-color:black; color:white;}.dijitMenuItemIcon, .dijitMenuExpand {background-repeat: no-repeat;}.dijitMenuItemDisabled * {opacity:0.5; cursor:default;}.dj_ie .dj_a11y .dijitMenuItemDisabled,.dj_ie .dj_a11y .dijitMenuItemDisabled *,.dj_ie .dijitMenuItemDisabled * {color: gray; filter: alpha(opacity=35);}.dijitMenuItemLabel {position: relative; vertical-align: middle;}.dj_a11y .dijitMenuItemSelected {border: 1px dotted black !important;}.dj_ff3 .dj_a11y .dijitMenuItem td {padding: 0 !important; background:none !important;}.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {border-width: 1px; border-style: solid;}.dj_ie8 .dj_a11y .dijitMenuItemLabel {position:static;}.dijitMenuExpandA11y {display: none;}.dj_a11y .dijitMenuExpandA11y {display: inline;}.dijitMenuSeparator td {border: 0; padding: 0;}.dijitMenuSeparatorTop {height: 50%; margin: 0; margin-top:3px; font-size: 1px;}.dijitMenuSeparatorBottom {height: 50%; margin: 0; margin-bottom:3px; font-size: 1px;}.dijitCheckedMenuItemIconChar {vertical-align: middle; visibility:hidden;}.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar {visibility: visible;}.dj_a11y .dijitCheckedMenuItemIconChar {display:inline !important;}.dj_a11y .dijitCheckedMenuItemIcon {display: none;}.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {margin: 0;}.dijitStackController .dijitToggleButtonChecked * {cursor: default;}.dijitTabContainer {z-index: 0; overflow-y: visible;}.dj_ie6 .dijitTabContainer {overflow: hidden;}.dijitTabContainerNoLayout {width: 100%;}.dijitTabContainerBottom-tabs,.dijitTabContainerTop-tabs,.dijitTabContainerLeft-tabs,.dijitTabContainerRight-tabs {z-index: 1; overflow: visible !important;}.dijitTabController {z-index: 1;}.dijitTabContainerBottom-container,.dijitTabContainerTop-container,.dijitTabContainerLeft-container,.dijitTabContainerRight-container {z-index:0; overflow: hidden; border: 1px solid black;}.nowrapTabStrip {width: 50000px; display: block; position: relative; text-align: left; z-index: 1;}.dijitTabListWrapper {overflow: hidden; z-index: 1;}.dj_a11y .tabStripButton img {display: none;}.dijitTabContainerTop-tabs {border-bottom: 1px solid black;}.dijitTabContainerTop-container {border-top: 0;}.dijitTabContainerLeft-tabs {border-right: 1px solid black; float: left;}.dijitTabContainerLeft-container {border-left: 0;}.dijitTabContainerBottom-tabs {border-top: 1px solid black;}.dijitTabContainerBottom-container {border-bottom: 0;}.dijitTabContainerRight-tabs {border-left: 1px solid black; float: left;}.dijitTabContainerRight-container {border-right: 0;}div.dijitTabDisabled, .dj_ie div.dijitTabDisabled {cursor: auto;}.dijitTab {position:relative; cursor:pointer; white-space:nowrap; z-index:3;}.dijitTab * {vertical-align: middle;}.dijitTabChecked {cursor: default;}.dijitTabContainerTop-tabs .dijitTab {top: 1px;}.dijitTabContainerBottom-tabs .dijitTab {top: -1px;}.dijitTabContainerLeft-tabs .dijitTab {left: 1px;}.dijitTabContainerRight-tabs .dijitTab {left: -1px;}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab {display:inline-block; #zoom: 1; #display:inline;}.tabStripButton {z-index: 12;}.dijitTabButtonDisabled .tabStripButton {display: none;}.dijitTabCloseButton {margin-left: 1em;}.dijitTabCloseText {display:none;}.dijitTab .tabLabel {min-height: 15px; display: inline-block;}.dijitNoIcon {display: none;}.dj_ie6 .dijitTab .dijitNoIcon {display: inline; height: 15px; width: 1px;}.dj_a11y .dijitTabCloseButton {background-image: none !important; width: auto !important; height: auto !important;}.dj_a11y .dijitTabCloseText {display: inline;}.dijitTabPane,.dijitStackContainer-child,.dijitAccordionContainer-child {border: none !important;}.dijitInlineEditBoxDisplayMode {border: 1px solid transparent; cursor: text;}.dj_a11y .dijitInlineEditBoxDisplayMode,.dj_ie6 .dijitInlineEditBoxDisplayMode {border: none;}.dijitInlineEditBoxDisplayModeHover,.dj_a11y .dijitInlineEditBoxDisplayModeHover,.dj_ie6 .dijitInlineEditBoxDisplayModeHover {background-color: #e2ebf2; border: solid 1px black;}.dijitInlineEditBoxDisplayModeDisabled {cursor: default;}.dijitTree {overflow: auto;}.dijitTreeIndent {width: 19px;}.dijitTreeRow, .dijitTreeContent {white-space: nowrap;}.dijitTreeRow img {vertical-align: middle;}.dijitTreeContent {cursor: default;}.dijitExpandoText {display: none;}.dj_a11y .dijitExpandoText {display: inline; padding-left: 10px; padding-right: 10px; font-family: monospace; border-style: solid; border-width: thin; cursor: pointer;}.dijitTreeLabel {margin: 0 4px;}.dijitDialog {position: absolute; z-index: 999; overflow: hidden;}.dijitDialogTitleBar {cursor: move;}.dijitDialogFixed .dijitDialogTitleBar {cursor:default;}.dijitDialogCloseIcon {cursor: pointer;}.dijitDialogUnderlayWrapper {position: absolute; left: 0; top: 0; z-index: 998; display: none; background: transparent !important;}.dijitDialogUnderlay {background: #eee; opacity: 0.5;}.dj_ie .dijitDialogUnderlay {filter: alpha(opacity=50);}.dj_a11y .dijitSpinnerButtonContainer,.dj_a11y .dijitDialog {opacity: 1 !important; background-color: white !important;}.dijitDialog .closeText {display:none; position:absolute;}.dj_a11y .dijitDialog .closeText {display:inline;}.dijitSliderMoveable {z-index:99; position:absolute !important; display:block; vertical-align:middle;}.dijitSliderMoveableH {right:0;}.dijitSliderMoveableV {right:50%;}.dj_a11y div.dijitSliderImageHandle,.dijitSliderImageHandle {margin:0; padding:0; position:relative !important; border:8px solid gray; width:0; height:0; cursor: pointer;}.dj_iequirks .dj_a11y .dijitSliderImageHandle {font-size: 0;}.dj_ie7 .dijitSliderImageHandle {overflow: hidden;}.dj_ie7 .dj_a11y .dijitSliderImageHandle {overflow: visible;}.dj_a11y .dijitSliderFocused .dijitSliderImageHandle {border:4px solid #000; height:8px; width:8px;}.dijitSliderImageHandleV {top:-8px; right: -50%;}.dijitSliderImageHandleH {left:50%; top:-5px; vertical-align:top;}.dijitSliderBar {border-style:solid; border-color:black; cursor: pointer;}.dijitSliderBarContainerV {position:relative; height:100%; z-index:1;}.dijitSliderBarContainerH {position:relative; z-index:1;}.dijitSliderBarH {height:4px; border-width:1px 0;}.dijitSliderBarV {width:4px; border-width:0 1px;}.dijitSliderProgressBar {background-color:red; z-index:1;}.dijitSliderProgressBarV {position:static !important; height:0; vertical-align:top; text-align:left;}.dijitSliderProgressBarH {position:absolute !important; width:0; vertical-align:middle; overflow:visible;}.dijitSliderRemainingBar {overflow:hidden; background-color:transparent; z-index:1;}.dijitSliderRemainingBarV {height:100%; text-align:left;}.dijitSliderRemainingBarH {width:100% !important;}.dijitSliderBumper {overflow:hidden; z-index:1;}.dijitSliderBumperV {width:4px; height:8px; border-width:0 1px;}.dijitSliderBumperH {width:8px; height:4px; border-width:1px 0;}.dijitSliderBottomBumper,.dijitSliderLeftBumper {background-color:red;}.dijitSliderTopBumper,.dijitSliderRightBumper {background-color:transparent;}.dijitSliderDecoration {text-align:center;}.dijitSliderDecorationC,.dijitSliderDecorationV {position: relative;}.dijitSliderDecorationH {width: 100%;}.dijitSliderDecorationV {height: 100%; white-space: nowrap;}.dijitSliderButton {font-family:monospace; margin:0; padding:0; display:block;}.dj_a11y .dijitSliderButtonInner {visibility:visible !important;}.dijitSliderButtonContainer {text-align:center; height:0;}.dijitSliderButtonContainer * {cursor: pointer;}.dijitSlider .dijitButtonNode {padding:0; display:block;}.dijitRuleContainer {position:relative; overflow:visible;}.dijitRuleContainerV {height:100%; line-height:0; float:left; text-align:left;}.dj_opera .dijitRuleContainerV {line-height:2%;}.dj_ie .dijitRuleContainerV {line-height:normal;}.dj_gecko .dijitRuleContainerV {margin:0 0 1px 0;}.dijitRuleMark {position:absolute; border:1px solid black; line-height:0; height:100%;}.dijitRuleMarkH {width:0; border-top-width:0 !important; border-bottom-width:0 !important; border-left-width:0 !important;}.dijitRuleLabelContainer {position:absolute;}.dijitRuleLabelContainerH {text-align:center; display:inline-block;}.dijitRuleLabelH {position:relative; left:-50%;}.dijitRuleLabelV {text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}.dijitRuleMarkV {height:0; border-right-width:0 !important; border-bottom-width:0 !important; border-left-width:0 !important; width:100%; left:0;}.dj_ie .dijitRuleLabelContainerV {margin-top:-.55em;}.dj_a11y .dijitSliderReadOnly,.dj_a11y .dijitSliderDisabled {opacity:0.6;}.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {filter: alpha(opacity=40);}.dj_a11y .dijitSlider .dijitSliderButtonContainer div {font-family: monospace; font-size: 1em; line-height: 1em; height: auto; width: auto; margin: 0 4px;}.dj_a11y .dijitButtonContents .dijitButtonText,.dj_a11y .dijitTab .tabLabel {display: inline !important;}.dj_a11y .dijitSelect .dijitButtonText {display: inline-block !important;}.dijitSelectError .dijitButtonContents .dijitButtonText {display: none !important;}.dijitTextArea {width:100%; overflow-y: auto;}.dijitTextArea[cols] {width:auto;}.dj_ie .dijitTextAreaCols {width:auto;}.dijitExpandingTextArea {resize: none;}.dijitToolbarSeparator {height: 18px; width: 5px; padding: 0 1px; margin: 0;}.dijitIEFixedToolbar {position:absolute; top: expression(eval((document.documentElement||document.body).scrollTop));}.dijitEditor {display: block;}.dijitEditorDisabled,.dijitEditorReadOnly {color: gray;}.dijitTimePickerItemInner {text-align:center; border:0; padding:2px 8px 2px 8px;}.dijitTimePickerTick,.dijitTimePickerMarker {border-bottom:1px solid gray;}.dijitTimePicker .dijitDownArrowButton {border-top: none !important;}.dijitTimePickerTick {color:#CCC;}.dijitTimePickerMarker {color:black; background-color:#CCC;}.dijitTimePickerItemSelected {font-weight:bold; color:#333; background-color:#b7cdee;}.dijitTimePickerItemHover {background-color:gray; color:white; cursor:pointer;}.dijitTimePickerItemDisabled {color:gray; text-decoration:line-through;}.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {border: solid 4px black;}.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {border: dashed 4px black;}.dijitToggleButtonIconChar {display:none !important;}.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {display:inline !important; visibility:hidden;}.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText {font-family: "Arial Unicode MS";}.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {display: inline !important; visibility:visible !important;}.dijitArrowButtonChar {display:none !important;}.dj_a11y .dijitArrowButtonChar {display:inline !important;}.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,.dj_a11y .dijitComboButton .dijitArrowButtonInner {display:none !important;}.dj_a11y .dijitSelect {border-collapse: separate !important; border-width: 1px; border-style: solid;}.dj_ie .dijitSelect {vertical-align: middle;}.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie8 .dijitSelect .dijitButtonText {vertical-align: top;}.dj_ie6 .dijitTextBox .dijitInputContainer,.dj_iequirks .dijitTextBox .dijitInputContainer,.dj_ie6 .dijitTextBox .dijitArrowButtonInner,.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,.dijitSelect .dijitSelectLabel {vertical-align: baseline;}.dijitNumberTextBox {text-align: left; direction: ltr;}.dijitNumberTextBox .dijitInputInner {text-align: inherit;}.dijitToolbar .dijitSelect {margin: 0;}.dj_webkit .dijitToolbar .dijitSelect {padding-left: 0.3em;}.dijitSelect .dijitButtonContents {padding: 0; white-space: nowrap; text-align: left; border-style: none solid none none; border-width: 1px;}.dijitSelectFixedWidth .dijitButtonContents {width: 100%;}.dijitSelectMenu .dijitMenuItemIcon {display:none;}.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {position: static;}.dijitSelectLabel *{vertical-align: baseline;}.dijitSelectSelectedOption * {font-weight: bold;}.dijitSelectMenu {border-width: 1px;}.dijitSelectMenu .dijitMenuTable {margin: 0; background-color: transparent;}.dijitForceStatic {position: static !important;}.dijitReadOnly *,.dijitDisabled *,.dijitReadOnly,.dijitDisabled {cursor: default;}.dojoDndItem {padding: 2px; -webkit-touch-callout: none; -webkit-user-select: none;}.dojoDndHorizontal .dojoDndItem {#display: inline; display: inline-block;}.dojoDndItemBefore,.dojoDndItemAfter {border: 0px solid #369;}.dojoDndItemBefore {border-width: 2px 0 0 0; padding: 0 2px 2px 2px;}.dojoDndItemAfter {border-width: 0 0 2px 0; padding: 2px 2px 0 2px;}.dojoDndHorizontal .dojoDndItemBefore {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.dojoDndHorizontal .dojoDndItemAfter {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dojoDndItemOver {cursor:pointer;}.dj_gecko .dijitArrowButtonInner INPUT,.dj_gecko INPUT.dijitArrowButtonInner {-moz-user-focus:ignore;}.dijitIconSave,.dijitIconPrint,.dijitIconCut,.dijitIconCopy,.dijitIconClear,.dijitIconDelete,.dijitIconUndo,.dijitIconEdit,.dijitIconNewTask,.dijitIconEditTask,.dijitIconEditProperty,.dijitIconTask,.dijitIconFilter,.dijitIconConfigure,.dijitIconSearch,.dijitIconApplication,.dijitIconBookmark,.dijitIconChart,.dijitIconConnector,.dijitIconDatabase,.dijitIconDocuments,.dijitIconMail,.dijitLeaf,.dijitIconFile,.dijitIconFunction,.dijitIconKey,.dijitIconPackage,.dijitIconSample,.dijitIconTable,.dijitIconUsers,.dijitFolderClosed,.dijitIconFolderClosed,.dijitFolderOpened,.dijitIconFolderOpen,.dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled.png"); width: 16px; height: 16px;}.dj_ie6 .dijitIconSave,.dj_ie6 .dijitIconPrint,.dj_ie6 .dijitIconCut,.dj_ie6 .dijitIconCopy,.dj_ie6 .dijitIconClear,.dj_ie6 .dijitIconDelete,.dj_ie6 .dijitIconUndo,.dj_ie6 .dijitIconEdit,.dj_ie6 .dijitIconNewTask,.dj_ie6 .dijitIconEditTask,.dj_ie6 .dijitIconEditProperty,.dj_ie6 .dijitIconTask,.dj_ie6 .dijitIconFilter,.dj_ie6 .dijitIconConfigure,.dj_ie6 .dijitIconSearch,.dj_ie6 .dijitIconApplication,.dj_ie6 .dijitIconBookmark,.dj_ie6 .dijitIconChart,.dj_ie6 .dijitIconConnector,.dj_ie6 .dijitIconDatabase,.dj_ie6 .dijitIconDocuments,.dj_ie6 .dijitIconMail,.dj_ie6 .dijitLeaf,.dj_ie6 .dijitIconFile,.dj_ie6 .dijitIconFunction,.dj_ie6 .dijitIconKey,.dj_ie6 .dijitIconPackage,.dj_ie6 .dijitIconSample,.dj_ie6 .dijitIconTable,.dj_ie6 .dijitIconUsers,.dj_ie6 .dijitFolderClosed,.dj_ie6 .dijitIconFolderClosed,.dj_ie6 .dijitFolderOpened,.dj_ie6 .dijitIconFolderOpen,.dj_ie6 .dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled8bit.png");}.dijitDisabled .dijitIconSave,.dijitDisabled .dijitIconPrint,.dijitDisabled .dijitIconCut,.dijitDisabled .dijitIconCopy,.dijitDisabled .dijitIconClear,.dijitDisabled .dijitIconDelete,.dijitDisabled .dijitIconUndo,.dijitDisabled .dijitIconEdit,.dijitDisabled .dijitIconNewTask,.dijitDisabled .dijitIconEditTask,.dijitDisabled .dijitIconEditProperty,.dijitDisabled .dijitIconTask,.dijitDisabled .dijitIconFilter,.dijitDisabled .dijitIconConfigure,.dijitDisabled .dijitIconSearch,.dijitDisabled .dijitIconApplication,.dijitDisabled .dijitIconBookmark,.dijitDisabled .dijitIconChart,.dijitDisabled .dijitIconConnector,.dijitDisabled .dijitIconDatabase,.dijitDisabled .dijitIconDocuments,.dijitDisabled .dijitIconMail,.dijitDisabled .dijitLeaf,.dijitDisabled .dijitIconFile,.dijitDisabled .dijitIconFunction,.dijitDisabled .dijitIconKey,.dijitDisabled .dijitIconPackage,.dijitDisabled .dijitIconSample,.dijitDisabled .dijitIconTable,.dijitDisabled .dijitIconUsers,.dijitDisabled .dijitFolderClosed,.dijitDisabled .dijitIconFolderClosed,.dijitDisabled .dijitFolderOpened,.dijitDisabled .dijitIconFolderOpen,.dijitDisabled .dijitIconError {background-image: url("../../icons/images/commonIconsObjActDisabled.png");}.dijitIconSave {background-position: 0;}.dijitIconPrint {background-position: -16px;}.dijitIconCut {background-position: -32px;}.dijitIconCopy {background-position: -48px;}.dijitIconClear {background-position: -64px;}.dijitIconDelete {background-position: -80px;}.dijitIconUndo {background-position: -96px;}.dijitIconEdit {background-position: -112px;}.dijitIconNewTask {background-position: -128px;}.dijitIconEditTask {background-position: -144px;}.dijitIconEditProperty {background-position: -160px;}.dijitIconTask {background-position: -176px;}.dijitIconFilter {background-position: -192px;}.dijitIconConfigure {background-position: -208px;}.dijitIconSearch {background-position: -224px;}.dijitIconError {background-position: -496px;} .dijitIconApplication {background-position: -240px;}.dijitIconBookmark {background-position: -256px;}.dijitIconChart {background-position: -272px;}.dijitIconConnector {background-position: -288px;}.dijitIconDatabase {background-position: -304px;}.dijitIconDocuments {background-position: -320px;}.dijitIconMail {background-position: -336px;}.dijitIconFile, .dijitLeaf {background-position: -352px;}.dijitIconFunction {background-position: -368px;}.dijitIconKey {background-position: -384px;}.dijitIconPackage{background-position: -400px;}.dijitIconSample {background-position: -416px;}.dijitIconTable {background-position: -432px;}.dijitIconUsers {background-position: -448px;}.dijitIconFolderClosed, .dijitFolderClosed {background-position: -464px;}.dijitIconFolderOpen, .dijitFolderOpened {background-position: -480px;}.dijitIconLoading {background:url("../../icons/images/loadingAnimation_rtl.gif") no-repeat; height: 20px; width: 20px;}.soria .dojoDndItemOver {background-image: url("images/treeHover.png");}.soria .dojoDndItemAnchor,.soria .dojoDndItemSelected {background-color: #B8CBEC;}.soria table.dojoDndAvatar {-moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;}.soria .dojoDndAvatar td {border: none;}.soria .dojoDndAvatar tr {border: none;}.soria .dojoDndAvatarHeader td {height: 20px; padding: 0 0 0 21px;}.soria .dojoDndAvatarItem td {padding: 2px;}.soria.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url("images/dndNoMove.png"); background-repeat: no-repeat; background-position: 2px center;}.soria.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url("images/dndNoCopy.png"); background-repeat: no-repeat; background-position: 2px center;}.soria.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url("images/dndMove.png"); background-repeat: no-repeat; background-position: 2px center;}.soria.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url("images/dndCopy.png"); background-repeat: no-repeat; background-position: 2px center;}.soria .dijitContentPane {padding: 0;}.soria .dijitTabContainerTop-dijitContentPane,.soria .dijitTabContainerLeft-dijitContentPane,.soria .dijitTabContainerBottom-dijitContentPane,.soria .dijitTabContainerRight-dijitContentPane,.soria .dijitAccordionContainer-dijitContentPane {background-color: #fff; padding: 5px;}.soria .dijitSplitContainer-dijitContentPane,.soria .dijitBorderContainer-dijitContentPane {background-color: #fff; padding: 5px;} .soria .dijitTabContainer .tabStripRBtn {margin-right: 21px;} .soria .dijitTabContainer .tabStripLBtn {margin-left: 21px;} .soria .nowrapTabStrip .dijitTab {top: 2px;} .soria .dijitTabContainerBottom-tabs .dijitTab {top: -1px; bottom: 2px;}.soria .dijitTabPaneWrapper {background:#fff; border:1px solid #B1BADF; margin: 0; padding-left: 0;}.soria .dijitTab {padding:4px 6px 2px 4px; background: url("images/tabContainerSprite.gif") repeat-x 0 -351px; position: relative; line-height:normal; margin:0 2px 0 0; color: #243C5F; border: 1px #8BA0BD solid; border-bottom: 1px #B1BADF solid;}.soria .dijitTabHover {color: #243C5F; background: url("images/tabContainerSprite.gif") repeat-x 0 -201px;}.soria .dijitTabChecked{background: url("images/tabContainerSprite.gif") repeat-x 0 -51px; color: #243C5F !important;}.soria .dijitTabListWrapper {z-index: 10;}.soria .dijitTabContainerTabListNested {background: #D9E9F9; border: none;}.soria .dijitTabContainerTabListNested .dijitTab {background: none; border: none; top: 0;}.soria .dijitTabContainerTabListNested .dijitTabHover .tabLabel {text-decoration: underline;}.soria .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {text-decoration: underline; font-weight: bold;}.soria .dijitTabContainerSpacerNested .dijitTabSpacer {height: 0;}.soria .dijitTabPaneWrapperNested {border: none;}.soria .dijitTabCloseButton {width: 15px; height: 15px; background: url("images/spriteRoundedIconsSmall.png") no-repeat -60px top; margin-top: -1px;}.dj_ie6 .soria .dijitTabCloseButton {background: url("images/spriteRoundedIconsSmall.gif") no-repeat -60px top;}.soria .dijitTabCloseButtonHover {background: url("images/spriteRoundedIconsSmall.png") no-repeat -60px -15px;}.dj_ie6 .soria .dijitTabCloseButtonHover {background: url("images/spriteRoundedIconsSmall.gif") no-repeat -60px -15px;}.soria .dijitTabContainerTop-tabs {border-color: #B1BADF; padding-left: 3px;}.soria .dijitTabContainerTop-tabs .dijitTab {border-radius: 4px 4px 0 0; -moz-border-radius: 4px 4px 0 0;}.soria .dijitTabContainerTopNoStrip {padding-top: 3px;}.soria .dijitTabContainerTop-container {border-top: none;}.soria .dijitTabContainerTop .dijitTabListWrapper {border-bottom: none;}.soria .dijitTabContainerTop-tabs .dijitTab {top: 1px;}.soria .dijitTabContainerTop-tabs .dijitTabChecked {border-bottom-color: #94b4e6;}.soria .dijitTabContainerTopStrip {border: 1px solid #B1BADF; margin-top: 1px; padding-top: 1px; background: #F0F4FC;}.soria .dijitTabContainerTopStrip .dijitTabContainerTop-tabs {padding-left: 3px;}.soria .dijitTabContainerNested .dijitTabListWrapper {height: auto;}.soria .dijitTabContainerBottom-tabs {margin-top: -1px; padding-left: 3px; border-top: 1px solid #B1BADF;}.soria .dijitTabContainerBottom .dijitTabListWrapper {border-top: none; padding-top: 1px; padding-bottom: 1px; float: left;}.soria .dijitTabContainerBottom-tabs .dijitTab {border-bottom: none; border-top: 1px solid #B1BADF; border-radius: 0 0 4px 4px; -moz-border-radius: 0 0 4px 4px; padding-top: 3px; padding-bottom: 3px; background: url("images/tabBottomEnabledC.gif") repeat-x bottom left;}.soria .dijitTabContainerBottom-tabs .dijitTabHover {background: url("images/tabBottomHoverC.gif") repeat-x bottom left;}.soria .dijitTabContainerBottom-tabs .dijitTabChecked {border-top-color:#94b4e6; background: url("images/tabBottomActiveC.gif") repeat-x bottom left;}.soria .dijitTabContainerBottom-container {border-bottom: none;}.soria .dijitTabContainerBottomStrip {padding-bottom: 2px; border: 1px solid #B1BADF;}.soria .dijitTabContainerBottomStrip {background: #F0F4FC;}.soria .dijitTabContainerBottom-spacer,.soria .dijitTabContainerTop-spacer {height: 2px; border: 1px solid #8ba0bd; background: #94b4e6;}.soria .dijitTabContainerTop-spacer {border-top: none;}.soria .dijitTabContainerBottom-spacer {border-bottom: none;}.soria .dijitTabContainerRight-tabs {height: 100%; border-color: #ccc; padding-top: 3px;}.soria .dijitTabContainerRight-tabs .dijitTab {border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-bottom: none; border-left: 1px solid #B1BADF; border-bottom: 1px solid #B1BADF !important; padding: 4px 6px 2px 8px;}.soria .dijitTabContainerRight-tabs .dijitTabChecked {border-left-color: #94b4e6; background: url("images/tabRightChecked.gif") no-repeat left top !important;}.soria .dijitTabContainerRight-container {border-right: none;}.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTab,.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTab {border-bottom: solid #B1BADF 1px; margin-bottom: -1px;}.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabChecked,.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabChecked,.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabCheckedHover,.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabCheckedHover {border-bottom: solid #94b4e6 1px; margin-bottom: -1px;}.soria .dijitTabContainerRightStrip {padding-right: 2px; border: 1px solid #B1BADF; background: #F0F4FC; border-left: none;}.soria .dijitTabContainerLeft-tabs {border-color: #ccc; padding-top: 3px; height: 100%;}.soria .dijitTabContainerLeft-tabs .dijitTab {border-radius: 4px 0 0 4px; -moz-border-radius: 4px 0 0 4px; border-right: 1px solid #B1BADF; border-bottom: 1px solid #B1BADF;}.soria .dijitTabContainerLeft-tabs .dijitTabChecked {border-right: 1px solid #94b4e6; background: url("images/tabLeftChecked.gif") no-repeat right top;}.soria .dijitTabContainerLeft-container {border-left: none;}.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTab,.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTab {border-bottom: solid #B1BADF 1px; margin-bottom: -1px;}.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTab,.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTab,.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTab,.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTab {border-bottom: solid #94b4e6 1px; margin-bottom: -1px;}.soria .dijitTabContainerLeftStrip {padding-left: 2px; border: 1px solid #B1BADF; background: #F0F4FC; border-right: none;}.soria .dijitTabContainerLeft-tabs .dijitTab,.soria .dijitTabContainerRight-tabs .dijitTab {margin: 1px 0;}.soria .dijitTabContainerLeft-spacer,.soria .dijitTabContainerRight-spacer {width: 2px; border: 1px solid #8ba0bd; background: #94b4e6;}.soria .dijitTabContainerLeft-spacer {border-left: none;}.soria .dijitTabContainerRight-spacer {border-right: none;}.soria .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs {border-left: 0 solid #ccc; border-top: 0 solid #ccc; border-right: 0 solid #ccc; padding-top: 0; padding-left: 0;}.soria .dijitTabContainer .tabStripButton {margin-right: 0;}.soria .dijitTabContainer .tabStripButton-top {margin-top: 1px;}.dj_ie6 .soria .tabStripButton .dijitTabContent,.dj_ie7 .soria .tabStripButton .dijitTabContent {padding-top: 7px;}.dj_ie6 .soria .tabStrip-disabled .tabStripButton .dijitTabContent,.dj_ie7 .soria .tabStrip-disabled .tabStripButton .dijitTabContent {padding-top: 6px;}.soria .dijitTabContainer .tabStripButton-bottom {background: transparent url("images/tabBottomEnabledSpriteLR.gif") no-repeat scroll left bottom; border-bottom: medium none; border-top: 1px solid #B1BADF;}.soria .dijitTabContainer .tabStripButton-bottom .dijitTab {background: transparent url("images/tabBottomEnabledSpriteLR.gif") no-repeat scroll right bottom;}.soria .dijitTabStripIcon {height: 14px; width: 14px; background: url("images/spriteRoundedIconsSmall.png") no-repeat left top ;}.dj_ie6 .soria .dijitTabStripIcon {background-image: url("images/spriteRoundedIconsSmall.gif");}.soria .dijitTabStripSlideRightIcon {background-position: -30px top;}.soria .dijitTabStripMenuIcon {background-position: -15px top;}.soria .dijitAccordionContainer {border-color: #b1badf; background-color: #fff;}.soria .dijitAccordionTitle {background:#fafafa url("images/titleBar.png") repeat-x top left; border-top: 1px solid #b9bbdd; padding: 5px 4px 6px 8px; font-size: 0.9em; font-weight: bold; color: #373941;}.soria .dijitAccordionTitleSelected {background: #f9f9f9 url("images/accordionItemActive.png") top repeat-x; font-weight: bold; border-top: 1px solid #b9bbdd; border-bottom: 1px solid #b9bbdd; padding: 5px 4px 5px 8px; color: #243C5F;}.soria .dijitAccordionArrow {background:url("images/spriteRoundedIconsSmallBl.gif") no-repeat -30px top; width:15px; height:15px; margin-top:-1px;}.soria .dijitAccordionTitleSelected .dijitAccordionArrow {background:url("images/spriteRoundedIconsSmallBl.gif") no-repeat -15px top; margin-top:-1px;}.soria .dijitAccordionText {margin-left: 4px; margin-right: 4px;}.soria .dijitSplitContainerSizerH {background:url("images/splitContainerSizerV.png") repeat-y #cddef4; border:0; border-left:0 solid #436496; border-right:0 solid #436496; width:5px;}.soria .dijitSplitContainerSizerH .thumb {background:url("images/splitContainerSizerV-thumb.png") no-repeat #ccc; left:1px; width:2px; height:19px;}.soria .dijitSplitContainerSizerV {background:url("images/splitContainerSizerH.png") repeat-x #cddef4; border:0; border-top:0 solid #436496; border-bottom:0 solid #436496; height:2px;}.soria .dijitSplitContainerSizerV .thumb {background:url("images/splitContainerSizerH-thumb.png") no-repeat #ccc; top:1px; width:19px; height:5px;}.soria .dijitBorderContainer {background-color: #e1ebfb; padding: 5px;}.soria .dijitSplitContainer-child,.soria .dijitBorderContainer-child {border: 1px #b1badf solid;}.soria .dijitBorderContainer-dijitTabContainerTop,.soria .dijitBorderContainer-dijitTabContainerBottom,.soria .dijitBorderContainer-dijitTabContainerLeft,.soria .dijitBorderContainer-dijitTabContainerRight {border: none;}.soria .dijitBorderContainer-dijitBorderContainer {border: none; padding: 0;}.soria .dijitSplitterH,.soria .dijitGutterH {background: #E1EBFB; border:0; border-left:0 solid #d3d3d3; border-right:0 solid #d3d3d3; height:5px;}.soria .dijitSplitterH .dijitSplitterThumb {background:#B0B0B0 none; height:1px; top:2px; width:19px;}.soria .dijitSplitterV,.soria .dijitGutterV {background: #E1EBFB; border:0; border-top:0 solid #d3d3d3; border-bottom:0 solid #d3d3d3; width:5px;}.soria .dijitSplitterV .dijitSplitterThumb {background:#B0B0B0 none; height:19px; left:2px; width:1px;}.soria .dijitSplitterActive {font-size: 1px; background-image: none; background-color: #aaa; -moz-opacity: 0.6; opacity: 0.6; filter: Alpha(Opacity=60); margin: 0;}.soria .dijitInputContainer input {margin: 0 0.1em;}.soria .dijitSelect .dijitButtonContents,.soria .dijitSelect,.soria .dijitTextBox,.soria .dijitTextArea {background:#fff url("images/validationInputBg.png") repeat-x top left; #background:#fff url("images/validationInputBg.gif") repeat-x top left;}.soria .dijitSelect,.soria .dijitTextBox,.soria .dijitTextArea {border:1px solid #8ba0bd;}.soria .dijitSelect .dijitArrowButton,.soria .dijitComboBox .dijitButtonNode {padding: 0 0.2em;}.soria .dijitSelect .dijitButtonContents,.soria .dijitTextBox .dijitButtonNode {border-color: #8ba0bd;}.soria .dijitSelectFocused,.soria .dijitTextBoxFocused,.soria .dijitTextAreaFocused {border-color:#406b9b;}.soria .dijitSelectFocused TD,.soria .dijitTextBoxFocused .dijitButtonNode,.soria .dijitSpinner .dijitUpArrowButtonActive,.soria .dijitSpinner .dijitDownArrowButtonActive {border-color:#8ba0bd;}.soria .dijitSpinnerFocused .dijitDownArrowButton,.soria .dijitSpinner .dijitUpArrowButtonActive,.soria .dijitSpinner .dijitDownArrowButtonActive {border-top-color:#8ba0bd;}.soria .dijitError {border-color:#f3d118; background-color:#f9f7ba; background-image:none;}.soria .dijitErrorFocused {background-color:#ff6; background-image:none;}.soria .dijitValidationTextBoxError .dijitValidationIcon {width: 16px; background: transparent url("images/warning.png") no-repeat center center;}.soria .dijitComboBoxHighlightMatch {background-color:#f9f7ba;}.soria .dijitButtonNode {border: 1px solid #8ba0bd; border-bottom:1px solid #657c9c; padding: 0.1em 0.2em 0.2em 0.2em; background: #bcd5f0 url("images/buttonEnabled.png") repeat-x top left;}.soria .dijitButtonText {text-align: center; padding: 0 0.3em;}.soria .dijitInputField {padding: 0;}.soria .dijitArrowButton {color: #111;}.soria .dijitComboButton .dijitDownArrowButton {padding-right:4px;}.soria .dijitTextBoxReadOnly,.soria .dijitTextBoxReadOnly .dijitButtonNode,.soria .dijitButtonDisabled .dijitButtonNode,.soria .dijitToggleButtonDisabled .dijitButtonNode,.soria .dijitDropDownButtonDisabled .dijitButtonNode,.soria .dijitComboButtonDisabled .dijitButtonNode,.soria .dijitTextBoxDisabled,.soria .dijitTextBoxDisabled .dijitButtonNode {border-color: #b9bbdd #b9bbdd #b9bbdd #b9bbdd; background:#c3d3e5 url("images/buttonDisabled.png") top repeat-x; opacity: 0.60;}.dj_ie6 .soria .dijitReadOnly input,.dj_ie7 .soria .dijitReadOnly input,.dj_ie6 .soria .dijitComboButtonDisabled .dijitButtonText,.dj_ie7 .soria .dijitComboButtonDisabled .dijitButtonText {color: #aaa;}.soria .dijitButtonHover .dijitButtonNode,.soria .dijitButtonNodeHover,.soria .dijitToggleButtonHover .dijitButtonNode,.soria .dijitDropDownButtonHover .dijitButtonNode,.soria .dijitButtonContentsHover,.soria .dijitUpArrowButtonHover,.soria .dijitDownArrowButtonHover {color:#243C5F; background:#acc5e2 url("images/buttonHover.png") repeat-x top left;}.soria .dijitButtonActive .dijitButtonNode,.soria .dijitToggleButtonActive .dijitButtonNode,.soria .dijitDropDownButtonActive .dijitButtonNode,.soria .dijitComboButtonActive .dijitButtonContents,.soria .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {border-color:#657c9c; background: #91b4e5 url("images/buttonActive.png") top left repeat-x;}.soria .dijitUpArrowButtonActive,.soria .dijitDownArrowButtonActive {background: #91b4e5 url("images/buttonActive.png") top left repeat-x;}.soria .dijitArrowButtonInner {background-image: url("images/spriteArrows.png"); background-repeat: no-repeat; background-position: 0 center; width: 11px; height: 11px;}.soria .dijitComboBox .dijitArrowButtonInner {background-position: 0 center;}.soria .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -11px center;}.soria .dijitUpArrowButton .dijitArrowButtonInner {background-position: -22px center;}.soria .dijitRightArrowButton .dijitArrowButtonInner {background-position: -33px center;}.dj_ie6 .soria .dijitArrowButtonInner {background-image: url("images/spriteArrows.gif");}.dj_ie .soria .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner {margin-top: 1px;}.soria .dijitSpinnerButtonContainer {width: auto; padding: 0;}.soria .dijitSpinner .dijitArrowButton {width: 15px;}.soria .dijitSpinner .dijitSpinnerButtonInner {width: 15px;}.soria .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding: 0;}.soria .dijitToggleButton .dijitCheckBox,.soria .dijitToggleButton .dijitCheckBoxIcon {background-image: url("images/spriteCheckbox.gif");}.soria .dijitCheckBox,.soria .dijitCheckBoxIcon {background-image: url("images/spriteCheckbox.gif"); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0; padding: 0;}.soria .dijitCheckBox,.soria .dijitToggleButton .dijitCheckBoxIcon {background-position: -16px;}.soria .dijitCheckBoxChecked,.soria .dijitToggleButtonChecked .dijitCheckBoxIcon {background-position: 0;}.soria .dijitCheckBoxDisabled {background-position: -48px;}.soria .dijitCheckBoxCheckedDisabled {background-position: -32px;}.soria .dijitCheckBoxHover {background-position: -80px;}.soria .dijitCheckBoxCheckedHover {background-position: -64px;}.soria .dijitToggleButton .dijitRadio,.soria .dijitToggleButton .dijitRadioIcon {background-image: url("images/spriteRadio.gif");}.soria .dijitRadio,.soria .dijitRadioIcon {background-image: url("images/spriteRadio.gif"); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0; padding: 0;}.soria .dijitRadio,.soria .dijitToggleButton .dijitRadioIcon {background-position: -16px;}.soria .dijitRadioChecked,.soria .dijitToggleButtonChecked .dijitRadioIcon {background-position: 0;}.soria .dijitRadioDisabled {background-position: -48px;}.soria .dijitRadioCheckedDisabled {background-position: -32px;}.soria .dijitRadioHover {background-position: -80px;}.soria .dijitRadioCheckedHover {background-position: -64px;}.soria .dijitSliderProgressBarH {border-color: #b1badf; background: #c0c2c5 url("images/sliderFull.png") repeat-x top left;}.soria .dijitSliderProgressBarV {border-color: #b1badf; background: #c0c2c5 url("images/sliderFullVertical.png") repeat-y bottom left;}.soria .dijitSliderFocused .dijitSliderProgressBarH,.soria .dijitSliderFocused .dijitSliderLeftBumper {background-image:url("images/sliderFullFocus.png");}.soria .dijitSliderFocused .dijitSliderProgressBarV,.soria .dijitSliderFocused .dijitSliderBottomBumper {background-image:url("images/sliderFullVerticalFocus.png");}.soria .dijitSliderRemainingBarV {border-color: #b4b4b4; background: #dcdcdc url("images/sliderEmptyVertical.png") repeat-y bottom left;}.soria .dijitSliderRemainingBarH {border-color: #b4b4b4; background: #dcdcdc url("images/sliderEmpty.png") repeat-x top left;}.soria .dijitSliderBar {border-style: solid; outline:1px;}.soria .dijitSliderFocused .dijitSliderBar {border-color:#8ba0bd;}.soria .dijitSliderImageHandleH {border:0; width:15px; height:18px; background:url("images/preciseSliderThumb.png") no-repeat center top;}.soria .dijitSliderFocused .dijitSliderImageHandleH {background-image:url("images/preciseSliderThumbFocus.png"); #background-image:url("images/preciseSliderThumbFocus.gif");}.dj_ie6 .soria .dijitSliderImageHandleH {background-image:url("images/preciseSliderThumb.gif");}.soria .dijitSliderLeftBumper {border-left-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("images/sliderFull.png") repeat-x top left;}.soria .dijitSliderRightBumper {background: #dcdcdc url("images/sliderEmpty.png") repeat-x top left; border-color: #b4b4b4; border-right-width: 1px;}.soria .dijitSliderImageHandleV {border:0; width:20px; height:15px; background:url("images/sliderThumb.png") no-repeat center center; #background:url("images/sliderThumb.gif") no-repeat center center;}.soria .dijitSliderFocused .dijitSliderImageHandleV {background-image:url("images/sliderThumbFocus.png"); #background-image:url("images/sliderThumbFocus.gif");}.soria .dijitSliderBottomBumper {border-bottom-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("images/sliderFullVertical.png") repeat-y bottom left;}.soria .dijitSliderTopBumper {background: #dcdcdc url("images/sliderEmptyVertical.png") repeat-y top left; border-color: #b4b4b4; border-top-width: 1px;}.soria .dijitSliderIncrementIconH,.soria .dijitSliderIncrementIconV {background:url("images/spriteRoundedIconsSmall.png") no-repeat -45px top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat -45px top; width:15px; height:15px;}.soria .dijitSliderIncrementIconH {background:url("images/spriteRoundedIconsSmall.png") no-repeat -30px top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat -30px top;}.soria .dijitSliderDecrementIconH,.soria .dijitSliderDecrementIconV {width:15px; height:15px; background:url("images/spriteRoundedIconsSmall.png") no-repeat -15px top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat -15px top;}.soria .dijitSliderDecrementIconH {background:url("images/spriteRoundedIconsSmall.png") no-repeat 0 top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat 0 top;}.soria .dijitSliderButtonInner {visibility:hidden;}.soria .dijitSliderReadOnly *,.soria .dijitSliderDisabled * {border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; color: #bdbdbd;}.soria .dijitSliderReadOnly .dijitSliderDecrementIconH,.soria .dijitSliderDisabled .dijitSliderDecrementIconH {background-position: 0 -15px;}.soria .dijitSliderReadOnly .dijitSliderIncrementIconH,.soria .dijitSliderDisabled .dijitSliderIncrementIconH {background-position: -30px -15px;}.soria .dijitSliderReadOnly .dijitSliderDecrementIconV,.soria .dijitSliderDisabled .dijitSliderDecrementIconV {background-position: -15px -15px;}.soria .dijitSliderReadOnly .dijitSliderIncrementIconV,.soria .dijitSliderDisabled .dijitSliderIncrementIconV {background-position: -45px -15px;}.soria .dijitSelectError .dijitButtonContents,.soria .dijitSelectHover .dijitArrowButton,.soria .dijitSelectActive .dijitArrowButton,.soria .dijitSelectOpened .dijitArrowButton,.soria .dijitSelectDisabled .dijitArrowButton,.soria .dijitSelectReadOnly .dijitArrowButton {background: transparent none;}.soria .dijitSelect .dijitArrowButton {background: #bcd5f0 url("images/buttonEnabled.png") repeat-x top left; border-width: 0;}.soria .dijitSelectDisabled,.soria .dijitSelectDisabled TD {border-color: #b9bbdd !important; background:#c3d3e5 url("images/buttonDisabled.png") top repeat-x;}.dj_ie .soria .dijitSelectDisabled TD * {filter: gray() alpha(opacity=50);}.soria .dijitSelectHover,.soria .dijitSelectHover TD {border-color:#a5beda #5c7590 #5c7590 #a5beda !important; color:#000; background:#acc5e2 url("images/buttonHover.png") repeat-x top left;}.soria .dijitSelectActive,.soria .dijitSelectOpened,.soria .dijitSelectActive TD,.soria .dijitSelectOpened TD {border-color:#657c9c !important; background: #91b4e5 url("images/buttonActive.png") top left repeat-x;}.soria .dijitSelectMenu td {padding: 0;}.soria .dijitSelectMenu .dijitMenuItemLabel,.soria .dijitSelectMenu .dijitMenuArrowCell {padding: 0.1em 0.2em;}.soria .dijitTreeNode {background : url("images/treeI.gif") no-repeat; background-position : top left; background-repeat : repeat-y; zoom: 1;}.soria .dijitTreeRowHover {background-image: url("images/treeHover.png"); background-repeat: repeat; background-color: transparent !important;}.soria .dijitTreeIsLast {background: url("images/treeI_half.gif") no-repeat;}.soria .dijitTreeLabel {font-weight: normal; margin-left: 3px;}.soria .dijitTreeIsRoot {margin-left: 0; background-image: none;}.soria .dijitTreeExpando {width: 18px; height: 18px;}.soria .dijitTreeRow {padding-bottom: 2px;}.soria .dijitTreeContent {min-height: 18px; min-width: 18px; padding-left:1px;}.soria .dijitTreeRowSelected .dijitTreeLabel{background:#b8cbec;}.soria .dijitTreeExpandoOpened {background: url("images/spriteTree.gif") no-repeat -18px top;}.soria .dijitTreeExpandoClosed {background-image: url("images/spriteTree.gif");}.soria .dijitTreeExpandoLeaf {background: url("images/spriteTree.gif") no-repeat -36px top;}.soria .dijitTreeExpandoLoading {background-image: url("images/treeExpand_loading.gif");}.soria .dijitTreeIcon {width: 16px; height: 16px;}.soria .dijitFolderOpened {background: url("images/spriteDivIcons.gif") no-repeat -16px top;}.soria .dijitFolderClosed {background: url("images/spriteDivIcons.gif") no-repeat top left;}.soria .dijitLeaf {background: url("images/spriteDivIcons.gif") no-repeat -32px top;}.soria .dijitTreeNode .dojoDndItemBefore,.soria .dijitTreeNode .dojoDndItemAfter {border-bottom: none; border-top: none;}.soria .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {border-top: 2px solid #369;}.soria .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {border-bottom: 2px solid #369;}.soria .dijitProgressBar {margin:2px 0 2px 0;}.soria .dijitProgressBarEmpty{background:#fff url("images/progressBarEmpty.png") repeat-x center center; border-color: #8ba0bd;}.soria .dijitProgressBarTile{background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center;}.soria .dijitProgressBarFull {border-right:1px solid #8ba0bd;}.soria .dijitProgressBarLabel {color:#293a4b;}.soria .dijitProgressBarIndeterminate .dijitProgressBarTile {background:#cad2de url("images/progressBarAnim.gif") repeat-x center center;}.soria .dijitTitlePaneTitle {background: #cccccc; background:#fff url("images/titleBar.png") repeat-x top left; border:1px solid #bfbfbf; padding:3px 4px; font-size: 0.9em; font-weight: bold; color: #6d6d6d;}.soria .dijitTitlePaneTitleHover {background: #f9f9f9 url("images/accordionItemActive.png") top repeat-x;}.soria .dijitTitlePaneTitle * {vertical-align: middle;}.soria .dijitTitlePane .dijitOpen .dijitArrowNode,.soria .dijitTitlePane .dijitClosed .dijitArrowNode {width:15px; height:15px;}.soria .dijitTitlePaneTextNode {color: #243C5F;}.soria .dijitTitlePane .dijitClosed .dijitArrowNode {background: url("images/spriteRoundedIconsSmall.png") no-repeat -30px top;}.dj_ie6 .soria .dijitTitlePane .dijitClosed .dijitArrowNode {background:url("images/spriteRoundedIconsSmall.gif") no-repeat -30px top;}.soria .dijitTitlePane .dijitOpen .dijitArrowNode {background:url("images/spriteRoundedIconsSmall.png") no-repeat -15px top;}.dj_ie6 .soria .dijitTitlePane .dijitOpen .dijitArrowNode {background:url("images/spriteRoundedIconsSmall.gif") no-repeat -15px top;}.soria .dijitTitlePaneContentOuter {background: #ffffff; border: 1px solid #bfbfbf; border-top: 0;}.soria .dijitTitlePaneContentInner {padding:10px;}.soria .dijitTitlePaneTextNode {margin-left: 4px; margin-right: 4px;}.soria .dijitCalendarIncrementControl {width:15px; height:15px; background-image: url("images/spriteRoundedIconsSmall.png"); background-repeat: no-repeat;}.dj_ie6 .soria .dijitCalendarIncrementControl {font-size:.1em; background-image: url("images/spriteRoundedIconsSmall.gif");}.soria .dijitA11ySideArrow {display: none;}.soria .dijitCalendarDecrease {background-position: top left;}.soria .dijitCalendarIncrease {background-position: -30px top;}.soria table.dijitCalendarContainer {font-size: 100%; border-spacing: 0; border-collapse: separate; border: 1px solid #b1badf; margin: 0;}.soria .dijitCalendarMonthContainer th {background:#bed7f0 url("images/titleBar.png") repeat-x top; padding-top:.3em; padding-bottom:.2em; text-align:center;}.dj_ie6 .soria .dijitCalendarMonthContainer th {padding-top:.2em; padding-bottom:.1em;}.soria .dijitCalendarDayLabelTemplate {background:#bed7f0; font-weight:normal; padding-top:.15em; padding-bottom:.2em; border-bottom: 1px solid #b1badf; color:#293a4b; text-align:center;}.soria .dijitCalendarBodyContainer {border-bottom: 1px solid #eeeeee;}.soria .dijitCalendarMonthLabel {color:#293a4b; font-weight: bold; padding: 0 4px;}.soria .dijitCalendarDateTemplate {font-size: 0.9em; font-weight: bold; text-align: center; padding: 0.3em 0.3em 0.05em 0.3em; letter-spacing: 1px; background-color: #fff; border:#fff solid 1px !important;}.dj_ie .soria .dijitCalendarDateTemplate {padding: 0.1em .33em 0.02em .33em;}.soria .dijitCalendarPreviousMonth,.soria .dijitCalendarNextMonth {color:#999999; background-color:#fdfdfd !important; border:#fdfdfd solid 1px !important;}.soria .dijitCalendarCurrentMonth {}.soria .dijitCalendarDisabledDate {text-decoration:line-through !important;}.soria .dijitCalendarCurrentDate {text-decoration:underline; font-weight:bold;}.soria .dijitCalendarSelectedDate {background-color:#b9cbf1 !important; color:black !important; border:#4b5aaa solid 1px !important;}.soria .dijitCalendarYearContainer {background:white url("images/titleBar.png") repeat-x top;}.soria .dijitCalendarYearLabel {margin:0; padding:0.4em 0 0.25em 0; text-align:center; font-size: 1.17em;}.soria .dijitCalendarSelectedYear {font-weight:bolder; color:black; padding:0.2em; padding-bottom:0.1em; background-color:#b9cbf1 !important; border:#4b5aaa solid 1px !important;}.soria .dijitCalendarNextYear,.soria .dijitCalendarPreviousYear {color:black !important; font-weight:normal;}.soria .dijitCalendar .dijitDropDownButton {margin: 0;}.soria .dijitCalendar .dijitButtonText {padding: 0;}.soria .dijitCalendar .dijitDropDownButton .dijitButtonNode {background-color: transparent; background-image: none; padding: 0;}.soria .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover {background-color: #d9e6f9; color: #243C5F;}.soria .dijitTimePickerTick,.soria .dijitTimePickerMarker {border-color: #b1badf;}.soria .dijitTimePickerTick {color:white;}.soria .dijitTimePickerMarker {background:#bed7f0 url("images/titleBar.png") repeat-x top; color:#293a4b; font-weight: bold;}.soria .dijitTimePickerItemSelected {color: black; background: #b9cbf1 none;}.soria .dijitTimePickerItemHover {background: #60a1ea none; color:white;}.soria .dijitTimePickerItemHover,.soria .dijitTimePickerItemSelected {position: relative; z-index: 10;}.soria .dijitTimePickerTick .dijitTimePickerItemInner {font-size:0.4em;}.soria .dijitTimePickerItemHover .dijitTimePickerItemInner,.soria .dijitTimePickerItemSelected .dijitTimePickerItemInner {font-size:1em;}.soria .dijitTimePickerMarkerHover {border-top: 1px solid #94b9ef;}.soria .dijitTimePickerTickHover,.soria .dijitTimePickerTickSelected {margin-top:-0.3em; margin-bottom:-0.3em; border-bottom: none;}.soria .dijitToolbar {border-bottom: 1px solid #ccc; background:#eaeaea url("images/titleBar.png") repeat-x top left;}.dj_ie6 .soria .dijitToolbar {height: 10px;}.soria .dijitToolbar .dijitButtonNode,.soria .dijitToolbar .dijitComboButton .dijitButtonContents,.soria .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; margin: 0; padding: 0; border: none; font-size: 12px;}.soria .dijitToolbar .dijitButton,.soria .dijitToolbar .dijitToggleButton,.soria .dijitToolbar .dijitDropDownButton,.soria .dijitToolbar .dijitComboButton .dijitButtonContents,.soria .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; padding: 1px;}.soria .dijitToolbar .dijitButtonChecked,.soria .dijitToolbar .dijitToggleButtonChecked {background-color:#d8e5f8; border:1px solid #316ac5; padding: 0;}.soria .dijitToolbar .dijitButtonCheckedHover,.soria .dijitToolbar .dijitToggleButtonCheckedHover {background-color:#9abbea; border:1px solid #316ac5; padding: 0;}.soria .dijitToolbar .dijitButtonHover,.soria .dijitToolbar .dijitToggleButtonHover,.soria .dijitToolbar .dijitDropDownButtonHover,.soria .dijitToolbar .dijitComboButton .dijitButtonContentsHover,.soria .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover {border: 1px solid #316ac5; padding: 0; background-color:#9abbea;}.soria .dijitToolbar label {padding: 3px 3px 0 6px;}.dj_ie .soria .dijitToolbar .dijitComboButton .dijitButtonContentsFocused,.dj_ie .soria .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused {border: 1px #777 dotted !important; padding: 0;}.soria .dijitDialog {background: #eee; border: 1px solid #cbcbcb; -webkit-box-shadow: 0 5px 10px #adadad; padding: 0;}.soria .dijitDialog .dijitDialogTitle {font-weight: bold; padding: 0 4px; font-size: 0.9em; color: #243C5F;}.soria .dijitDialog .dijitDialogPaneContent {background: #ffffff; border-top: 1px solid #b1badf; padding:10px;}.soria .dijitDialogTitleBar {background: #fafafa url("images/titleBar.png") repeat-x top left; padding: 5px 6px 3px 6px; outline:0;}.soria .dijitDialogCloseIcon {background-image: url("images/spriteRoundedIconsSmallBl.png"); background-repeat: no-repeat; background-position: -60px 0; position: absolute; vertical-align: middle; right: 6px; top: 4px; height: 15px; width: 15px;}.dj_ie6 .soria .dijitDialogCloseIcon {background-image: url("images/spriteRoundedIconsSmallBl.gif");}.soria .dijitDialogCloseIconHover {background-position: -60px -15px;}.soria .dijitTooltip,.soria .dijitTooltipDialog {background: transparent;}.dijitTooltipBelow {padding-top: 10px;}.dijitTooltipAbove {padding-bottom: 10px;}.soria .dijitTooltipContainer {background-color: #fff; border:1px solid #cbcbcb; padding:0.45em;}.soria .dijitTooltipConnector {border:0; z-index: 2;}.soria .dijitTooltipABRight .dijitTooltipConnector {left: auto !important; right: 6px;}.soria .dijitTooltipBelow .dijitTooltipConnector {top: 0; left: 6px; background:url("images/tooltipConnectorUp.png") no-repeat top left; width:17px; height:11px;}.dj_ie .soria .dijitTooltipBelow .dijitTooltipConnector {background-image: url("images/tooltipConnectorUp.gif");}.soria .dijitTooltipAbove .dijitTooltipConnector {bottom: 0; left: 6px; background:url("images/tooltipConnectorDown.png") no-repeat top left; width:17px; height:11px;}.dj_ie .soria .dijitTooltipAbove .dijitTooltipConnector {background-image: url("images/tooltipConnectorDown.gif");}.dj_ie .soria .dijitTooltipAbove .dijitTooltipConnector {background-image: url("images/tooltipConnectorDown.gif");}.dj_ie6 .soria .dijitTooltipAbove .dijitTooltipConnector {bottom: -5px;}.soria .dijitTooltipLeft {padding-right: 10px;}.soria .dijitTooltipLeft .dijitTooltipConnector {right: 0; background:url("images/tooltipConnectorRight.png") no-repeat top left; width:11px; height:17px;}.dj_ie .soria .dijitTooltipLeft .dijitTooltipConnector {background-image: url("images/tooltipConnectorRight.gif");}.soria .dijitTooltipRight {padding-left: 10px;}.soria .dijitTooltipRight .dijitTooltipConnector {left: 0; background:url("images/tooltipConnectorLeft.png") no-repeat top left; width:11px; height:17px;}.dj_ie .soria .dijitTooltipRight .dijitTooltipConnector {background-image: url("images/tooltipConnectorLeft.gif");}.soria .dijitMenu,.soria .dijitMenuBar {border: 1px solid #cbcbcb; margin: 0; padding: 0; background-color: #fff;}.soria .dijitBorderContainer .dijitMenuBar {border:1px solid #B1BADF;}.soria .dijitMenuItem {font-family: sans-serif; margin: 0; color: #243C5F;}.soria .dijitMenuBar .dijitMenuItem {padding: 4px 5px;}.soria .dijitMenuPreviousButton, .soria .dijitMenuNextButton {font-style: italic;}.soria .dijitMenuItem TD {padding:1px;}.soria .dijitMenuPassive .dijitMenuItemHover,.soria .dijitComboBoxMenu .dijitMenuItemHover,.soria .dijitMenuItemSelected {background-color: #d9e6f9; color: #243C5F;}.soria .dijitMenuItemIcon {width: 15px; height: 15px;}.soria .dijitMenuExpand {width:15px; height:15px; background-image: url("images/spriteRoundedIconsSmall.png"); background-position: -30px top;}.dj_ie6 .soria .dijitMenuExpand {background-image: url("images/spriteRoundedIconsSmall.gif");}.soria .dijitMenuSeparator {height: 1px;}.soria .dijitMenuSeparatorTop {border-bottom: 1px solid #fff;}.soria .dijitMenuSeparatorBottom {border-top: 1px solid #8ba0bd;}.soria .dijitCheckedMenuItemIconChar {display: none;}.soria .dijitCheckedMenuItemIcon {background-image: url("images/spriteCheckbox.gif"); background-position: -80px;}.soria .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: -64px;}.soria .dijitToolbar .dijitToolbarSeparator {background: url("../../icons/images/editorIconsEnabled.png");}.soria .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled.png"); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.soria .dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled.png");}.dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled.png"); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled.png");}.dijitEditorIconSep {background-position: 0;}.dijitEditorIconSave {background-position: -18px;}.dijitEditorIconPrint {background-position: -36px;}.dijitEditorIconCut {background-position: -54px;}.dijitEditorIconCopy {background-position: -72px;}.dijitEditorIconPaste {background-position: -90px;}.dijitEditorIconDelete {background-position: -108px;}.dijitEditorIconCancel {background-position: -126px;}.dijitEditorIconUndo {background-position: -144px;}.dijitEditorIconRedo {background-position: -162px;}.dijitEditorIconSelectAll {background-position: -180px;}.dijitEditorIconBold {background-position: -198px;}.dijitEditorIconItalic {background-position: -216px;}.dijitEditorIconUnderline {background-position: -234px;}.dijitEditorIconStrikethrough {background-position: -252px;}.dijitEditorIconSuperscript {background-position: -270px;}.dijitEditorIconSubscript {background-position: -288px;}.dijitEditorIconJustifyCenter {background-position: -306px;}.dijitEditorIconJustifyFull {background-position: -324px;}.dijitEditorIconJustifyLeft {background-position: -342px;}.dijitEditorIconJustifyRight {background-position: -360px;}.dijitEditorIconIndent {background-position: -378px;}.dijitEditorIconOutdent {background-position: -396px;}.dijitEditorIconListBulletIndent {background-position: -414px;}.dijitEditorIconListBulletOutdent {background-position: -432px;}.dijitEditorIconListNumIndent {background-position: -450px;}.dijitEditorIconListNumOutdent {background-position: -468px;}.dijitEditorIconTabIndent {background-position: -486px;}.dijitEditorIconLeftToRight {background-position: -504px;}.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir {background-position: -522px;}.dijitEditorIconBackColor {background-position: -540px;}.dijitEditorIconForeColor {background-position: -558px;}.dijitEditorIconHiliteColor {background-position: -576px;}.dijitEditorIconNewPage {background-position: -594px;}.dijitEditorIconInsertImage {background-position: -612px;}.dijitEditorIconInsertTable {background-position: -630px;}.dijitEditorIconSpace {background-position: -648px;}.dijitEditorIconInsertHorizontalRule {background-position: -666px;}.dijitEditorIconInsertOrderedList {background-position: -684px;}.dijitEditorIconInsertUnorderedList {background-position: -702px;}.dijitEditorIconCreateLink {background-position: -720px;}.dijitEditorIconUnlink {background-position: -738px;}.dijitEditorIconViewSource {background-position: -756px;}.dijitEditorIconRemoveFormat {background-position: -774px;}.dijitEditorIconFullScreen {background-position: -792px;}.dijitEditorIconWikiword {background-position: -810px;} .dijitColorPalette {border:1px solid #cbcbcb; background:#fff; -moz-border-radius: 0 !important;} \ No newline at end of file
diff --git a/lib/dijit/themes/soria/soria_rtl.css b/lib/dijit/themes/soria/soria_rtl.css
index b804011a4..32d184ca6 100644
--- a/lib/dijit/themes/soria/soria_rtl.css
+++ b/lib/dijit/themes/soria/soria_rtl.css
@@ -1,29 +1 @@
-/*
- Adds cosmetic styling to Dijit. Users may swap with a custom theme CSS file.
-
- NOTES:
- ---
- Dialog.css contains css classes for both Dialog and Tooltip!
- This because currently a dijit.TooltipDialog exist. Until this is resolved
- you need to include Dialog.css for both dijits
- ---
- Toolbar.css contains classes also used in Editor. Until this is resolved
- you need to include Toolbar.css for both Toolbar and Editor
- ---
- Button.css contains classes for combobox,
-
-*/
-
-@import url("../dijit_rtl.css");
-@import url("layout/TabContainer_rtl.css");
-@import url("layout/AccordionContainer_rtl.css");
-@import url("form/Slider_rtl.css");
-@import url("form/Button_rtl.css");
-@import url("Tree_rtl.css");
-@import url("TitlePane_rtl.css");
-@import url("Calendar_rtl.css");
-@import url("TimePicker_rtl.css");
-@import url("Dialog_rtl.css");
-@import url("Menu_rtl.css");
-@import url("Editor_rtl.css");
-@import url("../../icons/editorIcons_rtl.css"); /*sprite for editor icons to be used by all themes*/ \ No newline at end of file
+.dijitRtl .dijitPlaceHolder {left: auto; right: 0;}.dijitMenuItemRtl {text-align: right;}.dj_iequirks .dijitComboButtonRtl button {float:left;}.dj_ie .dijitTextBoxRtl .dijitInputContainer {clear: right;}.dijitTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitComboBoxRtl .dijitArrowButtonContainer {border-right-width: 1px !important; border-left-width: 0 !important;}.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton {right: 0; left: auto;}.dijitSelectRtl .dijitButtonText {float: right;}.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitValidationTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitArrowButtonContainer {float: left;}div.dijitNumberTextBoxRtl {text-align: right;}.dijitCalendarRtl .dijitCalendarNextYear {margin:0 0.55em 0 0;}.dijitCalendarRtl .dijitCalendarPreviousYear {margin:0 0 0 0.55em;}.dijitSliderRtl .dijitSliderImageHandleV {left:auto;}.dijitSliderRtl .dijitSliderImageHandleH {left:-50%;}.dijitSliderRtl .dijitSliderMoveableH {right:auto; left:0;}.dijitSliderRtl .dijitRuleContainerV {float:right;}.dj_ie .dijitSliderRtl .dijitRuleContainerV {text-align:right;}.dj_ie .dijitSliderRtl .dijitRuleLabelV {text-align:left;}.dj_ie .dijitSliderRtl .dijitRuleLabelH {zoom:1;}.dijitSliderRtl .dijitSliderProgressBarH {float:right; right:0; left:auto;}.dijitRtl .dijitContentPaneLoading .dijitIconLoading,.dijitRtl .dijitContentPaneError .dijitIconError {margin-right: 0; margin-left: 9px;}.dijitTabControllerRtl .nowrapTabStrip {text-align: right;}.dijitTabRtl .dijitTabCloseButton {margin-left: 0; margin-right: 1em;}.dj_ie6 .dijitTabRtl .tabLabel,.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie6 .dijitTabContainerLeft-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerLeft-tabs .dijitTabRtl {zoom: 1;}.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl {left: 0;}.dj_ie6 .dijitTabContainerRightRtl .dijitTabContainerRight-tabs,.dj_ie6 .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs {width: 1%;}.dj_ie .dijitTimePickerRtl .dijitTimePickerItem {width:100%;}.dijitColorPaletteRtl .dijitColorPaletteUnder {left: auto; right: 0;}.dijitSelectRtl .dijitButtonContents {border-style: none none none solid; text-align: right;}.dijitRtl .dojoDndHorizontal .dojoDndItemBefore {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dijitRtl .dojoDndHorizontal .dojoDndItemAfter {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.dijitRtl .soria .dijitTab {margin-right:0; margin-left:2px;}.dijitRtl .soria .dijitTabContainer .tabStripButton {margin-left: 0;}.dijitRtl .soria .dijitTabContainerTopStrip,.dijitRtl .soria .dijitTabContainerBottomStrip,.dijitRtl .soria .dijitTabContainerTop-tabs,.dijitRtl .soria .dijitTabContainerBottom-tabs {padding-left: 0; padding-right: 3px;}.dijitRtl .soria .dijitTabInnerDiv {padding-left: 3px; padding-right: 4px;}.dijitRtl .soria .dijitTabPaneWrapper {#zoom: 1;}.dj_ie-rtl .soria .dijitTabContainerLeft-tabs {margin-left: 0 !important;}.dj_ie-rtl .soria .dijitTabContainerRight-tabs {margin-right: 0 !important;}.dijitRtl .soria .dijitTabContainerLeft-tabs .dijitTab,.dijitRtl .soria .dijitTabContainerRight-tabs .dijitTab {margin-left:0;}.dj_ie-rtl .soria .dijitTab .dijitTabInnerDiv{width : 1%;}.dijitRtl .soria .dijitAccordionArrow {background-position: 0 top;}.dijitRtl .soria .dijitAccordionTitleSelected .dijitAccordionArrow {background-position: -15px top;}.dijitRtl .soria .dijitSliderProgressBarH,.dijitRtl .soria .dijitSliderRemainingBarH,.dijitRtl .soria .dijitSliderLeftBumper,.dijitRtl .soria .dijitSliderRightBumper,.dijitRtl .soria .dijitSliderTopBumper {background-position: top right;}.dijitRtl .soria .dijitSliderProgressBarV,.dijitRtl .soria .dijitSliderRemainingBarV,.dijitRtl .soria .dijitSliderBottomBumper {background-position: bottom right;}.dijitRtl .soria .dijitSliderLeftBumper {border-left-width: 0; border-right-width: 1px;}.dijitRtl .soria .dijitSliderRightBumper {border-left-width: 1px; border-right-width: 0;}.dijitRtl .soria .dijitSliderIncrementIconH {background:url("images/spriteRoundedIconsSmall.png") no-repeat left top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat left top;}.dijitRtl .soria .dijitSliderDecrementIconH {background:url("images/spriteRoundedIconsSmall.png") no-repeat -30px top; #background:url("images/spriteRoundedIconsSmall.gif") no-repeat -30px top;}.soria .dijitComboBoxRtl .dijitButtonNode {border-width: 0 0 0 1px;}.dijitRtl .soria .dijitTreeNode,.dijitRtl .soria .dijitTreeExpandoLeaf {background-image: none;}.dijitRtl .soria .dijitTreeContent {padding-left: 0; padding-right: 1px;}.dijitRtl .soria .dijitTreeExpandoOpened {background: url("images/spriteTree_rtl.gif") no-repeat -18px top;}.dijitRtl .soria .dijitTreeExpandoClosed {background-image: url("images/spriteTree_rtl.gif");}.dijitRtl .soria .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: 0 top;}.dj_ie6-rtl .soria .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: 0 top;}.dijitRtl .soria .dijitCalendarDecrease {background-position: -30px top;}.dijitRtl .soria .dijitCalendarIncrease {background-position: 0 top;}.dj_ie6-rtl .soria .dijitTimePickerMarkerHover,.dj_ie7-rtl .soria .dijitTimePickerMarkerHover {border-top: 0;}.dijitRtl .soria .dijitDialogTitleBar .dijitDialogCloseIcon {right: auto; left: 5px;}.dijitRtl .soria .dijitMenuItem .dijitMenuItemIcon {padding-left: 3px; padding-right: 0;}.dijitRtl .soria .dijitMenuItem .dijitMenuExpand {background-position: left top;}.dijitRtl .soria .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.dijitRtl .soria .dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled_rtl.png");}.dijitEditorRtl .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.dijitEditorRtlDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled_rtl.png");}.dijitToolbarRtl .dijitToolbarSeparator {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Calendar.css b/lib/dijit/themes/tundra/Calendar.css
index d650d4f57..e3efad236 100644
--- a/lib/dijit/themes/tundra/Calendar.css
+++ b/lib/dijit/themes/tundra/Calendar.css
@@ -1,161 +1 @@
-/* Calendar*/
-
-.tundra .dijitCalendarIncrementControl {
- /* next/prev month buttons */
- width:15px;
- height:15px;
- background-image: url("images/spriteRoundedIconsSmall.png");
- background-repeat: no-repeat
-}
-.dj_ie6 .tundra .dijitCalendarIncrementControl {
- font-size:.1em;
- background-image: url("images/spriteRoundedIconsSmall.gif");
-}
-
-.tundra .dijitA11ySideArrow {
- display: none;
-}
-
-.tundra .dijitCalendarDecrease {
- background-position: top left;
-}
-.tundra .dijitCalendarIncrease {
- background-position: -30px top;
-}
-
-.tundra .dijitCalendarContainer {
- font-size: 100%;
- border-spacing: 0;
- border-collapse: separate;
- border: 1px solid #ccc;
- margin: 0;
-}
-
-.tundra .dijitCalendarMonthContainer th {
- /* month header cell */
- background:#d3d3d3 url("images/titleBar.png") repeat-x top;
- padding-top:.3em;
- padding-bottom:.2em;
- text-align:center;
-}
-.dj_ie6 .tundra .dijitCalendarMonthContainer th {
- padding-top:.2em;
- padding-bottom:.1em;
-}
-
-.tundra .dijitCalendarDayLabelTemplate {
- /* day of week labels */
- background:white url("images/calendarDayLabel.png") repeat-x bottom;
- font-weight:normal;
- padding-top:.15em;
- padding-bottom:0;
- border-top: 1px solid #eeeeee;
- color:#293a4b;
- text-align:center;
-}
-
-.tundra .dijitCalendarBodyContainer {
- border-bottom: 1px solid #eeeeee;
-}
-
-.tundra .dijitCalendarMonthLabel {
- color:#293a4b;
- font-weight: bold;
- padding: 0 4px;
-}
-
-.tundra .dijitCalendarDateTemplate {
- /* style for each day cell */
- font-size: 0.9em;
- font-weight: bold;
- text-align: center;
- padding: 0.3em 0.3em 0.05em 0.3em;
- letter-spacing: 1px;
-}
-
-.dj_ie .tundra .dijitCalendarDateTemplate {
- padding: 0.1em .33em 0.02em .33em;
-}
-
-.tundra .dijitCalendarPreviousMonth,
-.tundra .dijitCalendarNextMonth {
- /* days that are part of the previous or next month */
- color:#999999;
- background-color:#f8f8f8;
-}
-
-.tundra .dijitCalendarCurrentMonth {
- /* days that are part of this month */
- background-color: white;
-}
-
-.tundra .dijitCalendarCurrentDate {
- /* cell for today's date */
- text-decoration:underline;
- font-weight:bold;
-}
-
-.tundra .dijitCalendarHoveredDate {
- background-color: #e2ebf2;
-}
-
-.tundra .dijitCalendarDisabledDate {
- text-decoration: line-through;
- background-color: white; /* override hover effects above, hover and click on disabled date should have no effect */
-}
-
-.tundra .dijitCalendarSelectedDate {
- /* cell for the selected date */
- background-color:#bbc4d0 !important;
- color:black !important;
-}
-.tundra .dijitCalendarYearContainer {
- /* footer of the table that contains the year display/selector */
- background:white url("images/calendarYearLabel.png") repeat-x bottom;
- border-top:1px solid #ccc;
-}
-
-.tundra .dijitCalendarYearLabel {
- /* container for all of 3 year labels */
- margin:0;
- padding:0.4em 0 0.25em 0;
- text-align:center;
- font-size: 1.17em;
-}
-
-.tundra .dijitCalendarSelectedYear {
- /* label for selected year */
- font-weight:bolder;
- color:black;
- padding:0.2em;
- padding-bottom:0.1em;
- background-color:#bbc4d0 !important;
-}
-
-.tundra .dijitCalendarNextYear,
-.tundra .dijitCalendarPreviousYear {
- /* label for next/prev years */
- color:black !important;
- font-weight:normal;
-}
-
-/* Styling for month DropDownButton */
-
-.tundra .dijitCalendar .dijitDropDownButton {
- margin: 0;
-}
-.tundra .dijitCalendar .dijitButtonText {
- padding: 0;
-}
-.tundra .dijitCalendar .dijitDropDownButton .dijitButtonNode {
- background-color: transparent;
- background-image: none;
- padding: 0;
-}
-
-/* Styling for month drop down list */
-
-.tundra .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover {
- background-color: #3559ac;
- color:#fff;
-}
+.tundra .dijitCalendarIncrementControl {width:15px; height:15px; background-image: url("images/spriteRoundedIconsSmall.png"); background-repeat: no-repeat}.dj_ie6 .tundra .dijitCalendarIncrementControl {font-size:.1em; background-image: url("images/spriteRoundedIconsSmall.gif");}.tundra .dijitA11ySideArrow {display: none;}.tundra .dijitCalendarDecrease {background-position: top left;}.tundra .dijitCalendarIncrease {background-position: -30px top;}.tundra .dijitCalendarContainer {font-size: 100%; border-spacing: 0; border-collapse: separate; border: 1px solid #ccc; margin: 0;}.tundra .dijitCalendarMonthContainer th {background:#d3d3d3 url("images/titleBar.png") repeat-x top; padding-top:.3em; padding-bottom:.2em; text-align:center;}.dj_ie6 .tundra .dijitCalendarMonthContainer th {padding-top:.2em; padding-bottom:.1em;}.tundra .dijitCalendarDayLabelTemplate {background:white url("images/calendarDayLabel.png") repeat-x bottom; font-weight:normal; padding-top:.15em; padding-bottom:0; border-top: 1px solid #eeeeee; color:#293a4b; text-align:center;}.tundra .dijitCalendarBodyContainer {border-bottom: 1px solid #eeeeee;}.tundra .dijitCalendarMonthLabel {color:#293a4b; font-weight: bold; padding: 0 4px;}.tundra .dijitCalendarDateTemplate {font-size: 0.9em; font-weight: bold; text-align: center; padding: 0.3em 0.3em 0.05em 0.3em; letter-spacing: 1px;}.dj_ie .tundra .dijitCalendarDateTemplate {padding: 0.1em .33em 0.02em .33em;}.tundra .dijitCalendarPreviousMonth,.tundra .dijitCalendarNextMonth {color:#999999; background-color:#f8f8f8;}.tundra .dijitCalendarCurrentMonth {background-color: white;}.tundra .dijitCalendarCurrentDate {text-decoration:underline; font-weight:bold;}.tundra .dijitCalendarHoveredDate {background-color: #e2ebf2;}.tundra .dijitCalendarDisabledDate {text-decoration: line-through; background-color: white;}.tundra .dijitCalendarSelectedDate {background-color:#bbc4d0 !important; color:black !important;}.tundra .dijitCalendarYearContainer {background:white url("images/calendarYearLabel.png") repeat-x bottom; border-top:1px solid #ccc;}.tundra .dijitCalendarYearLabel {margin:0; padding:0.4em 0 0.25em 0; text-align:center; font-size: 1.17em;}.tundra .dijitCalendarSelectedYear {font-weight:bolder; color:black; padding:0.2em; padding-bottom:0.1em; background-color:#bbc4d0 !important;}.tundra .dijitCalendarNextYear,.tundra .dijitCalendarPreviousYear {color:black !important; font-weight:normal;}.tundra .dijitCalendar .dijitDropDownButton {margin: 0;}.tundra .dijitCalendar .dijitButtonText {padding: 0;}.tundra .dijitCalendar .dijitDropDownButton .dijitButtonNode {background-color: transparent; background-image: none; padding: 0;}.tundra .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover {background-color: #3559ac; color:#fff;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Calendar_rtl.css b/lib/dijit/themes/tundra/Calendar_rtl.css
index fbfe27b5d..94367e9d4 100644
--- a/lib/dijit/themes/tundra/Calendar_rtl.css
+++ b/lib/dijit/themes/tundra/Calendar_rtl.css
@@ -1,9 +1 @@
-/* Calendar */
-
-.tundra .dijitCalendarRtl .dijitCalendarDecrease {
- background-position: -30px top;
-}
-
-.tundra .dijitCalendarRtl .dijitCalendarIncrease {
- background-position: 0 top;
-}
+.tundra .dijitCalendarRtl .dijitCalendarDecrease {background-position: -30px top;}.tundra .dijitCalendarRtl .dijitCalendarIncrease {background-position: 0 top;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/ColorPalette.css b/lib/dijit/themes/tundra/ColorPalette.css
index 38088b845..ba1e4939f 100644
--- a/lib/dijit/themes/tundra/ColorPalette.css
+++ b/lib/dijit/themes/tundra/ColorPalette.css
@@ -1,5 +1 @@
-.dijitColorPalette {
- border:1px solid #7eabcd;
- background:#fff;
- -moz-border-radius: 0 !important;
-} \ No newline at end of file
+.dijitColorPalette {border:1px solid #7eabcd; background:#fff; -moz-border-radius: 0 !important;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Common.css b/lib/dijit/themes/tundra/Common.css
index eb3e341f7..a6b01ee5a 100644
--- a/lib/dijit/themes/tundra/Common.css
+++ b/lib/dijit/themes/tundra/Common.css
@@ -1,34 +1 @@
-/* DnD avatar-specific settings */
-/* For now it uses a default set of rules. Some other DnD classes can be modified as well. */
-.tundra .dojoDndItemBefore {
- border-top: 2px solid #369;
-}
-
-.tundra .dojoDndItemAfter {
- border-bottom: 2px solid #369;
-}
-
-.tundra .dojoDndItemOver {
- cursor:pointer;
-}
-
-.tundra table.dojoDndAvatar { -moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;}
-.tundra .dojoDndAvatar td { border: none; }
-.tundra .dojoDndAvatar tr { border: none; }
-.tundra .dojoDndAvatarHeader td { height: 20px; padding: 0 0 0 21px; }
-.tundra .dojoDndAvatarItem td { padding: 2px;}
-.tundra.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;}
-.tundra.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;}
-.tundra.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;}
-.tundra.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;}
-
-.tundra .dijitIconLoading {
- background:url('images/loading.gif') no-repeat left center;
- width: 24px;
- height: 24px;
-}
-.tundra .dijitIconError {
- background:url('images/warning.png') no-repeat left center;
- width: 16px;
- height: 16px;
-}
+.tundra .dojoDndItemOver {background-image: url(images/treeHover.png);}.tundra .dojoDndItemAnchor,.tundra .dojoDndItemSelected {background-color: #E2EBFE;}.tundra table.dojoDndAvatar {-moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;}.tundra .dojoDndAvatar td {border: none;}.tundra .dojoDndAvatar tr {border: none;}.tundra .dojoDndAvatarHeader td {height: 20px; padding: 0 0 0 21px;}.tundra .dojoDndAvatarItem td {padding: 2px;}.tundra.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;}.tundra.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;}.tundra.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;}.tundra.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;}.tundra .dijitIconLoading {background:url('images/loading.gif') no-repeat left center; width: 24px; height: 24px;}.tundra .dijitIconError {background:url('images/warning.png') no-repeat left center; width: 16px; height: 16px;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Dialog.css b/lib/dijit/themes/tundra/Dialog.css
index b346f6267..97f5c0302 100644
--- a/lib/dijit/themes/tundra/Dialog.css
+++ b/lib/dijit/themes/tundra/Dialog.css
@@ -1,152 +1 @@
-/* Dialog and Tooltip/TooltipDialog */
-
-.tundra .dijitDialog {
- background: #fff;
- border: 1px solid #7eabcd;
- padding: 0;
- -webkit-box-shadow: 0 5px 10px #adadad;
-}
-
-.tundra .dijitDialogPaneContent {
- background: #fff;
- border-top: 1px solid #d3d3d3;
- padding:10px;
-
-}
-
-.tundra .dijitDialogTitleBar {
- /* outer container for the titlebar of the dialog */
- background: #fafafa url("images/titleBar.png") repeat-x top left;
- padding: 5px 6px 3px 6px;
- outline:0; /* remove this line if keyboard focus on dialog startup is an issue. tab still takes you to first focusable element */
-}
-
-.tundra .dijitDialogTitle {
- /* typography and styling of the dialog title */
- font-weight: bold;
- padding: 0 4px;
-}
-
-.tundra .dijitDialogCloseIcon {
- /* the default close icon for the dialog */
- /* background : url("images/spriteRoundedIconsSmall.png") no-repeat right top; */
- background: url("images/tabClose.png") no-repeat right top;
- position: absolute;
- vertical-align: middle;
- right: 6px;
- top: 4px;
- height: 15px;
- width: 15px;
-}
-.dj_ie6 .tundra .dijitDialogCloseIcon {
- background : url("images/tabClose.gif") no-repeat right top;
-}
-
-.tundra .dijitDialogCloseIconHover {
- background: url("images/tabCloseHover.png") no-repeat right top;
-}
-.dj_ie6 .tundra .dijitDialogCloseIconHover {
- background : url("images/tabCloseHover.gif") no-repeat right top;
-}
-
-/* Tooltip and TooltipDialog */
-
-.tundra .dijitTooltip,
-.tundra .dijitTooltipDialog {
- /* the outermost dom node, holding the connector and container */
- background: transparent; /* make the area on the sides of the arrow transparent */
-}
-
-.dijitTooltipBelow {
- /* leave room for arrow above content */
- padding-top: 13px;
-}
-
-.dijitTooltipAbove {
- /* leave room for arrow below content */
- padding-bottom: 13px;
-}
-
-.tundra .dijitTooltipContainer {
- /*
- The part with the text.
- */
- background: #ffffff url("images/popupMenuBg.gif") repeat-x bottom left;
- border: 1px solid #7eabcd;
- padding: 0.45em;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
-}
-
-.tundra .dijitTooltipConnector {
- /* the arrow piece */
- border:0;
- z-index: 2;
-}
-.tundra .dijitTooltipABRight .dijitTooltipConnector {
- /* above or below tooltip, but the arrow appears on the right,
- and the right edges of target and tooltip are aligned rather than the left */
- left: auto !important;
- right: 3px;
-}
-
-.tundra .dijitTooltipBelow .dijitTooltipConnector {
- /* the arrow piece for tooltips below an element */
- top: 0;
- left: 3px;
- background:url("images/tooltipConnectorUp.png") no-repeat top left;
- width:16px;
- height:14px;
-}
-
-.dj_ie .tundra .dijitTooltipBelow .dijitTooltipConnector {
- /* use gif for IE7 too, due to png rendering problems on fade-in (see http://trac.dojotoolkit.org/ticket/6555) */
- background-image: url("images/tooltipConnectorUp.gif");
-}
-
-.tundra .dijitTooltipAbove .dijitTooltipConnector {
- /* the arrow piece for tooltips above an element */
- bottom: 0;
- left: 3px;
- background:url("images/tooltipConnectorDown.png") no-repeat top left;
- width:16px;
- height:14px;
-}
-.dj_ie .tundra .dijitTooltipAbove .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorDown.gif");
-}
-.dj_ie6 .tundra .dijitTooltipAbove .dijitTooltipConnector {
- bottom: -3px;
-}
-
-.tundra .dijitTooltipLeft {
- padding-right: 14px;
-}
-.tundra .dijitTooltipLeft .dijitTooltipConnector {
- /* the arrow piece for tooltips to the left of an element, bottom borders aligned */
- right: 0;
- background:url("images/tooltipConnectorRight.png") no-repeat top left;
- width:16px;
- height:14px;
-}
-.dj_ie .tundra .dijitTooltipLeft .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorRight.gif");
-}
-
-.tundra .dijitTooltipRight {
- padding-left: 14px;
-}
-.tundra .dijitTooltipRight .dijitTooltipConnector {
- /* the arrow piece for tooltips to the right of an element, bottom borders aligned */
- left: 0;
- background:url("images/tooltipConnectorLeft.png") no-repeat top left;
- width:16px;
- height:14px;
-}
-.dj_ie .tundra .dijitTooltipRight .dijitTooltipConnector {
- background-image: url("images/tooltipConnectorLeft.gif");
-}
-
-.dj_webkit .tundra .dijitTooltipContainer {
- -webkit-box-shadow: 0 5px 10px #adadad;
-}
+.tundra .dijitDialog {background: #fff; border: 1px solid #7eabcd; padding: 0; -webkit-box-shadow: 0 5px 10px #adadad;}.tundra .dijitDialogPaneContent {background: #fff; border-top: 1px solid #d3d3d3; padding:10px;}.tundra .dijitDialogTitleBar {background: #fafafa url("images/titleBar.png") repeat-x top left; padding: 5px 6px 3px 6px; outline:0;}.tundra .dijitDialogTitle {font-weight: bold; padding: 0 4px;}.tundra .dijitDialogCloseIcon {background: url("images/tabClose.png") no-repeat right top; position: absolute; vertical-align: middle; right: 6px; top: 4px; height: 15px; width: 15px;}.dj_ie6 .tundra .dijitDialogCloseIcon {background : url("images/tabClose.gif") no-repeat right top;}.tundra .dijitDialogCloseIconHover {background: url("images/tabCloseHover.png") no-repeat right top;}.dj_ie6 .tundra .dijitDialogCloseIconHover {background : url("images/tabCloseHover.gif") no-repeat right top;}.tundra .dijitTooltip,.tundra .dijitTooltipDialog {background: transparent;}.dijitTooltipBelow {padding-top: 13px;}.dijitTooltipAbove {padding-bottom: 13px;}.tundra .dijitTooltipContainer {background: #ffffff url("images/popupMenuBg.gif") repeat-x bottom left; border: 1px solid #7eabcd; padding: 0.45em; -webkit-border-radius: 3px; -moz-border-radius: 3px;}.tundra .dijitTooltipConnector {border:0; z-index: 2;}.tundra .dijitTooltipABRight .dijitTooltipConnector {left: auto !important; right: 3px;}.tundra .dijitTooltipBelow .dijitTooltipConnector {top: 0; left: 3px; background:url("images/tooltipConnectorUp.png") no-repeat top left; width:16px; height:14px;}.dj_ie .tundra .dijitTooltipBelow .dijitTooltipConnector {background-image: url("images/tooltipConnectorUp.gif");}.tundra .dijitTooltipAbove .dijitTooltipConnector {bottom: 0; left: 3px; background:url("images/tooltipConnectorDown.png") no-repeat top left; width:16px; height:14px;}.dj_ie .tundra .dijitTooltipAbove .dijitTooltipConnector {background-image: url("images/tooltipConnectorDown.gif");}.dj_ie6 .tundra .dijitTooltipAbove .dijitTooltipConnector {bottom: -3px;}.tundra .dijitTooltipLeft {padding-right: 14px;}.tundra .dijitTooltipLeft .dijitTooltipConnector {right: 0; background:url("images/tooltipConnectorRight.png") no-repeat top left; width:16px; height:14px;}.dj_ie .tundra .dijitTooltipLeft .dijitTooltipConnector {background-image: url("images/tooltipConnectorRight.gif");}.tundra .dijitTooltipRight {padding-left: 14px;}.tundra .dijitTooltipRight .dijitTooltipConnector {left: 0; background:url("images/tooltipConnectorLeft.png") no-repeat top left; width:16px; height:14px;}.dj_ie .tundra .dijitTooltipRight .dijitTooltipConnector {background-image: url("images/tooltipConnectorLeft.gif");}.dj_webkit .tundra .dijitTooltipContainer {-webkit-box-shadow: 0 5px 10px #adadad;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Dialog_rtl.css b/lib/dijit/themes/tundra/Dialog_rtl.css
index 9337680aa..9d9c6ac81 100644
--- a/lib/dijit/themes/tundra/Dialog_rtl.css
+++ b/lib/dijit/themes/tundra/Dialog_rtl.css
@@ -1,5 +1 @@
-/* Dialog */
-.tundra .dijitDialogRtl .dijitDialogCloseIcon {
- right: auto;
- left: 5px;
-}
+.tundra .dijitDialogRtl .dijitDialogCloseIcon {right: auto; left: 5px;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Editor.css b/lib/dijit/themes/tundra/Editor.css
index b6f07a1f7..f7f80e86b 100644
--- a/lib/dijit/themes/tundra/Editor.css
+++ b/lib/dijit/themes/tundra/Editor.css
@@ -1,16 +1 @@
-.dijitEditor {
- border:1px solid #bfbfbf;
- border-top:0;
-}
-
-.tundra .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsEnabled.png'); /* editor icons sprite image - enabled state */
- background-repeat: no-repeat;
- width: 18px;
- height: 18px;
- text-align: center;
-}
-.tundra .dijitDisabled .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsDisabled.png'); /* editor icons sprite image - disabled state */
-}
-
+.dijitEditor {border:1px solid #bfbfbf; border-top:0;}.tundra .dijitEditorIcon {background-image: url('../../icons/images/editorIconsEnabled.png'); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.tundra .dijitDisabled .dijitEditorIcon {background-image: url('../../icons/images/editorIconsDisabled.png');} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Editor_rtl.css b/lib/dijit/themes/tundra/Editor_rtl.css
index cd4849e7f..efe1dbd47 100644
--- a/lib/dijit/themes/tundra/Editor_rtl.css
+++ b/lib/dijit/themes/tundra/Editor_rtl.css
@@ -1,7 +1 @@
-/* Editor */
-.tundra .dijitEditorRtl .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsEnabled_rtl.png'); /* editor icons sprite image - enabled state */
-}
-.tundra .dijitEditorRtlDisabled .dijitEditorIcon {
- background-image: url('../../icons/images/editorIconsDisabled_rtl.png'); /* editor icons sprite image - disabled state */
-}
+.tundra .dijitEditorRtl .dijitEditorIcon {background-image: url('../../icons/images/editorIconsEnabled_rtl.png');}.tundra .dijitEditorRtlDisabled .dijitEditorIcon {background-image: url('../../icons/images/editorIconsDisabled_rtl.png');} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Menu.css b/lib/dijit/themes/tundra/Menu.css
index 884bd490e..0be3f4fd0 100644
--- a/lib/dijit/themes/tundra/Menu.css
+++ b/lib/dijit/themes/tundra/Menu.css
@@ -1,77 +1 @@
-.tundra .dijitMenu,
-.tundra .dijitMenuBar {
- border: 1px solid #7eabcd;
- margin: 0;
- padding: 0;
- background-color: #f7f7f7;
-}
-
-.tundra .dijitBorderContainer .dijitMenuBar {
- border:1px solid #ccc;
-}
-
-.tundra .dijitMenuItem {
- font-family: sans-serif;
- margin: 0;
-}
-
-.tundra .dijitMenuItem {
- padding: 4px 5px;
-}
-
-.tundra .dijitMenuPreviousButton, .tundra .dijitMenuNextButton {
- font-style: italic;
-}
-.tundra .dijitMenuItem td {
- padding: 2px;
-}
-
-.tundra .dijitMenuPassive .dijitMenuItemHover,
-.tundra .dijitComboBoxMenu .dijitMenuItemHover,
-.tundra .dijitMenuItemSelected {
- background-color: #3559ac;
- color:#fff;
-}
-
-.tundra .dijitMenuItemIcon {
- width: 16px;
- height: 16px;
-}
-
-.tundra .dijitMenuExpand {
- /* arrow to indicate this MenuItem opens a sub-menu */
- width: 7px;
- height: 7px;
- background-image: url('images/spriteArrows.png');
- background-position: -14px 0;
-}
-.dj_ie6 .tundra .dijitMenuExpand {
- background-image: url('images/spriteArrows.gif');
-}
-
-/* separator can be two pixels -- set border of either one to 0 to have only one */
-.tundra .dijitMenuSeparatorTop {
- border-bottom: 1px solid #9b9b9b;
-}
-
-.tundra .dijitMenuSeparatorBottom {
- border-top: 1px solid #e8e8e8;
-}
-
-/* the checked menu item */
-.tundra .dijitCheckedMenuItemIconChar {
- display: none;
-}
-
-.tundra .dijitCheckedMenuItemIcon {
- background-image: url('images/checkmark.png');
- background-position: -80px;
-}
-
-.dj_ie6 .tundra .dijitCheckedMenuItemIcon {
- background-image: url('images/checkmark.gif');
-}
-
-.tundra .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {
- background-position: -64px;
-} \ No newline at end of file
+.tundra .dijitMenu,.tundra .dijitMenuBar {border: 1px solid #7eabcd; margin: 0; padding: 0; background-color: #f7f7f7;}.tundra .dijitBorderContainer .dijitMenuBar {border:1px solid #ccc;}.tundra .dijitMenuItem {font-family: sans-serif; margin: 0;}.tundra .dijitMenuItem {padding: 4px 5px;}.tundra .dijitMenuPreviousButton, .tundra .dijitMenuNextButton {font-style: italic;}.tundra .dijitMenuItem td {padding: 2px;}.tundra .dijitMenuPassive .dijitMenuItemHover,.tundra .dijitComboBoxMenu .dijitMenuItemHover,.tundra .dijitMenuItemSelected {background-color: #3559ac; color:#fff;}.tundra .dijitMenuItemIcon {width: 16px; height: 16px;}.tundra .dijitMenuExpand {width: 7px; height: 7px; background-image: url('images/spriteArrows.png'); background-position: -14px 0;}.dj_ie6 .tundra .dijitMenuExpand {background-image: url('images/spriteArrows.gif');}.tundra .dijitMenuSeparatorTop {border-bottom: 1px solid #9b9b9b;}.tundra .dijitMenuSeparatorBottom {border-top: 1px solid #e8e8e8;}.tundra .dijitCheckedMenuItemIconChar {display: none;}.tundra .dijitCheckedMenuItemIcon {background-image: url('images/checkmark.png'); background-position: -80px;}.dj_ie6 .tundra .dijitCheckedMenuItemIcon {background-image: url('images/checkmark.gif');}.tundra .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: -64px;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Menu_rtl.css b/lib/dijit/themes/tundra/Menu_rtl.css
index f14859297..538fbca40 100644
--- a/lib/dijit/themes/tundra/Menu_rtl.css
+++ b/lib/dijit/themes/tundra/Menu_rtl.css
@@ -1,3 +1 @@
-.tundra .dijitMenuItemRtl .dijitMenuExpand {
- background-position: -7px 0;
-} \ No newline at end of file
+.tundra .dijitMenuItemRtl .dijitMenuExpand {background-position: -7px 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/ProgressBar.css b/lib/dijit/themes/tundra/ProgressBar.css
index 2d70e28d4..826abe45e 100644
--- a/lib/dijit/themes/tundra/ProgressBar.css
+++ b/lib/dijit/themes/tundra/ProgressBar.css
@@ -1,28 +1 @@
-.tundra .dijitProgressBar {
- margin:2px 0 2px 0;
-}
-
-.tundra .dijitProgressBarEmpty {
- /* outer container and background of the bar that's not finished yet*/
- background:#fff url("images/progressBarEmpty.png") repeat-x center center;
- border-color: #a2a2a2 #b8b8b8 #b8b8b8 #a2a2a2;
-}
-
-.tundra .dijitProgressBarTile {
- /* inner container for finished portion when in 'tile' (image) mode */
- background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center;
-}
-
-.tundra .dijitProgressBarFull {
- border-right:1px solid #b8b8b8;
-}
-
-.tundra .dijitProgressBarLabel {
- /* Set to a color that contrasts with both the "Empty" and "Full" parts. */
- color:#293a4b;
-}
-
-.tundra .dijitProgressBarIndeterminate .dijitProgressBarTile {
- /* use an animated gif for the progress bar in 'indeterminate' mode */
- background:#cad2de url("images/progressBarAnim.gif") repeat-x center center;
-}
+.tundra .dijitProgressBar {margin:2px 0 2px 0;}.tundra .dijitProgressBarEmpty {background:#fff url("images/progressBarEmpty.png") repeat-x center center; border-color: #a2a2a2 #b8b8b8 #b8b8b8 #a2a2a2;}.tundra .dijitProgressBarTile {background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center;}.tundra .dijitProgressBarFull {border-right:1px solid #b8b8b8;}.tundra .dijitProgressBarLabel {color:#293a4b;}.tundra .dijitProgressBarIndeterminate .dijitProgressBarTile {background:#cad2de url("images/progressBarAnim.gif") repeat-x center center;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/TimePicker.css b/lib/dijit/themes/tundra/TimePicker.css
index 13dc7f80c..3753e0062 100644
--- a/lib/dijit/themes/tundra/TimePicker.css
+++ b/lib/dijit/themes/tundra/TimePicker.css
@@ -1,52 +1 @@
-/* Time Picker */
-.tundra .dijitTimePickerTick,
-.tundra .dijitTimePickerMarker {
- border-color: #ccc;
-}
-
-.tundra .dijitTimePickerTick {
- color:white;
-}
-
-.tundra .dijitTimePickerMarker {
- background:#d3d3d3 url("images/titleBar.png") repeat-x top;
- color:#293a4b;
- font-weight: bold;
-}
-
-.tundra .dijitTimePickerItemSelected {
- color: black;
- background: #bbc4d0 none;
-}
-
-.tundra .dijitTimePickerItemHover {
- background: #60a1ea none;
- color:white;
-}
-
-.tundra .dijitTimePickerItemHover,
-.tundra .dijitTimePickerItemSelected {
- position: relative;
- z-index: 10;
-}
-
-.tundra .dijitTimePickerTick .dijitTimePickerItemInner {
- font-size:0.4em;
-}
-
-.tundra .dijitTimePickerItemHover .dijitTimePickerItemInner,
-.tundra .dijitTimePickerItemSelected .dijitTimePickerItemInner {
- font-size:1em;
-}
-
-.tundra .dijitTimePickerMarkerHover {
- border-top: 1px solid #ccc;
-}
-
-.tundra .dijitTimePickerTickHover,
-.tundra .dijitTimePickerTickSelected {
- margin-top:-0.3em;
- margin-bottom:-0.3em;
- border-bottom: none;
-}
-
+.tundra .dijitTimePickerTick,.tundra .dijitTimePickerMarker {border-color: #ccc;}.tundra .dijitTimePickerTick {color:white;}.tundra .dijitTimePickerMarker {background:#d3d3d3 url("images/titleBar.png") repeat-x top; color:#293a4b; font-weight: bold;}.tundra .dijitTimePickerItemSelected {color: black; background: #bbc4d0 none;}.tundra .dijitTimePickerItemHover {background: #60a1ea none; color:white;}.tundra .dijitTimePickerItemHover,.tundra .dijitTimePickerItemSelected {position: relative; z-index: 10;}.tundra .dijitTimePickerTick .dijitTimePickerItemInner {font-size:0.4em;}.tundra .dijitTimePickerItemHover .dijitTimePickerItemInner,.tundra .dijitTimePickerItemSelected .dijitTimePickerItemInner {font-size:1em;}.tundra .dijitTimePickerMarkerHover {border-top: 1px solid #ccc;}.tundra .dijitTimePickerTickHover,.tundra .dijitTimePickerTickSelected {margin-top:-0.3em; margin-bottom:-0.3em; border-bottom: none;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/TimePicker_rtl.css b/lib/dijit/themes/tundra/TimePicker_rtl.css
index 7a4d5e58c..c4b8e05e5 100644
--- a/lib/dijit/themes/tundra/TimePicker_rtl.css
+++ b/lib/dijit/themes/tundra/TimePicker_rtl.css
@@ -1,4 +1 @@
- .dj_ie6 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover,
-.dj_ie7 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover {
- border-top: 0; /* IE6/7 bug causes mouseover/out event storm */
-}
+ .dj_ie6 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover,.dj_ie7 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover {border-top: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/TitlePane.css b/lib/dijit/themes/tundra/TitlePane.css
index e964bf8a8..56098114c 100644
--- a/lib/dijit/themes/tundra/TitlePane.css
+++ b/lib/dijit/themes/tundra/TitlePane.css
@@ -1,38 +1 @@
-.tundra .dijitTitlePaneTitle {
- background: #cccccc;
- background:#fff url("images/titleBar.png") repeat-x bottom left;
- border:1px solid #bfbfbf;
- padding:3px 4px;
-}
-.tundra .dijitTitlePaneTitleHover {
- background: #f8fafd url("images/accordionItemHover.gif") bottom repeat-x;
-}
-
-.tundra .dijitTitlePane .dijitArrowNode {
- background-image: url('images/spriteArrows.png');
- background-repeat: no-repeat;
- background-position: 0 0;
- height: 7px;
- width: 7px;
-}
-.dj_ie6 .tundra .dijitTitlePane .dijitArrowNode {
- background-image: url('images/spriteArrows.gif');
-}
-
-.tundra .dijitTitlePane .dijitClosed .dijitArrowNode {
- background-position: -14px 0;
-}
-
-.tundra .dijitTitlePaneContentOuter {
- background: #ffffff;
- border:1px solid #bfbfbf;
- border-top: 0;
-}
-.tundra .dijitTitlePaneContentInner {
- padding:10px;
-}
-
-.tundra .dijitTitlePaneTextNode {
- margin-left: 4px;
- margin-right: 4px;
-} \ No newline at end of file
+.tundra .dijitTitlePaneTitle {background: #cccccc; background:#fff url("images/titleBar.png") repeat-x bottom left; border:1px solid #bfbfbf; padding:3px 4px;}.tundra .dijitTitlePaneTitleHover {background: #f8fafd url("images/accordionItemHover.gif") bottom repeat-x;}.tundra .dijitTitlePane .dijitArrowNode {background-image: url('images/spriteArrows.png'); background-repeat: no-repeat; background-position: 0 0; height: 7px; width: 7px;}.dj_ie6 .tundra .dijitTitlePane .dijitArrowNode {background-image: url('images/spriteArrows.gif');}.tundra .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: -14px 0;}.tundra .dijitTitlePaneContentOuter {background: #ffffff; border:1px solid #bfbfbf; border-top: 0;}.tundra .dijitTitlePaneContentInner {padding:10px;}.tundra .dijitTitlePaneTextNode {margin-left: 4px; margin-right: 4px;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/TitlePane_rtl.css b/lib/dijit/themes/tundra/TitlePane_rtl.css
index 5f63a03d9..6f0f8a845 100644
--- a/lib/dijit/themes/tundra/TitlePane_rtl.css
+++ b/lib/dijit/themes/tundra/TitlePane_rtl.css
@@ -1,3 +1 @@
-.tundra .dijitTitlePaneRtl .dijitClosed .dijitArrowNode {
- background-position: -7px 0;
-} \ No newline at end of file
+.tundra .dijitTitlePaneRtl .dijitClosed .dijitArrowNode {background-position: -7px 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Toolbar.css b/lib/dijit/themes/tundra/Toolbar.css
index ebe9cdae4..ce0a8693e 100644
--- a/lib/dijit/themes/tundra/Toolbar.css
+++ b/lib/dijit/themes/tundra/Toolbar.css
@@ -1,75 +1 @@
-.tundra .dijitToolbar {
- border-bottom: 1px solid #ccc;
- background:#eaeaea url("images/titleBar.png") repeat-x top left;
-}
-
-/* setting a min-height on ditor toolbar */
-.dj_ie6 .tundra .dijitToolbar {
- height: 10px;
-}
-
-.tundra .dijitToolbar .dijitButtonNode,
-.tundra .dijitToolbar .dijitComboButton .dijitButtonContents,
-.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButton {
- background: none;
- margin: 0;
- padding: 0;
- border: none;
- font-size: 12px;
-}
-
-.tundra .dijitToolbar .dijitButton,
-.tundra .dijitToolbar .dijitToggleButton,
-.tundra .dijitToolbar .dijitDropDownButton,
-.tundra .dijitToolbar .dijitComboButton .dijitButtonContents,
-.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButton {
- background: none;
- padding: 1px;
-}
-
-.tundra .dijitToolbar .dijitButtonChecked,
-.tundra .dijitToolbar .dijitToggleButtonChecked {
- background-color:#d4dff2;
- border:1px solid #316ac5;
- padding: 0; /* reduce padding to compensate for space taken by border */
-}
-
-.tundra .dijitToolbar .dijitButtonCheckedHover,
-.tundra .dijitToolbar .dijitToggleButtonCheckedHover
- {
- background-color:#abc1e5;
- border:1px solid #316ac5;
- padding: 0; /* reduce padding to compensate for space taken by border */
-}
-
-.tundra .dijitToolbar .dijitButtonHover,
-.tundra .dijitToolbar .dijitToggleButtonHover,
-.tundra .dijitToolbar .dijitDropDownButtonHover,
-.tundra .dijitToolbar .dijitComboButton .dijitButtonContentsHover,
-.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover {
- /* TODO: change this from Hover to Selected so that button is still highlighted while drop down is being used */
- border: 1px solid #869cbf;
- padding: 0; /* reduce padding to compensate for space taken by border */
- background-color:#e1e5f0;
-}
-
-.tundra .dijitToolbar label {
- padding: 3px 3px 0 6px;
-}
-
-.dj_ie .tundra .dijitToolbar .dijitComboButton .dijitButtonContentsFocused,
-.dj_ie .tundra .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused {
- /* focus border doesn't appear on <td> for IE, so need to add it manually */
- border: 1px #555 dotted !important;
- padding: 0;
-}
-
-.tundra .dijitToolbarSeparator {
- /* separator icon in the editor sprite */
- background: url('../../icons/images/editorIconsEnabled.png');
-}
-
-.tundra .dijitToolbarRtl .dijitToolbarSeparator {
- /* separator icon in the editor sprite */
- background-image: url('../../icons/images/editorIconsDisabled.png');
-}
+.tundra .dijitToolbar {border-bottom: 1px solid #ccc; background:#eaeaea url("images/titleBar.png") repeat-x top left;}.dj_ie6 .tundra .dijitToolbar {height: 10px;}.tundra .dijitToolbar .dijitButtonNode,.tundra .dijitToolbar .dijitComboButton .dijitButtonContents,.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; margin: 0; padding: 0; border: none; font-size: 12px;}.tundra .dijitToolbar .dijitButton,.tundra .dijitToolbar .dijitToggleButton,.tundra .dijitToolbar .dijitDropDownButton,.tundra .dijitToolbar .dijitComboButton .dijitButtonContents,.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; padding: 1px;}.tundra .dijitToolbar .dijitButtonChecked,.tundra .dijitToolbar .dijitToggleButtonChecked {background-color:#d4dff2; border:1px solid #316ac5; padding: 0;}.tundra .dijitToolbar .dijitButtonCheckedHover,.tundra .dijitToolbar .dijitToggleButtonCheckedHover {background-color:#abc1e5; border:1px solid #316ac5; padding: 0;}.tundra .dijitToolbar .dijitButtonHover,.tundra .dijitToolbar .dijitToggleButtonHover,.tundra .dijitToolbar .dijitDropDownButtonHover,.tundra .dijitToolbar .dijitComboButton .dijitButtonContentsHover,.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover {border: 1px solid #869cbf; padding: 0; background-color:#e1e5f0;}.tundra .dijitToolbar label {padding: 3px 3px 0 6px;}.dj_ie .tundra .dijitToolbar .dijitComboButton .dijitButtonContentsFocused,.dj_ie .tundra .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused {border: 1px #555 dotted !important; padding: 0;}.tundra .dijitToolbarSeparator {background: url('../../icons/images/editorIconsEnabled.png');}.tundra .dijitToolbarRtl .dijitToolbarSeparator {background-image: url('../../icons/images/editorIconsDisabled.png');} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Tree.css b/lib/dijit/themes/tundra/Tree.css
index 76c81e0b1..6224c070a 100644
--- a/lib/dijit/themes/tundra/Tree.css
+++ b/lib/dijit/themes/tundra/Tree.css
@@ -1,96 +1 @@
-/* Tree */
-
-.tundra .dijitTreeNode {
- background-image : url('images/i.gif');
- background-repeat : repeat-y;
- zoom: 1; /* force layout on IE (TODO: may not be needed anymore) */
-}
-
-/* left vertical line (grid) for all nodes */
-.tundra .dijitTreeIsLast {
- background: url('images/i_half.gif') no-repeat;
-}
-
-.tundra .dijitTreeIsRoot {
- margin-left: 0;
- background-image: none;
-}
-
-.tundra .dijitTreeExpando {
- width: 18px;
- height: 18px;
-}
-
-.tundra .dijitTreeRow {
- /* so insert line shows up on IE when dropping after a target element */
- padding-bottom: 2px;
-}
-
-.tundra .dijitTreeContent {
- min-height: 18px;
- min-width: 18px;
-}
-
-.tundra .dijitTreeRowSelected .dijitTreeLabel {
- background:#e2ebfe;
-}
-.tundra .dijitTreeRowHover {
- /* using a transparent png so that we can still see grid lines, which are (unfortunately) behind the dijitRowNode that we are hovering over */
- background-image: url(images/treeHover.png);
- background-repeat: repeat;
- background-color: transparent !important;
-}
-
-.tundra .dijitTreeExpandoOpened {
- background-image: url('images/treeExpand_minus.gif');
-}
-
-.tundra .dijitTreeExpandoClosed {
- background-image: url('images/treeExpand_plus.gif');
-}
-
-.tundra .dijitTreeExpandoLeaf {
- background-image: url('images/treeExpand_leaf.gif');
-}
-
-.tundra .dijitTreeExpandoLoading {
- background-image: url('images/treeExpand_loading.gif');
-}
-
-.tundra .dijitTreeIcon {
- width: 16px;
- height: 16px;
-}
-
-.tundra .dijitFolderOpened {
- background: url('images/folderOpened.gif') no-repeat;
-}
-
-.tundra .dijitFolderClosed {
- background: url('images/folderClosed.gif') no-repeat;
-}
-
-.tundra .dijitLeaf {
- background: url('images/leaf.gif') no-repeat;
-}
-
-/* Drag and Drop on TreeNodes
- * Put insert line on dijitTreeContent node so it's aligned w/
- * (ie, indented equally with) target element, even
- * though dijitTreeRowNode is the actual "drag object"
- */
-.tundra .dijitTreeNode .dojoDndItemBefore,
-.tundra .dijitTreeNode .dojoDndItemAfter {
- border-bottom: none;
- border-top: none;
-}
-
-.tundra .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {
- /* copied from Common.css */
- border-top: 2px solid #369;
-}
-
-.tundra .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {
- /* copied from Common.css */
- border-bottom: 2px solid #369;
-}
+.tundra .dijitTreeNode {background-image : url('images/i.gif'); background-repeat : repeat-y; zoom: 1;}.tundra .dijitTreeIsLast {background: url('images/i_half.gif') no-repeat;}.tundra .dijitTreeIsRoot {margin-left: 0; background-image: none;}.tundra .dijitTreeExpando {width: 18px; height: 18px;}.tundra .dijitTreeRow {padding-bottom: 2px;}.tundra .dijitTreeContent {min-height: 18px; min-width: 18px;}.tundra .dijitTreeRowSelected .dijitTreeLabel {background:#e2ebfe;}.tundra .dijitTreeRowHover {background-image: url(images/treeHover.png); background-repeat: repeat; background-color: transparent !important;}.tundra .dijitTreeExpandoOpened {background-image: url('images/treeExpand_minus.gif');}.tundra .dijitTreeExpandoClosed {background-image: url('images/treeExpand_plus.gif');}.tundra .dijitTreeExpandoLeaf {background-image: url('images/treeExpand_leaf.gif');}.tundra .dijitTreeExpandoLoading {background-image: url('images/treeExpand_loading.gif');}.tundra .dijitTreeIcon {width: 16px; height: 16px;}.tundra .dijitFolderOpened {background: url('images/folderOpened.gif') no-repeat;}.tundra .dijitFolderClosed {background: url('images/folderClosed.gif') no-repeat;}.tundra .dijitLeaf {background: url('images/leaf.gif') no-repeat;}.tundra .dijitTreeNode .dojoDndItemBefore,.tundra .dijitTreeNode .dojoDndItemAfter {border-bottom: none; border-top: none;}.tundra .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {border-top: 2px solid #369;}.tundra .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {border-bottom: 2px solid #369;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/Tree_rtl.css b/lib/dijit/themes/tundra/Tree_rtl.css
index 607b71ce8..9c190882f 100644
--- a/lib/dijit/themes/tundra/Tree_rtl.css
+++ b/lib/dijit/themes/tundra/Tree_rtl.css
@@ -1,17 +1 @@
-/* Tree */
-
-.tundra .dijitTreeNodeRtl,
-.tundra .dijitTreeNodeRtl .dijitTreeExpandoLeaf {
- /* disable grid lines in RTL mode; too hard to support */
- background-image: none;
-}
-
-.tundra .dijitTreeNodeRtl .dijitTreeExpandoOpened {
- /* todo: get rid of transparent space in icon files,
- and just use background-placement (or margin maybe) to get desired alignment */
- background-image: url('images/treeExpand_minus_rtl.gif');
-}
-
-.tundra .dijitTreeNodeRtl .dijitTreeExpandoClosed {
- background-image: url('images/treeExpand_plus_rtl.gif');
-}
+.tundra .dijitTreeNodeRtl,.tundra .dijitTreeNodeRtl .dijitTreeExpandoLeaf {background-image: none;}.tundra .dijitTreeNodeRtl .dijitTreeExpandoOpened {background-image: url('images/treeExpand_minus_rtl.gif');}.tundra .dijitTreeNodeRtl .dijitTreeExpandoClosed {background-image: url('images/treeExpand_plus_rtl.gif');} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/form/Button.css b/lib/dijit/themes/tundra/form/Button.css
index 2c68aef04..f535dc033 100644
--- a/lib/dijit/themes/tundra/form/Button.css
+++ b/lib/dijit/themes/tundra/form/Button.css
@@ -1,136 +1 @@
-
-/*****
- dijit.form.Button
- dijit.form.DropDownButton
- dijit.form.ComboButton
- dijit.form.ComboBox (partial)
- dijit.form.Spinner (partial) (TODO: create NumberSpinner.css file like claro has)
- *****/
-
-.tundra .dijitButtonNode {
- /* enabled state - inner */
- border: 1px solid #c0c0c0;
- border-bottom: 1px solid #9b9b9b;
- padding: 0.1em 0.2em 0.2em 0.2em;
- background: #fff url("../images/buttonEnabled.png") repeat-x bottom left;
-}
-.tundra .dijitButtonText {
- text-align: center;
- padding: 0 0.3em;
-}
-
-.tundra .dijitDisabled .dijitButtonText {
- color: #7F7F7F;
-}
-
-.tundra .dijitArrowButton {
- color: #111;
-}
-
-.tundra .dijitComboButton .dijitDownArrowButton {
- padding-right:4px;
-}
-
-.tundra .dijitTextBoxReadOnly,
-.tundra .dijitTextBoxReadOnly .dijitButtonNode,
-.tundra .dijitButtonDisabled .dijitButtonNode,
-.tundra .dijitToggleButtonDisabled .dijitButtonNode,
-.tundra .dijitDropDownButtonDisabled .dijitButtonNode,
-.tundra .dijitComboButtonDisabled .dijitButtonNode,
-.tundra .dijitTextBoxDisabled,
-.tundra .dijitTextBoxDisabled .dijitButtonNode {
- /* disabled state - inner */
- border-color: #d5d5d5 #d5d5d5 #bdbdbd #d5d5d5;
- background:#e4e4e4 url("../images/buttonDisabled.png") top repeat-x;
-}
-
-.tundra .dijitButtonHover .dijitButtonNode,
-.tundra .dijitButtonNodeHover,
-.tundra .dijitToggleButtonHover .dijitButtonNode,
-.tundra .dijitDropDownButtonHover .dijitButtonNode,
-.tundra .dijitComboButton .dijitButtonContentsHover,
-.tundra .dijitComboButton .dijitDownArrowButtonHover {
- /* hover state - inner */
- /* TODO: change from Hover to Selected so that button is still highlighted while drop down is being used */
- border-color: #a5beda;
- border-bottom-color:#5c7590;
- color:#243C5F;
- background:#fcfdff url("../images/buttonHover.png") repeat-x bottom;
-}
-.tundra .dijitDownArrowButtonHover,
-.tundra .dijitUpArrowButtonHover {
- /* same as above except don't adjust border color (it's controlled by the containing Spinner/ComboBox) */
- color:#243C5F;
- background:#fcfdff url("../images/buttonHover.png") repeat-x bottom;
-}
-
-.tundra .dijitUpArrowButtonActive,
-.tundra .dijitDownArrowButtonActive,
-.tundra .dijitButtonActive .dijitButtonNode,
-.tundra .dijitToggleButtonActive .dijitButtonNode,
-.tundra .dijitDropDownButtonActive .dijitButtonNode,
-.tundra .dijitButtonContentsActive,
-.tundra .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {
- /* active state - inner (for when you are pressing a normal button, or
- * when a radio-type button is in a depressed state
- */
- border-color:#366dba;
- background: #ededed url("../images/buttonActive.png") bottom repeat-x;
-}
-
-.tundra .dijitArrowButtonInner {
- background:url("../images/spriteArrows.png") no-repeat scroll 0 center;
- width: 7px;
- height: 7px;
- margin: 0 4px 0 4px;
-}
-.tundra .dijitTextBox .dijitArrowButtonInner {
- background-position: 0 center;
-}
-.dj_ie6 .tundra .dijitArrowButtonInner {
- background-image:url("../images/spriteArrows.gif");
-}
-.tundra .dijitLeftArrowButton .dijitArrowButtonInner {
- background-position: -7px center;
-}
-.tundra .dijitRightArrowButton .dijitArrowButtonInner {
- background-position: -14px center;
-}
-.tundra .dijitUpArrowButton .dijitArrowButtonInner {
- background-position: -21px center;
-}
-
-.tundra .dijitDisabled .dijitArrowButtonInner {
- background-position: -28px center;
-}
-.tundra .dijitDisabled .dijitLeftArrowButton .dijitArrowButtonInner {
- background-position: -35px center;
-}
-.tundra .dijitDisabled .dijitRightArrowButton .dijitArrowButtonInner {
- background-position: -42px center;
-}
-.tundra .dijitDisabled .dijitUpArrowButton .dijitArrowButtonInner {
- background-position: -49px center;
-}
-.dj_webkit .tundra .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner {
- margin-top: -1px; /* image has too many blank pixels on top */
-}
-.dj_ie .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner {
- margin-top: -2px; /* image has too many blank pixels on top */
-}
-.dj_ie8 .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner {
- margin-top: -1px; /* image has too many blank pixels on top */
-}
-.tundra .dijitSpinnerButtonContainer {
- width: auto;
- padding: 0;
-}
-.tundra .dijitSpinner .dijitArrowButton {
- width: 15px;
-}
-.tundra .dijitSpinner .dijitSpinnerButtonInner {
- width: 15px;
-}
-.tundra .dijitSpinner .dijitArrowButtonInner .dijitInputField {
- padding: 0;
-}
+.tundra .dijitButtonNode {border: 1px solid #c0c0c0; border-bottom: 1px solid #9b9b9b; padding: 0.1em 0.2em 0.2em 0.2em; background: #fff url("../images/buttonEnabled.png") repeat-x bottom left;}.tundra .dijitButtonText {text-align: center; padding: 0 0.3em;}.tundra .dijitInputField {padding: 0;}.tundra .dijitDisabled .dijitButtonText {color: #7F7F7F;}.tundra .dijitArrowButton {color: #111;}.tundra .dijitComboButton .dijitDownArrowButton {padding-right:4px;}.tundra .dijitTextBoxReadOnly,.tundra .dijitTextBoxReadOnly .dijitButtonNode,.tundra .dijitButtonDisabled .dijitButtonNode,.tundra .dijitToggleButtonDisabled .dijitButtonNode,.tundra .dijitDropDownButtonDisabled .dijitButtonNode,.tundra .dijitComboButtonDisabled .dijitButtonNode,.tundra .dijitTextBoxDisabled,.tundra .dijitTextBoxDisabled .dijitButtonNode {border-color: #d5d5d5 #d5d5d5 #bdbdbd #d5d5d5; background:#e4e4e4 url("../images/buttonDisabled.png") top repeat-x;}.tundra .dijitButtonHover .dijitButtonNode,.tundra .dijitButtonNodeHover,.tundra .dijitToggleButtonHover .dijitButtonNode,.tundra .dijitDropDownButtonHover .dijitButtonNode,.tundra .dijitComboButton .dijitButtonContentsHover,.tundra .dijitComboButton .dijitDownArrowButtonHover {border-color: #a5beda; border-bottom-color:#5c7590; color:#243C5F; background:#fcfdff url("../images/buttonHover.png") repeat-x bottom;}.tundra .dijitDownArrowButtonHover,.tundra .dijitUpArrowButtonHover {color:#243C5F; background:#fcfdff url("../images/buttonHover.png") repeat-x bottom;}.tundra .dijitUpArrowButtonActive,.tundra .dijitDownArrowButtonActive,.tundra .dijitButtonActive .dijitButtonNode,.tundra .dijitToggleButtonActive .dijitButtonNode,.tundra .dijitDropDownButtonActive .dijitButtonNode,.tundra .dijitButtonContentsActive,.tundra .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {border-color:#366dba; background: #ededed url("../images/buttonActive.png") bottom repeat-x;}.tundra .dijitArrowButtonInner {background:url("../images/spriteArrows.png") no-repeat scroll 0 center; width: 7px; height: 7px; margin: 0 4px 0 4px;}.tundra .dijitTextBox .dijitArrowButtonInner {background-position: 0 center;}.dj_ie6 .tundra .dijitArrowButtonInner {background-image:url("../images/spriteArrows.gif");}.tundra .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -7px center;}.tundra .dijitRightArrowButton .dijitArrowButtonInner {background-position: -14px center;}.tundra .dijitUpArrowButton .dijitArrowButtonInner {background-position: -21px center;}.tundra .dijitDisabled .dijitArrowButtonInner {background-position: -28px center;}.tundra .dijitDisabled .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -35px center;}.tundra .dijitDisabled .dijitRightArrowButton .dijitArrowButtonInner {background-position: -42px center;}.tundra .dijitDisabled .dijitUpArrowButton .dijitArrowButtonInner {background-position: -49px center;}.dj_ie .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner {margin-top: -2px;}.dj_webkit .tundra .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner,.dj_iequirks .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner,.dj_ie8 .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner {margin-top: -1px;}.tundra .dijitSpinnerButtonContainer {width: auto; padding: 0;}.tundra .dijitSpinner .dijitArrowButton {width: 15px;}.tundra .dijitSpinner .dijitSpinnerButtonInner {width: 15px;}.tundra .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/form/Checkbox.css b/lib/dijit/themes/tundra/form/Checkbox.css
index 28a7d79c9..3ad8c2615 100644
--- a/lib/dijit/themes/tundra/form/Checkbox.css
+++ b/lib/dijit/themes/tundra/form/Checkbox.css
@@ -1,54 +1 @@
-.tundra .dijitToggleButton .dijitCheckBoxIcon {
- background-image: url('../images/checkmarkNoBorder.png');
-}
-
-.dj_ie6 .tundra .dijitToggleButton .dijitCheckBoxIcon {
- background-image: url('../images/checkmarkNoBorder.gif');
-}
-
-.tundra .dijitCheckBox,
-.tundra .dijitCheckBoxIcon /* inside a toggle button */ {
- background-image: url('../images/checkmark.png'); /* checkbox sprite image */
- background-repeat: no-repeat;
- width: 16px;
- height: 16px;
- margin: 0 2px 0 0;
- padding: 0;
-}
-
-.dj_ie6 .tundra .dijitCheckBox,
-.dj_ie6 .tundra .dijitCheckBoxIcon /* inside a toggle button */ {
- background-image: url('../images/checkmark.gif'); /* checkbox sprite image */
-}
-
-.tundra .dijitCheckBox,
-.tundra .dijitToggleButton .dijitCheckBoxIcon {
- /* unchecked */
- background-position: -16px;
-}
-
-.tundra .dijitCheckBoxChecked,
-.tundra .dijitToggleButtonChecked .dijitCheckBoxIcon {
- /* checked */
- background-position: 0;
-}
-
-.tundra .dijitCheckBoxDisabled {
- /* disabled */
- background-position: -48px;
-}
-
-.tundra .dijitCheckBoxCheckedDisabled {
- /* disabled but checked */
- background-position: -32px;
-}
-
-.tundra .dijitCheckBoxHover {
- /* hovering over an unchecked enabled checkbox */
- background-position: -80px;
-}
-
-.tundra .dijitCheckBoxCheckedHover {
- /* hovering over a checked enabled checkbox */
- background-position: -64px;
-}
+.tundra .dijitToggleButton .dijitCheckBoxIcon {background-image: url('../images/checkmarkNoBorder.png');}.dj_ie6 .tundra .dijitToggleButton .dijitCheckBoxIcon {background-image: url('../images/checkmarkNoBorder.gif');}.tundra .dijitCheckBox,.tundra .dijitCheckBoxIcon {background-image: url('../images/checkmark.png'); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0 2px 0 0; padding: 0;}.dj_ie6 .tundra .dijitCheckBox,.dj_ie6 .tundra .dijitCheckBoxIcon {background-image: url('../images/checkmark.gif');}.tundra .dijitCheckBox,.tundra .dijitToggleButton .dijitCheckBoxIcon {background-position: -16px;}.tundra .dijitCheckBoxChecked,.tundra .dijitToggleButtonChecked .dijitCheckBoxIcon {background-position: 0;}.tundra .dijitCheckBoxDisabled {background-position: -48px;}.tundra .dijitCheckBoxCheckedDisabled {background-position: -32px;}.tundra .dijitCheckBoxHover {background-position: -80px;}.tundra .dijitCheckBoxCheckedHover {background-position: -64px;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/form/Common.css b/lib/dijit/themes/tundra/form/Common.css
index 96899e138..cac6046ae 100644
--- a/lib/dijit/themes/tundra/form/Common.css
+++ b/lib/dijit/themes/tundra/form/Common.css
@@ -1,76 +1 @@
-
-/****
- dijit.form.TextBox
- dijit.form.ValidationTextBox
- dijit.form.SerializableTextBox
- dijit.form.RangeBoundTextBox
- dijit.form.NumberTextBox
- dijit.form.CurrencyTextBox
- dijit.form.NumberSpinner
- dijit.form.ComboBox (partial)
- ****/
-
-.tundra .dijitInputContainer input,
-.tundra .dijitTextBox {
- margin: 0 0.1em;
-}
-
-.tundra .dijitTextArea {
- padding: 3px;
-}
-
-.tundra .dijitTextBox {
- /* For all except dijit.form.NumberSpinner: the actual input element.
- For TextBox, ComboBox, Spinner: the div that contains the input.
- Otherwise the actual input element.
- */
- background:#fff url("../images/validationInputBg.png") repeat-x top left;
- #background:#fff url('../images/validationInputBg.gif') repeat-x top left;
- border:1px solid #b3b3b3;
-}
-
-/* ComboBox specific rules*/
-.tundra .dijitComboBox .dijitButtonNode {
- padding: 0 0.2em;
-}
-.tundra .dijitTextBox .dijitButtonNode {
- /* line between the input area and the drop down button, and also between
- * the up and down buttons of a spinner
- */
- border-color: #9b9b9b;
-}
-
-.tundra .dijitTextBoxFocused {
- /* input field when focused (ie: typing affects it) */
- border-color:#406b9b;
-}
-.tundra .dijitTextBoxFocused .dijitButtonNode {
- border-color:#366dba;
-}
-
-.tundra .dijitError {
- background-color:#f9f7ba;
- background-image:none;
-}
-
-.tundra .dijitErrorFocused {
- background-color:#f9f999;
- background-image:none;
-}
-
-/* Validation errors */
-.tundra .dijitValidationIcon {
- /* prevent height change when widget goes from valid to invalid state */
- width: 16px;
- background: transparent url('../images/warning.png') no-repeat center center;
-}
-
-/* The highlight is shown in the ComboBox menu. */
-.tundra .dijitComboBoxHighlightMatch {
- background-color:#a5beda;
-}
-
-.tundra .dijitFocusedLabel {
- /* for checkboxes or radio buttons, hatch border around the corresponding label, to indicate focus */
- outline: 1px dotted #666666;
-}
+.tundra .dijitInputContainer input {margin: 0 0.1em;}.tundra .dijitTextArea {padding: 3px;}.tundra .dijitSelect .dijitButtonContents,.tundra .dijitSelect,.tundra .dijitTextBox {background:#fff url("../images/validationInputBg.png") repeat-x top left; #background:#fff url('../images/validationInputBg.gif') repeat-x top left;}.tundra .dijitSelect,.tundra .dijitTextBox {border:1px solid #b3b3b3;}.tundra .dijitSelect .dijitArrowButton,.tundra .dijitComboBox .dijitButtonNode {padding: 0 0.2em;}.tundra .dijitSelect .dijitButtonContents,.tundra .dijitTextBox .dijitButtonNode {border-color: #9b9b9b;}.tundra .dijitSelectFocused,.tundra .dijitTextBoxFocused {border-color:#406b9b;}.tundra .dijitSelectFocused TD,.tundra .dijitTextBoxFocused .dijitButtonNode {border-color:#366dba;}.tundra .dijitError {background-color:#f9f7ba; background-image:none;}.tundra .dijitErrorFocused {background-color:#f9f999; background-image:none;}.tundra .dijitValidationTextBoxError .dijitValidationIcon {width: 16px; background: transparent url('../images/warning.png') no-repeat center center;}.tundra .dijitComboBoxHighlightMatch {background-color:#a5beda;}.tundra .dijitFocusedLabel {outline: 1px dotted #666666;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/form/RadioButton.css b/lib/dijit/themes/tundra/form/RadioButton.css
index 4dfc0fa6d..f0f92a702 100644
--- a/lib/dijit/themes/tundra/form/RadioButton.css
+++ b/lib/dijit/themes/tundra/form/RadioButton.css
@@ -1,52 +1 @@
-
-.tundra .dijitRadio, /* stand alone */
-.tundra .dijitRadioIcon { /* inside a toggle button */
- background-image: url('../images/checkmark.png'); /* checkbox sprite image */
- background-repeat: no-repeat;
- width: 16px;
- height: 16px;
- margin: 0;
- padding: 0;
-}
-.dj_ie6 .tundra .dijitRadio,
-.dj_ie6 .tundra .dijitRadioIcon {
- background-image: url('../images/checkmark.gif'); /* checkbox sprite image */
-}
-
-.tundra .dijitToggleButton .dijitRadioIcon {
- /* for checkbox in a toggle button, override above setting to have no border */
- background-image: url('../images/checkmarkNoBorder.png');
-}
-.dj_ie6 .tundra .dijitToggleButton .dijitRadioIcon {
- background-image: url('../images/checkmarkNoBorder.gif');
-}
-
-.tundra .dijitRadio,
-.tundra .dijitRadioIcon {
- /* unselected */
- background-position: -112px;
-}
-
-.tundra .dijitRadioDisabled {
- /* unselected and disabled */
- background-position: -144px;
-}
-
-.tundra .dijitRadioHover {
- /* hovering over an unselected enabled radio button */
- background-position: -176px;
-}
-
-.tundra .dijitRadioChecked,
-.tundra .dijitRadioCheckedHover,
-.tundra .dijitToggleButtonChecked .dijitRadioIcon {
- /* selected. Since clicking a selected radio button doesn't change anything, there's
- * no hover effect on selected radio buttons.
- */
- background-position: -96px;
-}
-
-.tundra .dijitRadioCheckedDisabled {
- /* selected but disabled */
- background-position: -128px;
-}
+.tundra .dijitRadio, .tundra .dijitRadioIcon {background-image: url('../images/checkmark.png'); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0; padding: 0;}.dj_ie6 .tundra .dijitRadio,.dj_ie6 .tundra .dijitRadioIcon {background-image: url('../images/checkmark.gif');}.tundra .dijitToggleButton .dijitRadioIcon {background-image: url('../images/checkmarkNoBorder.png');}.dj_ie6 .tundra .dijitToggleButton .dijitRadioIcon {background-image: url('../images/checkmarkNoBorder.gif');}.tundra .dijitRadio,.tundra .dijitRadioIcon {background-position: -112px;}.tundra .dijitRadioDisabled {background-position: -144px;}.tundra .dijitRadioHover {background-position: -176px;}.tundra .dijitRadioChecked,.tundra .dijitRadioCheckedHover,.tundra .dijitToggleButtonChecked .dijitRadioIcon {background-position: -96px;}.tundra .dijitRadioCheckedDisabled {background-position: -128px;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/form/Select.css b/lib/dijit/themes/tundra/form/Select.css
index b0290167a..6df823c4a 100644
--- a/lib/dijit/themes/tundra/form/Select.css
+++ b/lib/dijit/themes/tundra/form/Select.css
@@ -1,57 +1 @@
-.tundra .dijitSelect .dijitButtonNode {
- padding: 0;
-}
-.tundra .dijitSelect .dijitButtonNode .dijitArrowButtonInner {
- margin: 0 4px 0 5px;
-}
-
-/* Make unselected content portion "look" more like a text box and less like a button */
-.tundra .dijitSelect .dijitButtonContents {
- padding-top: 1px;
- background:#fff url("../images/validationInputBg.png") repeat-x top left;
- #background:#fff url('../images/validationInputBg.gif') repeat-x top left;
-}
-.tundra .dijitSelectHover .dijitButtonContents,
-.tundra .dijitSelectActive .dijitButtonContents,
-.tundra .dijitSelectOpened .dijitButtonContents,
-.tundra .dijitSelectDisabled .dijitButtonContents,
-.tundra .dijitSelectReadOnly .dijitButtonContents{
- background: transparent none;
-}
-.dj_ie .tundra .dijitSelect .dijitButtonContents {
- padding-top: 0;
-}
-
-/* Mirror DropDownButton */
-.tundra .dijitSelectDisabled .dijitButtonNode {
- border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5;
- background:#e4e4e4 url("../images/buttonDisabled.png") top repeat-x;
-}
-.dj_ie .tundra .dijitSelectDisabled .dijitButtonNode * {
- filter: gray() alpha(opacity=50);
-}
-
-.tundra .dijitSelectHover .dijitButtonNode {
- border-color:#a5beda;
- border-bottom-color:#5c7590;
- border-right-color:#5c7590;
- color:#243C5F;
- background:#fcfdff url("../images/buttonHover.png") repeat-x bottom;
-}
-
-.tundra .dijitSelectActive .dijitButtonNode,
-.tundra .dijitSelectOpened .dijitButtonNode {
- border-color:#366dba;
- background: #ededed url("../images/buttonActive.png") bottom repeat-x;
-}
-
-/* Make the menu look more combobox-like */
-.tundra .dijitSelectMenu td {
- padding: 0;
-}
-.tundra .dijitSelectMenu .dijitMenuItemLabel,
-.tundra .dijitSelectMenu .dijitMenuArrowCell {
- padding: 0.1em 0.2em;
-}
-
-
+.tundra .dijitSelectError .dijitButtonContents,.tundra .dijitSelectHover .dijitArrowButton,.tundra .dijitSelectActive .dijitArrowButton,.tundra .dijitSelectOpened .dijitArrowButton,.tundra .dijitSelectDisabled .dijitArrowButton,.tundra .dijitSelectReadOnly .dijitArrowButton {background: transparent none;}.tundra .dijitSelect .dijitArrowButton {background: #fff url("../images/buttonEnabled.png") repeat-x bottom left; border-width: 0;}.tundra .dijitSelectDisabled,.tundra .dijitSelectDisabled TD {border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5 !important; background:#e4e4e4 url("../images/buttonDisabled.png") top repeat-x;}.dj_ie .tundra .dijitSelectDisabled TD * {filter: gray() alpha(opacity=50);}.tundra .dijitSelectHover,.tundra .dijitSelectHover TD {border-color:#a5beda #5c7590 #5c7590 #a5beda !important; color:#243C5F; background:#fcfdff url("../images/buttonHover.png") repeat-x bottom;}.tundra .dijitSelectActive,.tundra .dijitSelectOpened,.tundra .dijitSelectActive TD,.tundra .dijitSelectOpened TD {border-color:#366dba !important; background: #ededed url("../images/buttonActive.png") bottom repeat-x;}.tundra .dijitSelectMenu td {padding: 0;}.tundra .dijitSelectMenu .dijitMenuItemLabel,.tundra .dijitSelectMenu .dijitMenuArrowCell {padding: 0.1em 0.2em;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/form/Slider.css b/lib/dijit/themes/tundra/form/Slider.css
index 7465e8377..168d93c29 100644
--- a/lib/dijit/themes/tundra/form/Slider.css
+++ b/lib/dijit/themes/tundra/form/Slider.css
@@ -1,147 +1 @@
-.tundra .dijitSliderProgressBarH {
- border-color: #aab0bb;
- background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;
-}
-
-.tundra .dijitSliderProgressBarV {
- border-color: #aab0bb;
- background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;
-}
-
-.tundra .dijitSliderFocused .dijitSliderProgressBarH,
-.tundra .dijitSliderFocused .dijitSliderLeftBumper {
- background-image:url("../images/sliderFullFocus.png");
-}
-
-.tundra .dijitSliderFocused .dijitSliderProgressBarV,
-.tundra .dijitSliderFocused .dijitSliderBottomBumper {
- background-image:url("../images/sliderFullVerticalFocus.png");
-}
-
-.tundra .dijitSliderRemainingBarV {
- border-color: #b4b4b4;
- background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y bottom left;
-}
-
-.tundra .dijitSliderRemainingBarH {
- border-color: #b4b4b4;
- background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left;
-}
-
-.tundra .dijitSliderBar {
- border-style: solid;
- outline:1px;
-}
-.tundra .dijitSliderFocused .dijitSliderBar {
- border-color:#888;
-}
-
-.tundra .dijitSliderImageHandleH {
- border:0;
- width:16px;
- height:16px;
- background:url("../images/preciseSliderThumb.png") no-repeat center top;
-}
-.tundra .dijitSliderFocused .dijitSliderImageHandleH {
- background-image:url("../images/preciseSliderThumbFocus.png");
- #background-image:url("../images/preciseSliderThumbFocus.gif");
-}
-
-.dj_ie6 .tundra .dijitSliderImageHandleH {
- background-image:url("../images/preciseSliderThumb.gif");
-}
-
-.tundra .dijitSliderLeftBumper {
- border-left-width: 1px;
- border-color: #aab0bb;
- background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;
-}
-
-.tundra .dijitSliderRightBumper {
- background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left;
- border-color: #b4b4b4;
- border-right-width: 1px;
-}
-
-.tundra .dijitSliderImageHandleV {
- border:0;
- width:16px;
- height:16px;
- background:url("../images/sliderThumb.png") no-repeat center center;
-}
-
-.tundra .dijitSliderFocused .dijitSliderImageHandleV {
- background-image:url("../images/sliderThumbFocus.png");
-}
-.dj_ie6 .tundra .dijitSliderFocused .dijitSliderImageHandleV {
- background-image:url("../images/sliderThumbFocus.gif");
-}
-
-.tundra .dijitSliderBottomBumper {
- border-bottom-width: 1px;
- border-color: #aab0bb;
- background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;
-}
-
-.tundra .dijitSliderTopBumper {
- background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y top left;
- border-color: #b4b4b4;
- border-top-width: 1px;
-}
-
-.tundra .dijitSliderDecrementIconH,
-.tundra .dijitSliderDecrementIconV,
-.tundra .dijitSliderIncrementIconH,
-.tundra .dijitSliderIncrementIconV {
- background-image: url('../images/spriteArrows.png');
- background-repeat: no-repeat;
- margin: 5px;
- height: 7px;
- width: 7px;
- font-size: 1px;
-}
-.dj_ie6 .tundra .dijitSliderDecrementIconH,
-.dj_ie6 .tundra .dijitSliderDecrementIconV,
-.dj_ie6 .tundra .dijitSliderIncrementIconH,
-.dj_ie6 .tundra .dijitSliderIncrementIconV {
- background-image: url('../images/spriteArrows.gif');
-}
-
-.tundra .dijitSliderDecrementIconH {
- background-position: -7px 0;
-}
-.tundra .dijitSliderIncrementIconH {
- background-position: -14px 0;
-}
-.tundra .dijitSliderDecrementIconV {
- background-position: 0 0;
-}
-.tundra .dijitSliderIncrementIconV {
- background-position: -21px 0;
-}
-
-.tundra .dijitSliderButtonInner {
- visibility:hidden;
-}
-
-.tundra .dijitSliderReadOnly *,
-.tundra .dijitSliderDisabled * {
- border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5;
- color: #bdbdbd;
-}
-.tundra .dijitSliderReadOnly .dijitSliderDecrementIconH,
-.tundra .dijitSliderDisabled .dijitSliderDecrementIconH {
- background-position: -35px 0;
-}
-.tundra .dijitSliderReadOnly .dijitSliderIncrementIconH,
-.tundra .dijitSliderDisabled .dijitSliderIncrementIconH {
- background-position: -42px 0;
-}
-.tundra .dijitSliderReadOnly .dijitSliderDecrementIconV,
-.tundra .dijitSliderDisabled .dijitSliderDecrementIconV {
- background-position: -28px 0;
-}
-.tundra .dijitSliderReadOnly .dijitSliderIncrementIconV,
-.tundra .dijitSliderDisabled .dijitSliderIncrementIconV {
- background-position: -49px 0;
-} \ No newline at end of file
+.tundra .dijitSliderProgressBarH {border-color: #aab0bb; background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;}.tundra .dijitSliderProgressBarV {border-color: #aab0bb; background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;}.tundra .dijitSliderFocused .dijitSliderProgressBarH,.tundra .dijitSliderFocused .dijitSliderLeftBumper {background-image:url("../images/sliderFullFocus.png");}.tundra .dijitSliderFocused .dijitSliderProgressBarV,.tundra .dijitSliderFocused .dijitSliderBottomBumper {background-image:url("../images/sliderFullVerticalFocus.png");}.tundra .dijitSliderRemainingBarV {border-color: #b4b4b4; background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y bottom left;}.tundra .dijitSliderRemainingBarH {border-color: #b4b4b4; background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left;}.tundra .dijitSliderBar {border-style: solid; outline:1px;}.tundra .dijitSliderFocused .dijitSliderBar {border-color:#888;}.tundra .dijitSliderImageHandleH {border:0; width:16px; height:16px; background:url("../images/preciseSliderThumb.png") no-repeat center top;}.tundra .dijitSliderFocused .dijitSliderImageHandleH {background-image:url("../images/preciseSliderThumbFocus.png"); #background-image:url("../images/preciseSliderThumbFocus.gif");}.dj_ie6 .tundra .dijitSliderImageHandleH {background-image:url("../images/preciseSliderThumb.gif");}.tundra .dijitSliderLeftBumper {border-left-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left;}.tundra .dijitSliderRightBumper {background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left; border-color: #b4b4b4; border-right-width: 1px;}.tundra .dijitSliderImageHandleV {border:0; width:16px; height:16px; background:url("../images/sliderThumb.png") no-repeat center center;}.tundra .dijitSliderFocused .dijitSliderImageHandleV {background-image:url("../images/sliderThumbFocus.png");}.dj_ie6 .tundra .dijitSliderFocused .dijitSliderImageHandleV {background-image:url("../images/sliderThumbFocus.gif");}.tundra .dijitSliderBottomBumper {border-bottom-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left;}.tundra .dijitSliderTopBumper {background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y top left; border-color: #b4b4b4; border-top-width: 1px;}.tundra .dijitSliderDecrementIconH,.tundra .dijitSliderDecrementIconV,.tundra .dijitSliderIncrementIconH,.tundra .dijitSliderIncrementIconV {background-image: url('../images/spriteArrows.png'); background-repeat: no-repeat; margin: 5px; height: 7px; width: 7px; font-size: 1px;}.dj_ie6 .tundra .dijitSliderDecrementIconH,.dj_ie6 .tundra .dijitSliderDecrementIconV,.dj_ie6 .tundra .dijitSliderIncrementIconH,.dj_ie6 .tundra .dijitSliderIncrementIconV {background-image: url('../images/spriteArrows.gif');}.tundra .dijitSliderDecrementIconH {background-position: -7px 0;}.tundra .dijitSliderIncrementIconH {background-position: -14px 0;}.tundra .dijitSliderDecrementIconV {background-position: 0 0;}.tundra .dijitSliderIncrementIconV {background-position: -21px 0;}.tundra .dijitSliderButtonInner {visibility:hidden;}.tundra .dijitSliderReadOnly *,.tundra .dijitSliderDisabled * {border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; color: #bdbdbd;}.tundra .dijitSliderReadOnly .dijitSliderDecrementIconH,.tundra .dijitSliderDisabled .dijitSliderDecrementIconH {background-position: -35px 0;}.tundra .dijitSliderReadOnly .dijitSliderIncrementIconH,.tundra .dijitSliderDisabled .dijitSliderIncrementIconH {background-position: -42px 0;}.tundra .dijitSliderReadOnly .dijitSliderDecrementIconV,.tundra .dijitSliderDisabled .dijitSliderDecrementIconV {background-position: -28px 0;}.tundra .dijitSliderReadOnly .dijitSliderIncrementIconV,.tundra .dijitSliderDisabled .dijitSliderIncrementIconV {background-position: -49px 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/form/Slider_rtl.css b/lib/dijit/themes/tundra/form/Slider_rtl.css
index 9375c4ecb..2767a6d06 100644
--- a/lib/dijit/themes/tundra/form/Slider_rtl.css
+++ b/lib/dijit/themes/tundra/form/Slider_rtl.css
@@ -1,31 +1 @@
-.tundra .dijitSliderRtl .dijitSliderProgressBarH,
-.tundra .dijitSliderRtl .dijitSliderRemainingBarH,
-.tundra .dijitSliderRtl .dijitSliderLeftBumper,
-.tundra .dijitSliderRtl .dijitSliderRightBumper,
-.tundra .dijitSliderRtl .dijitSliderTopBumper {
- background-position: top right;
-}
-
-.tundra .dijitSliderRtl .dijitSliderProgressBarV,
-.tundra .dijitSliderRtl .dijitSliderRemainingBarV,
-.tundra .dijitSliderRtl .dijitSliderBottomBumper {
- background-position: bottom right;
-}
-
-.tundra .dijitSliderRtl .dijitSliderLeftBumper {
- border-left-width: 0;
- border-right-width: 1px;
-}
-
-.tundra .dijitSliderRtl .dijitSliderRightBumper {
- border-left-width: 1px;
- border-right-width: 0;
-}
-
-.tundra .dijitSliderRtl .dijitSliderIncrementIconH {
- background-position: -7px 0;
-}
-
-.tundra .dijitSliderRtl .dijitSliderDecrementIconH {
- background-position: -14px 0;
-}
+.tundra .dijitSliderRtl .dijitSliderProgressBarH,.tundra .dijitSliderRtl .dijitSliderRemainingBarH,.tundra .dijitSliderRtl .dijitSliderLeftBumper,.tundra .dijitSliderRtl .dijitSliderRightBumper,.tundra .dijitSliderRtl .dijitSliderTopBumper {background-position: top right;}.tundra .dijitSliderRtl .dijitSliderProgressBarV,.tundra .dijitSliderRtl .dijitSliderRemainingBarV,.tundra .dijitSliderRtl .dijitSliderBottomBumper {background-position: bottom right;}.tundra .dijitSliderRtl .dijitSliderLeftBumper {border-left-width: 0; border-right-width: 1px;}.tundra .dijitSliderRtl .dijitSliderRightBumper {border-left-width: 1px; border-right-width: 0;}.tundra .dijitSliderRtl .dijitSliderIncrementIconH {background-position: -7px 0;}.tundra .dijitSliderRtl .dijitSliderDecrementIconH {background-position: -14px 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/images/dndNoCopy.png b/lib/dijit/themes/tundra/images/dndNoCopy.png
index 9bf9c3396..998c2f269 100644
--- a/lib/dijit/themes/tundra/images/dndNoCopy.png
+++ b/lib/dijit/themes/tundra/images/dndNoCopy.png
Binary files differ
diff --git a/lib/dijit/themes/tundra/images/dndNoMove.png b/lib/dijit/themes/tundra/images/dndNoMove.png
index cb8bd8bdd..e909173e0 100644
--- a/lib/dijit/themes/tundra/images/dndNoMove.png
+++ b/lib/dijit/themes/tundra/images/dndNoMove.png
Binary files differ
diff --git a/lib/dijit/themes/tundra/layout/AccordionContainer.css b/lib/dijit/themes/tundra/layout/AccordionContainer.css
index c5621efab..0f04a0e8f 100644
--- a/lib/dijit/themes/tundra/layout/AccordionContainer.css
+++ b/lib/dijit/themes/tundra/layout/AccordionContainer.css
@@ -1,26 +1 @@
-/* Accordion */
-
-.tundra .dijitAccordionContainer {
- border-color: #ccc;
- background-color: #fff;
-}
-
-/* common */
-
-.tundra .dijitAccordionTitle {
- background:#fafafa url("../images/titleBar.png") repeat-x bottom left;
- border-top: 1px solid #bfbfbf;
- padding: 4px 4px 4px 8px;
-}
-
-.tundra .dijitAccordionTitleHover {
- background: #f8fafd url("../images/accordionItemHover.gif") bottom repeat-x;
-}
-
-.tundra .dijitAccordionTitleSelected {
- background: #f9f9f9 url("../images/accordionItemActive.gif") bottom repeat-x;
- font-weight: bold;
- border-top: 1px solid #aaaaaa;
- border-bottom: 1px solid #bfbfbf;
- padding: 4px 4px 4px 8px;
-} \ No newline at end of file
+.tundra .dijitAccordionContainer {border-color: #ccc; background-color: #fff;}.tundra .dijitAccordionTitle {background:#fafafa url("../images/titleBar.png") repeat-x bottom left; border-top: 1px solid #bfbfbf; padding: 4px 4px 4px 8px;}.tundra .dijitAccordionTitleHover {background: #f8fafd url("../images/accordionItemHover.gif") bottom repeat-x;}.tundra .dijitAccordionTitleSelected {background: #f9f9f9 url("../images/accordionItemActive.gif") bottom repeat-x; font-weight: bold; border-top: 1px solid #aaaaaa; border-bottom: 1px solid #bfbfbf; padding: 4px 4px 4px 8px;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/layout/BorderContainer.css b/lib/dijit/themes/tundra/layout/BorderContainer.css
index 0dd1b1b51..1f0a30f90 100644
--- a/lib/dijit/themes/tundra/layout/BorderContainer.css
+++ b/lib/dijit/themes/tundra/layout/BorderContainer.css
@@ -1,69 +1 @@
-/* BorderContainer */
-
-.tundra .dijitBorderContainer {
- background-color: #fcfcfc;
- padding: 5px;
-}
-
-.tundra .dijitSplitContainer-child,
-.tundra .dijitBorderContainer-child {
- /* By default put borders on all children of BorderContainer,
- * to give illusion of borders on the splitters themselves.
- */
- border: 1px #ccc solid;
-}
-
-.tundra .dijitBorderContainer-dijitTabContainerTop,
-.tundra .dijitBorderContainer-dijitTabContainerBottom,
-.tundra .dijitBorderContainer-dijitTabContainerLeft,
-.tundra .dijitBorderContainer-dijitTabContainerRight {
- /* except that TabContainer defines borders on it's sub-nodes (tablist and dijitTabPaneWrapper),
- * so override rule setting border on domNode
- */
- border: none;
-}
-
-.tundra .dijitBorderContainer-dijitBorderContainer {
- /* also, make nested BorderContainers look like a single big widget with lots of splitters */
- border: none;
- padding: 0;
-}
-
-.tundra .dijitSplitterH,
-.tundra .dijitGutterH {
- background:#fcfcfc;
- border:0;
- height:5px;
-}
-
-.tundra .dijitSplitterH .dijitSplitterThumb {
- background:#B0B0B0 none;
- height:1px;
- top:2px;
- width:19px;
-}
-
-.tundra .dijitSplitterV,
-.tundra .dijitGutterV {
- background:#fcfcfc;
- border:0;
- width:5px;
-}
-
-.tundra .dijitSplitterV .dijitSplitterThumb {
- background:#B0B0B0 none;
- height:19px;
- left:2px;
- width:1px;
-}
-
-/* active splitter */
-.tundra .dijitSplitterActive {
- font-size: 1px;
- background-image: none;
- background-color: #aaa;
- -moz-opacity: 0.6;
- opacity: 0.6;
- filter: Alpha(Opacity=60);
- margin: 0;
-}
+.tundra .dijitBorderContainer {background-color: #fcfcfc; padding: 5px;}.tundra .dijitSplitContainer-child,.tundra .dijitBorderContainer-child {border: 1px #ccc solid;}.tundra .dijitBorderContainer-dijitTabContainerTop,.tundra .dijitBorderContainer-dijitTabContainerBottom,.tundra .dijitBorderContainer-dijitTabContainerLeft,.tundra .dijitBorderContainer-dijitTabContainerRight {border: none;}.tundra .dijitBorderContainer-dijitBorderContainer {border: none; padding: 0;}.tundra .dijitSplitterH,.tundra .dijitGutterH {background:#fcfcfc; border:0; height:5px;}.tundra .dijitSplitterH .dijitSplitterThumb {background:#B0B0B0 none; height:1px; top:2px; width:19px;}.tundra .dijitSplitterV,.tundra .dijitGutterV {background:#fcfcfc; border:0; width:5px;}.tundra .dijitSplitterV .dijitSplitterThumb {background:#B0B0B0 none; height:19px; left:2px; width:1px;}.tundra .dijitSplitterActive {font-size: 1px; background-image: none; background-color: #aaa; -moz-opacity: 0.6; opacity: 0.6; filter: Alpha(Opacity=60); margin: 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/layout/ContentPane.css b/lib/dijit/themes/tundra/layout/ContentPane.css
index 21d25d524..623396bbe 100644
--- a/lib/dijit/themes/tundra/layout/ContentPane.css
+++ b/lib/dijit/themes/tundra/layout/ContentPane.css
@@ -1,21 +1 @@
-/* ContentPane */
-
-.tundra .dijitContentPane {
- padding: 0;
-}
-
-/* nested layouts */
-.tundra .dijitTabContainerTop-dijitContentPane,
-.tundra .dijitTabContainerLeft-dijitContentPane,
-.tundra .dijitTabContainerBottom-dijitContentPane,
-.tundra .dijitTabContainerRight-dijitContentPane,
-.tundra .dijitAccordionContainer-dijitContentPane {
- background-color: #fff;
- padding: 5px;
-}
-
-.tundra .dijitSplitContainer-dijitContentPane,
-.tundra .dijitBorderContainer-dijitContentPane {
- background-color: #fff; /* override background-color setting on parent .dijitBorderContainer */
- padding: 5px;
-} \ No newline at end of file
+.tundra .dijitContentPane {padding: 0;}.tundra .dijitTabContainerTop-dijitContentPane,.tundra .dijitTabContainerLeft-dijitContentPane,.tundra .dijitTabContainerBottom-dijitContentPane,.tundra .dijitTabContainerRight-dijitContentPane,.tundra .dijitAccordionContainer-dijitContentPane {background-color: #fff; padding: 5px;}.tundra .dijitSplitContainer-dijitContentPane,.tundra .dijitBorderContainer-dijitContentPane {background-color: #fff; padding: 5px;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/layout/SplitContainer.css b/lib/dijit/themes/tundra/layout/SplitContainer.css
index 5a3eed6c9..503aa21c1 100644
--- a/lib/dijit/themes/tundra/layout/SplitContainer.css
+++ b/lib/dijit/themes/tundra/layout/SplitContainer.css
@@ -1,31 +1 @@
-.tundra .dijitSplitContainerSizerH {
- background:url("../images/splitContainerSizerV.png") repeat-y #fff;
- border:0;
- border-left:1px solid #bfbfbf;
- border-right:1px solid #bfbfbf;
- width:7px;
-}
-
-.tundra .dijitSplitContainerSizerH .thumb {
- background:url("../images/splitContainerSizerV-thumb.png") no-repeat #ccc;
- left:1px;
- width:3px;
- height:19px;
- overflow: hidden;
-}
-
-.tundra .dijitSplitContainerSizerV {
- background:url("../images/splitContainerSizerH.png") repeat-x #fff;
- border:0;
- border-top:1px solid #bfbfbf;
- border-bottom:1px solid #bfbfbf;
- height:7px;
-}
-
-.tundra .dijitSplitContainerSizerV .thumb {
- background:url("../images/splitContainerSizerH-thumb.png") no-repeat #ccc;
- top:1px;
- width:19px;
- height:3px;
- overflow: hidden;
-}
+.tundra .dijitSplitContainerSizerH {background:url("../images/splitContainerSizerV.png") repeat-y #fff; border:0; border-left:1px solid #bfbfbf; border-right:1px solid #bfbfbf; width:7px;}.tundra .dijitSplitContainerSizerH .thumb {background:url("../images/splitContainerSizerV-thumb.png") no-repeat #ccc; left:1px; width:3px; height:19px; overflow: hidden;}.tundra .dijitSplitContainerSizerV {background:url("../images/splitContainerSizerH.png") repeat-x #fff; border:0; border-top:1px solid #bfbfbf; border-bottom:1px solid #bfbfbf; height:7px;}.tundra .dijitSplitContainerSizerV .thumb {background:url("../images/splitContainerSizerH-thumb.png") no-repeat #ccc; top:1px; width:19px; height:3px; overflow: hidden;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/layout/TabContainer.css b/lib/dijit/themes/tundra/layout/TabContainer.css
index 667da4ad9..0ac8b9537 100644
--- a/lib/dijit/themes/tundra/layout/TabContainer.css
+++ b/lib/dijit/themes/tundra/layout/TabContainer.css
@@ -1,335 +1 @@
-/* Tabs, shared classes */
-.tundra .dijitTabPaneWrapper {
- background:#fff;
- border:1px solid #ccc;
- margin: 0;
- padding: 0;
-}
-
-.tundra .dijitTab {
- line-height:normal;
- margin-right:4px; /* space between one tab and the next in top/bottom mode */
- padding:0;
- border:1px solid #ccc;
- background:#e2e2e2 url("../images/tabEnabled.png") repeat-x;
-}
-
-.tundra .dijitTabInnerDiv {
- padding:2px 8px 2px 9px;
-}
-
-.tundra .dijitTabSpacer {
- display: none;
-}
-
-.tundra .dijitTabContainer .tabStripRBtn {
- margin-right: 20px;
-}
-.tundra .dijitTabContainer .tabStripLBtn {
- margin-left: 20px;
-}
-
-.tundra .nowrapTabStrip .dijitTab {
- top: 2px;
-}
-.tundra .dijitTabContainerBottom .nowrapTabStrip .dijitTab {
- top: 0;
- bottom: 2px;
-}
-
-/* checked tab*/
-.tundra .dijitTabChecked {
- /* the selected tab (with or without hover) */
- background-color:#fff;
- border-color: #ccc;
- background-image:none;
-}
-
-/* hovered tab */
-.tundra .dijitTabHover {
- color: #243C5F;
- border-top-color:#92a0b3;
- border-left-color:#92a0b3;
- border-right-color:#92a0b3;
- border-bottom-color:#92a0b3;
- background:#e2e2e2 url("../images/tabHover.gif") repeat-x;
-}
-
-.tundra .dijitTabContainerTop .dijitTabHover {
- border-bottom-color:#ccc;
-}
-
-.tundra .dijitTabContainerBottom .dijitTabHover {
- border-top-color:#ccc;
-}
-
-.tundra .dijitTabContainerLeft .dijitTabHover {
- border-right-color:#ccc;
-}
-
-.tundra .dijitTabContainerRight .dijitTabHover {
- border-left-color:#ccc;
-}
-
-.tundra .dijitTabContainer .dijitTabCheckedHover {
- color: inherit;
- border:1px solid #ccc;
- background:#fff;
-}
-
-.tundra .dijitTab .tabLabel {
- /* make sure tabs w/close button and w/out close button are same height, even w/small (<12px) font */
- min-height: 12px;
- display: inline-block;
-}
-
-/* Nested Tabs */
-
-.tundra .dijitTabContainerNested .dijitTabListWrapper {
- height: auto;
-}
-
-.tundra .dijitTabContainerNested .dijitTabContainerTop-tabs {
- border-bottom: 1px solid #CCC;
-}
-
-.tundra .dijitTabContainerTabListNested .dijitTab {
- background: none;
- border: none;
- top: 0; /* to override top: 1px/-1px for normal tabs */
-}
-.tundra .dijitTabContainerTabListNested .dijitTab .dijitTabContent {
-}
-.tundra .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent .tabLabel {
- text-decoration: underline;
-}
-.tundra .dijitTabContainerTabListNested .dijitTabChecked .dijitTabContent .tabLabel {
- text-decoration: underline;
- font-weight: bold;
- /*background:#f3f3f3;*/
-}
-.tundra .dijitTabContainer .dijitTabPaneWrapperNested {
- border: none; /* prevent double border */
-}
-
-/* Close button */
-
-.tundra .dijitTabCloseButton {
- background: url("../images/tabClose.png") no-repeat right top;
- width: 12px;
- height: 12px;
-}
-.dj_ie6 .tundra .dijitTabCloseButton {
- background-image : url("../images/tabClose.gif");
-}
-
-.tundra .dijitTabCloseButtonHover {
- background-image : url("../images/tabCloseHover.png");
-}
-.dj_ie6 .tundra .dijitTabCloseButtonHover {
- background-image : url("../images/tabCloseHover.gif");
-}
-
-/* ================================ */
-/* top tabs */
-
-.tundra .dijitTabContainerTop-tabs {
- margin-bottom: 0;
- border-color: #cccccc;
- padding-left: 3px;
- background-position: bottom;
-}
-.tundra .dijitTabContainerTop-tabs .dijitTab {
- top: 0;
- margin-bottom: -1px;
-}
-
-/* top container */
-.tundra .dijitTabContainerTop-container {
- border-top: none;
-}
-
-/* checked tabs */
-.tundra .dijitTabContainerTop-tabs .dijitTabChecked {
- border-bottom-color:white;
-}
-
-.tundra .dijitTabContainerTop-tabs,
-.tundra .dijitTabContainerBottom-tabs {
- padding-left: 3px;
- padding-right: 3px;
-}
-
-/* strip */
-.tundra .dijitTabContainerTopStrip {
- border-top: 1px solid #CCC;
- border-right: 1px solid #CCC;
- border-left: 1px solid #CCC;
- padding-top: 2px;
- background: #f2f2f2;
-}
-
-.tundra .dijitTabContainerTopNone {
- padding-top: 0;
-}
-
-
-/* ================================ */
-/* bottom tabs */
-.tundra .dijitTabContainerBottom-tabs {
- margin-top: 0;
- border-color: #cccccc;
- background-position: top;
- padding-left: 3px;
-}
-.tundra .dijitTabContainerBottom-tabs .dijitTab {
- bottom: 0;
- margin-top: -1px;
-}
-
-/* bottom container */
-.tundra .dijitTabContainerBottom-container {
- border-bottom: none;
-}
-
-/* checked tabs */
-.tundra .dijitTabContainerBottom-tabs .dijitTabChecked {
- border-top-color:white;
-}
-
-/* strip */
-.tundra .dijitTabContainerBottomStrip {
- padding-bottom: 2px;
- border: 1px solid #ccc;
- background: #f2f2f2;
- border-top: none;
-}
-
-/* ================================ */
-/* right tabs */
-.tundra .dijitTabContainerRight-tabs {
- border-color: #ccc;
- height: 100%;
- padding-top: 3px;
-}
-
-.tundra .dijitTabContainerRightStrip {
- margin-left: -1px;
-}
-
-/* right container */
-.tundra .dijitTabContainerRight-container {
- border-right: none;
-}
-
-/* checked tabs */
-.tundra .dijitTabContainerRight-tabs .dijitTabChecked {
- border-left-color:white;
-}
-
-/* strip */
-.tundra .dijitTabContainerRightStrip {
- padding-right: 2px;
- border: 1px solid #ccc;
-}
-
-.tundra .dijitTabContainerRightStrip {
- background: #f2f2f2;
-}
-
-/* ================================ */
-/* left tabs */
-.tundra .dijitTabContainerLeft-tabs {
- border-color: #ccc;
- padding-top: 3px;
- height: 100%;
-}
-
-/* left conatiner */
-.tundra .dijitTabContainerLeft-container {
- border-left: none;
-}
-
-/* checked tabs */
-.tundra .dijitTabContainerLeft-tabs .dijitTabChecked {
- border-right-color:white;
-}
-
-/* strip */
-.tundra .dijitTabContainerLeftStrip {
- padding-left: 2px;
- border: 1px solid #ccc;
- background: #f2f2f2;
- border-right: none;
-}
-
-/* ================================ */
-/* left/right tabs */
-.tundra .dijitTabContainerLeft-tabs .dijitTab,
-.tundra .dijitTabContainerRight-tabs .dijitTab {
- margin-right:0;
- margin-bottom:4px; /* space between one tab and the next in left/right mode */
-}
-
-/* ================================ */
-
-/* this resets the tabcontainer stripe when within a contentpane */
-.tundra .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs {
- border-left: 0 solid #ccc;
- border-top: 0 solid #ccc;
- border-right: 0 solid #ccc;
- padding-top: 0;
- padding-left: 0;
-}
-
-/* ================================ */
-
-/* Menu and slider control styles */
-.tundra .dijitTabContainer .tabStripButton {
- margin-right: 0;
- padding-top: 2px;
- z-index: 12;
-}
-
-.tundra .dijitTabContainerBottom .tabStripButton {
- padding-top: 2px;
-}
-
-.tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv {
- padding-bottom: 3px;
- padding-top: 1px;
-}
-
-.tundra .tabStripButton .dijitTabInnerDiv {
- padding: 3px 2px 4px 2px;
-}
-
-.dj_ie6 .tundra .tabStripButton .dijitTabInnerDiv,
-.dj_ie7 .tundra .tabStripButton .dijitTabInnerDiv,
-.dj_opera .tundra .tabStripButton .dijitTabInnerDiv {
- padding-bottom: 5px;
-}
-.dj_ie6 .tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv,
-.dj_ie7 .tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv,
-.dj_opera .tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv {
- padding-bottom: 4px;
-}
-
-.tundra .dijitTabStripIcon {
- height: 14px;
- width: 14px;
- background: url(../images/spriteRoundedIconsSmall.png) no-repeat left top ;
-}
-
-.dj_ie6 .tundra .dijitTabStripIcon {
- background-image: url(../images/spriteRoundedIconsSmall.gif);
-}
-
-.tundra .dijitTabStripSlideRightIcon {
- background-position: -30px top;
-}
-
-.tundra .dijitTabStripMenuIcon {
- background-position: -15px top;
-}
-
+.tundra .dijitTabPaneWrapper {background:#fff; border:1px solid #ccc; margin: 0; padding: 0;}.tundra .dijitTab {line-height:normal; margin-right:4px; padding:2px 8px 2px 9px; border:1px solid #ccc; background:#e2e2e2 url("../images/tabEnabled.png") repeat-x;}.tundra .dijitTabSpacer {display: none;}.tundra .dijitTabContainer .tabStripRBtn {margin-right: 20px;}.tundra .dijitTabContainer .tabStripLBtn {margin-left: 20px;}.tundra .nowrapTabStrip .dijitTab {top: 2px;}.tundra .dijitTabContainerBottom .nowrapTabStrip .dijitTab {top: 0; bottom: 2px;}.tundra .dijitTabChecked {background-color:#fff; border-color: #ccc; background-image:none;}.tundra .dijitTabHover {color: #243C5F; border-top-color:#92a0b3; border-left-color:#92a0b3; border-right-color:#92a0b3; border-bottom-color:#92a0b3; background:#e2e2e2 url("../images/tabHover.gif") repeat-x;}.tundra .dijitTabContainerTop .dijitTabHover {border-bottom-color:#ccc;}.tundra .dijitTabContainerBottom .dijitTabHover {border-top-color:#ccc;}.tundra .dijitTabContainerLeft .dijitTabHover {border-right-color:#ccc;}.tundra .dijitTabContainerRight .dijitTabHover {border-left-color:#ccc;}.tundra .dijitTabContainer .dijitTabCheckedHover {color: inherit; border:1px solid #ccc; background:#fff;}.tundra .dijitTab .tabLabel {min-height: 12px; display: inline-block;}.tundra .dijitTabContainerNested .dijitTabListWrapper {height: auto;}.tundra .dijitTabContainerNested .dijitTabContainerTop-tabs {border-bottom: 1px solid #CCC;}.tundra .dijitTabContainerTabListNested .dijitTab {background: none; border: none; top: 0;}.tundra .dijitTabContainerTabListNested .dijitTabHover .tabLabel {text-decoration: underline;}.tundra .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {text-decoration: underline; font-weight: bold;}.tundra .dijitTabContainer .dijitTabPaneWrapperNested {border: none;}.tundra .dijitTabCloseButton {background: url("../images/tabClose.png") no-repeat right top; width: 12px; height: 12px;}.dj_ie6 .tundra .dijitTabCloseButton {background-image : url("../images/tabClose.gif");}.tundra .dijitTabCloseButtonHover {background-image : url("../images/tabCloseHover.png");}.dj_ie6 .tundra .dijitTabCloseButtonHover {background-image : url("../images/tabCloseHover.gif");}.tundra .dijitTabContainerTop-tabs {margin-bottom: 0; border-color: #cccccc; padding-left: 3px; background-position: bottom;}.tundra .dijitTabContainerTop-tabs .dijitTab {top: 0; margin-bottom: -1px;}.tundra .dijitTabContainerTop-container {border-top: none;}.tundra .dijitTabContainerTop-tabs .dijitTabChecked {border-bottom-color:white;}.tundra .dijitTabContainerTop-tabs,.tundra .dijitTabContainerBottom-tabs {padding-left: 3px; padding-right: 3px;}.tundra .dijitTabContainerTopStrip {border-top: 1px solid #CCC; border-right: 1px solid #CCC; border-left: 1px solid #CCC; padding-top: 2px; background: #f2f2f2;}.tundra .dijitTabContainerTopNone {padding-top: 0;}.tundra .dijitTabContainerBottom-tabs {margin-top: 0; border-color: #cccccc; background-position: top; padding-left: 3px;}.tundra .dijitTabContainerBottom-tabs .dijitTab {bottom: 0; margin-top: -1px;}.tundra .dijitTabContainerBottom-container {border-bottom: none;}.tundra .dijitTabContainerBottom-tabs .dijitTabChecked {border-top-color:white;}.tundra .dijitTabContainerBottomStrip {padding-bottom: 2px; border: 1px solid #ccc; background: #f2f2f2; border-top: none;}.tundra .dijitTabContainerRight-tabs {border-color: #ccc; height: 100%; padding-top: 3px;}.tundra .dijitTabContainerRightStrip {margin-left: -1px;}.tundra .dijitTabContainerRight-container {border-right: none;}.tundra .dijitTabContainerRight-tabs .dijitTabChecked {border-left-color:white;}.tundra .dijitTabContainerRightStrip {padding-right: 2px; border: 1px solid #ccc;}.tundra .dijitTabContainerRightStrip {background: #f2f2f2;}.tundra .dijitTabContainerLeft-tabs {border-color: #ccc; padding-top: 3px; height: 100%;}.tundra .dijitTabContainerLeft-container {border-left: none;}.tundra .dijitTabContainerLeft-tabs .dijitTabChecked {border-right-color:white;}.tundra .dijitTabContainerLeftStrip {padding-left: 2px; border: 1px solid #ccc; background: #f2f2f2; border-right: none;}.tundra .dijitTabContainerLeft-tabs .dijitTab,.tundra .dijitTabContainerRight-tabs .dijitTab {margin-right:0; margin-bottom:4px;}.tundra .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs {border-left: 0 solid #ccc; border-top: 0 solid #ccc; border-right: 0 solid #ccc; padding-top: 0; padding-left: 0;}.tundra .dijitTabContainer .tabStripButton {margin-right: 0; padding-top: 2px; z-index: 12;}.tundra .dijitTabContainerBottom .tabStripButton {padding-top: 3px;}.tundra .tabStrip-disabled .tabStripButton {padding-bottom: 3px; padding-top: 1px;}.tundra .tabStripButton {padding: 3px 2px 4px 2px;}.tundra .dijitTabStripIcon {height: 14px; width: 14px; background: url(../images/spriteRoundedIconsSmall.png) no-repeat left top ;}.dj_ie6 .tundra .dijitTabStripIcon {background-image: url(../images/spriteRoundedIconsSmall.gif);}.tundra .dijitTabStripSlideRightIcon {background-position: -30px top;}.tundra .dijitTabStripMenuIcon {background-position: -15px top;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/layout/TabContainer_rtl.css b/lib/dijit/themes/tundra/layout/TabContainer_rtl.css
index fb8e28e9b..94dbd77de 100644
--- a/lib/dijit/themes/tundra/layout/TabContainer_rtl.css
+++ b/lib/dijit/themes/tundra/layout/TabContainer_rtl.css
@@ -1,51 +1 @@
-.tundra .dijitTabRtl {
- -moz-box-orient:horizontal;
- text-align: right;
-}
-
-.tundra .dijitTabRtl .dijitTabInnerDiv {
- padding:2px 9px 2px 8px;
-}
-
-.tundra .tabStrip-disabled .tabStripButtonRtl .dijitTabInnerDiv {
- /* this is not special for RTL mode, but just here to override rule above (for enabled tabstrip) */
- padding-bottom: 3px;
- padding-top: 1px;
-}
-
-.tundra .tabStripButtonRtl .dijitTabInnerDiv {
- padding: 3px 2px 4px 2px;
-}
-
-.tundra .dijitTabPaneWrapper {
- #zoom: 1;
-}
-
-.dj_ie-rtl .tundra .dijitTabContainerLeft-tabs {
- margin-left: 1px !important;
-}
-
-.dj_ie-rtl .tundra .dijitTabContainerRight-tabs {
- margin-right: 1px !important;
-}
-
-.tundra .dijitTabContainerLeft-tabs .dijitTabRtl,
-.tundra .dijitTabContainerRight-tabs .dijitTabRtl {
- margin-left:0;
-}
-
-.dj_ie .tundra .dijitTabRtl .dijitTabInnerDiv {
- /* without this the tab label and icon become invisible, as though they were set to visibility:hidden */
- width : 0.1% !important;
-}
-
-
-
-.dj_iequirks-rtl .tundra .dijitTabContainerTopNone,
-.dj_iequirks-rtl .tundra .dijitTabContainerBottomNone {
- /* this strange rule prevents IE6 bug in themeTesterQuirk.html?dir=rtl upon closing
- * "Closable" tab, where the other tabs disappear
- */
- border-left: 1px solid #fff;
- border-right: 1px solid #fff;
-}
+.tundra .dijitTabRtl {padding:2px 9px 2px 8px;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/tundra.css b/lib/dijit/themes/tundra/tundra.css
index f1d239c88..c07c3b7c1 100644
--- a/lib/dijit/themes/tundra/tundra.css
+++ b/lib/dijit/themes/tundra/tundra.css
@@ -1,41 +1 @@
-/*
- Adds cosmetic styling to Dijit. Users may swap with a custom theme CSS file.
-
- NOTES:
- ---
- Dialog.css contains css classes for both Dialog and Tooltip!
- This because currently a dijit.TooltipDialog exist. Until this is resolved
- you need to include Dialog.css for both dijits
- ---
- Toolbar.css contains classes also used in Editor. Until this is resolved
- you need to include Toolbar.css for both Toolbar and Editor
- ---
- Button.css contains classes for combobox,
-
-*/
-@import url("../dijit.css");
-@import url("../../icons/commonIcons.css");/*sprite containing common icons to be used by all themes*/
-@import url("Common.css");
-@import url("layout/ContentPane.css");
-@import url("layout/TabContainer.css");
-@import url("layout/AccordionContainer.css");
-@import url("layout/SplitContainer.css");
-@import url("layout/BorderContainer.css");
-@import url("form/Common.css");
-@import url("form/Button.css");
-@import url("form/Checkbox.css");
-@import url("form/RadioButton.css");
-@import url("form/Slider.css");
-@import url("form/Select.css");
-@import url("Tree.css");
-@import url("ProgressBar.css");
-@import url("TitlePane.css");
-@import url("Calendar.css");
-@import url("TimePicker.css");
-@import url("Toolbar.css");
-@import url("Dialog.css");
-@import url("Menu.css");
-@import url("Editor.css");
-@import url("../../icons/editorIcons.css"); /* sprite for editor icons to be used by all themes */
-@import url("ColorPalette.css");
-@import url("tundra_rtl.css");
+.dijitReset {margin:0; border:0; padding:0; font: inherit; line-height:normal; color: inherit;}.dj_a11y .dijitReset {-moz-appearance: none;}.dijitInline {display:inline-block; #zoom: 1; #display:inline; border:0; padding:0; vertical-align:middle; #vertical-align: auto;}table.dijitInline {display:inline-table; box-sizing: content-box; -moz-box-sizing: content-box;}.dijitHidden {display: none !important;}.dijitVisible {display: block !important; position: relative;}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer {#zoom: 1; overflow: hidden; float: none !important; position: relative;}.dj_ie7 .dijitInputContainer {float: left !important; clear: left; display: inline-block !important;}.dj_ie .dijitSelect input,.dj_ie input.dijitTextBox,.dj_ie .dijitTextBox input {font-size: 100%;}.dijitSelect .dijitButtonText {float: left; vertical-align: top;}TABLE.dijitSelect {padding: 0 !important;}.dijitTextBox .dijitSpinnerButtonContainer,.dijitTextBox .dijitArrowButtonContainer,.dijitValidationTextBox .dijitValidationContainer {float: right; text-align: center;}.dijitSelect input.dijitInputField,.dijitTextBox input.dijitInputField {padding-left: 0 !important; padding-right: 0 !important;}.dijitValidationTextBox .dijitValidationContainer {display: none;}.dijitTeeny {font-size:1px; line-height:1px;}.dijitOffScreen {position: absolute !important; left: 50% !important; top: -10000px !important;}.dijitPopup {position: absolute; background-color: transparent; margin: 0; border: 0; padding: 0;}.dijitPositionOnly {padding: 0 !important; border: 0 !important; background-color: transparent !important; background-image: none !important; height: auto !important; width: auto !important;}.dijitNonPositionOnly {float: none !important; position: static !important; margin: 0 0 0 0 !important; vertical-align: middle !important;}.dijitBackgroundIframe {position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: -1; border: 0; padding: 0; margin: 0;}.dijitDisplayNone {display:none !important;}.dijitContainer {overflow: hidden;}.dj_a11y .dijitIcon,.dj_a11y div.dijitArrowButtonInner, .dj_a11y span.dijitArrowButtonInner,.dj_a11y img.dijitArrowButtonInner,.dj_a11y .dijitCalendarIncrementControl,.dj_a11y .dijitTreeExpando {display: none;}.dijitSpinner div.dijitArrowButtonInner {display: block;}.dj_a11y .dijitA11ySideArrow {display: inline !important; cursor: pointer;}.dj_a11y .dijitCalendarDateLabel {padding: 1px; border: 0px !important;}.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {border-style: solid !important; border-width: 1px !important; padding: 0;}.dj_a11y .dijitCalendarDateTemplate {padding-bottom: 0.1em !important; border: 0px !important;}.dj_a11y .dijitButtonNode {border: black outset medium !important; padding: 0 !important;}.dj_a11y .dijitArrowButton {padding: 0 !important;}.dj_a11y .dijitButtonContents {margin: 0.15em;}.dj_a11y .dijitTextBoxReadOnly .dijitInputField,.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {border-style: outset!important; border-width: medium!important; border-color: #999 !important; color:#999 !important;}.dijitButtonNode * {vertical-align: middle;}.dijitSelect .dijitArrowButtonInner,.dijitButtonNode .dijitArrowButtonInner {background: no-repeat center; width: 12px; height: 12px; direction: ltr;}.dijitLeft {background-position:left top; background-repeat:no-repeat;}.dijitStretch {white-space:nowrap; background-repeat:repeat-x;}.dijitRight {#display:inline; background-position:right top; background-repeat:no-repeat;}.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {opacity: 0.5;}.dijitToggleButton,.dijitButton,.dijitDropDownButton,.dijitComboButton {margin: 0.2em; vertical-align: middle;}.dijitButtonContents {display: block;}td.dijitButtonContents {display: table-cell;}.dijitButtonNode img {vertical-align:middle;}.dijitToolbar .dijitComboButton {border-collapse: separate;}.dijitToolbar .dijitToggleButton,.dijitToolbar .dijitButton,.dijitToolbar .dijitDropDownButton,.dijitToolbar .dijitComboButton {margin: 0;}.dijitToolbar .dijitButtonContents {padding: 1px 2px;}.dj_webkit .dijitToolbar .dijitDropDownButton {padding-left: 0.3em;}.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {padding:0;}.dijitSelect {border:1px solid gray;}.dijitButtonNode {border:1px solid gray; margin:0; line-height:normal; vertical-align: middle; #vertical-align: auto; text-align:center; white-space: nowrap;}.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {line-height:inherit;}.dijitTextBox .dijitButtonNode {border-width: 0;}.dijitSelect,.dijitSelect *,.dijitButtonNode,.dijitButtonNode * {cursor: pointer;}.dj_ie .dijitButtonNode {zoom: 1;}.dj_ie .dijitButtonNode button {overflow: visible;}div.dijitArrowButton {float: right;}.dijitTextBox {border: solid black 1px; #overflow: hidden; width: 15em; vertical-align: middle;}.dijitTextBoxReadOnly,.dijitTextBoxDisabled {color: gray;}.dj_safari .dijitTextBoxDisabled input {color: #B0B0B0;}.dj_safari textarea.dijitTextAreaDisabled {color: #333;}.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, .dj_gecko .dijitTextBoxDisabled input {-moz-user-input: none;}.dijitPlaceHolder {color: #AAAAAA; font-style: italic; position: absolute; top: 0; left: 0; #filter: "";}.dijitTimeTextBox {width: 8em;}.dijitTextBox input:focus {outline: none;}.dijitTextBoxFocused {outline: 5px -webkit-focus-ring-color;}.dijitSelect input,.dijitTextBox input {float: left;}.dj_ie6 input.dijitTextBox,.dj_ie6 .dijitTextBox input {float: none;}.dijitInputInner {border:0 !important; background-color:transparent !important; width:100% !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important;}.dj_a11y .dijitTextBox input {margin: 0 !important;}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner {text-indent: -2em !important; direction: ltr !important; text-align: left !important; height: auto !important; #text-indent: 0 !important; #letter-spacing: -5em !important; #text-align: right !important;}.dj_ie .dijitSelect input,.dj_ie .dijitTextBox input,.dj_ie input.dijitTextBox {overflow-y: visible; line-height: normal;}.dijitSelect .dijitSelectLabel span {line-height: 100%;}.dj_ie .dijitSelect .dijitSelectLabel {line-height: normal;}.dj_ie6 .dijitSelect .dijitSelectLabel,.dj_ie7 .dijitSelect .dijitSelectLabel,.dj_ie8 .dijitSelect .dijitSelectLabel,.dj_iequirks .dijitSelect .dijitSelectLabel,.dijitSelect td,.dj_ie6 .dijitSelect input,.dj_iequirks .dijitSelect input,.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie6 .dijitTextBox input,.dj_ie6 input.dijitTextBox,.dj_iequirks .dijitTextBox input.dijitValidationInner,.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,.dj_iequirks .dijitTextBox input.dijitInputInner,.dj_iequirks input.dijitTextBox {line-height: 100%;}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner {text-indent: 0 !important; width: 1em !important; #text-align: left !important; color: black !important;}.dijitValidationTextBoxError .dijitValidationContainer {display: inline; cursor: default;}.dijitSpinner .dijitSpinnerButtonContainer,.dijitComboBox .dijitArrowButtonContainer {border-width: 0 0 0 1px !important;}.dj_a11y .dijitSelect .dijitArrowButtonContainer,.dijitToolbar .dijitComboBox .dijitArrowButtonContainer {border-width: 0 !important;}.dijitComboBoxMenu {list-style-type: none;}.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0;}.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {clear: both;}.dj_ie .dijitToolbar .dijitComboBox {vertical-align: middle;}.dijitTextBox .dijitSpinnerButtonContainer {width: 1em; position: relative !important; overflow: hidden;}.dijitSpinner .dijitSpinnerButtonInner {width:1em; visibility:hidden !important; overflow-x:hidden;}.dijitComboBox .dijitButtonNode,.dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0;}.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {border-width: 0px !important; border-style: solid !important;}.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,.dj_a11y .dijitSpinner .dijitArrowButtonInner,.dj_a11y .dijitSpinnerButtonContainer input {width: 1em !important;}.dj_a11y .dijitSpinner .dijitArrowButtonInner {margin: 0 auto !important;}.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding-left: 0.3em !important; padding-right: 0.3em !important; margin-left: 0.3em !important; margin-right: 0.3em !important; width: 1.4em !important;}.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding-left: 0 !important; padding-right: 0 !important; width: 1em !important;}.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {margin-left: 0.1em !important; margin-right: 0.1em !important; width: 1em !important;}.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {margin-left: 0 !important; margin-right: 0 !important; width: 2em !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {padding: 0; position: absolute !important; right: 0; float: none; height: 50%; width: 100%; bottom: auto; left: 0; right: auto;}.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: auto;}.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {overflow: visible !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {top: 50%; border-top-width: 1px !important;}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {#bottom: 50%; top: 0;}.dijitSpinner .dijitArrowButtonInner {margin: auto; overflow-x: hidden; height: 100% !important;}.dj_iequirks .dijitSpinner .dijitArrowButtonInner {height: auto !important;}.dijitSpinner .dijitArrowButtonInner .dijitInputField {-moz-transform: scale(0.5); -moz-transform-origin: center top; -webkit-transform: scale(0.5); -webkit-transform-origin: center top; -o-transform: scale(0.5); -o-transform-origin: center top; transform: scale(0.5); transform-origin: left top; padding-top: 0; padding-bottom: 0; padding-left: 0 !important; padding-right: 0 !important; width: 100%; visibility: hidden;}.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {zoom: 50%;}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {overflow: hidden;}.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: 100%;}.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {width: 1em;}.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {vertical-align:top; visibility: visible;}.dj_a11y .dijitSpinnerButtonContainer {width: 1em;}.dijitCheckBox,.dijitRadio,.dijitCheckBoxInput {padding: 0; border: 0; width: 16px; height: 16px; background-position:center center; background-repeat:no-repeat; overflow: hidden;}.dijitCheckBox input,.dijitRadio input {margin: 0; padding: 0; display: block;}.dijitCheckBoxInput {opacity: 0.01;}.dj_ie .dijitCheckBoxInput {filter: alpha(opacity=0);}.dj_a11y .dijitCheckBox,.dj_a11y .dijitRadio {width: auto !important; height: auto !important;}.dj_a11y .dijitCheckBoxInput {opacity: 1; filter: none; width: auto; height: auto;}.dj_a11y .dijitFocusedLabel {border: 1px dotted; outline: 0px !important;}.dijitProgressBar {z-index: 0;}.dijitProgressBarEmpty {position:relative;overflow:hidden; border:1px solid black; z-index:0;}.dijitProgressBarFull {position:absolute; overflow:hidden; z-index:-1; top:0; width:100%;}.dj_ie6 .dijitProgressBarFull {height:1.6em;}.dijitProgressBarTile {position:absolute; overflow:hidden; top:0; left:0; bottom:0; right:0; margin:0; padding:0; width: 100%; height:auto; background-color:#aaa; background-attachment: fixed;}.dj_a11y .dijitProgressBarTile {border-width:2px; border-style:solid; background-color:transparent !important;}.dj_ie6 .dijitProgressBarTile {position:static; height:1.6em;}.dijitProgressBarIndeterminate .dijitProgressBarTile {}.dijitProgressBarIndeterminateHighContrastImage {display:none;}.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {display:block; position:absolute; top:0; bottom:0; margin:0; padding:0; width:100%; height:auto;}.dijitProgressBarLabel {display:block; position:static; width:100%; text-align:center; background-color:transparent !important;}.dijitTooltip {position: absolute; z-index: 2000; display: block; left: 0; top: -10000px; overflow: visible;}.dijitTooltipContainer {border: solid black 2px; background: #b8b5b5; color: black; font-size: small;}.dijitTooltipFocusNode {padding: 2px 2px 2px 2px;}.dijitTooltipConnector {position: absolute;}.dj_a11y .dijitTooltipConnector {display: none;}.dijitTooltipData {display:none;}.dijitLayoutContainer {position: relative; display: block; overflow: hidden;}.dijitAlignTop,.dijitAlignBottom,.dijitAlignLeft,.dijitAlignRight {position: absolute; overflow: hidden;}body .dijitAlignClient {position: absolute;}.dijitBorderContainer, .dijitBorderContainerNoGutter {position:relative; overflow: hidden; z-index: 0;}.dijitBorderContainerPane,.dijitBorderContainerNoGutterPane {position: absolute !important; z-index: 2;}.dijitBorderContainer > .dijitTextArea {resize: none;}.dijitGutter {position: absolute; font-size: 1px;}.dijitSplitter {position: absolute; overflow: hidden; z-index: 10; background-color: #fff; border-color: gray; border-style: solid; border-width: 0;}.dj_ie .dijitSplitter {z-index: 1;}.dijitSplitterActive {z-index: 11 !important;}.dijitSplitterCover {position:absolute; z-index:-1; top:0; left:0; width:100%; height:100%;}.dijitSplitterCoverActive {z-index:3 !important;}.dj_ie .dijitSplitterCover {background: white; filter: alpha(opacity=0);}.dijitSplitterH {height: 7px; border-top:1px; border-bottom:1px; cursor: row-resize;}.dijitSplitterV {width: 7px; border-left:1px; border-right:1px; cursor: col-resize;}.dijitSplitContainer {position: relative; overflow: hidden; display: block;}.dj_ff3 .dj_a11y div.dijitSplitter:focus {outline-style:dotted; outline-width: 2px;}.dijitSplitPane {position: absolute;}.dijitSplitContainerSizerH,.dijitSplitContainerSizerV {position:absolute; font-size: 1px; background-color: ThreeDFace; border: 1px solid; border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; margin: 0;}.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb {overflow:hidden; position:absolute; top:49%;}.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb {position:absolute; left:49%;}.dijitSplitterShadow,.dijitSplitContainerVirtualSizerH,.dijitSplitContainerVirtualSizerV {font-size: 1px; background-color: ThreeDShadow; -moz-opacity: 0.5; opacity: 0.5; filter: Alpha(Opacity=50); margin: 0;}.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH {cursor: col-resize;}.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV {cursor: row-resize;}.dj_a11y .dijitSplitterH {border-top:1px solid #d3d3d3 !important; border-bottom:1px solid #d3d3d3 !important;}.dj_a11y .dijitSplitterV {border-left:1px solid #d3d3d3 !important; border-right:1px solid #d3d3d3 !important;}.dijitContentPane {display: block; overflow: auto;}.dijitContentPaneSingleChild {overflow: hidden;}.dijitContentPaneLoading .dijitIconLoading,.dijitContentPaneError .dijitIconError {margin-right: 9px;}.dijitTitlePane {display: block; overflow: hidden;}.dijitTitlePaneTitle {cursor: pointer;}.dijitFixedOpen, .dijitFixedClosed {cursor: default;}.dijitFixedOpen .dijitArrowNode, .dijitFixedOpen .dijitArrowNodeInner,.dijitFixedClosed .dijitArrowNode, .dijitFixedClosed .dijitArrowNodeInner{display: none;}.dijitTitlePaneTitle * {vertical-align: middle;}.dijitTitlePane .dijitArrowNodeInner {display: none;}.dj_a11y .dijitTitlePane .dijitArrowNodeInner {display:inline !important; font-family: monospace;}.dj_a11y .dijitTitlePane .dijitArrowNode {display:none;}.dj_ie6 .dijitTitlePaneContentOuter,.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {zoom: 1;}.dijitColorPalette {border: 1px solid #999; background: #fff; position: relative;}.dijitColorPalette .dijitPaletteTable {padding: 2px 3px 3px 3px; position: relative; overflow: hidden; outline: 0; border-collapse: separate;}.dj_ie6 .dijitColorPalette .dijitPaletteTable,.dj_ie7 .dijitColorPalette .dijitPaletteTable,.dj_iequirks .dijitColorPalette .dijitPaletteTable {padding: 0; margin: 2px 3px 3px 3px;}.dijitColorPalette .dijitPaletteCell {font-size: 1px; vertical-align: middle; text-align: center; background: none;}.dijitColorPalette .dijitPaletteImg {padding: 1px; border: 1px solid #999; margin: 2px 1px; cursor: default; font-size: 1px;}.dj_gecko .dijitColorPalette .dijitPaletteImg {padding-bottom: 0;}.dijitColorPalette .dijitColorPaletteSwatch {width: 14px; height: 12px;}.dijitPaletteTable td {padding: 0;}.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {border: 1px solid #000;}.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {border: 2px solid #000; margin: 1px 0;}.dj_a11y .dijitColorPalette .dijitPaletteTable,.dj_a11y .dijitColorPalette .dijitPaletteTable * {background-color: transparent !important;}.dijitAccordionContainer {border:1px solid #b7b7b7; border-top:0 !important;}.dijitAccordionTitle {cursor: pointer;}.dijitAccordionTitleSelected {cursor: default;}.dijitAccordionTitle .arrowTextUp,.dijitAccordionTitle .arrowTextDown {display: none; font-size: 0.65em; font-weight: normal !important;}.dj_a11y .dijitAccordionTitle .arrowTextUp,.dj_a11y .dijitAccordionTitleSelected .arrowTextDown {display: inline;}.dj_a11y .dijitAccordionTitleSelected .arrowTextUp {display: none;}.dijitAccordionChildWrapper {overflow: hidden;}.dijitCalendarContainer {width: auto;}.dijitCalendarContainer th, .dijitCalendarContainer td {padding: 0; vertical-align: middle;}.dijitCalendarYearLabel {white-space: nowrap;}.dijitCalendarNextYear {margin:0 0 0 0.55em;}.dijitCalendarPreviousYear {margin:0 0.55em 0 0;}.dijitCalendarIncrementControl {vertical-align: middle;}.dijitCalendarIncrementControl,.dijitCalendarDateTemplate,.dijitCalendarMonthLabel,.dijitCalendarPreviousYear,.dijitCalendarNextYear {cursor: pointer;}.dijitCalendarDisabledDate {color: gray; text-decoration: line-through; cursor: default;}.dijitSpacer {position: relative; height: 1px; overflow: hidden; visibility: hidden;}.dijitCalendarMonthMenu .dijitCalendarMonthLabel {text-align:center;}.dijitMenu {border:1px solid black; background-color:white;}.dijitMenuTable {border-collapse:collapse; border-width:0; background-color:white;}.dj_webkit .dijitMenuTable td[colspan="2"]{border-right:hidden;}.dijitMenuItem {text-align: left; white-space: nowrap; padding:.1em .2em; cursor:pointer;}.dijitMenuItem:focus {outline: none}.dijitMenuPassive .dijitMenuItemHover,.dijitMenuItemSelected {background-color:black; color:white;}.dijitMenuItemIcon, .dijitMenuExpand {background-repeat: no-repeat;}.dijitMenuItemDisabled * {opacity:0.5; cursor:default;}.dj_ie .dj_a11y .dijitMenuItemDisabled,.dj_ie .dj_a11y .dijitMenuItemDisabled *,.dj_ie .dijitMenuItemDisabled * {color: gray; filter: alpha(opacity=35);}.dijitMenuItemLabel {position: relative; vertical-align: middle;}.dj_a11y .dijitMenuItemSelected {border: 1px dotted black !important;}.dj_ff3 .dj_a11y .dijitMenuItem td {padding: 0 !important; background:none !important;}.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {border-width: 1px; border-style: solid;}.dj_ie8 .dj_a11y .dijitMenuItemLabel {position:static;}.dijitMenuExpandA11y {display: none;}.dj_a11y .dijitMenuExpandA11y {display: inline;}.dijitMenuSeparator td {border: 0; padding: 0;}.dijitMenuSeparatorTop {height: 50%; margin: 0; margin-top:3px; font-size: 1px;}.dijitMenuSeparatorBottom {height: 50%; margin: 0; margin-bottom:3px; font-size: 1px;}.dijitCheckedMenuItemIconChar {vertical-align: middle; visibility:hidden;}.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar {visibility: visible;}.dj_a11y .dijitCheckedMenuItemIconChar {display:inline !important;}.dj_a11y .dijitCheckedMenuItemIcon {display: none;}.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {margin: 0;}.dijitStackController .dijitToggleButtonChecked * {cursor: default;}.dijitTabContainer {z-index: 0; overflow-y: visible;}.dj_ie6 .dijitTabContainer {overflow: hidden;}.dijitTabContainerNoLayout {width: 100%;}.dijitTabContainerBottom-tabs,.dijitTabContainerTop-tabs,.dijitTabContainerLeft-tabs,.dijitTabContainerRight-tabs {z-index: 1; overflow: visible !important;}.dijitTabController {z-index: 1;}.dijitTabContainerBottom-container,.dijitTabContainerTop-container,.dijitTabContainerLeft-container,.dijitTabContainerRight-container {z-index:0; overflow: hidden; border: 1px solid black;}.nowrapTabStrip {width: 50000px; display: block; position: relative; text-align: left; z-index: 1;}.dijitTabListWrapper {overflow: hidden; z-index: 1;}.dj_a11y .tabStripButton img {display: none;}.dijitTabContainerTop-tabs {border-bottom: 1px solid black;}.dijitTabContainerTop-container {border-top: 0;}.dijitTabContainerLeft-tabs {border-right: 1px solid black; float: left;}.dijitTabContainerLeft-container {border-left: 0;}.dijitTabContainerBottom-tabs {border-top: 1px solid black;}.dijitTabContainerBottom-container {border-bottom: 0;}.dijitTabContainerRight-tabs {border-left: 1px solid black; float: left;}.dijitTabContainerRight-container {border-right: 0;}div.dijitTabDisabled, .dj_ie div.dijitTabDisabled {cursor: auto;}.dijitTab {position:relative; cursor:pointer; white-space:nowrap; z-index:3;}.dijitTab * {vertical-align: middle;}.dijitTabChecked {cursor: default;}.dijitTabContainerTop-tabs .dijitTab {top: 1px;}.dijitTabContainerBottom-tabs .dijitTab {top: -1px;}.dijitTabContainerLeft-tabs .dijitTab {left: 1px;}.dijitTabContainerRight-tabs .dijitTab {left: -1px;}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab {display:inline-block; #zoom: 1; #display:inline;}.tabStripButton {z-index: 12;}.dijitTabButtonDisabled .tabStripButton {display: none;}.dijitTabCloseButton {margin-left: 1em;}.dijitTabCloseText {display:none;}.dijitTab .tabLabel {min-height: 15px; display: inline-block;}.dijitNoIcon {display: none;}.dj_ie6 .dijitTab .dijitNoIcon {display: inline; height: 15px; width: 1px;}.dj_a11y .dijitTabCloseButton {background-image: none !important; width: auto !important; height: auto !important;}.dj_a11y .dijitTabCloseText {display: inline;}.dijitTabPane,.dijitStackContainer-child,.dijitAccordionContainer-child {border: none !important;}.dijitInlineEditBoxDisplayMode {border: 1px solid transparent; cursor: text;}.dj_a11y .dijitInlineEditBoxDisplayMode,.dj_ie6 .dijitInlineEditBoxDisplayMode {border: none;}.dijitInlineEditBoxDisplayModeHover,.dj_a11y .dijitInlineEditBoxDisplayModeHover,.dj_ie6 .dijitInlineEditBoxDisplayModeHover {background-color: #e2ebf2; border: solid 1px black;}.dijitInlineEditBoxDisplayModeDisabled {cursor: default;}.dijitTree {overflow: auto;}.dijitTreeIndent {width: 19px;}.dijitTreeRow, .dijitTreeContent {white-space: nowrap;}.dijitTreeRow img {vertical-align: middle;}.dijitTreeContent {cursor: default;}.dijitExpandoText {display: none;}.dj_a11y .dijitExpandoText {display: inline; padding-left: 10px; padding-right: 10px; font-family: monospace; border-style: solid; border-width: thin; cursor: pointer;}.dijitTreeLabel {margin: 0 4px;}.dijitDialog {position: absolute; z-index: 999; overflow: hidden;}.dijitDialogTitleBar {cursor: move;}.dijitDialogFixed .dijitDialogTitleBar {cursor:default;}.dijitDialogCloseIcon {cursor: pointer;}.dijitDialogUnderlayWrapper {position: absolute; left: 0; top: 0; z-index: 998; display: none; background: transparent !important;}.dijitDialogUnderlay {background: #eee; opacity: 0.5;}.dj_ie .dijitDialogUnderlay {filter: alpha(opacity=50);}.dj_a11y .dijitSpinnerButtonContainer,.dj_a11y .dijitDialog {opacity: 1 !important; background-color: white !important;}.dijitDialog .closeText {display:none; position:absolute;}.dj_a11y .dijitDialog .closeText {display:inline;}.dijitSliderMoveable {z-index:99; position:absolute !important; display:block; vertical-align:middle;}.dijitSliderMoveableH {right:0;}.dijitSliderMoveableV {right:50%;}.dj_a11y div.dijitSliderImageHandle,.dijitSliderImageHandle {margin:0; padding:0; position:relative !important; border:8px solid gray; width:0; height:0; cursor: pointer;}.dj_iequirks .dj_a11y .dijitSliderImageHandle {font-size: 0;}.dj_ie7 .dijitSliderImageHandle {overflow: hidden;}.dj_ie7 .dj_a11y .dijitSliderImageHandle {overflow: visible;}.dj_a11y .dijitSliderFocused .dijitSliderImageHandle {border:4px solid #000; height:8px; width:8px;}.dijitSliderImageHandleV {top:-8px; right: -50%;}.dijitSliderImageHandleH {left:50%; top:-5px; vertical-align:top;}.dijitSliderBar {border-style:solid; border-color:black; cursor: pointer;}.dijitSliderBarContainerV {position:relative; height:100%; z-index:1;}.dijitSliderBarContainerH {position:relative; z-index:1;}.dijitSliderBarH {height:4px; border-width:1px 0;}.dijitSliderBarV {width:4px; border-width:0 1px;}.dijitSliderProgressBar {background-color:red; z-index:1;}.dijitSliderProgressBarV {position:static !important; height:0; vertical-align:top; text-align:left;}.dijitSliderProgressBarH {position:absolute !important; width:0; vertical-align:middle; overflow:visible;}.dijitSliderRemainingBar {overflow:hidden; background-color:transparent; z-index:1;}.dijitSliderRemainingBarV {height:100%; text-align:left;}.dijitSliderRemainingBarH {width:100% !important;}.dijitSliderBumper {overflow:hidden; z-index:1;}.dijitSliderBumperV {width:4px; height:8px; border-width:0 1px;}.dijitSliderBumperH {width:8px; height:4px; border-width:1px 0;}.dijitSliderBottomBumper,.dijitSliderLeftBumper {background-color:red;}.dijitSliderTopBumper,.dijitSliderRightBumper {background-color:transparent;}.dijitSliderDecoration {text-align:center;}.dijitSliderDecorationC,.dijitSliderDecorationV {position: relative;}.dijitSliderDecorationH {width: 100%;}.dijitSliderDecorationV {height: 100%; white-space: nowrap;}.dijitSliderButton {font-family:monospace; margin:0; padding:0; display:block;}.dj_a11y .dijitSliderButtonInner {visibility:visible !important;}.dijitSliderButtonContainer {text-align:center; height:0;}.dijitSliderButtonContainer * {cursor: pointer;}.dijitSlider .dijitButtonNode {padding:0; display:block;}.dijitRuleContainer {position:relative; overflow:visible;}.dijitRuleContainerV {height:100%; line-height:0; float:left; text-align:left;}.dj_opera .dijitRuleContainerV {line-height:2%;}.dj_ie .dijitRuleContainerV {line-height:normal;}.dj_gecko .dijitRuleContainerV {margin:0 0 1px 0;}.dijitRuleMark {position:absolute; border:1px solid black; line-height:0; height:100%;}.dijitRuleMarkH {width:0; border-top-width:0 !important; border-bottom-width:0 !important; border-left-width:0 !important;}.dijitRuleLabelContainer {position:absolute;}.dijitRuleLabelContainerH {text-align:center; display:inline-block;}.dijitRuleLabelH {position:relative; left:-50%;}.dijitRuleLabelV {text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}.dijitRuleMarkV {height:0; border-right-width:0 !important; border-bottom-width:0 !important; border-left-width:0 !important; width:100%; left:0;}.dj_ie .dijitRuleLabelContainerV {margin-top:-.55em;}.dj_a11y .dijitSliderReadOnly,.dj_a11y .dijitSliderDisabled {opacity:0.6;}.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {filter: alpha(opacity=40);}.dj_a11y .dijitSlider .dijitSliderButtonContainer div {font-family: monospace; font-size: 1em; line-height: 1em; height: auto; width: auto; margin: 0 4px;}.dj_a11y .dijitButtonContents .dijitButtonText,.dj_a11y .dijitTab .tabLabel {display: inline !important;}.dj_a11y .dijitSelect .dijitButtonText {display: inline-block !important;}.dijitSelectError .dijitButtonContents .dijitButtonText {display: none !important;}.dijitTextArea {width:100%; overflow-y: auto;}.dijitTextArea[cols] {width:auto;}.dj_ie .dijitTextAreaCols {width:auto;}.dijitExpandingTextArea {resize: none;}.dijitToolbarSeparator {height: 18px; width: 5px; padding: 0 1px; margin: 0;}.dijitIEFixedToolbar {position:absolute; top: expression(eval((document.documentElement||document.body).scrollTop));}.dijitEditor {display: block;}.dijitEditorDisabled,.dijitEditorReadOnly {color: gray;}.dijitTimePickerItemInner {text-align:center; border:0; padding:2px 8px 2px 8px;}.dijitTimePickerTick,.dijitTimePickerMarker {border-bottom:1px solid gray;}.dijitTimePicker .dijitDownArrowButton {border-top: none !important;}.dijitTimePickerTick {color:#CCC;}.dijitTimePickerMarker {color:black; background-color:#CCC;}.dijitTimePickerItemSelected {font-weight:bold; color:#333; background-color:#b7cdee;}.dijitTimePickerItemHover {background-color:gray; color:white; cursor:pointer;}.dijitTimePickerItemDisabled {color:gray; text-decoration:line-through;}.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {border: solid 4px black;}.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {border: dashed 4px black;}.dijitToggleButtonIconChar {display:none !important;}.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {display:inline !important; visibility:hidden;}.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText {font-family: "Arial Unicode MS";}.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {display: inline !important; visibility:visible !important;}.dijitArrowButtonChar {display:none !important;}.dj_a11y .dijitArrowButtonChar {display:inline !important;}.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,.dj_a11y .dijitComboButton .dijitArrowButtonInner {display:none !important;}.dj_a11y .dijitSelect {border-collapse: separate !important; border-width: 1px; border-style: solid;}.dj_ie .dijitSelect {vertical-align: middle;}.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie8 .dijitSelect .dijitButtonText {vertical-align: top;}.dj_ie6 .dijitTextBox .dijitInputContainer,.dj_iequirks .dijitTextBox .dijitInputContainer,.dj_ie6 .dijitTextBox .dijitArrowButtonInner,.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,.dijitSelect .dijitSelectLabel {vertical-align: baseline;}.dijitNumberTextBox {text-align: left; direction: ltr;}.dijitNumberTextBox .dijitInputInner {text-align: inherit;}.dijitToolbar .dijitSelect {margin: 0;}.dj_webkit .dijitToolbar .dijitSelect {padding-left: 0.3em;}.dijitSelect .dijitButtonContents {padding: 0; white-space: nowrap; text-align: left; border-style: none solid none none; border-width: 1px;}.dijitSelectFixedWidth .dijitButtonContents {width: 100%;}.dijitSelectMenu .dijitMenuItemIcon {display:none;}.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {position: static;}.dijitSelectLabel *{vertical-align: baseline;}.dijitSelectSelectedOption * {font-weight: bold;}.dijitSelectMenu {border-width: 1px;}.dijitSelectMenu .dijitMenuTable {margin: 0; background-color: transparent;}.dijitForceStatic {position: static !important;}.dijitReadOnly *,.dijitDisabled *,.dijitReadOnly,.dijitDisabled {cursor: default;}.dojoDndItem {padding: 2px; -webkit-touch-callout: none; -webkit-user-select: none;}.dojoDndHorizontal .dojoDndItem {#display: inline; display: inline-block;}.dojoDndItemBefore,.dojoDndItemAfter {border: 0px solid #369;}.dojoDndItemBefore {border-width: 2px 0 0 0; padding: 0 2px 2px 2px;}.dojoDndItemAfter {border-width: 0 0 2px 0; padding: 2px 2px 0 2px;}.dojoDndHorizontal .dojoDndItemBefore {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.dojoDndHorizontal .dojoDndItemAfter {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dojoDndItemOver {cursor:pointer;}.dj_gecko .dijitArrowButtonInner INPUT,.dj_gecko INPUT.dijitArrowButtonInner {-moz-user-focus:ignore;}.dijitIconSave,.dijitIconPrint,.dijitIconCut,.dijitIconCopy,.dijitIconClear,.dijitIconDelete,.dijitIconUndo,.dijitIconEdit,.dijitIconNewTask,.dijitIconEditTask,.dijitIconEditProperty,.dijitIconTask,.dijitIconFilter,.dijitIconConfigure,.dijitIconSearch,.dijitIconApplication,.dijitIconBookmark,.dijitIconChart,.dijitIconConnector,.dijitIconDatabase,.dijitIconDocuments,.dijitIconMail,.dijitLeaf,.dijitIconFile,.dijitIconFunction,.dijitIconKey,.dijitIconPackage,.dijitIconSample,.dijitIconTable,.dijitIconUsers,.dijitFolderClosed,.dijitIconFolderClosed,.dijitFolderOpened,.dijitIconFolderOpen,.dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled.png"); width: 16px; height: 16px;}.dj_ie6 .dijitIconSave,.dj_ie6 .dijitIconPrint,.dj_ie6 .dijitIconCut,.dj_ie6 .dijitIconCopy,.dj_ie6 .dijitIconClear,.dj_ie6 .dijitIconDelete,.dj_ie6 .dijitIconUndo,.dj_ie6 .dijitIconEdit,.dj_ie6 .dijitIconNewTask,.dj_ie6 .dijitIconEditTask,.dj_ie6 .dijitIconEditProperty,.dj_ie6 .dijitIconTask,.dj_ie6 .dijitIconFilter,.dj_ie6 .dijitIconConfigure,.dj_ie6 .dijitIconSearch,.dj_ie6 .dijitIconApplication,.dj_ie6 .dijitIconBookmark,.dj_ie6 .dijitIconChart,.dj_ie6 .dijitIconConnector,.dj_ie6 .dijitIconDatabase,.dj_ie6 .dijitIconDocuments,.dj_ie6 .dijitIconMail,.dj_ie6 .dijitLeaf,.dj_ie6 .dijitIconFile,.dj_ie6 .dijitIconFunction,.dj_ie6 .dijitIconKey,.dj_ie6 .dijitIconPackage,.dj_ie6 .dijitIconSample,.dj_ie6 .dijitIconTable,.dj_ie6 .dijitIconUsers,.dj_ie6 .dijitFolderClosed,.dj_ie6 .dijitIconFolderClosed,.dj_ie6 .dijitFolderOpened,.dj_ie6 .dijitIconFolderOpen,.dj_ie6 .dijitIconError {background-image: url("../../icons/images/commonIconsObjActEnabled8bit.png");}.dijitDisabled .dijitIconSave,.dijitDisabled .dijitIconPrint,.dijitDisabled .dijitIconCut,.dijitDisabled .dijitIconCopy,.dijitDisabled .dijitIconClear,.dijitDisabled .dijitIconDelete,.dijitDisabled .dijitIconUndo,.dijitDisabled .dijitIconEdit,.dijitDisabled .dijitIconNewTask,.dijitDisabled .dijitIconEditTask,.dijitDisabled .dijitIconEditProperty,.dijitDisabled .dijitIconTask,.dijitDisabled .dijitIconFilter,.dijitDisabled .dijitIconConfigure,.dijitDisabled .dijitIconSearch,.dijitDisabled .dijitIconApplication,.dijitDisabled .dijitIconBookmark,.dijitDisabled .dijitIconChart,.dijitDisabled .dijitIconConnector,.dijitDisabled .dijitIconDatabase,.dijitDisabled .dijitIconDocuments,.dijitDisabled .dijitIconMail,.dijitDisabled .dijitLeaf,.dijitDisabled .dijitIconFile,.dijitDisabled .dijitIconFunction,.dijitDisabled .dijitIconKey,.dijitDisabled .dijitIconPackage,.dijitDisabled .dijitIconSample,.dijitDisabled .dijitIconTable,.dijitDisabled .dijitIconUsers,.dijitDisabled .dijitFolderClosed,.dijitDisabled .dijitIconFolderClosed,.dijitDisabled .dijitFolderOpened,.dijitDisabled .dijitIconFolderOpen,.dijitDisabled .dijitIconError {background-image: url("../../icons/images/commonIconsObjActDisabled.png");}.dijitIconSave {background-position: 0;}.dijitIconPrint {background-position: -16px;}.dijitIconCut {background-position: -32px;}.dijitIconCopy {background-position: -48px;}.dijitIconClear {background-position: -64px;}.dijitIconDelete {background-position: -80px;}.dijitIconUndo {background-position: -96px;}.dijitIconEdit {background-position: -112px;}.dijitIconNewTask {background-position: -128px;}.dijitIconEditTask {background-position: -144px;}.dijitIconEditProperty {background-position: -160px;}.dijitIconTask {background-position: -176px;}.dijitIconFilter {background-position: -192px;}.dijitIconConfigure {background-position: -208px;}.dijitIconSearch {background-position: -224px;}.dijitIconError {background-position: -496px;} .dijitIconApplication {background-position: -240px;}.dijitIconBookmark {background-position: -256px;}.dijitIconChart {background-position: -272px;}.dijitIconConnector {background-position: -288px;}.dijitIconDatabase {background-position: -304px;}.dijitIconDocuments {background-position: -320px;}.dijitIconMail {background-position: -336px;}.dijitIconFile, .dijitLeaf {background-position: -352px;}.dijitIconFunction {background-position: -368px;}.dijitIconKey {background-position: -384px;}.dijitIconPackage{background-position: -400px;}.dijitIconSample {background-position: -416px;}.dijitIconTable {background-position: -432px;}.dijitIconUsers {background-position: -448px;}.dijitIconFolderClosed, .dijitFolderClosed {background-position: -464px;}.dijitIconFolderOpen, .dijitFolderOpened {background-position: -480px;}.dijitIconLoading {background:url("../../icons/images/loadingAnimation_rtl.gif") no-repeat; height: 20px; width: 20px;}.tundra .dojoDndItemOver {background-image: url("images/treeHover.png");}.tundra .dojoDndItemAnchor,.tundra .dojoDndItemSelected {background-color: #E2EBFE;}.tundra table.dojoDndAvatar {-moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;}.tundra .dojoDndAvatar td {border: none;}.tundra .dojoDndAvatar tr {border: none;}.tundra .dojoDndAvatarHeader td {height: 20px; padding: 0 0 0 21px;}.tundra .dojoDndAvatarItem td {padding: 2px;}.tundra.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url("images/dndNoMove.png"); background-repeat: no-repeat; background-position: 2px center;}.tundra.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url("images/dndNoCopy.png"); background-repeat: no-repeat; background-position: 2px center;}.tundra.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url("images/dndMove.png"); background-repeat: no-repeat; background-position: 2px center;}.tundra.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url("images/dndCopy.png"); background-repeat: no-repeat; background-position: 2px center;}.tundra .dijitIconLoading {background:url("images/loading.gif") no-repeat left center; width: 24px; height: 24px;}.tundra .dijitIconError {background:url("images/warning.png") no-repeat left center; width: 16px; height: 16px;}.tundra .dijitContentPane {padding: 0;}.tundra .dijitTabContainerTop-dijitContentPane,.tundra .dijitTabContainerLeft-dijitContentPane,.tundra .dijitTabContainerBottom-dijitContentPane,.tundra .dijitTabContainerRight-dijitContentPane,.tundra .dijitAccordionContainer-dijitContentPane {background-color: #fff; padding: 5px;}.tundra .dijitSplitContainer-dijitContentPane,.tundra .dijitBorderContainer-dijitContentPane {background-color: #fff; padding: 5px;}.tundra .dijitTabPaneWrapper {background:#fff; border:1px solid #ccc; margin: 0; padding: 0;}.tundra .dijitTab {line-height:normal; margin-right:4px; padding:2px 8px 2px 9px; border:1px solid #ccc; background:#e2e2e2 url("images/tabEnabled.png") repeat-x;}.tundra .dijitTabSpacer {display: none;}.tundra .dijitTabContainer .tabStripRBtn {margin-right: 20px;}.tundra .dijitTabContainer .tabStripLBtn {margin-left: 20px;}.tundra .nowrapTabStrip .dijitTab {top: 2px;}.tundra .dijitTabContainerBottom .nowrapTabStrip .dijitTab {top: 0; bottom: 2px;}.tundra .dijitTabChecked {background-color:#fff; border-color: #ccc; background-image:none;}.tundra .dijitTabHover {color: #243C5F; border-top-color:#92a0b3; border-left-color:#92a0b3; border-right-color:#92a0b3; border-bottom-color:#92a0b3; background:#e2e2e2 url("images/tabHover.gif") repeat-x;}.tundra .dijitTabContainerTop .dijitTabHover {border-bottom-color:#ccc;}.tundra .dijitTabContainerBottom .dijitTabHover {border-top-color:#ccc;}.tundra .dijitTabContainerLeft .dijitTabHover {border-right-color:#ccc;}.tundra .dijitTabContainerRight .dijitTabHover {border-left-color:#ccc;}.tundra .dijitTabContainer .dijitTabCheckedHover {color: inherit; border:1px solid #ccc; background:#fff;}.tundra .dijitTab .tabLabel {min-height: 12px; display: inline-block;}.tundra .dijitTabContainerNested .dijitTabListWrapper {height: auto;}.tundra .dijitTabContainerNested .dijitTabContainerTop-tabs {border-bottom: 1px solid #CCC;}.tundra .dijitTabContainerTabListNested .dijitTab {background: none; border: none; top: 0;}.tundra .dijitTabContainerTabListNested .dijitTabHover .tabLabel {text-decoration: underline;}.tundra .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {text-decoration: underline; font-weight: bold;}.tundra .dijitTabContainer .dijitTabPaneWrapperNested {border: none;}.tundra .dijitTabCloseButton {background: url("images/tabClose.png") no-repeat right top; width: 12px; height: 12px;}.dj_ie6 .tundra .dijitTabCloseButton {background-image : url("images/tabClose.gif");}.tundra .dijitTabCloseButtonHover {background-image : url("images/tabCloseHover.png");}.dj_ie6 .tundra .dijitTabCloseButtonHover {background-image : url("images/tabCloseHover.gif");}.tundra .dijitTabContainerTop-tabs {margin-bottom: 0; border-color: #cccccc; padding-left: 3px; background-position: bottom;}.tundra .dijitTabContainerTop-tabs .dijitTab {top: 0; margin-bottom: -1px;}.tundra .dijitTabContainerTop-container {border-top: none;}.tundra .dijitTabContainerTop-tabs .dijitTabChecked {border-bottom-color:white;}.tundra .dijitTabContainerTop-tabs,.tundra .dijitTabContainerBottom-tabs {padding-left: 3px; padding-right: 3px;}.tundra .dijitTabContainerTopStrip {border-top: 1px solid #CCC; border-right: 1px solid #CCC; border-left: 1px solid #CCC; padding-top: 2px; background: #f2f2f2;}.tundra .dijitTabContainerTopNone {padding-top: 0;}.tundra .dijitTabContainerBottom-tabs {margin-top: 0; border-color: #cccccc; background-position: top; padding-left: 3px;}.tundra .dijitTabContainerBottom-tabs .dijitTab {bottom: 0; margin-top: -1px;}.tundra .dijitTabContainerBottom-container {border-bottom: none;}.tundra .dijitTabContainerBottom-tabs .dijitTabChecked {border-top-color:white;}.tundra .dijitTabContainerBottomStrip {padding-bottom: 2px; border: 1px solid #ccc; background: #f2f2f2; border-top: none;}.tundra .dijitTabContainerRight-tabs {border-color: #ccc; height: 100%; padding-top: 3px;}.tundra .dijitTabContainerRightStrip {margin-left: -1px;}.tundra .dijitTabContainerRight-container {border-right: none;}.tundra .dijitTabContainerRight-tabs .dijitTabChecked {border-left-color:white;}.tundra .dijitTabContainerRightStrip {padding-right: 2px; border: 1px solid #ccc;}.tundra .dijitTabContainerRightStrip {background: #f2f2f2;}.tundra .dijitTabContainerLeft-tabs {border-color: #ccc; padding-top: 3px; height: 100%;}.tundra .dijitTabContainerLeft-container {border-left: none;}.tundra .dijitTabContainerLeft-tabs .dijitTabChecked {border-right-color:white;}.tundra .dijitTabContainerLeftStrip {padding-left: 2px; border: 1px solid #ccc; background: #f2f2f2; border-right: none;}.tundra .dijitTabContainerLeft-tabs .dijitTab,.tundra .dijitTabContainerRight-tabs .dijitTab {margin-right:0; margin-bottom:4px;}.tundra .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs {border-left: 0 solid #ccc; border-top: 0 solid #ccc; border-right: 0 solid #ccc; padding-top: 0; padding-left: 0;}.tundra .dijitTabContainer .tabStripButton {margin-right: 0; padding-top: 2px; z-index: 12;}.tundra .dijitTabContainerBottom .tabStripButton {padding-top: 3px;}.tundra .tabStrip-disabled .tabStripButton {padding-bottom: 3px; padding-top: 1px;}.tundra .tabStripButton {padding: 3px 2px 4px 2px;}.tundra .dijitTabStripIcon {height: 14px; width: 14px; background: url("images/spriteRoundedIconsSmall.png") no-repeat left top ;}.dj_ie6 .tundra .dijitTabStripIcon {background-image: url("images/spriteRoundedIconsSmall.gif");}.tundra .dijitTabStripSlideRightIcon {background-position: -30px top;}.tundra .dijitTabStripMenuIcon {background-position: -15px top;}.tundra .dijitAccordionContainer {border-color: #ccc; background-color: #fff;}.tundra .dijitAccordionTitle {background:#fafafa url("images/titleBar.png") repeat-x bottom left; border-top: 1px solid #bfbfbf; padding: 4px 4px 4px 8px;}.tundra .dijitAccordionTitleHover {background: #f8fafd url("images/accordionItemHover.gif") bottom repeat-x;}.tundra .dijitAccordionTitleSelected {background: #f9f9f9 url("images/accordionItemActive.gif") bottom repeat-x; font-weight: bold; border-top: 1px solid #aaaaaa; border-bottom: 1px solid #bfbfbf; padding: 4px 4px 4px 8px;}.tundra .dijitSplitContainerSizerH {background:url("images/splitContainerSizerV.png") repeat-y #fff; border:0; border-left:1px solid #bfbfbf; border-right:1px solid #bfbfbf; width:7px;}.tundra .dijitSplitContainerSizerH .thumb {background:url("images/splitContainerSizerV-thumb.png") no-repeat #ccc; left:1px; width:3px; height:19px; overflow: hidden;}.tundra .dijitSplitContainerSizerV {background:url("images/splitContainerSizerH.png") repeat-x #fff; border:0; border-top:1px solid #bfbfbf; border-bottom:1px solid #bfbfbf; height:7px;}.tundra .dijitSplitContainerSizerV .thumb {background:url("images/splitContainerSizerH-thumb.png") no-repeat #ccc; top:1px; width:19px; height:3px; overflow: hidden;}.tundra .dijitBorderContainer {background-color: #fcfcfc; padding: 5px;}.tundra .dijitSplitContainer-child,.tundra .dijitBorderContainer-child {border: 1px #ccc solid;}.tundra .dijitBorderContainer-dijitTabContainerTop,.tundra .dijitBorderContainer-dijitTabContainerBottom,.tundra .dijitBorderContainer-dijitTabContainerLeft,.tundra .dijitBorderContainer-dijitTabContainerRight {border: none;}.tundra .dijitBorderContainer-dijitBorderContainer {border: none; padding: 0;}.tundra .dijitSplitterH,.tundra .dijitGutterH {background:#fcfcfc; border:0; height:5px;}.tundra .dijitSplitterH .dijitSplitterThumb {background:#B0B0B0 none; height:1px; top:2px; width:19px;}.tundra .dijitSplitterV,.tundra .dijitGutterV {background:#fcfcfc; border:0; width:5px;}.tundra .dijitSplitterV .dijitSplitterThumb {background:#B0B0B0 none; height:19px; left:2px; width:1px;}.tundra .dijitSplitterActive {font-size: 1px; background-image: none; background-color: #aaa; -moz-opacity: 0.6; opacity: 0.6; filter: Alpha(Opacity=60); margin: 0;}.tundra .dijitInputContainer input {margin: 0 0.1em;}.tundra .dijitTextArea {padding: 3px;}.tundra .dijitSelect .dijitButtonContents,.tundra .dijitSelect,.tundra .dijitTextBox {background:#fff url("images/validationInputBg.png") repeat-x top left; #background:#fff url("images/validationInputBg.gif") repeat-x top left;}.tundra .dijitSelect,.tundra .dijitTextBox {border:1px solid #b3b3b3;}.tundra .dijitSelect .dijitArrowButton,.tundra .dijitComboBox .dijitButtonNode {padding: 0 0.2em;}.tundra .dijitSelect .dijitButtonContents,.tundra .dijitTextBox .dijitButtonNode {border-color: #9b9b9b;}.tundra .dijitSelectFocused,.tundra .dijitTextBoxFocused {border-color:#406b9b;}.tundra .dijitSelectFocused TD,.tundra .dijitTextBoxFocused .dijitButtonNode {border-color:#366dba;}.tundra .dijitError {background-color:#f9f7ba; background-image:none;}.tundra .dijitErrorFocused {background-color:#f9f999; background-image:none;}.tundra .dijitValidationTextBoxError .dijitValidationIcon {width: 16px; background: transparent url("images/warning.png") no-repeat center center;}.tundra .dijitComboBoxHighlightMatch {background-color:#a5beda;}.tundra .dijitFocusedLabel {outline: 1px dotted #666666;}.tundra .dijitButtonNode {border: 1px solid #c0c0c0; border-bottom: 1px solid #9b9b9b; padding: 0.1em 0.2em 0.2em 0.2em; background: #fff url("images/buttonEnabled.png") repeat-x bottom left;}.tundra .dijitButtonText {text-align: center; padding: 0 0.3em;}.tundra .dijitInputField {padding: 0;}.tundra .dijitDisabled .dijitButtonText {color: #7F7F7F;}.tundra .dijitArrowButton {color: #111;}.tundra .dijitComboButton .dijitDownArrowButton {padding-right:4px;}.tundra .dijitTextBoxReadOnly,.tundra .dijitTextBoxReadOnly .dijitButtonNode,.tundra .dijitButtonDisabled .dijitButtonNode,.tundra .dijitToggleButtonDisabled .dijitButtonNode,.tundra .dijitDropDownButtonDisabled .dijitButtonNode,.tundra .dijitComboButtonDisabled .dijitButtonNode,.tundra .dijitTextBoxDisabled,.tundra .dijitTextBoxDisabled .dijitButtonNode {border-color: #d5d5d5 #d5d5d5 #bdbdbd #d5d5d5; background:#e4e4e4 url("images/buttonDisabled.png") top repeat-x;}.tundra .dijitButtonHover .dijitButtonNode,.tundra .dijitButtonNodeHover,.tundra .dijitToggleButtonHover .dijitButtonNode,.tundra .dijitDropDownButtonHover .dijitButtonNode,.tundra .dijitComboButton .dijitButtonContentsHover,.tundra .dijitComboButton .dijitDownArrowButtonHover {border-color: #a5beda; border-bottom-color:#5c7590; color:#243C5F; background:#fcfdff url("images/buttonHover.png") repeat-x bottom;}.tundra .dijitDownArrowButtonHover,.tundra .dijitUpArrowButtonHover {color:#243C5F; background:#fcfdff url("images/buttonHover.png") repeat-x bottom;}.tundra .dijitUpArrowButtonActive,.tundra .dijitDownArrowButtonActive,.tundra .dijitButtonActive .dijitButtonNode,.tundra .dijitToggleButtonActive .dijitButtonNode,.tundra .dijitDropDownButtonActive .dijitButtonNode,.tundra .dijitButtonContentsActive,.tundra .dijitStackController .dijitToggleButtonChecked .dijitButtonNode {border-color:#366dba; background: #ededed url("images/buttonActive.png") bottom repeat-x;}.tundra .dijitArrowButtonInner {background:url("images/spriteArrows.png") no-repeat scroll 0 center; width: 7px; height: 7px; margin: 0 4px 0 4px;}.tundra .dijitTextBox .dijitArrowButtonInner {background-position: 0 center;}.dj_ie6 .tundra .dijitArrowButtonInner {background-image:url("images/spriteArrows.gif");}.tundra .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -7px center;}.tundra .dijitRightArrowButton .dijitArrowButtonInner {background-position: -14px center;}.tundra .dijitUpArrowButton .dijitArrowButtonInner {background-position: -21px center;}.tundra .dijitDisabled .dijitArrowButtonInner {background-position: -28px center;}.tundra .dijitDisabled .dijitLeftArrowButton .dijitArrowButtonInner {background-position: -35px center;}.tundra .dijitDisabled .dijitRightArrowButton .dijitArrowButtonInner {background-position: -42px center;}.tundra .dijitDisabled .dijitUpArrowButton .dijitArrowButtonInner {background-position: -49px center;}.dj_ie .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner {margin-top: -2px;}.dj_webkit .tundra .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner,.dj_iequirks .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner,.dj_ie8 .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner {margin-top: -1px;}.tundra .dijitSpinnerButtonContainer {width: auto; padding: 0;}.tundra .dijitSpinner .dijitArrowButton {width: 15px;}.tundra .dijitSpinner .dijitSpinnerButtonInner {width: 15px;}.tundra .dijitSpinner .dijitArrowButtonInner .dijitInputField {padding: 0;}.tundra .dijitToggleButton .dijitCheckBoxIcon {background-image: url("images/checkmarkNoBorder.png");}.dj_ie6 .tundra .dijitToggleButton .dijitCheckBoxIcon {background-image: url("images/checkmarkNoBorder.gif");}.tundra .dijitCheckBox,.tundra .dijitCheckBoxIcon {background-image: url("images/checkmark.png"); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0 2px 0 0; padding: 0;}.dj_ie6 .tundra .dijitCheckBox,.dj_ie6 .tundra .dijitCheckBoxIcon {background-image: url("images/checkmark.gif");}.tundra .dijitCheckBox,.tundra .dijitToggleButton .dijitCheckBoxIcon {background-position: -16px;}.tundra .dijitCheckBoxChecked,.tundra .dijitToggleButtonChecked .dijitCheckBoxIcon {background-position: 0;}.tundra .dijitCheckBoxDisabled {background-position: -48px;}.tundra .dijitCheckBoxCheckedDisabled {background-position: -32px;}.tundra .dijitCheckBoxHover {background-position: -80px;}.tundra .dijitCheckBoxCheckedHover {background-position: -64px;}.tundra .dijitRadio, .tundra .dijitRadioIcon {background-image: url("images/checkmark.png"); background-repeat: no-repeat; width: 16px; height: 16px; margin: 0; padding: 0;}.dj_ie6 .tundra .dijitRadio,.dj_ie6 .tundra .dijitRadioIcon {background-image: url("images/checkmark.gif");}.tundra .dijitToggleButton .dijitRadioIcon {background-image: url("images/checkmarkNoBorder.png");}.dj_ie6 .tundra .dijitToggleButton .dijitRadioIcon {background-image: url("images/checkmarkNoBorder.gif");}.tundra .dijitRadio,.tundra .dijitRadioIcon {background-position: -112px;}.tundra .dijitRadioDisabled {background-position: -144px;}.tundra .dijitRadioHover {background-position: -176px;}.tundra .dijitRadioChecked,.tundra .dijitRadioCheckedHover,.tundra .dijitToggleButtonChecked .dijitRadioIcon {background-position: -96px;}.tundra .dijitRadioCheckedDisabled {background-position: -128px;}.tundra .dijitSliderProgressBarH {border-color: #aab0bb; background: #c0c2c5 url("images/sliderFull.png") repeat-x top left;}.tundra .dijitSliderProgressBarV {border-color: #aab0bb; background: #c0c2c5 url("images/sliderFullVertical.png") repeat-y bottom left;}.tundra .dijitSliderFocused .dijitSliderProgressBarH,.tundra .dijitSliderFocused .dijitSliderLeftBumper {background-image:url("images/sliderFullFocus.png");}.tundra .dijitSliderFocused .dijitSliderProgressBarV,.tundra .dijitSliderFocused .dijitSliderBottomBumper {background-image:url("images/sliderFullVerticalFocus.png");}.tundra .dijitSliderRemainingBarV {border-color: #b4b4b4; background: #dcdcdc url("images/sliderEmptyVertical.png") repeat-y bottom left;}.tundra .dijitSliderRemainingBarH {border-color: #b4b4b4; background: #dcdcdc url("images/sliderEmpty.png") repeat-x top left;}.tundra .dijitSliderBar {border-style: solid; outline:1px;}.tundra .dijitSliderFocused .dijitSliderBar {border-color:#888;}.tundra .dijitSliderImageHandleH {border:0; width:16px; height:16px; background:url("images/preciseSliderThumb.png") no-repeat center top;}.tundra .dijitSliderFocused .dijitSliderImageHandleH {background-image:url("images/preciseSliderThumbFocus.png"); #background-image:url("images/preciseSliderThumbFocus.gif");}.dj_ie6 .tundra .dijitSliderImageHandleH {background-image:url("images/preciseSliderThumb.gif");}.tundra .dijitSliderLeftBumper {border-left-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("images/sliderFull.png") repeat-x top left;}.tundra .dijitSliderRightBumper {background: #dcdcdc url("images/sliderEmpty.png") repeat-x top left; border-color: #b4b4b4; border-right-width: 1px;}.tundra .dijitSliderImageHandleV {border:0; width:16px; height:16px; background:url("images/sliderThumb.png") no-repeat center center;}.tundra .dijitSliderFocused .dijitSliderImageHandleV {background-image:url("images/sliderThumbFocus.png");}.dj_ie6 .tundra .dijitSliderFocused .dijitSliderImageHandleV {background-image:url("images/sliderThumbFocus.gif");}.tundra .dijitSliderBottomBumper {border-bottom-width: 1px; border-color: #aab0bb; background: #c0c2c5 url("images/sliderFullVertical.png") repeat-y bottom left;}.tundra .dijitSliderTopBumper {background: #dcdcdc url("images/sliderEmptyVertical.png") repeat-y top left; border-color: #b4b4b4; border-top-width: 1px;}.tundra .dijitSliderDecrementIconH,.tundra .dijitSliderDecrementIconV,.tundra .dijitSliderIncrementIconH,.tundra .dijitSliderIncrementIconV {background-image: url("images/spriteArrows.png"); background-repeat: no-repeat; margin: 5px; height: 7px; width: 7px; font-size: 1px;}.dj_ie6 .tundra .dijitSliderDecrementIconH,.dj_ie6 .tundra .dijitSliderDecrementIconV,.dj_ie6 .tundra .dijitSliderIncrementIconH,.dj_ie6 .tundra .dijitSliderIncrementIconV {background-image: url("images/spriteArrows.gif");}.tundra .dijitSliderDecrementIconH {background-position: -7px 0;}.tundra .dijitSliderIncrementIconH {background-position: -14px 0;}.tundra .dijitSliderDecrementIconV {background-position: 0 0;}.tundra .dijitSliderIncrementIconV {background-position: -21px 0;}.tundra .dijitSliderButtonInner {visibility:hidden;}.tundra .dijitSliderReadOnly *,.tundra .dijitSliderDisabled * {border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; color: #bdbdbd;}.tundra .dijitSliderReadOnly .dijitSliderDecrementIconH,.tundra .dijitSliderDisabled .dijitSliderDecrementIconH {background-position: -35px 0;}.tundra .dijitSliderReadOnly .dijitSliderIncrementIconH,.tundra .dijitSliderDisabled .dijitSliderIncrementIconH {background-position: -42px 0;}.tundra .dijitSliderReadOnly .dijitSliderDecrementIconV,.tundra .dijitSliderDisabled .dijitSliderDecrementIconV {background-position: -28px 0;}.tundra .dijitSliderReadOnly .dijitSliderIncrementIconV,.tundra .dijitSliderDisabled .dijitSliderIncrementIconV {background-position: -49px 0;}.tundra .dijitSelectError .dijitButtonContents,.tundra .dijitSelectHover .dijitArrowButton,.tundra .dijitSelectActive .dijitArrowButton,.tundra .dijitSelectOpened .dijitArrowButton,.tundra .dijitSelectDisabled .dijitArrowButton,.tundra .dijitSelectReadOnly .dijitArrowButton {background: transparent none;}.tundra .dijitSelect .dijitArrowButton {background: #fff url("images/buttonEnabled.png") repeat-x bottom left; border-width: 0;}.tundra .dijitSelectDisabled,.tundra .dijitSelectDisabled TD {border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5 !important; background:#e4e4e4 url("images/buttonDisabled.png") top repeat-x;}.dj_ie .tundra .dijitSelectDisabled TD * {filter: gray() alpha(opacity=50);}.tundra .dijitSelectHover,.tundra .dijitSelectHover TD {border-color:#a5beda #5c7590 #5c7590 #a5beda !important; color:#243C5F; background:#fcfdff url("images/buttonHover.png") repeat-x bottom;}.tundra .dijitSelectActive,.tundra .dijitSelectOpened,.tundra .dijitSelectActive TD,.tundra .dijitSelectOpened TD {border-color:#366dba !important; background: #ededed url("images/buttonActive.png") bottom repeat-x;}.tundra .dijitSelectMenu td {padding: 0;}.tundra .dijitSelectMenu .dijitMenuItemLabel,.tundra .dijitSelectMenu .dijitMenuArrowCell {padding: 0.1em 0.2em;}.tundra .dijitTreeNode {background-image : url("images/i.gif"); background-repeat : repeat-y; zoom: 1;}.tundra .dijitTreeIsLast {background: url("images/i_half.gif") no-repeat;}.tundra .dijitTreeIsRoot {margin-left: 0; background-image: none;}.tundra .dijitTreeExpando {width: 18px; height: 18px;}.tundra .dijitTreeRow {padding-bottom: 2px;}.tundra .dijitTreeContent {min-height: 18px; min-width: 18px;}.tundra .dijitTreeRowSelected .dijitTreeLabel {background:#e2ebfe;}.tundra .dijitTreeRowHover {background-image: url("images/treeHover.png"); background-repeat: repeat; background-color: transparent !important;}.tundra .dijitTreeExpandoOpened {background-image: url("images/treeExpand_minus.gif");}.tundra .dijitTreeExpandoClosed {background-image: url("images/treeExpand_plus.gif");}.tundra .dijitTreeExpandoLeaf {background-image: url("images/treeExpand_leaf.gif");}.tundra .dijitTreeExpandoLoading {background-image: url("images/treeExpand_loading.gif");}.tundra .dijitTreeIcon {width: 16px; height: 16px;}.tundra .dijitFolderOpened {background: url("images/folderOpened.gif") no-repeat;}.tundra .dijitFolderClosed {background: url("images/folderClosed.gif") no-repeat;}.tundra .dijitLeaf {background: url("images/leaf.gif") no-repeat;}.tundra .dijitTreeNode .dojoDndItemBefore,.tundra .dijitTreeNode .dojoDndItemAfter {border-bottom: none; border-top: none;}.tundra .dijitTreeNode .dojoDndItemBefore .dijitTreeContent {border-top: 2px solid #369;}.tundra .dijitTreeNode .dojoDndItemAfter .dijitTreeContent {border-bottom: 2px solid #369;}.tundra .dijitProgressBar {margin:2px 0 2px 0;}.tundra .dijitProgressBarEmpty {background:#fff url("images/progressBarEmpty.png") repeat-x center center; border-color: #a2a2a2 #b8b8b8 #b8b8b8 #a2a2a2;}.tundra .dijitProgressBarTile {background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center;}.tundra .dijitProgressBarFull {border-right:1px solid #b8b8b8;}.tundra .dijitProgressBarLabel {color:#293a4b;}.tundra .dijitProgressBarIndeterminate .dijitProgressBarTile {background:#cad2de url("images/progressBarAnim.gif") repeat-x center center;}.tundra .dijitTitlePaneTitle {background: #cccccc; background:#fff url("images/titleBar.png") repeat-x bottom left; border:1px solid #bfbfbf; padding:3px 4px;}.tundra .dijitTitlePaneTitleHover {background: #f8fafd url("images/accordionItemHover.gif") bottom repeat-x;}.tundra .dijitTitlePane .dijitArrowNode {background-image: url("images/spriteArrows.png"); background-repeat: no-repeat; background-position: 0 0; height: 7px; width: 7px;}.dj_ie6 .tundra .dijitTitlePane .dijitArrowNode {background-image: url("images/spriteArrows.gif");}.tundra .dijitTitlePane .dijitClosed .dijitArrowNode {background-position: -14px 0;}.tundra .dijitTitlePaneContentOuter {background: #ffffff; border:1px solid #bfbfbf; border-top: 0;}.tundra .dijitTitlePaneContentInner {padding:10px;}.tundra .dijitTitlePaneTextNode {margin-left: 4px; margin-right: 4px;}.tundra .dijitCalendarIncrementControl {width:15px; height:15px; background-image: url("images/spriteRoundedIconsSmall.png"); background-repeat: no-repeat}.dj_ie6 .tundra .dijitCalendarIncrementControl {font-size:.1em; background-image: url("images/spriteRoundedIconsSmall.gif");}.tundra .dijitA11ySideArrow {display: none;}.tundra .dijitCalendarDecrease {background-position: top left;}.tundra .dijitCalendarIncrease {background-position: -30px top;}.tundra .dijitCalendarContainer {font-size: 100%; border-spacing: 0; border-collapse: separate; border: 1px solid #ccc; margin: 0;}.tundra .dijitCalendarMonthContainer th {background:#d3d3d3 url("images/titleBar.png") repeat-x top; padding-top:.3em; padding-bottom:.2em; text-align:center;}.dj_ie6 .tundra .dijitCalendarMonthContainer th {padding-top:.2em; padding-bottom:.1em;}.tundra .dijitCalendarDayLabelTemplate {background:white url("images/calendarDayLabel.png") repeat-x bottom; font-weight:normal; padding-top:.15em; padding-bottom:0; border-top: 1px solid #eeeeee; color:#293a4b; text-align:center;}.tundra .dijitCalendarBodyContainer {border-bottom: 1px solid #eeeeee;}.tundra .dijitCalendarMonthLabel {color:#293a4b; font-weight: bold; padding: 0 4px;}.tundra .dijitCalendarDateTemplate {font-size: 0.9em; font-weight: bold; text-align: center; padding: 0.3em 0.3em 0.05em 0.3em; letter-spacing: 1px;}.dj_ie .tundra .dijitCalendarDateTemplate {padding: 0.1em .33em 0.02em .33em;}.tundra .dijitCalendarPreviousMonth,.tundra .dijitCalendarNextMonth {color:#999999; background-color:#f8f8f8;}.tundra .dijitCalendarCurrentMonth {background-color: white;}.tundra .dijitCalendarCurrentDate {text-decoration:underline; font-weight:bold;}.tundra .dijitCalendarHoveredDate {background-color: #e2ebf2;}.tundra .dijitCalendarDisabledDate {text-decoration: line-through; background-color: white;}.tundra .dijitCalendarSelectedDate {background-color:#bbc4d0 !important; color:black !important;}.tundra .dijitCalendarYearContainer {background:white url("images/calendarYearLabel.png") repeat-x bottom; border-top:1px solid #ccc;}.tundra .dijitCalendarYearLabel {margin:0; padding:0.4em 0 0.25em 0; text-align:center; font-size: 1.17em;}.tundra .dijitCalendarSelectedYear {font-weight:bolder; color:black; padding:0.2em; padding-bottom:0.1em; background-color:#bbc4d0 !important;}.tundra .dijitCalendarNextYear,.tundra .dijitCalendarPreviousYear {color:black !important; font-weight:normal;}.tundra .dijitCalendar .dijitDropDownButton {margin: 0;}.tundra .dijitCalendar .dijitButtonText {padding: 0;}.tundra .dijitCalendar .dijitDropDownButton .dijitButtonNode {background-color: transparent; background-image: none; padding: 0;}.tundra .dijitCalendarMonthMenu .dijitCalendarMonthLabelHover {background-color: #3559ac; color:#fff;}.tundra .dijitTimePickerTick,.tundra .dijitTimePickerMarker {border-color: #ccc;}.tundra .dijitTimePickerTick {color:white;}.tundra .dijitTimePickerMarker {background:#d3d3d3 url("images/titleBar.png") repeat-x top; color:#293a4b; font-weight: bold;}.tundra .dijitTimePickerItemSelected {color: black; background: #bbc4d0 none;}.tundra .dijitTimePickerItemHover {background: #60a1ea none; color:white;}.tundra .dijitTimePickerItemHover,.tundra .dijitTimePickerItemSelected {position: relative; z-index: 10;}.tundra .dijitTimePickerTick .dijitTimePickerItemInner {font-size:0.4em;}.tundra .dijitTimePickerItemHover .dijitTimePickerItemInner,.tundra .dijitTimePickerItemSelected .dijitTimePickerItemInner {font-size:1em;}.tundra .dijitTimePickerMarkerHover {border-top: 1px solid #ccc;}.tundra .dijitTimePickerTickHover,.tundra .dijitTimePickerTickSelected {margin-top:-0.3em; margin-bottom:-0.3em; border-bottom: none;}.tundra .dijitToolbar {border-bottom: 1px solid #ccc; background:#eaeaea url("images/titleBar.png") repeat-x top left;}.dj_ie6 .tundra .dijitToolbar {height: 10px;}.tundra .dijitToolbar .dijitButtonNode,.tundra .dijitToolbar .dijitComboButton .dijitButtonContents,.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; margin: 0; padding: 0; border: none; font-size: 12px;}.tundra .dijitToolbar .dijitButton,.tundra .dijitToolbar .dijitToggleButton,.tundra .dijitToolbar .dijitDropDownButton,.tundra .dijitToolbar .dijitComboButton .dijitButtonContents,.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButton {background: none; padding: 1px;}.tundra .dijitToolbar .dijitButtonChecked,.tundra .dijitToolbar .dijitToggleButtonChecked {background-color:#d4dff2; border:1px solid #316ac5; padding: 0;}.tundra .dijitToolbar .dijitButtonCheckedHover,.tundra .dijitToolbar .dijitToggleButtonCheckedHover {background-color:#abc1e5; border:1px solid #316ac5; padding: 0;}.tundra .dijitToolbar .dijitButtonHover,.tundra .dijitToolbar .dijitToggleButtonHover,.tundra .dijitToolbar .dijitDropDownButtonHover,.tundra .dijitToolbar .dijitComboButton .dijitButtonContentsHover,.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover {border: 1px solid #869cbf; padding: 0; background-color:#e1e5f0;}.tundra .dijitToolbar label {padding: 3px 3px 0 6px;}.dj_ie .tundra .dijitToolbar .dijitComboButton .dijitButtonContentsFocused,.dj_ie .tundra .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused {border: 1px #555 dotted !important; padding: 0;}.tundra .dijitToolbarSeparator {background: url("../../icons/images/editorIconsEnabled.png");}.tundra .dijitToolbarRtl .dijitToolbarSeparator {background-image: url("../../icons/images/editorIconsDisabled.png");}.tundra .dijitDialog {background: #fff; border: 1px solid #7eabcd; padding: 0; -webkit-box-shadow: 0 5px 10px #adadad;}.tundra .dijitDialogPaneContent {background: #fff; border-top: 1px solid #d3d3d3; padding:10px;}.tundra .dijitDialogTitleBar {background: #fafafa url("images/titleBar.png") repeat-x top left; padding: 5px 6px 3px 6px; outline:0;}.tundra .dijitDialogTitle {font-weight: bold; padding: 0 4px;}.tundra .dijitDialogCloseIcon {background: url("images/tabClose.png") no-repeat right top; position: absolute; vertical-align: middle; right: 6px; top: 4px; height: 15px; width: 15px;}.dj_ie6 .tundra .dijitDialogCloseIcon {background : url("images/tabClose.gif") no-repeat right top;}.tundra .dijitDialogCloseIconHover {background: url("images/tabCloseHover.png") no-repeat right top;}.dj_ie6 .tundra .dijitDialogCloseIconHover {background : url("images/tabCloseHover.gif") no-repeat right top;}.tundra .dijitTooltip,.tundra .dijitTooltipDialog {background: transparent;}.dijitTooltipBelow {padding-top: 13px;}.dijitTooltipAbove {padding-bottom: 13px;}.tundra .dijitTooltipContainer {background: #ffffff url("images/popupMenuBg.gif") repeat-x bottom left; border: 1px solid #7eabcd; padding: 0.45em; -webkit-border-radius: 3px; -moz-border-radius: 3px;}.tundra .dijitTooltipConnector {border:0; z-index: 2;}.tundra .dijitTooltipABRight .dijitTooltipConnector {left: auto !important; right: 3px;}.tundra .dijitTooltipBelow .dijitTooltipConnector {top: 0; left: 3px; background:url("images/tooltipConnectorUp.png") no-repeat top left; width:16px; height:14px;}.dj_ie .tundra .dijitTooltipBelow .dijitTooltipConnector {background-image: url("images/tooltipConnectorUp.gif");}.tundra .dijitTooltipAbove .dijitTooltipConnector {bottom: 0; left: 3px; background:url("images/tooltipConnectorDown.png") no-repeat top left; width:16px; height:14px;}.dj_ie .tundra .dijitTooltipAbove .dijitTooltipConnector {background-image: url("images/tooltipConnectorDown.gif");}.dj_ie6 .tundra .dijitTooltipAbove .dijitTooltipConnector {bottom: -3px;}.tundra .dijitTooltipLeft {padding-right: 14px;}.tundra .dijitTooltipLeft .dijitTooltipConnector {right: 0; background:url("images/tooltipConnectorRight.png") no-repeat top left; width:16px; height:14px;}.dj_ie .tundra .dijitTooltipLeft .dijitTooltipConnector {background-image: url("images/tooltipConnectorRight.gif");}.tundra .dijitTooltipRight {padding-left: 14px;}.tundra .dijitTooltipRight .dijitTooltipConnector {left: 0; background:url("images/tooltipConnectorLeft.png") no-repeat top left; width:16px; height:14px;}.dj_ie .tundra .dijitTooltipRight .dijitTooltipConnector {background-image: url("images/tooltipConnectorLeft.gif");}.dj_webkit .tundra .dijitTooltipContainer {-webkit-box-shadow: 0 5px 10px #adadad;}.tundra .dijitMenu,.tundra .dijitMenuBar {border: 1px solid #7eabcd; margin: 0; padding: 0; background-color: #f7f7f7;}.tundra .dijitBorderContainer .dijitMenuBar {border:1px solid #ccc;}.tundra .dijitMenuItem {font-family: sans-serif; margin: 0;}.tundra .dijitMenuItem {padding: 4px 5px;}.tundra .dijitMenuPreviousButton, .tundra .dijitMenuNextButton {font-style: italic;}.tundra .dijitMenuItem td {padding: 2px;}.tundra .dijitMenuPassive .dijitMenuItemHover,.tundra .dijitComboBoxMenu .dijitMenuItemHover,.tundra .dijitMenuItemSelected {background-color: #3559ac; color:#fff;}.tundra .dijitMenuItemIcon {width: 16px; height: 16px;}.tundra .dijitMenuExpand {width: 7px; height: 7px; background-image: url("images/spriteArrows.png"); background-position: -14px 0;}.dj_ie6 .tundra .dijitMenuExpand {background-image: url("images/spriteArrows.gif");}.tundra .dijitMenuSeparatorTop {border-bottom: 1px solid #9b9b9b;}.tundra .dijitMenuSeparatorBottom {border-top: 1px solid #e8e8e8;}.tundra .dijitCheckedMenuItemIconChar {display: none;}.tundra .dijitCheckedMenuItemIcon {background-image: url("images/checkmark.png"); background-position: -80px;}.dj_ie6 .tundra .dijitCheckedMenuItemIcon {background-image: url("images/checkmark.gif");}.tundra .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: -64px;}.dijitEditor {border:1px solid #bfbfbf; border-top:0;}.tundra .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled.png"); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.tundra .dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled.png");}.dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled.png"); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled.png");}.dijitEditorIconSep {background-position: 0;}.dijitEditorIconSave {background-position: -18px;}.dijitEditorIconPrint {background-position: -36px;}.dijitEditorIconCut {background-position: -54px;}.dijitEditorIconCopy {background-position: -72px;}.dijitEditorIconPaste {background-position: -90px;}.dijitEditorIconDelete {background-position: -108px;}.dijitEditorIconCancel {background-position: -126px;}.dijitEditorIconUndo {background-position: -144px;}.dijitEditorIconRedo {background-position: -162px;}.dijitEditorIconSelectAll {background-position: -180px;}.dijitEditorIconBold {background-position: -198px;}.dijitEditorIconItalic {background-position: -216px;}.dijitEditorIconUnderline {background-position: -234px;}.dijitEditorIconStrikethrough {background-position: -252px;}.dijitEditorIconSuperscript {background-position: -270px;}.dijitEditorIconSubscript {background-position: -288px;}.dijitEditorIconJustifyCenter {background-position: -306px;}.dijitEditorIconJustifyFull {background-position: -324px;}.dijitEditorIconJustifyLeft {background-position: -342px;}.dijitEditorIconJustifyRight {background-position: -360px;}.dijitEditorIconIndent {background-position: -378px;}.dijitEditorIconOutdent {background-position: -396px;}.dijitEditorIconListBulletIndent {background-position: -414px;}.dijitEditorIconListBulletOutdent {background-position: -432px;}.dijitEditorIconListNumIndent {background-position: -450px;}.dijitEditorIconListNumOutdent {background-position: -468px;}.dijitEditorIconTabIndent {background-position: -486px;}.dijitEditorIconLeftToRight {background-position: -504px;}.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir {background-position: -522px;}.dijitEditorIconBackColor {background-position: -540px;}.dijitEditorIconForeColor {background-position: -558px;}.dijitEditorIconHiliteColor {background-position: -576px;}.dijitEditorIconNewPage {background-position: -594px;}.dijitEditorIconInsertImage {background-position: -612px;}.dijitEditorIconInsertTable {background-position: -630px;}.dijitEditorIconSpace {background-position: -648px;}.dijitEditorIconInsertHorizontalRule {background-position: -666px;}.dijitEditorIconInsertOrderedList {background-position: -684px;}.dijitEditorIconInsertUnorderedList {background-position: -702px;}.dijitEditorIconCreateLink {background-position: -720px;}.dijitEditorIconUnlink {background-position: -738px;}.dijitEditorIconViewSource {background-position: -756px;}.dijitEditorIconRemoveFormat {background-position: -774px;}.dijitEditorIconFullScreen {background-position: -792px;}.dijitEditorIconWikiword {background-position: -810px;} .dijitColorPalette {border:1px solid #7eabcd; background:#fff; -moz-border-radius: 0 !important;}.dijitRtl .dijitPlaceHolder {left: auto; right: 0;}.dijitMenuItemRtl {text-align: right;}.dj_iequirks .dijitComboButtonRtl button {float:left;}.dj_ie .dijitTextBoxRtl .dijitInputContainer {clear: right;}.dijitTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitComboBoxRtl .dijitArrowButtonContainer {border-right-width: 1px !important; border-left-width: 0 !important;}.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton {right: 0; left: auto;}.dijitSelectRtl .dijitButtonText {float: right;}.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitValidationTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitArrowButtonContainer {float: left;}div.dijitNumberTextBoxRtl {text-align: right;}.dijitCalendarRtl .dijitCalendarNextYear {margin:0 0.55em 0 0;}.dijitCalendarRtl .dijitCalendarPreviousYear {margin:0 0 0 0.55em;}.dijitSliderRtl .dijitSliderImageHandleV {left:auto;}.dijitSliderRtl .dijitSliderImageHandleH {left:-50%;}.dijitSliderRtl .dijitSliderMoveableH {right:auto; left:0;}.dijitSliderRtl .dijitRuleContainerV {float:right;}.dj_ie .dijitSliderRtl .dijitRuleContainerV {text-align:right;}.dj_ie .dijitSliderRtl .dijitRuleLabelV {text-align:left;}.dj_ie .dijitSliderRtl .dijitRuleLabelH {zoom:1;}.dijitSliderRtl .dijitSliderProgressBarH {float:right; right:0; left:auto;}.dijitRtl .dijitContentPaneLoading .dijitIconLoading,.dijitRtl .dijitContentPaneError .dijitIconError {margin-right: 0; margin-left: 9px;}.dijitTabControllerRtl .nowrapTabStrip {text-align: right;}.dijitTabRtl .dijitTabCloseButton {margin-left: 0; margin-right: 1em;}.dj_ie6 .dijitTabRtl .tabLabel,.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie6 .dijitTabContainerLeft-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerLeft-tabs .dijitTabRtl {zoom: 1;}.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl {left: 0;}.dj_ie6 .dijitTabContainerRightRtl .dijitTabContainerRight-tabs,.dj_ie6 .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs {width: 1%;}.dj_ie .dijitTimePickerRtl .dijitTimePickerItem {width:100%;}.dijitColorPaletteRtl .dijitColorPaletteUnder {left: auto; right: 0;}.dijitSelectRtl .dijitButtonContents {border-style: none none none solid; text-align: right;}.dijitRtl .dojoDndHorizontal .dojoDndItemBefore {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dijitRtl .dojoDndHorizontal .dojoDndItemAfter {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.tundra .dijitCalendarRtl .dijitCalendarDecrease {background-position: -30px top;}.tundra .dijitCalendarRtl .dijitCalendarIncrease {background-position: 0 top;} .dj_ie6 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover,.dj_ie7 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover {border-top: 0;}.tundra .dijitDialogRtl .dijitDialogCloseIcon {right: auto; left: 5px;}.tundra .dijitEditorRtl .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.tundra .dijitEditorRtlDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled_rtl.png");}.dijitEditorRtl .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.dijitEditorRtlDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled_rtl.png");}.dijitToolbarRtl .dijitToolbarSeparator {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.tundra .dijitMenuItemRtl .dijitMenuExpand {background-position: -7px 0;}.tundra .dijitTreeNodeRtl,.tundra .dijitTreeNodeRtl .dijitTreeExpandoLeaf {background-image: none;}.tundra .dijitTreeNodeRtl .dijitTreeExpandoOpened {background-image: url("images/treeExpand_minus_rtl.gif");}.tundra .dijitTreeNodeRtl .dijitTreeExpandoClosed {background-image: url("images/treeExpand_plus_rtl.gif");}.tundra .dijitTitlePaneRtl .dijitClosed .dijitArrowNode {background-position: -7px 0;}.tundra .dijitTabRtl {padding:2px 9px 2px 8px;}.tundra .dijitSliderRtl .dijitSliderProgressBarH,.tundra .dijitSliderRtl .dijitSliderRemainingBarH,.tundra .dijitSliderRtl .dijitSliderLeftBumper,.tundra .dijitSliderRtl .dijitSliderRightBumper,.tundra .dijitSliderRtl .dijitSliderTopBumper {background-position: top right;}.tundra .dijitSliderRtl .dijitSliderProgressBarV,.tundra .dijitSliderRtl .dijitSliderRemainingBarV,.tundra .dijitSliderRtl .dijitSliderBottomBumper {background-position: bottom right;}.tundra .dijitSliderRtl .dijitSliderLeftBumper {border-left-width: 0; border-right-width: 1px;}.tundra .dijitSliderRtl .dijitSliderRightBumper {border-left-width: 1px; border-right-width: 0;}.tundra .dijitSliderRtl .dijitSliderIncrementIconH {background-position: -7px 0;}.tundra .dijitSliderRtl .dijitSliderDecrementIconH {background-position: -14px 0;} \ No newline at end of file
diff --git a/lib/dijit/themes/tundra/tundra_rtl.css b/lib/dijit/themes/tundra/tundra_rtl.css
index 58b7541fb..d475c516d 100644
--- a/lib/dijit/themes/tundra/tundra_rtl.css
+++ b/lib/dijit/themes/tundra/tundra_rtl.css
@@ -1,27 +1 @@
-/*
- Adds cosmetic styling to Dijit. Users may swap with a custom theme CSS file.
-
- NOTES:
- ---
- Dialog.css contains css classes for both Dialog and Tooltip!
- This because currently a dijit.TooltipDialog exist. Until this is resolved
- you need to include Dialog.css for both dijits
- ---
- Toolbar.css contains classes also used in Editor. Until this is resolved
- you need to include Toolbar.css for both Toolbar and Editor
- ---
- Button.css contains classes for combobox,
-
-*/
-/* RTL files */
-@import url("../dijit_rtl.css");
-@import url("Calendar_rtl.css");
-@import url("TimePicker_rtl.css");
-@import url("Dialog_rtl.css");
-@import url("Editor_rtl.css");
-@import url("../../icons/editorIcons_rtl.css");/* RTL sprite for editor icons to be used by all themes*/
-@import url("Menu_rtl.css");
-@import url("Tree_rtl.css");
-@import url("TitlePane_rtl.css");
-@import url("layout/TabContainer_rtl.css");
-@import url("form/Slider_rtl.css");
+.dijitRtl .dijitPlaceHolder {left: auto; right: 0;}.dijitMenuItemRtl {text-align: right;}.dj_iequirks .dijitComboButtonRtl button {float:left;}.dj_ie .dijitTextBoxRtl .dijitInputContainer {clear: right;}.dijitTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitComboBoxRtl .dijitArrowButtonContainer {border-right-width: 1px !important; border-left-width: 0 !important;}.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton {right: 0; left: auto;}.dijitSelectRtl .dijitButtonText {float: right;}.dijitTextBoxRtl .dijitSpinnerButtonContainer,.dijitValidationTextBoxRtl .dijitValidationContainer,.dijitTextBoxRtl .dijitArrowButtonContainer {float: left;}div.dijitNumberTextBoxRtl {text-align: right;}.dijitCalendarRtl .dijitCalendarNextYear {margin:0 0.55em 0 0;}.dijitCalendarRtl .dijitCalendarPreviousYear {margin:0 0 0 0.55em;}.dijitSliderRtl .dijitSliderImageHandleV {left:auto;}.dijitSliderRtl .dijitSliderImageHandleH {left:-50%;}.dijitSliderRtl .dijitSliderMoveableH {right:auto; left:0;}.dijitSliderRtl .dijitRuleContainerV {float:right;}.dj_ie .dijitSliderRtl .dijitRuleContainerV {text-align:right;}.dj_ie .dijitSliderRtl .dijitRuleLabelV {text-align:left;}.dj_ie .dijitSliderRtl .dijitRuleLabelH {zoom:1;}.dijitSliderRtl .dijitSliderProgressBarH {float:right; right:0; left:auto;}.dijitRtl .dijitContentPaneLoading .dijitIconLoading,.dijitRtl .dijitContentPaneError .dijitIconError {margin-right: 0; margin-left: 9px;}.dijitTabControllerRtl .nowrapTabStrip {text-align: right;}.dijitTabRtl .dijitTabCloseButton {margin-left: 0; margin-right: 1em;}.dj_ie6 .dijitTabRtl .tabLabel,.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie6 .dijitTabContainerLeft-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerLeft-tabs .dijitTabRtl {zoom: 1;}.dj_ie6 .dijitTabContainerRight-tabs .dijitTabRtl,.dj_ie7 .dijitTabContainerRight-tabs .dijitTabRtl {left: 0;}.dj_ie6 .dijitTabContainerRightRtl .dijitTabContainerRight-tabs,.dj_ie6 .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs {width: 1%;}.dj_ie .dijitTimePickerRtl .dijitTimePickerItem {width:100%;}.dijitColorPaletteRtl .dijitColorPaletteUnder {left: auto; right: 0;}.dijitSelectRtl .dijitButtonContents {border-style: none none none solid; text-align: right;}.dijitRtl .dojoDndHorizontal .dojoDndItemBefore {border-width: 0 2px 0 0; padding: 2px 0 2px 2px;}.dijitRtl .dojoDndHorizontal .dojoDndItemAfter {border-width: 0 0 0 2px; padding: 2px 2px 2px 0;}.tundra .dijitCalendarRtl .dijitCalendarDecrease {background-position: -30px top;}.tundra .dijitCalendarRtl .dijitCalendarIncrease {background-position: 0 top;} .dj_ie6 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover,.dj_ie7 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover {border-top: 0;}.tundra .dijitDialogRtl .dijitDialogCloseIcon {right: auto; left: 5px;}.tundra .dijitEditorRtl .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.tundra .dijitEditorRtlDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled_rtl.png");}.dijitEditorRtl .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.dijitEditorRtlDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled_rtl.png");}.dijitToolbarRtl .dijitToolbarSeparator {background-image: url("../../icons/images/editorIconsEnabled_rtl.png");}.tundra .dijitMenuItemRtl .dijitMenuExpand {background-position: -7px 0;}.tundra .dijitTreeNodeRtl,.tundra .dijitTreeNodeRtl .dijitTreeExpandoLeaf {background-image: none;}.tundra .dijitTreeNodeRtl .dijitTreeExpandoOpened {background-image: url("images/treeExpand_minus_rtl.gif");}.tundra .dijitTreeNodeRtl .dijitTreeExpandoClosed {background-image: url("images/treeExpand_plus_rtl.gif");}.tundra .dijitTitlePaneRtl .dijitClosed .dijitArrowNode {background-position: -7px 0;}.tundra .dijitTabRtl {padding:2px 9px 2px 8px;}.tundra .dijitSliderRtl .dijitSliderProgressBarH,.tundra .dijitSliderRtl .dijitSliderRemainingBarH,.tundra .dijitSliderRtl .dijitSliderLeftBumper,.tundra .dijitSliderRtl .dijitSliderRightBumper,.tundra .dijitSliderRtl .dijitSliderTopBumper {background-position: top right;}.tundra .dijitSliderRtl .dijitSliderProgressBarV,.tundra .dijitSliderRtl .dijitSliderRemainingBarV,.tundra .dijitSliderRtl .dijitSliderBottomBumper {background-position: bottom right;}.tundra .dijitSliderRtl .dijitSliderLeftBumper {border-left-width: 0; border-right-width: 1px;}.tundra .dijitSliderRtl .dijitSliderRightBumper {border-left-width: 1px; border-right-width: 0;}.tundra .dijitSliderRtl .dijitSliderIncrementIconH {background-position: -7px 0;}.tundra .dijitSliderRtl .dijitSliderDecrementIconH {background-position: -14px 0;} \ No newline at end of file
diff --git a/lib/dijit/tree/ForestStoreModel.js b/lib/dijit/tree/ForestStoreModel.js
index d0b895335..c8520788b 100644
--- a/lib/dijit/tree/ForestStoreModel.js
+++ b/lib/dijit/tree/ForestStoreModel.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/tree/ForestStoreModel",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/_base/window","./TreeStoreModel"],function(_1,_2,_3,_4,_5){return _2("dijit.tree.ForestStoreModel",_5,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(_6){this.root={store:this,root:true,id:_6.rootId,label:_6.rootLabel,children:_6.rootChildren};},mayHaveChildren:function(_7){return _7===this.root||this.inherited(arguments);},getChildren:function(_8,_9,_a){if(_8===this.root){if(this.root.children){_9(this.root.children);}else{this.store.fetch({query:this.query,onComplete:_3.hitch(this,function(_b){this.root.children=_b;_9(_b);}),onError:_a});}}else{this.inherited(arguments);}},isItem:function(_c){return (_c===this.root)?true:this.inherited(arguments);},fetchItemByIdentity:function(_d){if(_d.identity==this.root.id){var _e=_d.scope?_d.scope:_4.global;if(_d.onItem){_d.onItem.call(_e,this.root);}}else{this.inherited(arguments);}},getIdentity:function(_f){return (_f===this.root)?this.root.id:this.inherited(arguments);},getLabel:function(_10){return (_10===this.root)?this.root.label:this.inherited(arguments);},newItem:function(_11,_12,_13){if(_12===this.root){this.onNewRootItem(_11);return this.store.newItem(_11);}else{return this.inherited(arguments);}},onNewRootItem:function(){},pasteItem:function(_14,_15,_16,_17,_18){if(_15===this.root){if(!_17){this.onLeaveRoot(_14);}}this.inherited(arguments,[_14,_15===this.root?null:_15,_16===this.root?null:_16,_17,_18]);if(_16===this.root){this.onAddToRoot(_14);}},onAddToRoot:function(_19){},onLeaveRoot:function(_1a){},_requeryTop:function(){var _1b=this.root.children||[];this.store.fetch({query:this.query,onComplete:_3.hitch(this,function(_1c){this.root.children=_1c;if(_1b.length!=_1c.length||_1.some(_1b,function(_1d,idx){return _1c[idx]!=_1d;})){this.onChildrenChange(this.root,_1c);}})});},onNewItem:function(_1e,_1f){this._requeryTop();this.inherited(arguments);},onDeleteItem:function(_20){if(_1.indexOf(this.root.children,_20)!=-1){this._requeryTop();}this.inherited(arguments);},onSetItem:function(_21,_22,_23,_24){this._requeryTop();this.inherited(arguments);}});}); \ No newline at end of file
+define("dijit/tree/ForestStoreModel",["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","./TreeStoreModel"],function(_1,_2,_3,_4,_5){return _2("dijit.tree.ForestStoreModel",_5,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(_6){this.root={store:this,root:true,id:_6.rootId,label:_6.rootLabel,children:_6.rootChildren};},mayHaveChildren:function(_7){return _7===this.root||this.inherited(arguments);},getChildren:function(_8,_9,_a){if(_8===this.root){if(this.root.children){_9(this.root.children);}else{this.store.fetch({query:this.query,onComplete:_4.hitch(this,function(_b){this.root.children=_b;_9(_b);}),onError:_a});}}else{this.inherited(arguments);}},isItem:function(_c){return (_c===this.root)?true:this.inherited(arguments);},fetchItemByIdentity:function(_d){if(_d.identity==this.root.id){var _e=_d.scope||_3.global;if(_d.onItem){_d.onItem.call(_e,this.root);}}else{this.inherited(arguments);}},getIdentity:function(_f){return (_f===this.root)?this.root.id:this.inherited(arguments);},getLabel:function(_10){return (_10===this.root)?this.root.label:this.inherited(arguments);},newItem:function(_11,_12,_13){if(_12===this.root){this.onNewRootItem(_11);return this.store.newItem(_11);}else{return this.inherited(arguments);}},onNewRootItem:function(){},pasteItem:function(_14,_15,_16,_17,_18){if(_15===this.root){if(!_17){this.onLeaveRoot(_14);}}this.inherited(arguments,[_14,_15===this.root?null:_15,_16===this.root?null:_16,_17,_18]);if(_16===this.root){this.onAddToRoot(_14);}},onAddToRoot:function(_19){},onLeaveRoot:function(_1a){},_requeryTop:function(){var _1b=this.root.children||[];this.store.fetch({query:this.query,onComplete:_4.hitch(this,function(_1c){this.root.children=_1c;if(_1b.length!=_1c.length||_1.some(_1b,function(_1d,idx){return _1c[idx]!=_1d;})){this.onChildrenChange(this.root,_1c);}})});},onNewItem:function(_1e,_1f){this._requeryTop();this.inherited(arguments);},onDeleteItem:function(_20){if(_1.indexOf(this.root.children,_20)!=-1){this._requeryTop();}this.inherited(arguments);},onSetItem:function(_21,_22,_23,_24){this._requeryTop();this.inherited(arguments);}});}); \ No newline at end of file
diff --git a/lib/dijit/tree/ObjectStoreModel.js b/lib/dijit/tree/ObjectStoreModel.js
new file mode 100644
index 000000000..7021bec52
--- /dev/null
+++ b/lib/dijit/tree/ObjectStoreModel.js
@@ -0,0 +1,2 @@
+//>>built
+define("dijit/tree/ObjectStoreModel",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/_base/lang","dojo/when"],function(_1,_2,_3,_4,_5){return _3("dijit.tree.ObjectStoreModel",null,{store:null,labelAttr:"name",root:null,query:null,constructor:function(_6){_4.mixin(this,_6);this.childrenCache={};},destroy:function(){for(var id in this.childrenCache){this.childrenCache[id].close&&this.childrenCache[id].close();}},getRoot:function(_7,_8){if(this.root){_7(this.root);}else{var _9;_5(_9=this.store.query(this.query),_4.hitch(this,function(_a){if(_a.length!=1){throw new Error("dijit.tree.ObjectStoreModel: root query returned "+_a.length+" items, but must return exactly one");}this.root=_a[0];_7(this.root);if(_9.observe){_9.observe(_4.hitch(this,function(_b){this.onChange(_b);}),true);}}),_8);}},mayHaveChildren:function(){return true;},getChildren:function(_c,_d,_e){var id=this.store.getIdentity(_c);if(this.childrenCache[id]){_5(this.childrenCache[id],_d,_e);return;}var _f=this.childrenCache[id]=this.store.getChildren(_c);_5(_f,_d,_e);if(_f.observe){_f.observe(_4.hitch(this,function(obj,_10,_11){this.onChange(obj);if(_10!=_11){_5(_f,_4.hitch(this,"onChildrenChange",_c));}}),true);}},isItem:function(){return true;},fetchItemByIdentity:function(_12){this.store.get(_12.identity).then(_4.hitch(_12.scope,_12.onItem),_4.hitch(_12.scope,_12.onError));},getIdentity:function(_13){return this.store.getIdentity(_13);},getLabel:function(_14){return _14[this.labelAttr];},newItem:function(_15,_16,_17,_18){return this.store.put(_15,{parent:_16,before:_18});},pasteItem:function(_19,_1a,_1b,_1c,_1d,_1e){if(!_1c){var _1f=[].concat(this.childrenCache[this.getIdentity(_1a)]),_20=_1.indexOf(_1f,_19);_1f.splice(_20,1);this.onChildrenChange(_1a,_1f);}return this.store.put(_19,{overwrite:true,parent:_1b,before:_1e});},onChange:function(){},onChildrenChange:function(){},onDelete:function(){}});}); \ No newline at end of file
diff --git a/lib/dijit/tree/TreeStoreModel.js b/lib/dijit/tree/TreeStoreModel.js
index f61977c2f..bba7dc74c 100644
--- a/lib/dijit/tree/TreeStoreModel.js
+++ b/lib/dijit/tree/TreeStoreModel.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/tree/TreeStoreModel",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/_base/json","dojo/_base/lang"],function(_1,_2,_3,_4,_5){return _3("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(_6){_5.mixin(this,_6);this.connects=[];var _7=this.store;if(!_7.getFeatures()["dojo.data.api.Identity"]){throw new Error("dijit.Tree: store must support dojo.data.Identity");}if(_7.getFeatures()["dojo.data.api.Notification"]){this.connects=this.connects.concat([_2.after(_7,"onNew",_5.hitch(this,"onNewItem"),true),_2.after(_7,"onDelete",_5.hitch(this,"onDeleteItem"),true),_2.after(_7,"onSet",_5.hitch(this,"onSetItem"),true)]);}},destroy:function(){var h;while(h=this.connects.pop()){h.remove();}},getRoot:function(_8,_9){if(this.root){_8(this.root);}else{this.store.fetch({query:this.query,onComplete:_5.hitch(this,function(_a){if(_a.length!=1){throw new Error(this.declaredClass+": query "+_4.stringify(this.query)+" returned "+_a.length+" items, but must return exactly one item");}this.root=_a[0];_8(this.root);}),onError:_9});}},mayHaveChildren:function(_b){return _1.some(this.childrenAttrs,function(_c){return this.store.hasAttribute(_b,_c);},this);},getChildren:function(_d,_e,_f){var _10=this.store;if(!_10.isItemLoaded(_d)){var _11=_5.hitch(this,arguments.callee);_10.loadItem({item:_d,onItem:function(_12){_11(_12,_e,_f);},onError:_f});return;}var _13=[];for(var i=0;i<this.childrenAttrs.length;i++){var _14=_10.getValues(_d,this.childrenAttrs[i]);_13=_13.concat(_14);}var _15=0;if(!this.deferItemLoadingUntilExpand){_1.forEach(_13,function(_16){if(!_10.isItemLoaded(_16)){_15++;}});}if(_15==0){_e(_13);}else{_1.forEach(_13,function(_17,idx){if(!_10.isItemLoaded(_17)){_10.loadItem({item:_17,onItem:function(_18){_13[idx]=_18;if(--_15==0){_e(_13);}},onError:_f});}});}},isItem:function(_19){return this.store.isItem(_19);},fetchItemByIdentity:function(_1a){this.store.fetchItemByIdentity(_1a);},getIdentity:function(_1b){return this.store.getIdentity(_1b);},getLabel:function(_1c){if(this.labelAttr){return this.store.getValue(_1c,this.labelAttr);}else{return this.store.getLabel(_1c);}},newItem:function(_1d,_1e,_1f){var _20={parent:_1e,attribute:this.childrenAttrs[0]},_21;if(this.newItemIdAttr&&_1d[this.newItemIdAttr]){this.fetchItemByIdentity({identity:_1d[this.newItemIdAttr],scope:this,onItem:function(_22){if(_22){this.pasteItem(_22,null,_1e,true,_1f);}else{_21=this.store.newItem(_1d,_20);if(_21&&(_1f!=undefined)){this.pasteItem(_21,_1e,_1e,false,_1f);}}}});}else{_21=this.store.newItem(_1d,_20);if(_21&&(_1f!=undefined)){this.pasteItem(_21,_1e,_1e,false,_1f);}}},pasteItem:function(_23,_24,_25,_26,_27){var _28=this.store,_29=this.childrenAttrs[0];if(_24){_1.forEach(this.childrenAttrs,function(_2a){if(_28.containsValue(_24,_2a,_23)){if(!_26){var _2b=_1.filter(_28.getValues(_24,_2a),function(x){return x!=_23;});_28.setValues(_24,_2a,_2b);}_29=_2a;}});}if(_25){if(typeof _27=="number"){var _2c=_28.getValues(_25,_29).slice();_2c.splice(_27,0,_23);_28.setValues(_25,_29,_2c);}else{_28.setValues(_25,_29,_28.getValues(_25,_29).concat(_23));}}},onChange:function(){},onChildrenChange:function(){},onDelete:function(){},onNewItem:function(_2d,_2e){if(!_2e){return;}this.getChildren(_2e.item,_5.hitch(this,function(_2f){this.onChildrenChange(_2e.item,_2f);}));},onDeleteItem:function(_30){this.onDelete(_30);},onSetItem:function(_31,_32){if(_1.indexOf(this.childrenAttrs,_32)!=-1){this.getChildren(_31,_5.hitch(this,function(_33){this.onChildrenChange(_31,_33);}));}else{this.onChange(_31);}}});}); \ No newline at end of file
+define("dijit/tree/TreeStoreModel",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/_base/lang"],function(_1,_2,_3,_4){return _3("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(_5){_4.mixin(this,_5);this.connects=[];var _6=this.store;if(!_6.getFeatures()["dojo.data.api.Identity"]){throw new Error("dijit.tree.TreeStoreModel: store must support dojo.data.Identity");}if(_6.getFeatures()["dojo.data.api.Notification"]){this.connects=this.connects.concat([_2.after(_6,"onNew",_4.hitch(this,"onNewItem"),true),_2.after(_6,"onDelete",_4.hitch(this,"onDeleteItem"),true),_2.after(_6,"onSet",_4.hitch(this,"onSetItem"),true)]);}},destroy:function(){var h;while(h=this.connects.pop()){h.remove();}},getRoot:function(_7,_8){if(this.root){_7(this.root);}else{this.store.fetch({query:this.query,onComplete:_4.hitch(this,function(_9){if(_9.length!=1){throw new Error("dijit.tree.TreeStoreModel: root query returned "+_9.length+" items, but must return exactly one");}this.root=_9[0];_7(this.root);}),onError:_8});}},mayHaveChildren:function(_a){return _1.some(this.childrenAttrs,function(_b){return this.store.hasAttribute(_a,_b);},this);},getChildren:function(_c,_d,_e){var _f=this.store;if(!_f.isItemLoaded(_c)){var _10=_4.hitch(this,arguments.callee);_f.loadItem({item:_c,onItem:function(_11){_10(_11,_d,_e);},onError:_e});return;}var _12=[];for(var i=0;i<this.childrenAttrs.length;i++){var _13=_f.getValues(_c,this.childrenAttrs[i]);_12=_12.concat(_13);}var _14=0;if(!this.deferItemLoadingUntilExpand){_1.forEach(_12,function(_15){if(!_f.isItemLoaded(_15)){_14++;}});}if(_14==0){_d(_12);}else{_1.forEach(_12,function(_16,idx){if(!_f.isItemLoaded(_16)){_f.loadItem({item:_16,onItem:function(_17){_12[idx]=_17;if(--_14==0){_d(_12);}},onError:_e});}});}},isItem:function(_18){return this.store.isItem(_18);},fetchItemByIdentity:function(_19){this.store.fetchItemByIdentity(_19);},getIdentity:function(_1a){return this.store.getIdentity(_1a);},getLabel:function(_1b){if(this.labelAttr){return this.store.getValue(_1b,this.labelAttr);}else{return this.store.getLabel(_1b);}},newItem:function(_1c,_1d,_1e){var _1f={parent:_1d,attribute:this.childrenAttrs[0]},_20;if(this.newItemIdAttr&&_1c[this.newItemIdAttr]){this.fetchItemByIdentity({identity:_1c[this.newItemIdAttr],scope:this,onItem:function(_21){if(_21){this.pasteItem(_21,null,_1d,true,_1e);}else{_20=this.store.newItem(_1c,_1f);if(_20&&(_1e!=undefined)){this.pasteItem(_20,_1d,_1d,false,_1e);}}}});}else{_20=this.store.newItem(_1c,_1f);if(_20&&(_1e!=undefined)){this.pasteItem(_20,_1d,_1d,false,_1e);}}},pasteItem:function(_22,_23,_24,_25,_26){var _27=this.store,_28=this.childrenAttrs[0];if(_23){_1.forEach(this.childrenAttrs,function(_29){if(_27.containsValue(_23,_29,_22)){if(!_25){var _2a=_1.filter(_27.getValues(_23,_29),function(x){return x!=_22;});_27.setValues(_23,_29,_2a);}_28=_29;}});}if(_24){if(typeof _26=="number"){var _2b=_27.getValues(_24,_28).slice();_2b.splice(_26,0,_22);_27.setValues(_24,_28,_2b);}else{_27.setValues(_24,_28,_27.getValues(_24,_28).concat(_22));}}},onChange:function(){},onChildrenChange:function(){},onDelete:function(){},onNewItem:function(_2c,_2d){if(!_2d){return;}this.getChildren(_2d.item,_4.hitch(this,function(_2e){this.onChildrenChange(_2d.item,_2e);}));},onDeleteItem:function(_2f){this.onDelete(_2f);},onSetItem:function(_30,_31){if(_1.indexOf(this.childrenAttrs,_31)!=-1){this.getChildren(_30,_4.hitch(this,function(_32){this.onChildrenChange(_30,_32);}));}else{this.onChange(_30);}}});}); \ No newline at end of file
diff --git a/lib/dijit/tree/_dndContainer.js b/lib/dijit/tree/_dndContainer.js
index f361278c1..c42bb417c 100644
--- a/lib/dijit/tree/_dndContainer.js
+++ b/lib/dijit/tree/_dndContainer.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/tree/_dndContainer",["dojo/aspect","dojo/_base/declare","dojo/dom-class","dojo/_base/event","dojo/_base/lang","dojo/mouse","dojo/on"],function(_1,_2,_3,_4,_5,_6,on){return _2("dijit.tree._dndContainer",null,{constructor:function(_7,_8){this.tree=_7;this.node=_7.domNode;_5.mixin(this,_8);this.current=null;this.containerState="";_3.add(this.node,"dojoDndContainer");this.events=[on(this.node,_6.enter,_5.hitch(this,"onOverEvent")),on(this.node,_6.leave,_5.hitch(this,"onOutEvent")),_1.after(this.tree,"_onNodeMouseEnter",_5.hitch(this,"onMouseOver"),true),_1.after(this.tree,"_onNodeMouseLeave",_5.hitch(this,"onMouseOut"),true),on(this.node,"dragstart",_5.hitch(_4,"stop")),on(this.node,"selectstart",_5.hitch(_4,"stop"))];},destroy:function(){var h;while(h=this.events.pop()){h.remove();}this.node=this.parent=null;},onMouseOver:function(_9){this.current=_9;},onMouseOut:function(){this.current=null;},_changeState:function(_a,_b){var _c="dojoDnd"+_a;var _d=_a.toLowerCase()+"State";_3.replace(this.node,_c+_b,_c+this[_d]);this[_d]=_b;},_addItemClass:function(_e,_f){_3.add(_e,"dojoDndItem"+_f);},_removeItemClass:function(_10,_11){_3.remove(_10,"dojoDndItem"+_11);},onOverEvent:function(){this._changeState("Container","Over");},onOutEvent:function(){this._changeState("Container","");}});}); \ No newline at end of file
+define("dijit/tree/_dndContainer",["dojo/aspect","dojo/_base/declare","dojo/dom-class","dojo/_base/event","dojo/_base/lang","dojo/on","dojo/touch"],function(_1,_2,_3,_4,_5,on,_6){return _2("dijit.tree._dndContainer",null,{constructor:function(_7,_8){this.tree=_7;this.node=_7.domNode;_5.mixin(this,_8);this.current=null;this.containerState="";_3.add(this.node,"dojoDndContainer");this.events=[on(this.node,_6.enter,_5.hitch(this,"onOverEvent")),on(this.node,_6.leave,_5.hitch(this,"onOutEvent")),_1.after(this.tree,"_onNodeMouseEnter",_5.hitch(this,"onMouseOver"),true),_1.after(this.tree,"_onNodeMouseLeave",_5.hitch(this,"onMouseOut"),true),on(this.node,"dragstart",_5.hitch(_4,"stop")),on(this.node,"selectstart",_5.hitch(_4,"stop"))];},destroy:function(){var h;while(h=this.events.pop()){h.remove();}this.node=this.parent=null;},onMouseOver:function(_9){this.current=_9;},onMouseOut:function(){this.current=null;},_changeState:function(_a,_b){var _c="dojoDnd"+_a;var _d=_a.toLowerCase()+"State";_3.replace(this.node,_c+_b,_c+this[_d]);this[_d]=_b;},_addItemClass:function(_e,_f){_3.add(_e,"dojoDndItem"+_f);},_removeItemClass:function(_10,_11){_3.remove(_10,"dojoDndItem"+_11);},onOverEvent:function(){this._changeState("Container","Over");},onOutEvent:function(){this._changeState("Container","");}});}); \ No newline at end of file
diff --git a/lib/dijit/tree/_dndSelector.js b/lib/dijit/tree/_dndSelector.js
index f0567444f..2bb8bb1ed 100644
--- a/lib/dijit/tree/_dndSelector.js
+++ b/lib/dijit/tree/_dndSelector.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/tree/_dndSelector",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","dojo/mouse","dojo/on","dojo/touch","dojo/_base/window","./_dndContainer"],function(_1,_2,_3,_4,_5,on,_6,_7,_8){return _3("dijit.tree._dndSelector",_8,{constructor:function(){this.selection={};this.anchor=null;this.tree.domNode.setAttribute("aria-multiselect",!this.singular);this.events.push(on(this.tree.domNode,_6.press,_4.hitch(this,"onMouseDown")),on(this.tree.domNode,_6.release,_4.hitch(this,"onMouseUp")),on(this.tree.domNode,_6.move,_4.hitch(this,"onMouseMove")));},singular:false,getSelectedTreeNodes:function(){var _9=[],_a=this.selection;for(var i in _a){_9.push(_a[i]);}return _9;},selectNone:function(){this.setSelection([]);return this;},destroy:function(){this.inherited(arguments);this.selection=this.anchor=null;},addTreeNode:function(_b,_c){this.setSelection(this.getSelectedTreeNodes().concat([_b]));if(_c){this.anchor=_b;}return _b;},removeTreeNode:function(_d){this.setSelection(this._setDifference(this.getSelectedTreeNodes(),[_d]));return _d;},isTreeNodeSelected:function(_e){return _e.id&&!!this.selection[_e.id];},setSelection:function(_f){var _10=this.getSelectedTreeNodes();_1.forEach(this._setDifference(_10,_f),_4.hitch(this,function(_11){_11.setSelected(false);if(this.anchor==_11){delete this.anchor;}delete this.selection[_11.id];}));_1.forEach(this._setDifference(_f,_10),_4.hitch(this,function(_12){_12.setSelected(true);this.selection[_12.id]=_12;}));this._updateSelectionProperties();},_setDifference:function(xs,ys){_1.forEach(ys,function(y){y.__exclude__=true;});var ret=_1.filter(xs,function(x){return !x.__exclude__;});_1.forEach(ys,function(y){delete y["__exclude__"];});return ret;},_updateSelectionProperties:function(){var _13=this.getSelectedTreeNodes();var _14=[],_15=[];_1.forEach(_13,function(_16){_15.push(_16);_14.push(_16.getTreePath());});var _17=_1.map(_15,function(_18){return _18.item;});this.tree._set("paths",_14);this.tree._set("path",_14[0]||[]);this.tree._set("selectedNodes",_15);this.tree._set("selectedNode",_15[0]||null);this.tree._set("selectedItems",_17);this.tree._set("selectedItem",_17[0]||null);},onMouseDown:function(e){if(!this.current||this.tree.isExpandoNode(e.target,this.current)){return;}if(!_5.isLeft(e)){return;}e.preventDefault();var _19=this.current,_1a=_2.isCopyKey(e),id=_19.id;if(!this.singular&&!e.shiftKey&&this.selection[id]){this._doDeselect=true;return;}else{this._doDeselect=false;}this.userSelect(_19,_1a,e.shiftKey);},onMouseUp:function(e){if(!this._doDeselect){return;}this._doDeselect=false;this.userSelect(this.current,_2.isCopyKey(e),e.shiftKey);},onMouseMove:function(){this._doDeselect=false;},_compareNodes:function(n1,n2){if(n1===n2){return 0;}if("sourceIndex" in document.documentElement){return n1.sourceIndex-n2.sourceIndex;}else{if("compareDocumentPosition" in document.documentElement){return n1.compareDocumentPosition(n2)&2?1:-1;}else{if(document.createRange){var r1=doc.createRange();r1.setStartBefore(n1);var r2=doc.createRange();r2.setStartBefore(n2);return r1.compareBoundaryPoints(r1.END_TO_END,r2);}else{throw Error("dijit.tree._compareNodes don't know how to compare two different nodes in this browser");}}}},userSelect:function(_1b,_1c,_1d){if(this.singular){if(this.anchor==_1b&&_1c){this.selectNone();}else{this.setSelection([_1b]);this.anchor=_1b;}}else{if(_1d&&this.anchor){var cr=this._compareNodes(this.anchor.rowNode,_1b.rowNode),_1e,end,_1f=this.anchor;if(cr<0){_1e=_1f;end=_1b;}else{_1e=_1b;end=_1f;}var _20=[];while(_1e!=end){_20.push(_1e);_1e=this.tree._getNextNode(_1e);}_20.push(end);this.setSelection(_20);}else{if(this.selection[_1b.id]&&_1c){this.removeTreeNode(_1b);}else{if(_1c){this.addTreeNode(_1b,true);}else{this.setSelection([_1b]);this.anchor=_1b;}}}}},getItem:function(key){var _21=this.selection[key];return {data:_21,type:["treeNode"]};},forInSelectedItems:function(f,o){o=o||_7.global;for(var id in this.selection){f.call(o,this.getItem(id),id,this);}}});}); \ No newline at end of file
+define("dijit/tree/_dndSelector",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/Deferred","dojo/_base/kernel","dojo/_base/lang","dojo/cookie","dojo/mouse","dojo/on","dojo/touch","./_dndContainer"],function(_1,_2,_3,_4,_5,_6,_7,_8,on,_9,_a){return _3("dijit.tree._dndSelector",_a,{constructor:function(){this.selection={};this.anchor=null;if(!this.cookieName&&this.tree.id){this.cookieName=this.tree.id+"SaveSelectedCookie";}this.events.push(on(this.tree.domNode,_9.press,_6.hitch(this,"onMouseDown")),on(this.tree.domNode,_9.release,_6.hitch(this,"onMouseUp")),on(this.tree.domNode,_9.move,_6.hitch(this,"onMouseMove")));},singular:false,getSelectedTreeNodes:function(){var _b=[],_c=this.selection;for(var i in _c){_b.push(_c[i]);}return _b;},selectNone:function(){this.setSelection([]);return this;},destroy:function(){this.inherited(arguments);this.selection=this.anchor=null;},addTreeNode:function(_d,_e){this.setSelection(this.getSelectedTreeNodes().concat([_d]));if(_e){this.anchor=_d;}return _d;},removeTreeNode:function(_f){this.setSelection(this._setDifference(this.getSelectedTreeNodes(),[_f]));return _f;},isTreeNodeSelected:function(_10){return _10.id&&!!this.selection[_10.id];},setSelection:function(_11){var _12=this.getSelectedTreeNodes();_1.forEach(this._setDifference(_12,_11),_6.hitch(this,function(_13){_13.setSelected(false);if(this.anchor==_13){delete this.anchor;}delete this.selection[_13.id];}));_1.forEach(this._setDifference(_11,_12),_6.hitch(this,function(_14){_14.setSelected(true);this.selection[_14.id]=_14;}));this._updateSelectionProperties();},_setDifference:function(xs,ys){_1.forEach(ys,function(y){y.__exclude__=true;});var ret=_1.filter(xs,function(x){return !x.__exclude__;});_1.forEach(ys,function(y){delete y["__exclude__"];});return ret;},_updateSelectionProperties:function(){var _15=this.getSelectedTreeNodes();var _16=[],_17=[],_18=[];_1.forEach(_15,function(_19){var ary=_19.getTreePath(),_1a=this.tree.model;_17.push(_19);_16.push(ary);ary=_1.map(ary,function(_1b){return _1a.getIdentity(_1b);},this);_18.push(ary.join("/"));},this);var _1c=_1.map(_17,function(_1d){return _1d.item;});this.tree._set("paths",_16);this.tree._set("path",_16[0]||[]);this.tree._set("selectedNodes",_17);this.tree._set("selectedNode",_17[0]||null);this.tree._set("selectedItems",_1c);this.tree._set("selectedItem",_1c[0]||null);if(this.tree.persist&&_18.length>0){_7(this.cookieName,_18.join(","),{expires:365});}},_getSavedPaths:function(){var _1e=this.tree;if(_1e.persist&&_1e.dndController.cookieName){var _1f,_20=[];_1f=_7(_1e.dndController.cookieName);if(_1f){_20=_1.map(_1f.split(","),function(_21){return _21.split("/");});}return _20;}},onMouseDown:function(e){if(!this.current||this.tree.isExpandoNode(e.target,this.current)){return;}if(_8.isLeft(e)){e.preventDefault();}else{if(e.type!="touchstart"){return;}}var _22=this.current,_23=_2.isCopyKey(e),id=_22.id;if(!this.singular&&!e.shiftKey&&this.selection[id]){this._doDeselect=true;return;}else{this._doDeselect=false;}this.userSelect(_22,_23,e.shiftKey);},onMouseUp:function(e){if(!this._doDeselect){return;}this._doDeselect=false;this.userSelect(this.current,_2.isCopyKey(e),e.shiftKey);},onMouseMove:function(){this._doDeselect=false;},_compareNodes:function(n1,n2){if(n1===n2){return 0;}if("sourceIndex" in document.documentElement){return n1.sourceIndex-n2.sourceIndex;}else{if("compareDocumentPosition" in document.documentElement){return n1.compareDocumentPosition(n2)&2?1:-1;}else{if(document.createRange){var r1=doc.createRange();r1.setStartBefore(n1);var r2=doc.createRange();r2.setStartBefore(n2);return r1.compareBoundaryPoints(r1.END_TO_END,r2);}else{throw Error("dijit.tree._compareNodes don't know how to compare two different nodes in this browser");}}}},userSelect:function(_24,_25,_26){if(this.singular){if(this.anchor==_24&&_25){this.selectNone();}else{this.setSelection([_24]);this.anchor=_24;}}else{if(_26&&this.anchor){var cr=this._compareNodes(this.anchor.rowNode,_24.rowNode),_27,end,_28=this.anchor;if(cr<0){_27=_28;end=_24;}else{_27=_24;end=_28;}var _29=[];while(_27!=end){_29.push(_27);_27=this.tree._getNextNode(_27);}_29.push(end);this.setSelection(_29);}else{if(this.selection[_24.id]&&_25){this.removeTreeNode(_24);}else{if(_25){this.addTreeNode(_24,true);}else{this.setSelection([_24]);this.anchor=_24;}}}}},getItem:function(key){var _2a=this.selection[key];return {data:_2a,type:["treeNode"]};},forInSelectedItems:function(f,o){o=o||_5.global;for(var id in this.selection){f.call(o,this.getItem(id),id,this);}}});}); \ No newline at end of file
diff --git a/lib/dijit/tree/dndSource.js b/lib/dijit/tree/dndSource.js
index a68af56c4..7698cd844 100644
--- a/lib/dijit/tree/dndSource.js
+++ b/lib/dijit/tree/dndSource.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/tree/dndSource",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/_base/lang","dojo/on","dojo/touch","dojo/topic","dojo/dnd/Manager","./_dndSelector"],function(_1,_2,_3,_4,_5,_6,on,_7,_8,_9,_a){return _3("dijit.tree.dndSource",_a,{isSource:true,accept:["text","treeNode"],copyOnly:false,dragThreshold:5,betweenThreshold:0,constructor:function(_b,_c){if(!_c){_c={};}_6.mixin(this,_c);this.isSource=typeof _c.isSource=="undefined"?true:_c.isSource;var _d=_c.accept instanceof Array?_c.accept:["text","treeNode"];this.accept=null;if(_d.length){this.accept={};for(var i=0;i<_d.length;++i){this.accept[_d[i]]=1;}}this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.dropPosition="";this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource){_4.add(this.node,"dojoDndSource");}this.targetState="";if(this.accept){_4.add(this.node,"dojoDndTarget");}this.topics=[_8.subscribe("/dnd/source/over",_6.hitch(this,"onDndSourceOver")),_8.subscribe("/dnd/start",_6.hitch(this,"onDndStart")),_8.subscribe("/dnd/drop",_6.hitch(this,"onDndDrop")),_8.subscribe("/dnd/cancel",_6.hitch(this,"onDndCancel"))];},checkAcceptance:function(){return true;},copyState:function(_e){return this.copyOnly||_e;},destroy:function(){this.inherited(arguments);var h;while(h=this.topics.pop()){h.remove();}this.targetAnchor=null;},_onDragMouse:function(e){var m=_9.manager(),_f=this.targetAnchor,_10=this.current,_11=this.dropPosition;var _12="Over";if(_10&&this.betweenThreshold>0){if(!this.targetBox||_f!=_10){this.targetBox=_5.position(_10.rowNode,true);}if((e.pageY-this.targetBox.y)<=this.betweenThreshold){_12="Before";}else{if((e.pageY-this.targetBox.y)>=(this.targetBox.h-this.betweenThreshold)){_12="After";}}}if(_10!=_f||_12!=_11){if(_f){this._removeItemClass(_f.rowNode,_11);}if(_10){this._addItemClass(_10.rowNode,_12);}if(!_10){m.canDrop(false);}else{if(_10==this.tree.rootNode&&_12!="Over"){m.canDrop(false);}else{var _13=this.tree.model,_14=false;if(m.source==this){for(var _15 in this.selection){var _16=this.selection[_15];if(_16.item===_10.item){_14=true;break;}}}if(_14){m.canDrop(false);}else{if(this.checkItemAcceptance(_10.rowNode,m.source,_12.toLowerCase())&&!this._isParentChildDrop(m.source,_10.rowNode)){m.canDrop(true);}else{m.canDrop(false);}}}}this.targetAnchor=_10;this.dropPosition=_12;}},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}this.inherited(arguments);var m=_9.manager();if(this.isDragging){this._onDragMouse(e);}else{if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>=this.dragThreshold||Math.abs(e.pageY-this._lastY)>=this.dragThreshold)){var _17=this.getSelectedTreeNodes();if(_17.length){if(_17.length>1){var _18=this.selection,i=0,r=[],n,p;nextitem:while((n=_17[i++])){for(p=n.getParent();p&&p!==this.tree;p=p.getParent()){if(_18[p.id]){continue nextitem;}}r.push(n);}_17=r;}_17=_1.map(_17,function(n){return n.domNode;});m.startDrag(this,_17,this.copyState(_2.isCopyKey(e)));}}}},onMouseDown:function(e){this.mouseDown=true;this.mouseButton=e.button;this._lastX=e.pageX;this._lastY=e.pageY;this.inherited(arguments);},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;this.inherited(arguments);}},onMouseOut:function(){this.inherited(arguments);this._unmarkTargetAnchor();},checkItemAcceptance:function(){return true;},onDndSourceOver:function(_19){if(this!=_19){this.mouseDown=false;this._unmarkTargetAnchor();}else{if(this.isDragging){var m=_9.manager();m.canDrop(false);}}},onDndStart:function(_1a,_1b,_1c){if(this.isSource){this._changeState("Source",this==_1a?(_1c?"Copied":"Moved"):"");}var _1d=this.checkAcceptance(_1a,_1b);this._changeState("Target",_1d?"":"Disabled");if(this==_1a){_9.manager().overSource(this);}this.isDragging=true;},itemCreator:function(_1e){return _1.map(_1e,function(_1f){return {"id":_1f.id,"name":_1f.textContent||_1f.innerText||""};});},onDndDrop:function(_20,_21,_22){if(this.containerState=="Over"){var _23=this.tree,_24=_23.model,_25=this.targetAnchor;this.isDragging=false;var _26;var _27;_26=(_25&&_25.item)||_23.item;if(this.dropPosition=="Before"||this.dropPosition=="After"){_26=(_25.getParent()&&_25.getParent().item)||_23.item;_27=_25.getIndexInParent();if(this.dropPosition=="After"){_27=_25.getIndexInParent()+1;}}else{_26=(_25&&_25.item)||_23.item;}var _28;_1.forEach(_21,function(_29,idx){var _2a=_20.getItem(_29.id);if(_1.indexOf(_2a.type,"treeNode")!=-1){var _2b=_2a.data,_2c=_2b.item,_2d=_2b.getParent().item;}if(_20==this){if(typeof _27=="number"){if(_26==_2d&&_2b.getIndexInParent()<_27){_27-=1;}}_24.pasteItem(_2c,_2d,_26,_22,_27);}else{if(_24.isItem(_2c)){_24.pasteItem(_2c,_2d,_26,_22,_27);}else{if(!_28){_28=this.itemCreator(_21,_25.rowNode,_20);}_24.newItem(_28[idx],_26,_27);}}},this);this.tree._expandNode(_25);}this.onDndCancel();},onDndCancel:function(){this._unmarkTargetAnchor();this.isDragging=false;this.mouseDown=false;delete this.mouseButton;this._changeState("Source","");this._changeState("Target","");},onOverEvent:function(){this.inherited(arguments);_9.manager().overSource(this);},onOutEvent:function(){this._unmarkTargetAnchor();var m=_9.manager();if(this.isDragging){m.canDrop(false);}m.outSource(this);this.inherited(arguments);},_isParentChildDrop:function(_2e,_2f){if(!_2e.tree||_2e.tree!=this.tree){return false;}var _30=_2e.tree.domNode;var ids=_2e.selection;var _31=_2f.parentNode;while(_31!=_30&&!ids[_31.id]){_31=_31.parentNode;}return _31.id&&ids[_31.id];},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this._removeItemClass(this.targetAnchor.rowNode,this.dropPosition);this.targetAnchor=null;this.targetBox=null;this.dropPosition=null;},_markDndStatus:function(_32){this._changeState("Source",_32?"Copied":"Moved");}});}); \ No newline at end of file
+define("dijit/tree/dndSource",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/_base/lang","dojo/on","dojo/touch","dojo/topic","dojo/dnd/Manager","./_dndSelector"],function(_1,_2,_3,_4,_5,_6,on,_7,_8,_9,_a){var _b=_3("dijit.tree.dndSource",_a,{isSource:true,accept:["text","treeNode"],copyOnly:false,dragThreshold:5,betweenThreshold:0,generateText:true,constructor:function(_c,_d){if(!_d){_d={};}_6.mixin(this,_d);var _e=_d.accept instanceof Array?_d.accept:["text","treeNode"];this.accept=null;if(_e.length){this.accept={};for(var i=0;i<_e.length;++i){this.accept[_e[i]]=1;}}this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.dropPosition="";this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource){_4.add(this.node,"dojoDndSource");}this.targetState="";if(this.accept){_4.add(this.node,"dojoDndTarget");}this.topics=[_8.subscribe("/dnd/source/over",_6.hitch(this,"onDndSourceOver")),_8.subscribe("/dnd/start",_6.hitch(this,"onDndStart")),_8.subscribe("/dnd/drop",_6.hitch(this,"onDndDrop")),_8.subscribe("/dnd/cancel",_6.hitch(this,"onDndCancel"))];},checkAcceptance:function(){return true;},copyState:function(_f){return this.copyOnly||_f;},destroy:function(){this.inherited(arguments);var h;while(h=this.topics.pop()){h.remove();}this.targetAnchor=null;},_onDragMouse:function(e,_10){var m=_9.manager(),_11=this.targetAnchor,_12=this.current,_13=this.dropPosition;var _14="Over";if(_12&&this.betweenThreshold>0){if(!this.targetBox||_11!=_12){this.targetBox=_5.position(_12.rowNode,true);}if((e.pageY-this.targetBox.y)<=this.betweenThreshold){_14="Before";}else{if((e.pageY-this.targetBox.y)>=(this.targetBox.h-this.betweenThreshold)){_14="After";}}}if(_10||_12!=_11||_14!=_13){if(_11){this._removeItemClass(_11.rowNode,_13);}if(_12){this._addItemClass(_12.rowNode,_14);}if(!_12){m.canDrop(false);}else{if(_12==this.tree.rootNode&&_14!="Over"){m.canDrop(false);}else{var _15=false;if(m.source==this){for(var _16 in this.selection){var _17=this.selection[_16];if(_17.item===_12.item){_15=true;break;}}}if(_15){m.canDrop(false);}else{if(this.checkItemAcceptance(_12.rowNode,m.source,_14.toLowerCase())&&!this._isParentChildDrop(m.source,_12.rowNode)){m.canDrop(true);}else{m.canDrop(false);}}}}this.targetAnchor=_12;this.dropPosition=_14;}},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}this.inherited(arguments);var m=_9.manager();if(this.isDragging){this._onDragMouse(e);}else{if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>=this.dragThreshold||Math.abs(e.pageY-this._lastY)>=this.dragThreshold)){var _18=this.getSelectedTreeNodes();if(_18.length){if(_18.length>1){var _19=this.selection,i=0,r=[],n,p;nextitem:while((n=_18[i++])){for(p=n.getParent();p&&p!==this.tree;p=p.getParent()){if(_19[p.id]){continue nextitem;}}r.push(n);}_18=r;}_18=_1.map(_18,function(n){return n.domNode;});m.startDrag(this,_18,this.copyState(_2.isCopyKey(e)));this._onDragMouse(e,true);}}}},onMouseDown:function(e){this.mouseDown=true;this.mouseButton=e.button;this._lastX=e.pageX;this._lastY=e.pageY;this.inherited(arguments);},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;this.inherited(arguments);}},onMouseOut:function(){this.inherited(arguments);this._unmarkTargetAnchor();},checkItemAcceptance:function(){return true;},onDndSourceOver:function(_1a){if(this!=_1a){this.mouseDown=false;this._unmarkTargetAnchor();}else{if(this.isDragging){var m=_9.manager();m.canDrop(false);}}},onDndStart:function(_1b,_1c,_1d){if(this.isSource){this._changeState("Source",this==_1b?(_1d?"Copied":"Moved"):"");}var _1e=this.checkAcceptance(_1b,_1c);this._changeState("Target",_1e?"":"Disabled");if(this==_1b){_9.manager().overSource(this);}this.isDragging=true;},itemCreator:function(_1f){return _1.map(_1f,function(_20){return {"id":_20.id,"name":_20.textContent||_20.innerText||""};});},onDndDrop:function(_21,_22,_23){if(this.containerState=="Over"){var _24=this.tree,_25=_24.model,_26=this.targetAnchor;this.isDragging=false;var _27;var _28;var _29;_27=(_26&&_26.item)||_24.item;if(this.dropPosition=="Before"||this.dropPosition=="After"){_27=(_26.getParent()&&_26.getParent().item)||_24.item;_28=_26.getIndexInParent();if(this.dropPosition=="After"){_28=_26.getIndexInParent()+1;_29=_26.getNextSibling()&&_26.getNextSibling().item;}else{_29=_26.item;}}else{_27=(_26&&_26.item)||_24.item;}var _2a;_1.forEach(_22,function(_2b,idx){var _2c=_21.getItem(_2b.id);if(_1.indexOf(_2c.type,"treeNode")!=-1){var _2d=_2c.data,_2e=_2d.item,_2f=_2d.getParent().item;}if(_21==this){if(typeof _28=="number"){if(_27==_2f&&_2d.getIndexInParent()<_28){_28-=1;}}_25.pasteItem(_2e,_2f,_27,_23,_28,_29);}else{if(_25.isItem(_2e)){_25.pasteItem(_2e,_2f,_27,_23,_28,_29);}else{if(!_2a){_2a=this.itemCreator(_22,_26.rowNode,_21);}_25.newItem(_2a[idx],_27,_28,_29);}}},this);this.tree._expandNode(_26);}this.onDndCancel();},onDndCancel:function(){this._unmarkTargetAnchor();this.isDragging=false;this.mouseDown=false;delete this.mouseButton;this._changeState("Source","");this._changeState("Target","");},onOverEvent:function(){this.inherited(arguments);_9.manager().overSource(this);},onOutEvent:function(){this._unmarkTargetAnchor();var m=_9.manager();if(this.isDragging){m.canDrop(false);}m.outSource(this);this.inherited(arguments);},_isParentChildDrop:function(_30,_31){if(!_30.tree||_30.tree!=this.tree){return false;}var _32=_30.tree.domNode;var ids=_30.selection;var _33=_31.parentNode;while(_33!=_32&&!ids[_33.id]){_33=_33.parentNode;}return _33.id&&ids[_33.id];},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this._removeItemClass(this.targetAnchor.rowNode,this.dropPosition);this.targetAnchor=null;this.targetBox=null;this.dropPosition=null;},_markDndStatus:function(_34){this._changeState("Source",_34?"Copied":"Moved");}});return _b;}); \ No newline at end of file
diff --git a/lib/dijit/tree/model.js b/lib/dijit/tree/model.js
index 5add44298..69cd9b307 100644
--- a/lib/dijit/tree/model.js
+++ b/lib/dijit/tree/model.js
@@ -1 +1,2 @@
//>>built
+define("dijit/tree/model",["dojo/_base/declare"],function(_1){return _1("dijit.tree.model",null,{destroy:function(){},getRoot:function(_2){},mayHaveChildren:function(_3){},getChildren:function(_4,_5){},isItem:function(_6){},fetchItemByIdentity:function(_7){},getIdentity:function(_8){},getLabel:function(_9){},newItem:function(_a,_b,_c,_d){},pasteItem:function(_e,_f,_10,_11,_12,_13){},onChange:function(_14){},onChildrenChange:function(_15,_16){}});}); \ No newline at end of file
diff --git a/lib/dijit/typematic.js b/lib/dijit/typematic.js
index a2a017f48..9d33c49b8 100644
--- a/lib/dijit/typematic.js
+++ b/lib/dijit/typematic.js
@@ -1,2 +1,2 @@
//>>built
-define("dijit/typematic",["dojo/_base/array","dojo/_base/connect","dojo/_base/event","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/_base/sniff","."],function(_1,_2,_3,_4,_5,on,_6,_7){var _8=(_7.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:(this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay)),this._minDelay);this._timer=setTimeout(_5.hitch(this,"_fireEventAndReload"),this._currentTimeout);},trigger:function(_9,_a,_b,_c,_d,_e,_f,_10){if(_d!=this._obj){this.stop();this._initialDelay=_f||500;this._subsequentDelay=_e||0.9;this._minDelay=_10||10;this._obj=_d;this._evt=_9;this._node=_b;this._currentTimeout=-1;this._count=-1;this._callback=_5.hitch(_a,_c);this._fireEventAndReload();this._evt=_5.mixin({faux:true},_9);}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null;}if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null;}},addKeyListener:function(_11,_12,_13,_14,_15,_16,_17){if(_12.keyCode){_12.charOrCode=_12.keyCode;_4.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}else{if(_12.charCode){_12.charOrCode=String.fromCharCode(_12.charCode);_4.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}}var _18=[on(_11,_2._keypress,_5.hitch(this,function(evt){if(evt.charOrCode==_12.charOrCode&&(_12.ctrlKey===undefined||_12.ctrlKey==evt.ctrlKey)&&(_12.altKey===undefined||_12.altKey==evt.altKey)&&(_12.metaKey===undefined||_12.metaKey==(evt.metaKey||false))&&(_12.shiftKey===undefined||_12.shiftKey==evt.shiftKey)){_3.stop(evt);_8.trigger(evt,_13,_11,_14,_12,_15,_16,_17);}else{if(_8._obj==_12){_8.stop();}}})),on(_11,"keyup",_5.hitch(this,function(){if(_8._obj==_12){_8.stop();}}))];return {remove:function(){_1.forEach(_18,function(h){h.remove();});}};},addMouseListener:function(_19,_1a,_1b,_1c,_1d,_1e){var _1f=[on(_19,"mousedown",_5.hitch(this,function(evt){_3.stop(evt);_8.trigger(evt,_1a,_19,_1b,_19,_1c,_1d,_1e);})),on(_19,"mouseup",_5.hitch(this,function(evt){if(this._obj){_3.stop(evt);}_8.stop();})),on(_19,"mouseout",_5.hitch(this,function(evt){_3.stop(evt);_8.stop();})),on(_19,"mousemove",_5.hitch(this,function(evt){evt.preventDefault();})),on(_19,"dblclick",_5.hitch(this,function(evt){_3.stop(evt);if(_6("ie")){_8.trigger(evt,_1a,_19,_1b,_19,_1c,_1d,_1e);setTimeout(_5.hitch(this,_8.stop),50);}}))];return {remove:function(){_1.forEach(_1f,function(h){h.remove();});}};},addListener:function(_20,_21,_22,_23,_24,_25,_26,_27){var _28=[this.addKeyListener(_21,_22,_23,_24,_25,_26,_27),this.addMouseListener(_20,_23,_24,_25,_26,_27)];return {remove:function(){_1.forEach(_28,function(h){h.remove();});}};}});return _8;}); \ No newline at end of file
+define("dijit/typematic",["dojo/_base/array","dojo/_base/connect","dojo/_base/event","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/sniff","./main"],function(_1,_2,_3,_4,_5,on,_6,_7){var _8=(_7.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:(this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay)),this._minDelay);this._timer=setTimeout(_5.hitch(this,"_fireEventAndReload"),this._currentTimeout);},trigger:function(_9,_a,_b,_c,_d,_e,_f,_10){if(_d!=this._obj){this.stop();this._initialDelay=_f||500;this._subsequentDelay=_e||0.9;this._minDelay=_10||10;this._obj=_d;this._node=_b;this._currentTimeout=-1;this._count=-1;this._callback=_5.hitch(_a,_c);this._evt={faux:true};for(var _11 in _9){if(_11!="layerX"&&_11!="layerY"){var v=_9[_11];if(typeof v!="function"&&typeof v!="undefined"){this._evt[_11]=v;}}}this._fireEventAndReload();}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null;}if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null;}},addKeyListener:function(_12,_13,_14,_15,_16,_17,_18){if(_13.keyCode){_13.charOrCode=_13.keyCode;_4.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}else{if(_13.charCode){_13.charOrCode=String.fromCharCode(_13.charCode);_4.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}}var _19=[on(_12,_2._keypress,_5.hitch(this,function(evt){if(evt.charOrCode==_13.charOrCode&&(_13.ctrlKey===undefined||_13.ctrlKey==evt.ctrlKey)&&(_13.altKey===undefined||_13.altKey==evt.altKey)&&(_13.metaKey===undefined||_13.metaKey==(evt.metaKey||false))&&(_13.shiftKey===undefined||_13.shiftKey==evt.shiftKey)){_3.stop(evt);_8.trigger(evt,_14,_12,_15,_13,_16,_17,_18);}else{if(_8._obj==_13){_8.stop();}}})),on(_12,"keyup",_5.hitch(this,function(){if(_8._obj==_13){_8.stop();}}))];return {remove:function(){_1.forEach(_19,function(h){h.remove();});}};},addMouseListener:function(_1a,_1b,_1c,_1d,_1e,_1f){var _20=[on(_1a,"mousedown",_5.hitch(this,function(evt){evt.preventDefault();_8.trigger(evt,_1b,_1a,_1c,_1a,_1d,_1e,_1f);})),on(_1a,"mouseup",_5.hitch(this,function(evt){if(this._obj){evt.preventDefault();}_8.stop();})),on(_1a,"mouseout",_5.hitch(this,function(evt){if(this._obj){evt.preventDefault();}_8.stop();})),on(_1a,"dblclick",_5.hitch(this,function(evt){evt.preventDefault();if(_6("ie")<9){_8.trigger(evt,_1b,_1a,_1c,_1a,_1d,_1e,_1f);setTimeout(_5.hitch(this,_8.stop),50);}}))];return {remove:function(){_1.forEach(_20,function(h){h.remove();});}};},addListener:function(_21,_22,_23,_24,_25,_26,_27,_28){var _29=[this.addKeyListener(_22,_23,_24,_25,_26,_27,_28),this.addMouseListener(_21,_24,_25,_26,_27,_28)];return {remove:function(){_1.forEach(_29,function(h){h.remove();});}};}});return _8;}); \ No newline at end of file
diff --git a/lib/dojo-src/.gitignore b/lib/dojo-src/.gitignore
index 54650a469..59692045a 100644
--- a/lib/dojo-src/.gitignore
+++ b/lib/dojo-src/.gitignore
@@ -3,3 +3,5 @@ dojo
dojox
release
util
+dojo-release-*
+log* \ No newline at end of file
diff --git a/lib/dojo-src/rebuild-dojo.sh b/lib/dojo-src/rebuild-dojo.sh
index 12d4d8e59..1e33c066e 100755
--- a/lib/dojo-src/rebuild-dojo.sh
+++ b/lib/dojo-src/rebuild-dojo.sh
@@ -7,20 +7,38 @@
# Dojo requires Java runtime to build. Further information on rebuilding Dojo
# is available here: http://dojotoolkit.org/reference-guide/build/index.html
+VERSION=1.8.3
+
+# Download and extract dojo src code if it doesn't already exist
+if [ ! -d "dojo" ]; then
+ TARBALL=dojo-release-$VERSION-src.tar.gz
+ if [ ! -f $TARBALL ]; then
+ wget -q http://download.dojotoolkit.org/release-$VERSION/$TARBALL
+ fi
+ tar -zxf $TARBALL
+ mv dojo-release-$VERSION-src/* .
+ rm -rf dojo-release-$VERSION-src
+fi
+
if [ -d util/buildscripts/ ]; then
rm -rf release/dojo
pushd util/buildscripts
- ./build.sh profile=../../tt-rss action=clean,release optimize=shrinksafe
+ ./build.sh profile=../../tt-rss action=release optimize=shrinksafe cssOptimize=comments
popd
if [ -d release/dojo ]; then
rm -rf ../dojo ../dijit
cp -r release/dojo/dojo ..
cp -r release/dojo/dijit ..
+
+ cd ..
+
+ find dojo -name '*uncompressed*' -exec rm -- {} \;
+ find dijit -name '*uncompressed*' -exec rm -- {} \;
else
echo $0: ERROR: Dojo build seems to have failed.
fi
else
echo $0: ERROR: Please unpack Dojo source release into current directory.
-fi
+fi \ No newline at end of file
diff --git a/lib/dojo-src/tt-rss.profile.js b/lib/dojo-src/tt-rss.profile.js
index 32fe53781..1c1e23517 100644
--- a/lib/dojo-src/tt-rss.profile.js
+++ b/lib/dojo-src/tt-rss.profile.js
@@ -30,6 +30,7 @@ dependencies = {
"dijit.Dialog",
"dijit.form.Button",
"dijit.form.CheckBox",
+ "dijit.form.ComboButton",
"dijit.form.DropDownButton",
"dijit.form.FilteringSelect",
"dijit.form.Form",
@@ -38,8 +39,13 @@ dependencies = {
"dijit.form.SimpleTextarea",
"dijit.form.TextBox",
"dijit.form.ValidationTextBox",
+ "dijit.Viewport",
"dijit.InlineEditBox",
+ "dijit.ToolbarSeparator",
+ "dijit.PopupMenuItem",
+ "dijit.CheckedMenuItem",
"dijit.layout.AccordionContainer",
+ "dijit.layout.AccordionPane",
"dijit.layout.BorderContainer",
"dijit.layout.ContentPane",
"dijit.layout.TabContainer",
@@ -47,6 +53,7 @@ dependencies = {
"dijit.ProgressBar",
"dijit.ProgressBar",
"dijit.Toolbar",
+ "dijit.TooltipDialog",
"dijit.Tree",
"dijit.tree.dndSource",
]
diff --git a/lib/dojo/AdapterRegistry.js b/lib/dojo/AdapterRegistry.js
index f81a33051..302a5ec65 100644
--- a/lib/dojo/AdapterRegistry.js
+++ b/lib/dojo/AdapterRegistry.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/Deferred.js b/lib/dojo/Deferred.js
new file mode 100644
index 000000000..6869ac859
--- /dev/null
+++ b/lib/dojo/Deferred.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/Deferred",["./has","./_base/lang","./errors/CancelError","./promise/Promise","./promise/instrumentation"],function(_1,_2,_3,_4,_5){"use strict";var _6=0,_7=1,_8=2;var _9="This deferred has already been fulfilled.";var _a=Object.freeze||function(){};var _b=function(_c,_d,_e,_f,_10){if(1){if(_d===_8&&_11.instrumentRejected&&_c.length===0){_11.instrumentRejected(_e,false,_f,_10);}}for(var i=0;i<_c.length;i++){_12(_c[i],_d,_e,_f);}};var _12=function(_13,_14,_15,_16){var _17=_13[_14];var _18=_13.deferred;if(_17){try{var _19=_17(_15);if(_14===_6){if(typeof _19!=="undefined"){_1a(_18,_14,_19);}}else{if(_19&&typeof _19.then==="function"){_13.cancel=_19.cancel;_19.then(_1b(_18,_7),_1b(_18,_8),_1b(_18,_6));return;}_1a(_18,_7,_19);}}catch(error){_1a(_18,_8,error);}}else{_1a(_18,_14,_15);}if(1){if(_14===_8&&_11.instrumentRejected){_11.instrumentRejected(_15,!!_17,_16,_18.promise);}}};var _1b=function(_1c,_1d){return function(_1e){_1a(_1c,_1d,_1e);};};var _1a=function(_1f,_20,_21){if(!_1f.isCanceled()){switch(_20){case _6:_1f.progress(_21);break;case _7:_1f.resolve(_21);break;case _8:_1f.reject(_21);break;}}};var _11=function(_22){var _23=this.promise=new _4();var _24=this;var _25,_26,_27;var _28=false;var _29=[];if(1&&Error.captureStackTrace){Error.captureStackTrace(_24,_11);Error.captureStackTrace(_23,_11);}this.isResolved=_23.isResolved=function(){return _25===_7;};this.isRejected=_23.isRejected=function(){return _25===_8;};this.isFulfilled=_23.isFulfilled=function(){return !!_25;};this.isCanceled=_23.isCanceled=function(){return _28;};this.progress=function(_2a,_2b){if(!_25){_b(_29,_6,_2a,null,_24);return _23;}else{if(_2b===true){throw new Error(_9);}else{return _23;}}};this.resolve=function(_2c,_2d){if(!_25){_b(_29,_25=_7,_26=_2c,null,_24);_29=null;return _23;}else{if(_2d===true){throw new Error(_9);}else{return _23;}}};var _2e=this.reject=function(_2f,_30){if(!_25){if(1&&Error.captureStackTrace){Error.captureStackTrace(_27={},_2e);}_b(_29,_25=_8,_26=_2f,_27,_24);_29=null;return _23;}else{if(_30===true){throw new Error(_9);}else{return _23;}}};this.then=_23.then=function(_31,_32,_33){var _34=[_33,_31,_32];_34.cancel=_23.cancel;_34.deferred=new _11(function(_35){return _34.cancel&&_34.cancel(_35);});if(_25&&!_29){_12(_34,_25,_26,_27);}else{_29.push(_34);}return _34.deferred.promise;};this.cancel=_23.cancel=function(_36,_37){if(!_25){if(_22){var _38=_22(_36);_36=typeof _38==="undefined"?_36:_38;}_28=true;if(!_25){if(typeof _36==="undefined"){_36=new _3();}_2e(_36);return _36;}else{if(_25===_8&&_26===_36){return _36;}}}else{if(_37===true){throw new Error(_9);}}};_a(_23);};_11.prototype.toString=function(){return "[object Deferred]";};if(_5){_5(_11);}return _11;}); \ No newline at end of file
diff --git a/lib/dojo/DeferredList.js b/lib/dojo/DeferredList.js
index a7fa0f172..d882d5023 100644
--- a/lib/dojo/DeferredList.js
+++ b/lib/dojo/DeferredList.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/Evented.js b/lib/dojo/Evented.js
index d3c8930cc..39df18bc0 100644
--- a/lib/dojo/Evented.js
+++ b/lib/dojo/Evented.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/LICENSE b/lib/dojo/LICENSE
index aa6b39f8c..483ea9b52 100644
--- a/lib/dojo/LICENSE
+++ b/lib/dojo/LICENSE
@@ -13,7 +13,7 @@ The text of the AFL and BSD licenses is reproduced below.
The "New" BSD License:
**********************
-Copyright (c) 2005-2011, The Dojo Foundation
+Copyright (c) 2005-2012, The Dojo Foundation
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/lib/dojo/NodeList-data.js b/lib/dojo/NodeList-data.js
index 5f6b4fb7e..e58755b8e 100644
--- a/lib/dojo/NodeList-data.js
+++ b/lib/dojo/NodeList-data.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/NodeList-dom.js b/lib/dojo/NodeList-dom.js
index cc0faebb6..e737865bc 100644
--- a/lib/dojo/NodeList-dom.js
+++ b/lib/dojo/NodeList-dom.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/NodeList-dom",["./_base/kernel","./query","./_base/array","./_base/lang","./dom-class","./dom-construct","./dom-geometry","./dom-attr","./dom-style"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){var _a=function(a){return a.length==1&&(typeof a[0]=="string");};var _b=function(_c){var p=_c.parentNode;if(p){p.removeChild(_c);}};var _d=_2.NodeList,_e=_d._adaptWithCondition,_f=_d._adaptAsForEach,aam=_d._adaptAsMap;function _10(_11){return function(_12,_13,_14){if(arguments.length==2){return _11[typeof _13=="string"?"get":"set"](_12,_13);}return _11.set(_12,_13,_14);};};_4.extend(_d,{_normalize:function(_15,_16){var _17=_15.parse===true;if(typeof _15.template=="string"){var _18=_15.templateFunc||(_1.string&&_1.string.substitute);_15=_18?_18(_15.template,_15):_15;}var _19=(typeof _15);if(_19=="string"||_19=="number"){_15=_6.toDom(_15,(_16&&_16.ownerDocument));if(_15.nodeType==11){_15=_4._toArray(_15.childNodes);}else{_15=[_15];}}else{if(!_4.isArrayLike(_15)){_15=[_15];}else{if(!_4.isArray(_15)){_15=_4._toArray(_15);}}}if(_17){_15._runParse=true;}return _15;},_cloneNode:function(_1a){return _1a.cloneNode(true);},_place:function(ary,_1b,_1c,_1d){if(_1b.nodeType!=1&&_1c=="only"){return;}var _1e=_1b,_1f;var _20=ary.length;for(var i=_20-1;i>=0;i--){var _21=(_1d?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&_1.parser&&_1.parser.parse){if(!_1f){_1f=_1e.ownerDocument.createElement("div");}_1f.appendChild(_21);_1.parser.parse(_1f);_21=_1f.firstChild;while(_1f.firstChild){_1f.removeChild(_1f.firstChild);}}if(i==_20-1){_6.place(_21,_1e,_1c);}else{_1e.parentNode.insertBefore(_21,_1e);}_1e=_21;}},attr:_e(_10(_8),_a),style:_e(_10(_9),_a),addClass:_f(_5.add),removeClass:_f(_5.remove),replaceClass:_f(_5.replace),toggleClass:_f(_5.toggle),empty:_f(_6.empty),removeAttr:_f(_8.remove),position:aam(_7.position),marginBox:aam(_7.getMarginBox),place:function(_22,_23){var _24=_2(_22)[0];return this.forEach(function(_25){_6.place(_25,_24,_23);});},orphan:function(_26){return (_26?_2._filterResult(this,_26):this).forEach(_b);},adopt:function(_27,_28){return _2(_27).place(this[0],_28)._stash(this);},query:function(_29){if(!_29){return this;}var ret=new _d;this.map(function(_2a){_2(_29,_2a).forEach(function(_2b){if(_2b!==undefined){ret.push(_2b);}});});return ret._stash(this);},filter:function(_2c){var a=arguments,_2d=this,_2e=0;if(typeof _2c=="string"){_2d=_2._filterResult(this,a[0]);if(a.length==1){return _2d._stash(this);}_2e=1;}return this._wrap(_3.filter(_2d,a[_2e],a[_2e+1]),this);},addContent:function(_2f,_30){_2f=this._normalize(_2f,this[0]);for(var i=0,_31;(_31=this[i]);i++){this._place(_2f,_31,_30,i>0);}return this;}});return _d;}); \ No newline at end of file
+define("dojo/NodeList-dom",["./_base/kernel","./query","./_base/array","./_base/lang","./dom-class","./dom-construct","./dom-geometry","./dom-attr","./dom-style"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){var _a=function(a){return a.length==1&&(typeof a[0]=="string");};var _b=function(_c){var p=_c.parentNode;if(p){p.removeChild(_c);}};var _d=_2.NodeList,_e=_d._adaptWithCondition,_f=_d._adaptAsForEach,aam=_d._adaptAsMap;function _10(_11){return function(_12,_13,_14){if(arguments.length==2){return _11[typeof _13=="string"?"get":"set"](_12,_13);}return _11.set(_12,_13,_14);};};_4.extend(_d,{_normalize:function(_15,_16){var _17=_15.parse===true;if(typeof _15.template=="string"){var _18=_15.templateFunc||(_1.string&&_1.string.substitute);_15=_18?_18(_15.template,_15):_15;}var _19=(typeof _15);if(_19=="string"||_19=="number"){_15=_6.toDom(_15,(_16&&_16.ownerDocument));if(_15.nodeType==11){_15=_4._toArray(_15.childNodes);}else{_15=[_15];}}else{if(!_4.isArrayLike(_15)){_15=[_15];}else{if(!_4.isArray(_15)){_15=_4._toArray(_15);}}}if(_17){_15._runParse=true;}return _15;},_cloneNode:function(_1a){return _1a.cloneNode(true);},_place:function(ary,_1b,_1c,_1d){if(_1b.nodeType!=1&&_1c=="only"){return;}var _1e=_1b,_1f;var _20=ary.length;for(var i=_20-1;i>=0;i--){var _21=(_1d?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&_1.parser&&_1.parser.parse){if(!_1f){_1f=_1e.ownerDocument.createElement("div");}_1f.appendChild(_21);_1.parser.parse(_1f);_21=_1f.firstChild;while(_1f.firstChild){_1f.removeChild(_1f.firstChild);}}if(i==_20-1){_6.place(_21,_1e,_1c);}else{_1e.parentNode.insertBefore(_21,_1e);}_1e=_21;}},position:aam(_7.position),attr:_e(_10(_8),_a),style:_e(_10(_9),_a),addClass:_f(_5.add),removeClass:_f(_5.remove),toggleClass:_f(_5.toggle),replaceClass:_f(_5.replace),empty:_f(_6.empty),removeAttr:_f(_8.remove),marginBox:aam(_7.getMarginBox),place:function(_22,_23){var _24=_2(_22)[0];return this.forEach(function(_25){_6.place(_25,_24,_23);});},orphan:function(_26){return (_26?_2._filterResult(this,_26):this).forEach(_b);},adopt:function(_27,_28){return _2(_27).place(this[0],_28)._stash(this);},query:function(_29){if(!_29){return this;}var ret=new _d;this.map(function(_2a){_2(_29,_2a).forEach(function(_2b){if(_2b!==undefined){ret.push(_2b);}});});return ret._stash(this);},filter:function(_2c){var a=arguments,_2d=this,_2e=0;if(typeof _2c=="string"){_2d=_2._filterResult(this,a[0]);if(a.length==1){return _2d._stash(this);}_2e=1;}return this._wrap(_3.filter(_2d,a[_2e],a[_2e+1]),this);},addContent:function(_2f,_30){_2f=this._normalize(_2f,this[0]);for(var i=0,_31;(_31=this[i]);i++){this._place(_2f,_31,_30,i>0);}return this;}});return _d;}); \ No newline at end of file
diff --git a/lib/dojo/NodeList-fx.js b/lib/dojo/NodeList-fx.js
index 8663bebf6..6ddec3ea2 100644
--- a/lib/dojo/NodeList-fx.js
+++ b/lib/dojo/NodeList-fx.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/NodeList-fx",["dojo/_base/NodeList","./_base/lang","./_base/connect","./_base/fx","./fx"],function(_1,_2,_3,_4,_5){_2.extend(_1,{_anim:function(_6,_7,_8){_8=_8||{};var a=_5.combine(this.map(function(_9){var _a={node:_9};_2.mixin(_a,_8);return _6[_7](_a);}));return _8.auto?a.play()&&this:a;},wipeIn:function(_b){return this._anim(_5,"wipeIn",_b);},wipeOut:function(_c){return this._anim(_5,"wipeOut",_c);},slideTo:function(_d){return this._anim(_5,"slideTo",_d);},fadeIn:function(_e){return this._anim(_4,"fadeIn",_e);},fadeOut:function(_f){return this._anim(_4,"fadeOut",_f);},animateProperty:function(_10){return this._anim(_4,"animateProperty",_10);},anim:function(_11,_12,_13,_14,_15){var _16=_5.combine(this.map(function(_17){return _4.animateProperty({node:_17,properties:_11,duration:_12||350,easing:_13});}));if(_14){_3.connect(_16,"onEnd",_14);}return _16.play(_15||0);}});return _1;}); \ No newline at end of file
+define("dojo/NodeList-fx",["./query","./_base/lang","./_base/connect","./_base/fx","./fx"],function(_1,_2,_3,_4,_5){var _6=_1.NodeList;_2.extend(_6,{_anim:function(_7,_8,_9){_9=_9||{};var a=_5.combine(this.map(function(_a){var _b={node:_a};_2.mixin(_b,_9);return _7[_8](_b);}));return _9.auto?a.play()&&this:a;},wipeIn:function(_c){return this._anim(_5,"wipeIn",_c);},wipeOut:function(_d){return this._anim(_5,"wipeOut",_d);},slideTo:function(_e){return this._anim(_5,"slideTo",_e);},fadeIn:function(_f){return this._anim(_4,"fadeIn",_f);},fadeOut:function(_10){return this._anim(_4,"fadeOut",_10);},animateProperty:function(_11){return this._anim(_4,"animateProperty",_11);},anim:function(_12,_13,_14,_15,_16){var _17=_5.combine(this.map(function(_18){return _4.animateProperty({node:_18,properties:_12,duration:_13||350,easing:_14});}));if(_15){_3.connect(_17,"onEnd",_15);}return _17.play(_16||0);}});return _6;}); \ No newline at end of file
diff --git a/lib/dojo/NodeList-html.js b/lib/dojo/NodeList-html.js
index ba84ee772..f513e28a7 100644
--- a/lib/dojo/NodeList-html.js
+++ b/lib/dojo/NodeList-html.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/NodeList-manipulate.js b/lib/dojo/NodeList-manipulate.js
index d436a7fc1..45cace2dc 100644
--- a/lib/dojo/NodeList-manipulate.js
+++ b/lib/dojo/NodeList-manipulate.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/NodeList-traverse.js b/lib/dojo/NodeList-traverse.js
index ee42c0149..51e12ac27 100644
--- a/lib/dojo/NodeList-traverse.js
+++ b/lib/dojo/NodeList-traverse.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/NodeList.js b/lib/dojo/NodeList.js
new file mode 100644
index 000000000..10e06c7c7
--- /dev/null
+++ b/lib/dojo/NodeList.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/NodeList",["./query"],function(_1){return _1.NodeList;}); \ No newline at end of file
diff --git a/lib/dojo/OpenAjax.js b/lib/dojo/OpenAjax.js
index 0733641ac..0b3c8918b 100644
--- a/lib/dojo/OpenAjax.js
+++ b/lib/dojo/OpenAjax.js
@@ -21,13 +21,12 @@
// prevent re-definition of the OpenAjax object
if(!window["OpenAjax"]){
OpenAjax = new function(){
- // summary: the OpenAjax hub
- // description: see http://www.openajax.org/member/wiki/OpenAjax_Hub_Specification
+ // summary:
+ // the OpenAjax hub
+ // description:
+ // see http://www.openajax.org/member/wiki/OpenAjax_Hub_Specification
- var t = true;
- var f = false;
- var g = window;
- var libs;
+ var libs = {};
var ooh = "org.openajax.hub.";
var h = {};
@@ -36,7 +35,6 @@ if(!window["OpenAjax"]){
h.implVersion = "0.6";
h.specVersion = "0.6";
h.implExtraData = {};
- var libs = {};
h.libraries = libs;
h.registerLibrary = function(prefix, nsURL, version, extra){
@@ -99,10 +97,8 @@ if(!window["OpenAjax"]){
}
if(typeof tree.c[token] == "undefined"){
tree.c[token] = { c: {}, s: [] };
- this._subscribe(tree.c[token], path, index + 1, sub);
- }else{
- this._subscribe(tree.c[token], path, index + 1, sub);
}
+ this._subscribe(tree.c[token], path, index + 1, sub);
}
};
@@ -158,7 +154,7 @@ if(!window["OpenAjax"]){
else{
var callbacks = tree.s;
var max = callbacks.length;
- for(var i = 0; i < max; i++)
+ for(var i = 0; i < max; i++){
if(sid == callbacks[i].sid){
if(this._pubDepth > 0){
callbacks[i].cb = null;
@@ -168,14 +164,15 @@ if(!window["OpenAjax"]){
callbacks.splice(i, 1);
return;
}
+ }
}
}
};
+
// The following function is provided for automatic testing purposes.
// It is not expected to be deployed in run-time OpenAjax Hub implementations.
- h.reinit = function()
- {
- for (var lib in OpenAjax.hub.libraries) {
+ h.reinit = function(){
+ for (var lib in OpenAjax.hub.libraries){
delete OpenAjax.hub.libraries[lib];
}
OpenAjax.hub.registerLibrary("OpenAjax", "http://openajax.org/hub", "0.6", {});
@@ -186,8 +183,9 @@ if(!window["OpenAjax"]){
OpenAjax._cleanup = [];
OpenAjax._subIndex = 0;
OpenAjax._pubDepth = 0;
- }
+ };
};
+
// Register the OpenAjax Hub itself as a library.
OpenAjax.hub.registerLibrary("OpenAjax", "http://openajax.org/hub", "0.6", {});
diff --git a/lib/dojo/Stateful.js b/lib/dojo/Stateful.js
index c927128f6..c1b128b25 100644
--- a/lib/dojo/Stateful.js
+++ b/lib/dojo/Stateful.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/Stateful",["./_base/kernel","./_base/declare","./_base/lang","./_base/array"],function(_1,_2,_3,_4){return _1.declare("dojo.Stateful",null,{postscript:function(_5){if(_5){_3.mixin(this,_5);}},get:function(_6){return this[_6];},set:function(_7,_8){if(typeof _7==="object"){for(var x in _7){this.set(x,_7[x]);}return this;}var _9=this[_7];this[_7]=_8;if(this._watchCallbacks){this._watchCallbacks(_7,_9,_8);}return this;},watch:function(_a,_b){var _c=this._watchCallbacks;if(!_c){var _d=this;_c=this._watchCallbacks=function(_e,_f,_10,_11){var _12=function(_13){if(_13){_13=_13.slice();for(var i=0,l=_13.length;i<l;i++){try{_13[i].call(_d,_e,_f,_10);}catch(e){console.error(e);}}}};_12(_c["_"+_e]);if(!_11){_12(_c["*"]);}};}if(!_b&&typeof _a==="function"){_b=_a;_a="*";}else{_a="_"+_a;}var _14=_c[_a];if(typeof _14!=="object"){_14=_c[_a]=[];}_14.push(_b);return {unwatch:function(){_14.splice(_4.indexOf(_14,_b),1);}};}});}); \ No newline at end of file
+define("dojo/Stateful",["./_base/declare","./_base/lang","./_base/array","dojo/when"],function(_1,_2,_3,_4){return _1("dojo.Stateful",null,{_attrPairNames:{},_getAttrNames:function(_5){var _6=this._attrPairNames;if(_6[_5]){return _6[_5];}return (_6[_5]={s:"_"+_5+"Setter",g:"_"+_5+"Getter"});},postscript:function(_7){if(_7){this.set(_7);}},_get:function(_8,_9){return typeof this[_9.g]==="function"?this[_9.g]():this[_8];},get:function(_a){return this._get(_a,this._getAttrNames(_a));},set:function(_b,_c){if(typeof _b==="object"){for(var x in _b){if(_b.hasOwnProperty(x)&&x!="_watchCallbacks"){this.set(x,_b[x]);}}return this;}var _d=this._getAttrNames(_b),_e=this._get(_b,_d),_f=this[_d.s],_10;if(typeof _f==="function"){_10=_f.apply(this,Array.prototype.slice.call(arguments,1));}else{this[_b]=_c;}if(this._watchCallbacks){var _11=this;_4(_10,function(){_11._watchCallbacks(_b,_e,_c);});}return this;},_changeAttrValue:function(_12,_13){var _14=this.get(_12);this[_12]=_13;if(this._watchCallbacks){this._watchCallbacks(_12,_14,_13);}return this;},watch:function(_15,_16){var _17=this._watchCallbacks;if(!_17){var _18=this;_17=this._watchCallbacks=function(_19,_1a,_1b,_1c){var _1d=function(_1e){if(_1e){_1e=_1e.slice();for(var i=0,l=_1e.length;i<l;i++){_1e[i].call(_18,_19,_1a,_1b);}}};_1d(_17["_"+_19]);if(!_1c){_1d(_17["*"]);}};}if(!_16&&typeof _15==="function"){_16=_15;_15="*";}else{_15="_"+_15;}var _1f=_17[_15];if(typeof _1f!=="object"){_1f=_17[_15]=[];}_1f.push(_16);var _20={};_20.unwatch=_20.remove=function(){var _21=_3.indexOf(_1f,_16);if(_21>-1){_1f.splice(_21,1);}};return _20;}});}); \ No newline at end of file
diff --git a/lib/dojo/_base/Color.js b/lib/dojo/_base/Color.js
index ad8e0ab3c..ce245ad8e 100644
--- a/lib/dojo/_base/Color.js
+++ b/lib/dojo/_base/Color.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/_base/Deferred.js b/lib/dojo/_base/Deferred.js
index 13609f687..a356c8c15 100644
--- a/lib/dojo/_base/Deferred.js
+++ b/lib/dojo/_base/Deferred.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/Deferred",["./kernel","./lang"],function(_1,_2){var _3=function(){};var _4=Object.freeze||function(){};_1.Deferred=function(_5){var _6,_7,_8,_9,_a;var _b=(this.promise={});function _c(_d){if(_7){throw new Error("This deferred has already been resolved");}_6=_d;_7=true;_e();};function _e(){var _f;while(!_f&&_a){var _10=_a;_a=_a.next;if((_f=(_10.progress==_3))){_7=false;}var _11=(_8?_10.error:_10.resolved);if(_11){try{var _12=_11(_6);if(_12&&typeof _12.then==="function"){_12.then(_2.hitch(_10.deferred,"resolve"),_2.hitch(_10.deferred,"reject"),_2.hitch(_10.deferred,"progress"));continue;}var _13=_f&&_12===undefined;if(_f&&!_13){_8=_12 instanceof Error;}_10.deferred[_13&&_8?"reject":"resolve"](_13?_6:_12);}catch(e){_10.deferred.reject(e);}}else{if(_8){_10.deferred.reject(_6);}else{_10.deferred.resolve(_6);}}}};this.resolve=this.callback=function(_14){this.fired=0;this.results=[_14,null];_c(_14);};this.reject=this.errback=function(_15){_8=true;this.fired=1;_c(_15);this.results=[null,_15];if(!_15||_15.log!==false){(_1.config.deferredOnError||function(x){console.error(x);})(_15);}};this.progress=function(_16){var _17=_a;while(_17){var _18=_17.progress;_18&&_18(_16);_17=_17.next;}};this.addCallbacks=function(_19,_1a){this.then(_19,_1a,_3);return this;};_b.then=this.then=function(_1b,_1c,_1d){var _1e=_1d==_3?this:new _1.Deferred(_b.cancel);var _1f={resolved:_1b,error:_1c,progress:_1d,deferred:_1e};if(_a){_9=_9.next=_1f;}else{_a=_9=_1f;}if(_7){_e();}return _1e.promise;};var _20=this;_b.cancel=this.cancel=function(){if(!_7){var _21=_5&&_5(_20);if(!_7){if(!(_21 instanceof Error)){_21=new Error(_21);}_21.log=false;_20.reject(_21);}}};_4(_b);};_2.extend(_1.Deferred,{addCallback:function(_22){return this.addCallbacks(_2.hitch.apply(_1,arguments));},addErrback:function(_23){return this.addCallbacks(null,_2.hitch.apply(_1,arguments));},addBoth:function(_24){var _25=_2.hitch.apply(_1,arguments);return this.addCallbacks(_25,_25);},fired:-1});_1.Deferred.when=_1.when=function(_26,_27,_28,_29){if(_26&&typeof _26.then==="function"){return _26.then(_27,_28,_29);}return _27?_27(_26):_26;};return _1.Deferred;}); \ No newline at end of file
+define("dojo/_base/Deferred",["./kernel","../Deferred","../promise/Promise","../errors/CancelError","../has","./lang","../when"],function(_1,_2,_3,_4,_5,_6,_7){var _8=function(){};var _9=Object.freeze||function(){};var _a=_1.Deferred=function(_b){var _c,_d,_e,_f,_10;var _11=(this.promise=new _3());function _12(_13){if(_d){throw new Error("This deferred has already been resolved");}_c=_13;_d=true;_14();};function _14(){var _15;while(!_15&&_10){var _16=_10;_10=_10.next;if((_15=(_16.progress==_8))){_d=false;}var _17=(_e?_16.error:_16.resolved);if(_5("config-useDeferredInstrumentation")){if(_e&&_2.instrumentRejected){_2.instrumentRejected(_c,!!_17);}}if(_17){try{var _18=_17(_c);if(_18&&typeof _18.then==="function"){_18.then(_6.hitch(_16.deferred,"resolve"),_6.hitch(_16.deferred,"reject"),_6.hitch(_16.deferred,"progress"));continue;}var _19=_15&&_18===undefined;if(_15&&!_19){_e=_18 instanceof Error;}_16.deferred[_19&&_e?"reject":"resolve"](_19?_c:_18);}catch(e){_16.deferred.reject(e);}}else{if(_e){_16.deferred.reject(_c);}else{_16.deferred.resolve(_c);}}}};this.resolve=this.callback=function(_1a){this.fired=0;this.results=[_1a,null];_12(_1a);};this.reject=this.errback=function(_1b){_e=true;this.fired=1;if(_5("config-useDeferredInstrumentation")){if(_2.instrumentRejected){_2.instrumentRejected(_1b,!!_10);}}_12(_1b);this.results=[null,_1b];};this.progress=function(_1c){var _1d=_10;while(_1d){var _1e=_1d.progress;_1e&&_1e(_1c);_1d=_1d.next;}};this.addCallbacks=function(_1f,_20){this.then(_1f,_20,_8);return this;};_11.then=this.then=function(_21,_22,_23){var _24=_23==_8?this:new _a(_11.cancel);var _25={resolved:_21,error:_22,progress:_23,deferred:_24};if(_10){_f=_f.next=_25;}else{_10=_f=_25;}if(_d){_14();}return _24.promise;};var _26=this;_11.cancel=this.cancel=function(){if(!_d){var _27=_b&&_b(_26);if(!_d){if(!(_27 instanceof Error)){_27=new _4(_27);}_27.log=false;_26.reject(_27);}}};_9(_11);};_6.extend(_a,{addCallback:function(_28){return this.addCallbacks(_6.hitch.apply(_1,arguments));},addErrback:function(_29){return this.addCallbacks(null,_6.hitch.apply(_1,arguments));},addBoth:function(_2a){var _2b=_6.hitch.apply(_1,arguments);return this.addCallbacks(_2b,_2b);},fired:-1});_a.when=_1.when=_7;return _a;}); \ No newline at end of file
diff --git a/lib/dojo/_base/NodeList.js b/lib/dojo/_base/NodeList.js
index 4fa6b48a0..c1d1397ae 100644
--- a/lib/dojo/_base/NodeList.js
+++ b/lib/dojo/_base/NodeList.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/NodeList",["./kernel","../query","./array","./html","../NodeList-dom"],function(_1,_2,_3){var _4=_2.NodeList;var _5=_4.prototype;_5.connect=_4._adaptAsForEach(function(){return _1.connect.apply(this,arguments);});_5.coords=_4._adaptAsMap(_1.coords);_4.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"];_3.forEach(_4.events,function(_6){var _7="on"+_6;_5[_7]=function(a,b){return this.connect(_7,a,b);};});_1.NodeList=_4;return _1.NodeList;}); \ No newline at end of file
+define("dojo/_base/NodeList",["./kernel","../query","./array","./html","../NodeList-dom"],function(_1,_2,_3){var _4=_2.NodeList,_5=_4.prototype;_5.connect=_4._adaptAsForEach(function(){return _1.connect.apply(this,arguments);});_5.coords=_4._adaptAsMap(_1.coords);_4.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"];_3.forEach(_4.events,function(_6){var _7="on"+_6;_5[_7]=function(a,b){return this.connect(_7,a,b);};});_1.NodeList=_4;return _4;}); \ No newline at end of file
diff --git a/lib/dojo/_base/array.js b/lib/dojo/_base/array.js
index f25c2ad00..dfa3b096a 100644
--- a/lib/dojo/_base/array.js
+++ b/lib/dojo/_base/array.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/array",["./kernel","../has","./lang"],function(_1,_2,_3){var _4={},u,_5;function _6(){_4={};};function _7(fn){return _4[fn]=new Function("item","index","array",fn);};function _8(_9){var _a=!_9;return function(a,fn,o){var i=0,l=a&&a.length||0,_b;if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_4[fn]||_7(fn);}if(o){for(;i<l;++i){_b=!fn.call(o,a[i],i,a);if(_9^_b){return !_b;}}}else{for(;i<l;++i){_b=!fn(a[i],i,a);if(_9^_b){return !_b;}}}return _a;};};function _c(up){var _d=1,_e=0,_f=0;if(!up){_d=_e=_f=-1;}return function(a,x,_10,_11){if(_11&&_d>0){return _5.lastIndexOf(a,x,_10);}var l=a&&a.length||0,end=up?l+_f:_e,i;if(_10===u){i=up?_e:l+_f;}else{if(_10<0){i=l+_10;if(i<0){i=_e;}}else{i=_10>=l?l+_f:_10;}}if(l&&typeof a=="string"){a=a.split("");}for(;i!=end;i+=_d){if(a[i]==x){return i;}}return -1;};};function _12(a,fn,o){var i=0,l=a&&a.length||0;if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_4[fn]||_7(fn);}if(o){for(;i<l;++i){fn.call(o,a[i],i,a);}}else{for(;i<l;++i){fn(a[i],i,a);}}};function map(a,fn,o,Ctr){var i=0,l=a&&a.length||0,out=new (Ctr||Array)(l);if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_4[fn]||_7(fn);}if(o){for(;i<l;++i){out[i]=fn.call(o,a[i],i,a);}}else{for(;i<l;++i){out[i]=fn(a[i],i,a);}}return out;};function _13(a,fn,o){var i=0,l=a&&a.length||0,out=[],_14;if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_4[fn]||_7(fn);}if(o){for(;i<l;++i){_14=a[i];if(fn.call(o,_14,i,a)){out.push(_14);}}}else{for(;i<l;++i){_14=a[i];if(fn(_14,i,a)){out.push(_14);}}}return out;};_5={every:_8(false),some:_8(true),indexOf:_c(true),lastIndexOf:_c(false),forEach:_12,map:map,filter:_13,clearCache:_6};1&&_3.mixin(_1,_5);return _5;}); \ No newline at end of file
+define("dojo/_base/array",["./kernel","../has","./lang"],function(_1,_2,_3){var _4={},u;function _5(fn){return _4[fn]=new Function("item","index","array",fn);};function _6(_7){var _8=!_7;return function(a,fn,o){var i=0,l=a&&a.length||0,_9;if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_4[fn]||_5(fn);}if(o){for(;i<l;++i){_9=!fn.call(o,a[i],i,a);if(_7^_9){return !_9;}}}else{for(;i<l;++i){_9=!fn(a[i],i,a);if(_7^_9){return !_9;}}}return _8;};};function _a(up){var _b=1,_c=0,_d=0;if(!up){_b=_c=_d=-1;}return function(a,x,_e,_f){if(_f&&_b>0){return _10.lastIndexOf(a,x,_e);}var l=a&&a.length||0,end=up?l+_d:_c,i;if(_e===u){i=up?_c:l+_d;}else{if(_e<0){i=l+_e;if(i<0){i=_c;}}else{i=_e>=l?l+_d:_e;}}if(l&&typeof a=="string"){a=a.split("");}for(;i!=end;i+=_b){if(a[i]==x){return i;}}return -1;};};var _10={every:_6(false),some:_6(true),indexOf:_a(true),lastIndexOf:_a(false),forEach:function(arr,_11,_12){var i=0,l=arr&&arr.length||0;if(l&&typeof arr=="string"){arr=arr.split("");}if(typeof _11=="string"){_11=_4[_11]||_5(_11);}if(_12){for(;i<l;++i){_11.call(_12,arr[i],i,arr);}}else{for(;i<l;++i){_11(arr[i],i,arr);}}},map:function(arr,_13,_14,Ctr){var i=0,l=arr&&arr.length||0,out=new (Ctr||Array)(l);if(l&&typeof arr=="string"){arr=arr.split("");}if(typeof _13=="string"){_13=_4[_13]||_5(_13);}if(_14){for(;i<l;++i){out[i]=_13.call(_14,arr[i],i,arr);}}else{for(;i<l;++i){out[i]=_13(arr[i],i,arr);}}return out;},filter:function(arr,_15,_16){var i=0,l=arr&&arr.length||0,out=[],_17;if(l&&typeof arr=="string"){arr=arr.split("");}if(typeof _15=="string"){_15=_4[_15]||_5(_15);}if(_16){for(;i<l;++i){_17=arr[i];if(_15.call(_16,_17,i,arr)){out.push(_17);}}}else{for(;i<l;++i){_17=arr[i];if(_15(_17,i,arr)){out.push(_17);}}}return out;},clearCache:function(){_4={};}};1&&_3.mixin(_1,_10);return _10;}); \ No newline at end of file
diff --git a/lib/dojo/_base/browser.js b/lib/dojo/_base/browser.js
index 69d57f4cf..4df4dc7ba 100644
--- a/lib/dojo/_base/browser.js
+++ b/lib/dojo/_base/browser.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/_base/config.js b/lib/dojo/_base/config.js
index 5c70ffd91..a637258c8 100644
--- a/lib/dojo/_base/config.js
+++ b/lib/dojo/_base/config.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/_base/configFirefoxExtension.js b/lib/dojo/_base/configFirefoxExtension.js
index ce30c9153..4115c6172 100644
--- a/lib/dojo/_base/configFirefoxExtension.js
+++ b/lib/dojo/_base/configFirefoxExtension.js
@@ -78,14 +78,16 @@ if(typeof window != 'undefined'){
var hasBase = false;
dojo._getText = function(/*URI*/ uri, /*Boolean*/ fail_ok){
- // summary: Read the contents of the specified uri and return those contents.
+ // summary:
+ // Read the contents of the specified uri and return those contents.
// uri:
// A relative or absolute uri. If absolute, it still must be in
// the same "domain" as we are.
// fail_ok:
// Default false. If fail_ok and loading fails, return null
// instead of throwing.
- // returns: The response text. null is returned when there is a
+ // returns:
+ // The response text. null is returned when there is a
// failure and failure is okay (an exception otherwise)
// alert("_getText: " + uri);
@@ -178,12 +180,12 @@ if(typeof window != 'undefined'){
dojo._defaultContext = [ window, document ];
dojo.pushContext = function(/*Object|String?*/g, /*MDocumentElement?*/d){
- // summary:
+ // summary:
// causes subsequent calls to Dojo methods to assume the
// passed object and, optionally, document as the default
// scopes to use. A 2-element array of the previous global and
// document are returned.
- // description:
+ // description:
// dojo.pushContext treats contexts as a stack. The
// auto-detected contexts which are initially provided using
// dojo.setContext() require authors to keep state in order to
@@ -199,10 +201,10 @@ if(typeof window != 'undefined'){
// the context to push. This means that iframes can be given
// an ID and code can be executed in the scope of the iframe's
// document in subsequent calls easily.
- // g:
+ // g:
// The global context. If a string, the id of the frame to
// search for a context and document.
- // d:
+ // d:
// The document element to execute subsequent code with.
var old = [dojo.global, dojo.doc];
contexts.push(old);
@@ -224,7 +226,7 @@ if(typeof window != 'undefined'){
};
dojo.popContext = function(){
- // summary:
+ // summary:
// If the context stack contains elements, ensure that
// subsequent code executes in the *previous* context to the
// current context. The current context set ([global,
@@ -286,17 +288,17 @@ if(typeof window != 'undefined'){
};
// FIXME: PORT
// FIXME: dojo.unloaded requires dojo scope, so using anon function wrapper.
- _handleNodeEvent("onbeforeunload", function() { dojo.unloaded(); });
- _handleNodeEvent("onunload", function() { dojo.windowUnloaded(); });
+ _handleNodeEvent("onbeforeunload", function(){ dojo.unloaded(); });
+ _handleNodeEvent("onunload", function(){ dojo.windowUnloaded(); });
})();
*/
// FIXME: PORTME
- // this event fires a lot, namely for all plugin XUL overlays and for
- // all iframes (in addition to window navigations). We only want
- // Dojo's to fire once..but we might care if pages navigate. We'll
- // probably need an extension-specific API
+ // this event fires a lot, namely for all plugin XUL overlays and for
+ // all iframes (in addition to window navigations). We only want
+ // Dojo's to fire once..but we might care if pages navigate. We'll
+ // probably need an extension-specific API
if(!dojo.config.afterOnLoad){
window.addEventListener("DOMContentLoaded", function(e){
dojo._loadInit(e);
diff --git a/lib/dojo/_base/configNode.js b/lib/dojo/_base/configNode.js
index 7cd6f14f9..1866795c1 100644
--- a/lib/dojo/_base/configNode.js
+++ b/lib/dojo/_base/configNode.js
@@ -1,5 +1,5 @@
exports.config = function(config){
- // summary:
+ // summary:
// This module provides bootstrap configuration for running dojo in node.js
// any command line arguments with the load flag are pushed into deps
@@ -15,7 +15,7 @@ exports.config = function(config){
var fs = require("fs");
// make sure global require exists
- //if (typeof global.require=="undefined") {
+ //if (typeof global.require=="undefined"){
// global.require= {};
//}
@@ -40,12 +40,12 @@ exports.config = function(config){
config.hasCache[p] = hasCache[p];
}
- var vm = require('vm');
-
+ var vm = require('vm'),
+ path = require('path');
// reset some configuration switches with node-appropriate values
var nodeConfig = {
- baseUrl: __dirname.match(/(.+)[\/\\]_base$/)[1],
+ baseUrl: path.dirname(process.argv[1]),
commandLineArgs:args,
deps:deps,
timeout:0,
diff --git a/lib/dojo/_base/configRhino.js b/lib/dojo/_base/configRhino.js
index ec6475997..2cbbf8887 100644
--- a/lib/dojo/_base/configRhino.js
+++ b/lib/dojo/_base/configRhino.js
@@ -1,5 +1,5 @@
function rhinoDojoConfig(config, baseUrl, rhinoArgs){
- // summary:
+ // summary:
// This module provides bootstrap configuration for running dojo in rhino.
// TODO: v1.6 tries to set dojo.doc and dojo.body in rhino; why?
diff --git a/lib/dojo/_base/configSpidermonkey.js b/lib/dojo/_base/configSpidermonkey.js
index 0da0d7102..af16fda3b 100644
--- a/lib/dojo/_base/configSpidermonkey.js
+++ b/lib/dojo/_base/configSpidermonkey.js
@@ -1,9 +1,9 @@
// TODO: this file needs to be converted to the v1.7 loader
-
-/*
- * SpiderMonkey host environment
- */
+// module:
+// configSpidermonkey
+// summary:
+// SpiderMonkey host environment
if(dojo.config["baseUrl"]){
dojo.baseUrl = dojo.config["baseUrl"];
@@ -13,11 +13,7 @@ if(dojo.config["baseUrl"]){
dojo._name = 'spidermonkey';
-/*=====
-dojo.isSpidermonkey = {
- // summary: Detect spidermonkey
-};
-=====*/
+
dojo.isSpidermonkey = true;
dojo.exit = function(exitcode){
diff --git a/lib/dojo/_base/connect.js b/lib/dojo/_base/connect.js
index 6fa7aabc3..5775c63c8 100644
--- a/lib/dojo/_base/connect.js
+++ b/lib/dojo/_base/connect.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/connect",["./kernel","../on","../topic","../aspect","./event","../mouse","./sniff","./lang","../keys"],function(_1,on,_2,_3,_4,_5,_6,_7){_6.add("events-keypress-typed",function(){var _8={charCode:0};try{_8=document.createEvent("KeyboardEvent");(_8.initKeyboardEvent||_8.initKeyEvent).call(_8,"keypress",true,true,null,false,false,false,false,9,3);}catch(e){}return _8.charCode==0&&!_6("opera");});function _9(_a,_b,_c,_d,_e){_d=_7.hitch(_c,_d);if(!_a||!(_a.addEventListener||_a.attachEvent)){return _3.after(_a||_1.global,_b,_d,true);}if(typeof _b=="string"&&_b.substring(0,2)=="on"){_b=_b.substring(2);}if(!_a){_a=_1.global;}if(!_e){switch(_b){case "keypress":_b=_f;break;case "mouseenter":_b=_5.enter;break;case "mouseleave":_b=_5.leave;break;}}return on(_a,_b,_d,_e);};var _10={106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39,229:113};var _11=_6("mac")?"metaKey":"ctrlKey";var _12=function(evt,_13){var _14=_7.mixin({},evt,_13);_15(_14);_14.preventDefault=function(){evt.preventDefault();};_14.stopPropagation=function(){evt.stopPropagation();};return _14;};function _15(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;};var _f;if(_6("events-keypress-typed")){var _16=function(e,_17){try{return (e.keyCode=_17);}catch(e){return 0;}};_f=function(_18,_19){var _1a=on(_18,"keydown",function(evt){var k=evt.keyCode;var _1b=(k!=13||(_6("ie")>=9&&!_6("quirks")))&&k!=32&&(k!=27||!_6("ie"))&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222)&&k!=229;if(_1b||evt.ctrlKey){var c=_1b?0:k;if(evt.ctrlKey){if(k==3||k==13){return _19.call(evt.currentTarget,evt);}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=_10[c]||c;}}}}var _1c=_12(evt,{type:"keypress",faux:true,charCode:c});_19.call(evt.currentTarget,_1c);if(_6("ie")){_16(evt,_1c.keyCode);}}});var _1d=on(_18,"keypress",function(evt){var c=evt.charCode;c=c>=32?c:0;evt=_12(evt,{charCode:c,faux:true});return _19.call(this,evt);});return {remove:function(){_1a.remove();_1d.remove();}};};}else{if(_6("opera")){_f=function(_1e,_1f){return on(_1e,"keypress",function(evt){var c=evt.which;if(c==3){c=99;}c=c<32&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){c+=32;}return _1f.call(this,_12(evt,{charCode:c}));});};}else{_f=function(_20,_21){return on(_20,"keypress",function(evt){_15(evt);return _21.call(this,evt);});};}}var _22={_keypress:_f,connect:function(obj,_23,_24,_25,_26){var a=arguments,_27=[],i=0;_27.push(typeof a[0]=="string"?null:a[i++],a[i++]);var a1=a[i+1];_27.push(typeof a1=="string"||typeof a1=="function"?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++){_27.push(a[i]);}return _9.apply(this,_27);},disconnect:function(_28){if(_28){_28.remove();}},subscribe:function(_29,_2a,_2b){return _2.subscribe(_29,_7.hitch(_2a,_2b));},publish:function(_2c,_2d){return _2.publish.apply(_2,[_2c].concat(_2d));},connectPublisher:function(_2e,obj,_2f){var pf=function(){_22.publish(_2e,arguments);};return _2f?_22.connect(obj,_2f,pf):_22.connect(obj,pf);},isCopyKey:function(e){return e[_11];}};_22.unsubscribe=_22.disconnect;1&&_7.mixin(_1,_22);return _22;}); \ No newline at end of file
+define("dojo/_base/connect",["./kernel","../on","../topic","../aspect","./event","../mouse","./sniff","./lang","../keys"],function(_1,on,_2,_3,_4,_5,_6,_7){_6.add("events-keypress-typed",function(){var _8={charCode:0};try{_8=document.createEvent("KeyboardEvent");(_8.initKeyboardEvent||_8.initKeyEvent).call(_8,"keypress",true,true,null,false,false,false,false,9,3);}catch(e){}return _8.charCode==0&&!_6("opera");});function _9(_a,_b,_c,_d,_e){_d=_7.hitch(_c,_d);if(!_a||!(_a.addEventListener||_a.attachEvent)){return _3.after(_a||_1.global,_b,_d,true);}if(typeof _b=="string"&&_b.substring(0,2)=="on"){_b=_b.substring(2);}if(!_a){_a=_1.global;}if(!_e){switch(_b){case "keypress":_b=_f;break;case "mouseenter":_b=_5.enter;break;case "mouseleave":_b=_5.leave;break;}}return on(_a,_b,_d,_e);};var _10={106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39,229:113};var _11=_6("mac")?"metaKey":"ctrlKey";var _12=function(evt,_13){var _14=_7.mixin({},evt,_13);_15(_14);_14.preventDefault=function(){evt.preventDefault();};_14.stopPropagation=function(){evt.stopPropagation();};return _14;};function _15(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;};var _f;if(_6("events-keypress-typed")){var _16=function(e,_17){try{return (e.keyCode=_17);}catch(e){return 0;}};_f=function(_18,_19){var _1a=on(_18,"keydown",function(evt){var k=evt.keyCode;var _1b=(k!=13)&&k!=32&&(k!=27||!_6("ie"))&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222)&&k!=229;if(_1b||evt.ctrlKey){var c=_1b?0:k;if(evt.ctrlKey){if(k==3||k==13){return _19.call(evt.currentTarget,evt);}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=_10[c]||c;}}}}var _1c=_12(evt,{type:"keypress",faux:true,charCode:c});_19.call(evt.currentTarget,_1c);if(_6("ie")){_16(evt,_1c.keyCode);}}});var _1d=on(_18,"keypress",function(evt){var c=evt.charCode;c=c>=32?c:0;evt=_12(evt,{charCode:c,faux:true});return _19.call(this,evt);});return {remove:function(){_1a.remove();_1d.remove();}};};}else{if(_6("opera")){_f=function(_1e,_1f){return on(_1e,"keypress",function(evt){var c=evt.which;if(c==3){c=99;}c=c<32&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){c+=32;}return _1f.call(this,_12(evt,{charCode:c}));});};}else{_f=function(_20,_21){return on(_20,"keypress",function(evt){_15(evt);return _21.call(this,evt);});};}}var _22={_keypress:_f,connect:function(obj,_23,_24,_25,_26){var a=arguments,_27=[],i=0;_27.push(typeof a[0]=="string"?null:a[i++],a[i++]);var a1=a[i+1];_27.push(typeof a1=="string"||typeof a1=="function"?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++){_27.push(a[i]);}return _9.apply(this,_27);},disconnect:function(_28){if(_28){_28.remove();}},subscribe:function(_29,_2a,_2b){return _2.subscribe(_29,_7.hitch(_2a,_2b));},publish:function(_2c,_2d){return _2.publish.apply(_2,[_2c].concat(_2d));},connectPublisher:function(_2e,obj,_2f){var pf=function(){_22.publish(_2e,arguments);};return _2f?_22.connect(obj,_2f,pf):_22.connect(obj,pf);},isCopyKey:function(e){return e[_11];}};_22.unsubscribe=_22.disconnect;1&&_7.mixin(_1,_22);return _22;}); \ No newline at end of file
diff --git a/lib/dojo/_base/declare.js b/lib/dojo/_base/declare.js
index 9247fcc42..575e04916 100644
--- a/lib/dojo/_base/declare.js
+++ b/lib/dojo/_base/declare.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/declare",["./kernel","../has","./lang"],function(_1,_2,_3){var _4=_3.mixin,op=Object.prototype,_5=op.toString,_6=new Function,_7=0,_8="constructor";function _9(_a,_b){throw new Error("declare"+(_b?" "+_b:"")+": "+_a);};function _c(_d,_e){var _f=[],_10=[{cls:0,refs:[]}],_11={},_12=1,l=_d.length,i=0,j,lin,_13,top,_14,rec,_15,_16;for(;i<l;++i){_13=_d[i];if(!_13){_9("mixin #"+i+" is unknown. Did you use dojo.require to pull it in?",_e);}else{if(_5.call(_13)!="[object Function]"){_9("mixin #"+i+" is not a callable constructor.",_e);}}lin=_13._meta?_13._meta.bases:[_13];top=0;for(j=lin.length-1;j>=0;--j){_14=lin[j].prototype;if(!_14.hasOwnProperty("declaredClass")){_14.declaredClass="uniqName_"+(_7++);}_15=_14.declaredClass;if(!_11.hasOwnProperty(_15)){_11[_15]={count:0,refs:[],cls:lin[j]};++_12;}rec=_11[_15];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_10[0].refs.push(top);}while(_10.length){top=_10.pop();_f.push(top.cls);--_12;while(_16=top.refs,_16.length==1){top=_16[0];if(!top||--top.count){top=0;break;}_f.push(top.cls);--_12;}if(top){for(i=0,l=_16.length;i<l;++i){top=_16[i];if(!--top.count){_10.push(top);}}}}if(_12){_9("can't build consistent linearization",_e);}_13=_d[0];_f[0]=_13?_13._meta&&_13===_f[_f.length-_13._meta.bases.length]?_13._meta.bases.length:1:0;return _f;};function _17(_18,a,f){var _19,_1a,_1b,_1c,_1d,_1e,_1f,opf,pos,_20=this._inherited=this._inherited||{};if(typeof _18=="string"){_19=_18;_18=a;a=f;}f=0;_1c=_18.callee;_19=_19||_1c.nom;if(!_19){_9("can't deduce a name to call inherited()",this.declaredClass);}_1d=this.constructor._meta;_1b=_1d.bases;pos=_20.p;if(_19!=_8){if(_20.c!==_1c){pos=0;_1e=_1b[0];_1d=_1e._meta;if(_1d.hidden[_19]!==_1c){_1a=_1d.chains;if(_1a&&typeof _1a[_19]=="string"){_9("calling chained method with inherited: "+_19,this.declaredClass);}do{_1d=_1e._meta;_1f=_1e.prototype;if(_1d&&(_1f[_19]===_1c&&_1f.hasOwnProperty(_19)||_1d.hidden[_19]===_1c)){break;}}while(_1e=_1b[++pos]);pos=_1e?pos:-1;}}_1e=_1b[++pos];if(_1e){_1f=_1e.prototype;if(_1e._meta&&_1f.hasOwnProperty(_19)){f=_1f[_19];}else{opf=op[_19];do{_1f=_1e.prototype;f=_1f[_19];if(f&&(_1e._meta?_1f.hasOwnProperty(_19):f!==opf)){break;}}while(_1e=_1b[++pos]);}}f=_1e&&f||op[_19];}else{if(_20.c!==_1c){pos=0;_1d=_1b[0]._meta;if(_1d&&_1d.ctor!==_1c){_1a=_1d.chains;if(!_1a||_1a.constructor!=="manual"){_9("calling chained constructor with inherited",this.declaredClass);}while(_1e=_1b[++pos]){_1d=_1e._meta;if(_1d&&_1d.ctor===_1c){break;}}pos=_1e?pos:-1;}}while(_1e=_1b[++pos]){_1d=_1e._meta;f=_1d?_1d.ctor:_1e;if(f){break;}}f=_1e&&f;}_20.c=f;_20.p=pos;if(f){return a===true?f:f.apply(this,a||_18);}};function _21(_22,_23){if(typeof _22=="string"){return this.__inherited(_22,_23,true);}return this.__inherited(_22,true);};function _24(_25,a1,a2){var f=this.getInherited(_25,a1);if(f){return f.apply(this,a2||a1||_25);}};var _26=_1.config.isDebug?_24:_17;function _27(cls){var _28=this.constructor._meta.bases;for(var i=0,l=_28.length;i<l;++i){if(_28[i]===cls){return true;}}return this instanceof cls;};function _29(_2a,_2b){for(var _2c in _2b){if(_2c!=_8&&_2b.hasOwnProperty(_2c)){_2a[_2c]=_2b[_2c];}}if(_2("bug-for-in-skips-shadowed")){for(var _2d=_3._extraNames,i=_2d.length;i;){_2c=_2d[--i];if(_2c!=_8&&_2b.hasOwnProperty(_2c)){_2a[_2c]=_2b[_2c];}}}};function _2e(_2f,_30){var _31,t;for(_31 in _30){t=_30[_31];if((t!==op[_31]||!(_31 in op))&&_31!=_8){if(_5.call(t)=="[object Function]"){t.nom=_31;}_2f[_31]=t;}}if(_2("bug-for-in-skips-shadowed")){for(var _32=_3._extraNames,i=_32.length;i;){_31=_32[--i];t=_30[_31];if((t!==op[_31]||!(_31 in op))&&_31!=_8){if(_5.call(t)=="[object Function]"){t.nom=_31;}_2f[_31]=t;}}}return _2f;};function _33(_34){_35.safeMixin(this.prototype,_34);return this;};function _36(_37,_38){return function(){var a=arguments,_39=a,a0=a[0],f,i,m,l=_37.length,_3a;if(!(this instanceof a.callee)){return _3b(a);}if(_38&&(a0&&a0.preamble||this.preamble)){_3a=new Array(_37.length);_3a[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_37[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_3a[i]=a;}}for(i=l-1;i>=0;--i){f=_37[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_3a?_3a[i]:a);}}f=this.postscript;if(f){f.apply(this,_39);}};};function _3c(_3d,_3e){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _3b(a);}if(_3e){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(_3d){_3d.apply(this,a);}f=this.postscript;if(f){f.apply(this,a);}};};function _3f(_40){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _3b(a);}for(;f=_40[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function _41(_42,_43,_44){return function(){var b,m,f,i=0,_45=1;if(_44){i=_43.length-1;_45=-1;}for(;b=_43[i];i+=_45){m=b._meta;f=(m?m.hidden:b.prototype)[_42];if(f){f.apply(this,arguments);}}};};function _46(_47){_6.prototype=_47.prototype;var t=new _6;_6.prototype=null;return t;};function _3b(_48){var _49=_48.callee,t=_46(_49);_49.apply(t,_48);return t;};function _35(_4a,_4b,_4c){if(typeof _4a!="string"){_4c=_4b;_4b=_4a;_4a="";}_4c=_4c||{};var _4d,i,t,_4e,_4f,_50,_51,_52=1,_53=_4b;if(_5.call(_4b)=="[object Array]"){_50=_c(_4b,_4a);t=_50[0];_52=_50.length-t;_4b=_50[_52];}else{_50=[0];if(_4b){if(_5.call(_4b)=="[object Function]"){t=_4b._meta;_50=_50.concat(t?t.bases:_4b);}else{_9("base class is not a callable constructor.",_4a);}}else{if(_4b!==null){_9("unknown base class. Did you use dojo.require to pull it in?",_4a);}}}if(_4b){for(i=_52-1;;--i){_4d=_46(_4b);if(!i){break;}t=_50[i];(t._meta?_29:_4)(_4d,t.prototype);_4e=new Function;_4e.superclass=_4b;_4e.prototype=_4d;_4b=_4d.constructor=_4e;}}else{_4d={};}_35.safeMixin(_4d,_4c);t=_4c.constructor;if(t!==op.constructor){t.nom=_8;_4d.constructor=t;}for(i=_52-1;i;--i){t=_50[i]._meta;if(t&&t.chains){_51=_4(_51||{},t.chains);}}if(_4d["-chains-"]){_51=_4(_51||{},_4d["-chains-"]);}t=!_51||!_51.hasOwnProperty(_8);_50[0]=_4e=(_51&&_51.constructor==="manual")?_3f(_50):(_50.length==1?_3c(_4c.constructor,t):_36(_50,t));_4e._meta={bases:_50,hidden:_4c,chains:_51,parents:_53,ctor:_4c.constructor};_4e.superclass=_4b&&_4b.prototype;_4e.extend=_33;_4e.prototype=_4d;_4d.constructor=_4e;_4d.getInherited=_21;_4d.isInstanceOf=_27;_4d.inherited=_26;_4d.__inherited=_17;if(_4a){_4d.declaredClass=_4a;_3.setObject(_4a,_4e);}if(_51){for(_4f in _51){if(_4d[_4f]&&typeof _51[_4f]=="string"&&_4f!=_8){t=_4d[_4f]=_41(_4f,_50,_51[_4f]==="after");t.nom=_4f;}}}return _4e;};_1.safeMixin=_35.safeMixin=_2e;_1.declare=_35;return _35;}); \ No newline at end of file
+define("dojo/_base/declare",["./kernel","../has","./lang"],function(_1,_2,_3){var _4=_3.mixin,op=Object.prototype,_5=op.toString,_6=new Function,_7=0,_8="constructor";function _9(_a,_b){throw new Error("declare"+(_b?" "+_b:"")+": "+_a);};function _c(_d,_e){var _f=[],_10=[{cls:0,refs:[]}],_11={},_12=1,l=_d.length,i=0,j,lin,_13,top,_14,rec,_15,_16;for(;i<l;++i){_13=_d[i];if(!_13){_9("mixin #"+i+" is unknown. Did you use dojo.require to pull it in?",_e);}else{if(_5.call(_13)!="[object Function]"){_9("mixin #"+i+" is not a callable constructor.",_e);}}lin=_13._meta?_13._meta.bases:[_13];top=0;for(j=lin.length-1;j>=0;--j){_14=lin[j].prototype;if(!_14.hasOwnProperty("declaredClass")){_14.declaredClass="uniqName_"+(_7++);}_15=_14.declaredClass;if(!_11.hasOwnProperty(_15)){_11[_15]={count:0,refs:[],cls:lin[j]};++_12;}rec=_11[_15];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_10[0].refs.push(top);}while(_10.length){top=_10.pop();_f.push(top.cls);--_12;while(_16=top.refs,_16.length==1){top=_16[0];if(!top||--top.count){top=0;break;}_f.push(top.cls);--_12;}if(top){for(i=0,l=_16.length;i<l;++i){top=_16[i];if(!--top.count){_10.push(top);}}}}if(_12){_9("can't build consistent linearization",_e);}_13=_d[0];_f[0]=_13?_13._meta&&_13===_f[_f.length-_13._meta.bases.length]?_13._meta.bases.length:1:0;return _f;};function _17(_18,a,f){var _19,_1a,_1b,_1c,_1d,_1e,_1f,opf,pos,_20=this._inherited=this._inherited||{};if(typeof _18=="string"){_19=_18;_18=a;a=f;}f=0;_1c=_18.callee;_19=_19||_1c.nom;if(!_19){_9("can't deduce a name to call inherited()",this.declaredClass);}_1d=this.constructor._meta;_1b=_1d.bases;pos=_20.p;if(_19!=_8){if(_20.c!==_1c){pos=0;_1e=_1b[0];_1d=_1e._meta;if(_1d.hidden[_19]!==_1c){_1a=_1d.chains;if(_1a&&typeof _1a[_19]=="string"){_9("calling chained method with inherited: "+_19,this.declaredClass);}do{_1d=_1e._meta;_1f=_1e.prototype;if(_1d&&(_1f[_19]===_1c&&_1f.hasOwnProperty(_19)||_1d.hidden[_19]===_1c)){break;}}while(_1e=_1b[++pos]);pos=_1e?pos:-1;}}_1e=_1b[++pos];if(_1e){_1f=_1e.prototype;if(_1e._meta&&_1f.hasOwnProperty(_19)){f=_1f[_19];}else{opf=op[_19];do{_1f=_1e.prototype;f=_1f[_19];if(f&&(_1e._meta?_1f.hasOwnProperty(_19):f!==opf)){break;}}while(_1e=_1b[++pos]);}}f=_1e&&f||op[_19];}else{if(_20.c!==_1c){pos=0;_1d=_1b[0]._meta;if(_1d&&_1d.ctor!==_1c){_1a=_1d.chains;if(!_1a||_1a.constructor!=="manual"){_9("calling chained constructor with inherited",this.declaredClass);}while(_1e=_1b[++pos]){_1d=_1e._meta;if(_1d&&_1d.ctor===_1c){break;}}pos=_1e?pos:-1;}}while(_1e=_1b[++pos]){_1d=_1e._meta;f=_1d?_1d.ctor:_1e;if(f){break;}}f=_1e&&f;}_20.c=f;_20.p=pos;if(f){return a===true?f:f.apply(this,a||_18);}};function _21(_22,_23){if(typeof _22=="string"){return this.__inherited(_22,_23,true);}return this.__inherited(_22,true);};function _24(_25,a1,a2){var f=this.getInherited(_25,a1);if(f){return f.apply(this,a2||a1||_25);}};var _26=_1.config.isDebug?_24:_17;function _27(cls){var _28=this.constructor._meta.bases;for(var i=0,l=_28.length;i<l;++i){if(_28[i]===cls){return true;}}return this instanceof cls;};function _29(_2a,_2b){for(var _2c in _2b){if(_2c!=_8&&_2b.hasOwnProperty(_2c)){_2a[_2c]=_2b[_2c];}}if(_2("bug-for-in-skips-shadowed")){for(var _2d=_3._extraNames,i=_2d.length;i;){_2c=_2d[--i];if(_2c!=_8&&_2b.hasOwnProperty(_2c)){_2a[_2c]=_2b[_2c];}}}};function _2e(_2f,_30){var _31,t;for(_31 in _30){t=_30[_31];if((t!==op[_31]||!(_31 in op))&&_31!=_8){if(_5.call(t)=="[object Function]"){t.nom=_31;}_2f[_31]=t;}}if(_2("bug-for-in-skips-shadowed")){for(var _32=_3._extraNames,i=_32.length;i;){_31=_32[--i];t=_30[_31];if((t!==op[_31]||!(_31 in op))&&_31!=_8){if(_5.call(t)=="[object Function]"){t.nom=_31;}_2f[_31]=t;}}}return _2f;};function _33(_34){_35.safeMixin(this.prototype,_34);return this;};function _36(_37){return _35([this].concat(_37));};function _38(_39,_3a){return function(){var a=arguments,_3b=a,a0=a[0],f,i,m,l=_39.length,_3c;if(!(this instanceof a.callee)){return _3d(a);}if(_3a&&(a0&&a0.preamble||this.preamble)){_3c=new Array(_39.length);_3c[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_39[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_3c[i]=a;}}for(i=l-1;i>=0;--i){f=_39[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_3c?_3c[i]:a);}}f=this.postscript;if(f){f.apply(this,_3b);}};};function _3e(_3f,_40){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _3d(a);}if(_40){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(_3f){_3f.apply(this,a);}f=this.postscript;if(f){f.apply(this,a);}};};function _41(_42){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _3d(a);}for(;f=_42[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function _43(_44,_45,_46){return function(){var b,m,f,i=0,_47=1;if(_46){i=_45.length-1;_47=-1;}for(;b=_45[i];i+=_47){m=b._meta;f=(m?m.hidden:b.prototype)[_44];if(f){f.apply(this,arguments);}}};};function _48(_49){_6.prototype=_49.prototype;var t=new _6;_6.prototype=null;return t;};function _3d(_4a){var _4b=_4a.callee,t=_48(_4b);_4b.apply(t,_4a);return t;};function _35(_4c,_4d,_4e){if(typeof _4c!="string"){_4e=_4d;_4d=_4c;_4c="";}_4e=_4e||{};var _4f,i,t,_50,_51,_52,_53,_54=1,_55=_4d;if(_5.call(_4d)=="[object Array]"){_52=_c(_4d,_4c);t=_52[0];_54=_52.length-t;_4d=_52[_54];}else{_52=[0];if(_4d){if(_5.call(_4d)=="[object Function]"){t=_4d._meta;_52=_52.concat(t?t.bases:_4d);}else{_9("base class is not a callable constructor.",_4c);}}else{if(_4d!==null){_9("unknown base class. Did you use dojo.require to pull it in?",_4c);}}}if(_4d){for(i=_54-1;;--i){_4f=_48(_4d);if(!i){break;}t=_52[i];(t._meta?_29:_4)(_4f,t.prototype);_50=new Function;_50.superclass=_4d;_50.prototype=_4f;_4d=_4f.constructor=_50;}}else{_4f={};}_35.safeMixin(_4f,_4e);t=_4e.constructor;if(t!==op.constructor){t.nom=_8;_4f.constructor=t;}for(i=_54-1;i;--i){t=_52[i]._meta;if(t&&t.chains){_53=_4(_53||{},t.chains);}}if(_4f["-chains-"]){_53=_4(_53||{},_4f["-chains-"]);}t=!_53||!_53.hasOwnProperty(_8);_52[0]=_50=(_53&&_53.constructor==="manual")?_41(_52):(_52.length==1?_3e(_4e.constructor,t):_38(_52,t));_50._meta={bases:_52,hidden:_4e,chains:_53,parents:_55,ctor:_4e.constructor};_50.superclass=_4d&&_4d.prototype;_50.extend=_33;_50.createSubclass=_36;_50.prototype=_4f;_4f.constructor=_50;_4f.getInherited=_21;_4f.isInstanceOf=_27;_4f.inherited=_26;_4f.__inherited=_17;if(_4c){_4f.declaredClass=_4c;_3.setObject(_4c,_50);}if(_53){for(_51 in _53){if(_4f[_51]&&typeof _53[_51]=="string"&&_51!=_8){t=_4f[_51]=_43(_51,_52,_53[_51]==="after");t.nom=_51;}}}return _50;};_1.safeMixin=_35.safeMixin=_2e;_1.declare=_35;return _35;}); \ No newline at end of file
diff --git a/lib/dojo/_base/event.js b/lib/dojo/_base/event.js
index 522202d7b..40fb87d88 100644
--- a/lib/dojo/_base/event.js
+++ b/lib/dojo/_base/event.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/event",["./kernel","../on","../has","../dom-geometry"],function(_1,on,_2,_3){if(on._fixEvent){var _4=on._fixEvent;on._fixEvent=function(_5,se){_5=_4(_5,se);if(_5){_3.normalizeEvent(_5);}return _5;};}_1.fixEvent=function(_6,_7){if(on._fixEvent){return on._fixEvent(_6,_7);}return _6;};_1.stopEvent=function(_8){if(_2("dom-addeventlistener")||(_8&&_8.preventDefault)){_8.preventDefault();_8.stopPropagation();}else{_8=_8||window.event;_8.cancelBubble=true;on._preventDefault.call(_8);}};return {fix:_1.fixEvent,stop:_1.stopEvent};}); \ No newline at end of file
+define("dojo/_base/event",["./kernel","../on","../has","../dom-geometry"],function(_1,on,_2,_3){if(on._fixEvent){var _4=on._fixEvent;on._fixEvent=function(_5,se){_5=_4(_5,se);if(_5){_3.normalizeEvent(_5);}return _5;};}var _6={fix:function(_7,_8){if(on._fixEvent){return on._fixEvent(_7,_8);}return _7;},stop:function(_9){if(_2("dom-addeventlistener")||(_9&&_9.preventDefault)){_9.preventDefault();_9.stopPropagation();}else{_9=_9||window.event;_9.cancelBubble=true;on._preventDefault.call(_9);}}};if(1){_1.fixEvent=_6.fix;_1.stopEvent=_6.stop;}return _6;}); \ No newline at end of file
diff --git a/lib/dojo/_base/fx.js b/lib/dojo/_base/fx.js
index 0ac96bc69..5e88baa8d 100644
--- a/lib/dojo/_base/fx.js
+++ b/lib/dojo/_base/fx.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/fx",["./kernel","./lang","../Evented","./Color","./connect","./sniff","../dom","../dom-style"],function(_1,_2,_3,_4,_5,_6,_7,_8){var _9=_2.mixin;_1._Line=function(_a,_b){this.start=_a;this.end=_b;};_1._Line.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};_1.Animation=function(_c){_9(this,_c);if(_2.isArray(this.curve)){this.curve=new _1._Line(this.curve[0],this.curve[1]);}};_1.Animation.prototype=new _3();_1._Animation=_1.Animation;_2.extend(_1.Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _d=this._percent,_e=this.easing;return _e?_e(_d):_d;},_fire:function(_f,_10){var a=_10||[];if(this[_f]){if(_1.config.debugAtAllCosts){this[_f].apply(this,a);}else{try{this[_f].apply(this,a);}catch(e){console.error("exception in animation handler for:",_f);console.error(e);}}}return this;},play:function(_11,_12){var _13=this;if(_13._delayTimer){_13._clearTimer();}if(_12){_13._stopTimer();_13._active=_13._paused=false;_13._percent=0;}else{if(_13._active&&!_13._paused){return _13;}}_13._fire("beforeBegin",[_13.node]);var de=_11||_13.delay,_14=_2.hitch(_13,"_play",_12);if(de>0){_13._delayTimer=setTimeout(_14,de);return _13;}_14();return _13;},_play:function(_15){var _16=this;if(_16._delayTimer){_16._clearTimer();}_16._startTime=new Date().valueOf();if(_16._paused){_16._startTime-=_16.duration*_16._percent;}_16._active=true;_16._paused=false;var _17=_16.curve.getValue(_16._getStep());if(!_16._percent){if(!_16._startRepeatCount){_16._startRepeatCount=_16.repeat;}_16._fire("onBegin",[_17]);}_16._fire("onPlay",[_17]);_16._cycle();return _16;},pause:function(){var _18=this;if(_18._delayTimer){_18._clearTimer();}_18._stopTimer();if(!_18._active){return _18;}_18._paused=true;_18._fire("onPause",[_18.curve.getValue(_18._getStep())]);return _18;},gotoPercent:function(_19,_1a){var _1b=this;_1b._stopTimer();_1b._active=_1b._paused=true;_1b._percent=_19;if(_1a){_1b.play();}return _1b;},stop:function(_1c){var _1d=this;if(_1d._delayTimer){_1d._clearTimer();}if(!_1d._timer){return _1d;}_1d._stopTimer();if(_1c){_1d._percent=1;}_1d._fire("onStop",[_1d.curve.getValue(_1d._getStep())]);_1d._active=_1d._paused=false;return _1d;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _1e=this;if(_1e._active){var _1f=new Date().valueOf();var _20=(_1f-_1e._startTime)/(_1e.duration);if(_20>=1){_20=1;}_1e._percent=_20;if(_1e.easing){_20=_1e.easing(_20);}_1e._fire("onAnimate",[_1e.curve.getValue(_20)]);if(_1e._percent<1){_1e._startTimer();}else{_1e._active=false;if(_1e.repeat>0){_1e.repeat--;_1e.play(null,true);}else{if(_1e.repeat==-1){_1e.play(null,true);}else{if(_1e._startRepeatCount){_1e.repeat=_1e._startRepeatCount;_1e._startRepeatCount=0;}}}_1e._percent=0;_1e._fire("onEnd",[_1e.node]);!_1e.repeat&&_1e._stopTimer();}}return _1e;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_21=null,_22={run:function(){}};_2.extend(_1.Animation,{_startTimer:function(){if(!this._timer){this._timer=_5.connect(_22,"run",this,"_cycle");ctr++;}if(!_21){_21=setInterval(_2.hitch(_22,"run"),this.rate);}},_stopTimer:function(){if(this._timer){_5.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_21);_21=null;ctr=0;}}});var _23=_6("ie")?function(_24){var ns=_24.style;if(!ns.width.length&&_8.get(_24,"width")=="auto"){ns.width="auto";}}:function(){};_1._fade=function(_25){_25.node=_7.byId(_25.node);var _26=_9({properties:{}},_25),_27=(_26.properties.opacity={});_27.start=!("start" in _26)?function(){return +_8.get(_26.node,"opacity")||0;}:_26.start;_27.end=_26.end;var _28=_1.animateProperty(_26);_5.connect(_28,"beforeBegin",_2.partial(_23,_26.node));return _28;};_1.fadeIn=function(_29){return _1._fade(_9({end:1},_29));};_1.fadeOut=function(_2a){return _1._fade(_9({end:0},_2a));};_1._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _2b=function(_2c){this._properties=_2c;for(var p in _2c){var _2d=_2c[p];if(_2d.start instanceof _4){_2d.tempColor=new _4();}}};_2b.prototype.getValue=function(r){var ret={};for(var p in this._properties){var _2e=this._properties[p],_2f=_2e.start;if(_2f instanceof _4){ret[p]=_4.blendColors(_2f,_2e.end,r,_2e.tempColor).toCss();}else{if(!_2.isArray(_2f)){ret[p]=((_2e.end-_2f)*r)+_2f+(p!="opacity"?_2e.units||"px":0);}}}return ret;};_1.animateProperty=function(_30){var n=_30.node=_7.byId(_30.node);if(!_30.easing){_30.easing=_1._defaultEasing;}var _31=new _1.Animation(_30);_5.connect(_31,"beforeBegin",_31,function(){var pm={};for(var p in this.properties){if(p=="width"||p=="height"){this.node.display="block";}var _32=this.properties[p];if(_2.isFunction(_32)){_32=_32(n);}_32=pm[p]=_9({},(_2.isObject(_32)?_32:{end:_32}));if(_2.isFunction(_32.start)){_32.start=_32.start(n);}if(_2.isFunction(_32.end)){_32.end=_32.end(n);}var _33=(p.toLowerCase().indexOf("color")>=0);function _34(_35,p){var v={height:_35.offsetHeight,width:_35.offsetWidth}[p];if(v!==undefined){return v;}v=_8.get(_35,p);return (p=="opacity")?+v:(_33?v:parseFloat(v));};if(!("end" in _32)){_32.end=_34(n,p);}else{if(!("start" in _32)){_32.start=_34(n,p);}}if(_33){_32.start=new _4(_32.start);_32.end=new _4(_32.end);}else{_32.start=(p=="opacity")?+_32.start:parseFloat(_32.start);}}this.curve=new _2b(pm);});_5.connect(_31,"onAnimate",_2.hitch(_8,"set",_31.node));return _31;};_1.anim=function(_36,_37,_38,_39,_3a,_3b){return _1.animateProperty({node:_36,duration:_38||_1.Animation.prototype.duration,properties:_37,easing:_39,onEnd:_3a}).play(_3b||0);};return {_Line:_1._Line,Animation:_1.Animation,_fade:_1._fade,fadeIn:_1.fadeIn,fadeOut:_1.fadeOut,_defaultEasing:_1._defaultEasing,animateProperty:_1.animateProperty,anim:_1.anim};}); \ No newline at end of file
+define("dojo/_base/fx",["./kernel","./config","./lang","../Evented","./Color","./connect","./sniff","../dom","../dom-style"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){var _a=_3.mixin;var _b={};var _c=_b._Line=function(_d,_e){this.start=_d;this.end=_e;};_c.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};var _f=_b.Animation=function(_10){_a(this,_10);if(_3.isArray(this.curve)){this.curve=new _c(this.curve[0],this.curve[1]);}};_f.prototype=new _4();_3.extend(_f,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _11=this._percent,_12=this.easing;return _12?_12(_11):_11;},_fire:function(evt,_13){var a=_13||[];if(this[evt]){if(_2.debugAtAllCosts){this[evt].apply(this,a);}else{try{this[evt].apply(this,a);}catch(e){console.error("exception in animation handler for:",evt);console.error(e);}}}return this;},play:function(_14,_15){var _16=this;if(_16._delayTimer){_16._clearTimer();}if(_15){_16._stopTimer();_16._active=_16._paused=false;_16._percent=0;}else{if(_16._active&&!_16._paused){return _16;}}_16._fire("beforeBegin",[_16.node]);var de=_14||_16.delay,_17=_3.hitch(_16,"_play",_15);if(de>0){_16._delayTimer=setTimeout(_17,de);return _16;}_17();return _16;},_play:function(_18){var _19=this;if(_19._delayTimer){_19._clearTimer();}_19._startTime=new Date().valueOf();if(_19._paused){_19._startTime-=_19.duration*_19._percent;}_19._active=true;_19._paused=false;var _1a=_19.curve.getValue(_19._getStep());if(!_19._percent){if(!_19._startRepeatCount){_19._startRepeatCount=_19.repeat;}_19._fire("onBegin",[_1a]);}_19._fire("onPlay",[_1a]);_19._cycle();return _19;},pause:function(){var _1b=this;if(_1b._delayTimer){_1b._clearTimer();}_1b._stopTimer();if(!_1b._active){return _1b;}_1b._paused=true;_1b._fire("onPause",[_1b.curve.getValue(_1b._getStep())]);return _1b;},gotoPercent:function(_1c,_1d){var _1e=this;_1e._stopTimer();_1e._active=_1e._paused=true;_1e._percent=_1c;if(_1d){_1e.play();}return _1e;},stop:function(_1f){var _20=this;if(_20._delayTimer){_20._clearTimer();}if(!_20._timer){return _20;}_20._stopTimer();if(_1f){_20._percent=1;}_20._fire("onStop",[_20.curve.getValue(_20._getStep())]);_20._active=_20._paused=false;return _20;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _21=this;if(_21._active){var _22=new Date().valueOf();var _23=_21.duration===0?1:(_22-_21._startTime)/(_21.duration);if(_23>=1){_23=1;}_21._percent=_23;if(_21.easing){_23=_21.easing(_23);}_21._fire("onAnimate",[_21.curve.getValue(_23)]);if(_21._percent<1){_21._startTimer();}else{_21._active=false;if(_21.repeat>0){_21.repeat--;_21.play(null,true);}else{if(_21.repeat==-1){_21.play(null,true);}else{if(_21._startRepeatCount){_21.repeat=_21._startRepeatCount;_21._startRepeatCount=0;}}}_21._percent=0;_21._fire("onEnd",[_21.node]);!_21.repeat&&_21._stopTimer();}}return _21;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_24=null,_25={run:function(){}};_3.extend(_f,{_startTimer:function(){if(!this._timer){this._timer=_6.connect(_25,"run",this,"_cycle");ctr++;}if(!_24){_24=setInterval(_3.hitch(_25,"run"),this.rate);}},_stopTimer:function(){if(this._timer){_6.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_24);_24=null;ctr=0;}}});var _26=_7("ie")?function(_27){var ns=_27.style;if(!ns.width.length&&_9.get(_27,"width")=="auto"){ns.width="auto";}}:function(){};_b._fade=function(_28){_28.node=_8.byId(_28.node);var _29=_a({properties:{}},_28),_2a=(_29.properties.opacity={});_2a.start=!("start" in _29)?function(){return +_9.get(_29.node,"opacity")||0;}:_29.start;_2a.end=_29.end;var _2b=_b.animateProperty(_29);_6.connect(_2b,"beforeBegin",_3.partial(_26,_29.node));return _2b;};_b.fadeIn=function(_2c){return _b._fade(_a({end:1},_2c));};_b.fadeOut=function(_2d){return _b._fade(_a({end:0},_2d));};_b._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _2e=function(_2f){this._properties=_2f;for(var p in _2f){var _30=_2f[p];if(_30.start instanceof _5){_30.tempColor=new _5();}}};_2e.prototype.getValue=function(r){var ret={};for(var p in this._properties){var _31=this._properties[p],_32=_31.start;if(_32 instanceof _5){ret[p]=_5.blendColors(_32,_31.end,r,_31.tempColor).toCss();}else{if(!_3.isArray(_32)){ret[p]=((_31.end-_32)*r)+_32+(p!="opacity"?_31.units||"px":0);}}}return ret;};_b.animateProperty=function(_33){var n=_33.node=_8.byId(_33.node);if(!_33.easing){_33.easing=_1._defaultEasing;}var _34=new _f(_33);_6.connect(_34,"beforeBegin",_34,function(){var pm={};for(var p in this.properties){if(p=="width"||p=="height"){this.node.display="block";}var _35=this.properties[p];if(_3.isFunction(_35)){_35=_35(n);}_35=pm[p]=_a({},(_3.isObject(_35)?_35:{end:_35}));if(_3.isFunction(_35.start)){_35.start=_35.start(n);}if(_3.isFunction(_35.end)){_35.end=_35.end(n);}var _36=(p.toLowerCase().indexOf("color")>=0);function _37(_38,p){var v={height:_38.offsetHeight,width:_38.offsetWidth}[p];if(v!==undefined){return v;}v=_9.get(_38,p);return (p=="opacity")?+v:(_36?v:parseFloat(v));};if(!("end" in _35)){_35.end=_37(n,p);}else{if(!("start" in _35)){_35.start=_37(n,p);}}if(_36){_35.start=new _5(_35.start);_35.end=new _5(_35.end);}else{_35.start=(p=="opacity")?+_35.start:parseFloat(_35.start);}}this.curve=new _2e(pm);});_6.connect(_34,"onAnimate",_3.hitch(_9,"set",_34.node));return _34;};_b.anim=function(_39,_3a,_3b,_3c,_3d,_3e){return _b.animateProperty({node:_39,duration:_3b||_f.prototype.duration,properties:_3a,easing:_3c,onEnd:_3d}).play(_3e||0);};if(1){_a(_1,_b);_1._Animation=_f;}return _b;}); \ No newline at end of file
diff --git a/lib/dojo/_base/html.js b/lib/dojo/_base/html.js
index 89f6a5192..32f4d5b0d 100644
--- a/lib/dojo/_base/html.js
+++ b/lib/dojo/_base/html.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/_base/json.js b/lib/dojo/_base/json.js
index b644339f7..1caf6a1a1 100644
--- a/lib/dojo/_base/json.js
+++ b/lib/dojo/_base/json.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/_base/kernel.js b/lib/dojo/_base/kernel.js
index f574dadd2..412775cad 100644
--- a/lib/dojo/_base/kernel.js
+++ b/lib/dojo/_base/kernel.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/kernel",["../has","./config","require","module"],function(_1,_2,_3,_4){var i,p,_5={},_6={},_7={config:_2,global:this,dijit:_5,dojox:_6};var _8={dojo:["dojo",_7],dijit:["dijit",_5],dojox:["dojox",_6]},_9=(_3.packs&&_3.packs[_4.id.match(/[^\/]+/)[0]].packageMap)||{},_a;for(p in _9){if(_8[p]){_8[p][0]=_9[p];}else{_8[p]=[_9[p],{}];}}for(p in _8){_a=_8[p];_a[1]._scopeName=_a[0];if(!_2.noGlobals){this[_a[0]]=_a[1];}}_7.scopeMap=_8;_7.baseUrl=_7.config.baseUrl=_3.baseUrl;_7.isAsync=!1||_3.async;_7.locale=_2.locale;var _b="$Rev: 28982 $".match(/\d+/);_7.version={major:1,minor:7,patch:3,flag:"",revision:_b?+_b[0]:NaN,toString:function(){var v=_7.version;return v.major+"."+v.minor+"."+v.patch+v.flag+" ("+v.revision+")";}};true||_1.add("extend-dojo",1);_7.eval=function(_c){};(Function("d","d.eval = function(){return d.global.eval ? d.global.eval(arguments[0]) : eval(arguments[0]);}"))(_7);if(0){_7.exit=function(_d){quit(_d);};}else{_7.exit=function(){};}true||_1.add("dojo-guarantee-console",1);if(1){typeof console!="undefined"||(console={});var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var tn;i=0;while((tn=cn[i++])){if(!console[tn]){(function(){var _e=tn+"";console[_e]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(_e+":");console["log"](a.join(" "));}:function(){};console[_e]._fake=true;})();}}}_1.add("dojo-debug-messages",!!_2.isDebug);if(_1("dojo-debug-messages")){_7.deprecated=function(_f,_10,_11){var _12="DEPRECATED: "+_f;if(_10){_12+=" "+_10;}if(_11){_12+=" -- will be removed in version: "+_11;}console.warn(_12);};_7.experimental=function(_13,_14){var _15="EXPERIMENTAL: "+_13+" -- APIs subject to change without notice.";if(_14){_15+=" "+_14;}console.warn(_15);};}else{_7.deprecated=_7.experimental=function(){};}true||_1.add("dojo-modulePaths",1);if(1){if(_2.modulePaths){_7.deprecated("dojo.modulePaths","use paths configuration");var _16={};for(p in _2.modulePaths){_16[p.replace(/\./g,"/")]=_2.modulePaths[p];}_3({paths:_16});}}true||_1.add("dojo-moduleUrl",1);if(1){_7.moduleUrl=function(_17,url){_7.deprecated("dojo.moduleUrl()","use require.toUrl","2.0");var _18=null;if(_17){_18=_3.toUrl(_17.replace(/\./g,"/")+(url?("/"+url):"")+"/*.*").replace(/\/\*\.\*/,"")+(url?"":"/");}return _18;};}_7._hasResource={};return _7;}); \ No newline at end of file
+define("dojo/_base/kernel",["../has","./config","require","module"],function(_1,_2,_3,_4){var i,p,_5={},_6={},_7={config:_2,global:this,dijit:_5,dojox:_6};var _8={dojo:["dojo",_7],dijit:["dijit",_5],dojox:["dojox",_6]},_9=(_3.map&&_3.map[_4.id.match(/[^\/]+/)[0]]),_a;for(p in _9){if(_8[p]){_8[p][0]=_9[p];}else{_8[p]=[_9[p],{}];}}for(p in _8){_a=_8[p];_a[1]._scopeName=_a[0];if(!_2.noGlobals){this[_a[0]]=_a[1];}}_7.scopeMap=_8;_7.baseUrl=_7.config.baseUrl=_3.baseUrl;_7.isAsync=!1||_3.async;_7.locale=_2.locale;var _b="$Rev: 30226 $".match(/\d+/);_7.version={major:1,minor:8,patch:3,flag:"",revision:_b?+_b[0]:NaN,toString:function(){var v=_7.version;return v.major+"."+v.minor+"."+v.patch+v.flag+" ("+v.revision+")";}};1||_1.add("extend-dojo",1);(Function("d","d.eval = function(){return d.global.eval ? d.global.eval(arguments[0]) : eval(arguments[0]);}"))(_7);if(0){_7.exit=function(_c){quit(_c);};}else{_7.exit=function(){};}1||_1.add("dojo-guarantee-console",1);if(1){typeof console!="undefined"||(console={});var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var tn;i=0;while((tn=cn[i++])){if(!console[tn]){(function(){var _d=tn+"";console[_d]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(_d+":");console["log"](a.join(" "));}:function(){};console[_d]._fake=true;})();}}}_1.add("dojo-debug-messages",!!_2.isDebug);_7.deprecated=_7.experimental=function(){};if(_1("dojo-debug-messages")){_7.deprecated=function(_e,_f,_10){var _11="DEPRECATED: "+_e;if(_f){_11+=" "+_f;}if(_10){_11+=" -- will be removed in version: "+_10;}console.warn(_11);};_7.experimental=function(_12,_13){var _14="EXPERIMENTAL: "+_12+" -- APIs subject to change without notice.";if(_13){_14+=" "+_13;}console.warn(_14);};}1||_1.add("dojo-modulePaths",1);if(1){if(_2.modulePaths){_7.deprecated("dojo.modulePaths","use paths configuration");var _15={};for(p in _2.modulePaths){_15[p.replace(/\./g,"/")]=_2.modulePaths[p];}_3({paths:_15});}}1||_1.add("dojo-moduleUrl",1);if(1){_7.moduleUrl=function(_16,url){_7.deprecated("dojo.moduleUrl()","use require.toUrl","2.0");var _17=null;if(_16){_17=_3.toUrl(_16.replace(/\./g,"/")+(url?("/"+url):"")+"/*.*").replace(/\/\*\.\*/,"")+(url?"":"/");}return _17;};}_7._hasResource={};return _7;}); \ No newline at end of file
diff --git a/lib/dojo/_base/lang.js b/lib/dojo/_base/lang.js
index bc88c7cde..2439bd0ba 100644
--- a/lib/dojo/_base/lang.js
+++ b/lib/dojo/_base/lang.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/lang",["./kernel","../has","./sniff"],function(_1,_2){_2.add("bug-for-in-skips-shadowed",function(){for(var i in {toString:1}){return 0;}return 1;});var _3=_2("bug-for-in-skips-shadowed")?"hasOwnProperty.valueOf.isPrototypeOf.propertyIsEnumerable.toLocaleString.toString.constructor".split("."):[],_4=_3.length,_5=function(_6,_7,_8){var _9,s,i,_a={};for(_9 in _7){s=_7[_9];if(!(_9 in _6)||(_6[_9]!==s&&(!(_9 in _a)||_a[_9]!==s))){_6[_9]=_8?_8(s):s;}}if(_2("bug-for-in-skips-shadowed")){if(_7){for(i=0;i<_4;++i){_9=_3[i];s=_7[_9];if(!(_9 in _6)||(_6[_9]!==s&&(!(_9 in _a)||_a[_9]!==s))){_6[_9]=_8?_8(s):s;}}}}return _6;},_b=function(_c,_d){if(!_c){_c={};}for(var i=1,l=arguments.length;i<l;i++){_e._mixin(_c,arguments[i]);}return _c;},_f=function(_10,_11,_12){var p,i=0,_13=_1.global;if(!_12){if(!_10.length){return _13;}else{p=_10[i++];try{_12=_1.scopeMap[p]&&_1.scopeMap[p][1];}catch(e){}_12=_12||(p in _13?_13[p]:(_11?_13[p]={}:undefined));}}while(_12&&(p=_10[i++])){_12=(p in _12?_12[p]:(_11?_12[p]={}:undefined));}return _12;},_14=function(_15,_16,_17){var _18=_15.split("."),p=_18.pop(),obj=_f(_18,true,_17);return obj&&p?(obj[p]=_16):undefined;},_19=function(_1a,_1b,_1c){return _f(_1a.split("."),_1b,_1c);},_1d=function(_1e,obj){return _e.getObject(_1e,false,obj)!==undefined;},_1f=Object.prototype.toString,_20=function(it){return (typeof it=="string"||it instanceof String);},_21=function(it){return it&&(it instanceof Array||typeof it=="array");},_22=function(it){return _1f.call(it)==="[object Function]";},_23=function(it){return it!==undefined&&(it===null||typeof it=="object"||_e.isArray(it)||_e.isFunction(it));},_24=function(it){return it&&it!==undefined&&!_e.isString(it)&&!_e.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(_e.isArray(it)||isFinite(it.length));},_25=function(it){return it&&!_e.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));},_26=function(_27,_28){for(var i=1,l=arguments.length;i<l;i++){_e._mixin(_27.prototype,arguments[i]);}return _27;},_29=function(_2a,_2b){var pre=_2c(arguments,2);var _2d=_e.isString(_2b);return function(){var _2e=_2c(arguments);var f=_2d?(_2a||_1.global)[_2b]:_2b;return f&&f.apply(_2a||this,pre.concat(_2e));};},_2f=function(_30,_31){if(arguments.length>2){return _e._hitchArgs.apply(_1,arguments);}if(!_31){_31=_30;_30=null;}if(_e.isString(_31)){_30=_30||_1.global;if(!_30[_31]){throw (["dojo.hitch: scope[\"",_31,"\"] is null (scope=\"",_30,"\")"].join(""));}return function(){return _30[_31].apply(_30,arguments||[]);};}return !_30?_31:function(){return _31.apply(_30,arguments||[]);};},_32=(function(){function TMP(){};return function(obj,_33){TMP.prototype=obj;var tmp=new TMP();TMP.prototype=null;if(_33){_e._mixin(tmp,_33);}return tmp;};})(),_34=function(obj,_35,_36){return (_36||[]).concat(Array.prototype.slice.call(obj,_35||0));},_2c=_2("ie")?(function(){function _37(obj,_38,_39){var arr=_39||[];for(var x=_38||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};return function(obj){return ((obj.item)?_37:_34).apply(this,arguments);};})():_34,_3a=function(_3b){var arr=[null];return _e.hitch.apply(_1,arr.concat(_e._toArray(arguments)));},_3c=function(src){if(!src||typeof src!="object"||_e.isFunction(src)){return src;}if(src.nodeType&&"cloneNode" in src){return src.cloneNode(true);}if(src instanceof Date){return new Date(src.getTime());}if(src instanceof RegExp){return new RegExp(src);}var r,i,l;if(_e.isArray(src)){r=[];for(i=0,l=src.length;i<l;++i){if(i in src){r.push(_3c(src[i]));}}}else{r=src.constructor?new src.constructor():{};}return _e._mixin(r,src,_3c);},_3d=String.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");},_3e=/\{([^\}]+)\}/g,_3f=function(_40,map,_41){return _40.replace(_41||_3e,_e.isFunction(map)?map:function(_42,k){return _19(k,false,map);});},_e={_extraNames:_3,_mixin:_5,mixin:_b,setObject:_14,getObject:_19,exists:_1d,isString:_20,isArray:_21,isFunction:_22,isObject:_23,isArrayLike:_24,isAlien:_25,extend:_26,_hitchArgs:_29,hitch:_2f,delegate:_32,_toArray:_2c,partial:_3a,clone:_3c,trim:_3d,replace:_3f};1&&_b(_1,_e);return _e;}); \ No newline at end of file
+define("dojo/_base/lang",["./kernel","../has","../sniff"],function(_1,_2){_2.add("bug-for-in-skips-shadowed",function(){for(var i in {toString:1}){return 0;}return 1;});var _3=_2("bug-for-in-skips-shadowed")?"hasOwnProperty.valueOf.isPrototypeOf.propertyIsEnumerable.toLocaleString.toString.constructor".split("."):[],_4=_3.length,_5=function(_6,_7,_8){var p,i=0,_9=_1.global;if(!_8){if(!_6.length){return _9;}else{p=_6[i++];try{_8=_1.scopeMap[p]&&_1.scopeMap[p][1];}catch(e){}_8=_8||(p in _9?_9[p]:(_7?_9[p]={}:undefined));}}while(_8&&(p=_6[i++])){_8=(p in _8?_8[p]:(_7?_8[p]={}:undefined));}return _8;},_a=Object.prototype.toString,_b=function(_c,_d,_e){return (_e||[]).concat(Array.prototype.slice.call(_c,_d||0));},_f=/\{([^\}]+)\}/g;var _10={_extraNames:_3,_mixin:function(_11,_12,_13){var _14,s,i,_15={};for(_14 in _12){s=_12[_14];if(!(_14 in _11)||(_11[_14]!==s&&(!(_14 in _15)||_15[_14]!==s))){_11[_14]=_13?_13(s):s;}}if(_2("bug-for-in-skips-shadowed")){if(_12){for(i=0;i<_4;++i){_14=_3[i];s=_12[_14];if(!(_14 in _11)||(_11[_14]!==s&&(!(_14 in _15)||_15[_14]!==s))){_11[_14]=_13?_13(s):s;}}}}return _11;},mixin:function(_16,_17){if(!_16){_16={};}for(var i=1,l=arguments.length;i<l;i++){_10._mixin(_16,arguments[i]);}return _16;},setObject:function(_18,_19,_1a){var _1b=_18.split("."),p=_1b.pop(),obj=_5(_1b,true,_1a);return obj&&p?(obj[p]=_19):undefined;},getObject:function(_1c,_1d,_1e){return _5(_1c.split("."),_1d,_1e);},exists:function(_1f,obj){return _10.getObject(_1f,false,obj)!==undefined;},isString:function(it){return (typeof it=="string"||it instanceof String);},isArray:function(it){return it&&(it instanceof Array||typeof it=="array");},isFunction:function(it){return _a.call(it)==="[object Function]";},isObject:function(it){return it!==undefined&&(it===null||typeof it=="object"||_10.isArray(it)||_10.isFunction(it));},isArrayLike:function(it){return it&&it!==undefined&&!_10.isString(it)&&!_10.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(_10.isArray(it)||isFinite(it.length));},isAlien:function(it){return it&&!_10.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));},extend:function(_20,_21){for(var i=1,l=arguments.length;i<l;i++){_10._mixin(_20.prototype,arguments[i]);}return _20;},_hitchArgs:function(_22,_23){var pre=_10._toArray(arguments,2);var _24=_10.isString(_23);return function(){var _25=_10._toArray(arguments);var f=_24?(_22||_1.global)[_23]:_23;return f&&f.apply(_22||this,pre.concat(_25));};},hitch:function(_26,_27){if(arguments.length>2){return _10._hitchArgs.apply(_1,arguments);}if(!_27){_27=_26;_26=null;}if(_10.isString(_27)){_26=_26||_1.global;if(!_26[_27]){throw (["lang.hitch: scope[\"",_27,"\"] is null (scope=\"",_26,"\")"].join(""));}return function(){return _26[_27].apply(_26,arguments||[]);};}return !_26?_27:function(){return _27.apply(_26,arguments||[]);};},delegate:(function(){function TMP(){};return function(obj,_28){TMP.prototype=obj;var tmp=new TMP();TMP.prototype=null;if(_28){_10._mixin(tmp,_28);}return tmp;};})(),_toArray:_2("ie")?(function(){function _29(obj,_2a,_2b){var arr=_2b||[];for(var x=_2a||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};return function(obj){return ((obj.item)?_29:_b).apply(this,arguments);};})():_b,partial:function(_2c){var arr=[null];return _10.hitch.apply(_1,arr.concat(_10._toArray(arguments)));},clone:function(src){if(!src||typeof src!="object"||_10.isFunction(src)){return src;}if(src.nodeType&&"cloneNode" in src){return src.cloneNode(true);}if(src instanceof Date){return new Date(src.getTime());}if(src instanceof RegExp){return new RegExp(src);}var r,i,l;if(_10.isArray(src)){r=[];for(i=0,l=src.length;i<l;++i){if(i in src){r.push(_10.clone(src[i]));}}}else{r=src.constructor?new src.constructor():{};}return _10._mixin(r,src,_10.clone);},trim:String.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");},replace:function(_2d,map,_2e){return _2d.replace(_2e||_f,_10.isFunction(map)?map:function(_2f,k){return _10.getObject(k,false,map);});}};1&&_10.mixin(_1,_10);return _10;}); \ No newline at end of file
diff --git a/lib/dojo/_base/loader.js b/lib/dojo/_base/loader.js
index fd9b8f3df..8dfd16dec 100644
--- a/lib/dojo/_base/loader.js
+++ b/lib/dojo/_base/loader.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/loader",["./kernel","../has","require","module","./json","./lang","./array"],function(_1,_2,_3,_4,_5,_6,_7){if(!1){console.error("cannot load the Dojo v1.x loader with a foreign loader");return 0;}var _8=function(id){return {src:_4.id,id:id};},_9=function(_a){return _a.replace(/\./g,"/");},_b=/\/\/>>built/,_c=[],_d=[],_e=function(_f,_10,_11){_c.push(_11);_7.forEach(_f.split(","),function(mid){var _12=_13(mid,_10.module);_d.push(_12);_14(_12);});_15();},_16,_17=function(m){_16[m.mid]=1;for(var t,_18,_19=m.deps||[],i=0;i<_19.length;i++){_18=_19[i];if(!(t=_16[_18.mid])){if(t===0||!_17(_18)){_16[m.mid]=0;return false;}}}return true;},_15=function(){var _1a,mid;_16={};for(mid in _1b){_1a=_1b[mid];if(_1a.executed||_1a.noReqPluginCheck){_16[mid]=1;}else{if(_1a.noReqPluginCheck!==0){_1a.noReqPluginCheck=/loadInit\!/.test(mid)||/require\!/.test(mid)?1:0;}if(_1a.noReqPluginCheck){_16[mid]=1;}else{if(_1a.injected!==_1c){_16[mid]=0;}}}}for(var t,i=0,end=_d.length;i<end;i++){_1a=_d[i];if(!(t=_16[_1a.mid])){if(t===0||!_17(_1a)){return;}}}_1d.holdIdle();var _1e=_c;_c=[];_7.forEach(_1e,function(cb){cb(1);});_1d.releaseIdle();},_1f=function(mid,_20,_21){_20([mid],function(_22){_20(_22.names,function(){for(var _23="",_24=[],i=0;i<arguments.length;i++){_23+="var "+_22.names[i]+"= arguments["+i+"]; ";_24.push(arguments[i]);}eval(_23);var _25=_20.module,_26=[],_27={},_28=[],p,_29={provide:function(_2a){_2a=_9(_2a);var _2b=_13(_2a,_25);if(_2b!==_25){_53(_2b);}},require:function(_2c,_2d){_2c=_9(_2c);_2d&&(_13(_2c,_25).result=_4e);_28.push(_2c);},requireLocalization:function(_2e,_2f,_30){_26.length||(_26=["dojo/i18n"]);_30=(_30||_1.locale).toLowerCase();_2e=_9(_2e)+"/nls/"+(/root/i.test(_30)?"":_30+"/")+_9(_2f);if(_13(_2e,_25).isXd){_26.push("dojo/i18n!"+_2e);}},loadInit:function(f){f();}};try{for(p in _29){_27[p]=_1[p];_1[p]=_29[p];}_22.def.apply(null,_24);}catch(e){_54("error",[_8("failedDojoLoadInit"),e]);}finally{for(p in _29){_1[p]=_27[p];}}_28.length&&_26.push("dojo/require!"+_28.join(","));_c.push(_21);_7.forEach(_28,function(mid){var _31=_13(mid,_20.module);_d.push(_31);_14(_31);});_15();});});},_32=function(_33,_34,_35){var _36=/\(|\)/g,_37=1,_38;_36.lastIndex=_34;while((_38=_36.exec(_33))){if(_38[0]==")"){_37-=1;}else{_37+=1;}if(_37==0){break;}}if(_37!=0){throw "unmatched paren around character "+_36.lastIndex+" in: "+_33;}return [_1.trim(_33.substring(_35,_36.lastIndex))+";\n",_36.lastIndex];},_39=/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,_3a=/(^|\s)dojo\.(loadInit|require|provide|requireLocalization|requireIf|requireAfterIf|platformRequire)\s*\(/mg,_3b=/(^|\s)(require|define)\s*\(/m,_3c=function(_3d,_3e){var _3f,_40,_41,_42,_43=[],_44=[],_45=[];_3e=_3e||_3d.replace(_39,function(_46){_3a.lastIndex=_3b.lastIndex=0;return (_3a.test(_46)||_3b.test(_46))?"":_46;});while((_3f=_3a.exec(_3e))){_40=_3a.lastIndex;_41=_40-_3f[0].length;_42=_32(_3e,_40,_41);if(_3f[2]=="loadInit"){_43.push(_42[0]);}else{_44.push(_42[0]);}_3a.lastIndex=_42[1];}_45=_43.concat(_44);if(_45.length||!_3b.test(_3e)){return [_3d.replace(/(^|\s)dojo\.loadInit\s*\(/g,"\n0 && dojo.loadInit("),_45.join(""),_45];}else{return 0;}},_47=function(_48,_49){var _4a,id,_4b=[],_4c=[];if(_b.test(_49)||!(_4a=_3c(_49))){return 0;}id=_48.mid+"-*loadInit";for(var p in _13("dojo",_48).result.scopeMap){_4b.push(p);_4c.push("\""+p+"\"");}return "// xdomain rewrite of "+_48.path+"\n"+"define('"+id+"',{\n"+"\tnames:"+_1.toJson(_4b)+",\n"+"\tdef:function("+_4b.join(",")+"){"+_4a[1]+"}"+"});\n\n"+"define("+_1.toJson(_4b.concat(["dojo/loadInit!"+id]))+", function("+_4b.join(",")+"){\n"+_4a[0]+"});";},_1d=_3.initSyncLoader(_e,_15,_47),_4d=_1d.sync,xd=_1d.xd,_1c=_1d.arrived,_4e=_1d.nonmodule,_4f=_1d.executing,_50=_1d.executed,_51=_1d.syncExecStack,_1b=_1d.modules,_52=_1d.execQ,_13=_1d.getModule,_14=_1d.injectModule,_53=_1d.setArrived,_54=_1d.signal,_55=_1d.finishExec,_56=_1d.execModule,_57=_1d.getLegacyMode;_1.provide=function(mid){var _58=_51[0],_59=_6.mixin(_13(_9(mid),_3.module),{executed:_4f,result:_6.getObject(mid,true)});_53(_59);if(_58){(_58.provides||(_58.provides=[])).push(function(){_59.result=_6.getObject(mid);delete _59.provides;_59.executed!==_50&&_55(_59);});}return _59.result;};_2.add("config-publishRequireResult",1,0,0);_1.require=function(_5a,_5b){function _5c(mid,_5d){var _5e=_13(_9(mid),_3.module);if(_51.length&&_51[0].finish){_51[0].finish.push(mid);return undefined;}if(_5e.executed){return _5e.result;}_5d&&(_5e.result=_4e);var _5f=_57();_14(_5e);_5f=_57();if(_5e.executed!==_50&&_5e.injected===_1c){_1d.holdIdle();_56(_5e);_1d.releaseIdle();}if(_5e.executed){return _5e.result;}if(_5f==_4d){if(_5e.cjs){_52.unshift(_5e);}else{_51.length&&(_51[0].finish=[mid]);}}else{_52.push(_5e);}return undefined;};var _60=_5c(_5a,_5b);if(_2("config-publishRequireResult")&&!_6.exists(_5a)&&_60!==undefined){_6.setObject(_5a,_60);}return _60;};_1.loadInit=function(f){f();};_1.registerModulePath=function(_61,_62){var _63={};_63[_61.replace(/\./g,"/")]=_62;_3({paths:_63});};_1.platformRequire=function(_64){var _65=(_64.common||[]).concat(_64[_1._name]||_64["default"]||[]),_66;while(_65.length){if(_6.isArray(_66=_65.shift())){_1.require.apply(_1,_66);}else{_1.require(_66);}}};_1.requireIf=_1.requireAfterIf=function(_67,_68,_69){if(_67){_1.require(_68,_69);}};_1.requireLocalization=function(_6a,_6b,_6c){_3(["../i18n"],function(_6d){_6d.getLocalization(_6a,_6b,_6c);});};return {extractLegacyApiApplications:_3c,require:_1d.dojoRequirePlugin,loadInit:_1f};}); \ No newline at end of file
+define("dojo/_base/loader",["./kernel","../has","require","module","./json","./lang","./array"],function(_1,_2,_3,_4,_5,_6,_7){if(!1){console.error("cannot load the Dojo v1.x loader with a foreign loader");return 0;}1||_2.add("dojo-fast-sync-require",1);var _8=function(id){return {src:_4.id,id:id};},_9=function(_a){return _a.replace(/\./g,"/");},_b=/\/\/>>built/,_c=[],_d=[],_e=function(_f,_10,_11){_c.push(_11);_7.forEach(_f.split(","),function(mid){var _12=_13(mid,_10.module);_d.push(_12);_14(_12);});_15();},_15=(1?function(){var _16,mid;for(mid in _17){_16=_17[mid];if(_16.noReqPluginCheck===undefined){_16.noReqPluginCheck=/loadInit\!/.test(mid)||/require\!/.test(mid)?1:0;}if(!_16.executed&&!_16.noReqPluginCheck&&_16.injected==_18){return;}}_19(function(){var _1a=_c;_c=[];_7.forEach(_1a,function(cb){cb(1);});});}:(function(){var _1b,_1c=function(m){_1b[m.mid]=1;for(var t,_1d,_1e=m.deps||[],i=0;i<_1e.length;i++){_1d=_1e[i];if(!(t=_1b[_1d.mid])){if(t===0||!_1c(_1d)){_1b[m.mid]=0;return false;}}}return true;};return function(){var _1f,mid;_1b={};for(mid in _17){_1f=_17[mid];if(_1f.executed||_1f.noReqPluginCheck){_1b[mid]=1;}else{if(_1f.noReqPluginCheck!==0){_1f.noReqPluginCheck=/loadInit\!/.test(mid)||/require\!/.test(mid)?1:0;}if(_1f.noReqPluginCheck){_1b[mid]=1;}else{if(_1f.injected!==_51){_1b[mid]=0;}}}}for(var t,i=0,end=_d.length;i<end;i++){_1f=_d[i];if(!(t=_1b[_1f.mid])){if(t===0||!_1c(_1f)){return;}}}_19(function(){var _20=_c;_c=[];_7.forEach(_20,function(cb){cb(1);});});};})()),_21=function(mid,_22,_23){_22([mid],function(_24){_22(_24.names,function(){for(var _25="",_26=[],i=0;i<arguments.length;i++){_25+="var "+_24.names[i]+"= arguments["+i+"]; ";_26.push(arguments[i]);}eval(_25);var _27=_22.module,_28=[],_29,_2a={provide:function(_2b){_2b=_9(_2b);var _2c=_13(_2b,_27);if(_2c!==_27){_57(_2c);}},require:function(_2d,_2e){_2d=_9(_2d);_2e&&(_13(_2d,_27).result=_52);_28.push(_2d);},requireLocalization:function(_2f,_30,_31){if(!_29){_29=["dojo/i18n"];}_31=(_31||_1.locale).toLowerCase();_2f=_9(_2f)+"/nls/"+(/root/i.test(_31)?"":_31+"/")+_9(_30);if(_13(_2f,_27).isXd){_29.push("dojo/i18n!"+_2f);}},loadInit:function(f){f();}},_32={},p;try{for(p in _2a){_32[p]=_1[p];_1[p]=_2a[p];}_24.def.apply(null,_26);}catch(e){_33("error",[_8("failedDojoLoadInit"),e]);}finally{for(p in _2a){_1[p]=_32[p];}}if(_29){_28=_28.concat(_29);}if(_28.length){_e(_28.join(","),_22,_23);}else{_23();}});});},_34=function(_35,_36,_37){var _38=/\(|\)/g,_39=1,_3a;_38.lastIndex=_36;while((_3a=_38.exec(_35))){if(_3a[0]==")"){_39-=1;}else{_39+=1;}if(_39==0){break;}}if(_39!=0){throw "unmatched paren around character "+_38.lastIndex+" in: "+_35;}return [_1.trim(_35.substring(_37,_38.lastIndex))+";\n",_38.lastIndex];},_3b=/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,_3c=/(^|\s)dojo\.(loadInit|require|provide|requireLocalization|requireIf|requireAfterIf|platformRequire)\s*\(/mg,_3d=/(^|\s)(require|define)\s*\(/m,_3e=function(_3f,_40){var _41,_42,_43,_44,_45=[],_46=[],_47=[];_40=_40||_3f.replace(_3b,function(_48){_3c.lastIndex=_3d.lastIndex=0;return (_3c.test(_48)||_3d.test(_48))?"":_48;});while((_41=_3c.exec(_40))){_42=_3c.lastIndex;_43=_42-_41[0].length;_44=_34(_40,_42,_43);if(_41[2]=="loadInit"){_45.push(_44[0]);}else{_46.push(_44[0]);}_3c.lastIndex=_44[1];}_47=_45.concat(_46);if(_47.length||!_3d.test(_40)){return [_3f.replace(/(^|\s)dojo\.loadInit\s*\(/g,"\n0 && dojo.loadInit("),_47.join(""),_47];}else{return 0;}},_49=function(_4a,_4b){var _4c,id,_4d=[],_4e=[];if(_b.test(_4b)||!(_4c=_3e(_4b))){return 0;}id=_4a.mid+"-*loadInit";for(var p in _13("dojo",_4a).result.scopeMap){_4d.push(p);_4e.push("\""+p+"\"");}return "// xdomain rewrite of "+_4a.mid+"\n"+"define('"+id+"',{\n"+"\tnames:"+_1.toJson(_4d)+",\n"+"\tdef:function("+_4d.join(",")+"){"+_4c[1]+"}"+"});\n\n"+"define("+_1.toJson(_4d.concat(["dojo/loadInit!"+id]))+", function("+_4d.join(",")+"){\n"+_4c[0]+"});";},_4f=_3.initSyncLoader(_e,_15,_49),_50=_4f.sync,_18=_4f.requested,_51=_4f.arrived,_52=_4f.nonmodule,_53=_4f.executing,_54=_4f.executed,_55=_4f.syncExecStack,_17=_4f.modules,_56=_4f.execQ,_13=_4f.getModule,_14=_4f.injectModule,_57=_4f.setArrived,_33=_4f.signal,_58=_4f.finishExec,_59=_4f.execModule,_5a=_4f.getLegacyMode,_19=_4f.guardCheckComplete;_e=_4f.dojoRequirePlugin;_1.provide=function(mid){var _5b=_55[0],_5c=_6.mixin(_13(_9(mid),_3.module),{executed:_53,result:_6.getObject(mid,true)});_57(_5c);if(_5b){(_5b.provides||(_5b.provides=[])).push(function(){_5c.result=_6.getObject(mid);delete _5c.provides;_5c.executed!==_54&&_58(_5c);});}return _5c.result;};_2.add("config-publishRequireResult",1,0,0);_1.require=function(_5d,_5e){function _5f(mid,_60){var _61=_13(_9(mid),_3.module);if(_55.length&&_55[0].finish){_55[0].finish.push(mid);return undefined;}if(_61.executed){return _61.result;}_60&&(_61.result=_52);var _62=_5a();_14(_61);_62=_5a();if(_61.executed!==_54&&_61.injected===_51){_4f.guardCheckComplete(function(){_59(_61);});}if(_61.executed){return _61.result;}if(_62==_50){if(_61.cjs){_56.unshift(_61);}else{_55.length&&(_55[0].finish=[mid]);}}else{_56.push(_61);}return undefined;};var _63=_5f(_5d,_5e);if(_2("config-publishRequireResult")&&!_6.exists(_5d)&&_63!==undefined){_6.setObject(_5d,_63);}return _63;};_1.loadInit=function(f){f();};_1.registerModulePath=function(_64,_65){var _66={};_66[_64.replace(/\./g,"/")]=_65;_3({paths:_66});};_1.platformRequire=function(_67){var _68=(_67.common||[]).concat(_67[_1._name]||_67["default"]||[]),_69;while(_68.length){if(_6.isArray(_69=_68.shift())){_1.require.apply(_1,_69);}else{_1.require(_69);}}};_1.requireIf=_1.requireAfterIf=function(_6a,_6b,_6c){if(_6a){_1.require(_6b,_6c);}};_1.requireLocalization=function(_6d,_6e,_6f){_3(["../i18n"],function(_70){_70.getLocalization(_6d,_6e,_6f);});};return {extractLegacyApiApplications:_3e,require:_e,loadInit:_21};}); \ No newline at end of file
diff --git a/lib/dojo/_base/query.js b/lib/dojo/_base/query.js
index f6ee04bc8..36128a011 100644
--- a/lib/dojo/_base/query.js
+++ b/lib/dojo/_base/query.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/query",["./kernel","../query","./NodeList"],function(_1){return _1.query;}); \ No newline at end of file
+define("dojo/_base/query",["../query","./NodeList"],function(_1){return _1;}); \ No newline at end of file
diff --git a/lib/dojo/_base/sniff.js b/lib/dojo/_base/sniff.js
index 5849b99e9..34eb8180c 100644
--- a/lib/dojo/_base/sniff.js
+++ b/lib/dojo/_base/sniff.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/sniff",["./kernel","../has"],function(_1,_2){if(!1){return _2;}_1.isBrowser=true,_1._name="browser";var _3=_2.add,n=navigator,_4=n.userAgent,_5=n.appVersion,tv=parseFloat(_5),_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12,_13,_14;if(_4.indexOf("AdobeAIR")>=0){_7=1;}_8=(_5.indexOf("Konqueror")>=0)?tv:0;_9=parseFloat(_4.split("WebKit/")[1])||undefined;_a=parseFloat(_4.split("Chrome/")[1])||undefined;_b=_5.indexOf("Macintosh")>=0;_12=/iPhone|iPod|iPad/.test(_4);_13=parseFloat(_4.split("Android ")[1])||undefined;_14=typeof opera!="undefined"&&opera.wiiremote;var _15=Math.max(_5.indexOf("WebKit"),_5.indexOf("Safari"),0);if(_15&&!_a){_c=parseFloat(_5.split("Version/")[1]);if(!_c||parseFloat(_5.substr(_15+7))<=419.3){_c=2;}}if(!_2("dojo-webkit")){if(_4.indexOf("Opera")>=0){_6=tv;if(_6>=9.8){_6=parseFloat(_4.split("Version/")[1])||tv;}}if(_4.indexOf("Gecko")>=0&&!_8&&!_9){_d=_e=tv;}if(_e){_10=parseFloat(_4.split("Firefox/")[1]||_4.split("Minefield/")[1])||undefined;}if(document.all&&!_6){_f=parseFloat(_5.split("MSIE ")[1])||undefined;var _16=document.documentMode;if(_16&&_16!=5&&Math.floor(_f)!=_16){_f=_16;}}}_11=document.compatMode=="BackCompat";_3("opera",_1.isOpera=_6);_3("air",_1.isAIR=_7);_3("khtml",_1.isKhtml=_8);_3("webkit",_1.isWebKit=_9);_3("chrome",_1.isChrome=_a);_3("mac",_1.isMac=_b);_3("safari",_1.isSafari=_c);_3("mozilla",_1.isMozilla=_1.isMoz=_d);_3("ie",_1.isIE=_f);_3("ff",_1.isFF=_10);_3("quirks",_1.isQuirks=_11);_3("ios",_1.isIos=_12);_3("android",_1.isAndroid=_13);_1.locale=_1.locale||(_f?n.userLanguage:n.language).toLowerCase();return _2;}); \ No newline at end of file
+define("dojo/_base/sniff",["./kernel","./lang","../sniff"],function(_1,_2,_3){if(!1){return _3;}_1._name="browser";_2.mixin(_1,{isBrowser:true,isFF:_3("ff"),isIE:_3("ie"),isKhtml:_3("khtml"),isWebKit:_3("webkit"),isMozilla:_3("mozilla"),isMoz:_3("mozilla"),isOpera:_3("opera"),isSafari:_3("safari"),isChrome:_3("chrome"),isMac:_3("mac"),isIos:_3("ios"),isAndroid:_3("android"),isWii:_3("wii"),isQuirks:_3("quirks"),isAir:_3("air")});_1.locale=_1.locale||(_3("ie")?navigator.userLanguage:navigator.language).toLowerCase();return _3;}); \ No newline at end of file
diff --git a/lib/dojo/_base/unload.js b/lib/dojo/_base/unload.js
index 8e099ae14..218bbb972 100644
--- a/lib/dojo/_base/unload.js
+++ b/lib/dojo/_base/unload.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/unload",["./kernel","./connect"],function(_1,_2){var _3=window;_1.addOnWindowUnload=function(_4,_5){if(!_1.windowUnloaded){_2.connect(_3,"unload",(_1.windowUnloaded=function(){}));}_2.connect(_3,"unload",_4,_5);};_1.addOnUnload=function(_6,_7){_2.connect(_3,"beforeunload",_6,_7);};return {addOnWindowUnload:_1.addOnWindowUnload,addOnUnload:_1.addOnUnload};}); \ No newline at end of file
+define("dojo/_base/unload",["./kernel","./lang","../on"],function(_1,_2,on){var _3=window;var _4={addOnWindowUnload:function(_5,_6){if(!_1.windowUnloaded){on(_3,"unload",(_1.windowUnloaded=function(){}));}on(_3,"unload",_2.hitch(_5,_6));},addOnUnload:function(_7,_8){on(_3,"beforeunload",_2.hitch(_7,_8));}};_1.addOnWindowUnload=_4.addOnWindowUnload;_1.addOnUnload=_4.addOnUnload;return _4;}); \ No newline at end of file
diff --git a/lib/dojo/_base/url.js b/lib/dojo/_base/url.js
index 41bae092c..82ba41d80 100644
--- a/lib/dojo/_base/url.js
+++ b/lib/dojo/_base/url.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/_base/window.js b/lib/dojo/_base/window.js
index 7082cb077..1049aec2e 100644
--- a/lib/dojo/_base/window.js
+++ b/lib/dojo/_base/window.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/window",["./kernel","../has","./sniff"],function(_1,_2){_1.doc=this["document"]||null;_1.body=function(){return _1.doc.body||_1.doc.getElementsByTagName("body")[0];};_1.setContext=function(_3,_4){_1.global=_5.global=_3;_1.doc=_5.doc=_4;};_1.withGlobal=function(_6,_7,_8,_9){var _a=_1.global;try{_1.global=_5.global=_6;return _1.withDoc.call(null,_6.document,_7,_8,_9);}finally{_1.global=_5.global=_a;}};_1.withDoc=function(_b,_c,_d,_e){var _f=_1.doc,_10=_1.isQuirks,_11=_1.isIE,_12,_13,_14;try{_1.doc=_5.doc=_b;_1.isQuirks=_2.add("quirks",_1.doc.compatMode=="BackCompat",true,true);if(_2("ie")){if((_14=_b.parentWindow)&&_14.navigator){_12=parseFloat(_14.navigator.appVersion.split("MSIE ")[1])||undefined;_13=_b.documentMode;if(_13&&_13!=5&&Math.floor(_12)!=_13){_12=_13;}_1.isIE=_2.add("ie",_12,true,true);}}if(_d&&typeof _c=="string"){_c=_d[_c];}return _c.apply(_d,_e||[]);}finally{_1.doc=_5.doc=_f;_1.isQuirks=_2.add("quirks",_10,true,true);_1.isIE=_2.add("ie",_11,true,true);}};var _5={global:_1.global,doc:_1.doc,body:_1.body,setContext:_1.setContext,withGlobal:_1.withGlobal,withDoc:_1.withDoc};return _5;}); \ No newline at end of file
+define("dojo/_base/window",["./kernel","./lang","../sniff"],function(_1,_2,_3){var _4={global:_1.global,doc:this["document"]||null,body:function(_5){_5=_5||_1.doc;return _5.body||_5.getElementsByTagName("body")[0];},setContext:function(_6,_7){_1.global=_4.global=_6;_1.doc=_4.doc=_7;},withGlobal:function(_8,_9,_a,_b){var _c=_1.global;try{_1.global=_4.global=_8;return _4.withDoc.call(null,_8.document,_9,_a,_b);}finally{_1.global=_4.global=_c;}},withDoc:function(_d,_e,_f,_10){var _11=_4.doc,_12=_3("quirks"),_13=_3("ie"),_14,_15,_16;try{_1.doc=_4.doc=_d;_1.isQuirks=_3.add("quirks",_1.doc.compatMode=="BackCompat",true,true);if(_3("ie")){if((_16=_d.parentWindow)&&_16.navigator){_14=parseFloat(_16.navigator.appVersion.split("MSIE ")[1])||undefined;_15=_d.documentMode;if(_15&&_15!=5&&Math.floor(_14)!=_15){_14=_15;}_1.isIE=_3.add("ie",_14,true,true);}}if(_f&&typeof _e=="string"){_e=_f[_e];}return _e.apply(_f,_10||[]);}finally{_1.doc=_4.doc=_11;_1.isQuirks=_3.add("quirks",_12,true,true);_1.isIE=_3.add("ie",_13,true,true);}}};1&&_2.mixin(_1,_4);return _4;}); \ No newline at end of file
diff --git a/lib/dojo/_base/xhr.js b/lib/dojo/_base/xhr.js
index ee38dbd4f..48ef42474 100644
--- a/lib/dojo/_base/xhr.js
+++ b/lib/dojo/_base/xhr.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_base/xhr",["./kernel","./sniff","require","../io-query","../dom","../dom-form","./Deferred","./json","./lang","./array","../on"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,on){_2.add("native-xhr",function(){return typeof XMLHttpRequest!=="undefined";});if(1&&_3.getXhr){_1._xhrObj=_3.getXhr;}else{if(_2("native-xhr")){_1._xhrObj=function(){try{return new XMLHttpRequest();}catch(e){throw new Error("XMLHTTP not available: "+e);}};}else{for(var _b=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],_c,i=0;i<3;){try{_c=_b[i++];if(new ActiveXObject(_c)){break;}}catch(e){}}_1._xhrObj=function(){return new ActiveXObject(_c);};}}var _d=_1.config;_1.objectToQuery=_4.objectToQuery;_1.queryToObject=_4.queryToObject;_1.fieldToObject=_6.fieldToObject;_1.formToObject=_6.toObject;_1.formToQuery=_6.toQuery;_1.formToJson=_6.toJson;_1._blockAsync=false;var _e=_1._contentHandlers=_1.contentHandlers={"text":function(_f){return _f.responseText;},"json":function(xhr){return _8.fromJson(xhr.responseText||null);},"json-comment-filtered":function(xhr){if(!_1.config.useCommentedJson){console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message.");}var _10=xhr.responseText;var _11=_10.indexOf("/*");var _12=_10.lastIndexOf("*/");if(_11==-1||_12==-1){throw new Error("JSON was not comment filtered");}return _8.fromJson(_10.substring(_11+2,_12));},"javascript":function(xhr){return _1.eval(xhr.responseText);},"xml":function(xhr){var _13=xhr.responseXML;if(_2("ie")){if((!_13||!_13.documentElement)){var ms=function(n){return "MSXML"+n+".DOMDocument";};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_a.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_13=dom;}catch(e){return false;}return true;});}}return _13;},"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){return _e["json-comment-filtered"](xhr);}else{return _e["json"](xhr);}}};_1._ioSetArgs=function(_14,_15,_16,_17){var _18={args:_14,url:_14.url};var _19=null;if(_14.form){var _1a=_5.byId(_14.form);var _1b=_1a.getAttributeNode("action");_18.url=_18.url||(_1b?_1b.value:null);_19=_6.toObject(_1a);}var _1c=[{}];if(_19){_1c.push(_19);}if(_14.content){_1c.push(_14.content);}if(_14.preventCache){_1c.push({"dojo.preventCache":new Date().valueOf()});}_18.query=_4.objectToQuery(_9.mixin.apply(null,_1c));_18.handleAs=_14.handleAs||"text";var d=new _7(_15);d.addCallbacks(_16,function(_1d){return _17(_1d,d);});var ld=_14.load;if(ld&&_9.isFunction(ld)){d.addCallback(function(_1e){return ld.call(_14,_1e,_18);});}var err=_14.error;if(err&&_9.isFunction(err)){d.addErrback(function(_1f){return err.call(_14,_1f,_18);});}var _20=_14.handle;if(_20&&_9.isFunction(_20)){d.addBoth(function(_21){return _20.call(_14,_21,_18);});}if(_d.ioPublish&&_1.publish&&_18.args.ioPublish!==false){d.addCallbacks(function(res){_1.publish("/dojo/io/load",[d,res]);return res;},function(res){_1.publish("/dojo/io/error",[d,res]);return res;});d.addBoth(function(res){_1.publish("/dojo/io/done",[d,res]);return res;});}d.ioArgs=_18;return d;};var _22=function(dfd){dfd.canceled=true;var xhr=dfd.ioArgs.xhr;var _23=typeof xhr.abort;if(_23=="function"||_23=="object"||_23=="unknown"){xhr.abort();}var err=dfd.ioArgs.error;if(!err){err=new Error("xhr cancelled");err.dojoType="cancel";}return err;};var _24=function(dfd){var ret=_e[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _25=function(_26,dfd){if(!dfd.ioArgs.args.failOk){console.error(_26);}return _26;};var _27=null;var _28=[];var _29=0;var _2a=function(dfd){if(_29<=0){_29=0;if(_d.ioPublish&&_1.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){_1.publish("/dojo/io/stop");}}};var _2b=function(){var now=(new Date()).getTime();if(!_1._blockAsync){for(var i=0,tif;i<_28.length&&(tif=_28[i]);i++){var dfd=tif.dfd;var _2c=function(){if(!dfd||dfd.canceled||!tif.validCheck(dfd)){_28.splice(i--,1);_29-=1;}else{if(tif.ioCheck(dfd)){_28.splice(i--,1);tif.resHandle(dfd);_29-=1;}else{if(dfd.startTime){if(dfd.startTime+(dfd.ioArgs.args.timeout||0)<now){_28.splice(i--,1);var err=new Error("timeout exceeded");err.dojoType="timeout";dfd.errback(err);dfd.cancel();_29-=1;}}}}};if(_1.config.debugAtAllCosts){_2c.call(this);}else{try{_2c.call(this);}catch(e){dfd.errback(e);}}}}_2a(dfd);if(!_28.length){clearInterval(_27);_27=null;}};_1._ioCancelAll=function(){try{_a.forEach(_28,function(i){try{i.dfd.cancel();}catch(e){}});}catch(e){}};if(_2("ie")){on(window,"unload",_1._ioCancelAll);}_1._ioNotifyStart=function(dfd){if(_d.ioPublish&&_1.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_29){_1.publish("/dojo/io/start");}_29+=1;_1.publish("/dojo/io/send",[dfd]);}};_1._ioWatch=function(dfd,_2d,_2e,_2f){var _30=dfd.ioArgs.args;if(_30.timeout){dfd.startTime=(new Date()).getTime();}_28.push({dfd:dfd,validCheck:_2d,ioCheck:_2e,resHandle:_2f});if(!_27){_27=setInterval(_2b,50);}if(_30.sync){_2b();}};var _31="application/x-www-form-urlencoded";var _32=function(dfd){return dfd.ioArgs.xhr.readyState;};var _33=function(dfd){return 4==dfd.ioArgs.xhr.readyState;};var _34=function(dfd){var xhr=dfd.ioArgs.xhr;if(_1._isDocumentOk(xhr)){dfd.callback(dfd);}else{var err=new Error("Unable to load "+dfd.ioArgs.url+" status:"+xhr.status);err.status=xhr.status;err.responseText=xhr.responseText;err.xhr=xhr;dfd.errback(err);}};_1._ioAddQueryToUrl=function(_35){if(_35.query.length){_35.url+=(_35.url.indexOf("?")==-1?"?":"&")+_35.query;_35.query=null;}};_1.xhr=function(_36,_37,_38){var dfd=_1._ioSetArgs(_37,_22,_24,_25);var _39=dfd.ioArgs;var xhr=_39.xhr=_1._xhrObj(_39.args);if(!xhr){dfd.cancel();return dfd;}if("postData" in _37){_39.query=_37.postData;}else{if("putData" in _37){_39.query=_37.putData;}else{if("rawBody" in _37){_39.query=_37.rawBody;}else{if((arguments.length>2&&!_38)||"POST|PUT".indexOf(_36.toUpperCase())==-1){_1._ioAddQueryToUrl(_39);}}}}xhr.open(_36,_39.url,_37.sync!==true,_37.user||undefined,_37.password||undefined);if(_37.headers){for(var hdr in _37.headers){if(hdr.toLowerCase()==="content-type"&&!_37.contentType){_37.contentType=_37.headers[hdr];}else{if(_37.headers[hdr]){xhr.setRequestHeader(hdr,_37.headers[hdr]);}}}}if(_37.contentType!==false){xhr.setRequestHeader("Content-Type",_37.contentType||_31);}if(!_37.headers||!("X-Requested-With" in _37.headers)){xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");}_1._ioNotifyStart(dfd);if(_1.config.debugAtAllCosts){xhr.send(_39.query);}else{try{xhr.send(_39.query);}catch(e){_39.error=e;dfd.cancel();}}_1._ioWatch(dfd,_32,_33,_34);xhr=null;return dfd;};_1.xhrGet=function(_3a){return _1.xhr("GET",_3a);};_1.rawXhrPost=_1.xhrPost=function(_3b){return _1.xhr("POST",_3b,true);};_1.rawXhrPut=_1.xhrPut=function(_3c){return _1.xhr("PUT",_3c,true);};_1.xhrDelete=function(_3d){return _1.xhr("DELETE",_3d);};_1._isDocumentOk=function(_3e){var _3f=_3e.status||0;_3f=(_3f>=200&&_3f<300)||_3f==304||_3f==1223||!_3f;return _3f;};_1._getText=function(url){var _40;_1.xhrGet({url:url,sync:true,load:function(_41){_40=_41;}});return _40;};_9.mixin(_1.xhr,{_xhrObj:_1._xhrObj,fieldToObject:_6.fieldToObject,formToObject:_6.toObject,objectToQuery:_4.objectToQuery,formToQuery:_6.toQuery,formToJson:_6.toJson,queryToObject:_4.queryToObject,contentHandlers:_e,_ioSetArgs:_1._ioSetArgs,_ioCancelAll:_1._ioCancelAll,_ioNotifyStart:_1._ioNotifyStart,_ioWatch:_1._ioWatch,_ioAddQueryToUrl:_1._ioAddQueryToUrl,_isDocumentOk:_1._isDocumentOk,_getText:_1._getText,get:_1.xhrGet,post:_1.xhrPost,put:_1.xhrPut,del:_1.xhrDelete});return _1.xhr;}); \ No newline at end of file
+define("dojo/_base/xhr",["./kernel","./sniff","require","../io-query","../dom","../dom-form","./Deferred","./config","./json","./lang","./array","../on","../aspect","../request/watch","../request/xhr","../request/util"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,on,_c,_d,_e,_f){_1._xhrObj=_e._create;var cfg=_1.config;_1.objectToQuery=_4.objectToQuery;_1.queryToObject=_4.queryToObject;_1.fieldToObject=_6.fieldToObject;_1.formToObject=_6.toObject;_1.formToQuery=_6.toQuery;_1.formToJson=_6.toJson;_1._blockAsync=false;var _10=_1._contentHandlers=_1.contentHandlers={"text":function(xhr){return xhr.responseText;},"json":function(xhr){return _9.fromJson(xhr.responseText||null);},"json-comment-filtered":function(xhr){if(!_8.useCommentedJson){console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message.");}var _11=xhr.responseText;var _12=_11.indexOf("/*");var _13=_11.lastIndexOf("*/");if(_12==-1||_13==-1){throw new Error("JSON was not comment filtered");}return _9.fromJson(_11.substring(_12+2,_13));},"javascript":function(xhr){return _1.eval(xhr.responseText);},"xml":function(xhr){var _14=xhr.responseXML;if(_2("ie")){if((!_14||!_14.documentElement)){var ms=function(n){return "MSXML"+n+".DOMDocument";};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_b.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_14=dom;}catch(e){return false;}return true;});}}return _14;},"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){return _10["json-comment-filtered"](xhr);}else{return _10["json"](xhr);}}};_1._ioSetArgs=function(_15,_16,_17,_18){var _19={args:_15,url:_15.url};var _1a=null;if(_15.form){var _1b=_5.byId(_15.form);var _1c=_1b.getAttributeNode("action");_19.url=_19.url||(_1c?_1c.value:null);_1a=_6.toObject(_1b);}var _1d=[{}];if(_1a){_1d.push(_1a);}if(_15.content){_1d.push(_15.content);}if(_15.preventCache){_1d.push({"dojo.preventCache":new Date().valueOf()});}_19.query=_4.objectToQuery(_a.mixin.apply(null,_1d));_19.handleAs=_15.handleAs||"text";var d=new _7(function(dfd){dfd.canceled=true;_16&&_16(dfd);var err=dfd.ioArgs.error;if(!err){err=new Error("request cancelled");err.dojoType="cancel";dfd.ioArgs.error=err;}return err;});d.addCallback(_17);var ld=_15.load;if(ld&&_a.isFunction(ld)){d.addCallback(function(_1e){return ld.call(_15,_1e,_19);});}var err=_15.error;if(err&&_a.isFunction(err)){d.addErrback(function(_1f){return err.call(_15,_1f,_19);});}var _20=_15.handle;if(_20&&_a.isFunction(_20)){d.addBoth(function(_21){return _20.call(_15,_21,_19);});}d.addErrback(function(_22){return _18(_22,d);});if(cfg.ioPublish&&_1.publish&&_19.args.ioPublish!==false){d.addCallbacks(function(res){_1.publish("/dojo/io/load",[d,res]);return res;},function(res){_1.publish("/dojo/io/error",[d,res]);return res;});d.addBoth(function(res){_1.publish("/dojo/io/done",[d,res]);return res;});}d.ioArgs=_19;return d;};var _23=function(dfd){var ret=_10[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _24=function(_25,dfd){if(!dfd.ioArgs.args.failOk){console.error(_25);}return _25;};var _26=function(dfd){if(_27<=0){_27=0;if(cfg.ioPublish&&_1.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){_1.publish("/dojo/io/stop");}}};var _27=0;_c.after(_d,"_onAction",function(){_27-=1;});_c.after(_d,"_onInFlight",_26);_1._ioCancelAll=_d.cancelAll;_1._ioNotifyStart=function(dfd){if(cfg.ioPublish&&_1.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_27){_1.publish("/dojo/io/start");}_27+=1;_1.publish("/dojo/io/send",[dfd]);}};_1._ioWatch=function(dfd,_28,_29,_2a){var _2b=dfd.ioArgs.options=dfd.ioArgs.args;_a.mixin(dfd,{response:dfd.ioArgs,isValid:function(_2c){return _28(dfd);},isReady:function(_2d){return _29(dfd);},handleResponse:function(_2e){return _2a(dfd);}});_d(dfd);_26(dfd);};var _2f="application/x-www-form-urlencoded";_1._ioAddQueryToUrl=function(_30){if(_30.query.length){_30.url+=(_30.url.indexOf("?")==-1?"?":"&")+_30.query;_30.query=null;}};_1.xhr=function(_31,_32,_33){var _34;var dfd=_1._ioSetArgs(_32,function(dfd){_34&&_34.cancel();},_23,_24);var _35=dfd.ioArgs;if("postData" in _32){_35.query=_32.postData;}else{if("putData" in _32){_35.query=_32.putData;}else{if("rawBody" in _32){_35.query=_32.rawBody;}else{if((arguments.length>2&&!_33)||"POST|PUT".indexOf(_31.toUpperCase())===-1){_1._ioAddQueryToUrl(_35);}}}}var _36={method:_31,handleAs:"text",timeout:_32.timeout,withCredentials:_32.withCredentials,ioArgs:_35};if(typeof _32.headers!=="undefined"){_36.headers=_32.headers;}if(typeof _32.contentType!=="undefined"){if(!_36.headers){_36.headers={};}_36.headers["Content-Type"]=_32.contentType;}if(typeof _35.query!=="undefined"){_36.data=_35.query;}if(typeof _32.sync!=="undefined"){_36.sync=_32.sync;}_1._ioNotifyStart(dfd);try{_34=_e(_35.url,_36,true);}catch(e){dfd.cancel();return dfd;}dfd.ioArgs.xhr=_34.response.xhr;_34.then(function(){dfd.resolve(dfd);}).otherwise(function(_37){_35.error=_37;if(_37.response){_37.status=_37.response.status;_37.responseText=_37.response.text;_37.xhr=_37.response.xhr;}dfd.reject(_37);});return dfd;};_1.xhrGet=function(_38){return _1.xhr("GET",_38);};_1.rawXhrPost=_1.xhrPost=function(_39){return _1.xhr("POST",_39,true);};_1.rawXhrPut=_1.xhrPut=function(_3a){return _1.xhr("PUT",_3a,true);};_1.xhrDelete=function(_3b){return _1.xhr("DELETE",_3b);};_1._isDocumentOk=function(x){return _f.checkStatus(x.status);};_1._getText=function(url){var _3c;_1.xhrGet({url:url,sync:true,load:function(_3d){_3c=_3d;}});return _3c;};_a.mixin(_1.xhr,{_xhrObj:_1._xhrObj,fieldToObject:_6.fieldToObject,formToObject:_6.toObject,objectToQuery:_4.objectToQuery,formToQuery:_6.toQuery,formToJson:_6.toJson,queryToObject:_4.queryToObject,contentHandlers:_10,_ioSetArgs:_1._ioSetArgs,_ioCancelAll:_1._ioCancelAll,_ioNotifyStart:_1._ioNotifyStart,_ioWatch:_1._ioWatch,_ioAddQueryToUrl:_1._ioAddQueryToUrl,_isDocumentOk:_1._isDocumentOk,_getText:_1._getText,get:_1.xhrGet,post:_1.xhrPost,put:_1.xhrPut,del:_1.xhrDelete});return _1.xhr;}); \ No newline at end of file
diff --git a/lib/dojo/_firebug/firebug.css b/lib/dojo/_firebug/firebug.css
index 2012e0674..48bab203c 100644
--- a/lib/dojo/_firebug/firebug.css
+++ b/lib/dojo/_firebug/firebug.css
@@ -1,211 +1 @@
-.firebug {
- margin: 0;
- background:#fff;
- font-family: Lucida Grande, Tahoma, sans-serif;
- font-size: 11px;
- overflow: hidden;
- border: 1px solid black;
- position: relative;
-}
-.firebug a {
- text-decoration: none;
-}
-.firebug a:hover {
- text-decoration: underline;
-}
-.firebug a:visited{
- color:#0000FF;
-}
-.firebug #firebugToolbar {
- height: 18px;
- line-height:18px;
- border-top: 1px solid ThreeDHighlight;
- border-bottom: 1px solid ThreeDShadow;
- padding: 2px 6px;
-
- background:#f0f0f0;
-}
-
-.firebug #firebugLog, .firebug #objectLog {
- overflow: auto;
- position: absolute;
- left: 0;
- width: 100%;
-}
-#objectLog{
- overflow:scroll;
- height:258px;
-}
-.firebug #firebugCommandLine {
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 18px;
- border: none;
- border-top: 1px solid ThreeDShadow;
-}
-.firebug .logRow {
- position: relative;
- border-bottom: 1px solid #D7D7D7;
- padding: 2px 4px 1px 6px;
- background-color: #FFFFFF;
-}
-.firebug .logRow-command {
- font-family: Monaco, monospace;
- color: blue;
-}
-.firebug .objectBox-null {
- padding: 0 2px;
- border: 1px solid #666666;
- background-color: #888888;
- color: #FFFFFF;
-}
-.firebug .objectBox-string {
- font-family: Monaco, monospace;
- color: red;
- white-space: pre;
-}
-.firebug .objectBox-number {
- color: #000088;
-}
-.firebug .objectBox-function {
- font-family: Monaco, monospace;
- color: DarkGreen;
-}
-.firebug .objectBox-object {
- color: DarkGreen;
- font-weight: bold;
-}
-.firebug .logRow-info,
-.firebug .logRow-error,
-.firebug .logRow-warning
- {
- background: #00FFFF no-repeat 2px 2px;
- padding-left: 20px;
- padding-bottom: 3px;
-}
-.firebug .logRow-info {
- background: #FFF url(infoIcon.png) no-repeat 2px 2px;
- padding-left: 20px;
- padding-bottom: 3px;
-}
-.firebug .logRow-warning {
-
- background: #00FFFF url(warningIcon.png) no-repeat 2px 2px;
- padding-left: 20px;
- padding-bottom: 3px;
-}
-.firebug .logRow-error {
- background: LightYellow url(errorIcon.png) no-repeat 2px 2px;
- padding-left: 20px;
- padding-bottom: 3px;
-}
-.firebug .errorMessage {
- vertical-align: top;
- color: #FF0000;
-}
-.firebug .objectBox-sourceLink {
- position: absolute;
- right: 4px;
- top: 2px;
- padding-left: 8px;
- font-family: Lucida Grande, sans-serif;
- font-weight: bold;
- color: #0000FF;
-}
-.firebug .logRow-group {
- background: #EEEEEE;
- border-bottom: none;
-}
-.firebug .logGroup {
- background: #EEEEEE;
-}
-.firebug .logGroupBox {
- margin-left: 24px;
- border-top: 1px solid #D7D7D7;
- border-left: 1px solid #D7D7D7;
-}
-.firebug .selectorTag,
-.firebug .selectorId,
-.firebug .selectorClass {
- font-family: Monaco, monospace;
- font-weight: normal;
-}
-.firebug .selectorTag {
- color: #0000FF;
-}
-.firebug .selectorId {
- color: DarkBlue;
-}
-.firebug .selectorClass {
- color: red;
-}
-.firebug .objectBox-element {
- font-family: Monaco, monospace;
- color: #000088;
-}
-.firebug .nodeChildren {
- margin-left: 16px;
-}
-.firebug .nodeTag {
- color: blue;
-}
-.firebug .nodeValue {
- color: #FF0000;
- font-weight: normal;
-}
-.firebug .nodeText,
-.firebug .nodeComment {
- margin: 0 2px;
- vertical-align: top;
-}
-.firebug .nodeText {
- color: #333333;
-}
-.firebug .nodeComment {
- color: DarkGreen;
-}
-.firebug .propertyNameCell {
- vertical-align: top;
-}
-.firebug .propertyName {
- font-weight: bold;
-}
-
-/* tabs */
-#firebugToolbar ul.tabs{
- margin:0 !important;
- padding:0;
-}
-#firebugToolbar ul.tabs li{
- list-style:none;
- background:transparent url(tab_lft_norm.png) no-repeat left;
- line-height:18px;
- float:left;
- margin-left:5px;
-}
-#firebugToolbar ul.tabs li.right{
- float:right;
- margin-right:5px;
- margin-left:0;
-}
-#firebugToolbar ul.tabs li.gap{
- margin-left:20px;
-}
-#firebugToolbar .tabs a{
- text-decoration:none;
- background:transparent url(tab_rgt_norm.png) no-repeat right;
- line-height:18px;
- padding:3px 9px 4px 0px;
- margin-left:9px;
- color:#333333;
-}
-#firebugToolbar .tabs li:hover{
- background:transparent url(tab_lft_over.png) no-repeat left;
-}
-#firebugToolbar .tabs a:hover{
- text-decoration:none;
- background:transparent url(tab_rgt_over.png) no-repeat right;
- color:#FFFFFF;
-}
+.firebug {margin: 0; background:#fff; font-family: Lucida Grande, Tahoma, sans-serif; font-size: 11px; overflow: hidden; border: 1px solid black; position: relative;}.firebug a {text-decoration: none;}.firebug a:hover {text-decoration: underline;}.firebug a:visited{color:#0000FF;}.firebug #firebugToolbar {height: 18px; line-height:18px; border-top: 1px solid ThreeDHighlight; border-bottom: 1px solid ThreeDShadow; padding: 2px 6px; background:#f0f0f0;}.firebug #firebugLog, .firebug #objectLog {overflow: auto; position: absolute; left: 0; width: 100%;}#objectLog{overflow:scroll; height:258px;}.firebug #firebugCommandLine {position: absolute; bottom: 0; left: 0; width: 100%; height: 18px; border: none; border-top: 1px solid ThreeDShadow;}.firebug .logRow {position: relative; border-bottom: 1px solid #D7D7D7; padding: 2px 4px 1px 6px; background-color: #FFFFFF;}.firebug .logRow-command {font-family: Monaco, monospace; color: blue;}.firebug .objectBox-null {padding: 0 2px; border: 1px solid #666666; background-color: #888888; color: #FFFFFF;}.firebug .objectBox-string {font-family: Monaco, monospace; color: red; white-space: pre;}.firebug .objectBox-number {color: #000088;}.firebug .objectBox-function {font-family: Monaco, monospace; color: DarkGreen;}.firebug .objectBox-object {color: DarkGreen; font-weight: bold;}.firebug .logRow-info,.firebug .logRow-error,.firebug .logRow-warning {background: #00FFFF no-repeat 2px 2px; padding-left: 20px; padding-bottom: 3px;}.firebug .logRow-info {background: #FFF url(infoIcon.png) no-repeat 2px 2px; padding-left: 20px; padding-bottom: 3px;}.firebug .logRow-warning {background: #00FFFF url(warningIcon.png) no-repeat 2px 2px; padding-left: 20px; padding-bottom: 3px;}.firebug .logRow-error {background: LightYellow url(errorIcon.png) no-repeat 2px 2px; padding-left: 20px; padding-bottom: 3px;}.firebug .errorMessage {vertical-align: top; color: #FF0000;}.firebug .objectBox-sourceLink {position: absolute; right: 4px; top: 2px; padding-left: 8px; font-family: Lucida Grande, sans-serif; font-weight: bold; color: #0000FF;}.firebug .logRow-group {background: #EEEEEE; border-bottom: none;}.firebug .logGroup {background: #EEEEEE;}.firebug .logGroupBox {margin-left: 24px; border-top: 1px solid #D7D7D7; border-left: 1px solid #D7D7D7;}.firebug .selectorTag,.firebug .selectorId,.firebug .selectorClass {font-family: Monaco, monospace; font-weight: normal;}.firebug .selectorTag {color: #0000FF;}.firebug .selectorId {color: DarkBlue;}.firebug .selectorClass {color: red;}.firebug .objectBox-element {font-family: Monaco, monospace; color: #000088;}.firebug .nodeChildren {margin-left: 16px;}.firebug .nodeTag {color: blue;}.firebug .nodeValue {color: #FF0000; font-weight: normal;}.firebug .nodeText,.firebug .nodeComment {margin: 0 2px; vertical-align: top;}.firebug .nodeText {color: #333333;}.firebug .nodeComment {color: DarkGreen;}.firebug .propertyNameCell {vertical-align: top;}.firebug .propertyName {font-weight: bold;}#firebugToolbar ul.tabs{margin:0 !important; padding:0;}#firebugToolbar ul.tabs li{list-style:none; background:transparent url(tab_lft_norm.png) no-repeat left; line-height:18px; float:left; margin-left:5px;}#firebugToolbar ul.tabs li.right{float:right; margin-right:5px; margin-left:0;}#firebugToolbar ul.tabs li.gap{margin-left:20px;}#firebugToolbar .tabs a{text-decoration:none; background:transparent url(tab_rgt_norm.png) no-repeat right; line-height:18px; padding:3px 9px 4px 0px; margin-left:9px; color:#333333;}#firebugToolbar .tabs li:hover{background:transparent url(tab_lft_over.png) no-repeat left;}#firebugToolbar .tabs a:hover{text-decoration:none; background:transparent url(tab_rgt_over.png) no-repeat right; color:#FFFFFF;} \ No newline at end of file
diff --git a/lib/dojo/_firebug/firebug.js b/lib/dojo/_firebug/firebug.js
index cf5044e09..49d47e570 100644
--- a/lib/dojo/_firebug/firebug.js
+++ b/lib/dojo/_firebug/firebug.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/_firebug/firebug",["../_base/kernel","require","../_base/html","../_base/sniff","../_base/array","../_base/lang","../_base/event","../_base/unload"],function(_1,_2){var _3=(/Trident/.test(window.navigator.userAgent));if(_3){var _4=["log","info","debug","warn","error"];for(var i=0;i<_4.length;i++){var m=_4[i];if(!console[m]||console[m]._fake){continue;}var n="_"+_4[i];console[n]=console[m];console[m]=(function(){var _5=n;return function(){console[_5](Array.prototype.join.call(arguments," "));};})();}try{console.clear();}catch(e){}}if(_1.isFF||_1.isChrome||_1.isSafari||_3||window.firebug||(typeof console!="undefined"&&console.firebug)||_1.config.useCustomLogger||_1.isAIR){return;}try{if(window!=window.parent){if(window.parent["console"]){window.console=window.parent.console;}return;}}catch(e){}var _6=document;var _7=window;var _8=0;var _9=null;var _a=null;var _b=null;var _c=null;var _d=null;var _e=null;var _f=false;var _10=[];var _11=[];var _12={};var _13={};var _14=null;var _15;var _16;var _17=false;var _18=null;var _19=document.createElement("div");var _1a;var _1b;window.console={_connects:[],log:function(){_1c(arguments,"");},debug:function(){_1c(arguments,"debug");},info:function(){_1c(arguments,"info");},warn:function(){_1c(arguments,"warning");},error:function(){_1c(arguments,"error");},assert:function(_1d,_1e){if(!_1d){var _1f=[];for(var i=1;i<arguments.length;++i){_1f.push(arguments[i]);}_1c(_1f.length?_1f:["Assertion Failure"],"error");throw _1e?_1e:"Assertion Failure";}},dir:function(obj){var str=_20(obj);str=str.replace(/\n/g,"<br />");str=str.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");_21([str],"dir");},dirxml:function(_22){var _23=[];_24(_22,_23);_21(_23,"dirxml");},group:function(){_21(arguments,"group",_25);},groupEnd:function(){_21(arguments,"",_26);},time:function(_27){_12[_27]=new Date().getTime();},timeEnd:function(_28){if(_28 in _12){var _29=(new Date()).getTime()-_12[_28];_1c([_28+":",_29+"ms"]);delete _12[_28];}},count:function(_2a){if(!_13[_2a]){_13[_2a]=0;}_13[_2a]++;_1c([_2a+": "+_13[_2a]]);},trace:function(_2b){var _2c=_2b||3;var f=console.trace.caller;for(var i=0;i<_2c;i++){var _2d=f.toString();var _2e=[];for(var a=0;a<f.arguments.length;a++){_2e.push(f.arguments[a]);}if(f.arguments.length){}else{}f=f.caller;}},profile:function(){this.warn(["profile() not supported."]);},profileEnd:function(){},clear:function(){if(_a){while(_a.childNodes.length){_1.destroy(_a.firstChild);}}_1.forEach(this._connects,_1.disconnect);},open:function(){_2f(true);},close:function(){if(_f){_2f();}},_restoreBorder:function(){if(_1a){_1a.style.border=_1b;}},openDomInspector:function(){_17=true;_a.style.display="none";_14.style.display="block";_b.style.display="none";document.body.style.cursor="pointer";_15=_1.connect(document,"mousemove",function(evt){if(!_17){return;}if(!_18){_18=setTimeout(function(){_18=null;},50);}else{return;}var _30=evt.target;if(_30&&(_1a!==_30)){var _31=true;console._restoreBorder();var _32=[];_24(_30,_32);_14.innerHTML=_32.join("");_1a=_30;_1b=_1a.style.border;_1a.style.border="#0000FF 1px solid";}});setTimeout(function(){_16=_1.connect(document,"click",function(evt){document.body.style.cursor="";_17=!_17;_1.disconnect(_16);});},30);},_closeDomInspector:function(){document.body.style.cursor="";_1.disconnect(_15);_1.disconnect(_16);_17=false;console._restoreBorder();},openConsole:function(){_a.style.display="block";_14.style.display="none";_b.style.display="none";console._closeDomInspector();},openObjectInspector:function(){_a.style.display="none";_14.style.display="none";_b.style.display="block";console._closeDomInspector();},recss:function(){var i,a,s;a=document.getElementsByTagName("link");for(i=0;i<a.length;i++){s=a[i];if(s.rel.toLowerCase().indexOf("stylesheet")>=0&&s.href){var h=s.href.replace(/(&|%5C?)forceReload=\d+/,"");s.href=h+(h.indexOf("?")>=0?"&":"?")+"forceReload="+new Date().valueOf();}}}};function _2f(_33){_f=_33||!_f;if(_9){_9.style.display=_f?"block":"none";}};function _34(){_2f(true);if(_d){_d.focus();}};function _35(x,y,w,h){var win=window.open("","_firebug","status=0,menubar=0,resizable=1,top="+y+",left="+x+",width="+w+",height="+h+",scrollbars=1,addressbar=0");if(!win){var msg="Firebug Lite could not open a pop-up window, most likely because of a blocker.\n"+"Either enable pop-ups for this domain, or change the djConfig to popup=false.";alert(msg);}_36(win);var _37=win.document;var _38="<html style=\"height:100%;\"><head><title>Firebug Lite</title></head>\n"+"<body bgColor=\"#ccc\" style=\"height:97%;\" onresize=\"opener.onFirebugResize()\">\n"+"<div id=\"fb\"></div>"+"</body></html>";_37.write(_38);_37.close();return win;};function _36(wn){var d=new Date();d.setTime(d.getTime()+(60*24*60*60*1000));d=d.toUTCString();var dc=wn.document,_39;if(wn.innerWidth){_39=function(){return {w:wn.innerWidth,h:wn.innerHeight};};}else{if(dc.documentElement&&dc.documentElement.clientWidth){_39=function(){return {w:dc.documentElement.clientWidth,h:dc.documentElement.clientHeight};};}else{if(dc.body){_39=function(){return {w:dc.body.clientWidth,h:dc.body.clientHeight};};}}}window.onFirebugResize=function(){_47(_39().h);clearInterval(wn._firebugWin_resize);wn._firebugWin_resize=setTimeout(function(){var x=wn.screenLeft,y=wn.screenTop,w=wn.outerWidth||wn.document.body.offsetWidth,h=wn.outerHeight||wn.document.body.offsetHeight;document.cookie="_firebugPosition="+[x,y,w,h].join(",")+"; expires="+d+"; path=/";},5000);};};function _3a(){if(_9){return;}_2f(true);if(_1.config.popup){var _3b="100%";var _3c=document.cookie.match(/(?:^|; )_firebugPosition=([^;]*)/);var p=_3c?_3c[1].split(","):[2,2,320,480];_7=_35(p[0],p[1],p[2],p[3]);_6=_7.document;_1.config.debugContainerId="fb";_7.console=window.console;_7.dojo=window.dojo;}else{_6=document;_3b=(_1.config.debugHeight||300)+"px";}var _3d=_6.createElement("link");_3d.href=_2.toUrl("./firebug.css");_3d.rel="stylesheet";_3d.type="text/css";var _3e=_6.getElementsByTagName("head");if(_3e){_3e=_3e[0];}if(!_3e){_3e=_6.getElementsByTagName("html")[0];}if(_1.isIE){window.setTimeout(function(){_3e.appendChild(_3d);},0);}else{_3e.appendChild(_3d);}if(_1.config.debugContainerId){_9=_6.getElementById(_1.config.debugContainerId);}if(!_9){_9=_6.createElement("div");_6.body.appendChild(_9);}_9.className+=" firebug";_9.style.height=_3b;_9.style.display=(_f?"block":"none");var _3f=function(_40,_41,_42,_43){return "<li class=\""+_43+"\"><a href=\"javascript:void(0);\" onclick=\"console."+_42+"(); return false;\" title=\""+_41+"\">"+_40+"</a></li>";};_9.innerHTML="<div id=\"firebugToolbar\">"+" <ul id=\"fireBugTabs\" class=\"tabs\">"+_3f("Clear","Remove All Console Logs","clear","")+_3f("ReCSS","Refresh CSS without reloading page","recss","")+_3f("Console","Show Console Logs","openConsole","gap")+_3f("DOM","Show DOM Inspector","openDomInspector","")+_3f("Object","Show Object Inspector","openObjectInspector","")+((_1.config.popup)?"":_3f("Close","Close the console","close","gap"))+"\t</ul>"+"</div>"+"<input type=\"text\" id=\"firebugCommandLine\" />"+"<div id=\"firebugLog\"></div>"+"<div id=\"objectLog\" style=\"display:none;\">Click on an object in the Log display</div>"+"<div id=\"domInspect\" style=\"display:none;\">Hover over HTML elements in the main page. Click to hold selection.</div>";_e=_6.getElementById("firebugToolbar");_d=_6.getElementById("firebugCommandLine");_44(_d,"keydown",_45);_44(_6,_1.isIE||_1.isSafari?"keydown":"keypress",_46);_a=_6.getElementById("firebugLog");_b=_6.getElementById("objectLog");_14=_6.getElementById("domInspect");_c=_6.getElementById("fireBugTabs");_47();_48();};_1.addOnLoad(_3a);function _49(){_6=null;if(_7.console){_7.console.clear();}_7=null;_9=null;_a=null;_b=null;_14=null;_d=null;_10=[];_11=[];_12={};};function _4a(){var _4b=_d.value;_d.value="";_21(["> ",_4b],"command");var _4c;try{_4c=eval(_4b);}catch(e){}};function _47(h){var _4d=25;var _4e=h?h-(_4d+_d.offsetHeight+25+(h*0.01))+"px":(_9.offsetHeight-_4d-_d.offsetHeight)+"px";_a.style.top=_4d+"px";_a.style.height=_4e;_b.style.height=_4e;_b.style.top=_4d+"px";_14.style.height=_4e;_14.style.top=_4d+"px";_d.style.bottom=0;_1.addOnWindowUnload(_49);};function _21(_4f,_50,_51){if(_a){_52(_4f,_50,_51);}else{_10.push([_4f,_50,_51]);}};function _48(){var _53=_10;_10=[];for(var i=0;i<_53.length;++i){_52(_53[i][0],_53[i][1],_53[i][2]);}};function _52(_54,_55,_56){var _57=_a.scrollTop+_a.offsetHeight>=_a.scrollHeight;_56=_56||_58;_56(_54,_55);if(_57){_a.scrollTop=_a.scrollHeight-_a.offsetHeight;}};function _59(row){var _5a=_11.length?_11[_11.length-1]:_a;_5a.appendChild(row);};function _58(_5b,_5c){var row=_a.ownerDocument.createElement("div");row.className="logRow"+(_5c?" logRow-"+_5c:"");row.innerHTML=_5b.join("");_59(row);};function _25(_5d,_5e){_1c(_5d,_5e);var _5f=_a.ownerDocument.createElement("div");_5f.className="logGroupBox";_59(_5f);_11.push(_5f);};function _26(){_11.pop();};function _1c(_60,_61){var _62=[];var _63=_60[0];var _64=0;if(typeof (_63)!="string"){_63="";_64=-1;}var _65=_66(_63);for(var i=0;i<_65.length;++i){var _67=_65[i];if(_67&&typeof _67=="object"){_67.appender(_60[++_64],_62);}else{_68(_67,_62);}}var ids=[];var obs=[];for(i=_64+1;i<_60.length;++i){_68(" ",_62);var _69=_60[i];if(_69===undefined||_69===null){_6a(_69,_62);}else{if(typeof (_69)=="string"){_68(_69,_62);}else{if(_69 instanceof Date){_68(_69.toString(),_62);}else{if(_69.nodeType==9){_68("[ XmlDoc ]",_62);}else{var id="_a"+_8++;ids.push(id);obs.push(_69);var str="<a id=\""+id+"\" href=\"javascript:void(0);\">"+_6b(_69)+"</a>";_6c(str,_62);}}}}}_21(_62,_61);for(i=0;i<ids.length;i++){var btn=_6.getElementById(ids[i]);if(!btn){continue;}btn.obj=obs[i];_7.console._connects.push(_1.connect(btn,"onclick",function(){console.openObjectInspector();try{_20(this.obj);}catch(e){this.obj=e;}_b.innerHTML="<pre>"+_20(this.obj)+"</pre>";}));}};function _66(_6d){var _6e=[];var reg=/((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/;var _6f={s:_68,d:_70,i:_70,f:_71};for(var m=reg.exec(_6d);m;m=reg.exec(_6d)){var _72=m[8]?m[8]:m[5];var _73=_72 in _6f?_6f[_72]:_74;var _75=m[3]?parseInt(m[3]):(m[4]=="."?-1:0);_6e.push(_6d.substr(0,m[0][0]=="%"?m.index:m.index+1));_6e.push({appender:_73,precision:_75});_6d=_6d.substr(m.index+m[0].length);}_6e.push(_6d);return _6e;};function _76(_77){function _78(ch){switch(ch){case "<":return "&lt;";case ">":return "&gt;";case "&":return "&amp;";case "'":return "&#39;";case "\"":return "&quot;";}return "?";};return String(_77).replace(/[<>&"']/g,_78);};function _79(_7a){try{return _7a+"";}catch(e){return null;}};function _6c(_7b,_7c){_7c.push(_79(_7b));};function _68(_7d,_7e){_7e.push(_76(_79(_7d)));};function _6a(_7f,_80){_80.push("<span class=\"objectBox-null\">",_76(_79(_7f)),"</span>");};function _81(_82,_83){_83.push("<span class=\"objectBox-string\">&quot;",_76(_79(_82)),"&quot;</span>");};function _70(_84,_85){_85.push("<span class=\"objectBox-number\">",_76(_79(_84)),"</span>");};function _71(_86,_87){_87.push("<span class=\"objectBox-number\">",_76(_79(_86)),"</span>");};function _88(_89,_8a){_8a.push("<span class=\"objectBox-function\">",_6b(_89),"</span>");};function _74(_8b,_8c){try{if(_8b===undefined){_6a("undefined",_8c);}else{if(_8b===null){_6a("null",_8c);}else{if(typeof _8b=="string"){_81(_8b,_8c);}else{if(typeof _8b=="number"){_70(_8b,_8c);}else{if(typeof _8b=="function"){_88(_8b,_8c);}else{if(_8b.nodeType==1){_8d(_8b,_8c);}else{if(typeof _8b=="object"){_8e(_8b,_8c);}else{_68(_8b,_8c);}}}}}}}}catch(e){}};function _8e(_8f,_90){var _91=_79(_8f);var _92=/\[object (.*?)\]/;var m=_92.exec(_91);_90.push("<span class=\"objectBox-object\">",m?m[1]:_91,"</span>");};function _8d(_93,_94){_94.push("<span class=\"objectBox-selector\">");_94.push("<span class=\"selectorTag\">",_76(_93.nodeName.toLowerCase()),"</span>");if(_93.id){_94.push("<span class=\"selectorId\">#",_76(_93.id),"</span>");}if(_93.className){_94.push("<span class=\"selectorClass\">.",_76(_93.className),"</span>");}_94.push("</span>");};function _24(_95,_96){if(_95.nodeType==1){_96.push("<div class=\"objectBox-element\">","&lt;<span class=\"nodeTag\">",_95.nodeName.toLowerCase(),"</span>");for(var i=0;i<_95.attributes.length;++i){var _97=_95.attributes[i];if(!_97.specified){continue;}_96.push("&nbsp;<span class=\"nodeName\">",_97.nodeName.toLowerCase(),"</span>=&quot;<span class=\"nodeValue\">",_76(_97.nodeValue),"</span>&quot;");}if(_95.firstChild){_96.push("&gt;</div><div class=\"nodeChildren\">");for(var _98=_95.firstChild;_98;_98=_98.nextSibling){_24(_98,_96);}_96.push("</div><div class=\"objectBox-element\">&lt;/<span class=\"nodeTag\">",_95.nodeName.toLowerCase(),"&gt;</span></div>");}else{_96.push("/&gt;</div>");}}else{if(_95.nodeType==3){_96.push("<div class=\"nodeText\">",_76(_95.nodeValue),"</div>");}}};function _44(_99,_9a,_9b){if(document.all){_99.attachEvent("on"+_9a,_9b);}else{_99.addEventListener(_9a,_9b,false);}};function _9c(_9d,_9e,_9f){if(document.all){_9d.detachEvent("on"+_9e,_9f);}else{_9d.removeEventListener(_9e,_9f,false);}};function _a0(_a1){if(document.all){_a1.cancelBubble=true;}else{_a1.stopPropagation();}};function _a2(msg,_a3,_a4){var _a5=_a3.lastIndexOf("/");var _a6=_a5==-1?_a3:_a3.substr(_a5+1);var _a7=["<span class=\"errorMessage\">",msg,"</span>","<div class=\"objectBox-sourceLink\">",_a6," (line ",_a4,")</div>"];_21(_a7,"error");};var _a8=new Date().getTime();function _46(_a9){var _aa=(new Date()).getTime();if(_aa>_a8+200){_a9=_1.fixEvent(_a9);var _ab=_1.keys;var ekc=_a9.keyCode;_a8=_aa;if(ekc==_ab.F12){_2f();}else{if((ekc==_ab.NUMPAD_ENTER||ekc==76)&&_a9.shiftKey&&(_a9.metaKey||_a9.ctrlKey)){_34();}else{return;}}_a0(_a9);}};function _45(e){var dk=_1.keys;if(e.keyCode==13&&_d.value){_ac(_d.value);_4a();}else{if(e.keyCode==27){_d.value="";}else{if(e.keyCode==dk.UP_ARROW||e.charCode==dk.UP_ARROW){_ad("older");}else{if(e.keyCode==dk.DOWN_ARROW||e.charCode==dk.DOWN_ARROW){_ad("newer");}else{if(e.keyCode==dk.HOME||e.charCode==dk.HOME){_ae=1;_ad("older");}else{if(e.keyCode==dk.END||e.charCode==dk.END){_ae=999999;_ad("newer");}}}}}}};var _ae=-1;var _af=null;function _ac(_b0){var _b1=_b2("firebug_history");_b1=(_b1)?_1.fromJson(_b1):[];var pos=_1.indexOf(_b1,_b0);if(pos!=-1){_b1.splice(pos,1);}_b1.push(_b0);_b2("firebug_history",_1.toJson(_b1),30);while(_b1.length&&!_b2("firebug_history")){_b1.shift();_b2("firebug_history",_1.toJson(_b1),30);}_af=null;_ae=-1;};function _ad(_b3){var _b4=_b2("firebug_history");_b4=(_b4)?_1.fromJson(_b4):[];if(!_b4.length){return;}if(_af===null){_af=_d.value;}if(_ae==-1){_ae=_b4.length;}if(_b3=="older"){--_ae;if(_ae<0){_ae=0;}}else{if(_b3=="newer"){++_ae;if(_ae>_b4.length){_ae=_b4.length;}}}if(_ae==_b4.length){_d.value=_af;_af=null;}else{_d.value=_b4[_ae];}};function _b2(_b5,_b6){var c=document.cookie;if(arguments.length==1){var _b7=c.match(new RegExp("(?:^|; )"+_b5+"=([^;]*)"));return _b7?decodeURIComponent(_b7[1]):undefined;}else{var d=new Date();d.setMonth(d.getMonth()+1);document.cookie=_b5+"="+encodeURIComponent(_b6)+((d.toUtcString)?"; expires="+d.toUTCString():"");}};function _b8(it){return it&&it instanceof Array||typeof it=="array";};function _b9(o){var cnt=0;for(var nm in o){cnt++;}return cnt;};function _20(o,i,txt,_ba){var ind=" \t";txt=txt||"";i=i||ind;_ba=_ba||[];var _bb;if(o&&o.nodeType==1){var _bc=[];_24(o,_bc);return _bc.join("");}var br=",\n",cnt=0,_bd=_b9(o);if(o instanceof Date){return i+o.toString()+br;}looking:for(var nm in o){cnt++;if(cnt==_bd){br="\n";}if(o[nm]===window||o[nm]===document){}else{if(o[nm]===null){txt+=i+nm+" : NULL"+br;}else{if(o[nm]&&o[nm].nodeType){if(o[nm].nodeType==1){}else{if(o[nm].nodeType==3){txt+=i+nm+" : [ TextNode "+o[nm].data+" ]"+br;}}}else{if(typeof o[nm]=="object"&&(o[nm] instanceof String||o[nm] instanceof Number||o[nm] instanceof Boolean)){txt+=i+nm+" : "+o[nm]+","+br;}else{if(o[nm] instanceof Date){txt+=i+nm+" : "+o[nm].toString()+br;}else{if(typeof (o[nm])=="object"&&o[nm]){for(var j=0,_be;_be=_ba[j];j++){if(o[nm]===_be){txt+=i+nm+" : RECURSION"+br;continue looking;}}_ba.push(o[nm]);_bb=(_b8(o[nm]))?["[","]"]:["{","}"];txt+=i+nm+" : "+_bb[0]+"\n";txt+=_20(o[nm],i+ind,"",_ba);txt+=i+_bb[1]+br;}else{if(typeof o[nm]=="undefined"){txt+=i+nm+" : undefined"+br;}else{if(nm=="toString"&&typeof o[nm]=="function"){var _bf=o[nm]();if(typeof _bf=="string"&&_bf.match(/function ?(.*?)\(/)){_bf=_76(_6b(o[nm]));}txt+=i+nm+" : "+_bf+br;}else{txt+=i+nm+" : "+_76(_6b(o[nm]))+br;}}}}}}}}}return txt;};function _6b(obj){var _c0=(obj instanceof Error);if(obj.nodeType==1){return _76("< "+obj.tagName.toLowerCase()+" id=\""+obj.id+"\" />");}if(obj.nodeType==3){return _76("[TextNode: \""+obj.nodeValue+"\"]");}var nm=(obj&&(obj.id||obj.name||obj.ObjectID||obj.widgetId));if(!_c0&&nm){return "{"+nm+"}";}var _c1=2;var _c2=4;var cnt=0;if(_c0){nm="[ Error: "+(obj.message||obj.description||obj)+" ]";}else{if(_b8(obj)){nm="["+obj.slice(0,_c2).join(",");if(obj.length>_c2){nm+=" ... ("+obj.length+" items)";}nm+="]";}else{if(typeof obj=="function"){nm=obj+"";var reg=/function\s*([^\(]*)(\([^\)]*\))[^\{]*\{/;var m=reg.exec(nm);if(m){if(!m[1]){m[1]="function";}nm=m[1]+m[2];}else{nm="function()";}}else{if(typeof obj!="object"||typeof obj=="string"){nm=obj+"";}else{nm="{";for(var i in obj){cnt++;if(cnt>_c1){break;}nm+=i+":"+_76(obj[i])+" ";}nm+="}";}}}}return nm;};_44(document,_1.isIE||_1.isSafari?"keydown":"keypress",_46);if((document.documentElement.getAttribute("debug")=="true")||(_1.config.isDebug)){_2f(true);}_1.addOnWindowUnload(function(){_9c(document,_1.isIE||_1.isSafari?"keydown":"keypress",_46);window.onFirebugResize=null;window.console=null;});}); \ No newline at end of file
+define("dojo/_firebug/firebug",["../_base/kernel","require","../_base/html","../sniff","../_base/array","../_base/lang","../_base/event","../_base/unload"],function(_1,_2,_3,_4){var _5=(/Trident/.test(window.navigator.userAgent));if(_5){var _6=["log","info","debug","warn","error"];for(var i=0;i<_6.length;i++){var m=_6[i];if(!console[m]||console[m]._fake){continue;}var n="_"+_6[i];console[n]=console[m];console[m]=(function(){var _7=n;return function(){console[_7](Array.prototype.join.call(arguments," "));};})();}try{console.clear();}catch(e){}}if(_4("ff")||_4("chrome")||_4("safari")||_5||window.firebug||(typeof console!="undefined"&&console.firebug)||_1.config.useCustomLogger||_4("air")){return;}try{if(window!=window.parent){if(window.parent["console"]){window.console=window.parent.console;}return;}}catch(e){}var _8=document;var _9=window;var _a=0;var _b=null;var _c=null;var _d=null;var _e=null;var _f=null;var _10=null;var _11=false;var _12=[];var _13=[];var _14={};var _15={};var _16=null;var _17;var _18;var _19=false;var _1a=null;var _1b=document.createElement("div");var _1c;var _1d;window.console={_connects:[],log:function(){_1e(arguments,"");},debug:function(){_1e(arguments,"debug");},info:function(){_1e(arguments,"info");},warn:function(){_1e(arguments,"warning");},error:function(){_1e(arguments,"error");},assert:function(_1f,_20){if(!_1f){var _21=[];for(var i=1;i<arguments.length;++i){_21.push(arguments[i]);}_1e(_21.length?_21:["Assertion Failure"],"error");throw _20?_20:"Assertion Failure";}},dir:function(obj){var str=_22(obj);str=str.replace(/\n/g,"<br />");str=str.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");_23([str],"dir");},dirxml:function(_24){var _25=[];_26(_24,_25);_23(_25,"dirxml");},group:function(){_23(arguments,"group",_27);},groupEnd:function(){_23(arguments,"",_28);},time:function(_29){_14[_29]=new Date().getTime();},timeEnd:function(_2a){if(_2a in _14){var _2b=(new Date()).getTime()-_14[_2a];_1e([_2a+":",_2b+"ms"]);delete _14[_2a];}},count:function(_2c){if(!_15[_2c]){_15[_2c]=0;}_15[_2c]++;_1e([_2c+": "+_15[_2c]]);},trace:function(_2d){var _2e=_2d||3;var f=console.trace.caller;for(var i=0;i<_2e;i++){var _2f=f.toString();var _30=[];for(var a=0;a<f.arguments.length;a++){_30.push(f.arguments[a]);}if(f.arguments.length){}else{}f=f.caller;}},profile:function(){this.warn(["profile() not supported."]);},profileEnd:function(){},clear:function(){if(_c){while(_c.childNodes.length){_1.destroy(_c.firstChild);}}_1.forEach(this._connects,_1.disconnect);},open:function(){_31(true);},close:function(){if(_11){_31();}},_restoreBorder:function(){if(_1c){_1c.style.border=_1d;}},openDomInspector:function(){_19=true;_c.style.display="none";_16.style.display="block";_d.style.display="none";document.body.style.cursor="pointer";_17=_1.connect(document,"mousemove",function(evt){if(!_19){return;}if(!_1a){_1a=setTimeout(function(){_1a=null;},50);}else{return;}var _32=evt.target;if(_32&&(_1c!==_32)){var _33=true;console._restoreBorder();var _34=[];_26(_32,_34);_16.innerHTML=_34.join("");_1c=_32;_1d=_1c.style.border;_1c.style.border="#0000FF 1px solid";}});setTimeout(function(){_18=_1.connect(document,"click",function(evt){document.body.style.cursor="";_19=!_19;_1.disconnect(_18);});},30);},_closeDomInspector:function(){document.body.style.cursor="";_1.disconnect(_17);_1.disconnect(_18);_19=false;console._restoreBorder();},openConsole:function(){_c.style.display="block";_16.style.display="none";_d.style.display="none";console._closeDomInspector();},openObjectInspector:function(){_c.style.display="none";_16.style.display="none";_d.style.display="block";console._closeDomInspector();},recss:function(){var i,a,s;a=document.getElementsByTagName("link");for(i=0;i<a.length;i++){s=a[i];if(s.rel.toLowerCase().indexOf("stylesheet")>=0&&s.href){var h=s.href.replace(/(&|%5C?)forceReload=\d+/,"");s.href=h+(h.indexOf("?")>=0?"&":"?")+"forceReload="+new Date().valueOf();}}}};function _31(_35){_11=_35||!_11;if(_b){_b.style.display=_11?"block":"none";}};function _36(){_31(true);if(_f){_f.focus();}};function _37(x,y,w,h){var win=window.open("","_firebug","status=0,menubar=0,resizable=1,top="+y+",left="+x+",width="+w+",height="+h+",scrollbars=1,addressbar=0");if(!win){var msg="Firebug Lite could not open a pop-up window, most likely because of a blocker.\n"+"Either enable pop-ups for this domain, or change the djConfig to popup=false.";alert(msg);}_38(win);var _39=win.document;var _3a="<html style=\"height:100%;\"><head><title>Firebug Lite</title></head>\n"+"<body bgColor=\"#ccc\" style=\"height:97%;\" onresize=\"opener.onFirebugResize()\">\n"+"<div id=\"fb\"></div>"+"</body></html>";_39.write(_3a);_39.close();return win;};function _38(wn){var d=new Date();d.setTime(d.getTime()+(60*24*60*60*1000));d=d.toUTCString();var dc=wn.document,_3b;if(wn.innerWidth){_3b=function(){return {w:wn.innerWidth,h:wn.innerHeight};};}else{if(dc.documentElement&&dc.documentElement.clientWidth){_3b=function(){return {w:dc.documentElement.clientWidth,h:dc.documentElement.clientHeight};};}else{if(dc.body){_3b=function(){return {w:dc.body.clientWidth,h:dc.body.clientHeight};};}}}window.onFirebugResize=function(){_49(_3b().h);clearInterval(wn._firebugWin_resize);wn._firebugWin_resize=setTimeout(function(){var x=wn.screenLeft,y=wn.screenTop,w=wn.outerWidth||wn.document.body.offsetWidth,h=wn.outerHeight||wn.document.body.offsetHeight;document.cookie="_firebugPosition="+[x,y,w,h].join(",")+"; expires="+d+"; path=/";},5000);};};function _3c(){if(_b){return;}_31(true);if(_1.config.popup){var _3d="100%";var _3e=document.cookie.match(/(?:^|; )_firebugPosition=([^;]*)/);var p=_3e?_3e[1].split(","):[2,2,320,480];_9=_37(p[0],p[1],p[2],p[3]);_8=_9.document;_1.config.debugContainerId="fb";_9.console=window.console;_9.dojo=window.dojo;}else{_8=document;_3d=(_1.config.debugHeight||300)+"px";}var _3f=_8.createElement("link");_3f.href=_2.toUrl("./firebug.css");_3f.rel="stylesheet";_3f.type="text/css";var _40=_8.getElementsByTagName("head");if(_40){_40=_40[0];}if(!_40){_40=_8.getElementsByTagName("html")[0];}if(_4("ie")){window.setTimeout(function(){_40.appendChild(_3f);},0);}else{_40.appendChild(_3f);}if(_1.config.debugContainerId){_b=_8.getElementById(_1.config.debugContainerId);}if(!_b){_b=_8.createElement("div");_8.body.appendChild(_b);}_b.className+=" firebug";_b.id="firebug";_b.style.height=_3d;_b.style.display=(_11?"block":"none");var _41=function(_42,_43,_44,_45){return "<li class=\""+_45+"\"><a href=\"javascript:void(0);\" onclick=\"console."+_44+"(); return false;\" title=\""+_43+"\">"+_42+"</a></li>";};_b.innerHTML="<div id=\"firebugToolbar\">"+" <ul id=\"fireBugTabs\" class=\"tabs\">"+_41("Clear","Remove All Console Logs","clear","")+_41("ReCSS","Refresh CSS without reloading page","recss","")+_41("Console","Show Console Logs","openConsole","gap")+_41("DOM","Show DOM Inspector","openDomInspector","")+_41("Object","Show Object Inspector","openObjectInspector","")+((_1.config.popup)?"":_41("Close","Close the console","close","gap"))+"\t</ul>"+"</div>"+"<input type=\"text\" id=\"firebugCommandLine\" />"+"<div id=\"firebugLog\"></div>"+"<div id=\"objectLog\" style=\"display:none;\">Click on an object in the Log display</div>"+"<div id=\"domInspect\" style=\"display:none;\">Hover over HTML elements in the main page. Click to hold selection.</div>";_10=_8.getElementById("firebugToolbar");_f=_8.getElementById("firebugCommandLine");_46(_f,"keydown",_47);_46(_8,_4("ie")||_4("safari")?"keydown":"keypress",_48);_c=_8.getElementById("firebugLog");_d=_8.getElementById("objectLog");_16=_8.getElementById("domInspect");_e=_8.getElementById("fireBugTabs");_49();_4a();};_1.addOnLoad(_3c);function _4b(){_8=null;if(_9.console){_9.console.clear();}_9=null;_b=null;_c=null;_d=null;_16=null;_f=null;_12=[];_13=[];_14={};};function _4c(){var _4d=_f.value;_f.value="";_23(["> ",_4d],"command");var _4e;try{_4e=eval(_4d);}catch(e){}};function _49(h){var _4f=25;var _50=h?h-(_4f+_f.offsetHeight+25+(h*0.01))+"px":(_b.offsetHeight-_4f-_f.offsetHeight)+"px";_c.style.top=_4f+"px";_c.style.height=_50;_d.style.height=_50;_d.style.top=_4f+"px";_16.style.height=_50;_16.style.top=_4f+"px";_f.style.bottom=0;_1.addOnWindowUnload(_4b);};function _23(_51,_52,_53){if(_c){_54(_51,_52,_53);}else{_12.push([_51,_52,_53]);}};function _4a(){var _55=_12;_12=[];for(var i=0;i<_55.length;++i){_54(_55[i][0],_55[i][1],_55[i][2]);}};function _54(_56,_57,_58){var _59=_c.scrollTop+_c.offsetHeight>=_c.scrollHeight;_58=_58||_5a;_58(_56,_57);if(_59){_c.scrollTop=_c.scrollHeight-_c.offsetHeight;}};function _5b(row){var _5c=_13.length?_13[_13.length-1]:_c;_5c.appendChild(row);};function _5a(_5d,_5e){var row=_c.ownerDocument.createElement("div");row.className="logRow"+(_5e?" logRow-"+_5e:"");row.innerHTML=_5d.join("");_5b(row);};function _27(_5f,_60){_1e(_5f,_60);var _61=_c.ownerDocument.createElement("div");_61.className="logGroupBox";_5b(_61);_13.push(_61);};function _28(){_13.pop();};function _1e(_62,_63){var _64=[];var _65=_62[0];var _66=0;if(typeof (_65)!="string"){_65="";_66=-1;}var _67=_68(_65);for(var i=0;i<_67.length;++i){var _69=_67[i];if(_69&&typeof _69=="object"){_69.appender(_62[++_66],_64);}else{_6a(_69,_64);}}var ids=[];var obs=[];for(i=_66+1;i<_62.length;++i){_6a(" ",_64);var _6b=_62[i];if(_6b===undefined||_6b===null){_6c(_6b,_64);}else{if(typeof (_6b)=="string"){_6a(_6b,_64);}else{if(_6b instanceof Date){_6a(_6b.toString(),_64);}else{if(_6b.nodeType==9){_6a("[ XmlDoc ]",_64);}else{var id="_a"+_a++;ids.push(id);obs.push(_6b);var str="<a id=\""+id+"\" href=\"javascript:void(0);\">"+_6d(_6b)+"</a>";_6e(str,_64);}}}}}_23(_64,_63);for(i=0;i<ids.length;i++){var btn=_8.getElementById(ids[i]);if(!btn){continue;}btn.obj=obs[i];_9.console._connects.push(_1.connect(btn,"onclick",function(){console.openObjectInspector();try{_22(this.obj);}catch(e){this.obj=e;}_d.innerHTML="<pre>"+_22(this.obj)+"</pre>";}));}};function _68(_6f){var _70=[];var reg=/((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/;var _71={s:_6a,d:_72,i:_72,f:_73};for(var m=reg.exec(_6f);m;m=reg.exec(_6f)){var _74=m[8]?m[8]:m[5];var _75=_74 in _71?_71[_74]:_76;var _77=m[3]?parseInt(m[3]):(m[4]=="."?-1:0);_70.push(_6f.substr(0,m[0][0]=="%"?m.index:m.index+1));_70.push({appender:_75,precision:_77});_6f=_6f.substr(m.index+m[0].length);}_70.push(_6f);return _70;};function _78(_79){function _7a(ch){switch(ch){case "<":return "&lt;";case ">":return "&gt;";case "&":return "&amp;";case "'":return "&#39;";case "\"":return "&quot;";}return "?";};return String(_79).replace(/[<>&"']/g,_7a);};function _7b(_7c){try{return _7c+"";}catch(e){return null;}};function _6e(_7d,_7e){_7e.push(_7b(_7d));};function _6a(_7f,_80){_80.push(_78(_7b(_7f)));};function _6c(_81,_82){_82.push("<span class=\"objectBox-null\">",_78(_7b(_81)),"</span>");};function _83(_84,_85){_85.push("<span class=\"objectBox-string\">&quot;",_78(_7b(_84)),"&quot;</span>");};function _72(_86,_87){_87.push("<span class=\"objectBox-number\">",_78(_7b(_86)),"</span>");};function _73(_88,_89){_89.push("<span class=\"objectBox-number\">",_78(_7b(_88)),"</span>");};function _8a(_8b,_8c){_8c.push("<span class=\"objectBox-function\">",_6d(_8b),"</span>");};function _76(_8d,_8e){try{if(_8d===undefined){_6c("undefined",_8e);}else{if(_8d===null){_6c("null",_8e);}else{if(typeof _8d=="string"){_83(_8d,_8e);}else{if(typeof _8d=="number"){_72(_8d,_8e);}else{if(typeof _8d=="function"){_8a(_8d,_8e);}else{if(_8d.nodeType==1){_8f(_8d,_8e);}else{if(typeof _8d=="object"){_90(_8d,_8e);}else{_6a(_8d,_8e);}}}}}}}}catch(e){}};function _90(_91,_92){var _93=_7b(_91);var _94=/\[object (.*?)\]/;var m=_94.exec(_93);_92.push("<span class=\"objectBox-object\">",m?m[1]:_93,"</span>");};function _8f(_95,_96){_96.push("<span class=\"objectBox-selector\">");_96.push("<span class=\"selectorTag\">",_78(_95.nodeName.toLowerCase()),"</span>");if(_95.id){_96.push("<span class=\"selectorId\">#",_78(_95.id),"</span>");}if(_95.className){_96.push("<span class=\"selectorClass\">.",_78(_95.className),"</span>");}_96.push("</span>");};function _26(_97,_98){if(_97.nodeType==1){_98.push("<div class=\"objectBox-element\">","&lt;<span class=\"nodeTag\">",_97.nodeName.toLowerCase(),"</span>");for(var i=0;i<_97.attributes.length;++i){var _99=_97.attributes[i];if(!_99.specified){continue;}_98.push("&nbsp;<span class=\"nodeName\">",_99.nodeName.toLowerCase(),"</span>=&quot;<span class=\"nodeValue\">",_78(_99.nodeValue),"</span>&quot;");}if(_97.firstChild){_98.push("&gt;</div><div class=\"nodeChildren\">");for(var _9a=_97.firstChild;_9a;_9a=_9a.nextSibling){_26(_9a,_98);}_98.push("</div><div class=\"objectBox-element\">&lt;/<span class=\"nodeTag\">",_97.nodeName.toLowerCase(),"&gt;</span></div>");}else{_98.push("/&gt;</div>");}}else{if(_97.nodeType==3){_98.push("<div class=\"nodeText\">",_78(_97.nodeValue),"</div>");}}};function _46(_9b,_9c,_9d){if(document.all){_9b.attachEvent("on"+_9c,_9d);}else{_9b.addEventListener(_9c,_9d,false);}};function _9e(_9f,_a0,_a1){if(document.all){_9f.detachEvent("on"+_a0,_a1);}else{_9f.removeEventListener(_a0,_a1,false);}};function _a2(_a3){if(document.all){_a3.cancelBubble=true;}else{_a3.stopPropagation();}};function _a4(msg,_a5,_a6){var _a7=_a5.lastIndexOf("/");var _a8=_a7==-1?_a5:_a5.substr(_a7+1);var _a9=["<span class=\"errorMessage\">",msg,"</span>","<div class=\"objectBox-sourceLink\">",_a8," (line ",_a6,")</div>"];_23(_a9,"error");};var _aa=new Date().getTime();function _48(_ab){var _ac=(new Date()).getTime();if(_ac>_aa+200){_ab=_1.fixEvent(_ab);var _ad=_1.keys;var ekc=_ab.keyCode;_aa=_ac;if(ekc==_ad.F12){_31();}else{if((ekc==_ad.NUMPAD_ENTER||ekc==76)&&_ab.shiftKey&&(_ab.metaKey||_ab.ctrlKey)){_36();}else{return;}}_a2(_ab);}};function _47(e){var dk=_1.keys;if(e.keyCode==13&&_f.value){_ae(_f.value);_4c();}else{if(e.keyCode==27){_f.value="";}else{if(e.keyCode==dk.UP_ARROW||e.charCode==dk.UP_ARROW){_af("older");}else{if(e.keyCode==dk.DOWN_ARROW||e.charCode==dk.DOWN_ARROW){_af("newer");}else{if(e.keyCode==dk.HOME||e.charCode==dk.HOME){_b0=1;_af("older");}else{if(e.keyCode==dk.END||e.charCode==dk.END){_b0=999999;_af("newer");}}}}}}};var _b0=-1;var _b1=null;function _ae(_b2){var _b3=_b4("firebug_history");_b3=(_b3)?_1.fromJson(_b3):[];var pos=_1.indexOf(_b3,_b2);if(pos!=-1){_b3.splice(pos,1);}_b3.push(_b2);_b4("firebug_history",_1.toJson(_b3),30);while(_b3.length&&!_b4("firebug_history")){_b3.shift();_b4("firebug_history",_1.toJson(_b3),30);}_b1=null;_b0=-1;};function _af(_b5){var _b6=_b4("firebug_history");_b6=(_b6)?_1.fromJson(_b6):[];if(!_b6.length){return;}if(_b1===null){_b1=_f.value;}if(_b0==-1){_b0=_b6.length;}if(_b5=="older"){--_b0;if(_b0<0){_b0=0;}}else{if(_b5=="newer"){++_b0;if(_b0>_b6.length){_b0=_b6.length;}}}if(_b0==_b6.length){_f.value=_b1;_b1=null;}else{_f.value=_b6[_b0];}};function _b4(_b7,_b8){var c=document.cookie;if(arguments.length==1){var _b9=c.match(new RegExp("(?:^|; )"+_b7+"=([^;]*)"));return _b9?decodeURIComponent(_b9[1]):undefined;}else{var d=new Date();d.setMonth(d.getMonth()+1);document.cookie=_b7+"="+encodeURIComponent(_b8)+((d.toUtcString)?"; expires="+d.toUTCString():"");}};function _ba(it){return it&&it instanceof Array||typeof it=="array";};function _bb(o){var cnt=0;for(var nm in o){cnt++;}return cnt;};function _22(o,i,txt,_bc){var ind=" \t";txt=txt||"";i=i||ind;_bc=_bc||[];var _bd;if(o&&o.nodeType==1){var _be=[];_26(o,_be);return _be.join("");}var br=",\n",cnt=0,_bf=_bb(o);if(o instanceof Date){return i+o.toString()+br;}looking:for(var nm in o){cnt++;if(cnt==_bf){br="\n";}if(o[nm]===window||o[nm]===document){}else{if(o[nm]===null){txt+=i+nm+" : NULL"+br;}else{if(o[nm]&&o[nm].nodeType){if(o[nm].nodeType==1){}else{if(o[nm].nodeType==3){txt+=i+nm+" : [ TextNode "+o[nm].data+" ]"+br;}}}else{if(typeof o[nm]=="object"&&(o[nm] instanceof String||o[nm] instanceof Number||o[nm] instanceof Boolean)){txt+=i+nm+" : "+o[nm]+","+br;}else{if(o[nm] instanceof Date){txt+=i+nm+" : "+o[nm].toString()+br;}else{if(typeof (o[nm])=="object"&&o[nm]){for(var j=0,_c0;_c0=_bc[j];j++){if(o[nm]===_c0){txt+=i+nm+" : RECURSION"+br;continue looking;}}_bc.push(o[nm]);_bd=(_ba(o[nm]))?["[","]"]:["{","}"];txt+=i+nm+" : "+_bd[0]+"\n";txt+=_22(o[nm],i+ind,"",_bc);txt+=i+_bd[1]+br;}else{if(typeof o[nm]=="undefined"){txt+=i+nm+" : undefined"+br;}else{if(nm=="toString"&&typeof o[nm]=="function"){var _c1=o[nm]();if(typeof _c1=="string"&&_c1.match(/function ?(.*?)\(/)){_c1=_78(_6d(o[nm]));}txt+=i+nm+" : "+_c1+br;}else{txt+=i+nm+" : "+_78(_6d(o[nm]))+br;}}}}}}}}}return txt;};function _6d(obj){var _c2=(obj instanceof Error);if(obj.nodeType==1){return _78("< "+obj.tagName.toLowerCase()+" id=\""+obj.id+"\" />");}if(obj.nodeType==3){return _78("[TextNode: \""+obj.nodeValue+"\"]");}var nm=(obj&&(obj.id||obj.name||obj.ObjectID||obj.widgetId));if(!_c2&&nm){return "{"+nm+"}";}var _c3=2;var _c4=4;var cnt=0;if(_c2){nm="[ Error: "+(obj.message||obj.description||obj)+" ]";}else{if(_ba(obj)){nm="["+obj.slice(0,_c4).join(",");if(obj.length>_c4){nm+=" ... ("+obj.length+" items)";}nm+="]";}else{if(typeof obj=="function"){nm=obj+"";var reg=/function\s*([^\(]*)(\([^\)]*\))[^\{]*\{/;var m=reg.exec(nm);if(m){if(!m[1]){m[1]="function";}nm=m[1]+m[2];}else{nm="function()";}}else{if(typeof obj!="object"||typeof obj=="string"){nm=obj+"";}else{nm="{";for(var i in obj){cnt++;if(cnt>_c3){break;}nm+=i+":"+_78(obj[i])+" ";}nm+="}";}}}}return nm;};_46(document,_4("ie")||_4("safari")?"keydown":"keypress",_48);if((document.documentElement.getAttribute("debug")=="true")||(_1.config.isDebug)){_31(true);}_1.addOnWindowUnload(function(){_9e(document,_4("ie")||_4("safari")?"keydown":"keypress",_48);window.onFirebugResize=null;window.console=null;});}); \ No newline at end of file
diff --git a/lib/dojo/aspect.js b/lib/dojo/aspect.js
index 823b0ff58..5198ccd7b 100644
--- a/lib/dojo/aspect.js
+++ b/lib/dojo/aspect.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/aspect",[],function(){"use strict";var _1=0;function _2(_3,_4,_5,_6){var _7=_3[_4];var _8=_4=="around";var _9;if(_8){var _a=_5(function(){return _7.advice(this,arguments);});_9={remove:function(){_9.cancelled=true;},advice:function(_b,_c){return _9.cancelled?_7.advice(_b,_c):_a.apply(_b,_c);}};}else{_9={remove:function(){var _d=_9.previous;var _e=_9.next;if(!_e&&!_d){delete _3[_4];}else{if(_d){_d.next=_e;}else{_3[_4]=_e;}if(_e){_e.previous=_d;}}},id:_1++,advice:_5,receiveArguments:_6};}if(_7&&!_8){if(_4=="after"){var _f=_7;while(_f){_7=_f;_f=_f.next;}_7.next=_9;_9.previous=_7;}else{if(_4=="before"){_3[_4]=_9;_9.next=_7;_7.previous=_9;}}}else{_3[_4]=_9;}return _9;};function _10(_11){return function(_12,_13,_14,_15){var _16=_12[_13],_17;if(!_16||_16.target!=_12){_12[_13]=_17=function(){var _18=_1;var _19=arguments;var _1a=_17.before;while(_1a){_19=_1a.advice.apply(this,_19)||_19;_1a=_1a.next;}if(_17.around){var _1b=_17.around.advice(this,_19);}var _1c=_17.after;while(_1c&&_1c.id<_18){_1b=_1c.receiveArguments?_1c.advice.apply(this,_19)||_1b:_1c.advice.call(this,_1b);_1c=_1c.next;}return _1b;};if(_16){_17.around={advice:function(_1d,_1e){return _16.apply(_1d,_1e);}};}_17.target=_12;}var _1f=_2((_17||_16),_11,_14,_15);_14=null;return _1f;};};return {before:_10("before"),around:_10("around"),after:_10("after")};}); \ No newline at end of file
+define("dojo/aspect",[],function(){"use strict";var _1,_2=0;function _3(_4,_5,_6,_7){var _8=_4[_5];var _9=_5=="around";var _a;if(_9){var _b=_6(function(){return _8.advice(this,arguments);});_a={remove:function(){_a.cancelled=true;},advice:function(_c,_d){return _a.cancelled?_8.advice(_c,_d):_b.apply(_c,_d);}};}else{_a={remove:function(){var _e=_a.previous;var _f=_a.next;if(!_f&&!_e){delete _4[_5];}else{if(_e){_e.next=_f;}else{_4[_5]=_f;}if(_f){_f.previous=_e;}}},id:_2++,advice:_6,receiveArguments:_7};}if(_8&&!_9){if(_5=="after"){while(_8.next&&(_8=_8.next)){}_8.next=_a;_a.previous=_8;}else{if(_5=="before"){_4[_5]=_a;_a.next=_8;_8.previous=_a;}}}else{_4[_5]=_a;}return _a;};function _10(_11){return function(_12,_13,_14,_15){var _16=_12[_13],_17;if(!_16||_16.target!=_12){_12[_13]=_17=function(){var _18=_2;var _19=arguments;var _1a=_17.before;while(_1a){_19=_1a.advice.apply(this,_19)||_19;_1a=_1a.next;}if(_17.around){var _1b=_17.around.advice(this,_19);}var _1c=_17.after;while(_1c&&_1c.id<_18){if(_1c.receiveArguments){var _1d=_1c.advice.apply(this,_19);_1b=_1d===_1?_1b:_1d;}else{_1b=_1c.advice.call(this,_1b,_19);}_1c=_1c.next;}return _1b;};if(_16){_17.around={advice:function(_1e,_1f){return _16.apply(_1e,_1f);}};}_17.target=_12;}var _20=_3((_17||_16),_11,_14,_15);_14=null;return _20;};};var _21=_10("after");var _22=_10("before");var _23=_10("around");return {before:_22,around:_23,after:_21};}); \ No newline at end of file
diff --git a/lib/dojo/back.js b/lib/dojo/back.js
index c012e7db1..98d2fc922 100644
--- a/lib/dojo/back.js
+++ b/lib/dojo/back.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/back",["./_base/kernel","./_base/lang","./_base/sniff","./dom","./dom-construct","./_base/window","require"],function(_1,_2,_3,_4,_5,_6,_7){_2.getObject("back",true,_1);var _8=_1.back,_9=_8.getHash=function(){var h=window.location.hash;if(h.charAt(0)=="#"){h=h.substring(1);}return _3("mozilla")?h:decodeURIComponent(h);},_a=_8.setHash=function(h){if(!h){h="";}window.location.hash=encodeURIComponent(h);_b=history.length;};var _c=(typeof (window)!=="undefined")?window.location.href:"";var _d=(typeof (window)!=="undefined")?_9():"";var _e=null;var _f=null;var _10=null;var _11=null;var _12=[];var _13=[];var _14=false;var _15=false;var _b;function _16(){var _17=_13.pop();if(!_17){return;}var _18=_13[_13.length-1];if(!_18&&_13.length==0){_18=_e;}if(_18){if(_18.kwArgs["back"]){_18.kwArgs["back"]();}else{if(_18.kwArgs["backButton"]){_18.kwArgs["backButton"]();}else{if(_18.kwArgs["handle"]){_18.kwArgs.handle("back");}}}}_12.push(_17);};_8.goBack=_16;function _19(){var _1a=_12.pop();if(!_1a){return;}if(_1a.kwArgs["forward"]){_1a.kwArgs.forward();}else{if(_1a.kwArgs["forwardButton"]){_1a.kwArgs.forwardButton();}else{if(_1a.kwArgs["handle"]){_1a.kwArgs.handle("forward");}}}_13.push(_1a);};_8.goForward=_19;function _1b(url,_1c,_1d){return {"url":url,"kwArgs":_1c,"urlHash":_1d};};function _1e(url){var _1f=url.split("?");if(_1f.length<2){return null;}else{return _1f[1];}};function _20(){var url=(_1.config["dojoIframeHistoryUrl"]||_7.toUrl("./resources/iframe_history.html"))+"?"+(new Date()).getTime();_14=true;if(_11){_3("webkit")?_11.location=url:window.frames[_11.name].location=url;}else{}return url;};function _21(){if(!_15){var hsl=_13.length;var _22=_9();if((_22===_d||window.location.href==_c)&&(hsl==1)){_16();return;}if(_12.length>0){if(_12[_12.length-1].urlHash===_22){_19();return;}}if((hsl>=2)&&(_13[hsl-2])){if(_13[hsl-2].urlHash===_22){_16();}}}};_8.init=function(){if(_4.byId("dj_history")){return;}var src=_1.config["dojoIframeHistoryUrl"]||_7.toUrl("./resources/iframe_history.html");if(_1._postLoad){console.error("dojo.back.init() must be called before the DOM has loaded. "+"If using xdomain loading or djConfig.debugAtAllCosts, include dojo.back "+"in a build layer.");}else{document.write("<iframe style=\"border:0;width:1px;height:1px;position:absolute;visibility:hidden;bottom:0;right:0;\" name=\"dj_history\" id=\"dj_history\" src=\""+src+"\"></iframe>");}};_8.setInitialState=function(_23){_e=_1b(_c,_23,_d);};_8.addToHistory=function(_24){_12=[];var _25=null;var url=null;if(!_11){if(_1.config["useXDomain"]&&!_1.config["dojoIframeHistoryUrl"]){console.warn("dojo.back: When using cross-domain Dojo builds,"+" please save iframe_history.html to your domain and set djConfig.dojoIframeHistoryUrl"+" to the path on your domain to iframe_history.html");}_11=window.frames["dj_history"];}if(!_10){_10=_5.create("a",{style:{display:"none"}},_6.body());}if(_24["changeUrl"]){_25=""+((_24["changeUrl"]!==true)?_24["changeUrl"]:(new Date()).getTime());if(_13.length==0&&_e.urlHash==_25){_e=_1b(url,_24,_25);return;}else{if(_13.length>0&&_13[_13.length-1].urlHash==_25){_13[_13.length-1]=_1b(url,_24,_25);return;}}_15=true;setTimeout(function(){_a(_25);_15=false;},1);_10.href=_25;if(_3("ie")){url=_20();var _26=_24["back"]||_24["backButton"]||_24["handle"];var tcb=function(_27){if(_9()!=""){setTimeout(function(){_a(_25);},1);}_26.apply(this,[_27]);};if(_24["back"]){_24.back=tcb;}else{if(_24["backButton"]){_24.backButton=tcb;}else{if(_24["handle"]){_24.handle=tcb;}}}var _28=_24["forward"]||_24["forwardButton"]||_24["handle"];var tfw=function(_29){if(_9()!=""){_a(_25);}if(_28){_28.apply(this,[_29]);}};if(_24["forward"]){_24.forward=tfw;}else{if(_24["forwardButton"]){_24.forwardButton=tfw;}else{if(_24["handle"]){_24.handle=tfw;}}}}else{if(!_3("ie")){if(!_f){_f=setInterval(_21,200);}}}}else{url=_20();}_13.push(_1b(url,_24,_25));};_8._iframeLoaded=function(evt,_2a){var _2b=_1e(_2a.href);if(_2b==null){if(_13.length==1){_16();}return;}if(_14){_14=false;return;}if(_13.length>=2&&_2b==_1e(_13[_13.length-2].url)){_16();}else{if(_12.length>0&&_2b==_1e(_12[_12.length-1].url)){_19();}}};return _1.back;}); \ No newline at end of file
+define("dojo/back",["./_base/config","./_base/lang","./sniff","./dom","./dom-construct","./_base/window","require"],function(_1,_2,_3,_4,_5,_6,_7){var _8={};1&&_2.setObject("dojo.back",_8);var _9=_8.getHash=function(){var h=window.location.hash;if(h.charAt(0)=="#"){h=h.substring(1);}return _3("mozilla")?h:decodeURIComponent(h);},_a=_8.setHash=function(h){if(!h){h="";}window.location.hash=encodeURIComponent(h);_b=history.length;};var _c=(typeof (window)!=="undefined")?window.location.href:"";var _d=(typeof (window)!=="undefined")?_9():"";var _e=null;var _f=null;var _10=null;var _11=null;var _12=[];var _13=[];var _14=false;var _15=false;var _b;function _16(){var _17=_13.pop();if(!_17){return;}var _18=_13[_13.length-1];if(!_18&&_13.length==0){_18=_e;}if(_18){if(_18.kwArgs["back"]){_18.kwArgs["back"]();}else{if(_18.kwArgs["backButton"]){_18.kwArgs["backButton"]();}else{if(_18.kwArgs["handle"]){_18.kwArgs.handle("back");}}}}_12.push(_17);};_8.goBack=_16;function _19(){var _1a=_12.pop();if(!_1a){return;}if(_1a.kwArgs["forward"]){_1a.kwArgs.forward();}else{if(_1a.kwArgs["forwardButton"]){_1a.kwArgs.forwardButton();}else{if(_1a.kwArgs["handle"]){_1a.kwArgs.handle("forward");}}}_13.push(_1a);};_8.goForward=_19;function _1b(url,_1c,_1d){return {"url":url,"kwArgs":_1c,"urlHash":_1d};};function _1e(url){var _1f=url.split("?");if(_1f.length<2){return null;}else{return _1f[1];}};function _20(){var url=(_1["dojoIframeHistoryUrl"]||_7.toUrl("./resources/iframe_history.html"))+"?"+(new Date()).getTime();_14=true;if(_11){_3("webkit")?_11.location=url:window.frames[_11.name].location=url;}else{}return url;};function _21(){if(!_15){var hsl=_13.length;var _22=_9();if((_22===_d||window.location.href==_c)&&(hsl==1)){_16();return;}if(_12.length>0){if(_12[_12.length-1].urlHash===_22){_19();return;}}if((hsl>=2)&&(_13[hsl-2])){if(_13[hsl-2].urlHash===_22){_16();}}}};_8.init=function(){if(_4.byId("dj_history")){return;}var src=_1["dojoIframeHistoryUrl"]||_7.toUrl("./resources/iframe_history.html");if(_1.afterOnLoad){console.error("dojo/back::init() must be called before the DOM has loaded. "+"Include dojo/back in a build layer.");}else{document.write("<iframe style=\"border:0;width:1px;height:1px;position:absolute;visibility:hidden;bottom:0;right:0;\" name=\"dj_history\" id=\"dj_history\" src=\""+src+"\"></iframe>");}};_8.setInitialState=function(_23){_e=_1b(_c,_23,_d);};_8.addToHistory=function(_24){_12=[];var _25=null;var url=null;if(!_11){if(_1["useXDomain"]&&!_1["dojoIframeHistoryUrl"]){console.warn("dojo/back: When using cross-domain Dojo builds,"+" please save iframe_history.html to your domain and set djConfig.dojoIframeHistoryUrl"+" to the path on your domain to iframe_history.html");}_11=window.frames["dj_history"];}if(!_10){_10=_5.create("a",{style:{display:"none"}},_6.body());}if(_24["changeUrl"]){_25=""+((_24["changeUrl"]!==true)?_24["changeUrl"]:(new Date()).getTime());if(_13.length==0&&_e.urlHash==_25){_e=_1b(url,_24,_25);return;}else{if(_13.length>0&&_13[_13.length-1].urlHash==_25){_13[_13.length-1]=_1b(url,_24,_25);return;}}_15=true;setTimeout(function(){_a(_25);_15=false;},1);_10.href=_25;if(_3("ie")){url=_20();var _26=_24["back"]||_24["backButton"]||_24["handle"];var tcb=function(_27){if(_9()!=""){setTimeout(function(){_a(_25);},1);}_26.apply(this,[_27]);};if(_24["back"]){_24.back=tcb;}else{if(_24["backButton"]){_24.backButton=tcb;}else{if(_24["handle"]){_24.handle=tcb;}}}var _28=_24["forward"]||_24["forwardButton"]||_24["handle"];var tfw=function(_29){if(_9()!=""){_a(_25);}if(_28){_28.apply(this,[_29]);}};if(_24["forward"]){_24.forward=tfw;}else{if(_24["forwardButton"]){_24.forwardButton=tfw;}else{if(_24["handle"]){_24.handle=tfw;}}}}else{if(!_3("ie")){if(!_f){_f=setInterval(_21,200);}}}}else{url=_20();}_13.push(_1b(url,_24,_25));};_8._iframeLoaded=function(evt,_2a){var _2b=_1e(_2a.href);if(_2b==null){if(_13.length==1){_16();}return;}if(_14){_14=false;return;}if(_13.length>=2&&_2b==_1e(_13[_13.length-2].url)){_16();}else{if(_12.length>0&&_2b==_1e(_12[_12.length-1].url)){_19();}}};return _8;}); \ No newline at end of file
diff --git a/lib/dojo/behavior.js b/lib/dojo/behavior.js
index d3268b672..40d5d6a7f 100644
--- a/lib/dojo/behavior.js
+++ b/lib/dojo/behavior.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/behavior",["./_base/kernel","./_base/lang","./_base/array","./_base/connect","./query","./ready"],function(_1,_2,_3,_4,_5,_6){_1.behavior=new function(){function _7(_8,_9){if(!_8[_9]){_8[_9]=[];}return _8[_9];};var _a=0;function _b(_c,_d,_e){var _f={};for(var x in _c){if(typeof _f[x]=="undefined"){if(!_e){_d(_c[x],x);}else{_e.call(_d,_c[x],x);}}}};this._behaviors={};this.add=function(_10){_b(_10,this,function(_11,_12){var _13=_7(this._behaviors,_12);if(typeof _13["id"]!="number"){_13.id=_a++;}var _14=[];_13.push(_14);if((_2.isString(_11))||(_2.isFunction(_11))){_11={found:_11};}_b(_11,function(_15,_16){_7(_14,_16).push(_15);});});};var _17=function(_18,_19,_1a){if(_2.isString(_19)){if(_1a=="found"){_4.publish(_19,[_18]);}else{_4.connect(_18,_1a,function(){_4.publish(_19,arguments);});}}else{if(_2.isFunction(_19)){if(_1a=="found"){_19(_18);}else{_4.connect(_18,_1a,_19);}}}};this.apply=function(){_b(this._behaviors,function(_1b,id){_5(id).forEach(function(_1c){var _1d=0;var bid="_dj_behavior_"+_1b.id;if(typeof _1c[bid]=="number"){_1d=_1c[bid];if(_1d==(_1b.length)){return;}}for(var x=_1d,_1e;_1e=_1b[x];x++){_b(_1e,function(_1f,_20){if(_2.isArray(_1f)){_3.forEach(_1f,function(_21){_17(_1c,_21,_20);});}});}_1c[bid]=_1b.length;});});};};_6(_1.behavior,"apply");return _1.behavior;}); \ No newline at end of file
+define("dojo/behavior",["./_base/kernel","./_base/lang","./_base/array","./_base/connect","./query","./ready"],function(_1,_2,_3,_4,_5,_6){_1.deprecated("dojo.behavior","Use dojo/on with event delegation (on.selector())");var _7=function(){function _8(_9,_a){if(!_9[_a]){_9[_a]=[];}return _9[_a];};var _b=0;function _c(_d,_e,_f){var _10={};for(var x in _d){if(typeof _10[x]=="undefined"){if(!_f){_e(_d[x],x);}else{_f.call(_e,_d[x],x);}}}};this._behaviors={};this.add=function(_11){_c(_11,this,function(_12,_13){var _14=_8(this._behaviors,_13);if(typeof _14["id"]!="number"){_14.id=_b++;}var _15=[];_14.push(_15);if((_2.isString(_12))||(_2.isFunction(_12))){_12={found:_12};}_c(_12,function(_16,_17){_8(_15,_17).push(_16);});});};var _18=function(_19,_1a,_1b){if(_2.isString(_1a)){if(_1b=="found"){_4.publish(_1a,[_19]);}else{_4.connect(_19,_1b,function(){_4.publish(_1a,arguments);});}}else{if(_2.isFunction(_1a)){if(_1b=="found"){_1a(_19);}else{_4.connect(_19,_1b,_1a);}}}};this.apply=function(){_c(this._behaviors,function(_1c,id){_5(id).forEach(function(_1d){var _1e=0;var bid="_dj_behavior_"+_1c.id;if(typeof _1d[bid]=="number"){_1e=_1d[bid];if(_1e==(_1c.length)){return;}}for(var x=_1e,_1f;_1f=_1c[x];x++){_c(_1f,function(_20,_21){if(_2.isArray(_20)){_3.forEach(_20,function(_22){_18(_1d,_22,_21);});}});}_1d[bid]=_1c.length;});});};};_1.behavior=new _7();_6(_1.behavior,"apply");return _1.behavior;}); \ No newline at end of file
diff --git a/lib/dojo/cache.js b/lib/dojo/cache.js
index 67952d3f4..b4dfd7bee 100644
--- a/lib/dojo/cache.js
+++ b/lib/dojo/cache.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cache",["./_base/kernel","./text"],function(_1,_2){return _1.cache;}); \ No newline at end of file
+define("dojo/cache",["./_base/kernel","./text"],function(_1){return _1.cache;}); \ No newline at end of file
diff --git a/lib/dojo/cldr/monetary.js b/lib/dojo/cldr/monetary.js
index 6d8621bc1..bedd3869a 100644
--- a/lib/dojo/cldr/monetary.js
+++ b/lib/dojo/cldr/monetary.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/monetary",["../main"],function(_1){_1.getObject("cldr.monetary",true,_1);_1.cldr.monetary.getData=function(_2){var _3={ADP:0,AFN:0,ALL:0,AMD:0,BHD:3,BIF:0,BYR:0,CLF:0,CLP:0,COP:0,CRC:0,DJF:0,ESP:0,GNF:0,GYD:0,HUF:0,IDR:0,IQD:0,IRR:3,ISK:0,ITL:0,JOD:3,JPY:0,KMF:0,KPW:0,KRW:0,KWD:3,LAK:0,LBP:0,LUF:0,LYD:3,MGA:0,MGF:0,MMK:0,MNT:0,MRO:0,MUR:0,OMR:3,PKR:0,PYG:0,RSD:0,RWF:0,SLL:0,SOS:0,STD:0,SYP:0,TMM:0,TND:3,TRL:0,TZS:0,UGX:0,UZS:0,VND:0,VUV:0,XAF:0,XOF:0,XPF:0,YER:0,ZMK:0,ZWD:0};var _4={CHF:5};var _5=_3[_2],_6=_4[_2];if(typeof _5=="undefined"){_5=2;}if(typeof _6=="undefined"){_6=0;}return {places:_5,round:_6};};return _1.cldr.monetary;}); \ No newline at end of file
+define("dojo/cldr/monetary",["../_base/kernel","../_base/lang"],function(_1,_2){var _3={};_2.setObject("dojo.cldr.monetary",_3);_3.getData=function(_4){var _5={ADP:0,AFN:0,ALL:0,AMD:0,BHD:3,BIF:0,BYR:0,CLF:0,CLP:0,COP:0,CRC:0,DJF:0,ESP:0,GNF:0,GYD:0,HUF:0,IDR:0,IQD:0,IRR:3,ISK:0,ITL:0,JOD:3,JPY:0,KMF:0,KPW:0,KRW:0,KWD:3,LAK:0,LBP:0,LUF:0,LYD:3,MGA:0,MGF:0,MMK:0,MNT:0,MRO:0,MUR:0,OMR:3,PKR:0,PYG:0,RSD:0,RWF:0,SLL:0,SOS:0,STD:0,SYP:0,TMM:0,TND:3,TRL:0,TZS:0,UGX:0,UZS:0,VND:0,VUV:0,XAF:0,XOF:0,XPF:0,YER:0,ZMK:0,ZWD:0};var _6={CHF:5};var _7=_5[_4],_8=_6[_4];if(typeof _7=="undefined"){_7=2;}if(typeof _8=="undefined"){_8=0;}return {places:_7,round:_8};};return _3;}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ar/buddhist.js b/lib/dojo/cldr/nls/ar/buddhist.js
index dee7d38f8..987694f2f 100644
--- a/lib/dojo/cldr/nls/ar/buddhist.js
+++ b/lib/dojo/cldr/nls/ar/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ar/buddhist",{"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"yyyy Q","dayPeriods-format-wide-pm":"م","eraNames":["التقويم البوذي"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"dayPeriods-format-wide-am":"ص","dateFormatItem-y":"y G","timeFormat-full":"zzzz h:mm:ss a","dateFormatItem-Ed":"E، d","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"eraAbbr":["التقويم البوذي"],"dateFormatItem-yyyyMM":"MM/y G","dateFormatItem-yyyyMMMM":"MMMM، y G","dateFormat-long":"d MMMM، y G","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"dd/MM/y G","dateFormatItem-yMd":"d/M/y G","dateFormatItem-yMMMM":"MMMM y G","dateFormatItem-ms":"mm:ss","quarters-standAlone-narrow":["١","٢","٣","٤"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","timeFormat-long":"z h:mm:ss a","timeFormat-short":"h:mm a","dateFormatItem-MMMMd":"d MMMM","days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMMM y G","dateFormat-short":"d/M/y G","dateFormatItem-yMMMEd":"EEE، d MMMM y G","dateFormat-full":"EEEE، d MMMM، y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE، d/M/y G","months-format-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-d":"d","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"eraNarrow":["التقويم البوذي"],"days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"]}); \ No newline at end of file
+define("dojo/cldr/nls/ar/buddhist",{"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"م","eraNames":["التقويم البوذي"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"dayPeriods-format-wide-am":"ص","dateFormatItem-y":"y G","timeFormat-full":"h:mm:ss a zzzz","months-standAlone-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-Ed":"E، d","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"eraAbbr":["التقويم البوذي"],"dateFormatItem-yyyyMM":"MM/y G","dateFormatItem-yyyyMMMM":"MMMM، y G","dateFormat-long":"d MMMM، y G","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"dd/MM/y G","dateFormatItem-yMd":"d/M/y G","dateFormatItem-yMMMM":"MMMM y G","dateFormatItem-ms":"mm:ss","quarters-standAlone-narrow":["١","٢","٣","٤"],"months-standAlone-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["١","٢","٣","٤"],"timeFormat-long":"h:mm:ss a z","months-format-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"timeFormat-short":"h:mm a","dateFormatItem-MMMMd":"d MMMM","days-format-abbr":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMM، y G","dateFormatItem-MEd":"E، d/M","days-standAlone-short":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"days-standAlone-abbr":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormat-short":"d/M/y G","dateFormatItem-yMMMEd":"E، d MMM، y G","dateFormat-full":"EEEE، d MMMM، y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E، d/M/y G","months-format-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"days-format-short":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-d":"d","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"eraNarrow":["التقويم البوذي"],"days-format-wide":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ar/currency.js b/lib/dojo/cldr/nls/ar/currency.js
index 8c2ed034f..54e59b96e 100644
--- a/lib/dojo/cldr/nls/ar/currency.js
+++ b/lib/dojo/cldr/nls/ar/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ar/currency",{"HKD_displayName":"دولار هونج كونج","CHF_displayName":"فرنك سويسري","CAD_displayName":"دولار كندي","CNY_displayName":"يوان صيني","AUD_displayName":"دولار أسترالي","JPY_displayName":"ين ياباني","USD_displayName":"دولار أمريكي","CNY_symbol":"ي.ص","GBP_displayName":"جنيه إسترليني","EUR_displayName":"يورو"}); \ No newline at end of file
+define("dojo/cldr/nls/ar/currency",{"HKD_displayName":"دولار هونج كونج","CHF_displayName":"فرنك سويسري","JPY_symbol":"JP¥","CAD_displayName":"دولار كندي","HKD_symbol":"HK$","CNY_displayName":"يوان صيني","USD_symbol":"US$","AUD_displayName":"دولار أسترالي","JPY_displayName":"ين ياباني","CAD_symbol":"CA$","USD_displayName":"دولار أمريكي","EUR_symbol":"€","CNY_symbol":"ي.ص","GBP_displayName":"جنيه إسترليني","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"يورو"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ar/gregorian.js b/lib/dojo/cldr/nls/ar/gregorian.js
index 745edb843..372fa3bc7 100644
--- a/lib/dojo/cldr/nls/ar/gregorian.js
+++ b/lib/dojo/cldr/nls/ar/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ar/gregorian",{"dateFormatItem-yM":"M/yyyy","field-dayperiod":"ص/م","dateFormatItem-yQ":"yyyy Q","dayPeriods-format-wide-pm":"م","field-minute":"الدقائق","eraNames":["قبل الميلاد","ميلادي"],"dateFormatItem-MMMEd":"E d MMM","field-day-relative+-1":"أمس","field-weekday":"اليوم","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"field-era":"العصر","field-hour":"الساعات","dayPeriods-format-wide-am":"ص","quarters-standAlone-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormatItem-y":"y","timeFormat-full":"zzzz h:mm:ss a","months-standAlone-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-Ed":"E، d","dateFormatItem-yMMM":"MMM y","field-day-relative+0":"اليوم","field-day-relative+1":"غدًا","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"eraAbbr":["ق.م","م"],"field-day-relative+2":"بعد الغد","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-yyyyMMMM":"MMMM، y","dateFormat-long":"d MMMM، y","timeFormat-medium":"h:mm:ss a","field-zone":"التوقيت","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"dd/MM/yyyy","quarters-standAlone-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormatItem-yMMMM":"MMMM y","dateFormatItem-ms":"mm:ss","field-year":"السنة","quarters-standAlone-narrow":["١","٢","٣","٤"],"field-week":"الأسبوع","months-standAlone-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["١","٢","٣","٤"],"dateFormatItem-yyQ":"Q yy","timeFormat-long":"z h:mm:ss a","months-format-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"timeFormat-short":"h:mm a","field-month":"الشهر","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormatItem-M":"L","days-format-narrow":["ح","ن","ث","ر","خ","ج","س"],"field-second":"الثواني","field-day":"يوم","months-format-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"days-standAlone-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE، d MMMM y","dateFormat-full":"EEEE، d MMMM، y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE، d/M/yyyy","months-format-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-d":"d","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"eraNarrow":["ق.م","م"]}); \ No newline at end of file
+define("dojo/cldr/nls/ar/gregorian",{"days-standAlone-short":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"months-format-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"quarters-standAlone-narrow":["١","٢","٣","٤"],"field-weekday":"اليوم","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E، d/M/yyyy","dateFormatItem-MMMEd":"E، d MMM","eraNarrow":["ق.م","م"],"days-format-short":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormat-long":"d MMMM، y","months-format-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"م","dateFormat-full":"EEEE، d MMMM، y","dateFormatItem-Md":"d/M","dateFormatItem-yMd":"d/M/yyyy","field-era":"العصر","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"timeFormat-short":"h:mm a","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"timeFormat-long":"h:mm:ss a z","field-year":"السنة","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"MMMM، y","field-hour":"الساعات","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"h:mm:ss a zzzz","field-day-relative+0":"اليوم","field-day-relative+1":"غدًا","field-day-relative+2":"بعد الغد","dateFormatItem-H":"HH","months-standAlone-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"quarters-format-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"quarters-standAlone-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormatItem-M":"L","days-standAlone-wide":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-MMMMd":"d MMMM","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"eraAbbr":["ق.م","م"],"field-minute":"الدقائق","field-dayperiod":"ص/م","days-standAlone-abbr":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["١","٢","٣","٤"],"field-day-relative+-1":"أمس","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"أول أمس","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E، d/M","dateTimeFormat-full":"{1} {0}","dateFormatItem-yMMMM":"MMMM y","field-day":"يوم","days-format-wide":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"field-zone":"التوقيت","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"field-year-relative+-1":"السنة الماضية","field-month-relative+-1":"الشهر الماضي","dateFormatItem-hm":"h:mm a","days-format-abbr":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-yMMMd":"d MMM، y","eraNames":["قبل الميلاد","ميلادي"],"days-format-narrow":["ح","ن","ث","ر","خ","ج","س"],"field-month":"الشهر","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"ص","dateFormatItem-MMMMEd":"E، d MMMM","dateFormat-short":"d/M/yyyy","field-second":"الثواني","dateFormatItem-yMMMEd":"E، d MMM، y","field-month-relative+0":"هذا الشهر","field-month-relative+1":"الشهر التالي","dateFormatItem-Ed":"E، d","field-week":"الأسبوع","dateFormat-medium":"dd/MM/yyyy","field-year-relative+0":"هذه السنة","field-week-relative+-1":"الأسبوع الماضي","field-year-relative+1":"السنة التالية","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"هذا الأسبوع","field-week-relative+1":"الأسبوع التالي"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ar/hebrew.js b/lib/dojo/cldr/nls/ar/hebrew.js
index 68aced767..d2b092691 100644
--- a/lib/dojo/cldr/nls/ar/hebrew.js
+++ b/lib/dojo/cldr/nls/ar/hebrew.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ar/hebrew",{"dateFormat-medium":"dd/MM/yyyy","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yMEd":"EEE، d/M/yyyy","timeFormat-full":"zzzz h:mm:ss a","dateFormatItem-Md":"d/M","months-standAlone-wide":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"months-format-wide-leap":"آذار الثاني","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"dayPeriods-format-wide-pm":"م","months-standAlone-abbr":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"dayPeriods-format-wide-am":"ص","quarters-standAlone-narrow":["١","٢","٣","٤"],"timeFormat-medium":"h:mm:ss a","dateFormat-long":"d MMMM، y","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE، d MMMM y","months-format-wide":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"dateFormatItem-yM":"M/yyyy","timeFormat-short":"h:mm a","months-format-abbr":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"timeFormat-long":"z h:mm:ss a","days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-yQ":"yyyy Q","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormat-full":"EEEE، d MMMM، y","dateFormatItem-MMMd":"d MMM","days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"]}); \ No newline at end of file
+define("dojo/cldr/nls/ar/hebrew",{"dateFormatItem-yM":"M/yyyy","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"م","eraNames":["ص"],"dateFormatItem-MMMEd":"E، d MMM","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dayPeriods-format-wide-am":"ص","timeFormat-full":"h:mm:ss a zzzz","months-standAlone-abbr":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"dateFormatItem-Ed":"E، d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"eraAbbr":["ص"],"dateFormat-long":"d MMMM، y","timeFormat-medium":"h:mm:ss a","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-yMd":"d/M/yyyy","quarters-standAlone-narrow":["١","٢","٣","٤"],"months-standAlone-wide":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["١","٢","٣","٤"],"timeFormat-long":"h:mm:ss a z","months-format-abbr":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"timeFormat-short":"h:mm a","days-format-abbr":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-yMMMd":"d MMM، y","dateFormatItem-MEd":"E، d/M","days-standAlone-short":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"days-standAlone-abbr":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"E، d MMM، y","dateFormat-full":"EEEE، d MMMM، y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E، d/M/yyyy","months-format-wide":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"days-format-short":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"months-format-wide-leap":"آذار الثاني","eraNarrow":["ص"],"days-format-wide":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ar/islamic.js b/lib/dojo/cldr/nls/ar/islamic.js
index 41ce00bfd..435dba644 100644
--- a/lib/dojo/cldr/nls/ar/islamic.js
+++ b/lib/dojo/cldr/nls/ar/islamic.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ar/islamic",{"dateFormat-medium":"dd/MM/yyyy","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yMEd":"EEE، d/M/yyyy","eraNarrow":["هـ"],"months-format-narrow":["م","ص","ر","ر","ج","ج","ر","ش","ر","ش","ذ","ذ"],"timeFormat-full":"zzzz h:mm:ss a","dateFormatItem-Md":"d/M","months-standAlone-narrow":["م","ص","ر","ر","ج","ج","ر","ش","ر","ش","ذ","ذ"],"months-standAlone-wide":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"eraNames":["هـ"],"days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"dayPeriods-format-wide-pm":"م","months-standAlone-abbr":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"dayPeriods-format-wide-am":"ص","quarters-standAlone-narrow":["١","٢","٣","٤"],"timeFormat-medium":"h:mm:ss a","dateFormat-long":"d MMMM، y","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE، d MMMM y","months-format-wide":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"dateFormatItem-yM":"M/yyyy","timeFormat-short":"h:mm a","months-format-abbr":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"eraAbbr":["هـ"],"timeFormat-long":"z h:mm:ss a","days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-yQ":"yyyy Q","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormat-full":"EEEE، d MMMM، y","dateFormatItem-MMMd":"d MMM","days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"]}); \ No newline at end of file
+define("dojo/cldr/nls/ar/islamic",{"dateFormatItem-yM":"M/yyyy","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"م","eraNames":["هـ"],"dateFormatItem-MMMEd":"E، d MMM","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["١","٢","٣","4","٥","٦","٧","٨","٩","١٠","١١","١٢"],"dayPeriods-format-wide-am":"ص","dateFormatItem-y":"y","timeFormat-full":"h:mm:ss a zzzz","months-standAlone-abbr":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"dateFormatItem-Ed":"d E","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"eraAbbr":["هـ"],"dateFormat-long":"d MMMM y","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d MMM، y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yMd":"d/M/yyyy","dateFormatItem-yMMMM":"MMMM y","dateFormatItem-ms":"mm:ss","quarters-standAlone-narrow":["١","٢","٣","٤"],"months-standAlone-wide":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"dateFormatItem-MMMMEd":"E، d MMMM","dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["١","٢","٣","٤"],"timeFormat-long":"h:mm:ss a z","months-format-abbr":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"timeFormat-short":"h:mm a","dateFormatItem-H":"HH","dateFormatItem-MMMMd":"d MMMM","days-format-abbr":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMM، y","dateFormatItem-MEd":"E، d/M","months-format-narrow":["١","٢","٣","٤","٥","٦","٧","٨","٩","١٠","١١","١٢"],"days-standAlone-short":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"E، d MMM y","dateFormat-full":"EEEE، d MMMM y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E، d/M/yyyy","months-format-wide":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"days-format-short":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-d":"d","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"eraNarrow":["هـ"],"days-format-wide":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-h":"h a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ar/number.js b/lib/dojo/cldr/nls/ar/number.js
index 1ad99c8b8..0c3e0a818 100644
--- a/lib/dojo/cldr/nls/ar/number.js
+++ b/lib/dojo/cldr/nls/ar/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ar/number",{"group":"٬","percentSign":"٪","exponential":"اس","list":"؛","infinity":"∞","minusSign":"-","decimal":"٫","nan":"ليس رقم","perMille":"؉","decimalFormat":"#,##0.###;#,##0.###-","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/ar/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":".","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###;#,##0.###-","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","decimalFormat-long":"000 تريليون","decimalFormat-short":"000 ترليو"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/buddhist.js b/lib/dojo/cldr/nls/buddhist.js
index 5229790a6..7ae9bc356 100644
--- a/lib/dojo/cldr/nls/buddhist.js
+++ b/lib/dojo/cldr/nls/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/buddhist",{root:{"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["BE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"MMMM d, y G","months-format-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, MMMM d, y G","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yM":"y-M","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","days-format-wide":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["1","2","3","4","5","6","7"],"eraNames":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormat-short":"M/d/yyyy","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","dateFormat-medium":"MMM d, y G","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"},"ar":true,"da":true,"de":true,"el":true,"en":true,"en-gb":true,"es":true,"fi":true,"fr":true,"hu":true,"it":true,"ja":true,"ko":true,"nb":true,"nl":true,"pl":true,"pt":true,"pt-pt":true,"ro":true,"ru":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true}); \ No newline at end of file
+define("dojo/cldr/nls/buddhist",{root:{"days-standAlone-short":["1","2","3","4","5","6","7"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"G y QQQ","dateFormatItem-yMEd":"E, GGGGG yyyy-MM-dd","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["BE"],"days-format-short":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"G y MMMM d","months-format-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, G y MMMM dd","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yMd":"GGGGG yyyy-MM-dd","dateFormatItem-yM":"GGGGG yyyy-MM","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"dateTimeFormat":"{1} {0}","timeFormat-long":"HH:mm:ss z","dateFormatItem-yMMM":"G y MMM","dateFormatItem-yQ":"GGGGG yyyy Q","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-Gy":"G y","dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","days-format-wide":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"G y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-yMMMd":"G y MMM d","eraNames":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormat-short":"GGGGG yyyy-MM-dd","dateFormatItem-yMMMEd":"E, G y MMM d","dateFormatItem-Ed":"d E","dateTimeFormats-appendItem-Timezone":"{0} {1}","dateFormat-medium":"G y MMM d","dayPeriods-format-narrow-pm":"PM","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"},"ar":true,"ca":true,"cs":true,"da":true,"de":true,"el":true,"en":true,"en-gb":true,"es":true,"fi":true,"fr":true,"hu":true,"it":true,"ja":true,"ko":true,"nb":true,"nl":true,"pl":true,"pt":true,"pt-pt":true,"ro":true,"ru":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ca/buddhist.js b/lib/dojo/cldr/nls/ca/buddhist.js
new file mode 100644
index 000000000..d5e9fe25b
--- /dev/null
+++ b/lib/dojo/cldr/nls/ca/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/ca/buddhist",{"dateFormatItem-yM":"MM/yyyy GGGGG","dateFormatItem-yQ":"Q yyyy GGGGG","dayPeriods-format-wide-pm":"p.m.","eraNames":["eB"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y G","days-standAlone-wide":["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["g","f","m","a","m","j","j","a","s","o","n","d"],"dayPeriods-format-wide-am":"a.m.","quarters-standAlone-abbr":["1T","2T","3T","4T"],"dateFormatItem-y":"y G","timeFormat-full":"H.mm.ss zzzz","months-standAlone-abbr":["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["dg","dl","dt","dc","dj","dv","ds"],"eraAbbr":["eB"],"dateFormat-long":"d MMMM y G","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d MMM y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"p.m.","dateFormatItem-yMd":"d/M/yyyy","quarters-standAlone-wide":["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],"dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"a.m.","months-standAlone-wide":["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],"dateFormatItem-MMMd":"d MMM","timeFormat-long":"H.mm.ss z","months-format-abbr":["de gen.","de febr.","de març","d’abr.","de maig","de juny","de jul.","d’ag.","de set.","d’oct.","de nov.","de des."],"timeFormat-short":"H.mm","dateFormatItem-H":"HH","quarters-format-abbr":["1T","2T","3T","4T"],"days-format-abbr":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"dateFormatItem-M":"L","days-format-narrow":["dg","dl","dt","dc","dj","dv","ds"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, d/M","months-format-narrow":["G","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-short":["dg.","dl.","dm.","dc.","dj.","dv.","ds."],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["dg","dl","dt","dc","dj","dv","ds"],"dateFormat-short":"dd/MM/yyyy GGGGG","dateFormatItem-yMMMEd":"E, d MMM y G","dateFormat-full":"EEEE, dd MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, dd/MM/yyyy GGGGG","months-format-wide":["de gener","de febrer","de març","d’abril","de maig","de juny","de juliol","d’agost","de setembre","d’octubre","de novembre","de desembre"],"days-format-short":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"dateFormatItem-d":"d","quarters-format-wide":["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],"eraNarrow":["eB"],"days-format-wide":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"dateFormatItem-h":"h a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ca/currency.js b/lib/dojo/cldr/nls/ca/currency.js
index cefc8c05f..76837179c 100644
--- a/lib/dojo/cldr/nls/ca/currency.js
+++ b/lib/dojo/cldr/nls/ca/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ca/currency",{"HKD_displayName":"dòlar de Hong Kong","CHF_displayName":"franc suís","CAD_displayName":"dòlar canadenc","CNY_displayName":"iuan renmimbi xinès","AUD_displayName":"dòlar australià","JPY_displayName":"ien japonès","USD_displayName":"dòlar dels Estats Units","GBP_displayName":"lliura esterlina britànica","EUR_displayName":"euro"}); \ No newline at end of file
+define("dojo/cldr/nls/ca/currency",{"HKD_displayName":"dòlar de Hong Kong","CHF_displayName":"franc suís","JPY_symbol":"JP¥","CAD_displayName":"dòlar canadenc","HKD_symbol":"HK$","CNY_displayName":"iuan renmimbi xinès","USD_symbol":"US$","AUD_displayName":"dòlar australià","JPY_displayName":"ien japonès","CAD_symbol":"CA$","USD_displayName":"dòlar dels Estats Units","EUR_symbol":"€","CNY_symbol":"¥","GBP_displayName":"lliura esterlina britànica","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ca/gregorian.js b/lib/dojo/cldr/nls/ca/gregorian.js
index 57f099b25..b649c7094 100644
--- a/lib/dojo/cldr/nls/ca/gregorian.js
+++ b/lib/dojo/cldr/nls/ca/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ca/gregorian",{"months-format-narrow":["g","f","m","a","m","j","j","a","s","o","n","d"],"field-weekday":"dia de la setmana","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["aC","dC"],"dateFormat-long":"d MMMM 'de' y","months-format-wide":["de gener","de febrer","de març","d’abril","de maig","de juny","de juliol","d’agost","de setembre","d’octubre","de novembre","de desembre"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"p.m.","dateFormat-full":"EEEE d MMMM 'de' y","dateFormatItem-Md":"d/M","field-era":"era","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],"timeFormat-short":"H:mm","quarters-format-wide":["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],"timeFormat-long":"H:mm:ss z","field-year":"any","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"Q yyyy","field-hour":"hora","months-format-abbr":["de gen.","de febr.","de març","d’abr.","de maig","de juny","de jul.","d’ag.","de set.","d’oct.","de nov.","de des."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"H:mm:ss zzzz","field-day-relative+0":"avui","field-day-relative+1":"demà","field-day-relative+2":"demà passat","dateFormatItem-H":"H","field-day-relative+3":"d'aquí a tres dies","months-standAlone-abbr":["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],"quarters-format-abbr":["1T","2T","3T","4T"],"quarters-standAlone-wide":["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"dateFormatItem-MMMMd":"d MMMM","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1T","2T","3T","4T"],"eraAbbr":["aC","dC"],"field-minute":"minut","field-dayperiod":"a.m./p.m.","days-standAlone-abbr":["dg","dl","dt","dc","dj","dv","ds"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"ahir","field-day-relative+-2":"abans d'ahir","field-day-relative+-3":"fa tres dies","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E d/M","dateFormatItem-yMMMM":"LLLL 'del' y","field-day":"dia","days-format-wide":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"field-zone":"zona","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["g","f","m","a","m","j","j","a","s","o","n","d"],"dateFormatItem-hm":"h:mm a","days-format-abbr":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"eraNames":["aC","dC"],"days-format-narrow":["g","l","t","c","j","v","s"],"field-month":"mes","days-standAlone-narrow":["g","l","t","c","j","v","s"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"a.m.","dateFormatItem-MMMMEd":"E d MMMM","dateFormat-short":"dd/MM/yy","field-second":"segon","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"setmana","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-mmss":"mm:ss","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"h:mm:ss a"}); \ No newline at end of file
+define("dojo/cldr/nls/ca/gregorian",{"days-standAlone-short":["dg.","dl.","dm.","dc.","dj.","dv.","ds."],"months-format-narrow":["G","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"dia de la setmana","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E, d.M.y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["aC","dC"],"days-format-short":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"dateFormat-long":"d MMMM 'de' y","months-format-wide":["de gener","de febrer","de març","d’abril","de maig","de juny","de juliol","d’agost","de setembre","d’octubre","de novembre","de desembre"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"p.m.","dateFormat-full":"EEEE d MMMM 'de' y","dateFormatItem-Md":"d/M","dateFormatItem-yMd":"d/M/yyyy","field-era":"era","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],"timeFormat-short":"H.mm","quarters-format-wide":["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],"timeFormat-long":"H.mm.ss z","field-year":"any","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"Q yyyy","field-hour":"hora","months-format-abbr":["de gen.","de febr.","de març","d’abr.","de maig","de juny","de jul.","d’ag.","de set.","d’oct.","de nov.","de des."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"H.mm.ss zzzz","field-day-relative+0":"avui","field-day-relative+1":"demà","field-day-relative+2":"demà passat","dateFormatItem-H":"H","months-standAlone-abbr":["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],"quarters-format-abbr":["1T","2T","3T","4T"],"quarters-standAlone-wide":["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"],"dateFormatItem-MMMMd":"d MMMM","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","quarters-standAlone-abbr":["1T","2T","3T","4T"],"eraAbbr":["aC","dC"],"field-minute":"minut","field-dayperiod":"a.m./p.m.","days-standAlone-abbr":["dg","dl","dt","dc","dj","dv","ds"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm.ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"ahir","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"a.m.","field-day-relative+-2":"abans d'ahir","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E d/M","dateTimeFormat-full":"{1} {0}","dateFormatItem-yMMMM":"LLLL 'de' y","field-day":"dia","days-format-wide":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"field-zone":"zona","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["g","f","m","a","m","j","j","a","s","o","n","d"],"field-year-relative+-1":"Últim any","field-month-relative+-1":"Últim mes","dateFormatItem-hm":"h.mm a","days-format-abbr":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"dateFormatItem-yMMMd":"d MMM y","eraNames":["abans de Crist","després de Crist"],"days-format-narrow":["dg","dl","dt","dc","dj","dv","ds"],"days-standAlone-narrow":["dg","dl","dt","dc","dj","dv","ds"],"dateFormatItem-MMM":"LLL","field-month":"mes","dayPeriods-format-wide-am":"a.m.","dateFormatItem-MMMMEd":"E d MMMM","dateFormat-short":"dd/MM/yy","field-second":"segon","dateFormatItem-yMMMEd":"E, d MMM, y","field-month-relative+0":"Aquest mes","field-month-relative+1":"Mes següent","dateFormatItem-Ed":"E d","field-week":"setmana","dateFormat-medium":"dd/MM/yyyy","field-year-relative+0":"Aquest any","field-week-relative+-1":"Última setmana","field-year-relative+1":"Any següent","dateFormatItem-mmss":"mm:ss","dayPeriods-format-narrow-pm":"p.m.","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-hms":"h.mm.ss a","field-week-relative+0":"Aquesta setmana","field-week-relative+1":"Setmana següent"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ca/number.js b/lib/dojo/cldr/nls/ca/number.js
index 92438fc9a..985cbd7b6 100644
--- a/lib/dojo/cldr/nls/ca/number.js
+++ b/lib/dojo/cldr/nls/ca/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ca/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/ca/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-long":"000 bilions","decimalFormat-short":"000 B"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/cs/buddhist.js b/lib/dojo/cldr/nls/cs/buddhist.js
new file mode 100644
index 000000000..1818adaad
--- /dev/null
+++ b/lib/dojo/cldr/nls/cs/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/cs/buddhist",{"dateFormatItem-yM":"LLLL y GGGGG","dateFormatItem-yQ":"Q., y GGGGG","dateFormatItem-MMMEd":"E, d. M.","dateFormatItem-yQQQ":"QQQ, y G","days-standAlone-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"months-standAlone-narrow":["l","ú","b","d","k","č","č","s","z","ř","l","p"],"dateFormatItem-y":"y G","timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],"dateFormatItem-Ed":"E, d.","dateFormatItem-yMMM":"LLLL y G","days-standAlone-narrow":["N","P","Ú","S","Č","P","S"],"dateFormat-long":"d. MMMM y G","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"d. M. y G","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yMd":"d. M. y","quarters-standAlone-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"months-standAlone-wide":["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],"dateFormatItem-MMMd":"d. M.","timeFormat-long":"H:mm:ss z","months-format-abbr":["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],"timeFormat-short":"H:mm","dateFormatItem-H":"H","days-format-abbr":["ne","po","út","st","čt","pá","so"],"days-format-narrow":["N","P","Ú","S","Č","P","S"],"dateFormatItem-yMMMd":"d. M. y","dateFormatItem-MEd":"E, d. M.","days-standAlone-short":["Ne","Po","Út","St","Čt","Pá","So"],"days-standAlone-abbr":["ne","po","út","st","čt","pá","so"],"dateFormat-short":"dd.MM.yy GGGGG","dateFormatItem-yMMMEd":"E, d. M. y G","dateFormat-full":"EEEE, d. MMMM y G","dateFormatItem-Md":"d. M.","dateFormatItem-yMEd":"E, d. M. y GGGGG","months-format-wide":["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],"days-format-short":["ne","po","út","st","čt","pá","so"],"dateFormatItem-d":"d.","quarters-format-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"days-format-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/cs/currency.js b/lib/dojo/cldr/nls/cs/currency.js
index 78a372948..14f3c2ab4 100644
--- a/lib/dojo/cldr/nls/cs/currency.js
+++ b/lib/dojo/cldr/nls/cs/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/cs/currency",{"HKD_displayName":"Dolar hongkongský","CHF_displayName":"Frank švýcarský","CAD_displayName":"Dolar kanadský","CNY_displayName":"Juan renminbi","AUD_displayName":"Dolar australský","JPY_displayName":"Jen","USD_displayName":"Dolar americký","GBP_displayName":"Libra šterlinků","EUR_displayName":"Euro"}); \ No newline at end of file
+define("dojo/cldr/nls/cs/currency",{"HKD_displayName":"hongkongský dolar","CHF_displayName":"švýcarský frank","JPY_symbol":"JP¥","CAD_displayName":"kanadský dolar","HKD_symbol":"HK$","CNY_displayName":"čínský jüan","USD_symbol":"US$","AUD_displayName":"australský dolar","JPY_displayName":"japonský jen","CAD_symbol":"CA$","USD_displayName":"americký dolar","EUR_symbol":"€","CNY_symbol":"CN¥","GBP_displayName":"britská libra","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/cs/gregorian.js b/lib/dojo/cldr/nls/cs/gregorian.js
index 6b9fe0bfb..05f822923 100644
--- a/lib/dojo/cldr/nls/cs/gregorian.js
+++ b/lib/dojo/cldr/nls/cs/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/cs/gregorian",{"dateFormatItem-yM":"M.y","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"odp.","eraNames":["př.Kr.","po Kr."],"dateFormatItem-MMMEd":"E, d. MMM","field-day-relative+-1":"Včera","dateFormatItem-yQQQ":"QQQ y","field-day-relative+-2":"Předevčírem","days-standAlone-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"months-standAlone-narrow":["l","ú","b","d","k","č","č","s","z","ř","l","p"],"dayPeriods-format-wide-am":"dop.","quarters-standAlone-abbr":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"timeFormat-full":"H:mm:ss zzzz","dateFormatItem-yyyy":"y","months-standAlone-abbr":["1.","2.","3.","4.","5.","6.","7.","8.","9.","10.","11.","12."],"dateFormatItem-yMMM":"LLL y","field-day-relative+0":"Dnes","field-day-relative+1":"Zítra","days-standAlone-narrow":["N","P","Ú","S","Č","P","S"],"eraAbbr":["př.Kr.","po Kr."],"field-day-relative+2":"Pozítří","dateFormatItem-yyyyMMMM":"LLLL y","dateFormat-long":"d. MMMM y","timeFormat-medium":"H:mm:ss","dateFormatItem-EEEd":"EEE, d.","dateFormatItem-Hm":"H:mm","dateFormat-medium":"d.M.yyyy","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yMd":"d.M.y","quarters-standAlone-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"months-standAlone-wide":["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],"dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"H:mm:ss z","months-format-abbr":["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],"timeFormat-short":"H:mm","dateFormatItem-H":"H","quarters-format-abbr":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"days-format-abbr":["ne","po","út","st","čt","pá","so"],"days-format-narrow":["N","P","Ú","S","Č","P","S"],"dateFormatItem-MEd":"E, d.M","months-format-narrow":["l","ú","b","d","k","č","č","s","z","ř","l","p"],"days-standAlone-abbr":["ne","po","út","st","čt","pá","so"],"dateFormat-short":"d.M.yy","dateFormatItem-yyyyM":"M.yyyy","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M","dateFormatItem-yMEd":"EEE, d.M.y","months-format-wide":["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],"dateFormatItem-d":"d.","quarters-format-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"days-format-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"eraNarrow":["př.Kr.","po Kr."]}); \ No newline at end of file
+define("dojo/cldr/nls/cs/gregorian",{"days-standAlone-short":["Ne","Po","Út","St","Čt","Pá","So"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Den v týdnu","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E, d. M. y","dateFormatItem-MMMEd":"E, d. M.","eraNarrow":["př.n.l.","n. l."],"days-format-short":["ne","po","út","st","čt","pá","so"],"dateFormat-long":"d. MMMM y","months-format-wide":["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d. M.","dateFormatItem-yMd":"d. M. y","field-era":"Letopočet","dateFormatItem-yM":"M/y","months-standAlone-wide":["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],"timeFormat-short":"H:mm","quarters-format-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"timeFormat-long":"H:mm:ss z","field-year":"Rok","dateFormatItem-yMMM":"LLLL y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Hodina","months-format-abbr":["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"H:mm:ss zzzz","field-day-relative+0":"Dnes","field-day-relative+1":"Zítra","field-day-relative+2":"Pozítří","dateFormatItem-H":"H","months-standAlone-abbr":["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"dateFormatItem-M":"L","days-standAlone-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["př. n. l.","n. l."],"field-minute":"Minuta","field-dayperiod":"AM/PM","days-standAlone-abbr":["ne","po","út","st","čt","pá","so"],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Včera","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","field-day-relative+-2":"Předevčírem","dateFormatItem-MMMd":"d. M.","dateFormatItem-MEd":"E, d. M.","dateTimeFormat-full":"{1} {0}","field-day":"Den","days-format-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"field-zone":"Časové pásmo","dateFormatItem-y":"y","months-standAlone-narrow":["l","ú","b","d","k","č","č","s","z","ř","l","p"],"field-year-relative+-1":"Minulý rok","field-month-relative+-1":"Minulý měsíc","dateFormatItem-hm":"h:mm a","days-format-abbr":["ne","po","út","st","čt","pá","so"],"dateFormatItem-yMMMd":"d. M. y","eraNames":["př. n. l.","n. l."],"days-format-narrow":["N","P","Ú","S","Č","P","S"],"days-standAlone-narrow":["N","P","Ú","S","Č","P","S"],"dateFormatItem-MMM":"LLL","field-month":"Měsíc","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd.MM.yy","field-second":"Sekunda","dateFormatItem-yMMMEd":"E, d. M. y","field-month-relative+0":"Tento měsíc","field-month-relative+1":"Příští měsíc","dateFormatItem-Ed":"E, d.","field-week":"Týden","dateFormat-medium":"d. M. yyyy","field-year-relative+0":"Tento rok","field-week-relative+-1":"Minulý týden","dateFormatItem-yyyyM":"M/yyyy","field-year-relative+1":"Příští rok","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y","field-week-relative+0":"Tento týden","field-week-relative+1":"Příští týden"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/cs/islamic.js b/lib/dojo/cldr/nls/cs/islamic.js
new file mode 100644
index 000000000..3a695d437
--- /dev/null
+++ b/lib/dojo/cldr/nls/cs/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/cs/islamic",{"quarters-standAlone-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"dateFormatItem-yMd":"d. M. y","dateFormat-medium":"d. MMM. y G","dateFormatItem-MMMEd":"E, d. MMM.","dateFormatItem-MEd":"E, d. M.","dateFormatItem-yMEd":"E, d. M. y","dateFormatItem-Hm":"H:mm","dateFormatItem-H":"H","dateFormatItem-yMMMd":"d. M. y","timeFormat-full":"H:mm:ss zzzz","days-format-short":["ne","po","út","st","čt","pá","so"],"dateFormatItem-Md":"d. M.","days-standAlone-narrow":["N","P","Ú","S","Č","P","S"],"dateFormatItem-yQQQ":"QQQ y","days-standAlone-short":["Ne","Po","Út","St","Čt","Pá","So"],"timeFormat-medium":"H:mm:ss","dateFormat-long":"d. MMMM y","dateFormatItem-Hms":"H:mm:ss","dateFormat-short":"dd.MM.yy. G","dateFormatItem-yMMMEd":"E, d. MMM y","days-standAlone-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"dateFormatItem-d":"d.","days-format-narrow":["N","P","Ú","S","Č","P","S"],"dateFormatItem-yM":"MM/y","timeFormat-short":"H:mm","days-standAlone-abbr":["ne","po","út","st","čt","pá","so"],"timeFormat-long":"H:mm:ss z","days-format-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"dateFormatItem-yQ":"Q yyyy","dateFormatItem-yMMM":"LLL y","quarters-format-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"dateFormat-full":"EEEE, d. MMMM y G","dateFormatItem-MMMd":"d. MMM.","days-format-abbr":["ne","po","út","st","čt","pá","so"],"dateFormatItem-Ed":"E, d."}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/cs/number.js b/lib/dojo/cldr/nls/cs/number.js
index 5122e6546..6303a5367 100644
--- a/lib/dojo/cldr/nls/cs/number.js
+++ b/lib/dojo/cldr/nls/cs/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/cs/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/cs/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 bilionů","decimalFormat-short":"000 bil'.'"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/currency.js b/lib/dojo/cldr/nls/currency.js
index a1d55ff34..2079219be 100644
--- a/lib/dojo/cldr/nls/currency.js
+++ b/lib/dojo/cldr/nls/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/currency",{root:{"USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"},"ar":true,"ca":true,"cs":true,"da":true,"de":true,"el":true,"en":true,"en-au":true,"en-ca":true,"es":true,"fi":true,"fr":true,"he":true,"hu":true,"it":true,"ja":true,"ko":true,"nb":true,"nl":true,"pl":true,"pt":true,"ro":true,"ru":true,"sk":true,"sl":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true,"zh-hk":true,"zh-tw":true}); \ No newline at end of file
+define("dojo/cldr/nls/currency",{root:{"USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"A$","CNY_symbol":"CN¥","EUR_symbol":"€"},"ar":true,"ca":true,"cs":true,"da":true,"de":true,"el":true,"en":true,"en-au":true,"en-ca":true,"en-gb":true,"es":true,"fi":true,"fr":true,"he":true,"hu":true,"it":true,"ja":true,"ko":true,"nb":true,"nl":true,"pl":true,"pt":true,"pt-pt":true,"ro":true,"ru":true,"sk":true,"sl":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true,"zh-hk":true,"zh-tw":true}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/da/buddhist.js b/lib/dojo/cldr/nls/da/buddhist.js
index 7989f490d..5bb713493 100644
--- a/lib/dojo/cldr/nls/da/buddhist.js
+++ b/lib/dojo/cldr/nls/da/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/da/buddhist",{"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"Q y G","dayPeriods-format-wide-pm":"e.m.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MMM":"MMM","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dayPeriods-format-wide-am":"f.m.","dateFormatItem-y":"y G","timeFormat-full":"HH.mm.ss zzzz","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d. MMMM y G","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yMd":"d/M/y G","dateFormatItem-ms":"mm.ss","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q. 'kvartal' y G","timeFormat-long":"HH.mm.ss z","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"timeFormat-short":"HH.mm","dateFormatItem-H":"HH","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormatItem-M":"M","dateFormatItem-MEd":"E. d/M","dateFormatItem-hm":"h.mm a","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE. d. MMM y G","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE. d/M/y G","months-format-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d.","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]}); \ No newline at end of file
+define("dojo/cldr/nls/da/buddhist",{"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"Q y G","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-MMM":"MMM","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-Gy":"y G","quarters-standAlone-abbr":["K1","K2","K3","K4"],"dateFormatItem-y":"y G","timeFormat-full":"HH.mm.ss zzzz","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d. MMMM y G","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yMd":"d/M/y G","quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-ms":"mm.ss","months-standAlone-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"dateFormatItem-MMMMEd":"E d. MMMM","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q. 'kvartal' y G","timeFormat-long":"HH.mm.ss z","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-H":"HH","timeFormat-short":"HH.mm","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"dateFormatItem-M":"M","days-format-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yMMMd":"d. MMM y G","dateFormatItem-MEd":"E d/M","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-short":["sø","ma","ti","on","to","fr","lø"],"dateFormatItem-hm":"h.mm a","days-standAlone-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"E d. MMM y G","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E d/M/y G","months-format-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"days-format-short":["sø","ma","ti","on","to","fr","lø"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d.","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/da/currency.js b/lib/dojo/cldr/nls/da/currency.js
index fe833757c..e056f1e2f 100644
--- a/lib/dojo/cldr/nls/da/currency.js
+++ b/lib/dojo/cldr/nls/da/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/da/currency",{"HKD_displayName":"Hongkong dollar","CHF_displayName":"Schweizisk franc","CAD_displayName":"Canadisk dollar","CNY_displayName":"Kinesisk yuan renminbi","USD_symbol":"$","AUD_displayName":"Australsk dollar","JPY_displayName":"Japansk yen","USD_displayName":"Amerikansk dollar","GBP_displayName":"Britisk pund","EUR_displayName":"Euro"}); \ No newline at end of file
+define("dojo/cldr/nls/da/currency",{"HKD_displayName":"Hongkong dollar","CHF_displayName":"Schweizisk franc","JPY_symbol":"JP¥","CAD_displayName":"Canadisk dollar","HKD_symbol":"HK$","CNY_displayName":"Kinesisk yuan renminbi","USD_symbol":"$","AUD_displayName":"Australsk dollar","JPY_displayName":"Japansk yen","CAD_symbol":"CA$","USD_displayName":"Amerikansk dollar","EUR_symbol":"€","CNY_symbol":"CN¥","GBP_displayName":"Britisk pund","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"Euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/da/gregorian.js b/lib/dojo/cldr/nls/da/gregorian.js
index 051d42276..5ff57327c 100644
--- a/lib/dojo/cldr/nls/da/gregorian.js
+++ b/lib/dojo/cldr/nls/da/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/da/gregorian",{"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"ugedag","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE. d/M/y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d. MMM y","months-format-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"dayPeriods-format-wide-pm":"e.m.","dateFormat-full":"EEEE 'den' d. MMMM y","dateFormatItem-Md":"d/M","field-era":"æra","dateFormatItem-yM":"M/y","months-standAlone-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"timeFormat-short":"HH.mm","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"timeFormat-long":"HH.mm.ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","field-hour":"time","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yyQ":"Q. 'kvartal' yy","timeFormat-full":"HH.mm.ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgen","field-day-relative+2":"i overmorgen","dateFormatItem-H":"HH","field-day-relative+3":"i overovermorgen","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-M":"M","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-yyyyMMM":"MMM y","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minut","field-dayperiod":"dagtid","days-standAlone-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"i går","field-day-relative+-2":"i forgårs","field-day-relative+-3":"i forforgårs","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E. d/M","field-day":"dag","days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"field-zone":"zone","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h.mm a","days-format-abbr":["søn","man","tir","ons","tor","fre","lør"],"eraNames":["f.Kr.","e.Kr."],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"måned","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"MMM","dayPeriods-format-wide-am":"f.m.","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormat-short":"dd/MM/yy","field-second":"sekund","dateFormatItem-yMMMEd":"EEE. d. MMM y","dateFormatItem-Ed":"E d.","field-week":"uge","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yyyy":"y"}); \ No newline at end of file
+define("dojo/cldr/nls/da/gregorian",{"days-standAlone-short":["sø","ma","ti","on","to","fr","lø"],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"ugedag","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E d/M/y","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["f.Kr.","e.Kr."],"days-format-short":["sø","ma","ti","on","to","fr","lø"],"dateFormat-long":"d. MMM y","months-format-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE 'den' d. MMMM y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"middag","dateFormatItem-yMd":"d/M/y","field-era":"æra","dateFormatItem-yM":"M/y","months-standAlone-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"timeFormat-short":"HH.mm","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"timeFormat-long":"HH.mm.ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","field-hour":"time","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yyQ":"Q. 'kvartal' yy","timeFormat-full":"HH.mm.ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgen","field-day-relative+2":"i overmorgen","dateFormatItem-H":"HH","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-M":"M","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-yyyyMMM":"MMM y","dayPeriods-format-abbr-noon":"middag","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minut","field-dayperiod":"dagtid","days-standAlone-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm.ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"i går","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"i forgårs","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d/M","dateTimeFormat-full":"{1} {0}","field-day":"dag","days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"field-zone":"tidszone","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-year-relative+-1":"sidste år","field-month-relative+-1":"sidste måned","dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h.mm a","days-format-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"dateFormatItem-yMMMd":"d. MMM y","eraNames":["f.Kr.","e.Kr."],"days-format-narrow":["S","M","T","O","T","F","L"],"days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"MMM","field-month":"måned","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"E d. MMMM","dateFormat-short":"dd/MM/yy","dayPeriods-format-narrow-noon":"middag","field-second":"sekund","dateFormatItem-yMMMEd":"E d. MMM y","field-month-relative+0":"denne måned","field-month-relative+1":"næste måned","dateFormatItem-Ed":"E 'd'. d.","field-week":"uge","dateFormat-medium":"dd/MM/yyyy","field-year-relative+0":"i år","field-week-relative+-1":"sidste uge","field-year-relative+1":"næste år","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yyyy":"y","field-week-relative+0":"denne uge","field-week-relative+1":"næste uge"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/da/islamic.js b/lib/dojo/cldr/nls/da/islamic.js
index d7eee79de..8cc02f867 100644
--- a/lib/dojo/cldr/nls/da/islamic.js
+++ b/lib/dojo/cldr/nls/da/islamic.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/da/islamic",{"dateFormatItem-yM":"M/y","dateFormatItem-yyyyMMMEd":"EEE. d. MMM y G","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"e.m.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MMM":"MMM","dayPeriods-format-wide-am":"f.m.","timeFormat-full":"HH.mm.ss zzzz","dateFormatItem-yyyy":"y G","dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormat-long":"d. MMMM y G","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-ms":"mm.ss","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormatItem-yyyyMEd":"EEE. d/M/y G","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q. 'kvartal' y G","timeFormat-long":"HH.mm.ss z","timeFormat-short":"HH.mm","dateFormatItem-H":"HH","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormatItem-M":"M","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E. d/M","dateFormatItem-hm":"h.mm a","dateFormat-short":"d/M/y G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"EEE. d. MMM y","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"EEE. d/M/y","dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d.","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]}); \ No newline at end of file
+define("dojo/cldr/nls/da/islamic",{"dateFormatItem-yM":"M/y","dateFormatItem-yyyyMMMEd":"E d. MMM y G","dateFormatItem-yQ":"Q yyyy","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-MMM":"MMM","quarters-standAlone-abbr":["K1","K2","K3","K4"],"timeFormat-full":"HH.mm.ss zzzz","dateFormatItem-yyyy":"y G","dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormat-long":"d. MMMM y G","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yMd":"d/M/y","quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-ms":"mm.ss","dateFormatItem-yyyyMd":"d/M/y G","dateFormatItem-yyyyMMMd":"d. MMM y G","dateFormatItem-MMMMEd":"E d. MMMM","dateFormatItem-yyyyMEd":"E d/M/y G","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q. 'kvartal' y G","timeFormat-long":"HH.mm.ss z","timeFormat-short":"HH.mm","dateFormatItem-H":"HH","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"dateFormatItem-M":"M","days-format-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yMMMd":"d. MMM y","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E d/M","days-standAlone-short":["sø","ma","ti","on","to","fr","lø"],"dateFormatItem-hm":"h.mm a","days-standAlone-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormat-short":"d/M/y G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"E d. MMM y","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"E d/M/y","days-format-short":["sø","ma","ti","on","to","fr","lø"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d.","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/da/number.js b/lib/dojo/cldr/nls/da/number.js
index 2c47557ab..b2f177c31 100644
--- a/lib/dojo/cldr/nls/da/number.js
+++ b/lib/dojo/cldr/nls/da/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/da/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/da/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":",","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 billioner","decimalFormat-short":"000 bill"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/de/buddhist.js b/lib/dojo/cldr/nls/de/buddhist.js
index a384aebb5..79a7b7409 100644
--- a/lib/dojo/cldr/nls/de/buddhist.js
+++ b/lib/dojo/cldr/nls/de/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/de/buddhist",{"dateFormatItem-yM":"M.y G","dateFormatItem-yyMMdd":"dd.MM.y G","dateFormatItem-yQ":"Q y G","dayPeriods-format-wide-pm":"nachm.","dateFormatItem-MMMEd":"E, d. MMM","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd.MM.","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dayPeriods-format-wide-am":"vorm.","dateFormatItem-y":"y G","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d. MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d.MM.","dateFormatItem-yyMM":"MM.y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-ms":"mm:ss","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dateFormatItem-H":"HH 'Uhr'","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dateFormatItem-MMMMdd":"dd. MMMM","dateFormatItem-M":"L","dateFormatItem-MEd":"E, d.M.","dateFormat-short":"d.M.yyyy","dateFormatItem-yMMMEd":"EEE, d. MMM y G","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"EEE, d.M.y G","months-format-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"dateFormatItem-d":"d","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]}); \ No newline at end of file
+define("dojo/cldr/nls/de/buddhist",{"dateFormatItem-yM":"M.y G","dateFormatItem-yyMMdd":"dd.MM.y G","dateFormatItem-yQ":"Q y G","dayPeriods-format-wide-pm":"nachm.","dateFormatItem-MMMEd":"E, d. MMM","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd.MM.","days-standAlone-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"vorm.","dateFormatItem-y":"y G","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d. MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d.MM.","dateFormatItem-yyMM":"MM.y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-yMd":"d.M.y G","quarters-standAlone-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"dateFormatItem-ms":"mm:ss","months-standAlone-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["Jan.","Feb.","Mär.","Apr.","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez."],"dateFormatItem-H":"HH 'Uhr'","dateFormatItem-MMMMdd":"dd. MMMM","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dateFormatItem-M":"L","days-format-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-yMMMd":"d. MMM y G","dateFormatItem-MEd":"E, d.M.","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-short":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"days-standAlone-abbr":["So","Mo","Di","Mi","Do","Fr","Sa"],"dateFormat-short":"d.M.yyyy","dateFormatItem-yMMMEd":"E, d. MMM y G","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"E, d.M.y G","months-format-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"days-format-short":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dateFormatItem-d":"d","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/de/currency.js b/lib/dojo/cldr/nls/de/currency.js
index 48fddd322..d95b4a590 100644
--- a/lib/dojo/cldr/nls/de/currency.js
+++ b/lib/dojo/cldr/nls/de/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/de/currency",{"HKD_displayName":"Hongkong-Dollar","CHF_displayName":"Schweizer Franken","JPY_symbol":"¥","CAD_displayName":"Kanadischer Dollar","CNY_displayName":"Renminbi Yuan","USD_symbol":"$","AUD_displayName":"Australischer Dollar","JPY_displayName":"Yen","USD_displayName":"US-Dollar","GBP_displayName":"Pfund Sterling","EUR_displayName":"Euro"}); \ No newline at end of file
+define("dojo/cldr/nls/de/currency",{"HKD_displayName":"Hongkong-Dollar","CHF_displayName":"Schweizer Franken","JPY_symbol":"¥","CAD_displayName":"Kanadischer Dollar","HKD_symbol":"HK$","CNY_displayName":"Renminbi Yuan","USD_symbol":"$","AUD_displayName":"Australischer Dollar","JPY_displayName":"Japanische Yen","CAD_symbol":"CA$","USD_displayName":"US-Dollar","EUR_symbol":"€","CNY_symbol":"CN¥","GBP_displayName":"Britisches Pfund Sterling","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"Euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/de/gregorian.js b/lib/dojo/cldr/nls/de/gregorian.js
index 351f2afc7..ba8a3e9b9 100644
--- a/lib/dojo/cldr/nls/de/gregorian.js
+++ b/lib/dojo/cldr/nls/de/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/de/gregorian",{"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Wochentag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d.M.y","dateFormatItem-MMMEd":"E, d. MMM","eraNarrow":["v. Chr.","n. Chr."],"dayPeriods-format-wide-earlyMorning":"morgens","dayPeriods-format-wide-morning":"vormittags","dateFormat-long":"d. MMMM y","months-format-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"dayPeriods-format-wide-evening":"abends","dayPeriods-format-wide-pm":"nachm.","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yyMMdd":"dd.MM.yy","dayPeriods-format-wide-noon":"Mittag","field-era":"Epoche","dateFormatItem-yM":"M.y","months-standAlone-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"timeFormat-long":"HH:mm:ss z","field-year":"Jahr","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Stunde","dateFormatItem-MMdd":"dd.MM.","months-format-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"heute","field-day-relative+1":"morgen","field-day-relative+2":"übermorgen","dateFormatItem-H":"HH 'Uhr'","field-day-relative+3":"überübermorgen","months-standAlone-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"dateFormatItem-M":"L","days-standAlone-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","eraAbbr":["v. Chr.","n. Chr."],"field-minute":"Minute","field-dayperiod":"Tageshälfte","days-standAlone-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dayPeriods-format-wide-night":"nachts","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"gestern","field-day-relative+-2":"vorgestern","field-day-relative+-3":"vorvorgestern","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E, d.M.","field-day":"Tag","days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"field-zone":"Zone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"eraNames":["v. Chr.","n. Chr."],"days-format-narrow":["S","M","D","M","D","F","S"],"field-month":"Monat","days-standAlone-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"vorm.","dateFormatItem-MMMMdd":"dd. MMMM","dateFormat-short":"dd.MM.yy","dateFormatItem-MMd":"d.MM.","dayPeriods-format-wide-afternoon":"nachmittags","field-second":"Sekunde","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormatItem-Ed":"E, d.","field-week":"Woche","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyyy":"y"}); \ No newline at end of file
+define("dojo/cldr/nls/de/gregorian",{"days-standAlone-short":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Wochentag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E, d.M.y","dateFormatItem-MMMEd":"E, d. MMM","eraNarrow":["v. Chr.","n. Chr."],"dayPeriods-format-wide-earlyMorning":"morgens","dayPeriods-format-wide-morning":"vormittags","days-format-short":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dateFormat-long":"d. MMMM y","months-format-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"dayPeriods-format-wide-evening":"abends","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"nachm.","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yyMMdd":"dd.MM.yy","dayPeriods-format-wide-noon":"Mittag","dateFormatItem-yMd":"d.M.y","field-era":"Epoche","dateFormatItem-yM":"M.y","months-standAlone-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"timeFormat-long":"HH:mm:ss z","field-year":"Jahr","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Stunde","dateFormatItem-MMdd":"dd.MM.","months-format-abbr":["Jan.","Feb.","Mär.","Apr.","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Heute","field-day-relative+1":"Morgen","field-day-relative+2":"Übermorgen","dateFormatItem-H":"HH 'Uhr'","months-standAlone-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"dateFormatItem-M":"L","days-standAlone-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["v. Chr.","n. Chr."],"field-minute":"Minute","field-dayperiod":"Tageshälfte","days-standAlone-abbr":["So","Mo","Di","Mi","Do","Fr","Sa"],"dayPeriods-format-wide-night":"nachts","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Gestern","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"Vorgestern","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E, d.M.","dateTimeFormat-full":"{1} {0}","field-day":"Tag","days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"field-zone":"Zone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-year-relative+-1":"Letztes Jahr","field-month-relative+-1":"Letzter Monat","dateFormatItem-yyMM":"MM.yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dateFormatItem-yMMMd":"d. MMM y","eraNames":["v. Chr.","n. Chr."],"days-format-narrow":["S","M","D","M","D","F","S"],"days-standAlone-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-MMM":"LLL","field-month":"Monat","dayPeriods-format-wide-am":"vorm.","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormatItem-MMMMdd":"dd. MMMM","dateFormat-short":"dd.MM.yy","dateFormatItem-MMd":"d.MM.","dayPeriods-format-wide-afternoon":"nachmittags","field-second":"Sekunde","dateFormatItem-yMMMEd":"E, d. MMM y","field-month-relative+0":"Dieser Monat","field-month-relative+1":"Nächster Monat","dateFormatItem-Ed":"E, d.","field-week":"Woche","dateFormat-medium":"dd.MM.yyyy","field-year-relative+0":"Dieses Jahr","field-week-relative+-1":"Letzte Woche","field-year-relative+1":"Nächstes Jahr","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y","field-week-relative+0":"Diese Woche","field-week-relative+1":"Nächste Woche"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/de/islamic.js b/lib/dojo/cldr/nls/de/islamic.js
index f167bc7c1..53e10c50c 100644
--- a/lib/dojo/cldr/nls/de/islamic.js
+++ b/lib/dojo/cldr/nls/de/islamic.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/de/islamic",{"dateFormatItem-yM":"M.y","dateFormatItem-yyyyMMMEd":"EEE, d. MMM y G","dateFormatItem-yyMMdd":"dd.MM.y G","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"nachm.","eraNames":["AH"],"dateFormatItem-MMMEd":"E, d. MMM","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd.MM.","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dayPeriods-format-wide-am":"vorm.","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","D","M","D","F","S"],"eraAbbr":["AH"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d. MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d.MM.","dateFormatItem-yyMM":"MM.y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-ms":"mm:ss","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMEd":"EEE, d.M.y G","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-H":"HH 'Uhr'","dateFormatItem-MMMMdd":"dd. MMMM","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dateFormatItem-M":"L","dateFormatItem-MEd":"E, d.M.","dateFormatItem-yyyyQQQ":"QQQ y G","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormat-short":"d.M.y G","dateFormatItem-yyyyM":"M.y G","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"EEE, d.M.y","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"eraNarrow":["AH"],"days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]}); \ No newline at end of file
+define("dojo/cldr/nls/de/islamic",{"dateFormatItem-yM":"M.y","dateFormatItem-yyyyMMMEd":"E, d. MMM y G","dateFormatItem-yyMMdd":"dd.MM.y G","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"nachm.","dateFormatItem-MMMEd":"E, d. MMM","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd.MM.","days-standAlone-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"vorm.","dateFormatItem-yyyy":"y G","dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d. MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d.MM.","dateFormatItem-yyMM":"MM.y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-yMd":"d.M.y","quarters-standAlone-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"dateFormatItem-ms":"mm:ss","dateFormatItem-yyyyMd":"d.M.y G","dateFormatItem-yyyyMMMd":"d. MMM y G","dateFormatItem-yyyyMEd":"E, d.M.y G","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q y G","dateFormatItem-H":"HH 'Uhr'","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dateFormatItem-MMMMdd":"dd. MMMM","dateFormatItem-M":"L","days-format-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-yMMMd":"d. MMM y","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E, d.M.","days-standAlone-short":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"days-standAlone-abbr":["So","Mo","Di","Mi","Do","Fr","Sa"],"dateFormat-short":"d.M.y G","dateFormatItem-yyyyM":"M.y G","dateFormatItem-yMMMEd":"E, d. MMM y","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"E, d.M.y","days-format-short":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/de/number.js b/lib/dojo/cldr/nls/de/number.js
index a91109e01..9b6867e36 100644
--- a/lib/dojo/cldr/nls/de/number.js
+++ b/lib/dojo/cldr/nls/de/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/de/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/de/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 Billionen","decimalFormat-short":"000 Bio"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/el/buddhist.js b/lib/dojo/cldr/nls/el/buddhist.js
index be3931086..0961958d4 100644
--- a/lib/dojo/cldr/nls/el/buddhist.js
+++ b/lib/dojo/cldr/nls/el/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/el/buddhist",{"quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"dateFormat-medium":"d MMM, y G","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMEd":"EEE, d/M/yyyy","timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-Md":"d/M","months-standAlone-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"months-standAlone-wide":["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],"dateFormatItem-EEEd":"EEE d","days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dayPeriods-format-wide-pm":"μ.μ.","dayPeriods-format-wide-am":"π.μ.","timeFormat-medium":"h:mm:ss a","dateFormat-long":"d MMMM, y G","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE, d MMM y","months-format-wide":["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],"dateFormatItem-yM":"M/yyyy","timeFormat-short":"h:mm a","months-format-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"timeFormat-long":"h:mm:ss a z","days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateFormatItem-yMMM":"LLL y","quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"dateFormat-full":"EEEE, d MMMM, y G","dateFormatItem-MMMd":"d MMM","days-format-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"]}); \ No newline at end of file
+define("dojo/cldr/nls/el/buddhist",{"dateFormatItem-yM":"M/y","dateFormatItem-yQ":"y Q","dayPeriods-format-wide-pm":"μ.μ.","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-yQQQ":"y QQQ","days-standAlone-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"π.μ.","quarters-standAlone-abbr":["Τ1","Τ2","Τ3","Τ4"],"dateFormatItem-y":"y G","timeFormat-full":"h:mm:ss a zzzz","months-standAlone-abbr":["Ιαν","Φεβ","Μάρ","Απρ","Μάι","Ιούν","Ιούλ","Αύγ","Σεπ","Οκτ","Νοέ","Δεκ"],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"LLL, y G","days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dateFormat-long":"d MMMM, y G","timeFormat-medium":"h:mm:ss a","dateFormat-medium":"d MMM, y G","dateFormatItem-yMd":"d/M/y","quarters-standAlone-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"months-standAlone-wide":["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],"dateFormatItem-MMMd":"d MMM","timeFormat-long":"h:mm:ss a z","months-format-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"timeFormat-short":"h:mm a","quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"days-format-abbr":["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],"days-format-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dateFormatItem-yMMMd":"d MMM, y G","dateFormatItem-MEd":"E, d/M","months-format-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"days-standAlone-short":["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],"days-standAlone-abbr":["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"E, d MMM, y G","dateFormat-full":"EEEE, d MMMM, y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, d/M/y","months-format-wide":["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],"days-format-short":["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],"quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/el/currency.js b/lib/dojo/cldr/nls/el/currency.js
index 7575180d5..69a1e1fa3 100644
--- a/lib/dojo/cldr/nls/el/currency.js
+++ b/lib/dojo/cldr/nls/el/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/el/currency",{"HKD_displayName":"Δολάριο Χονγκ Κονγκ","CHF_displayName":"Φράγκο Ελβετίας","CAD_displayName":"Δολάριο Καναδά","CNY_displayName":"Γιουάν Ρενμίμπι Κίνας","AUD_displayName":"Δολάριο Αυστραλίας","JPY_displayName":"Γιεν Ιαπωνίας","USD_displayName":"Δολάριο ΗΠΑ","GBP_displayName":"Λίρα Στερλίνα Βρετανίας","EUR_displayName":"Ευρώ"}); \ No newline at end of file
+define("dojo/cldr/nls/el/currency",{"HKD_displayName":"Δολάριο Χονγκ Κονγκ","CHF_displayName":"Φράγκο Ελβετίας","CAD_displayName":"Δολάριο Καναδά","CNY_displayName":"Γιουάν Ρενμίμπι Κίνας","USD_symbol":"$","AUD_displayName":"Δολάριο Αυστραλίας","JPY_displayName":"Γιεν Ιαπωνίας","USD_displayName":"Δολάριο ΗΠΑ","GBP_displayName":"Λίρα Στερλίνα Βρετανίας","EUR_displayName":"Ευρώ"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/el/gregorian.js b/lib/dojo/cldr/nls/el/gregorian.js
index d90137cd7..71df1475b 100644
--- a/lib/dojo/cldr/nls/el/gregorian.js
+++ b/lib/dojo/cldr/nls/el/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/el/gregorian",{"months-format-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"field-weekday":"Ημέρα εβδομάδας","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d/M/yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["π.Χ.","μ.Χ."],"dateFormat-long":"d MMMM y","months-format-wide":["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"μ.μ.","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d/M","field-era":"Περίοδος","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],"timeFormat-short":"h:mm a","quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"timeFormat-long":"h:mm:ss a z","field-year":"Έτος","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"y Q","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Ώρα","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"h:mm:ss a zzzz","field-day-relative+0":"Σήμερα","field-day-relative+1":"Αύριο","field-day-relative+2":"Μεθαύριο","dateFormatItem-H":"HH","field-day-relative+3":"Σε τρεις ημέρες από τώρα","months-standAlone-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"quarters-standAlone-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"L","days-standAlone-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"LLL yy","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Τ1","Τ2","Τ3","Τ4"],"eraAbbr":["π.Χ.","μ.Χ."],"field-minute":"Λεπτό","field-dayperiod":"π.μ./μ.μ.","days-standAlone-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Χθες","field-day-relative+-2":"Προχθές","field-day-relative+-3":"Πριν από τρεις ημέρες","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","field-day":"Ημέρα","days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"field-zone":"Ζώνη","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],"eraNames":["π.Χ.","μ.Χ."],"days-format-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"field-month":"Μήνας","days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dateFormatItem-MMM":"LLL","dateFormatItem-HHmm":"HH:mm","dayPeriods-format-wide-am":"π.μ.","dateFormatItem-MMMMEd":"E, d MMMM","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"d/M/yy","field-second":"Δευτερόλεπτο","dateFormatItem-yMMMEd":"EEE, d MMM y","dateFormatItem-Ed":"E d","field-week":"Εβδομάδα","dateFormat-medium":"d MMM y","dateFormatItem-mmss":"mm:ss","dateFormatItem-yyyy":"y"}); \ No newline at end of file
+define("dojo/cldr/nls/el/gregorian",{"days-standAlone-short":["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],"months-format-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Ημέρα εβδομάδας","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"E, d/M/yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["π.Χ.","μ.Χ."],"days-format-short":["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],"dateFormat-long":"d MMMM y","months-format-wide":["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],"dateTimeFormat-medium":"{1} - {0}","dayPeriods-format-wide-pm":"μ.μ.","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d/M","dateFormatItem-yMd":"d/M/yyyy","field-era":"Περίοδος","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],"timeFormat-short":"h:mm a","quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"timeFormat-long":"h:mm:ss a z","field-year":"Έτος","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"y Q","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Ώρα","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"h:mm:ss a zzzz","field-day-relative+0":"Σήμερα","field-day-relative+1":"Αύριο","field-day-relative+2":"Μεθαύριο","dateFormatItem-H":"HH","months-standAlone-abbr":["Ιαν","Φεβ","Μάρ","Απρ","Μάι","Ιούν","Ιούλ","Αύγ","Σεπ","Οκτ","Νοέ","Δεκ"],"quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"quarters-standAlone-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"L","days-standAlone-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"LLL yy","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Τ1","Τ2","Τ3","Τ4"],"eraAbbr":["π.Χ.","μ.Χ."],"field-minute":"Λεπτό","field-dayperiod":"π.μ./μ.μ.","days-standAlone-abbr":["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Χτες","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} - {0}","field-day-relative+-2":"Προχτές","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","dateTimeFormat-full":"{1} - {0}","field-day":"Ημέρα","days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"field-zone":"Ζώνη","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"field-year-relative+-1":"Προηγούμενο έτος","field-month-relative+-1":"Προηγούμενος μήνας","dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],"dateFormatItem-yMMMd":"d MMM y","eraNames":["π.Χ.","μ.Χ."],"days-format-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dateFormatItem-MMM":"LLL","field-month":"Μήνας","dateFormatItem-HHmm":"HH:mm","dayPeriods-format-wide-am":"π.μ.","dateFormatItem-MMMMEd":"E, d MMMM","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"d/M/yy","field-second":"Δευτερόλεπτο","dateFormatItem-yMMMEd":"E, d MMM y","field-month-relative+0":"Τρέχων μήνας","field-month-relative+1":"Επόμενος μήνας","dateFormatItem-Ed":"E d","field-week":"Εβδομάδα","dateFormat-medium":"d MMM y","field-year-relative+0":"Φέτος","field-week-relative+-1":"Προηγούμενη εβδομάδα","field-year-relative+1":"Επόμενο έτος","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1} - {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y","field-week-relative+0":"Αυτήν την εβδομάδα","field-week-relative+1":"Επόμενη εβδομάδα"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/el/hebrew.js b/lib/dojo/cldr/nls/el/hebrew.js
index 909e061a5..827a4a139 100644
--- a/lib/dojo/cldr/nls/el/hebrew.js
+++ b/lib/dojo/cldr/nls/el/hebrew.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/el/hebrew",{"quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"dateFormat-medium":"d MMM y","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMEd":"EEE, d/M/yyyy","eraNarrow":["π.μ."],"timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-Md":"d/M","dateFormatItem-EEEd":"EEE d","eraNames":["π.μ."],"days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dayPeriods-format-wide-pm":"μ.μ.","dayPeriods-format-wide-am":"π.μ.","timeFormat-medium":"h:mm:ss a","dateFormat-long":"d MMMM y","dateFormat-short":"d/M/yy","dateFormatItem-yMMMEd":"EEE, d MMM y","dateFormatItem-yM":"M/yyyy","timeFormat-short":"h:mm a","eraAbbr":["π.μ."],"timeFormat-long":"h:mm:ss a z","days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateFormatItem-yMMM":"LLL y","quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"dateFormat-full":"EEEE, d MMMM y","dateFormatItem-MMMd":"d MMM","days-format-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"]}); \ No newline at end of file
+define("dojo/cldr/nls/el/hebrew",{"dateFormatItem-yM":"M/yyyy","dayPeriods-format-wide-pm":"μ.μ.","eraNames":["π.μ."],"dateFormatItem-MMMEd":"E, d MMM","dateTimeFormat-full":"{1} - {0}","days-standAlone-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateTimeFormat-short":"{1} - {0}","dayPeriods-format-wide-am":"π.μ.","dateTimeFormat-medium":"{1} - {0}","quarters-standAlone-abbr":["Τ1","Τ2","Τ3","Τ4"],"timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"LLL y","days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"eraAbbr":["π.μ."],"dateFormat-long":"d MMMM y","timeFormat-medium":"h:mm:ss a","dateFormat-medium":"d MMM y","dateFormatItem-yMd":"d/M/yyyy","quarters-standAlone-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"dateTimeFormat-long":"{1} - {0}","dateFormatItem-MMMd":"d MMM","timeFormat-long":"h:mm:ss a z","timeFormat-short":"h:mm a","quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"days-format-abbr":["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],"days-format-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, d/M","days-standAlone-short":["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],"days-standAlone-abbr":["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],"dateFormat-short":"d/M/yy","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, d/M/yyyy","days-format-short":["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],"quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"eraNarrow":["π.μ."]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/el/number.js b/lib/dojo/cldr/nls/el/number.js
index 2dbe452d2..1667f5481 100644
--- a/lib/dojo/cldr/nls/el/number.js
+++ b/lib/dojo/cldr/nls/el/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/el/number",{"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/el/number",{"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","list":",","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 τρισεκατομμύρια","decimalFormat-short":"000 τρις"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en-au/currency.js b/lib/dojo/cldr/nls/en-au/currency.js
index b983ca9ae..c6388c510 100644
--- a/lib/dojo/cldr/nls/en-au/currency.js
+++ b/lib/dojo/cldr/nls/en-au/currency.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/cldr/nls/en-au/gregorian.js b/lib/dojo/cldr/nls/en-au/gregorian.js
index 285e2bd1e..f22acf2c9 100644
--- a/lib/dojo/cldr/nls/en-au/gregorian.js
+++ b/lib/dojo/cldr/nls/en-au/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/en-au/gregorian",{"dateFormatItem-yMEd":"EEE, d/M/y","dateFormatItem-yyyyMMMM":"MMMM y","dateFormatItem-MEd":"E, d/M","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-MMdd":"dd/MM","dateFormatItem-yyyyMM":"MM/yyyy","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-MMMMd":"d MMMM","dateFormat-short":"d/MM/yy","dateFormat-long":"d MMMM y","dateFormatItem-MMMEd":"E, d MMM"}); \ No newline at end of file
+define("dojo/cldr/nls/en-au/gregorian",{"dateFormatItem-yMd":"d/M/y","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMEd":"E, d/M/y","dateFormatItem-yMMMd":"d MMM y","timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-yyyyMMMM":"MMMM y","dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyyyMM":"MM/yyyy","timeFormat-medium":"h:mm:ss a","dateFormat-long":"d MMMM y","dateFormat-short":"d/MM/yy","timeFormat-short":"h:mm a","timeFormat-long":"h:mm:ss a z","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-MMMd":"d MMM"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en-au/number.js b/lib/dojo/cldr/nls/en-au/number.js
index fb61abd40..bc10a6349 100644
--- a/lib/dojo/cldr/nls/en-au/number.js
+++ b/lib/dojo/cldr/nls/en-au/number.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/cldr/nls/en-ca/currency.js b/lib/dojo/cldr/nls/en-ca/currency.js
index f02d07427..dffc2b8ef 100644
--- a/lib/dojo/cldr/nls/en-ca/currency.js
+++ b/lib/dojo/cldr/nls/en-ca/currency.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/cldr/nls/en-ca/gregorian.js b/lib/dojo/cldr/nls/en-ca/gregorian.js
index 84722ff88..372bf99eb 100644
--- a/lib/dojo/cldr/nls/en-ca/gregorian.js
+++ b/lib/dojo/cldr/nls/en-ca/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/en-ca/gregorian",{"dateFormatItem-yMMMEd":"EEE, d MMM, y","dateFormatItem-yyMMM":"MMM-yy","dateFormatItem-Md":"M-d","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MEd":"E, M-d","dateFormatItem-MMMMEd":"E, d MMMM","dateFormat-medium":"yyyy-MM-dd","dateFormatItem-MMMd":"d MMM","dateFormatItem-MMdd":"MM-dd","dateFormat-full":"EEEE, d MMMM, y","dateFormat-short":"yy-MM-dd","dateFormatItem-MMMMd":"d MMMM","dateFormat-long":"d MMMM, y","dateFormatItem-MMMEd":"E, d MMM"}); \ No newline at end of file
+define("dojo/cldr/nls/en-ca/gregorian",{"dateFormatItem-MMMMEd":"E, MMMM d","dateFormatItem-MMdd":"MM/dd","dateFormatItem-yyMMM":"MMM yy","dateFormatItem-MMMMd":"MMMM d"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en-gb/buddhist.js b/lib/dojo/cldr/nls/en-gb/buddhist.js
index 6a1710bbb..51c5fe4ee 100644
--- a/lib/dojo/cldr/nls/en-gb/buddhist.js
+++ b/lib/dojo/cldr/nls/en-gb/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/en-gb/buddhist",{"dateFormat-medium":"d MMM y G","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMEd":"EEE, d/M/y G","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-y":"y","dateFormatItem-Md":"d/M","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d MMMM y G","dateFormat-short":"dd/MM/y G","dateFormatItem-yMMMEd":"EEE, MMM d, y","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-yM":"M/y","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-yQ":"Q y","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormat-full":"EEEE, d MMMM y G","dateFormatItem-yyyyMd":"d/M/y G","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}); \ No newline at end of file
+define("dojo/cldr/nls/en-gb/buddhist",{"dateFormatItem-yM":"MM/y","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"pm","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd/MM","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dayPeriods-format-wide-am":"am","dateFormatItem-y":"y","dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormatItem-yyyyMM":"MM/y G","dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d MMMM y G","dateFormat-medium":"d MMM y G","dayPeriods-format-narrow-pm":"p","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yMd":"dd/MM/yyyy","dayPeriods-format-narrow-am":"a","dateFormatItem-yyyyMd":"d/M/y G","dateFormatItem-MMMd":"d MMM","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dateFormatItem-MMMMd":"d MMMM","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-M":"LL","dateFormatItem-yMMMd":"d MMM y G","dateFormatItem-MEd":"E, d/M","dateFormat-short":"dd/MM/y G","dateFormatItem-yMMMEd":"E, d MMM y G","dateFormat-full":"EEEE, d MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, d/M/y G","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"days-format-short":["Su","Mo","Tu","We","Th","Fr","Sa"],"quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en-gb/currency.js b/lib/dojo/cldr/nls/en-gb/currency.js
new file mode 100644
index 000000000..832073218
--- /dev/null
+++ b/lib/dojo/cldr/nls/en-gb/currency.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/en-gb/currency",{"HKD_displayName":"Hong Kong Dollar","CAD_displayName":"Canadian Dollar","HKD_symbol":"HK$","CNY_displayName":"Chinese Yuan","AUD_displayName":"Australian Dollar","CAD_symbol":"CA$","EUR_symbol":"€","CNY_symbol":"CN¥","GBP_displayName":"British Pound","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"Euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en-gb/gregorian.js b/lib/dojo/cldr/nls/en-gb/gregorian.js
index 472c7dbeb..b8e2461be 100644
--- a/lib/dojo/cldr/nls/en-gb/gregorian.js
+++ b/lib/dojo/cldr/nls/en-gb/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/en-gb/gregorian",{"dateFormatItem-yyMMM":"MMM yy","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE, d/M/yyyy","timeFormat-full":"HH:mm:ss zzzz","timeFormat-medium":"HH:mm:ss","dateFormatItem-yyyyMMMM":"MMMM y","dateFormatItem-MEd":"E, d/M","dateFormat-medium":"d MMM y","dateFormatItem-MMdd":"dd/MM","dateFormatItem-yyyyMM":"MM/yyyy","dateFormat-full":"EEEE, d MMMM y","timeFormat-long":"HH:mm:ss z","timeFormat-short":"HH:mm","dateFormat-short":"dd/MM/yyyy","dateFormatItem-MMMMd":"d MMMM","dateFormat-long":"d MMMM y","dateFormatItem-MMMEd":"E d MMM"}); \ No newline at end of file
+define("dojo/cldr/nls/en-gb/gregorian",{"dateFormatItem-yM":"MM/y","field-dayperiod":"am/pm","dayPeriods-format-wide-pm":"pm","dateFormatItem-yQ":"Q y","dateFormatItem-MMMEd":"E d MMM","dateTimeFormat-full":"{1} {0}","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-MMdd":"dd/MM","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMM":"LLL","dateTimeFormat-short":"{1} {0}","dayPeriods-format-wide-am":"am","dateTimeFormat-medium":"{1} {0}","dateFormatItem-y":"y","timeFormat-full":"HH:mm:ss zzzz","dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-yyyyMMMM":"MMMM y","dateFormat-long":"d MMMM y","timeFormat-medium":"HH:mm:ss","dateFormatItem-Ehm":"E h:mm a","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM yy","dateFormatItem-yMd":"dd/MM/yyyy","dateFormatItem-ms":"mm:ss","dateTimeFormat-long":"{1} {0}","dateFormatItem-MMMd":"d MMM","dateFormatItem-Ehms":"E h:mm:ss a","timeFormat-long":"HH:mm:ss z","timeFormat-short":"HH:mm","dateFormatItem-H":"HH","dateFormatItem-MMMMd":"d MMMM","dateFormatItem-M":"LL","dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E dd/MM","dateFormatItem-hm":"h:mm a","dateFormat-short":"dd/MM/yyyy","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-EHms":"E HH:mm:ss","dateFormatItem-Md":"dd/MM","dateFormatItem-EHm":"E HH:mm","dateFormatItem-yMEd":"E, dd/MM/yyyy","dateFormatItem-d":"d","dateFormatItem-h":"h a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en-gb/islamic.js b/lib/dojo/cldr/nls/en-gb/islamic.js
index 850ef21bc..6d9282d79 100644
--- a/lib/dojo/cldr/nls/en-gb/islamic.js
+++ b/lib/dojo/cldr/nls/en-gb/islamic.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/en-gb/islamic",{"dateFormat-medium":"d MMM y G","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMEd":"EEE, d/M/yyyy","dateFormatItem-yyyyMMM":"MMM y G","eraNarrow":["AH"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-yyMMM":"MMM y G","dateFormatItem-Md":"d/M","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"eraNames":["AH"],"days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormatItem-yyyyMEd":"EEE, d/M/y G","dateFormatItem-yyyyMMMM":"MMMM y G","dateFormatItem-MMMMd":"d MMMM","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d MMMM y G","dateFormat-short":"dd/MM/y G","dateFormatItem-yMMMEd":"EEE, MMM d, y","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yM":"M/y","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"eraAbbr":["AH"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-yQ":"Q y","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormatItem-yyyyMd":"d/M/y G","dateFormat-full":"EEEE, d MMMM y G","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}); \ No newline at end of file
+define("dojo/cldr/nls/en-gb/islamic",{"dateFormatItem-yM":"MM/y","dateFormatItem-yyyyMMMEd":"E, d MMM y G","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"pm","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd/MM","dayPeriods-format-wide-am":"am","dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormatItem-yyyyMM":"MM/y G","dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d MMMM y G","dateFormat-medium":"d MMM y G","dayPeriods-format-narrow-pm":"p","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yMd":"dd/MM/yyyy","dayPeriods-format-narrow-am":"a","dateFormatItem-yyyyMd":"d/M/y G","dateFormatItem-yyyyMMMd":"d MMM y G","dateFormatItem-yyyyMEd":"E, d/M/y G","dateFormatItem-MMMd":"d MMM","dateFormatItem-MMMMd":"d MMMM","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-M":"LL","dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, d/M","dateFormat-short":"dd/MM/y G","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, dd/MM/yyyy","days-format-short":["Su","Mo","Tu","We","Th","Fr","Sa"],"quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en-gb/number.js b/lib/dojo/cldr/nls/en-gb/number.js
index 3892f0ffa..d2f53365c 100644
--- a/lib/dojo/cldr/nls/en-gb/number.js
+++ b/lib/dojo/cldr/nls/en-gb/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/en-gb/number",{"currencyFormat":"¤#,##0.00"}); \ No newline at end of file
+define("dojo/cldr/nls/en-gb/number",{"currencyFormat":"¤#,##0.00","decimalFormat-short":"000T"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en/buddhist.js b/lib/dojo/cldr/nls/en/buddhist.js
index ae3c58cec..e4d18269b 100644
--- a/lib/dojo/cldr/nls/en/buddhist.js
+++ b/lib/dojo/cldr/nls/en/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/en/buddhist",{"dateFormat-medium":"MMM d, y G","dateFormatItem-MMMEd":"E, MMM d","dateFormatItem-MEd":"E, M/d","dateFormatItem-yMEd":"EEE, M/d/y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-y":"y G","timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-hm":"h:mm a","dateFormatItem-Md":"M/d","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-EEEd":"d EEE","dateFormatItem-M":"L","days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormatItem-yQQQ":"QQQ y G","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hms":"HH:mm:ss","dateFormat-long":"MMMM d, y G","dateFormatItem-ms":"mm:ss","dateFormat-short":"M/d/yy G","dateFormatItem-yMMMEd":"EEE, MMM d, y G","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-d":"d","dateFormatItem-yM":"M/y G","timeFormat-short":"h:mm a","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"timeFormat-long":"h:mm:ss a z","days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQ":"Q y G","dateFormatItem-MMM":"LLL","dateFormatItem-yMMM":"MMM y G","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormat-full":"EEEE, MMMM d, y G","dateFormatItem-MMMd":"MMM d","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}); \ No newline at end of file
+define("dojo/cldr/nls/en/buddhist",{"dateFormatItem-yM":"M/y GGGGG","dateFormatItem-yQ":"Q y G","dateFormatItem-MMMEd":"E, MMM d","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-Gy":"y G","dateFormatItem-y":"y G","timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-Ed":"d E","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormat-long":"MMMM d, y G","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"MMM d, y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"p","dateFormatItem-yMd":"M/d/y GGGGG","dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"a","dateFormatItem-MMMd":"MMM d","timeFormat-long":"h:mm:ss a z","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"timeFormat-short":"h:mm a","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"MMM d, y G","dateFormatItem-MEd":"E, M/d","dateFormatItem-hm":"h:mm a","dateFormat-short":"M/d/yy GGGGG","dateFormatItem-yMMMEd":"E, MMM d, y G","dateFormat-full":"EEEE, MMMM d, y G","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"E, M/d/y GGGGG","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"days-format-short":["Su","Mo","Tu","We","Th","Fr","Sa"],"dateFormatItem-d":"d","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en/currency.js b/lib/dojo/cldr/nls/en/currency.js
index a0578d38b..ec5f3b3ed 100644
--- a/lib/dojo/cldr/nls/en/currency.js
+++ b/lib/dojo/cldr/nls/en/currency.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/cldr/nls/en/gregorian.js b/lib/dojo/cldr/nls/en/gregorian.js
index 4ceaefd39..c624ec00d 100644
--- a/lib/dojo/cldr/nls/en/gregorian.js
+++ b/lib/dojo/cldr/nls/en/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/en/gregorian",{"dateFormatItem-yM":"M/y","field-dayperiod":"AM/PM","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"PM","field-minute":"Minute","eraNames":["Before Christ","Anno Domini"],"dateFormatItem-MMMEd":"E, MMM d","dateTimeFormat-full":"{1} {0}","field-day-relative+-1":"Yesterday","field-weekday":"Day of the Week","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateTimeFormat-short":"{1} {0}","field-era":"Era","field-hour":"Hour","dayPeriods-format-wide-am":"AM","dateTimeFormat-medium":"{1} {0}","dateFormatItem-y":"y","timeFormat-full":"h:mm:ss a zzzz","months-standAlone-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dateFormatItem-yMMM":"MMM y","field-day-relative+0":"Today","field-day-relative+1":"Tomorrow","days-standAlone-narrow":["S","M","T","W","T","F","S"],"eraAbbr":["BC","AD"],"dateFormat-long":"MMMM d, y","timeFormat-medium":"h:mm:ss a","dateFormatItem-EEEd":"d EEE","field-zone":"Zone","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"MMM d, y","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormatItem-ms":"mm:ss","field-year":"Year","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","field-week":"Week","months-standAlone-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-MMMd":"MMM d","timeFormat-long":"h:mm:ss a z","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dayPeriods-format-wide-noon":"noon","timeFormat-short":"h:mm a","field-month":"Month","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-M":"L","days-format-narrow":["S","M","T","W","T","F","S"],"field-second":"Second","field-day":"Day","dateFormatItem-MEd":"E, M/d","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormat-short":"M/d/yy","dateFormatItem-yMMMEd":"EEE, MMM d, y","dateFormat-full":"EEEE, MMMM d, y","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"EEE, M/d/y","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-d":"d","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"eraNarrow":["B","A"]}); \ No newline at end of file
+define("dojo/cldr/nls/en/gregorian",{"dateFormatItem-Ehm":"E h:mm a","days-standAlone-short":["Su","Mo","Tu","We","Th","Fr","Sa"],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Day of the Week","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E, M/d/y","dateFormatItem-MMMEd":"E, MMM d","eraNarrow":["B","A"],"days-format-short":["Su","Mo","Tu","We","Th","Fr","Sa"],"dateFormat-long":"MMMM d, y","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateTimeFormat-medium":"{1}, {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, MMMM d, y","dateFormatItem-Md":"M/d","dayPeriods-format-wide-noon":"noon","dateFormatItem-yMd":"M/d/y","field-era":"Era","dateFormatItem-yM":"M/y","months-standAlone-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"timeFormat-short":"h:mm a","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"timeFormat-long":"h:mm:ss a z","field-year":"Year","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","field-hour":"Hour","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"timeFormat-full":"h:mm:ss a zzzz","field-day-relative+0":"Today","field-day-relative+1":"Tomorrow","months-standAlone-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormatItem-M":"L","days-standAlone-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","eraAbbr":["BC","AD"],"field-minute":"Minute","field-dayperiod":"AM/PM","days-standAlone-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Yesterday","dateTimeFormat-long":"{1} 'at' {0}","dayPeriods-format-narrow-am":"a","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M/d","dateTimeFormat-full":"{1} 'at' {0}","field-day":"Day","days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"field-zone":"Time Zone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-year-relative+-1":"Last year","field-month-relative+-1":"Last month","dateFormatItem-hm":"h:mm a","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-yMMMd":"MMM d, y","eraNames":["Before Christ","Anno Domini"],"days-format-narrow":["S","M","T","W","T","F","S"],"field-month":"Month","days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-EHm":"E HH:mm","dateFormat-short":"M/d/yy","dateFormatItem-EHms":"E HH:mm:ss","dateFormatItem-Ehms":"E h:mm:ss a","dayPeriods-format-narrow-noon":"n","field-second":"Second","dateFormatItem-yMMMEd":"E, MMM d, y","field-month-relative+0":"This month","field-month-relative+1":"Next month","dateFormatItem-Ed":"d E","field-week":"Week","dateFormat-medium":"MMM d, y","field-year-relative+0":"This year","field-week-relative+-1":"Last week","field-year-relative+1":"Next year","dayPeriods-format-narrow-pm":"p","dateTimeFormat-short":"{1}, {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"This week","field-week-relative+1":"Next week"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en/islamic.js b/lib/dojo/cldr/nls/en/islamic.js
index 15bbb3b28..dbd5af46c 100644
--- a/lib/dojo/cldr/nls/en/islamic.js
+++ b/lib/dojo/cldr/nls/en/islamic.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/en/islamic",{"dateFormatItem-yM":"M/y","dateFormatItem-yyyyMMMEd":"EEE, MMM d, y G","dateFormatItem-yQ":"Q y","eraNames":["AH"],"dateFormatItem-MMMEd":"E, MMM d","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","W","T","F","S"],"eraAbbr":["AH"],"dateFormat-long":"MMMM d, y G","timeFormat-medium":"h:mm:ss a","dateFormatItem-EEEd":"d EEE","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"MMM d, y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-ms":"mm:ss","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMEd":"EEE, M/d/y G","dateFormatItem-MMMd":"MMM d","timeFormat-long":"h:mm:ss a z","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"timeFormat-short":"h:mm a","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-M":"L","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E, M/d","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"h:mm a","dateFormat-short":"M/d/yy G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"EEE, MMM d, y","dateFormat-full":"EEEE, MMMM d, y G","dateFormatItem-Md":"M/d","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"EEE, M/d/y","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"eraNarrow":["AH"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}); \ No newline at end of file
+define("dojo/cldr/nls/en/islamic",{"dateFormatItem-yM":"M/y","dateFormatItem-yyyyMMMEd":"E, MMM d, y G","dateFormatItem-yQ":"Q y","dateFormatItem-MMMEd":"E, MMM d","dateTimeFormat-full":"{1} 'at' {0}","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMM":"LLL","dateTimeFormat-short":"{1}, {0}","dateTimeFormat-medium":"{1}, {0}","timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-yyyy":"y G","dateFormatItem-Ed":"d E","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormat-long":"MMMM d, y G","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"MMM d, y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"p","dateFormatItem-yMd":"M/d/y","dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"a","dateTimeFormat-long":"{1} 'at' {0}","dateFormatItem-yyyyMd":"M/d/y G","dateFormatItem-yyyyMMMd":"MMM d, y G","dateFormatItem-yyyyMEd":"E, M/d/y G","dateFormatItem-MMMd":"MMM d","timeFormat-long":"h:mm:ss a z","timeFormat-short":"h:mm a","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"MMM d, y","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E, M/d","dateFormatItem-hm":"h:mm a","dateFormat-short":"M/d/yy G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"E, MMM d, y","dateFormat-full":"EEEE, MMMM d, y G","dateFormatItem-Md":"M/d","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"E, M/d/y","days-format-short":["Su","Mo","Tu","We","Th","Fr","Sa"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/en/number.js b/lib/dojo/cldr/nls/en/number.js
index ecb843bcd..c6db228aa 100644
--- a/lib/dojo/cldr/nls/en/number.js
+++ b/lib/dojo/cldr/nls/en/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/en/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-short":"000T"}); \ No newline at end of file
+define("dojo/cldr/nls/en/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":".","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-long":"000 trillion","decimalFormat-short":"000T"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/es/buddhist.js b/lib/dojo/cldr/nls/es/buddhist.js
index aac75ba3a..2c26fd479 100644
--- a/lib/dojo/cldr/nls/es/buddhist.js
+++ b/lib/dojo/cldr/nls/es/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/es/buddhist",{"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"Q y G","dayPeriods-format-wide-pm":"p.m.","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"dayPeriods-format-wide-am":"a.m.","dateFormatItem-y":"y G","dateFormatItem-MMMdd":"dd-MMM","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d 'de' MMMM 'de' y G","dateFormatItem-EEEd":"EEE d","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d/MM","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"dd/MM/y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM-y G","dateFormatItem-yyQQQQ":"QQQQ 'de' y G","dateFormatItem-yMd":"d/M/y G","dateFormatItem-yMMMM":"MMMM 'de' y G","dateFormatItem-ms":"mm:ss","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],"dateFormatItem-MMMMd":"d 'de' MMMM","quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMM y G","dateFormatItem-MEd":"E, d/M","dateFormatItem-hm":"hh:mm a","dateFormat-short":"dd/MM/y G","dateFormatItem-yMMMEd":"EEE, d MMM y G","dateFormat-full":"EEEE d 'de' MMMM 'de' y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE d/M/y G","months-format-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"dateFormatItem-d":"d","quarters-format-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"days-format-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"dateFormatItem-h":"hh a"}); \ No newline at end of file
+define("dojo/cldr/nls/es/buddhist",{"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"Q y G","dayPeriods-format-wide-pm":"p.m.","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"a.m.","dateFormatItem-y":"y G","dateFormatItem-MMMdd":"dd-MMM","months-standAlone-abbr":["ene","feb","mar","abr","mayo","jun","jul","ago","sep","oct","nov","dic"],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["D","L","M","X","J","V","S"],"dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d 'de' MMMM 'de' y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d/MM","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"dd/MM/y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM-y G","dateFormatItem-yyQQQQ":"QQQQ 'de' y G","dateFormatItem-yMd":"d/M/y G","quarters-standAlone-wide":["1.er trimestre","2.º trimestre","3.er trimestre","4.º trimestre"],"dateFormatItem-yMMMM":"MMMM 'de' y G","dateFormatItem-ms":"mm:ss","quarters-standAlone-narrow":["1T","2T","3T","4T"],"dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["1T","2T","3T","4T"],"dateFormatItem-yyQ":"Q y G","months-format-abbr":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],"dateFormatItem-MMMMd":"d 'de' MMMM","quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMM y G","dateFormatItem-MEd":"E, d/M","days-standAlone-short":["D","L","M","X","J","V","S"],"dateFormatItem-hm":"hh:mm a","dateFormat-short":"dd/MM/y G","dateFormatItem-yMMMEd":"E, d MMM y G","dateFormat-full":"EEEE, d 'de' MMMM 'de' y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E d/M/y G","months-format-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"days-format-short":["D","L","M","X","J","V","S"],"dateFormatItem-d":"d","quarters-format-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"days-format-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"dateFormatItem-h":"hh a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/es/currency.js b/lib/dojo/cldr/nls/es/currency.js
index f88ae2908..3d3d30638 100644
--- a/lib/dojo/cldr/nls/es/currency.js
+++ b/lib/dojo/cldr/nls/es/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/es/currency",{"HKD_displayName":"dólar de Hong Kong","CHF_displayName":"franco suizo","CAD_displayName":"dólar canadiense","CNY_displayName":"yuan renminbi chino","AUD_displayName":"dólar australiano","JPY_displayName":"yen japonés","USD_displayName":"dólar estadounidense","GBP_displayName":"libra esterlina británica","EUR_displayName":"euro"}); \ No newline at end of file
+define("dojo/cldr/nls/es/currency",{"HKD_displayName":"dólar de Hong Kong","CHF_displayName":"franco suizo","CAD_displayName":"dólar canadiense","CNY_displayName":"yuan chino","AUD_displayName":"dólar australiano","JPY_displayName":"yen japonés","USD_displayName":"dólar estadounidense","GBP_displayName":"libra esterlina británica","AUD_symbol":"AU$","EUR_displayName":"euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/es/gregorian.js b/lib/dojo/cldr/nls/es/gregorian.js
index adcf1e0ff..69ac7e754 100644
--- a/lib/dojo/cldr/nls/es/gregorian.js
+++ b/lib/dojo/cldr/nls/es/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/es/gregorian",{"months-format-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"día de la semana","dateFormatItem-yyQQQQ":"QQQQ 'de' yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["a.C.","d.C."],"dateFormatItem-MMMdd":"dd-MMM","dateFormat-long":"d 'de' MMMM 'de' y","months-format-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"p.m.","dateFormat-full":"EEEE d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","field-era":"era","dateFormatItem-yM":"M/y","months-standAlone-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"año","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","field-hour":"hora","months-format-abbr":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"hoy","field-day-relative+1":"mañana","field-day-relative+2":"pasado mañana","field-day-relative+3":"Dentro de tres días","months-standAlone-abbr":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"dateFormatItem-MMMMd":"d 'de' MMMM","dateFormatItem-yyMMM":"MMM-yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["a.C.","d.C."],"field-minute":"minuto","field-dayperiod":"periodo del día","days-standAlone-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"ayer","dateFormatItem-h":"hh a","field-day-relative+-2":"antes de ayer","field-day-relative+-3":"Hace tres días","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMMMM":"MMMM 'de' y","field-day":"día","days-format-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"field-zone":"zona","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"eraNames":["antes de Cristo","anno Dómini"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"mes","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"a.m.","dateFormat-short":"dd/MM/yy","dateFormatItem-MMd":"d/MM","field-second":"segundo","dateFormatItem-yMMMEd":"EEE, d MMM y","field-week":"semana","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a"}); \ No newline at end of file
+define("dojo/cldr/nls/es/gregorian",{"days-standAlone-short":["D","L","M","X","J","V","S"],"months-format-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1T","2T","3T","4T"],"field-weekday":"día de la semana","dateFormatItem-yyQQQQ":"QQQQ 'de' yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d/M/y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["a.C.","d.C."],"dateFormatItem-MMMdd":"dd-MMM","days-format-short":["D","L","M","X","J","V","S"],"dateFormat-long":"d 'de' MMMM 'de' y","months-format-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"p.m.","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","dateFormatItem-yMd":"d/M/y","field-era":"era","dateFormatItem-yM":"M/y","months-standAlone-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"año","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","field-hour":"hora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"hoy","field-day-relative+1":"mañana","field-day-relative+2":"pasado mañana","dateFormatItem-H":"HH","months-standAlone-abbr":["ene","feb","mar","abr","mayo","jun","jul","ago","sep","oct","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1.er trimestre","2.º trimestre","3.er trimestre","4.º trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"dateFormatItem-MMMMd":"d 'de' MMMM","dateFormatItem-yyMMM":"MMM-yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["a.C.","d.C."],"field-minute":"minuto","field-dayperiod":"periodo del día","days-standAlone-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1T","2T","3T","4T"],"field-day-relative+-1":"ayer","dateFormatItem-h":"hh a","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"antes de ayer","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","dateTimeFormat-full":"{1} {0}","dateFormatItem-yMMMM":"MMMM 'de' y","field-day":"día","days-format-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"field-zone":"zona","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"field-year-relative+-1":"el año pasado","field-month-relative+-1":"el mes pasado","dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-yMMMd":"d MMM y","eraNames":["antes de Cristo","anno Dómini"],"days-format-narrow":["D","L","M","X","J","V","S"],"field-month":"mes","days-standAlone-narrow":["D","L","M","X","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"a.m.","dateFormat-short":"dd/MM/yy","dateFormatItem-MMd":"d/MM","field-second":"segundo","dateFormatItem-yMMMEd":"EEE, d 'de' MMMM 'de' y","field-month-relative+0":"este mes","field-month-relative+1":"el próximo mes","dateFormatItem-Ed":"E d","field-week":"semana","dateFormat-medium":"dd/MM/yyyy","field-year-relative+0":"este año","field-week-relative+-1":"la semana pasada","field-year-relative+1":"el próximo año","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","field-week-relative+0":"esta semana","field-week-relative+1":"la próxima semana"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/es/islamic.js b/lib/dojo/cldr/nls/es/islamic.js
index 67a6ad973..707d8a350 100644
--- a/lib/dojo/cldr/nls/es/islamic.js
+++ b/lib/dojo/cldr/nls/es/islamic.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/es/islamic",{"dateFormatItem-yM":"M/y","dateFormatItem-yyyyMMMEd":"EEE, d MMM y G","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"p.m.","eraNames":["AH"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dayPeriods-format-wide-am":"a.m.","dateFormatItem-MMMdd":"dd-MMM","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["D","L","M","M","J","V","S"],"eraAbbr":["AH"],"dateFormatItem-yyyyMMMM":"MMMM 'de' y G","dateFormat-long":"d 'de' MMMM 'de' y G","dateFormatItem-EEEd":"EEE d","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d/MM","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"dd/MM/y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM-y G","dateFormatItem-yyQQQQ":"QQQQ 'de' y G","dateFormatItem-ms":"mm:ss","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMEd":"EEE d/M/y G","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-MMMMd":"d 'de' MMMM","quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-M":"L","dateFormatItem-MEd":"E, d/M","dateFormatItem-yyyyQQQ":"QQQ y G","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"hh:mm a","dateFormat-short":"dd/MM/y G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"EEE, d MMM y","dateFormat-full":"EEEE d 'de' MMMM 'de' y G","dateFormatItem-Md":"d/M","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"EEE d/M/y","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"eraNarrow":["AH"],"days-format-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"dateFormatItem-h":"hh a"}); \ No newline at end of file
+define("dojo/cldr/nls/es/islamic",{"dateFormatItem-yM":"M/y","dateFormatItem-yyyyMMMEd":"E, d MMM y G","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"p.m.","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"a.m.","dateFormatItem-MMMdd":"dd-MMM","dateFormatItem-yyyy":"y G","dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["D","L","M","X","J","V","S"],"dateFormatItem-yyyyMMMM":"MMMM 'de' y G","dateFormat-long":"d 'de' MMMM 'de' y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d/MM","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"dd/MM/y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM-y G","dateFormatItem-yyQQQQ":"QQQQ 'de' y G","dateFormatItem-yMd":"d/M/y","quarters-standAlone-wide":["1.er trimestre","2.º trimestre","3.er trimestre","4.º trimestre"],"dateFormatItem-ms":"mm:ss","quarters-standAlone-narrow":["1T","2T","3T","4T"],"dateFormatItem-yyyyMd":"d/M/y G","dateFormatItem-yyyyMMMd":"d MMM y G","dateFormatItem-yyyyMEd":"E d/M/y G","dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["1T","2T","3T","4T"],"dateFormatItem-yyQ":"Q y G","dateFormatItem-MMMMd":"d 'de' MMMM","quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, d/M","dateFormatItem-yyyyQQQ":"QQQ y G","days-standAlone-short":["D","L","M","X","J","V","S"],"dateFormatItem-hm":"hh:mm a","dateFormat-short":"dd/MM/y G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"E d MMM y","dateFormat-full":"EEEE, d 'de' MMMM 'de' y G","dateFormatItem-Md":"d/M","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"EEE, d/M/y","days-format-short":["D","L","M","X","J","V","S"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"days-format-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"dateFormatItem-h":"hh a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/es/number.js b/lib/dojo/cldr/nls/es/number.js
index f993b17bd..43bdb13a3 100644
--- a/lib/dojo/cldr/nls/es/number.js
+++ b/lib/dojo/cldr/nls/es/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/es/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/es/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 billones","decimalFormat-short":"000 B"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fi/buddhist.js b/lib/dojo/cldr/nls/fi/buddhist.js
index 61ae755e1..c77dd23b6 100644
--- a/lib/dojo/cldr/nls/fi/buddhist.js
+++ b/lib/dojo/cldr/nls/fi/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/fi/buddhist",{"dateFormatItem-yM":"L.y G","dateFormatItem-yMMMMccccd":"cccc, d. MMMM y G","dateFormatItem-yQ":"Q/y G","dayPeriods-format-wide-pm":"ip.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y G","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"ap.","dateFormatItem-y":"y G","timeFormat-full":"H.mm.ss zzzz","months-standAlone-abbr":["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],"dateFormatItem-Ed":"ccc d.","dateFormatItem-yMMM":"LLLL y G","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-yyyyMMMM":"LLLL y G","dateFormat-long":"d. MMMM y G","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","dateFormatItem-yyyyMEEEd":"EEE d.M.y G","dateFormatItem-yyMM":"M.y G","dateFormat-medium":"d.M.y G","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-yyMMM":"LLLL y G","dateFormatItem-ms":"mm.ss","dateFormatItem-yyyyQQQQ":"QQQQ y G","months-standAlone-wide":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q/y G","timeFormat-long":"H.mm.ss z","months-format-abbr":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-H":"H","timeFormat-short":"H.mm","quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"days-format-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-M":"L","dateFormatItem-MEd":"E d.M.","dateFormatItem-hm":"h.mm a","dayPeriods-format-abbr-pm":"ip.","dateFormat-short":"d.M.y G","dateFormatItem-yyyyM":"M.y G","dateFormatItem-yMMMEd":"EEE d. MMM y G","dateFormat-full":"cccc d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"EEE d.M.y G","months-format-wide":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dayPeriods-format-abbr-am":"ap.","dateFormatItem-d":"d","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"]}); \ No newline at end of file
+define("dojo/cldr/nls/fi/buddhist",{"dateFormatItem-yM":"L.y G","dateFormatItem-yMMMMccccd":"cccc, d. MMMM y G","dateFormatItem-yQ":"Q/y G","dayPeriods-format-wide-pm":"ip.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y G","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"ap.","quarters-standAlone-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"dateFormatItem-y":"y G","timeFormat-full":"H.mm.ss zzzz","months-standAlone-abbr":["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],"dateFormatItem-Ed":"ccc d.","dateFormatItem-yMMM":"LLLL y G","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-yyyyMMMM":"LLLL y G","dateFormat-long":"d. MMMM y G","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","dateFormatItem-yyMM":"M.y G","dateFormat-medium":"d.M.y G","dateFormatItem-Hms":"H.mm.ss","dayPeriods-format-narrow-pm":"ip.","dateFormatItem-yyMMM":"LLLL y G","dateFormatItem-yMd":"d.M.y G","quarters-standAlone-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"dateFormatItem-ms":"mm.ss","dateFormatItem-yyyyQQQQ":"QQQQ y G","dayPeriods-format-narrow-am":"ap.","months-standAlone-wide":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"dateFormatItem-yyyyMEd":"E d.M.y G","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q/y G","timeFormat-long":"H.mm.ss z","months-format-abbr":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-H":"H","timeFormat-short":"H.mm","quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"days-format-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-M":"L","days-format-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-yMMMd":"d. MMM y G","dateFormatItem-MEd":"E d.M.","months-format-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"days-standAlone-short":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-hm":"h.mm a","days-standAlone-abbr":["su","ma","ti","ke","to","pe","la"],"dayPeriods-format-abbr-pm":"ip.","dateFormat-short":"d.M.y G","dateFormatItem-yyyyM":"M.y G","dateFormatItem-yMMMEd":"E d. MMM y G","dateFormat-full":"cccc d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"E d.M.y G","months-format-wide":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dayPeriods-format-abbr-am":"ap.","days-format-short":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-d":"d","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fi/currency.js b/lib/dojo/cldr/nls/fi/currency.js
index c9af8f9e9..7191777c0 100644
--- a/lib/dojo/cldr/nls/fi/currency.js
+++ b/lib/dojo/cldr/nls/fi/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/fi/currency",{"HKD_displayName":"Hongkongin dollari","CHF_displayName":"Sveitsin frangi","CHF_symbol":"CHF","JPY_symbol":"¥","CAD_displayName":"Kanadan dollari","HKD_symbol":"HKD","CNY_displayName":"Kiinan yuan","USD_symbol":"$","AUD_displayName":"Australian dollari","JPY_displayName":"Japanin jeni","CAD_symbol":"CAD","USD_displayName":"Yhdysvaltain dollari","CNY_symbol":"CNY","GBP_displayName":"Englannin punta","AUD_symbol":"AUD","EUR_displayName":"euro"}); \ No newline at end of file
+define("dojo/cldr/nls/fi/currency",{"HKD_displayName":"Hongkongin dollari","CHF_displayName":"Sveitsin frangi","JPY_symbol":"¥","CAD_displayName":"Kanadan dollari","HKD_symbol":"HKD","CNY_displayName":"Kiinan yuan","USD_symbol":"$","AUD_displayName":"Australian dollari","JPY_displayName":"Japanin jeni","CAD_symbol":"CAD","USD_displayName":"Yhdysvaltain dollari","EUR_symbol":"€","CNY_symbol":"CNY","GBP_displayName":"Englannin punta","GBP_symbol":"£","AUD_symbol":"AUD","EUR_displayName":"euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fi/gregorian.js b/lib/dojo/cldr/nls/fi/gregorian.js
index 59de80253..9ab9b756c 100644
--- a/lib/dojo/cldr/nls/fi/gregorian.js
+++ b/lib/dojo/cldr/nls/fi/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/fi/gregorian",{"months-format-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"field-weekday":"viikonpäivä","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d.M.yyyy","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["eKr.","jKr."],"dateFormat-long":"d. MMMM y","months-format-wide":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dayPeriods-format-wide-pm":"ip.","dateFormat-full":"cccc d. MMMM y","dateFormatItem-Md":"d.M.","dayPeriods-standAlone-wide-pm":"ip.","dayPeriods-format-abbr-am":"ap.","field-era":"aikakausi","dateFormatItem-yM":"L.yyyy","months-standAlone-wide":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"timeFormat-short":"H.mm","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"timeFormat-long":"H.mm.ss z","field-year":"vuosi","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"Q/yyyy","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"tunti","months-format-abbr":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-yyQ":"Q/yy","timeFormat-full":"H.mm.ss zzzz","dateFormatItem-yyyyMEEEd":"EEE d.M.yyyy","field-day-relative+0":"tänään","field-day-relative+1":"huomenna","field-day-relative+2":"ylihuomenna","dateFormatItem-H":"H","months-standAlone-abbr":["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],"quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"quarters-standAlone-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"dateFormatItem-M":"L","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-yyMMM":"LLLL yy","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","quarters-standAlone-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"eraAbbr":["eKr.","jKr."],"field-minute":"minuutti","field-dayperiod":"ap./ip.","days-standAlone-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"eilen","field-day-relative+-2":"toissapäivänä","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M.","field-day":"päivä","dateFormatItem-yMMMMccccd":"cccc, d. MMMM y","days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],"field-zone":"aikavyöhyke","dateFormatItem-y":"y","months-standAlone-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"dateFormatItem-yyMM":"M/yy","dateFormatItem-hm":"h.mm a","dayPeriods-format-abbr-pm":"ip.","days-format-abbr":["su","ma","ti","ke","to","pe","la"],"eraNames":["ennen Kristuksen syntymää","jälkeen Kristuksen syntymän"],"days-format-narrow":["S","M","T","K","T","P","L"],"field-month":"kuukausi","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"ap.","dayPeriods-standAlone-wide-am":"ap.","dateFormat-short":"d.M.yyyy","field-second":"sekunti","dateFormatItem-yMMMEd":"EEE d. MMM y","dateFormatItem-Ed":"ccc d.","field-week":"viikko","dateFormat-medium":"d.M.yyyy","dateFormatItem-yyyyM":"M/yyyy","dateFormatItem-yyyyQQQQ":"QQQQ y","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-hms":"h.mm.ss a"}); \ No newline at end of file
+define("dojo/cldr/nls/fi/gregorian",{"days-standAlone-short":["su","ma","ti","ke","to","pe","la"],"months-format-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"viikonpäivä","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E d.M.yyyy","dateFormatItem-MMMEd":"ccc d. MMM","eraNarrow":["eK","jK"],"days-format-short":["su","ma","ti","ke","to","pe","la"],"dateFormat-long":"d. MMMM y","months-format-wide":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"ip.","dateFormat-full":"cccc d. MMMM y","dateFormatItem-yyyyMEd":"E d.M.yyyy","dateFormatItem-Md":"d.M.","dayPeriods-standAlone-wide-pm":"ip.","dayPeriods-format-abbr-am":"ap.","dateFormatItem-yMd":"d.M.yyyy","dateFormatItem-yM":"L.yyyy","field-era":"aikakausi","months-standAlone-wide":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"timeFormat-short":"H.mm","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"timeFormat-long":"H.mm.ss z","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"Q/yyyy","field-year":"vuosi","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"tunti","months-format-abbr":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-yyQ":"Q/yy","timeFormat-full":"H.mm.ss zzzz","field-day-relative+0":"tänään","field-day-relative+1":"huomenna","field-day-relative+2":"ylihuomenna","dateFormatItem-H":"H","months-standAlone-abbr":["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],"quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"quarters-standAlone-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"dateFormatItem-M":"L","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-yyMMM":"LLLL yy","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","quarters-standAlone-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"eraAbbr":["eKr.","jKr."],"field-minute":"minuutti","field-dayperiod":"vuorokaudenaika","days-standAlone-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm.ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"eilen","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"ap.","field-day-relative+-2":"toissapäivänä","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M.","dateTimeFormat-full":"{1} {0}","dateFormatItem-yMMMMccccd":"cccc d. MMMM y","field-day":"päivä","days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],"field-zone":"aikavyöhyke","dateFormatItem-y":"y","months-standAlone-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"field-year-relative+-1":"viime vuonna","field-month-relative+-1":"viime kuussa","dateFormatItem-yyMM":"M.yy","dateFormatItem-hm":"h.mm a","dayPeriods-format-abbr-pm":"ip.","days-format-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-yMMMd":"d. MMM y","eraNames":["ennen Kristuksen syntymää","jälkeen Kristuksen syntymän"],"days-format-narrow":["S","M","T","K","T","P","L"],"days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-MMM":"LLL","field-month":"kuukausi","dayPeriods-format-wide-am":"ap.","dayPeriods-standAlone-wide-am":"ap.","dateFormat-short":"d.M.yyyy","field-second":"sekunti","dateFormatItem-yMMMEd":"E d. MMM y","field-month-relative+0":"tässä kuussa","field-month-relative+1":"ensi kuussa","dateFormatItem-Ed":"E d.","field-week":"viikko","dateFormat-medium":"d.M.yyyy","field-year-relative+0":"tänä vuonna","field-week-relative+-1":"viime viikolla","dateFormatItem-yyyyM":"M.yyyy","field-year-relative+1":"ensi vuonna","dayPeriods-format-narrow-pm":"ip.","dateFormatItem-yyyyQQQQ":"QQQQ y","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-hms":"h.mm.ss a","field-week-relative+0":"tällä viikolla","field-week-relative+1":"ensi viikolla"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fi/hebrew.js b/lib/dojo/cldr/nls/fi/hebrew.js
index 7d18f768c..1844763ac 100644
--- a/lib/dojo/cldr/nls/fi/hebrew.js
+++ b/lib/dojo/cldr/nls/fi/hebrew.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/fi/hebrew",{"dateFormatItem-yM":"L.yyyy","dateFormatItem-yQ":"Q/yyyy","months-standAlone-abbr-leap":"adár II","dayPeriods-format-wide-pm":"ip.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"months-standAlone-narrow":["T","H","K","T","S","A","A","N","I","S","T","A","E"],"dayPeriods-format-wide-am":"ap.","timeFormat-full":"H.mm.ss zzzz","months-standAlone-narrow-leap":"A","months-standAlone-abbr":["tišrí","hešván","kislév","tevét","ševát","adár I","adár","nisán","ijjár","siván","tammúz","ab","elúl"],"dateFormatItem-yMMM":"LLL y","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormat-long":"d. MMMM y","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","dateFormat-medium":"d.M.yyyy","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-ms":"mm.ss","months-standAlone-wide":["tišríkuu","hešvánkuu","kislévkuu","tevétkuu","ševátkuu","adárkuu I","adárkuu","nisánkuu","ijjárkuu","sivánkuu","tammúzkuu","abkuu","elúlkuu"],"dateFormatItem-MMMd":"d. MMM","timeFormat-long":"H.mm.ss z","months-format-abbr":["tišríkuuta","hešvánkuuta","kislévkuuta","tevétkuuta","ševátkuuta","adárkuuta I","adárkuuta","nisánkuuta","ijjárkuuta","sivánkuuta","tammúzkuuta","abkuuta","elúlkuuta"],"timeFormat-short":"H.mm","dateFormatItem-H":"H","quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"days-format-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-MEd":"E d.M.","months-format-narrow":["T","H","K","T","S","A","A","N","I","S","T","A","E"],"dateFormatItem-hm":"h.mm a","months-standAlone-wide-leap":"adárkuu II","dayPeriods-format-abbr-pm":"ip.","dateFormat-short":"d.M.yyyy","dateFormatItem-yMMMEd":"EEE d. MMM y","dateFormat-full":"cccc d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"EEE d.M.yyyy","months-format-wide":["tišríkuuta","hešvánkuuta","kislévkuuta","tevétkuuta","ševátkuuta","adárkuuta I","adárkuuta","nisánkuuta","ijjárkuuta","sivánkuuta","tammúzkuuta","abkuuta","elúlkuuta"],"dayPeriods-format-abbr-am":"ap.","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"months-format-wide-leap":"adárkuuta II","days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"]}); \ No newline at end of file
+define("dojo/cldr/nls/fi/hebrew",{"dateFormatItem-yM":"L.yyyy","dateFormatItem-yQ":"Q/yyyy","months-standAlone-abbr-leap":"adár II","dayPeriods-format-wide-pm":"ip.","dateFormatItem-MMMEd":"ccc d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"months-standAlone-narrow":["T","H","K","T","S","A","A","N","I","S","T","A","E"],"dayPeriods-format-wide-am":"ap.","quarters-standAlone-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"timeFormat-full":"H.mm.ss zzzz","months-standAlone-narrow-leap":"A","months-standAlone-abbr":["tišrí","hešván","kislév","tevét","ševát","adár I","adár","nisán","ijjár","siván","tammúz","ab","elúl"],"dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"LLL y","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormat-long":"d. MMMM y","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","dateFormat-medium":"d.M.yyyy","dateFormatItem-Hms":"H.mm.ss","dayPeriods-format-narrow-pm":"ip.","dateFormatItem-yMd":"d.M.yyyy","quarters-standAlone-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"dateFormatItem-ms":"mm.ss","dayPeriods-format-narrow-am":"ap.","months-standAlone-wide":["tišríkuu","hešvánkuu","kislévkuu","tevétkuu","ševátkuu","adárkuu I","adárkuu","nisánkuu","ijjárkuu","sivánkuu","tammúzkuu","abkuu","elúlkuu"],"dateFormatItem-MMMd":"d. MMM","timeFormat-long":"H.mm.ss z","months-format-abbr":["tišríkuuta","hešvánkuuta","kislévkuuta","tevétkuuta","ševátkuuta","adárkuuta I","adárkuuta","nisánkuuta","ijjárkuuta","sivánkuuta","tammúzkuuta","abkuuta","elúlkuuta"],"timeFormat-short":"H.mm","dateFormatItem-H":"H","quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"days-format-abbr":["su","ma","ti","ke","to","pe","la"],"days-format-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-yMMMd":"d. MMM y","dateFormatItem-MEd":"E d.M.","months-format-narrow":["T","H","K","T","S","A","A","N","I","S","T","A","E"],"days-standAlone-short":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-hm":"h.mm a","days-standAlone-abbr":["su","ma","ti","ke","to","pe","la"],"months-standAlone-wide-leap":"adárkuu II","dayPeriods-format-abbr-pm":"ip.","dateFormat-short":"d.M.yyyy","dateFormatItem-yMMMEd":"E d. MMM y","dateFormat-full":"cccc d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"E d.M.yyyy","months-format-wide":["tišríkuuta","hešvánkuuta","kislévkuuta","tevétkuuta","ševátkuuta","adárkuuta I","adárkuuta","nisánkuuta","ijjárkuuta","sivánkuuta","tammúzkuuta","abkuuta","elúlkuuta"],"dayPeriods-format-abbr-am":"ap.","days-format-short":["su","ma","ti","ke","to","pe","la"],"quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"months-format-wide-leap":"adárkuuta II","days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fi/islamic.js b/lib/dojo/cldr/nls/fi/islamic.js
index d75a3ad75..6dc7f1694 100644
--- a/lib/dojo/cldr/nls/fi/islamic.js
+++ b/lib/dojo/cldr/nls/fi/islamic.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/fi/islamic",{"dateFormatItem-yM":"L.yyyy","dateFormatItem-yyyyMMMEd":"EEE d. MMM y G","dateFormatItem-yQ":"Q/yyyy","dayPeriods-format-wide-pm":"ip.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-MMM":"LLL","dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"ap.","dateFormatItem-y":"y G","timeFormat-full":"H.mm.ss zzzz","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"dateFormatItem-Ed":"ccc d.","dateFormatItem-yMMM":"LLL y","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-yyyyMMMMccccd":"cccc, d. MMMM y G","dateFormatItem-yyyyMM":"M.y G","dateFormatItem-yyyyMMMM":"LLLL y G","dateFormat-long":"d. MMMM y G","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","dateFormat-medium":"d.M.y G","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-ms":"mm.ss","dateFormatItem-yyyyQQQQ":"QQQQ y G","months-standAlone-wide":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"dateFormatItem-yyyyMEd":"EEE d.M.y G","dateFormatItem-MMMd":"d. MMM","timeFormat-long":"H.mm.ss z","months-format-abbr":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"timeFormat-short":"H.mm","dateFormatItem-H":"H","quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"days-format-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-M":"L","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E d.M.","dateFormatItem-hm":"h.mm a","dayPeriods-format-abbr-pm":"ip.","dateFormat-short":"d.M.y G","dateFormatItem-yyyyM":"M.y G","dateFormatItem-yMMMEd":"EEE d. MMM y","dateFormat-full":"cccc d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yyyyQ":"Q/y G","dateFormatItem-yMEd":"EEE d.M.yyyy","months-format-wide":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"dayPeriods-format-abbr-am":"ap.","dateFormatItem-yyyyMMM":"LLLL y G","dateFormatItem-d":"d","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"]}); \ No newline at end of file
+define("dojo/cldr/nls/fi/islamic",{"dateFormatItem-yM":"L.yyyy","dateFormatItem-yyyyMMMEd":"E d. MMM y G","dateFormatItem-yQ":"Q/yyyy","dayPeriods-format-wide-pm":"ip.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-MMM":"LLL","dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"ap.","quarters-standAlone-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"dateFormatItem-y":"y G","timeFormat-full":"H.mm.ss zzzz","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"dateFormatItem-Ed":"ccc d.","dateFormatItem-yMMM":"LLL y","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-yyyyMMMMccccd":"cccc, d. MMMM y G","dateFormatItem-yyyyMM":"M.y G","dateFormatItem-yyyyMMMM":"LLLL y G","dateFormat-long":"d. MMMM y G","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","dateFormat-medium":"d.M.y G","dateFormatItem-Hms":"H.mm.ss","dayPeriods-format-narrow-pm":"ip.","dateFormatItem-yMd":"d.M.yyyy","quarters-standAlone-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"dateFormatItem-ms":"mm.ss","dateFormatItem-yyyyQQQQ":"QQQQ y G","dayPeriods-format-narrow-am":"ap.","months-standAlone-wide":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"dateFormatItem-yyyyMd":"d.M.y G","dateFormatItem-yyyyMMMd":"d. MMM y G","dateFormatItem-yyyyMEd":"E d.M.y G","dateFormatItem-MMMd":"d. MMM","months-format-abbr":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"timeFormat-long":"H.mm.ss z","dateFormatItem-H":"H","timeFormat-short":"H.mm","quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"days-format-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-M":"L","days-format-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-yMMMd":"d. MMM y","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E d.M.","days-standAlone-short":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-hm":"h.mm a","days-standAlone-abbr":["su","ma","ti","ke","to","pe","la"],"dayPeriods-format-abbr-pm":"ip.","dateFormat-short":"d.M.y G","dateFormatItem-yyyyM":"M.y G","dateFormatItem-yMMMEd":"E d. MMM y","dateFormat-full":"cccc d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yyyyQ":"Q/y G","dateFormatItem-yMEd":"E d.M.yyyy","months-format-wide":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"dayPeriods-format-abbr-am":"ap.","days-format-short":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-yyyyMMM":"LLLL y G","dateFormatItem-d":"d","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fi/number.js b/lib/dojo/cldr/nls/fi/number.js
index b97f07171..c483d3e74 100644
--- a/lib/dojo/cldr/nls/fi/number.js
+++ b/lib/dojo/cldr/nls/fi/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/fi/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"epäluku","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/fi/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"epäluku","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 biljoonaa","decimalFormat-short":"000 bilj'.'"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fr-ch/gregorian.js b/lib/dojo/cldr/nls/fr-ch/gregorian.js
index 9615b4491..2bb8f7400 100644
--- a/lib/dojo/cldr/nls/fr-ch/gregorian.js
+++ b/lib/dojo/cldr/nls/fr-ch/gregorian.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/cldr/nls/fr-ch/number.js b/lib/dojo/cldr/nls/fr-ch/number.js
index 8fb691cdb..2630e51d7 100644
--- a/lib/dojo/cldr/nls/fr-ch/number.js
+++ b/lib/dojo/cldr/nls/fr-ch/number.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/cldr/nls/fr/buddhist.js b/lib/dojo/cldr/nls/fr/buddhist.js
new file mode 100644
index 000000000..f14ea5d0a
--- /dev/null
+++ b/lib/dojo/cldr/nls/fr/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/fr/buddhist",{"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"'T'Q y G","eraNames":["ère bouddhiste"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-Gy":"y G","quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-y":"y G","dateFormatItem-MMMdd":"dd MMM","months-standAlone-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["D","L","M","M","J","V","S"],"eraAbbr":["ère b."],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d/MM","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"d MMM, y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"p","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-yMd":"d/M/y G","quarters-standAlone-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"dateFormatItem-ms":"mm:ss","dateFormatItem-yyMMMd":"d MMM y G","months-standAlone-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyMMMEd":"E d MMM y G","dateFormatItem-yyQ":"'T'Q y G","months-format-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dateFormatItem-M":"L","days-format-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E d/M","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-short":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"days-standAlone-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"E d MMM y G","dateFormat-full":"EEEE d MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E d/M/y G","months-format-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"days-format-short":["di","lu","ma","me","je","ve","sa"],"dateFormatItem-d":"d","quarters-format-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"eraNarrow":"E.B.","days-format-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fr/currency.js b/lib/dojo/cldr/nls/fr/currency.js
index ce20c0c85..0d88dce6b 100644
--- a/lib/dojo/cldr/nls/fr/currency.js
+++ b/lib/dojo/cldr/nls/fr/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/fr/currency",{"HKD_displayName":"dollar de Hong Kong","CHF_displayName":"franc suisse","CHF_symbol":"CHF","JPY_symbol":"¥JP","CAD_displayName":"dollar canadien","HKD_symbol":"$HK","CNY_displayName":"yuan renminbi chinois","USD_symbol":"$US","AUD_displayName":"dollar australien","JPY_displayName":"yen japonais","CAD_symbol":"$CA","USD_displayName":"dollar des États-Unis","CNY_symbol":"Ұ","GBP_displayName":"livre sterling","GBP_symbol":"£UK","AUD_symbol":"$AU","EUR_displayName":"euro"}); \ No newline at end of file
+define("dojo/cldr/nls/fr/currency",{"HKD_displayName":"dollar de Hong Kong","CHF_displayName":"franc suisse","JPY_symbol":"¥JP","CAD_displayName":"dollar canadien","HKD_symbol":"$HK","CNY_displayName":"yuan renminbi chinois","USD_symbol":"$US","AUD_displayName":"dollar australien","JPY_displayName":"yen japonais","CAD_symbol":"$CA","USD_displayName":"dollar des États-Unis","EUR_symbol":"€","CNY_symbol":"¥CN","GBP_displayName":"livre sterling","GBP_symbol":"£UK","AUD_symbol":"$AU","EUR_displayName":"euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fr/gregorian.js b/lib/dojo/cldr/nls/fr/gregorian.js
index e832262d3..1e1fbcf0e 100644
--- a/lib/dojo/cldr/nls/fr/gregorian.js
+++ b/lib/dojo/cldr/nls/fr/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/fr/gregorian",{"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"jour de la semaine","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["av. J.-C.","ap. J.-C."],"dayPeriods-format-wide-morning":"matin","dateFormatItem-MMMdd":"dd MMM","dateFormat-long":"d MMMM y","months-format-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"midi","field-era":"ère","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"année","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"'T'Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"heure","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"dateFormatItem-yyQ":"'T'Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"aujourd’hui","field-day-relative+1":"demain","field-day-relative+2":"après-demain","field-day-relative+3":"après-après-demain","months-standAlone-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-yyMMMEEEd":"EEE d MMM yy","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["av. J.-C.","ap. J.-C."],"field-minute":"minute","field-dayperiod":"cadran","days-standAlone-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dayPeriods-format-wide-night":"soir","dateFormatItem-yyMMMd":"d MMM yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["T1","T2","T3","T4"],"field-day-relative+-1":"hier","field-day-relative+-2":"avant-hier","field-day-relative+-3":"avant-avant-hier","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"jour","days-format-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"field-zone":"fuseau horaire","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"eraNames":["avant Jésus-Christ","après Jésus-Christ"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"mois","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"EEE d MMMM","dateFormat-short":"dd/MM/yy","dateFormatItem-MMd":"d/MM","dayPeriods-format-wide-afternoon":"après-midi","field-second":"seconde","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormatItem-Ed":"E d","field-week":"semaine","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"HH:mm:ss"}); \ No newline at end of file
+define("dojo/cldr/nls/fr/gregorian",{"days-standAlone-short":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"jour de la semaine","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yyMMMEd":"E d MMM yy","dateFormatItem-yMEd":"E d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["av. J.-C.","ap. J.-C."],"dayPeriods-format-wide-morning":"matin","dateFormatItem-MMMdd":"dd MMM","days-format-short":["di","lu","ma","me","je","ve","sa"],"dateFormat-long":"d MMMM y","months-format-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","dayPeriods-format-abbr-am":"AM","dayPeriods-format-wide-noon":"midi","dateFormatItem-yMd":"d/M/yyyy","field-era":"ère","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"année","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"'T'Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"heure","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"dateFormatItem-yyQ":"'T'Q yy","timeFormat-full":"HH:mm:ss zzzz","dayPeriods-format-narrow-morning":"matin","field-day-relative+0":"aujourd’hui","field-day-relative+1":"demain","field-day-relative+2":"après-demain","dateFormatItem-H":"HH","months-standAlone-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["av. J.-C.","ap. J.-C."],"field-minute":"minute","field-dayperiod":"cadran","days-standAlone-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dayPeriods-format-wide-night":"soir","dateFormatItem-yyMMMd":"d MMM yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"hier","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"avant-hier","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E d/M","dateTimeFormat-full":"{1} {0}","field-day":"jour","days-format-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"field-zone":"fuseau horaire","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-year-relative+-1":"l’année dernière","dayPeriods-format-narrow-night":"soir","field-month-relative+-1":"le mois dernier","dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h:mm a","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dateFormatItem-yMMMd":"d MMM y","eraNames":["avant Jésus-Christ","après Jésus-Christ"],"days-format-narrow":["D","L","M","M","J","V","S"],"days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","field-month":"mois","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"E d MMMM","dateFormat-short":"dd/MM/yy","dateFormatItem-MMd":"d/MM","dayPeriods-format-wide-afternoon":"après-midi","dayPeriods-format-narrow-noon":"midi","field-second":"seconde","dateFormatItem-yMMMEd":"E d MMM y","field-month-relative+0":"ce mois-ci","field-month-relative+1":"le mois prochain","dateFormatItem-Ed":"E d","field-week":"semaine","dateFormat-medium":"d MMM y","field-year-relative+0":"cette année","field-week-relative+-1":"la semaine dernière","field-year-relative+1":"l’année prochaine","dayPeriods-format-narrow-pm":"p","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"cette semaine","field-week-relative+1":"la semaine prochaine"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fr/hebrew.js b/lib/dojo/cldr/nls/fr/hebrew.js
new file mode 100644
index 000000000..4117ac51c
--- /dev/null
+++ b/lib/dojo/cldr/nls/fr/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/fr/hebrew",{"quarters-standAlone-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"quarters-format-abbr":["T1","T2","T3","T4"],"dateFormatItem-yMd":"d/M/yyyy","dateFormat-medium":"d MMM y","dateFormatItem-MMMEd":"E d MMM","quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-MEd":"E d/M","dateFormatItem-yMEd":"E d/M/yyyy","dateFormatItem-yMMMd":"d MMM y","days-format-short":["di","lu","ma","me","je","ve","sa"],"dateFormatItem-Md":"d/M","months-standAlone-wide":["Tisseri","Hesvan","Kislev","Tébeth","Schébat","Adar I","Adar","Nissan","Iyar","Sivan","Tamouz","Ab","Elloul"],"months-format-wide-leap":"Adar II","days-standAlone-narrow":["D","L","M","M","J","V","S"],"months-standAlone-abbr":["Tisseri","Hesvan","Kislev","Tébeth","Schébat","Adar I","Adar","Nissan","Iyar","Sivan","Tamouz","Ab","Elloul"],"dateFormatItem-yQQQ":"QQQ y","days-standAlone-short":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dateFormat-long":"d MMMM y","dateFormat-short":"dd/MM/yy","dateFormatItem-yMMMEd":"E d MMM y","months-format-wide":["Tisseri","Hesvan","Kislev","Tébeth","Schébat","Adar I","Adar","Nissan","Iyar","Sivan","Tamouz","Ab","Elloul"],"days-standAlone-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"days-format-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-yM":"M/yyyy","dayPeriods-format-narrow-pm":"p","months-format-abbr":["Tisseri","Hesvan","Kislev","Tébeth","Schébat","Adar I","Adar","Nissan","Iyar","Sivan","Tamouz","Ab","Elloul"],"days-standAlone-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"days-format-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-yQ":"'T'Q y","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"dateFormat-full":"EEEE d MMMM y","dateFormatItem-MMMd":"d MMM","days-format-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dateFormatItem-Ed":"E d"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fr/islamic.js b/lib/dojo/cldr/nls/fr/islamic.js
new file mode 100644
index 000000000..52c3a2ef8
--- /dev/null
+++ b/lib/dojo/cldr/nls/fr/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/fr/islamic",{"dateFormatItem-yM":"M/yyyy","dateFormatItem-yyyyMMMEd":"E d MMM y G","dateFormatItem-yQ":"'T'Q y","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-y":"y","dateFormatItem-MMMdd":"dd MMM","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["mouh.","saf.","rab.aw.","rab.th.","joum.ou.","joum.th.","raj.","chaa.","ram.","chaw.","dhou.qi.","dhou.hi."],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["D","L","M","M","J","V","S"],"eraAbbr":["AH"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d/MM","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"d MMM, y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"p","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-yMd":"d/M/yyyy","quarters-standAlone-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"dateFormatItem-ms":"mm:ss","dateFormatItem-yyMMMd":"d MMM y G","months-standAlone-wide":["mouharram","safar","rabia al awal","rabia ath-thani","joumada al oula","joumada ath-thania","rajab","chaabane","ramadan","chawwal","dhou al qi`da","dhou al-hijja"],"dateFormatItem-yyyyMd":"d/M/y G","dateFormatItem-yyyyMMMd":"d MMM y G","dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-yyyyMEd":"E d/M/y G","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyMMMEd":"E d MMM y G","dateFormatItem-yyQ":"'T'Q y G","months-format-abbr":["mouh.","saf.","rab.aw.","rab.th.","joum.oul.","joum.tha.","raj.","chaa.","ram.","chaw.","dhou.q.","dhou.h."],"dateFormatItem-H":"HH","quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dateFormatItem-M":"L","days-format-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E d/M","dateFormatItem-yyyyQQQ":"QQQ y G","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"days-standAlone-short":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dateFormat-short":"d/M/y G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"E d MMM y","dateFormat-full":"EEEE d MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E d/M/yyyy","dateFormatItem-yyyyQ":"'T'Q y G","months-format-wide":["mouharram","safar","rabia al awal","rabia ath-thani","joumada al oula","joumada ath-thania","rajab","chaabane","ramadan","chawwal","dhou al qi`da","dhou al-hijja"],"days-format-short":["di","lu","ma","me","je","ve","sa"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"days-format-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-h":"h a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/fr/number.js b/lib/dojo/cldr/nls/fr/number.js
index 48525724e..6d553350f 100644
--- a/lib/dojo/cldr/nls/fr/number.js
+++ b/lib/dojo/cldr/nls/fr/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/fr/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/fr/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤;(#,##0.00 ¤)","plusSign":"+","decimalFormat-long":"000 billions","decimalFormat-short":"000 Bn"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/gregorian.js b/lib/dojo/cldr/nls/gregorian.js
index d2ba3ae7f..84dfd62b3 100644
--- a/lib/dojo/cldr/nls/gregorian.js
+++ b/lib/dojo/cldr/nls/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/gregorian",{root:{"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Day of the Week","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["BCE","CE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"y MMMM d","months-format-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, y MMMM dd","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","field-era":"Era","dateFormatItem-yM":"y-M","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","field-year":"Year","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","field-hour":"Hour","months-format-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","field-day-relative+0":"Today","field-day-relative+1":"Tomorrow","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BCE","CE"],"field-minute":"Minute","field-dayperiod":"Dayperiod","days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Yesterday","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","field-day":"Day","days-format-wide":["1","2","3","4","5","6","7"],"field-zone":"Zone","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["1","2","3","4","5","6","7"],"eraNames":["BCE","CE"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","field-month":"Month","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormat-short":"yyyy-MM-dd","field-second":"Second","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","field-week":"Week","dateFormat-medium":"y MMM d","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"},"ar":true,"ca":true,"cs":true,"da":true,"de":true,"el":true,"en":true,"en-au":true,"en-ca":true,"en-gb":true,"es":true,"fi":true,"fr":true,"fr-ch":true,"he":true,"hu":true,"it":true,"ja":true,"ko":true,"nb":true,"nl":true,"pl":true,"pt":true,"pt-pt":true,"ro":true,"ru":true,"sk":true,"sl":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true,"zh-hk":true,"zh-tw":true}); \ No newline at end of file
+define("dojo/cldr/nls/gregorian",{root:{"days-standAlone-short":["1","2","3","4","5","6","7"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Day of the Week","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"E, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["BCE","CE"],"days-format-short":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"y MMMM d","months-format-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, y MMMM dd","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yMd":"y-M-d","field-era":"Era","dateFormatItem-yM":"y-M","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","field-year":"Year","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","field-hour":"Hour","months-format-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","field-day-relative+0":"Today","field-day-relative+1":"Tomorrow","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BCE","CE"],"field-minute":"Minute","field-dayperiod":"Dayperiod","days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Yesterday","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","field-day":"Day","days-format-wide":["1","2","3","4","5","6","7"],"field-zone":"Zone","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-yMMMd":"y MMM d","eraNames":["BCE","CE"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","field-month":"Month","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormat-short":"yyyy-MM-dd","field-second":"Second","dateFormatItem-yMMMEd":"E, y MMM d","dateFormatItem-Ed":"d E","dateTimeFormats-appendItem-Timezone":"{0} {1}","field-week":"Week","dateFormat-medium":"y MMM d","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"},"ar":true,"ca":true,"cs":true,"da":true,"de":true,"el":true,"en":true,"en-au":true,"en-ca":true,"en-gb":true,"es":true,"fi":true,"fr":true,"fr-ch":true,"he":true,"hu":true,"it":true,"ja":true,"ko":true,"nb":true,"nl":true,"pl":true,"pt":true,"pt-pt":true,"ro":true,"ru":true,"sk":true,"sl":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true,"zh-hk":true,"zh-tw":true}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/he/currency.js b/lib/dojo/cldr/nls/he/currency.js
index 08d439ac8..0f3a8e936 100644
--- a/lib/dojo/cldr/nls/he/currency.js
+++ b/lib/dojo/cldr/nls/he/currency.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/cldr/nls/he/gregorian.js b/lib/dojo/cldr/nls/he/gregorian.js
index 7872b49cd..813277185 100644
--- a/lib/dojo/cldr/nls/he/gregorian.js
+++ b/lib/dojo/cldr/nls/he/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/he/gregorian",{"field-weekday":"יום בשבוע","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d.M.yyyy","dateFormatItem-MMMEd":"E, d בMMM","eraNarrow":["לפנה״ס","לסה״נ"],"dateFormat-long":"d בMMMM y","months-format-wide":["ינואר","פברואר","מרס","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"dateFormatItem-EEEd":"EEE ה-d","dayPeriods-format-wide-pm":"אחה״צ","dateFormat-full":"EEEE, d בMMMM y","dateFormatItem-Md":"d/M","field-era":"תקופה","dateFormatItem-yM":"M.yyyy","months-standAlone-wide":["ינואר","פברואר","מרס","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"timeFormat-short":"HH:mm","quarters-format-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"timeFormat-long":"HH:mm:ss z","field-year":"שנה","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"yyyy Q","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"שעה","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["ינו","פבר","מרס","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"היום","field-day-relative+1":"מחר","field-day-relative+2":"מחרתיים","dateFormatItem-H":"HH","field-day-relative+3":"בעוד שלושה ימים","months-standAlone-abbr":["ינו׳","פבר׳","מרס","אפר׳","מאי","יונ׳","יול׳","אוג׳","ספט׳","אוק׳","נוב׳","דצמ׳"],"quarters-format-abbr":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"quarters-standAlone-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"dateFormatItem-M":"L","days-standAlone-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"dateFormatItem-MMMMd":"d בMMMM","dateFormatItem-yyMMM":"MMM yyyy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"eraAbbr":["לפנה״ס","לסה״נ"],"field-minute":"דקה","field-dayperiod":"לפה״צ/אחה״צ","days-standAlone-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"אתמול","field-day-relative+-2":"שלשום","field-day-relative+-3":"לפני שלושה ימים","dateFormatItem-MMMd":"d בMMM","dateFormatItem-MEd":"E, M-d","dateFormatItem-yMMMM":"MMMM y","field-day":"יום","days-format-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"field-zone":"אזור","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"eraNames":["לפני הספירה","לספירה"],"days-format-narrow":["א","ב","ג","ד","ה","ו","ש"],"field-month":"חודש","days-standAlone-narrow":["א","ב","ג","ד","ה","ו","ש"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"לפנה״צ","dateFormatItem-MMMMEd":"E, d בMMMM","dateFormat-short":"dd/MM/yy","field-second":"שנייה","dateFormatItem-yMMMEd":"EEE, d בMMM y","dateFormatItem-Ed":"E ה-d","field-week":"שבוע","dateFormat-medium":"d בMMM yyyy","dateFormatItem-mmss":"mm:ss","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y"}); \ No newline at end of file
+define("dojo/cldr/nls/he/gregorian",{"days-standAlone-short":["א'","ב'","ג'","ד'","ה'","ו'","ש'"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["ר1","ר2","ר3","ר4"],"field-weekday":"יום בשבוע","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"E, d/M/y","dateFormatItem-MMMEd":"E, d בMMM","eraNarrow":["לפנה״ס","לסה״נ"],"days-format-short":["א'","ב'","ג'","ד'","ה'","ו'","ש'"],"dateFormat-long":"d בMMMM y","months-format-wide":["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"dateTimeFormat-medium":"{1}, {0}","dayPeriods-format-wide-pm":"אחה״צ","dateFormat-full":"EEEE, d בMMMM y","dateFormatItem-Md":"d/M","dateFormatItem-yMd":"d.M.yyyy","field-era":"תקופה","dateFormatItem-yM":"M.yyyy","months-standAlone-wide":["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"timeFormat-short":"HH:mm","quarters-format-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"timeFormat-long":"HH:mm:ss z","field-year":"שנה","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"yyyy Q","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"שעה","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"היום","field-day-relative+1":"מחר","field-day-relative+2":"מחרתיים","dateFormatItem-H":"HH","months-standAlone-abbr":["ינו׳","פבר׳","מרץ","אפר׳","מאי","יונ׳","יול׳","אוג׳","ספט׳","אוק׳","נוב׳","דצמ׳"],"quarters-format-abbr":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"quarters-standAlone-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"dateFormatItem-M":"L","days-standAlone-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"dateFormatItem-MMMMd":"d בMMMM","dateFormatItem-yyMMM":"MMM yyyy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"eraAbbr":["לפנה״ס","לסה״נ"],"field-minute":"דקה","field-dayperiod":"לפה״צ/אחה״צ","days-standAlone-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"אתמול","dateFormatItem-h":"h a","field-day-relative+-2":"שלשום","dateFormatItem-MMMd":"d בMMM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMMMM":"MMMM y","field-day":"יום","days-format-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"field-zone":"אזור","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"field-year-relative+-1":"שנה שעברה","field-month-relative+-1":"חודש שעבר","dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"dateFormatItem-yMMMd":"d בMMM y","eraNames":["לפני הספירה","לספירה"],"days-format-narrow":["א'","ב'","ג'","ד'","ה'","ו׳","ש׳"],"field-month":"חודש","days-standAlone-narrow":["א׳","ב׳","ג׳","ד׳","ה׳","ו","ש"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"לפנה״צ","dateFormatItem-MMMMEd":"E, d בMMMM","dateFormat-short":"dd/MM/yy","field-second":"שנייה","dateFormatItem-yMMMEd":"E, d בMMM y","field-month-relative+0":"החודש","field-month-relative+1":"חודש הבא","dateFormatItem-Ed":"E ה-d","field-week":"שבוע","dateFormat-medium":"d בMMM yyyy","field-year-relative+0":"השנה","field-week-relative+-1":"שבוע שעבר","field-year-relative+1":"שנה הבאה","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1}, {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y","field-week-relative+0":"השבוע","field-week-relative+1":"שבוע הבא"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/he/hebrew.js b/lib/dojo/cldr/nls/he/hebrew.js
index 2b581decb..572aee91a 100644
--- a/lib/dojo/cldr/nls/he/hebrew.js
+++ b/lib/dojo/cldr/nls/he/hebrew.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/he/hebrew",{"dateFormat-medium":"dd/MM/yyyy","dateFormatItem-MMMEd":"E, d בMMM","dateFormatItem-yMEd":"EEE, d.M.yyyy","eraNarrow":["לבה״ע"],"dateFormatItem-Md":"d/M","months-standAlone-wide":["תשרי","חשון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"months-format-wide-leap":"אדר ב׳","dateFormatItem-EEEd":"EEE ה-d","eraNames":["לבה״ע"],"days-standAlone-narrow":["א","ב","ג","ד","ה","ו","ש"],"dateFormatItem-MMMMEd":"E, d בMMMM","dayPeriods-format-wide-pm":"אחה״צ","months-standAlone-abbr":["תשרי","חשון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"dayPeriods-format-wide-am":"לפנה״צ","dateFormat-long":"d בMMMM y","dateFormat-short":"dd/MM/yy","dateFormatItem-yMMMEd":"EEE, d בMMM y","months-format-wide":["תשרי","חשון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"dateFormatItem-yM":"M.yyyy","months-format-abbr":["תשרי","חשון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"eraAbbr":["לבה״ע"],"days-format-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"dateFormatItem-yQ":"yyyy Q","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"dateFormat-full":"EEEE, d בMMMM y","dateFormatItem-MMMd":"d בMMM","days-format-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"]}); \ No newline at end of file
+define("dojo/cldr/nls/he/hebrew",{"dateFormatItem-yM":"MMMM y","dateFormatItem-yQ":"yyyy Q","months-standAlone-abbr-leap":"אדר ב׳","dayPeriods-format-wide-pm":"אחה״צ","eraNames":["לבה״ע"],"dateFormatItem-MMMEd":"E, d בMMMM","dateFormatItem-MMM":"MMMM","months-standAlone-narrow":["תש","חש","כס","טב","שב","אא","אד","ני","אי","סי","תמ","אב","אל"],"dateTimeFormat-short":"{1}, {0}","dayPeriods-format-wide-am":"לפנה״צ","months-format-narrow-leap":"א2","dateTimeFormat-medium":"{1}, {0}","months-format-abbr-leap":"אדר ב׳","months-standAlone-narrow-leap":"א2","months-standAlone-abbr":["תשרי","חשוון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיוון","תמוז","אב","אלול"],"dateFormatItem-Ed":"E ה-d","dateFormatItem-yMMM":"MMMM y","days-standAlone-narrow":["א׳","ב׳","ג׳","ד׳","ה׳","ו","ש"],"eraAbbr":["לבה״ע"],"dateFormat-long":"d בMMMM y","dateFormat-medium":"d בMMMM y","dateFormatItem-yMd":"d בMMMM y","dateFormatItem-yMMMM":"MMMM y","quarters-standAlone-narrow":["ר1","ר2","ר3","ר4"],"months-standAlone-wide":["תשרי","חשון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"dateFormatItem-MMMMEd":"E, d בMMMM","dateFormatItem-MMMd":"d בMMMM","months-format-abbr":["תשרי","חשוון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"dateFormatItem-MMMMd":"d בMMMM","days-format-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"days-format-narrow":["א'","ב'","ג'","ד'","ה'","ו׳","ש׳"],"dateFormatItem-M":"MMMM","dateFormatItem-yMMMd":"d בMMMM y","dateFormatItem-MEd":"E, d בMMMM","months-format-narrow":["תש","חש","כס","טב","שב","אא","אד","ני","אי","סי","תמ","אב","אל"],"days-standAlone-short":["א'","ב'","ג'","ד'","ה'","ו'","ש'"],"months-standAlone-wide-leap":"אדר ב׳","dateFormat-short":"d בMMMM y","dateFormatItem-yMMMEd":"E, d בMMMM y","dateFormat-full":"EEEE, d בMMMM y","dateFormatItem-Md":"d בMMMM","dateFormatItem-yMEd":"E, d בMMMM y","months-format-wide":["תשרי","חשוון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"days-format-short":["א'","ב'","ג'","ד'","ה'","ו'","ש'"],"months-format-wide-leap":"אדר ב׳","quarters-format-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"eraNarrow":["לבה״ע"],"days-format-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/he/islamic.js b/lib/dojo/cldr/nls/he/islamic.js
index dfed331b5..799caca36 100644
--- a/lib/dojo/cldr/nls/he/islamic.js
+++ b/lib/dojo/cldr/nls/he/islamic.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/he/islamic",{"dateFormat-medium":"d בMMM yyyy","dateFormatItem-MMMEd":"E, d בMMM","dateFormatItem-yMEd":"EEE, d.M.yyyy","eraNarrow":["שנת היג׳רה"],"dateFormatItem-Md":"d/M","months-standAlone-wide":["מוחרם","ספר","רביע אל-אוואל","רביע אל-תני","ג׳ומדה אל-אוואל","ג׳ומדה אל-תני","רג׳אב","שעבאן","ראמדן","שוואל","זו אל-QI'DAH","זו אל-חיג׳ה"],"dateFormatItem-EEEd":"EEE ה-d","eraNames":["שנת היג׳רה"],"days-standAlone-narrow":["א","ב","ג","ד","ה","ו","ש"],"dayPeriods-format-wide-pm":"אחה״צ","months-standAlone-abbr":["מוחרם","ספר","רביע אל-אוואל","רביע אל-תני","ג׳ומדה אל-אוואל","ג׳ומדה אל-תני","רג׳אב","שעבאן","ראמדן","שוואל","זו אל-QI'DAH","זו אל-חיג׳ה"],"dayPeriods-format-wide-am":"לפנה״צ","dateFormat-long":"d בMMMM y","dateFormat-short":"dd/MM/yy","dateFormatItem-yMMMEd":"EEE, d בMMM y","months-format-wide":["מוחרם","ספר","רביע אל-אוואל","רביע אל-תני","ג׳ומדה אל-אוואל","ג׳ומדה אל-תני","רג׳אב","שעבאן","ראמדן","שוואל","זו אל-QI'DAH","זו אל-חיג׳ה"],"dateFormatItem-yM":"M.yyyy","months-format-abbr":["מוחרם","ספר","רביע אל-אוואל","רביע אל-תני","ג׳ומדה אל-אוואל","ג׳ומדה אל-תני","רג׳אב","שעבאן","ראמדן","שוואל","זו אל-QI'DAH","זו אל-חיג׳ה"],"eraAbbr":["שנת היג׳רה"],"days-format-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"dateFormatItem-yQ":"yyyy Q","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"dateFormat-full":"EEEE, d בMMMM y","dateFormatItem-MMMd":"d בMMM","days-format-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"]}); \ No newline at end of file
+define("dojo/cldr/nls/he/islamic",{"dateFormatItem-yM":"M/yyyy","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"אחה״צ","eraNames":["שנת היג׳רה"],"dateFormatItem-MMMEd":"E, d בMMM","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormat-short":"{1}, {0}","dayPeriods-format-wide-am":"לפנה״צ","dateTimeFormat-medium":"{1}, {0}","months-standAlone-abbr":["מוחרם","צפר","רביע א׳","רביע ב׳","ג׳ומאדא א׳","ג׳ומאדא ב׳","רג׳ב","שעבאן","רמדאן","שוואל","ד׳ו אל-קעדה","ד׳ו אל-חיג׳ה"],"dateFormatItem-Ed":"E ה-d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["א׳","ב׳","ג׳","ד׳","ה׳","ו","ש"],"eraAbbr":["שנת היג׳רה"],"dateFormat-long":"d בMMMM y","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d בMMM yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yMd":"d.M.yyyy","quarters-standAlone-narrow":["ר1","ר2","ר3","ר4"],"months-standAlone-wide":["מוחרם","צפר","רביע אל-אוול","רביע א-ת׳אני","ג׳ומאדא אל-אולא","ג׳ומאדא א-ת׳אניה","רג׳ב","שעבאן","רמדאן","שוואל","ד׳ו אל-קעדה","ד׳ו אל-חיג׳ה"],"dateFormatItem-MMMMEd":"E, d בMMMM","dateFormatItem-MMMd":"d בMMM","months-format-abbr":["מוחרם","צפר","רביע א׳","רביע ב׳","ג׳ומאדא א׳","ג׳ומאדא ב׳","רג׳ב","שעבאן","רמדאן","שוואל","ד׳ו אל-קעדה","ד׳ו אל-חיג׳ה"],"dateFormatItem-MMMMd":"d בMMMM","days-format-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"days-format-narrow":["א'","ב'","ג'","ד'","ה'","ו׳","ש׳"],"dateFormatItem-yMMMd":"d בMMM y","dateFormatItem-MEd":"E, d/M","days-standAlone-short":["א'","ב'","ג'","ד'","ה'","ו'","ש'"],"dateFormatItem-hm":"h:mm a","dateFormat-short":"dd/MM/yy","dateFormatItem-yMMMEd":"E, d בMMM y","dateFormat-full":"EEEE, d בMMMM y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, d.M.yyyy","months-format-wide":["מוחרם","צפר","רביע אל-אוול","רביע א-ת׳אני","ג׳ומאדא אל-אולא","ג׳ומאדא א-ת׳אניה","רג׳ב","שעבאן","רמדאן","שוואל","ד׳ו אל-קעדה","ד׳ו אל-חיג׳ה"],"days-format-short":["א'","ב'","ג'","ד'","ה'","ו'","ש'"],"quarters-format-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"eraNarrow":["שנת היג׳רה"],"days-format-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"dateFormatItem-h":"h a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/he/number.js b/lib/dojo/cldr/nls/he/number.js
index 396fd73fa..5feed3442 100644
--- a/lib/dojo/cldr/nls/he/number.js
+++ b/lib/dojo/cldr/nls/he/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/he/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/he/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":".","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 טריליון","decimalFormat-short":"000T"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/hebrew.js b/lib/dojo/cldr/nls/hebrew.js
index 3f9965593..bb925cca4 100644
--- a/lib/dojo/cldr/nls/hebrew.js
+++ b/lib/dojo/cldr/nls/hebrew.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/hebrew",{root:{"months-format-narrow":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","months-standAlone-narrow-leap":"Adar II","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["AM"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"y MMMM d","months-format-wide":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, y MMMM dd","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yM":"y-M","months-standAlone-wide":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr-leap":"Adar II","months-format-abbr":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"months-standAlone-wide-leap":"Adar II","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"months-format-narrow-leap":"Adar II","eraAbbr":["AM"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","days-format-wide":["1","2","3","4","5","6","7"],"months-standAlone-abbr-leap":"Adar II","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["1","2","3","4","5","6","7"],"eraNames":["AM"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormat-short":"yyyy-MM-dd","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","dateFormat-medium":"y MMM d","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","months-format-wide-leap":"Adar II"},"ar":true,"el":true,"fi":true,"fr":true,"he":true,"hu":true,"nl":true,"ru":true,"sv":true,"th":true,"tr":true}); \ No newline at end of file
+define("dojo/cldr/nls/hebrew",{root:{"days-standAlone-short":["1","2","3","4","5","6","7"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12","13"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"E, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["AM"],"days-format-short":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"y MMMM d","months-format-wide":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, y MMMM dd","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yMd":"y-M-d","dateFormatItem-yM":"y-M","months-standAlone-wide":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr-leap":"Adar II","months-format-abbr":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"months-standAlone-wide-leap":"Adar II","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["AM"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","days-format-wide":["1","2","3","4","5","6","7"],"months-standAlone-abbr-leap":"Adar II","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12","13"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-yMMMd":"y MMM d","eraNames":["AM"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormat-short":"yyyy-MM-dd","dateFormatItem-yMMMEd":"E, y MMM d","dateFormatItem-Ed":"d E","dateTimeFormats-appendItem-Timezone":"{0} {1}","dateFormat-medium":"y MMM d","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","months-format-wide-leap":"Adar II"},"ar":true,"el":true,"fi":true,"fr":true,"he":true,"hu":true,"ja":true,"nl":true,"pl":true,"pt":true,"ro":true,"ru":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/hu/buddhist.js b/lib/dojo/cldr/nls/hu/buddhist.js
new file mode 100644
index 000000000..31a1d5357
--- /dev/null
+++ b/lib/dojo/cldr/nls/hu/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/hu/buddhist",{"dateFormatItem-yM":"y.M.","dateFormatItem-yQ":"y. Q","dayPeriods-format-wide-pm":"du.","eraNames":["BK"],"dateFormatItem-MMMEd":"MMM d., E","dateFormatItem-hms":"a h:mm:ss","dateFormatItem-yQQQ":"y. QQQ","days-standAlone-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"months-standAlone-narrow":["J","F","M","Á","M","J","J","A","Sz","O","N","D"],"dayPeriods-format-wide-am":"de.","quarters-standAlone-abbr":["N1","N2","N3","N4"],"dateFormatItem-y":"y","timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"dateFormatItem-Ed":"d., E","dateFormatItem-yMMM":"y. MMM","days-standAlone-narrow":["V","H","K","Sz","Cs","P","Sz"],"eraAbbr":["BK"],"dateFormat-long":"y. MMMM d.","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"yyyy.MM.dd.","dateFormatItem-Hms":"H:mm:ss","dayPeriods-format-narrow-pm":"du.","dateFormatItem-yMd":"yyyy.MM.dd.","quarters-standAlone-wide":["1. negyedév","2. negyedév","3. negyedév","4. negyedév"],"dayPeriods-format-narrow-am":"de.","quarters-standAlone-narrow":["1.","2.","3.","4."],"months-standAlone-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"dateFormatItem-MMMd":"MMM d.","timeFormat-long":"H:mm:ss z","months-format-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","quarters-format-abbr":["N1","N2","N3","N4"],"days-format-abbr":["V","H","K","Sze","Cs","P","Szo"],"days-format-narrow":["V","H","K","Sz","Cs","P","Sz"],"dateFormatItem-yMMMd":"y. MMM d.","dateFormatItem-MEd":"M. d., E","months-format-narrow":["J","F","M","Á","M","J","J","Á","Sz","O","N","D"],"days-standAlone-short":["V","H","K","Sze","Cs","P","Szo"],"dateFormatItem-hm":"a h:mm","days-standAlone-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormat-short":"yyyy.MM.dd.","dateFormatItem-yMMMEd":"y. MMM d., E","dateFormat-full":"y. MMMM d., EEEE","dateFormatItem-Md":"M.d.","dateFormatItem-yMEd":"yyyy.MM.dd., E","months-format-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"quarters-format-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"eraNarrow":["BK"],"days-format-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"dateFormatItem-h":"a h"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/hu/currency.js b/lib/dojo/cldr/nls/hu/currency.js
index d5886622e..f326f9a26 100644
--- a/lib/dojo/cldr/nls/hu/currency.js
+++ b/lib/dojo/cldr/nls/hu/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/hu/currency",{"HKD_displayName":"Hongkongi dollár","CHF_displayName":"Svájci frank","JPY_symbol":"¥","CAD_displayName":"Kanadai dollár","CNY_displayName":"Kínai jüan renminbi","USD_symbol":"$","AUD_displayName":"Ausztrál dollár","JPY_displayName":"Japán jen","USD_displayName":"USA dollár","GBP_displayName":"Brit font sterling","EUR_displayName":"Euro"}); \ No newline at end of file
+define("dojo/cldr/nls/hu/currency",{"HKD_displayName":"Hongkongi dollár","CHF_displayName":"Svájci frank","JPY_symbol":"¥","CAD_displayName":"Kanadai dollár","HKD_symbol":"HKD","CNY_displayName":"Kínai jüan renminbi","USD_symbol":"$","AUD_displayName":"Ausztrál dollár","JPY_displayName":"Japán jen","CAD_symbol":"CAD","USD_displayName":"USA dollár","EUR_symbol":"EUR","CNY_symbol":"CNY","GBP_displayName":"Brit font sterling","GBP_symbol":"GBP","AUD_symbol":"AUD","EUR_displayName":"Euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/hu/gregorian.js b/lib/dojo/cldr/nls/hu/gregorian.js
index b25bb2024..0cbe7a26c 100644
--- a/lib/dojo/cldr/nls/hu/gregorian.js
+++ b/lib/dojo/cldr/nls/hu/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/hu/gregorian",{"field-dayperiod":"napszak","dayPeriods-format-wide-pm":"du.","field-minute":"perc","eraNames":["időszámításunk előtt","időszámításunk szerint"],"dateFormatItem-MMMEd":"MMM d., E","field-day-relative+-1":"tegnap","field-weekday":"hét napja","field-day-relative+-2":"tegnapelőtt","dateFormatItem-MMdd":"MM.dd.","field-day-relative+-3":"három nappal ezelőtt","days-standAlone-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","Á","M","J","J","A","Sz","O","N","D"],"field-era":"éra","field-hour":"óra","dayPeriods-format-wide-am":"de.","quarters-standAlone-abbr":["N1","N2","N3","N4"],"timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"dateFormatItem-Ed":"d., E","field-day-relative+0":"ma","field-day-relative+1":"holnap","days-standAlone-narrow":["V","H","K","Sz","Cs","P","Sz"],"eraAbbr":["i. e.","i. sz."],"field-day-relative+2":"holnapután","field-day-relative+3":"három nap múlva","dateFormatItem-yyyyMM":"yyyy.MM","dateFormatItem-yyyyMMMM":"y. MMMM","dateFormat-long":"y. MMMM d.","timeFormat-medium":"H:mm:ss","field-zone":"zóna","dateFormatItem-Hm":"H:mm","dateFormat-medium":"yyyy.MM.dd.","dateFormatItem-Hms":"H:mm:ss","quarters-standAlone-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"field-year":"év","field-week":"hét","months-standAlone-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"dateFormatItem-MMMd":"MMM d.","dateFormatItem-yyQ":"yy/Q","timeFormat-long":"H:mm:ss z","months-format-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","field-month":"hónap","dateFormatItem-MMMMd":"MMMM d.","quarters-format-abbr":["N1","N2","N3","N4"],"days-format-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormatItem-mmss":"mm:ss","dateFormatItem-M":"L","days-format-narrow":["V","H","K","Sz","Cs","P","Sz"],"field-second":"másodperc","field-day":"nap","dateFormatItem-MEd":"M. d., E","months-format-narrow":["J","F","M","Á","M","J","J","A","Sz","O","N","D"],"days-standAlone-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormat-short":"yyyy.MM.dd.","dateFormatItem-yMMMEd":"y. MMM d., E","dateFormat-full":"y. MMMM d., EEEE","dateFormatItem-Md":"M. d.","dateFormatItem-yMEd":"yyyy.MM.dd., E","months-format-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"dateFormatItem-d":"d","quarters-format-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"days-format-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"eraNarrow":["i. e.","i. sz."]}); \ No newline at end of file
+define("dojo/cldr/nls/hu/gregorian",{"days-standAlone-short":["V","H","K","Sze","Cs","P","Szo"],"months-format-narrow":["J","F","M","Á","M","J","J","Á","Sz","O","N","D"],"quarters-standAlone-narrow":["1.","2.","3.","4."],"field-weekday":"hét napja","dateFormatItem-yQQQ":"y. QQQ","dateFormatItem-yMEd":"yyyy.MM.dd., E","dateFormatItem-MMMEd":"MMM d., E","eraNarrow":["ie.","isz."],"days-format-short":["V","H","K","Sze","Cs","P","Szo"],"dateFormat-long":"y. MMMM d.","months-format-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"dayPeriods-format-wide-pm":"du.","dateFormat-full":"y. MMMM d., EEEE","dateFormatItem-Md":"M. d.","dateFormatItem-yMd":"yyyy.MM.dd.","field-era":"éra","dateFormatItem-yM":"y.M.","months-standAlone-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"timeFormat-short":"H:mm","quarters-format-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"timeFormat-long":"H:mm:ss z","field-year":"év","dateFormatItem-yMMM":"y. MMM","dateFormatItem-yQ":"y. Q","dateFormatItem-yyyyMMMM":"y. MMMM","field-hour":"óra","dateFormatItem-MMdd":"MM.dd.","months-format-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"dateFormatItem-yyQ":"yy/Q","timeFormat-full":"H:mm:ss zzzz","field-day-relative+0":"ma","field-day-relative+1":"holnap","field-day-relative+2":"holnapután","dateFormatItem-H":"H","months-standAlone-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"quarters-format-abbr":["N1","N2","N3","N4"],"quarters-standAlone-wide":["1. negyedév","2. negyedév","3. negyedév","4. negyedév"],"dateFormatItem-M":"L","days-standAlone-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"dateFormatItem-MMMMd":"MMMM d.","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["N1","N2","N3","N4"],"eraAbbr":["i. e.","i. sz."],"field-minute":"perc","field-dayperiod":"napszak","days-standAlone-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"tegnap","dateFormatItem-h":"a h","dayPeriods-format-narrow-am":"de.","field-day-relative+-2":"tegnapelőtt","dateFormatItem-MMMd":"MMM d.","dateFormatItem-MEd":"M. d., E","field-day":"nap","days-format-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"field-zone":"időzóna","dateFormatItem-yyyyMM":"yyyy.MM","months-standAlone-narrow":["J","F","M","Á","M","J","J","A","Sz","O","N","D"],"field-year-relative+-1":"Előző év","field-month-relative+-1":"Előző hónap","dateFormatItem-hm":"a h:mm","days-format-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormatItem-yMMMd":"y. MMM d.","eraNames":["időszámításunk előtt","időszámításunk szerint"],"days-format-narrow":["V","H","K","Sz","Cs","P","Sz"],"field-month":"hónap","days-standAlone-narrow":["V","H","K","Sz","Cs","P","Sz"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"de.","dateFormat-short":"yyyy.MM.dd.","field-second":"másodperc","dateFormatItem-yMMMEd":"y. MMM d., E","field-month-relative+0":"Ez a hónap","field-month-relative+1":"Következő hónap","dateFormatItem-Ed":"d., E","field-week":"hét","dateFormat-medium":"yyyy.MM.dd.","field-year-relative+0":"Ez az év","field-week-relative+-1":"Előző hét","field-year-relative+1":"Következő év","dateFormatItem-mmss":"mm:ss","dayPeriods-format-narrow-pm":"du.","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"a h:mm:ss","field-week-relative+0":"Ez a hét","field-week-relative+1":"Következő hét"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/hu/hebrew.js b/lib/dojo/cldr/nls/hu/hebrew.js
new file mode 100644
index 000000000..031870073
--- /dev/null
+++ b/lib/dojo/cldr/nls/hu/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/hu/hebrew",{"dateFormatItem-yM":"y.M.","dateFormatItem-yQ":"y. Q","months-standAlone-abbr-leap":"Ádár II","dayPeriods-format-wide-pm":"du.","eraNames":["TÉ"],"dateFormatItem-MMMEd":"MMM d., E","dateFormatItem-hms":"a h:mm:ss","dateFormatItem-yQQQ":"y. QQQ","days-standAlone-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"dayPeriods-format-wide-am":"de.","months-format-abbr-leap":"Ádár II","quarters-standAlone-abbr":["N1","N2","N3","N4"],"timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["Tisri","Hesván","Kiszlév","Tévész","Svát","Ádár risón","Ádár","Niszán","Ijár","Sziván","Tamuz","Áv","Elul"],"dateFormatItem-Ed":"d., E","dateFormatItem-yMMM":"y. MMM","days-standAlone-narrow":["V","H","K","Sz","Cs","P","Sz"],"eraAbbr":["TÉ"],"dateFormat-long":"y. MMMM d.","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"yyyy.MM.dd.","dateFormatItem-Hms":"H:mm:ss","dayPeriods-format-narrow-pm":"du.","dateFormatItem-yMd":"yyyy.MM.dd.","quarters-standAlone-wide":["1. negyedév","2. negyedév","3. negyedév","4. negyedév"],"dayPeriods-format-narrow-am":"de.","quarters-standAlone-narrow":["1.","2.","3.","4."],"months-standAlone-wide":["Tisri","Hesván","Kiszlév","Tévész","Svát","Ádár risón","Ádár","Niszán","Ijár","Sziván","Tamuz","Áv","Elul"],"dateFormatItem-MMMd":"MMM d.","timeFormat-long":"H:mm:ss z","months-format-abbr":["Tisri","Hesván","Kiszlév","Tévész","Svát","Ádár I","Ádár","Niszán","Ijár","Sziván","Tamuz","Áv","Elul"],"timeFormat-short":"H:mm","dateFormatItem-H":"H","quarters-format-abbr":["N1","N2","N3","N4"],"days-format-abbr":["V","H","K","Sze","Cs","P","Szo"],"days-format-narrow":["V","H","K","Sz","Cs","P","Sz"],"dateFormatItem-yMMMd":"y. MMM d.","dateFormatItem-MEd":"M. d., E","days-standAlone-short":["V","H","K","Sze","Cs","P","Szo"],"dateFormatItem-hm":"a h:mm","days-standAlone-abbr":["V","H","K","Sze","Cs","P","Szo"],"months-standAlone-wide-leap":"Ádár II","dateFormat-short":"yyyy.MM.dd.","dateFormatItem-yMMMEd":"y. MMM d., E","dateFormat-full":"y. MMMM d., EEEE","dateFormatItem-Md":"M. d.","dateFormatItem-yMEd":"yyyy.MM.dd., E","months-format-wide":["Tisri","Hesván","Kiszlév","Tévész","Svát","Ádár risón","Ádár","Niszán","Ijár","Sziván","Tamuz","Áv","Elul"],"quarters-format-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"months-format-wide-leap":"Ádár séni","eraNarrow":["TÉ"],"days-format-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"dateFormatItem-h":"a h"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/hu/islamic.js b/lib/dojo/cldr/nls/hu/islamic.js
new file mode 100644
index 000000000..30aae4112
--- /dev/null
+++ b/lib/dojo/cldr/nls/hu/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/hu/islamic",{"dateFormatItem-yM":"y-M","dateFormatItem-yQ":"y Q","dayPeriods-format-wide-pm":"du.","eraNames":["MF"],"dateFormatItem-MMMEd":"MMM. d., E","dateFormatItem-hms":"a h:mm:ss","dateFormatItem-yQQQ":"y QQQ","days-standAlone-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dayPeriods-format-wide-am":"de.","quarters-standAlone-abbr":["N1","N2","N3","N4"],"dateFormatItem-y":"y","timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["Moh.","Saf.","Rébi I","Rébi II","Dsem. I","Dsem. II","Red.","Sab.","Ram.","Sev.","Dsül k.","Dsül h."],"dateFormatItem-Ed":"d E","dateFormatItem-yMMM":"y MMM","days-standAlone-narrow":["V","H","K","Sz","Cs","P","Sz"],"eraAbbr":["MF"],"dateFormat-long":"y. MMMM d.","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"yyyy.MM.dd.","dateFormatItem-Hms":"H:mm:ss","dayPeriods-format-narrow-pm":"du.","dateFormatItem-yMd":"yyyy.MM.dd.","quarters-standAlone-wide":["1. negyedév","2. negyedév","3. negyedév","4. negyedév"],"dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"de.","quarters-standAlone-narrow":["1.","2.","3.","4."],"months-standAlone-wide":["Moharrem","Safar","Rébi I","Rébi II","Dsemádi I","Dsemádi II","Redseb","Sabán","Ramadán","Sevvál","Dsül kade","Dsül hedse"],"dateFormatItem-MMMd":"MMM d.","timeFormat-long":"H:mm:ss z","months-format-abbr":["Moh.","Saf.","Rébi I","Rébi II","Dsem. I","Dsem. II","Red.","Sab.","Ram.","Sev.","Dsül k.","Dsül h."],"timeFormat-short":"H:mm","dateFormatItem-H":"HH","dateFormatItem-MMMMd":"MMMM d.","quarters-format-abbr":["N1","N2","N3","N4"],"days-format-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormatItem-M":"L","days-format-narrow":["V","H","K","Sz","Cs","P","Sz"],"dateFormatItem-yMMMd":"y. MMM d.","dateFormatItem-MEd":"M. d., E","days-standAlone-short":["V","H","K","Sze","Cs","P","Szo"],"dateFormatItem-hm":"a h:mm","days-standAlone-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormat-short":"yyyy.MM.dd.","dateFormatItem-yMMMEd":"y. MMM d., E","dateFormat-full":"y. MMMM d., EEEE","dateFormatItem-Md":"M. d.","dateFormatItem-yMEd":"yyyy.MM.dd., E","months-format-wide":["Moharrem","Safar","Rébi el avvel","Rébi el accher","Dsemádi el avvel","Dsemádi el accher","Redseb","Sabán","Ramadán","Sevvál","Dsül kade","Dsül hedse"],"dateFormatItem-d":"d","quarters-format-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"eraNarrow":["MF"],"days-format-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"dateFormatItem-h":"a h"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/hu/number.js b/lib/dojo/cldr/nls/hu/number.js
index d8a402a3e..7824866ab 100644
--- a/lib/dojo/cldr/nls/hu/number.js
+++ b/lib/dojo/cldr/nls/hu/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/hu/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/hu/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 billió","decimalFormat-short":"000 B"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/islamic.js b/lib/dojo/cldr/nls/islamic.js
index 71f81250a..c5a5efd60 100644
--- a/lib/dojo/cldr/nls/islamic.js
+++ b/lib/dojo/cldr/nls/islamic.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/islamic",{root:{"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["AH"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"y MMMM d","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, y MMMM dd","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yM":"y-M","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["AH"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","days-format-wide":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["1","2","3","4","5","6","7"],"eraNames":["AH"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormat-short":"yyyy-MM-dd","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","dateFormat-medium":"y MMM d","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"},"ar":true,"da":true,"de":true,"en":true,"en-gb":true,"es":true,"fi":true,"fr":true,"he":true,"hu":true,"it":true,"nb":true,"nl":true,"pl":true,"pt":true,"pt-pt":true,"ru":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true}); \ No newline at end of file
+define("dojo/cldr/nls/islamic",{root:{"days-standAlone-short":["1","2","3","4","5","6","7"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"E, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["AH"],"days-format-short":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"y MMMM d","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, y MMMM dd","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yMd":"y-M-d","dateFormatItem-yM":"y-M","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["AH"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","days-format-wide":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-yMMMd":"y MMM d","eraNames":["AH"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormat-short":"yyyy-MM-dd","dateFormatItem-yMMMEd":"E, y MMM d","dateFormatItem-Ed":"d E","dateTimeFormats-appendItem-Timezone":"{0} {1}","dateFormat-medium":"y MMM d","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"},"ar":true,"cs":true,"da":true,"de":true,"en":true,"en-gb":true,"es":true,"fi":true,"fr":true,"he":true,"hu":true,"it":true,"ja":true,"nb":true,"nl":true,"pl":true,"pt":true,"pt-pt":true,"ro":true,"ru":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/it/buddhist.js b/lib/dojo/cldr/nls/it/buddhist.js
new file mode 100644
index 000000000..8eb286103
--- /dev/null
+++ b/lib/dojo/cldr/nls/it/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/it/buddhist",{"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"Q-y G","eraNames":["EB"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"dateFormatItem-Gy":"y G","quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-y":"y G","months-standAlone-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["D","L","M","M","G","V","S"],"eraAbbr":["EB"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"dd MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"dd/MMM/y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"p.","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-yMd":"d/M/y G","quarters-standAlone-wide":["Primo trimestre","Secondo trimestre","Terzo trimestre","Quarto trimestre"],"dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"m.","months-standAlone-wide":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"dateFormatItem-MMMMdd":"dd MMMM","days-format-abbr":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMM y G","dateFormatItem-MEd":"E d/M","months-format-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"days-standAlone-short":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-hm":"hh:mm a","dateFormat-short":"dd/MM/y G","dateFormatItem-yMMMEd":"E d MMM y G","dateFormat-full":"EEEE d MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, d/M/y G","months-format-wide":["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],"days-format-short":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-d":"d","quarters-format-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"eraNarrow":["EB"],"days-format-wide":["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],"dateFormatItem-h":"hh a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/it/currency.js b/lib/dojo/cldr/nls/it/currency.js
index b2ddd0e1e..77ee934a9 100644
--- a/lib/dojo/cldr/nls/it/currency.js
+++ b/lib/dojo/cldr/nls/it/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/it/currency",{"HKD_displayName":"Dollaro di Hong Kong","CHF_displayName":"Franco Svizzero","CAD_displayName":"Dollaro Canadese","CNY_displayName":"Renmimbi Cinese","AUD_displayName":"Dollaro Australiano","JPY_displayName":"Yen Giapponese","USD_displayName":"Dollaro Statunitense","GBP_displayName":"Sterlina Inglese","EUR_displayName":"Euro"}); \ No newline at end of file
+define("dojo/cldr/nls/it/currency",{"HKD_displayName":"Dollaro di Hong Kong","CHF_displayName":"Franco Svizzero","CAD_displayName":"Dollaro Canadese","CNY_displayName":"Renmimbi Cinese","USD_symbol":"US$","AUD_displayName":"Dollaro Australiano","JPY_displayName":"Yen Giapponese","CAD_symbol":"CA$","USD_displayName":"Dollaro Statunitense","GBP_displayName":"Sterlina Inglese","EUR_displayName":"Euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/it/gregorian.js b/lib/dojo/cldr/nls/it/gregorian.js
index 8024cd155..9f4276507 100644
--- a/lib/dojo/cldr/nls/it/gregorian.js
+++ b/lib/dojo/cldr/nls/it/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/it/gregorian",{"months-format-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"field-weekday":"giorno della settimana","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d/M/y","dateFormatItem-MMMEd":"EEE d MMM","eraNarrow":["aC","dC"],"dateFormat-long":"dd MMMM y","months-format-wide":["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],"dayPeriods-format-wide-pm":"p.","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","field-era":"era","dateFormatItem-yM":"M/y","months-standAlone-wide":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"anno","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q-yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"ora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"oggi","field-day-relative+1":"domani","field-day-relative+2":"dopodomani","field-day-relative+3":"tra tre giorni","months-standAlone-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["aC","dC"],"field-minute":"minuto","field-dayperiod":"periodo del giorno","days-standAlone-abbr":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"ieri","dateFormatItem-h":"hh a","field-day-relative+-2":"l'altro ieri","field-day-relative+-3":"tre giorni fa","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"giorno","days-format-wide":["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],"field-zone":"zona","dateFormatItem-y":"y","months-standAlone-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["dom","lun","mar","mer","gio","ven","sab"],"eraNames":["a.C.","d.C"],"days-format-narrow":["D","L","M","M","G","V","S"],"field-month":"mese","days-standAlone-narrow":["D","L","M","M","G","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"m.","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"dd/MM/yy","field-second":"secondo","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormatItem-Ed":"E d","field-week":"settimana","dateFormat-medium":"dd/MMM/y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a"}); \ No newline at end of file
+define("dojo/cldr/nls/it/gregorian",{"days-standAlone-short":["dom","lun","mar","mer","gio","ven","sab"],"months-format-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"giorno della settimana","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E d/M/y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["aC","dC"],"days-format-short":["dom","lun","mar","mer","gio","ven","sab"],"dateFormat-long":"dd MMMM y","months-format-wide":["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","dateFormatItem-yMd":"d/M/y","field-era":"era","dateFormatItem-yM":"M/y","months-standAlone-wide":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"anno","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q-yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"ora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"oggi","field-day-relative+1":"domani","field-day-relative+2":"dopodomani","dateFormatItem-H":"HH","months-standAlone-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["Primo trimestre","Secondo trimestre","Terzo trimestre","Quarto trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["aC","dC"],"field-minute":"minuto","field-dayperiod":"periodo del giorno","days-standAlone-abbr":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"ieri","dateFormatItem-h":"hh a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"m.","field-day-relative+-2":"l'altro ieri","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E d/M","dateTimeFormat-full":"{1} {0}","field-day":"giorno","days-format-wide":["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],"field-zone":"zona","dateFormatItem-y":"y","months-standAlone-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"field-year-relative+-1":"Anno scorso","field-month-relative+-1":"Mese scorso","dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-yMMMd":"d MMM y","eraNames":["a.C.","d.C"],"days-format-narrow":["D","L","M","M","G","V","S"],"days-standAlone-narrow":["D","L","M","M","G","V","S"],"dateFormatItem-MMM":"LLL","field-month":"mese","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"dd/MM/yy","field-second":"secondo","dateFormatItem-yMMMEd":"E d MMM y","field-month-relative+0":"Questo mese","field-month-relative+1":"Mese prossimo","dateFormatItem-Ed":"E d","field-week":"settimana","dateFormat-medium":"dd/MMM/y","field-year-relative+0":"Questo anno","field-week-relative+-1":"Settimana scorsa","field-year-relative+1":"Anno prossimo","dayPeriods-format-narrow-pm":"p.","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","field-week-relative+0":"Questa settimana","field-week-relative+1":"Settimana prossima"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/it/islamic.js b/lib/dojo/cldr/nls/it/islamic.js
new file mode 100644
index 000000000..7228036ab
--- /dev/null
+++ b/lib/dojo/cldr/nls/it/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/it/islamic",{"dateFormatItem-yM":"M/y","dateFormatItem-yyyyMMMEd":"E d MMM y G","dateFormatItem-yQ":"Q-y G","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"dateFormatItem-MMM":"LLL","quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-yyyy":"y G","dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["D","L","M","M","G","V","S"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"dd MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"dd/MMM/y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"p.","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-yMd":"d/M/y","quarters-standAlone-wide":["Primo trimestre","Secondo trimestre","Terzo trimestre","Quarto trimestre"],"dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"m.","dateFormatItem-yyyyMd":"d/M/y G","dateFormatItem-yyyyMMMd":"d MMM y G","dateFormatItem-yyyyMEd":"E, d/M/y G","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q y G","quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-MMMMdd":"dd MMMM","dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E d/M","days-standAlone-short":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-hm":"hh:mm a","dateFormat-short":"dd/MM/y G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"E d MMM y","dateFormat-full":"EEEE d MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E d/M/y","days-format-short":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"days-format-wide":["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],"dateFormatItem-h":"hh a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/it/number.js b/lib/dojo/cldr/nls/it/number.js
index bf7f67616..ea461a935 100644
--- a/lib/dojo/cldr/nls/it/number.js
+++ b/lib/dojo/cldr/nls/it/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/it/number",{"decimalFormat":"#,##0.###","group":".","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤ #,##0.00","decimal":","}); \ No newline at end of file
+define("dojo/cldr/nls/it/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","decimalFormat-long":"000 bilioni","decimalFormat-short":"000 B"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ja/buddhist.js b/lib/dojo/cldr/nls/ja/buddhist.js
new file mode 100644
index 000000000..da8c200a4
--- /dev/null
+++ b/lib/dojo/cldr/nls/ja/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/ja/buddhist",{"dateFormatItem-yM":"GGGGy年M月","dateFormatItem-yyyyMMMEd":"GGGGy年M月d日(E)","dateFormatItem-yQ":"GGGGy QQQ","dayPeriods-format-wide-pm":"午後","dateFormatItem-GGGGyMd":"GGGGy年M月d日","eraNames":["仏暦"],"dateFormatItem-MMMEd":"M月d日(E)","dateFormatItem-hms":"aK:mm:ss","dateFormatItem-yQQQ":"GGGGy第Q四半期","dateFormatItem-MMdd":"MM/dd","dateFormatItem-MMM":"M月","dateFormatItem-Gy":"Gy年","dayPeriods-format-wide-am":"午前","dateFormatItem-y":"GGGGy年","timeFormat-full":"H時mm分ss秒 zzzz","dateFormatItem-yyyy":"GGGGy年","dateFormatItem-yyyyMMMEEEEd":"GGGGy年M月d日EEEE","dateFormatItem-EEEEd":"d日EEEE","dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"GGGGy年M月","days-standAlone-narrow":["日","月","火","水","木","金","土"],"eraAbbr":["BE"],"dateFormatItem-yyyyMM":"Gy/MM","dateFormat-long":"GGGGy年M月d日","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormatItem-MMMEEEEd":"M月d日EEEE","dateFormat-medium":"Gy/MM/dd","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yMMMEEEEd":"GGGGy年M月d日EEEE","dateFormatItem-yMd":"y/M/d","dateFormatItem-ms":"mm:ss","dateFormatItem-yyyyMd":"Gy/M/d","dateFormatItem-yyyyMMMd":"GGGGy年M月d日","dateFormatItem-yyyyMEd":"Gy/M/d(E)","dateFormatItem-MMMd":"M月d日","timeFormat-long":"H:mm:ss z","dateFormatItem-H":"H時","timeFormat-short":"H:mm","quarters-format-abbr":["1Q","2Q","3Q","4Q"],"days-format-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-M":"M月","dateFormatItem-yMMMd":"y年M月d日","dateFormatItem-MEd":"M/d(E)","days-standAlone-short":["日","月","火","水","木","金","土"],"dateFormatItem-hm":"aK:mm","dateFormat-short":"Gy/MM/dd","dateFormatItem-yMMMEd":"GGGGy年M月d日(E)","dateFormat-full":"GGGGy年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"GGGGy年M/d(E)","dateFormatItem-yyyyQ":"Gy/Q","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"days-format-short":["日","月","火","水","木","金","土"],"dateFormatItem-yyyyMMM":"GGGGy年M月","dateFormatItem-d":"d日","quarters-format-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"days-format-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"dateFormatItem-h":"aK時"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ja/currency.js b/lib/dojo/cldr/nls/ja/currency.js
index 49f102bb9..4a025482b 100644
--- a/lib/dojo/cldr/nls/ja/currency.js
+++ b/lib/dojo/cldr/nls/ja/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ja/currency",{"HKD_displayName":"香港ドル","CHF_displayName":"スイス フラン","JPY_symbol":"¥","CAD_displayName":"カナダ ドル","CNY_displayName":"中国人民元","USD_symbol":"$","AUD_displayName":"オーストラリア ドル","JPY_displayName":"日本円","USD_displayName":"米ドル","CNY_symbol":"元","GBP_displayName":"英国ポンド","EUR_displayName":"ユーロ"}); \ No newline at end of file
+define("dojo/cldr/nls/ja/currency",{"HKD_displayName":"香港ドル","CHF_displayName":"スイス フラン","JPY_symbol":"¥","CAD_displayName":"カナダ ドル","HKD_symbol":"HK$","CNY_displayName":"中国人民元","USD_symbol":"$","AUD_displayName":"オーストラリア ドル","JPY_displayName":"日本円","CAD_symbol":"CA$","USD_displayName":"米ドル","EUR_symbol":"€","CNY_symbol":"元","GBP_displayName":"英国ポンド","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"ユーロ"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ja/gregorian.js b/lib/dojo/cldr/nls/ja/gregorian.js
index 0a8557d07..fe4f628bc 100644
--- a/lib/dojo/cldr/nls/ja/gregorian.js
+++ b/lib/dojo/cldr/nls/ja/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ja/gregorian",{"field-weekday":"曜日","dateFormatItem-yQQQ":"yQQQ","dateFormatItem-yMEd":"y/M/d(EEE)","dateFormatItem-MMMEd":"M月d日(E)","eraNarrow":["BC","AD"],"dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"午後","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMd":"y/M/d","field-era":"時代","dateFormatItem-yM":"y/M","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"timeFormat-short":"H:mm","quarters-format-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"timeFormat-long":"H:mm:ss z","field-year":"年","dateFormatItem-yMMM":"y年M月","dateFormatItem-yQ":"y/Q","field-hour":"時","dateFormatItem-MMdd":"MM/dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy/Q","timeFormat-full":"H時mm分ss秒 zzzz","field-day-relative+0":"今日","field-day-relative+1":"明日","field-day-relative+2":"明後日","dateFormatItem-H":"H時","field-day-relative+3":"3日後","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"dateFormatItem-M":"M月","days-standAlone-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"dateFormatItem-yyMMM":"y年M月","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","eraAbbr":["BC","AD"],"field-minute":"分","field-dayperiod":"午前/午後","days-standAlone-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨日","dateFormatItem-h":"ah時","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"一昨日","field-day-relative+-3":"3日前","dateFormatItem-MMMd":"M月d日","dateFormatItem-MEd":"M/d(E)","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"field-zone":"タイムゾーン","dateFormatItem-yyyyMM":"yyyy/MM","dateFormatItem-y":"y年","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"ah:mm","dateFormatItem-GGGGyMd":"GGGGy年M月d日","days-format-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-yMMMd":"y年M月d日","eraNames":["紀元前","西暦"],"days-format-narrow":["日","月","火","水","木","金","土"],"field-month":"月","days-standAlone-narrow":["日","月","火","水","木","金","土"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"午前","dateFormat-short":"yy/MM/dd","field-second":"秒","dateFormatItem-yMMMEd":"y年M月d日(EEE)","dateFormatItem-Ed":"d日(EEE)","field-week":"週","dateFormat-medium":"yyyy/MM/dd","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年"}); \ No newline at end of file
+define("dojo/cldr/nls/ja/gregorian",{"days-standAlone-short":["日","月","火","水","木","金","土"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"曜日","dateFormatItem-yQQQ":"yQQQ","dateFormatItem-yMEd":"y/M/d(E)","dateFormatItem-MMMEd":"M月d日(E)","eraNarrow":["BC","AD"],"days-format-short":["日","月","火","水","木","金","土"],"dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"午後","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dayPeriods-format-wide-noon":"正午","dateFormatItem-yMd":"y/M/d","field-era":"時代","dateFormatItem-yM":"y/M","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"timeFormat-short":"H:mm","quarters-format-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"timeFormat-long":"H:mm:ss z","field-year":"年","dateFormatItem-yMMM":"y年M月","dateFormatItem-yQ":"y/Q","field-hour":"時","dateFormatItem-MMdd":"MM/dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy/Q","timeFormat-full":"H時mm分ss秒 zzzz","field-day-relative+0":"今日","field-day-relative+1":"明日","field-day-relative+2":"明後日","dateFormatItem-H":"H時","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"quarters-format-abbr":["1Q","2Q","3Q","4Q"],"quarters-standAlone-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"dateFormatItem-M":"M月","days-standAlone-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"dateFormatItem-yMMMEEEEd":"y年M月d日EEEE","dateFormatItem-yyMMM":"y年M月","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BC","AD"],"field-minute":"分","field-dayperiod":"午前/午後","days-standAlone-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"昨日","dateFormatItem-h":"aK時","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"一昨日","dateFormatItem-MMMd":"M月d日","dateFormatItem-EEEEd":"d日EEEE","dateFormatItem-MEd":"M/d(E)","dateTimeFormat-full":"{1} {0}","field-day":"日","days-format-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"field-zone":"タイムゾーン","dateFormatItem-yyyyMM":"yyyy/MM","dateFormatItem-y":"y年","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"field-year-relative+-1":"昨年","field-month-relative+-1":"先月","dateFormatItem-hm":"aK:mm","dateFormatItem-GGGGyMd":"GGGGy年M月d日","days-format-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-yMMMd":"y年M月d日","eraNames":["紀元前","西暦"],"days-format-narrow":["日","月","火","水","木","金","土"],"dateFormatItem-MMMEEEEd":"M月d日EEEE","field-month":"月","days-standAlone-narrow":["日","月","火","水","木","金","土"],"dateFormatItem-MMM":"M月","dayPeriods-format-wide-am":"午前","dateFormat-short":"yyyy/MM/dd","field-second":"秒","dateFormatItem-yMMMEd":"y年M月d日(E)","field-month-relative+0":"今月","field-month-relative+1":"翌月","dateFormatItem-Ed":"d日(E)","field-week":"週","dateFormat-medium":"yyyy/MM/dd","field-year-relative+0":"今年","field-week-relative+-1":"先週","field-year-relative+1":"翌年","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"aK:mm:ss","dateFormatItem-yyyy":"y年","field-week-relative+0":"今週","field-week-relative+1":"翌週"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ja/hebrew.js b/lib/dojo/cldr/nls/ja/hebrew.js
new file mode 100644
index 000000000..53f5eb8d3
--- /dev/null
+++ b/lib/dojo/cldr/nls/ja/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/ja/hebrew",{"dateFormatItem-yM":"y/M","dateFormatItem-yQ":"y/Q","months-standAlone-abbr-leap":"アダル II","dayPeriods-format-wide-pm":"午後","dateFormatItem-MMMEd":"M月d日(E)","dateFormatItem-hms":"aK:mm:ss","dateFormatItem-yQQQ":"yQQQ","dateFormatItem-MMM":"M月","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12","13"],"dayPeriods-format-wide-am":"午前","months-format-narrow-leap":"7","months-format-abbr-leap":"アダル II","dateFormatItem-y":"y年","timeFormat-full":"H時mm分ss秒 zzzz","months-standAlone-narrow-leap":"7","months-standAlone-abbr":["ティスレ","へシボン","キスレブ","テベット","シバット","アダル I","アダル","ニサン","イヤル","シバン","タムズ","アヴ","エルル"],"dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"y年M月","days-standAlone-narrow":["日","月","火","水","木","金","土"],"eraAbbr":["AM"],"dateFormat-long":"y年M月d日","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"yyyy/MM/dd","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yMd":"y/M/d","months-standAlone-wide":["ティスレ","へシボン","キスレブ","テベット","シバット","アダル I","アダル","ニサン","イヤル","シバン","タムズ","アヴ","エルル"],"dateFormatItem-MMMd":"M月d日","timeFormat-long":"H:mm:ss z","months-format-abbr":["ティスレ","へシボン","キスレブ","テベット","シバット","アダル I","アダル","ニサン","イヤル","シバン","タムズ","アヴ","エルル"],"timeFormat-short":"H:mm","dateFormatItem-H":"H時","quarters-format-abbr":["1Q","2Q","3Q","4Q"],"days-format-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-M":"M月","dateFormatItem-yMMMd":"y年M月d日","dateFormatItem-MEd":"M/d(E)","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12","13"],"days-standAlone-short":["日","月","火","水","木","金","土"],"dateFormatItem-hm":"aK:mm","months-standAlone-wide-leap":"アダル II","dateFormat-short":"yyyy/MM/dd","dateFormatItem-yMMMEd":"y年M月d日(E)","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"y/M/d(E)","months-format-wide":["ティスレ","へシボン","キスレブ","テベット","シバット","アダル I","アダル","ニサン","イヤル","シバン","タムズ","アヴ","エルル"],"days-format-short":["日","月","火","水","木","金","土"],"dateFormatItem-d":"d日","quarters-format-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"months-format-wide-leap":"アダル II","days-format-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"dateFormatItem-h":"aK時"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ja/islamic.js b/lib/dojo/cldr/nls/ja/islamic.js
new file mode 100644
index 000000000..870fbac3f
--- /dev/null
+++ b/lib/dojo/cldr/nls/ja/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/ja/islamic",{"dateFormatItem-yM":"y/M","dateFormatItem-yQ":"y/Q","dayPeriods-format-wide-pm":"午後","dateFormatItem-MMMEd":"M月d日(E)","dateFormatItem-hms":"aK:mm:ss","dateFormatItem-yQQQ":"yQQQ","dateFormatItem-MMM":"M月","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dayPeriods-format-wide-am":"午前","dateFormatItem-y":"y年","timeFormat-full":"H時mm分ss秒 zzzz","months-standAlone-abbr":["ムハッラム","サフアル","ラビー・ウル・アウワル","ラビー・ウッ・サーニー","ジュマーダル・アウワル","ジュマーダッサーニー","ラジャブ","シャアバーン","ラマダーン","シャウワール","ズル・カイダ","ズル・ヒッジャ"],"dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"y年M月","days-standAlone-narrow":["日","月","火","水","木","金","土"],"eraAbbr":["AH"],"dateFormat-long":"y年M月d日","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"yyyy/MM/dd","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yMd":"y/M/d","months-standAlone-wide":["ムハッラム","サフアル","ラビー・ウル・アウワル","ラビー・ウッ・サーニー","ジュマーダル・アウワル","ジュマーダッサーニー","ラジャブ","シャアバーン","ラマダーン","シャウワール","ズル・カイダ","ズル・ヒッジャ"],"dateFormatItem-MMMd":"M月d日","timeFormat-long":"H:mm:ss z","months-format-abbr":["ムハッラム","サフアル","ラビー・ウル・アウワル","ラビー・ウッ・サーニー","ジュマーダル・アウワル","ジュマーダッサーニー","ラジャブ","シャアバーン","ラマダーン","シャウワール","ズル・カイダ","ズル・ヒッジャ"],"timeFormat-short":"H:mm","dateFormatItem-H":"H時","quarters-format-abbr":["1Q","2Q","3Q","4Q"],"days-format-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-M":"M月","dateFormatItem-yMMMd":"y年M月d日","dateFormatItem-MEd":"M/d(E)","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"days-standAlone-short":["日","月","火","水","木","金","土"],"dateFormatItem-hm":"aK:mm","dateFormat-short":"yyyy/MM/dd","dateFormatItem-yMMMEd":"y年M月d日(E)","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"y/M/d(E)","months-format-wide":["ムハッラム","サフアル","ラビー・ウル・アウワル","ラビー・ウッ・サーニー","ジュマーダル・アウワル","ジュマーダッサーニー","ラジャブ","シャアバーン","ラマダーン","シャウワール","ズル・カイダ","ズル・ヒッジャ"],"days-format-short":["日","月","火","水","木","金","土"],"dateFormatItem-d":"d日","quarters-format-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"days-format-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"dateFormatItem-h":"aK時"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ja/number.js b/lib/dojo/cldr/nls/ja/number.js
index 07b16c6ee..799ee12cb 100644
--- a/lib/dojo/cldr/nls/ja/number.js
+++ b/lib/dojo/cldr/nls/ja/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ja/number",{"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":"."}); \ No newline at end of file
+define("dojo/cldr/nls/ja/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":".","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+","decimalFormat-long":"000兆","decimalFormat-short":"000兆"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ko/buddhist.js b/lib/dojo/cldr/nls/ko/buddhist.js
new file mode 100644
index 000000000..68a611da5
--- /dev/null
+++ b/lib/dojo/cldr/nls/ko/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/ko/buddhist",{"dateFormatItem-yM":"G y. M.","dateFormatItem-yQ":"G y년 Q분기","dayPeriods-format-wide-pm":"오후","eraNames":["불기"],"dateFormatItem-MMMEd":"MMM d일 (E)","dateFormatItem-hms":"a h:mm:ss","dateFormatItem-yQQQ":"G y년 QQQ","dateFormatItem-MMdd":"MM. dd","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-Gy":"G y년","dayPeriods-format-wide-am":"오전","dateFormatItem-y":"G y년","timeFormat-full":"a h시 m분 s초 zzzz","dateFormatItem-EEEEd":"d일 EEEE","dateFormatItem-Ed":"d일 (E)","dateFormatItem-yMMM":"G y년 MMM","days-standAlone-narrow":["일","월","화","수","목","금","토"],"eraAbbr":["불기"],"dateFormatItem-yyyyMM":"G y. MM","dateFormat-long":"G y년 M월 d일","timeFormat-medium":"a h:mm:ss","dateFormatItem-Hm":"HH:mm","dateFormatItem-yyMM":"G yy. M.","dateFormat-medium":"G y. M. d","dateFormatItem-Hms":"H시 m분 s초","dateFormatItem-yyMMM":"G y년 MMM","dateFormatItem-yMMMEEEEd":"G y년 MMM d일 EEEE","dateFormatItem-yMd":"G y. M. d.","dateFormatItem-ms":"mm:ss","dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-MMMd":"MMM d일","dateFormatItem-yyQ":"G y년 Q분기","timeFormat-long":"a h시 m분 s초 z","dateFormatItem-H":"H시","timeFormat-short":"a h:mm","quarters-format-abbr":["1분기","2분기","3분기","4분기"],"days-format-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-mmss":"mm:ss","dateFormatItem-M":"M월","dateFormatItem-yMMMd":"G y년 MMM d일","dateFormatItem-MEEEEd":"M. d. EEEE","dateFormatItem-MEd":"M. d. (E)","days-standAlone-short":["일","월","화","수","목","금","토"],"dateFormatItem-hm":"a h:mm","dateFormat-short":"G y. M. d","dateFormatItem-yMMMEd":"G y년 MMM d일 (E)","dateFormat-full":"G y년 M월 d일 EEEE","dateFormatItem-Md":"M. d.","dateFormatItem-yMEd":"G y. M. d. (E)","months-format-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"days-format-short":["일","월","화","수","목","금","토"],"dateFormatItem-d":"d일","quarters-format-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"eraNarrow":["불기"],"days-format-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"dateFormatItem-h":"a h시"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ko/currency.js b/lib/dojo/cldr/nls/ko/currency.js
index 006984e19..94d9946d2 100644
--- a/lib/dojo/cldr/nls/ko/currency.js
+++ b/lib/dojo/cldr/nls/ko/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ko/currency",{"HKD_displayName":"홍콩 달러","CHF_displayName":"스위스 프랑","CAD_displayName":"캐나다 달러","CNY_displayName":"중국 위안 인민폐","AUD_displayName":"호주 달러","JPY_displayName":"일본 엔화","USD_displayName":"미국 달러","GBP_displayName":"영국령 파운드 스털링","EUR_displayName":"유로화"}); \ No newline at end of file
+define("dojo/cldr/nls/ko/currency",{"HKD_displayName":"홍콩 달러","CHF_displayName":"스위스 프랑","CAD_displayName":"캐나다 달러","CNY_displayName":"중국 위안 인민폐","AUD_displayName":"호주 달러","JPY_displayName":"일본 엔화","USD_displayName":"미국 달러","GBP_displayName":"영국령 파운드 스털링","AUD_symbol":"AU$","EUR_displayName":"유로화"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ko/gregorian.js b/lib/dojo/cldr/nls/ko/gregorian.js
index 2937e73a0..752e061ec 100644
--- a/lib/dojo/cldr/nls/ko/gregorian.js
+++ b/lib/dojo/cldr/nls/ko/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ko/gregorian",{"months-format-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"field-weekday":"요일","dateFormatItem-yQQQ":"y년 QQQ","dateFormatItem-yMEd":"yyyy. M. d. EEE","dateFormatItem-MMMEd":"MMM d일 (E)","eraNarrow":["기원전","서기"],"dateFormat-long":"y년 M월 d일","months-format-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d일 EEE","dayPeriods-format-wide-pm":"오후","dateFormat-full":"y년 M월 d일 EEEE","dateFormatItem-Md":"M. d.","field-era":"연호","dateFormatItem-yM":"yyyy. M.","months-standAlone-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"timeFormat-short":"a h:mm","quarters-format-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"timeFormat-long":"a h시 m분 s초 z","field-year":"년","dateFormatItem-yMMM":"y년 MMM","dateFormatItem-yQ":"y년 Q분기","field-hour":"시","dateFormatItem-MMdd":"MM. dd","months-format-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyQ":"yy년 Q분기","timeFormat-full":"a h시 m분 s초 zzzz","field-day-relative+0":"오늘","field-day-relative+1":"내일","field-day-relative+2":"모레","dateFormatItem-H":"H시","field-day-relative+3":"3일후","months-standAlone-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"quarters-format-abbr":["1분기","2분기","3분기","4분기"],"quarters-standAlone-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"M월","days-standAlone-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"dateFormatItem-yyMMM":"yy년 MMM","timeFormat-medium":"a h:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1분기","2분기","3분기","4분기"],"eraAbbr":["기원전","서기"],"field-minute":"분","field-dayperiod":"오전/오후","days-standAlone-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-d":"d일","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"어제","dateFormatItem-h":"a h시","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"그저께","field-day-relative+-3":"그끄제","dateFormatItem-MMMd":"MMM d일","dateFormatItem-MEd":"M. d. (E)","dateTimeFormat-full":"{1} {0}","field-day":"일","days-format-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"field-zone":"시간대","dateFormatItem-yyyyMM":"yyyy. MM","dateFormatItem-y":"y년","months-standAlone-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyMM":"YY. M.","dateFormatItem-hm":"a h:mm","days-format-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-yMMMd":"y년 MMM d일","eraNames":["서력기원전","서력기원"],"days-format-narrow":["일","월","화","수","목","금","토"],"field-month":"월","days-standAlone-narrow":["일","월","화","수","목","금","토"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"오전","dateFormat-short":"yy. M. d.","field-second":"초","dateFormatItem-yMMMEd":"y년 MMM d일 EEE","dateFormatItem-Ed":"d일 (E)","field-week":"주","dateFormat-medium":"yyyy. M. d.","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H시 m분 s초","dateFormatItem-hms":"a h:mm:ss"}); \ No newline at end of file
+define("dojo/cldr/nls/ko/gregorian",{"days-standAlone-short":["일","월","화","수","목","금","토"],"months-format-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"요일","dateFormatItem-yQQQ":"y년 QQQ","dateFormatItem-yMEd":"yyyy. M. d. (E)","dateFormatItem-MMMEd":"MMM d일 (E)","eraNarrow":["기원전","서기"],"days-format-short":["일","월","화","수","목","금","토"],"dateFormat-long":"y년 M월 d일","months-format-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"오후","dateFormat-full":"y년 M월 d일 EEEE","dateFormatItem-Md":"M. d.","dateFormatItem-yMd":"yyyy. M. d.","field-era":"연호","dateFormatItem-yM":"yyyy. M.","months-standAlone-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"timeFormat-short":"a h:mm","quarters-format-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"dateFormatItem-MEEEEd":"M. d. EEEE","timeFormat-long":"a h시 m분 s초 z","field-year":"년","dateFormatItem-yMMM":"y년 MMM","dateFormatItem-yQ":"y년 Q분기","field-hour":"시","dateFormatItem-MMdd":"MM. dd","months-format-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyQ":"yy년 Q분기","timeFormat-full":"a h시 m분 s초 zzzz","field-day-relative+0":"오늘","field-day-relative+1":"내일","field-day-relative+2":"모레","dateFormatItem-H":"H시","months-standAlone-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"quarters-format-abbr":["1분기","2분기","3분기","4분기"],"quarters-standAlone-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"M월","days-standAlone-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"dateFormatItem-yMMMEEEEd":"y년 MMM d일 EEEE","dateFormatItem-yyMMM":"yy년 MMM","timeFormat-medium":"a h:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1분기","2분기","3분기","4분기"],"eraAbbr":["기원전","서기"],"field-minute":"분","field-dayperiod":"오전/오후","days-standAlone-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-d":"d일","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"어제","dateFormatItem-h":"a h시","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"그저께","dateFormatItem-MMMd":"MMM d일","dateFormatItem-EEEEd":"d일 EEEE","dateFormatItem-MEd":"M. d. (E)","dateTimeFormat-full":"{1} {0}","field-day":"일","days-format-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"field-zone":"시간대","dateFormatItem-yyyyMM":"yyyy. MM","dateFormatItem-y":"y년","months-standAlone-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"field-year-relative+-1":"지난해","field-month-relative+-1":"지난달","dateFormatItem-yyMM":"yy. M.","dateFormatItem-hm":"a h:mm","days-format-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-yMMMd":"y년 MMM d일","eraNames":["서력기원전","서력기원"],"days-format-narrow":["일","월","화","수","목","금","토"],"field-month":"월","days-standAlone-narrow":["일","월","화","수","목","금","토"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"오전","dateFormat-short":"yy. M. d.","field-second":"초","dateFormatItem-yMMMEd":"y년 MMM d일 (E)","field-month-relative+0":"이번 달","field-month-relative+1":"다음 달","dateFormatItem-Ed":"d일 (E)","field-week":"주","dateFormat-medium":"yyyy. M. d.","field-year-relative+0":"올해","field-week-relative+-1":"지난주","field-year-relative+1":"내년","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H시 m분 s초","dateFormatItem-hms":"a h:mm:ss","field-week-relative+0":"이번 주","field-week-relative+1":"다음 주"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ko/number.js b/lib/dojo/cldr/nls/ko/number.js
index 746274dad..25dc931e0 100644
--- a/lib/dojo/cldr/nls/ko/number.js
+++ b/lib/dojo/cldr/nls/ko/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ko/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/ko/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":".","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-long":"000조","decimalFormat-short":"000조"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nb/buddhist.js b/lib/dojo/cldr/nls/nb/buddhist.js
new file mode 100644
index 000000000..5a410d054
--- /dev/null
+++ b/lib/dojo/cldr/nls/nb/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/nb/buddhist",{"dateFormatItem-yM":"M y G","dateFormatItem-yQ":"Q y G","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd.MM","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-Gy":"y G","quarters-standAlone-abbr":["K1","K2","K3","K4"],"dateFormatItem-y":"y G","timeFormat-full":"'kl'. HH:mm:ss zzzz","months-standAlone-abbr":["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],"dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d. MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-yyMM":"MM.y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"p","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-yMd":"d.M.y G","quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-ms":"mm.ss","dayPeriods-format-narrow-am":"a","months-standAlone-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],"quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"dateFormatItem-M":"L","days-format-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yMMMd":"d. MMM y G","dateFormatItem-MEd":"E d.M","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-short":["sø.","ma.","ti.","on.","to.","fr.","lø."],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["sø.","ma.","ti.","on.","to.","fr.","lø."],"dayPeriods-format-abbr-pm":"p.m.","dateFormat-short":"d.M yyyy","dateFormatItem-yMMMEd":"E d. MMM y G","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"E d.M.y G","months-format-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"dayPeriods-format-abbr-am":"a.m.","days-format-short":["sø.","ma.","ti.","on.","to.","fr.","lø."],"dateFormatItem-d":"d.","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nb/currency.js b/lib/dojo/cldr/nls/nb/currency.js
index 5aef21785..0d46d7c31 100644
--- a/lib/dojo/cldr/nls/nb/currency.js
+++ b/lib/dojo/cldr/nls/nb/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/nb/currency",{"HKD_displayName":"Hongkong-dollar","CHF_displayName":"sveitsiske franc","CHF_symbol":"CHF","JPY_symbol":"JPY","CAD_displayName":"kanadiske dollar","CNY_displayName":"kinesiske yuan renminbi","USD_symbol":"USD","AUD_displayName":"australske dollar","JPY_displayName":"japanske yen","CAD_symbol":"CAD","USD_displayName":"amerikanske dollar","EUR_symbol":"EUR","CNY_symbol":"CNY","GBP_displayName":"britiske pund sterling","GBP_symbol":"GBP","AUD_symbol":"AUD","EUR_displayName":"euro"}); \ No newline at end of file
+define("dojo/cldr/nls/nb/currency",{"HKD_displayName":"Hongkong-dollar","CHF_displayName":"sveitsiske franc","CAD_displayName":"kanadiske dollar","CNY_displayName":"kinesiske yuan","AUD_displayName":"australske dollar","JPY_displayName":"japanske yen","USD_displayName":"amerikanske dollar","EUR_symbol":"€","GBP_displayName":"britiske pund sterling","GBP_symbol":"£","EUR_displayName":"euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nb/gregorian.js b/lib/dojo/cldr/nls/nb/gregorian.js
index a2366bb52..190f094f9 100644
--- a/lib/dojo/cldr/nls/nb/gregorian.js
+++ b/lib/dojo/cldr/nls/nb/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/nb/gregorian",{"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"ukedag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d.M.yyyy","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d. MMMM y","months-format-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"dateFormatItem-EEEd":"EEE d.","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d. MMMM y","dateFormatItem-Md":"d.M.","field-era":"tidsalder","dateFormatItem-yM":"M y","months-standAlone-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"timeFormat-long":"HH:mm:ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"time","dateFormatItem-MMdd":"dd.MM","months-format-abbr":["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"'kl'. HH:mm:ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgen","field-day-relative+2":"i overmorgen","field-day-relative+3":"i overovermorgen","months-standAlone-abbr":["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-M":"L","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minutt","field-dayperiod":"AM/PM","days-standAlone-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"i går","field-day-relative+-2":"i forgårs","field-day-relative+-3":"i forforgårs","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M","field-day":"dag","days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"field-zone":"sone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"eraNames":["f.Kr.","e.Kr."],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"måned","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd.MM.yy","field-second":"sekund","dateFormatItem-yMMMEd":"EEE d. MMM y","field-week":"uke","dateFormat-medium":"d. MMM y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"}); \ No newline at end of file
+define("dojo/cldr/nls/nb/gregorian",{"days-standAlone-short":["sø.","ma.","ti.","on.","to.","fr.","lø."],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"ukedag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E d.MM.y","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["f.Kr.","e.Kr."],"days-format-short":["sø.","ma.","ti.","on.","to.","fr.","lø."],"dateFormat-long":"d. MMMM y","months-format-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"dateTimeFormat-medium":"{0} {1}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d. MMMM y","dateFormatItem-Md":"d.M.","dayPeriods-format-abbr-am":"a.m.","dateFormatItem-yMd":"d.M.yyyy","dateFormatItem-yM":"M y","field-era":"tidsalder","months-standAlone-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"timeFormat-long":"HH:mm:ss z","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","field-year":"år","dateFormatItem-yyyyMMMM":"MMMM y","dateFormatItem-MMdd":"d.M.","field-hour":"time","months-format-abbr":["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"'kl'. HH:mm:ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgen","field-day-relative+2":"i overmorgen","dateFormatItem-H":"HH","months-standAlone-abbr":["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-M":"L","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minutt","field-dayperiod":"AM/PM","days-standAlone-abbr":["sø.","ma.","ti.","on.","to.","fr.","lø."],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm.ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"i går","dateFormatItem-h":"h a","dateTimeFormat-long":"{0} {1}","dayPeriods-format-narrow-am":"a","field-day-relative+-2":"i forgårs","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M","dateTimeFormat-full":"{0} {1}","field-day":"dag","days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"field-zone":"sone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-year-relative+-1":"I fjor","field-month-relative+-1":"Sist måned","dateFormatItem-yyMM":"MM.yy","dateFormatItem-hm":"h:mm a","dayPeriods-format-abbr-pm":"p.m.","days-format-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"dateFormatItem-yMMMd":"d. MMM y","eraNames":["f.Kr.","e.Kr."],"days-format-narrow":["S","M","T","O","T","F","L"],"days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"LLL","field-month":"måned","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd.MM.yy","field-second":"sekund","dateFormatItem-yMMMEd":"E d. MMM y","field-month-relative+0":"Denne måneden","field-month-relative+1":"Neste måned","dateFormatItem-Ed":"E d.","field-week":"uke","dateFormat-medium":"d. MMM y","field-year-relative+0":"Dette året","field-week-relative+-1":"Sist uke","field-year-relative+1":"Neste år","dayPeriods-format-narrow-pm":"p","dateTimeFormat-short":"{0} {1}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"Denne uken","field-week-relative+1":"Neste uke"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nb/islamic.js b/lib/dojo/cldr/nls/nb/islamic.js
new file mode 100644
index 000000000..d4d4903b8
--- /dev/null
+++ b/lib/dojo/cldr/nls/nb/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/nb/islamic",{"dateFormatItem-yM":"M y","dateFormatItem-yyyyMMMEd":"E d. MMM y G","dateFormatItem-yQ":"Q yyyy","dateFormatItem-MMMEd":"E d. MMM","dateTimeFormat-full":"{0} {1}","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd.MM","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-MMM":"LLL","dateTimeFormat-short":"{0} {1}","dateTimeFormat-medium":"{0} {1}","quarters-standAlone-abbr":["K1","K2","K3","K4"],"timeFormat-full":"'kl'. HH:mm:ss zzzz","dateFormatItem-yyyy":"y G","dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d. MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-yyMM":"MM.y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"p","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-yMd":"d.M.yyyy","quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-ms":"mm.ss","dayPeriods-format-narrow-am":"a","dateTimeFormat-long":"{0} {1}","dateFormatItem-yyyyMd":"d.M.y G","dateFormatItem-yyyyMMMd":"d. MMM y G","dateFormatItem-yyyyMEd":"E d.M.y G","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q y G","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"dateFormatItem-M":"L","days-format-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yMMMd":"d. MMM y","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E d.M","days-standAlone-short":["sø.","ma.","ti.","on.","to.","fr.","lø."],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["sø.","ma.","ti.","on.","to.","fr.","lø."],"dayPeriods-format-abbr-pm":"p.m.","dateFormat-short":"d.M y G","dateFormatItem-yyyyM":"M y G","dateFormatItem-yMMMEd":"E d. MMM y","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"E d.MM.y","dayPeriods-format-abbr-am":"a.m.","days-format-short":["sø.","ma.","ti.","on.","to.","fr.","lø."],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d.","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nb/number.js b/lib/dojo/cldr/nls/nb/number.js
index d2db253c0..5e75f95d0 100644
--- a/lib/dojo/cldr/nls/nb/number.js
+++ b/lib/dojo/cldr/nls/nb/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/nb/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/nb/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","decimalFormat-long":"000 billioner","decimalFormat-short":"000 bill"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nl/buddhist.js b/lib/dojo/cldr/nls/nl/buddhist.js
new file mode 100644
index 000000000..71e69be0d
--- /dev/null
+++ b/lib/dojo/cldr/nls/nl/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/nl/buddhist",{"dateFormatItem-yM":"M-y G","dateFormatItem-yQ":"Q y G","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd-MM","days-standAlone-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-Gy":"y G","quarters-standAlone-abbr":["K1","K2","K3","K4"],"dateFormatItem-y":"y G","months-standAlone-abbr":["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["Z","M","D","W","D","V","Z"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d-MM","dateFormatItem-yyMM":"MM-yy G","dateFormat-medium":"d MMM y G","dateFormatItem-yyMMM":"MMM yy G","dateFormatItem-yyQQQQ":"QQQQ yy G","dateFormatItem-yMd":"d-M-y G","quarters-standAlone-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"dateFormatItem-ms":"mm:ss","months-standAlone-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q yy G","months-format-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["zo","ma","di","wo","do","vr","za"],"days-format-narrow":["Z","M","D","W","D","V","Z"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMM y G","dateFormatItem-MEd":"E d-M","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-short":["zo","ma","di","wo","do","vr","za"],"days-standAlone-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormat-short":"dd-MM-yy G","dateFormatItem-yMMMEd":"E d MMM y G","dateFormat-full":"EEEE d MMMM y G","dateFormatItem-Md":"d-M","dateFormatItem-yMEd":"E d-M-y G","months-format-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"days-format-short":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-d":"d","quarters-format-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"days-format-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nl/currency.js b/lib/dojo/cldr/nls/nl/currency.js
index 231c697f8..4eea2bf0e 100644
--- a/lib/dojo/cldr/nls/nl/currency.js
+++ b/lib/dojo/cldr/nls/nl/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/nl/currency",{"HKD_displayName":"Hongkongse dollar","CHF_displayName":"Zwitserse franc","CAD_displayName":"Canadese dollar","CNY_displayName":"Chinese yuan renminbi","AUD_displayName":"Australische dollar","JPY_displayName":"Japanse yen","USD_displayName":"Amerikaanse dollar","GBP_displayName":"Brits pond sterling","EUR_displayName":"Euro"}); \ No newline at end of file
+define("dojo/cldr/nls/nl/currency",{"HKD_displayName":"Hongkongse dollar","CHF_displayName":"Zwitserse frank","JPY_symbol":"JP¥","CAD_displayName":"Canadese dollar","HKD_symbol":"HK$","CNY_displayName":"Chinese yuan renminbi","USD_symbol":"US$","AUD_displayName":"Australische dollar","JPY_displayName":"Japanse yen","CAD_symbol":"C$","USD_displayName":"Amerikaanse dollar","EUR_symbol":"€","CNY_symbol":"CN¥","GBP_displayName":"Brits pond sterling","AUD_symbol":"AU $","EUR_displayName":"Euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nl/gregorian.js b/lib/dojo/cldr/nls/nl/gregorian.js
index cb40132b0..eb28117e3 100644
--- a/lib/dojo/cldr/nls/nl/gregorian.js
+++ b/lib/dojo/cldr/nls/nl/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/nl/gregorian",{"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Dag van de week","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d-M-y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["v. Chr.","n. Chr."],"dateFormat-long":"d MMMM y","months-format-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d-M","field-era":"Tijdperk","dateFormatItem-yM":"M-y","months-standAlone-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"timeFormat-short":"HH:mm","quarters-format-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"timeFormat-long":"HH:mm:ss z","field-year":"Jaar","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Uur","dateFormatItem-MMdd":"dd-MM","months-format-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"vandaag","field-day-relative+1":"morgen","field-day-relative+2":"overmorgen","field-day-relative+3":"overovermorgen","months-standAlone-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"dateFormatItem-M":"L","days-standAlone-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["v. Chr.","n. Chr."],"field-minute":"Minuut","field-dayperiod":"AM/PM","days-standAlone-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"gisteren","field-day-relative+-2":"eergisteren","field-day-relative+-3":"eereergisteren","dateFormatItem-MMMd":"d-MMM","dateFormatItem-MEd":"E d-M","field-day":"Dag","days-format-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"field-zone":"Zone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM-yy","days-format-abbr":["zo","ma","di","wo","do","vr","za"],"eraNames":["Voor Christus","na Christus"],"days-format-narrow":["Z","M","D","W","D","V","Z"],"field-month":"Maand","days-standAlone-narrow":["Z","M","D","W","D","V","Z"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd-MM-yy","dateFormatItem-MMd":"d-MM","field-second":"Seconde","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormatItem-Ed":"E d","field-week":"Week","dateFormat-medium":"d MMM y"}); \ No newline at end of file
+define("dojo/cldr/nls/nl/gregorian",{"days-standAlone-short":["zo","ma","di","wo","do","vr","za"],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Dag van de week","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E d-M-y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["v.Chr.","n.Chr."],"days-format-short":["zo","ma","di","wo","do","vr","za"],"dateFormat-long":"d MMMM y","months-format-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d-M","dayPeriods-format-wide-noon":"12 uur 's middags","dateFormatItem-yMd":"d-M-y","field-era":"Tijdperk","dateFormatItem-yM":"M-y","months-standAlone-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"timeFormat-short":"HH:mm","quarters-format-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"timeFormat-long":"HH:mm:ss z","field-year":"Jaar","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Uur","dateFormatItem-MMdd":"dd-MM","months-format-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Vandaag","field-day-relative+1":"Morgen","field-day-relative+2":"Overmorgen","dateFormatItem-H":"HH","months-standAlone-abbr":["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"dateFormatItem-M":"L","days-standAlone-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"dateFormatItem-MMMMd":"d MMMM","dayPeriods-format-abbr-noon":"12 uur 's middags","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["v.Chr.","n.Chr."],"field-minute":"Minuut","field-dayperiod":"AM/PM","days-standAlone-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Gisteren","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"Eergisteren","dateFormatItem-MMMd":"d-MMM","dateFormatItem-MEd":"E d-M","dateTimeFormat-full":"{1} {0}","field-day":"Dag","days-format-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"field-zone":"Zone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-year-relative+-1":"Vorig jaar","field-month-relative+-1":"Vorige maand","dateFormatItem-yyMM":"MM-yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-yMMMd":"d MMM y","eraNames":["Voor Christus","na Christus"],"days-format-narrow":["Z","M","D","W","D","V","Z"],"days-standAlone-narrow":["Z","M","D","W","D","V","Z"],"dateFormatItem-MMM":"LLL","field-month":"Maand","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd-MM-yy","dateFormatItem-MMd":"d-MM","dayPeriods-format-narrow-noon":"n","field-second":"Seconde","dateFormatItem-yMMMEd":"E d MMM y","field-month-relative+0":"Deze maand","field-month-relative+1":"Volgende maand","dateFormatItem-Ed":"E d","field-week":"week","dateFormat-medium":"d MMM y","field-year-relative+0":"Dit jaar","field-week-relative+-1":"Vorige week","field-year-relative+1":"Volgend jaar","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"Deze week","field-week-relative+1":"Volgende week"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nl/hebrew.js b/lib/dojo/cldr/nls/nl/hebrew.js
new file mode 100644
index 000000000..2a71246f4
--- /dev/null
+++ b/lib/dojo/cldr/nls/nl/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/nl/hebrew",{"quarters-standAlone-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"quarters-format-abbr":["K1","K2","K3","K4"],"dateFormatItem-yMd":"d-M-y","dateFormat-medium":"d MMM y","dateFormatItem-MMMEd":"E d MMM","quarters-standAlone-abbr":["K1","K2","K3","K4"],"dateFormatItem-MEd":"E d-M","dateFormatItem-yMEd":"E d-M-y","dateFormatItem-yMMMd":"d MMM y","days-format-short":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-Md":"d-M","months-standAlone-wide":["Tisjrie","Chesjwan","Kislev","Tevet","Sjevat","Adar A","Adar","Nisan","Ijar","Sivan","Tammoez","Av","Elloel"],"months-format-wide-leap":"Adar B","days-standAlone-narrow":["Z","M","D","W","D","V","Z"],"months-standAlone-abbr":["Tisjrie","Chesjwan","Kislev","Tevet","Sjevat","Adar A","Adar","Nisan","Ijar","Sivan","Tammoez","Av","Elloel"],"dateFormatItem-yQQQ":"QQQ y","days-standAlone-short":["zo","ma","di","wo","do","vr","za"],"dateFormat-long":"d MMMM y","dateFormat-short":"dd-MM-yy","dateFormatItem-yMMMEd":"E d MMM y","months-format-wide":["Tisjrie","Chesjwan","Kislev","Tevet","Sjevat","Adar A","Adar","Nisan","Ijar","Sivan","Tammoez","Av","Elloel"],"days-standAlone-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"days-format-narrow":["Z","M","D","W","D","V","Z"],"dateFormatItem-yM":"M-y","months-format-abbr":["Tisjrie","Chesjwan","Kislev","Tevet","Sjevat","Adar A","Adar","Nisan","Ijar","Sivan","Tammoez","Av","Elloel"],"days-standAlone-abbr":["zo","ma","di","wo","do","vr","za"],"days-format-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"dateFormatItem-yQ":"Q yyyy","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"dateFormat-full":"EEEE d MMMM y","dateFormatItem-MMMd":"d-MMM","days-format-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-Ed":"E d"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nl/islamic.js b/lib/dojo/cldr/nls/nl/islamic.js
new file mode 100644
index 000000000..4a5b80bb1
--- /dev/null
+++ b/lib/dojo/cldr/nls/nl/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/nl/islamic",{"dateFormatItem-yM":"M-y","dateFormatItem-yyyyMMMEd":"E d MMM y G","dateFormatItem-yQ":"Q yyyy","eraNames":["Saʻna Hizjria"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd-MM","days-standAlone-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-abbr":["K1","K2","K3","K4"],"dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Moeh.","Saf.","Rab. I","Rab. II","Joem. I","Joem. II","Raj.","Sja.","Ram.","Sjaw.","Doe al k.","Doe al h."],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["Z","M","D","W","D","V","Z"],"eraAbbr":["Saʻna Hizjria"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d-MM","dateFormatItem-yyMM":"MM-yy G","dateFormat-medium":"d MMM y G","dateFormatItem-yyMMM":"MMM yy G","dateFormatItem-yyQQQQ":"QQQQ yy G","dateFormatItem-yMd":"d-M-y","quarters-standAlone-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"dateFormatItem-ms":"mm:ss","months-standAlone-wide":["Moeharram","Safar","Rabiʻa al awal","Rabiʻa al thani","Joemadʻal awal","Joemadʻal thani","Rajab","Sjaʻaban","Ramadan","Sjawal","Doe al kaʻaba","Doe al hizja"],"dateFormatItem-yyyyMd":"d-M-y G","dateFormatItem-yyyyMMMd":"d MMM y G","dateFormatItem-yyyyMEd":"E d-M-y G","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q yy G","months-format-abbr":["Moeh.","Saf.","Rab. I","Rab. II","Joem. I","Joem. II","Raj.","Sja.","Ram.","Sjaw.","Doe al k.","Doe al h."],"dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-M":"L","days-format-narrow":["Z","M","D","W","D","V","Z"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E d-M","days-standAlone-short":["zo","ma","di","wo","do","vr","za"],"days-standAlone-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormat-short":"dd-MM-yy G","dateFormatItem-yyyyM":"M-y G","dateFormatItem-yMMMEd":"E d MMM y","dateFormat-full":"EEEE d MMMM y G","dateFormatItem-Md":"d-M","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"E d-M-y","months-format-wide":["Moeharram","Safar","Rabiʻa al awal","Rabiʻa al thani","Joemadʻal awal","Joemadʻal thani","Rajab","Sjaʻaban","Ramadan","Sjawal","Doe al kaʻaba","Doe al hizja"],"days-format-short":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"eraNarrow":["Saʻna Hizjria"],"days-format-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/nl/number.js b/lib/dojo/cldr/nls/nl/number.js
index a3a148975..a0a8ecfa9 100644
--- a/lib/dojo/cldr/nls/nl/number.js
+++ b/lib/dojo/cldr/nls/nl/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/nl/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/nl/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","decimalFormat-long":"000 biljoen","decimalFormat-short":"000 bln'.'"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/number.js b/lib/dojo/cldr/nls/number.js
index 3bd12adbc..8a413b468 100644
--- a/lib/dojo/cldr/nls/number.js
+++ b/lib/dojo/cldr/nls/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/number",{root:{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤ #,##0.00","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"ar":true,"ca":true,"cs":true,"da":true,"de":true,"el":true,"en":true,"en-au":true,"en-gb":true,"es":true,"fi":true,"fr":true,"fr-ch":true,"he":true,"hu":true,"it":true,"ja":true,"ko":true,"nb":true,"nl":true,"pl":true,"pt":true,"pt-pt":true,"ro":true,"ru":true,"sk":true,"sl":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true,"zh-hk":true}); \ No newline at end of file
+define("dojo/cldr/nls/number",{root:{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤ #,##0.00","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000T","decimalFormat":"#,##0.###","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"ar":true,"ca":true,"cs":true,"da":true,"de":true,"el":true,"en":true,"en-gb":true,"es":true,"fi":true,"fr":true,"fr-ch":true,"he":true,"hu":true,"it":true,"ja":true,"ko":true,"nb":true,"nl":true,"pl":true,"pt":true,"pt-pt":true,"ro":true,"ru":true,"sk":true,"sl":true,"sv":true,"th":true,"tr":true,"zh":true,"zh-hant":true,"zh-hk":true,"zh-tw":true}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pl/buddhist.js b/lib/dojo/cldr/nls/pl/buddhist.js
new file mode 100644
index 000000000..cb7e2b7b5
--- /dev/null
+++ b/lib/dojo/cldr/nls/pl/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/pl/buddhist",{"dateFormatItem-yM":"MM.yyyy G","dateFormatItem-yQ":"G y Q","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"G y QQQ","dateFormatItem-MMdd":"d.MM","days-standAlone-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"dateFormatItem-Gy":"y G","quarters-standAlone-abbr":["1 kw.","2 kw.","3 kw.","4 kw."],"dateFormatItem-y":"y G","months-standAlone-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"dateFormatItem-Ed":"E, d","dateFormatItem-yMMM":"LLL y G","days-standAlone-narrow":["N","P","W","Ś","C","P","S"],"dateFormatItem-yyyyMM":"MM.yyyy G","dateFormatItem-yyyyMMMM":"LLLL y G","dateFormat-long":"d MMMM, y G","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d MMM y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"LLL y G","dateFormatItem-yMd":"d.MM.yyyy G","quarters-standAlone-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"dateFormatItem-yMMMM":"LLLL y G","dateFormatItem-ms":"mm:ss","quarters-standAlone-narrow":["K1","K2","K3","K4"],"months-standAlone-wide":["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],"dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormatItem-M":"L","days-format-narrow":["N","P","W","Ś","C","P","S"],"dateFormatItem-yMMMd":"d MMM y G","dateFormatItem-MEd":"E, d.MM","months-format-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"days-standAlone-short":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormatItem-hm":"hh:mm a","days-standAlone-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormat-short":"dd.MM.yyyy G","dateFormatItem-yMMMEd":"E, d MMM y G","dateFormat-full":"EEEE, d MMMM, y G","dateFormatItem-Md":"d.MM","dateFormatItem-yMEd":"E, d.MM.yyyy G","months-format-wide":["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],"days-format-short":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormatItem-d":"d","quarters-format-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"days-format-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateFormatItem-h":"hh a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pl/currency.js b/lib/dojo/cldr/nls/pl/currency.js
index 43991212f..db65e49b3 100644
--- a/lib/dojo/cldr/nls/pl/currency.js
+++ b/lib/dojo/cldr/nls/pl/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/pl/currency",{"HKD_displayName":"dolar hongkoński","CHF_displayName":"frank szwajcarski","CAD_displayName":"dolar kanadyjski","CNY_displayName":"juan renminbi","AUD_displayName":"dolar australijski","JPY_displayName":"jen japoński","USD_displayName":"dolar amerykański ","GBP_displayName":"funt szterling","EUR_displayName":"euro"}); \ No newline at end of file
+define("dojo/cldr/nls/pl/currency",{"HKD_displayName":"dolar hongkoński","CHF_displayName":"frank szwajcarski","CAD_displayName":"dolar kanadyjski","CNY_displayName":"juan renminbi","AUD_displayName":"dolar australijski","JPY_displayName":"jen japoński","USD_displayName":"dolar amerykański ","GBP_displayName":"funt szterling","AUD_symbol":"A$","EUR_displayName":"euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pl/gregorian.js b/lib/dojo/cldr/nls/pl/gregorian.js
index 32e4e0fd5..e0d1143ac 100644
--- a/lib/dojo/cldr/nls/pl/gregorian.js
+++ b/lib/dojo/cldr/nls/pl/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/pl/gregorian",{"months-format-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"field-weekday":"Dzień tygodnia","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d.MM.yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["p.n.e.","n.e."],"dayPeriods-format-wide-earlyMorning":"nad ranem","dayPeriods-format-wide-morning":"rano","dateFormat-long":"d MMMM y","months-format-wide":["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],"dayPeriods-format-wide-evening":"wieczorem","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d.MM","dayPeriods-format-wide-noon":"w południe","field-era":"Era","dateFormatItem-yM":"MM.yyyy","months-standAlone-wide":["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],"timeFormat-short":"HH:mm","quarters-format-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"timeFormat-long":"HH:mm:ss z","field-year":"Rok","dateFormatItem-yQ":"yyyy Q","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Godzina","dateFormatItem-MMdd":"d.MM","months-format-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Dzisiaj","field-day-relative+1":"Jutro","field-day-relative+2":"Pojutrze","field-day-relative+3":"Za trzy dni","months-standAlone-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"dateFormatItem-M":"L","days-standAlone-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1 kw.","2 kw.","3 kw.","4 kw."],"eraAbbr":["p.n.e.","n.e."],"field-minute":"Minuta","field-dayperiod":"Dayperiod","days-standAlone-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dayPeriods-format-wide-night":"w nocy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Wczoraj","dateFormatItem-h":"hh a","field-day-relative+-2":"Przedwczoraj","field-day-relative+-3":"Trzy dni temu","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d.MM","dayPeriods-format-wide-lateMorning":"przed południem","dateFormatItem-yMMMM":"LLLL y","field-day":"Dzień","days-format-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"field-zone":"Strefa","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"dateFormatItem-hm":"hh:mm a","days-format-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"eraNames":["p.n.e.","n.e."],"days-format-narrow":["N","P","W","Ś","C","P","S"],"field-month":"Miesiąc","days-standAlone-narrow":["N","P","W","Ś","C","P","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd.MM.yyyy","dayPeriods-format-wide-afternoon":"po południu","field-second":"Sekunda","dateFormatItem-yMMMEd":"EEE, d MMM y","dateFormatItem-Ed":"E, d","field-week":"Tydzień","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a"}); \ No newline at end of file
+define("dojo/cldr/nls/pl/gregorian",{"days-standAlone-short":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"months-format-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"quarters-standAlone-narrow":["K1","K2","K3","K4"],"field-weekday":"Dzień tygodnia","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E, d.MM.yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["p.n.e.","n.e."],"dayPeriods-format-wide-earlyMorning":"nad ranem","dayPeriods-format-wide-morning":"rano","days-format-short":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormat-long":"d MMMM y","months-format-wide":["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],"dayPeriods-format-wide-evening":"wieczorem","dateTimeFormat-medium":"{1}, {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d.MM","dayPeriods-format-wide-noon":"w południe","dateFormatItem-yMd":"d.MM.yyyy","field-era":"Era","dateFormatItem-yM":"MM.yyyy","months-standAlone-wide":["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],"timeFormat-short":"HH:mm","quarters-format-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"timeFormat-long":"HH:mm:ss z","field-year":"Rok","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"QQQ y","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Godzina","dateFormatItem-MMdd":"d.MM","months-format-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"dateFormatItem-yyQ":"QQQ yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Dzisiaj","field-day-relative+1":"Jutro","field-day-relative+2":"Pojutrze","dateFormatItem-H":"HH","months-standAlone-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"dateFormatItem-M":"L","days-standAlone-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"LLLL yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1 kw.","2 kw.","3 kw.","4 kw."],"eraAbbr":["p.n.e.","n.e."],"field-minute":"Minuta","field-dayperiod":"Dayperiod","days-standAlone-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dayPeriods-format-wide-night":"w nocy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Wczoraj","dateFormatItem-h":"hh a","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"Przedwczoraj","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d.MM","dayPeriods-format-wide-lateMorning":"przed południem","dateTimeFormat-full":"{1} {0}","dateFormatItem-yMMMM":"LLLL y","field-day":"Dzień","days-format-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"field-zone":"Strefa","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"field-year-relative+-1":"Zeszły rok","field-month-relative+-1":"Zeszły miesiąc","dateFormatItem-hm":"hh:mm a","days-format-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormatItem-yMMMd":"d MMM y","eraNames":["p.n.e.","n.e."],"days-format-narrow":["N","P","W","Ś","C","P","S"],"days-standAlone-narrow":["N","P","W","Ś","C","P","S"],"dateFormatItem-MMM":"LLL","field-month":"Miesiąc","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd.MM.yyyy","dayPeriods-format-wide-afternoon":"po południu","field-second":"Sekunda","dateFormatItem-yMMMEd":"E, d MMM y","field-month-relative+0":"Bieżący miesiąc","field-month-relative+1":"Przyszły miesiąc","dateFormatItem-Ed":"E, d","field-week":"Tydzień","dateFormat-medium":"d MMM y","field-year-relative+0":"Bieżący rok","field-week-relative+-1":"Zeszły tydzień","field-year-relative+1":"Przyszły rok","dateTimeFormat-short":"{1}, {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","field-week-relative+0":"Bieżący tydzień","field-week-relative+1":"Przyszły tydzień"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pl/hebrew.js b/lib/dojo/cldr/nls/pl/hebrew.js
new file mode 100644
index 000000000..02d3909cc
--- /dev/null
+++ b/lib/dojo/cldr/nls/pl/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/pl/hebrew",{"dateFormatItem-yM":"MM.yyyy","dateFormatItem-yQ":"QQQ y","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateTimeFormat-short":"{1}, {0}","dateTimeFormat-medium":"{1}, {0}","months-format-abbr-leap":"Adar II","quarters-standAlone-abbr":["1 kw.","2 kw.","3 kw.","4 kw."],"months-standAlone-abbr":["Tiszri","Cheszwan","Kislew","Tewet","Szwat","Adar I","Adar","Nisan","Ijar","Siwan","Tamuz","Aw","Elul"],"dateFormatItem-Ed":"E, d","dateFormatItem-yMMM":"LLL y","days-standAlone-narrow":["N","P","W","Ś","C","P","S"],"dateFormat-long":"d MMMM y","dateFormat-medium":"d MMM y","dateFormatItem-yMd":"d.MM.yyyy","quarters-standAlone-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"quarters-standAlone-narrow":["K1","K2","K3","K4"],"months-standAlone-wide":["Tiszri","Cheszwan","Kislew","Tewet","Szwat","Adar I","Adar","Nisan","Ijar","Siwan","Tamuz","Aw","Elul"],"dateFormatItem-MMMd":"d MMM","months-format-abbr":["Tiszri","Cheszwan","Kislew","Tewet","Szwat","Adar I","Adar","Nisan","Ijar","Siwan","Tamuz","Aw","Elul"],"quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"days-format-narrow":["N","P","W","Ś","C","P","S"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, d.MM","days-standAlone-short":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormatItem-hm":"hh:mm a","days-standAlone-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"months-standAlone-wide-leap":"Adar II","dateFormat-short":"dd.MM.yyyy","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d.MM","dateFormatItem-yMEd":"E, d.MM.yyyy","months-format-wide":["Tiszri","Cheszwan","Kislew","Tewet","Szwat","Adar I","Adar","Nisan","Ijar","Siwan","Tamuz","Aw","Elul"],"days-format-short":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"quarters-format-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"months-format-wide-leap":"Adar II","days-format-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateFormatItem-h":"hh a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pl/islamic.js b/lib/dojo/cldr/nls/pl/islamic.js
new file mode 100644
index 000000000..cfd01dd67
--- /dev/null
+++ b/lib/dojo/cldr/nls/pl/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/pl/islamic",{"dateFormatItem-yM":"MM.yyyy","dateFormatItem-yyyyMMMEd":"E, d MMM y G","dateFormatItem-yQ":"yyyy Q","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-MMdd":"d.MM","days-standAlone-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateFormatItem-MMM":"LLL","dateTimeFormat-short":"{1}, {0}","dateTimeFormat-medium":"{1}, {0}","quarters-standAlone-abbr":["1 kw.","2 kw.","3 kw.","4 kw."],"dateFormatItem-y":"y","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Dżu. I","Dżu. II","Ra.","Sza.","Ram.","Szaw.","Zu al-k.","Zu al-h."],"dateFormatItem-Ed":"E, d","dateFormatItem-yMMM":"LLL y","days-standAlone-narrow":["N","P","W","Ś","C","P","S"],"dateFormatItem-yyyyMM":"MM.yyyy G","dateFormatItem-yyyyMMMM":"LLLL y G","dateFormat-long":"d MMMM, y G","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d MMM y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"LLL yy G","dateFormatItem-yMd":"d.MM.yyyy","quarters-standAlone-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"dateFormatItem-yMMMM":"LLLL y","dateFormatItem-ms":"mm:ss","quarters-standAlone-narrow":["K1","K2","K3","K4"],"months-standAlone-wide":["Muharram","Safar","Rabi I","Rabi II","Dżumada I","Dżumada II","Radżab","Szaban","Ramadan","Szawwal","Zu al-kada","Zu al-hidżdża"],"dateFormatItem-yyyyMd":"dd.MM.yyyy G","dateFormatItem-yyyyMMMd":"d MMM y G","dateFormatItem-yyyyMEd":"E, dd.MM.yyyy G","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Dżu. I","Dżu. II","Ra.","Sza.","Ram.","Szaw.","Zu al-k.","Zu al-h."],"dateFormatItem-H":"HH","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormatItem-M":"L","days-format-narrow":["N","P","W","Ś","C","P","S"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, d.MM","dateFormatItem-yyyyQQQ":"G y QQQ","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"days-standAlone-short":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormatItem-hm":"hh:mm a","days-standAlone-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormat-short":"dd.MM.yyyy G","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM, y G","dateFormatItem-Md":"d.MM","dateFormatItem-yMEd":"E, d.MM.yyyy","dateFormatItem-yyyyQ":"G y Q","months-format-wide":["Muharram","Safar","Rabi I","Rabi II","Dżumada I","Dżumada II","Radżab","Szaban","Ramadan","Szawwal","Zu al-kada","Zu al-hidżdża"],"days-format-short":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dateFormatItem-d":"d","quarters-format-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"days-format-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateFormatItem-h":"hh a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pl/number.js b/lib/dojo/cldr/nls/pl/number.js
index 066ee7cbd..b1f5da3dc 100644
--- a/lib/dojo/cldr/nls/pl/number.js
+++ b/lib/dojo/cldr/nls/pl/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/pl/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/pl/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤;(#,##0.00 ¤)","plusSign":"+","decimalFormat-long":"000 biliona","decimalFormat-short":"000 bln"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt-pt/buddhist.js b/lib/dojo/cldr/nls/pt-pt/buddhist.js
new file mode 100644
index 000000000..1e85675be
--- /dev/null
+++ b/lib/dojo/cldr/nls/pt-pt/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/pt-pt/buddhist",{"dateFormatItem-yM":"MM/yyyy","dateFormatItem-yQ":"QQQ 'de' y G","dateFormatItem-MMMEd":"E, d/MM","dateFormatItem-yQQQ":"QQQ 'de' y G","days-standAlone-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-y":"y","months-standAlone-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"dateFormatItem-yMMM":"MM/y","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-yyyyMM":"MM/yyyy","dateFormat-long":"d 'de' MMMM 'de' y","dateFormatItem-Hm":"HH:mm","dateFormatItem-yyMM":"MM/yy","dateFormat-medium":"dd/MM/yyyy","dayPeriods-format-narrow-pm":"p.m.","dateFormatItem-yyMMM":"MM/yy","dateFormatItem-yMd":"dd/MM/yyyy","quarters-standAlone-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"a.m.","dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-yyMMMd":"d/MM/yy","months-standAlone-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"dateFormatItem-MMMd":"d/MM","dateFormatItem-HHmm":"HH:mm","dateFormatItem-yyMMMEd":"E, d/MM/yy","dateFormatItem-yyQ":"QQQ 'de' yy G","months-format-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"days-format-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-yMMMd":"d/MM/y","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-short":["dom","seg","ter","qua","qui","sex","sáb"],"days-standAlone-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dayPeriods-format-abbr-pm":"p.m.","dateFormat-short":"d/M/y G","dateFormatItem-yMMMEd":"E, d/MM/y","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dateFormatItem-yMEd":"E, dd/MM/yyyy","months-format-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"dayPeriods-format-abbr-am":"a.m.","days-format-short":["Do","Sg","Te","Qu","Qi","Sx","Sb"],"dateFormatItem-yyyyMMM":"MMM 'de' y","quarters-format-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"days-format-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt-pt/currency.js b/lib/dojo/cldr/nls/pt-pt/currency.js
new file mode 100644
index 000000000..f45942a56
--- /dev/null
+++ b/lib/dojo/cldr/nls/pt-pt/currency.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/pt-pt/currency",{"CAD_displayName":"Dólar canadiano","USD_displayName":"Dólar dos Estados Unidos"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt-pt/gregorian.js b/lib/dojo/cldr/nls/pt-pt/gregorian.js
index 2668c22a4..73cc9fab3 100644
--- a/lib/dojo/cldr/nls/pt-pt/gregorian.js
+++ b/lib/dojo/cldr/nls/pt-pt/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/pt-pt/gregorian",{"quarters-standAlone-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"quarters-format-abbr":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dayPeriods-standAlone-wide-am":"a.m.","dateFormat-medium":"d 'de' MMM 'de' yyyy","quarters-standAlone-abbr":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dateFormatItem-Hm":"HH:mm","dayPeriods-standAlone-abbr-pm":"p.m.","dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-hm":"h:mm a","months-standAlone-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"dayPeriods-standAlone-abbr-am":"a.m.","dayPeriods-format-wide-pm":"Depois do meio-dia","months-standAlone-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"dateFormatItem-yQQQ":"QQQ 'de' y","dayPeriods-format-wide-am":"Antes do meio-dia","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-abbr-pm":"p.m.","dateFormatItem-yyQ":"QQQ 'de' yy","dateFormatItem-ms":"mm:ss","dayPeriods-format-abbr-am":"a.m.","months-format-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"days-standAlone-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dateFormatItem-HHmm":"HH:mm","months-format-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"days-standAlone-abbr":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"days-format-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQ":"QQQ 'de' yyyy","quarters-format-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dayPeriods-standAlone-wide-pm":"p.m.","days-format-abbr":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"]}); \ No newline at end of file
+define("dojo/cldr/nls/pt-pt/gregorian",{"dateFormatItem-yM":"MM/yyyy","dateFormatItem-yQ":"QQQ 'de' yyyy","dayPeriods-format-wide-pm":"PM","dayPeriods-standAlone-abbr-pm":"p.m.","dateFormatItem-MMMEd":"E, d/MM","dateTimeFormat-full":"{1} às {0}","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ 'de' y","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dateFormatItem-MMM":"LLL","dateTimeFormat-short":"{1}, {0}","dayPeriods-format-wide-am":"AM","dateTimeFormat-medium":"{1}, {0}","dayPeriods-standAlone-abbr-am":"a.m.","quarters-standAlone-abbr":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dateFormatItem-y":"y","months-standAlone-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"dateFormatItem-Ed":"E, d","dayPeriods-standAlone-wide-pm":"p.m.","dateFormatItem-yMMM":"MM/y","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-yMMMMEd":"E, d 'de' MMMM 'de' y","field-zone":"Fuso horário","dateFormatItem-Hm":"HH:mm","dateFormatItem-yyMM":"MM/yy","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-standAlone-wide-am":"a.m.","dayPeriods-format-narrow-pm":"p.m.","dateFormatItem-yyMMM":"MM/yy","dateFormatItem-yMd":"dd/MM/yyyy","quarters-standAlone-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dateFormatItem-yMMMM":"MMMM 'de' y","dateFormatItem-yMMMMd":"d 'de' MMMM 'de' y","dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"a.m.","dateTimeFormat-long":"{1} às {0}","dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-yyMMMd":"d/MM/yy","months-standAlone-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"dateFormatItem-MMMMEd":"E, d 'de' MMMM","dateFormatItem-MMMd":"d/MM","dateFormatItem-HHmm":"HH:mm","dateFormatItem-yyMMMEd":"E, d/MM/yy","dateFormatItem-yyQ":"QQQ 'de' yy","months-format-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"dateFormatItem-H":"HH","dateFormatItem-MMMMd":"d 'de' MMMM","quarters-format-abbr":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"days-format-abbr":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d/MM/y","dateFormatItem-MEd":"E, dd/MM","days-standAlone-short":["Do","Sg","Te","Qu","Qi","Sx","Sb"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dayPeriods-format-abbr-pm":"p.m.","dateFormatItem-yMMMEd":"E, d/MM/y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, dd/MM/yyyy","months-format-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"dayPeriods-format-abbr-am":"a.m.","days-format-short":["Do","Sg","Te","Qu","Qi","Sx","Sb"],"dateFormatItem-yyyyMMM":"MMM 'de' y","dateFormatItem-d":"d","quarters-format-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"days-format-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dateFormatItem-h":"h a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt-pt/islamic.js b/lib/dojo/cldr/nls/pt-pt/islamic.js
new file mode 100644
index 000000000..3ffa4a397
--- /dev/null
+++ b/lib/dojo/cldr/nls/pt-pt/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/pt-pt/islamic",{"dateFormatItem-yQ":"QQQ 'de' y G","dateFormatItem-MMMEd":"E, d/MM","dateTimeFormat-full":"{1} às {0}","dateFormatItem-yQQQ":"QQQ 'de' y G","days-standAlone-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dateTimeFormat-short":"{1}, {0}","dateTimeFormat-medium":"{1}, {0}","quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-yMMM":"MM/y","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-yyyyMM":"MM/yyyy","dateFormat-long":"d 'de' MMMM 'de' y","dateFormatItem-Hm":"HH:mm","dateFormatItem-yyMM":"MM/yy","dateFormat-medium":"dd/MM/yyyy","dayPeriods-format-narrow-pm":"p.m.","dateFormatItem-yyMMM":"MM/yy","dateFormatItem-yMd":"dd/MM/yyyy","quarters-standAlone-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"a.m.","dateTimeFormat-long":"{1} às {0}","dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-yyMMMd":"d/MM/yy","dateFormatItem-MMMd":"d/MM","dateFormatItem-HHmm":"HH:mm","dateFormatItem-yyMMMEd":"E, d/MM/yy","dateFormatItem-yyQ":"QQQ 'de' yy G","quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"days-format-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-yMMMd":"d/MM/y","days-standAlone-short":["dom","seg","ter","qua","qui","sex","sáb"],"days-standAlone-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dayPeriods-format-abbr-pm":"p.m.","dateFormat-short":"d/M/y G","dateFormatItem-yMMMEd":"E, d/MM/y","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dayPeriods-format-abbr-am":"a.m.","days-format-short":["Do","Sg","Te","Qu","Qi","Sx","Sb"],"dateFormatItem-yyyyMMM":"MMM 'de' y","quarters-format-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"days-format-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt-pt/number.js b/lib/dojo/cldr/nls/pt-pt/number.js
index 2d0ccea06..412773ebf 100644
--- a/lib/dojo/cldr/nls/pt-pt/number.js
+++ b/lib/dojo/cldr/nls/pt-pt/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/pt-pt/number",{"currencyFormat":"#,##0.00 ¤","group":" "}); \ No newline at end of file
+define("dojo/cldr/nls/pt-pt/number",{"group":" ","decimalFormat-long":"000 biliões","currencyFormat":"#,##0.00 ¤","decimalFormat-short":"000 Bi","decimal":","}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt/buddhist.js b/lib/dojo/cldr/nls/pt/buddhist.js
new file mode 100644
index 000000000..dff14ee5f
--- /dev/null
+++ b/lib/dojo/cldr/nls/pt/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/pt/buddhist",{"dateFormatItem-yM":"MM/y G","dateFormatItem-yQ":"G y Q","dateFormatItem-MMMEd":"E, d 'de' MMM","dateFormatItem-yQQQ":"G y QQQ","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-y":"y G","months-standAlone-abbr":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"dateFormatItem-Ed":"E, d","dateFormatItem-yMMM":"MMM 'de' y G","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d 'de' MMMM 'de' y G","dateFormatItem-Hm":"HH'h'mm","dateFormatItem-yyMM":"MM/yy G","dateFormat-medium":"dd/MM/yyyy G","dayPeriods-format-narrow-pm":"p","dateFormatItem-yyMMM":"MMM 'de' yy G","dateFormatItem-yMd":"dd/MM/yyyy G","quarters-standAlone-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"dateFormatItem-ms":"mm'min'ss's'","dayPeriods-format-narrow-am":"a","dateFormatItem-HHmmss":"HH'h'mm'min'ss's'","dateFormatItem-yyMMMd":"d 'de' MMM 'de' yy G","months-standAlone-wide":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"dateFormatItem-MMMd":"d 'de' MMM","dateFormatItem-HHmm":"HH'h'mm","dateFormatItem-yyMMMEd":"E, d 'de' MMM 'de' yy G","dateFormatItem-yyQ":"Q yy G","months-format-abbr":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dateFormatItem-M":"L","days-format-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-yMMMd":"d 'de' MMM 'de' y G","dateFormatItem-MEd":"E, dd/MM","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-short":["dom","seg","ter","qua","qui","sex","sáb"],"days-standAlone-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"E, d 'de' MMM 'de' y G","dateFormat-full":"EEEE, d 'de' MMMM 'de' y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, dd/MM/yyyy G","months-format-wide":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"days-format-short":["dom","seg","ter","qua","qui","sex","sáb"],"dateFormatItem-yyyyMMM":"MMM 'de' y G","dateFormatItem-d":"d","quarters-format-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"days-format-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt/currency.js b/lib/dojo/cldr/nls/pt/currency.js
index b5fa38baa..3bdfb3797 100644
--- a/lib/dojo/cldr/nls/pt/currency.js
+++ b/lib/dojo/cldr/nls/pt/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/pt/currency",{"HKD_displayName":"Dólar de Hong Kong","CHF_displayName":"Franco suíço","CAD_displayName":"Dólar canadense","CNY_displayName":"Yuan Renminbi chinês","AUD_displayName":"Dólar australiano","JPY_displayName":"Iene japonês","USD_displayName":"Dólar norte-americano","GBP_displayName":"Libra esterlina britânica","EUR_displayName":"Euro"}); \ No newline at end of file
+define("dojo/cldr/nls/pt/currency",{"HKD_displayName":"Dólar de Hong Kong","CHF_displayName":"Franco suíço","JPY_symbol":"JP¥","CAD_displayName":"Dólar canadense","HKD_symbol":"HK$","CNY_displayName":"Yuan chinês","USD_symbol":"US$","AUD_displayName":"Dólar australiano","JPY_displayName":"Iene japonês","CAD_symbol":"CA$","USD_displayName":"Dólar norte-americano","EUR_symbol":"€","CNY_symbol":"CN¥","GBP_displayName":"Libra esterlina britânica","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"Euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt/gregorian.js b/lib/dojo/cldr/nls/pt/gregorian.js
index c77d9e6c3..02bd0c0cc 100644
--- a/lib/dojo/cldr/nls/pt/gregorian.js
+++ b/lib/dojo/cldr/nls/pt/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/pt/gregorian",{"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Dia da semana","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, dd/MM/yyyy","dateFormatItem-MMMEd":"EEE, d 'de' MMM","eraNarrow":["a.C.","d.C."],"dayPeriods-format-wide-morning":"manhã","dateFormat-long":"d 'de' MMMM 'de' y","months-format-wide":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"dateFormatItem-EEEd":"EEE, d","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"meio-dia","field-era":"Era","dateFormatItem-yM":"MM/yyyy","months-standAlone-wide":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"timeFormat-short":"HH:mm","quarters-format-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"timeFormat-long":"HH'h'mm'min'ss's' z","field-year":"Ano","dateFormatItem-yMMM":"MMM 'de' y","dateFormatItem-yQ":"yyyy Q","field-hour":"Hora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH'h'mm'min'ss's' zzzz","field-day-relative+0":"Hoje","field-day-relative+1":"Amanhã","field-day-relative+2":"Depois de amanhã","field-day-relative+3":"Daqui a três dias","months-standAlone-abbr":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"dateFormatItem-HHmmss":"HH'h'mm'min'ss's'","dateFormatItem-M":"L","days-standAlone-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"dateFormatItem-yyyyMMM":"MMM 'de' y","dateFormatItem-yyMMMEEEd":"EEE, d 'de' MMM 'de' yy","dateFormatItem-yyMMM":"MMM 'de' yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH'h'mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["a.C.","d.C."],"field-minute":"Minuto","field-dayperiod":"Período do dia","days-standAlone-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dayPeriods-format-wide-night":"noite","dateFormatItem-yyMMMd":"d 'de' MMM 'de' yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm'min'ss's'","field-day-relative+-1":"Ontem","field-day-relative+-2":"Anteontem","field-day-relative+-3":"Há três dias","dateFormatItem-MMMd":"d 'de' MMM","dateFormatItem-MEd":"EEE, dd/MM","field-day":"Dia","days-format-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"field-zone":"Fuso","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"eraNames":["Antes de Cristo","Ano do Senhor"],"days-format-narrow":["D","S","T","Q","Q","S","S"],"field-month":"Mês","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-MMM":"LLL","dateFormatItem-HHmm":"HH'h'mm","dateFormat-short":"dd/MM/yy","dayPeriods-format-wide-afternoon":"tarde","field-second":"Segundo","dateFormatItem-yMMMEd":"EEE, d 'de' MMM 'de' y","field-week":"Semana","dateFormat-medium":"dd/MM/yyyy"}); \ No newline at end of file
+define("dojo/cldr/nls/pt/gregorian",{"days-standAlone-short":["dom","seg","ter","qua","qui","sex","sáb"],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Dia da semana","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yyMMMEd":"E, d 'de' MMM 'de' yy","dateFormatItem-yMEd":"E, dd/MM/yyyy","dateFormatItem-MMMEd":"E, d 'de' MMM","eraNarrow":["a.C.","d.C."],"dayPeriods-format-wide-morning":"manhã","days-format-short":["dom","seg","ter","qua","qui","sex","sáb"],"dateFormat-long":"d 'de' MMMM 'de' y","months-format-wide":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","dayPeriods-format-abbr-am":"AM","dayPeriods-format-wide-noon":"meio-dia","dateFormatItem-yMd":"dd/MM/yyyy","field-era":"Era","dateFormatItem-yM":"MM/yyyy","months-standAlone-wide":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"timeFormat-short":"HH:mm","quarters-format-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"Ano","dateFormatItem-yMMM":"MMM 'de' y","dateFormatItem-yQ":"yyyy Q","field-hour":"Hora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Hoje","field-day-relative+1":"Amanhã","field-day-relative+2":"Depois de amanhã","dateFormatItem-H":"HH","months-standAlone-abbr":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"L","days-standAlone-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"dateFormatItem-yyyyMMM":"MMM 'de' y","dateFormatItem-yyMMM":"MMM 'de' yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["a.C.","d.C."],"field-minute":"Minuto","field-dayperiod":"Período do dia","days-standAlone-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dayPeriods-format-wide-night":"noite","dateFormatItem-yyMMMd":"d 'de' MMM 'de' yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Ontem","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"a","field-day-relative+-2":"Anteontem","dateFormatItem-MMMd":"d 'de' MMM","dateFormatItem-MEd":"E, dd/MM","dateTimeFormat-full":"{1} {0}","field-day":"Dia","days-format-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"field-zone":"Fuso","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-year-relative+-1":"Ano passado","field-month-relative+-1":"Mês passado","dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h:mm a","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dateFormatItem-yMMMd":"d 'de' MMM 'de' y","eraNames":["Antes de Cristo","Ano do Senhor"],"days-format-narrow":["D","S","T","Q","Q","S","S"],"days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-MMM":"LLL","field-month":"Mês","dateFormatItem-HHmm":"HH:mm","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd/MM/yy","dayPeriods-format-wide-afternoon":"tarde","field-second":"Segundo","dateFormatItem-yMMMEd":"E, d 'de' MMM 'de' y","field-month-relative+0":"Este mês","field-month-relative+1":"Próximo mês","dateFormatItem-Ed":"E, d","field-week":"Semana","dateFormat-medium":"dd/MM/yyyy","field-year-relative+0":"Este ano","field-week-relative+-1":"Semana passada","field-year-relative+1":"Próximo ano","dayPeriods-format-narrow-pm":"p","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"Esta semana","field-week-relative+1":"Próxima semana"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt/hebrew.js b/lib/dojo/cldr/nls/pt/hebrew.js
new file mode 100644
index 000000000..9a0c1a88f
--- /dev/null
+++ b/lib/dojo/cldr/nls/pt/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/pt/hebrew",{"dateFormatItem-yM":"MM/yyyy","dateFormatItem-yQ":"yyyy Q","months-standAlone-abbr-leap":"Adar II","dateFormatItem-MMMEd":"E, d 'de' MMM","days-standAlone-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"months-format-abbr-leap":"Adar II","quarters-standAlone-abbr":["T1","T2","T3","T4"],"months-standAlone-abbr":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateFormatItem-Ed":"E, d","dateFormatItem-yMMM":"MMM 'de' y","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormat-long":"d 'de' MMMM 'de' y","dateFormat-medium":"dd/MM/yyyy","dayPeriods-format-narrow-pm":"p","dateFormatItem-yMd":"dd/MM/yyyy","quarters-standAlone-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"dayPeriods-format-narrow-am":"a","months-standAlone-wide":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateFormatItem-MMMd":"d 'de' MMM","months-format-abbr":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"days-format-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-yMMMd":"d 'de' MMM 'de' y","dateFormatItem-MEd":"E, dd/MM","days-standAlone-short":["dom","seg","ter","qua","qui","sex","sáb"],"days-standAlone-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"months-standAlone-wide-leap":"Adar II","dateFormat-short":"dd/MM/yy","dateFormatItem-yMMMEd":"E, d 'de' MMM 'de' y","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, dd/MM/yyyy","months-format-wide":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"days-format-short":["dom","seg","ter","qua","qui","sex","sáb"],"quarters-format-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"months-format-wide-leap":"Adar II","days-format-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt/islamic.js b/lib/dojo/cldr/nls/pt/islamic.js
new file mode 100644
index 000000000..ca60b15a3
--- /dev/null
+++ b/lib/dojo/cldr/nls/pt/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/pt/islamic",{"dateFormatItem-yM":"MM/yyyy","dateFormatItem-yyyyMMMEd":"E, d 'de' MMM 'de' y G","dateFormatItem-yQ":"yyyy Q","dateFormatItem-MMMEd":"E, d 'de' MMM","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"dateFormatItem-MMM":"LLL","quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-y":"y","dateFormatItem-yyyy":"y G","dateFormatItem-Ed":"E, d","dateFormatItem-yMMM":"MMM 'de' y","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d 'de' MMMM 'de' y G","dateFormatItem-Hm":"HH'h'mm","dateFormatItem-yyMM":"MM/yy G","dateFormat-medium":"dd/MM/yyyy G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"p","dateFormatItem-yyMMM":"MMM 'de' yy G","dateFormatItem-yMd":"dd/MM/yyyy","quarters-standAlone-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"dateFormatItem-ms":"mm'min'ss's'","dayPeriods-format-narrow-am":"a","dateFormatItem-HHmmss":"HH'h'mm'min'ss's'","dateFormatItem-yyMMMd":"d 'de' MMM 'de' yy G","dateFormatItem-yyyyMd":"dd/MM/yyyy G","dateFormatItem-yyyyMMMd":"d 'de' MMM 'de' y G","dateFormatItem-yyyyMEd":"E, dd/MM/yyyy G","dateFormatItem-MMMd":"d 'de' MMM","dateFormatItem-HHmm":"HH'h'mm","dateFormatItem-yyMMMEd":"E, d 'de' MMM 'de' yy G","dateFormatItem-yyQ":"Q yy G","dateFormatItem-H":"HH","quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dateFormatItem-M":"L","days-format-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-yMMMd":"d 'de' MMM 'de' y","dateFormatItem-MEd":"E, dd/MM","dateFormatItem-yyyyQQQ":"G y QQQ","days-standAlone-short":["dom","seg","ter","qua","qui","sex","sáb"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yyyyM":"MM/y G","dateFormatItem-yMMMEd":"E, d 'de' MMM 'de' y","dateFormat-full":"EEEE, d 'de' MMMM 'de' y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, dd/MM/yyyy","dateFormatItem-yyyyQ":"G y Q","days-format-short":["dom","seg","ter","qua","qui","sex","sáb"],"dateFormatItem-yyyyMMM":"MMM 'de' y G","dateFormatItem-d":"d","quarters-format-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"days-format-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"dateFormatItem-h":"h a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/pt/number.js b/lib/dojo/cldr/nls/pt/number.js
index c288a98f2..43c35a067 100644
--- a/lib/dojo/cldr/nls/pt/number.js
+++ b/lib/dojo/cldr/nls/pt/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/pt/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/pt/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-long":"000 trilhões","decimalFormat-short":"000 tri"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ro/buddhist.js b/lib/dojo/cldr/nls/ro/buddhist.js
index fefffc9bc..b3e1db661 100644
--- a/lib/dojo/cldr/nls/ro/buddhist.js
+++ b/lib/dojo/cldr/nls/ro/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ro/buddhist",{"quarters-format-abbr":["trim. I","trim. II","trim. III","trim. IV"],"dateFormat-medium":"d MMM y G","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-MEd":"E, d MMM","dateFormatItem-yMEd":"EEE, d/M/yyyy","eraNarrow":["e.b."],"dateTimeFormat-medium":"{1}, {0}","dateFormatItem-Md":"d.M","months-standAlone-narrow":["I","F","M","A","M","I","I","A","S","O","N","D"],"dateFormatItem-EEEd":"EEE d","eraNames":["era budistă"],"days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateTimeFormat-long":"{1}, {0}","dateFormatItem-yQQQ":"QQQ y","quarters-standAlone-narrow":["T1","T2","T3","T4"],"dateFormat-long":"d MMMM y G","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE, d MMM y","dateTimeFormat-short":"{1}, {0}","months-format-wide":["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],"dateTimeFormat-full":"{1}, {0}","dateFormatItem-yM":"M.yyyy","months-format-abbr":["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],"eraAbbr":["e.b."],"days-format-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"dateFormatItem-yQ":"'trimestrul' Q y","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"dateFormat-full":"EEEE, d MMMM, y G","dateFormatItem-MMMd":"d MMM","days-format-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"]}); \ No newline at end of file
+define("dojo/cldr/nls/ro/buddhist",{"dateFormatItem-yM":"MM.yyyy","dateFormatItem-yQ":"'trimestrul' Q y","eraNames":["era budistă"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"months-standAlone-narrow":["I","F","M","A","M","I","I","A","S","O","N","D"],"quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-y":"y","months-standAlone-abbr":["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["D","L","M","M","J","V","S"],"eraAbbr":["e.b."],"dateFormat-long":"d MMMM y G","dateFormat-medium":"d MMM y G","dateFormatItem-yMd":"dd.MM.yyyy","quarters-standAlone-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"quarters-standAlone-narrow":["T1","T2","T3","T4"],"months-standAlone-wide":["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],"dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["1","2","3","T4"],"months-format-abbr":["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],"quarters-format-abbr":["trim. I","trim. II","trim. III","trim. IV"],"days-format-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"days-format-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, dd.MM","months-format-narrow":["I","F","M","A","M","I","I","A","S","O","N","D"],"days-standAlone-short":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"days-standAlone-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM, y G","dateFormatItem-Md":"dd.MM","dateFormatItem-yMEd":"E, dd.MM.yyyy","months-format-wide":["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],"days-format-short":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"quarters-format-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"days-format-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"eraNarrow":["e.b."]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ro/currency.js b/lib/dojo/cldr/nls/ro/currency.js
index a6343ea5c..881ffd618 100644
--- a/lib/dojo/cldr/nls/ro/currency.js
+++ b/lib/dojo/cldr/nls/ro/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ro/currency",{"HKD_displayName":"dolar Hong Kong","CHF_displayName":"franc elvețian","CAD_displayName":"dolar canadian","CNY_displayName":"yuan renminbi chinezesc","AUD_displayName":"dolar australian","JPY_displayName":"yen japonez","USD_displayName":"dolar american","GBP_displayName":"liră sterlină","EUR_displayName":"euro"}); \ No newline at end of file
+define("dojo/cldr/nls/ro/currency",{"HKD_displayName":"dolar Hong Kong","CHF_displayName":"franc elvețian","CAD_displayName":"dolar canadian","CNY_displayName":"yuan renminbi chinezesc","USD_symbol":"$","AUD_displayName":"dolar australian","JPY_displayName":"yen japonez","USD_displayName":"dolar american","GBP_displayName":"liră sterlină","EUR_displayName":"euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ro/gregorian.js b/lib/dojo/cldr/nls/ro/gregorian.js
index c154bd127..f4b5a6639 100644
--- a/lib/dojo/cldr/nls/ro/gregorian.js
+++ b/lib/dojo/cldr/nls/ro/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ro/gregorian",{"months-format-narrow":["I","F","M","A","M","I","I","A","S","O","N","D"],"quarters-standAlone-narrow":["T1","T2","T3","T4"],"field-weekday":"zi a săptămânii","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d/M/yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["î.Hr.","d.Hr."],"dateFormat-long":"d MMMM y","months-format-wide":["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],"dateTimeFormat-medium":"{1}, {0}","dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d.M","field-era":"eră","dateFormatItem-yM":"M.yyyy","months-standAlone-wide":["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],"timeFormat-short":"HH:mm","quarters-format-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"timeFormat-long":"HH:mm:ss z","field-year":"an","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"'trimestrul' Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"oră","dateFormatItem-MMdd":"dd.MM","months-format-abbr":["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"azi","field-day-relative+1":"mâine","field-day-relative+2":"poimâine","field-day-relative+3":"răspoimâine","months-standAlone-abbr":["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],"quarters-format-abbr":["trim. I","trim. II","trim. III","trim. IV"],"quarters-standAlone-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"dateFormatItem-M":"L","days-standAlone-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["trim. I","trim. II","trim. III","trim. IV"],"eraAbbr":["î.Hr.","d.Hr."],"field-minute":"minut","field-dayperiod":"perioada zilei","days-standAlone-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["T1","T2","T3","T4"],"field-day-relative+-1":"ieri","dateTimeFormat-long":"{1}, {0}","field-day-relative+-2":"alaltăieri","field-day-relative+-3":"răsalaltăieri","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d MMM","dateTimeFormat-full":"{1}, {0}","dateFormatItem-yMMMM":"MMMM y","field-day":"zi","days-format-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"field-zone":"zonă","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["I","F","M","A","M","I","I","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","days-format-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"eraNames":["înainte de Hristos","după Hristos"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"lună","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"E, d MMMM","dateFormat-short":"dd.MM.yyyy","field-second":"secundă","dateFormatItem-yMMMEd":"EEE, d MMM y","field-week":"săptămână","dateFormat-medium":"dd.MM.yyyy","dateTimeFormat-short":"{1}, {0}","dateFormatItem-MMMEEEd":"EEE, d MMM"}); \ No newline at end of file
+define("dojo/cldr/nls/ro/gregorian",{"days-standAlone-short":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"months-format-narrow":["I","F","M","A","M","I","I","A","S","O","N","D"],"quarters-standAlone-narrow":["T1","T2","T3","T4"],"field-weekday":"zi a săptămânii","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E, dd.MM.yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["î.Hr.","d.Hr."],"days-format-short":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"dateFormat-long":"d MMMM y","months-format-wide":["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],"dateTimeFormat-medium":"{1}, {0}","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"dd.MM","dateFormatItem-yMd":"dd.MM.yyyy","field-era":"eră","dateFormatItem-yM":"MM.yyyy","months-standAlone-wide":["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],"timeFormat-short":"HH:mm","quarters-format-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"timeFormat-long":"HH:mm:ss z","field-year":"an","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"'trimestrul' Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"oră","dateFormatItem-MMdd":"dd.MM","months-format-abbr":["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"azi","field-day-relative+1":"mâine","field-day-relative+2":"poimâine","dateFormatItem-H":"HH","months-standAlone-abbr":["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],"quarters-format-abbr":["trim. I","trim. II","trim. III","trim. IV"],"quarters-standAlone-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"dateFormatItem-M":"L","days-standAlone-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["î.Hr.","d.Hr."],"field-minute":"minut","field-dayperiod":"perioada zilei","days-standAlone-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","T4"],"field-day-relative+-1":"ieri","dateTimeFormat-long":"{1}, {0}","field-day-relative+-2":"alaltăieri","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, dd.MM","dateTimeFormat-full":"{1}, {0}","dateFormatItem-yMMMM":"MMMM y","field-day":"zi","days-format-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"field-zone":"zonă","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["I","F","M","A","M","I","I","A","S","O","N","D"],"field-year-relative+-1":"Anul trecut","field-month-relative+-1":"Luna trecută","dateFormatItem-yyMM":"MM.yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"dateFormatItem-yMMMd":"d MMM y","eraNames":["înainte de Hristos","după Hristos"],"days-format-narrow":["D","L","M","M","J","V","S"],"days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","field-month":"lună","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"E, d MMMM","dateFormat-short":"dd.MM.yyyy","field-second":"secundă","dateFormatItem-yMMMEd":"E, d MMM y","field-month-relative+0":"Luna aceasta","field-month-relative+1":"Luna viitoare","dateFormatItem-Ed":"E d","field-week":"săptămână","dateFormat-medium":"dd.MM.yyyy","field-year-relative+0":"Anul acesta","field-week-relative+-1":"Săptămâna trecută","field-year-relative+1":"Anul viitor","dateTimeFormat-short":"{1}, {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"Săptămâna aceasta","field-week-relative+1":"Săptămâna viitoare"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ro/hebrew.js b/lib/dojo/cldr/nls/ro/hebrew.js
new file mode 100644
index 000000000..4111ab918
--- /dev/null
+++ b/lib/dojo/cldr/nls/ro/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/ro/hebrew",{"dateFormatItem-yM":"MM.yyyy","dateFormatItem-yQ":"'trimestrul' Q y","months-standAlone-abbr-leap":"Adar II","dateFormatItem-MMMEd":"E, d MMM","dateTimeFormat-full":"{1}, {0}","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"dateTimeFormat-short":"{1}, {0}","dateTimeFormat-medium":"{1}, {0}","months-format-abbr-leap":"Adar II","quarters-standAlone-abbr":["T1","T2","T3","T4"],"months-standAlone-abbr":["Tișrei","Heșvan","Kislev","Tevet","Șevat","Adar I","Adar","Nisan","Iyar","Sivan","Tammuz","Av","Elul"],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormat-long":"d MMMM y","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-yMd":"dd.MM.yyyy","quarters-standAlone-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"quarters-standAlone-narrow":["T1","T2","T3","T4"],"dateTimeFormat-long":"{1}, {0}","months-standAlone-wide":["Tișrei","Heșvan","Kislev","Tevet","Șevat","Adar I","Adar","Nisan","Iyar","Sivan","Tammuz","Av","Elul"],"dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["1","2","3","T4"],"months-format-abbr":["Tișrei","Heșvan","Kislev","Tevet","Șevat","Adar I","Adar","Nisan","Iyar","Sivan","Tammuz","Av","Elul"],"quarters-format-abbr":["trim. I","trim. II","trim. III","trim. IV"],"days-format-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"days-format-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, dd.MM","days-standAlone-short":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"days-standAlone-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"months-standAlone-wide-leap":"Adar II","dateFormat-short":"dd.MM.yyyy","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"dd.MM","dateFormatItem-yMEd":"E, dd.MM.yyyy","months-format-wide":["Tișrei","Heșvan","Kislev","Tevet","Șevat","Adar I","Adar","Nisan","Iyar","Sivan","Tammuz","Av","Elul"],"days-format-short":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"quarters-format-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"months-format-wide-leap":"Adar II","days-format-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ro/islamic.js b/lib/dojo/cldr/nls/ro/islamic.js
new file mode 100644
index 000000000..0aed87159
--- /dev/null
+++ b/lib/dojo/cldr/nls/ro/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/ro/islamic",{"quarters-standAlone-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"quarters-format-abbr":["trim. I","trim. II","trim. III","trim. IV"],"dateFormatItem-yMd":"dd.MM.yyyy","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-MMMEd":"E, d MMM","quarters-standAlone-abbr":["T1","T2","T3","T4"],"dateFormatItem-MEd":"E, dd.MM","dateFormatItem-yMEd":"E, dd.MM.yyyy","dateTimeFormat-medium":"{1}, {0}","dateFormatItem-yMMMd":"d MMM y","quarters-format-narrow":["1","2","3","T4"],"days-format-short":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"dateFormatItem-Md":"dd.MM","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateTimeFormat-long":"{1}, {0}","dateFormatItem-yQQQ":"QQQ y","days-standAlone-short":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"quarters-standAlone-narrow":["T1","T2","T3","T4"],"dateFormat-long":"d MMMM y","dateFormat-short":"dd.MM.yyyy","dateFormatItem-yMMMEd":"E, d MMM y","days-standAlone-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"dateTimeFormat-short":"{1}, {0}","dateTimeFormat-full":"{1}, {0}","days-format-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-yM":"MM.yyyy","days-standAlone-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"days-format-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"dateFormatItem-yQ":"'trimestrul' Q y","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"dateFormat-full":"EEEE, d MMMM y","dateFormatItem-MMMd":"d MMM","days-format-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"dateFormatItem-Ed":"E d"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ro/number.js b/lib/dojo/cldr/nls/ro/number.js
index a9b2e7734..77447318c 100644
--- a/lib/dojo/cldr/nls/ro/number.js
+++ b/lib/dojo/cldr/nls/ro/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ro/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/ro/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 trilioane","decimalFormat-short":"000 T"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ru/buddhist.js b/lib/dojo/cldr/nls/ru/buddhist.js
new file mode 100644
index 000000000..fb6dd2a6e
--- /dev/null
+++ b/lib/dojo/cldr/nls/ru/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/ru/buddhist",{"dateFormatItem-yM":"MM.y G","dateFormatItem-yQ":"QQQ y 'г'.","dayPeriods-format-wide-pm":"после полудня","dateFormatItem-MMMEd":"ccc, d MMM","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd.MM","days-standAlone-wide":["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"до полудня","quarters-standAlone-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"dateFormatItem-y":"y G","timeFormat-full":"H:mm:ss zzzz","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Янв.","Февр.","Март","Апр.","Май","Июнь","Июль","Авг.","Сент.","Окт.","Нояб.","Дек."],"dateFormatItem-Ed":"E, d","dateFormatItem-yMMM":"LLL y G","dateFormatItem-yyyyLLLL":"LLLL y G","days-standAlone-narrow":["В","П","В","С","Ч","П","С"],"dateFormatItem-yyyyMM":"MM.yyyy G","dateFormatItem-yyyyMMMM":"LLLL y G","dateFormat-long":"d MMMM y 'г'. G","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormatItem-yyMM":"MM.yy G","dateFormat-medium":"dd.MM.yyyy G","dateFormatItem-Hms":"H:mm:ss","dayPeriods-format-narrow-pm":"пп","dateFormatItem-yyMMM":"LLL yy G","dateFormatItem-yMd":"dd.MM.y G","quarters-standAlone-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"dateFormatItem-ms":"mm:ss","dateFormatItem-yyyyQQQQ":"QQQQ y 'г'. G","dayPeriods-format-narrow-am":"дп","months-standAlone-wide":["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],"dateFormatItem-MMMd":"d MMM","dateFormatItem-yyMMMEd":"E, d MMM yy G","dateFormatItem-yyQ":"Q yy G","dateFormatItem-E":"ccc","timeFormat-long":"H:mm:ss z","months-format-abbr":["янв.","февр.","марта","апр.","мая","июня","июля","авг.","сент.","окт.","нояб.","дек."],"dateFormatItem-H":"H","timeFormat-short":"H:mm","quarters-format-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"days-format-abbr":["вс","пн","вт","ср","чт","пт","сб"],"dateFormatItem-M":"L","days-format-narrow":["вс","пн","вт","ср","чт","пт","сб"],"dateFormatItem-yMMMd":"d MMM y G","dateFormatItem-MEd":"E, dd.MM","months-format-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"days-standAlone-short":["вс","пн","вт","ср","чт","пт","сб"],"days-standAlone-abbr":["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],"dayPeriods-format-abbr-pm":"после полудня","dateFormat-short":"dd.MM.yy G","dateFormatItem-yMMMEd":"E, d MMM y G","dateFormat-full":"EEEE, d MMMM y 'г'. G","dateFormatItem-Md":"dd.MM","dateFormatItem-yMEd":"E, dd.MM.y G","months-format-wide":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"dayPeriods-format-abbr-am":"до полудня","days-format-short":["вс","пн","вт","ср","чт","пт","сб"],"dateFormatItem-d":"d","quarters-format-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"days-format-wide":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ru/currency.js b/lib/dojo/cldr/nls/ru/currency.js
index 15e6fbe79..ed810acef 100644
--- a/lib/dojo/cldr/nls/ru/currency.js
+++ b/lib/dojo/cldr/nls/ru/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ru/currency",{"HKD_displayName":"Гонконгский доллар","CHF_displayName":"Швейцарский франк","CAD_displayName":"Канадский доллар","CNY_displayName":"Юань Ренминби","USD_symbol":"$","AUD_displayName":"Австралийский доллар","JPY_displayName":"Японская иена","USD_displayName":"Доллар США","GBP_displayName":"Английский фунт стерлингов","EUR_displayName":"Евро"}); \ No newline at end of file
+define("dojo/cldr/nls/ru/currency",{"HKD_displayName":"Гонконгский доллар","CHF_displayName":"Швейцарский франк","JPY_symbol":"¥","CAD_displayName":"Канадский доллар","CNY_displayName":"Юань Ренминби","USD_symbol":"$","AUD_displayName":"Австралийский доллар","JPY_displayName":"Японская иена","USD_displayName":"Доллар США","GBP_displayName":"Английский фунт стерлингов","EUR_displayName":"Евро"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ru/gregorian.js b/lib/dojo/cldr/nls/ru/gregorian.js
index 33f16f881..e34b3d60d 100644
--- a/lib/dojo/cldr/nls/ru/gregorian.js
+++ b/lib/dojo/cldr/nls/ru/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ru/gregorian",{"dateFormatItem-yM":"M.y","field-dayperiod":"AM/PM","field-minute":"Минута","eraNames":["до н.э.","н.э."],"dateFormatItem-MMMEd":"ccc, d MMM","field-day-relative+-1":"Вчера","field-weekday":"День недели","dateFormatItem-yQQQ":"y QQQ","field-day-relative+-2":"Позавчера","dateFormatItem-MMdd":"dd.MM","days-standAlone-wide":["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"field-era":"Эра","field-hour":"Час","quarters-standAlone-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"dateFormatItem-yyMMMEEEd":"EEE, d MMM yy","dateFormatItem-y":"y","timeFormat-full":"H:mm:ss zzzz","dateFormatItem-yyyy":"y","months-standAlone-abbr":["янв.","февр.","март","апр.","май","июнь","июль","авг.","сент.","окт.","нояб.","дек."],"dateFormatItem-Ed":"E, d","dateFormatItem-yMMM":"LLL y","field-day-relative+0":"Сегодня","dateFormatItem-yyyyLLLL":"LLLL y","field-day-relative+1":"Завтра","days-standAlone-narrow":["В","П","В","С","Ч","П","С"],"eraAbbr":["до н.э.","н.э."],"field-day-relative+2":"Послезавтра","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-yyyyMMMM":"LLLL y","dateFormat-long":"d MMMM y 'г'.","timeFormat-medium":"H:mm:ss","field-zone":"Часовой пояс","dateFormatItem-Hm":"H:mm","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-yyMM":"MM.yy","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yyMMM":"LLL yy","quarters-standAlone-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"dateFormatItem-ms":"mm:ss","dateFormatItem-yyyyQQQQ":"QQQQ y 'г'.","field-year":"Год","months-standAlone-wide":["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],"field-week":"Неделя","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"H:mm:ss z","months-format-abbr":["янв.","февр.","марта","апр.","мая","июня","июля","авг.","сент.","окт.","нояб.","дек."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","field-month":"Месяц","quarters-format-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"days-format-abbr":["вс","пн","вт","ср","чт","пт","сб"],"dateFormatItem-M":"L","days-format-narrow":["В","П","В","С","Ч","П","С"],"field-second":"Секунда","field-day":"День","dateFormatItem-MEd":"E, d.M","months-format-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"days-standAlone-abbr":["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],"dateFormat-short":"dd.MM.yy","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM y 'г'.","dateFormatItem-Md":"d.M","dateFormatItem-yMEd":"EEE, d.M.y","months-format-wide":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"dateFormatItem-d":"d","quarters-format-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"days-format-wide":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"eraNarrow":["до н.э.","н.э."]}); \ No newline at end of file
+define("dojo/cldr/nls/ru/gregorian",{"days-standAlone-short":["вс","пн","вт","ср","чт","пт","сб"],"months-format-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"field-weekday":"День недели","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yyMMMEd":"E, d MMM yy","dateFormatItem-yMEd":"ccc, d.MM.y 'г'.","dateFormatItem-yyyyLLLL":"LLLL y","dateFormatItem-MMMEd":"ccc, d MMM","eraNarrow":["до н.э.","н.э."],"days-format-short":["вс","пн","вт","ср","чт","пт","сб"],"dateFormat-long":"d MMMM y 'г'.","months-format-wide":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"dateTimeFormat-medium":"{1}, {0}","dayPeriods-format-wide-pm":"после полудня","dateFormat-full":"EEEE, d MMMM y 'г'.","dateFormatItem-Md":"dd.MM","dayPeriods-format-abbr-am":"до полудня","dateFormatItem-yMd":"dd.MM.y","dateFormatItem-yM":"MM.y","field-era":"Эра","months-standAlone-wide":["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],"timeFormat-short":"H:mm","quarters-format-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"timeFormat-long":"H:mm:ss z","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"QQQ y 'г'.","field-year":"Год","dateFormatItem-MMdd":"dd.MM","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Час","months-format-abbr":["янв.","февр.","марта","апр.","мая","июня","июля","авг.","сент.","окт.","нояб.","дек."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"H:mm:ss zzzz","dateFormatItem-E":"ccc","field-day-relative+0":"Сегодня","field-day-relative+1":"Завтра","field-day-relative+2":"Послезавтра","dateFormatItem-H":"H","months-standAlone-abbr":["Янв.","Февр.","Март","Апр.","Май","Июнь","Июль","Авг.","Сент.","Окт.","Нояб.","Дек."],"quarters-format-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"quarters-standAlone-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"dateFormatItem-M":"L","days-standAlone-wide":["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],"dateFormatItem-yyMMM":"LLL yy","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"eraAbbr":["до н.э.","н.э."],"field-minute":"Минута","field-dayperiod":"ДП/ПП","days-standAlone-abbr":["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Вчера","dateFormatItem-h":"h a","dateTimeFormat-long":"{1}, {0}","dayPeriods-format-narrow-am":"дп","field-day-relative+-2":"Позавчера","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, dd.MM","dateTimeFormat-full":"{1}, {0}","field-day":"День","days-format-wide":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"field-zone":"Часовой пояс","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"field-year-relative+-1":"В прошлом году","field-month-relative+-1":"В прошлом месяце","dateFormatItem-yyMM":"MM.yy","dateFormatItem-hm":"h:mm a","dayPeriods-format-abbr-pm":"после полудня","days-format-abbr":["вс","пн","вт","ср","чт","пт","сб"],"dateFormatItem-yMMMd":"d MMM y 'г'.","eraNames":["до н.э.","н.э."],"days-format-narrow":["вс","пн","вт","ср","чт","пт","сб"],"days-standAlone-narrow":["В","П","В","С","Ч","П","С"],"dateFormatItem-MMM":"LLL","field-month":"Месяц","dayPeriods-format-wide-am":"до полудня","dateFormat-short":"dd.MM.yy","field-second":"Секунда","dateFormatItem-yMMMEd":"E, d MMM y","field-month-relative+0":"В этом месяце","field-month-relative+1":"В следующем месяце","dateFormatItem-Ed":"ccc, d","field-week":"Неделя","dateFormat-medium":"dd MMM y 'г'.","field-year-relative+0":"В этом году","field-week-relative+-1":"На прошлой неделе","field-year-relative+1":"В следующем году","dayPeriods-format-narrow-pm":"пп","dateFormatItem-yyyyQQQQ":"QQQQ y 'г'.","dateTimeFormat-short":"{1}, {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y","field-week-relative+0":"На этой неделе","field-week-relative+1":"На следующей неделе"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ru/hebrew.js b/lib/dojo/cldr/nls/ru/hebrew.js
new file mode 100644
index 000000000..2e69db990
--- /dev/null
+++ b/lib/dojo/cldr/nls/ru/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/ru/hebrew",{"dateFormatItem-yM":"MM.y","dateFormatItem-yQ":"QQQ y 'г'.","months-standAlone-abbr-leap":"Адар II","dayPeriods-format-wide-pm":"после полудня","dateFormatItem-MMMEd":"ccc, d MMM","dateTimeFormat-full":"{1}, {0}","days-standAlone-wide":["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],"dateTimeFormat-short":"{1}, {0}","dayPeriods-format-wide-am":"до полудня","dateTimeFormat-medium":"{1}, {0}","months-format-abbr-leap":"Адар II","quarters-standAlone-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["Тишрей","Хешван","Кислев","Тевет","Шеват","Адар I","Адар","Нисан","Ияр","Сиван","Таммуз","Ав","Элул"],"dateFormatItem-Ed":"ccc, d","dateFormatItem-yMMM":"LLL y","days-standAlone-narrow":["В","П","В","С","Ч","П","С"],"dateFormat-long":"d MMMM y 'г'.","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"dd MMM y 'г'.","dateFormatItem-Hms":"H:mm:ss","dayPeriods-format-narrow-pm":"пп","dateFormatItem-yMd":"dd.MM.y","quarters-standAlone-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"dayPeriods-format-narrow-am":"дп","dateTimeFormat-long":"{1}, {0}","months-standAlone-wide":["Тишрей","Хешван","Кислев","Тевет","Шеват","Адар I","Адар","Нисан","Ияр","Сиван","Таммуз","Ав","Элул"],"dateFormatItem-MMMd":"d MMM","timeFormat-long":"H:mm:ss z","months-format-abbr":["Тишрей","Хешван","Кислев","Тевет","Шеват","Адар I","Адар","Нисан","Ияр","Сиван","Таммуз","Ав","Элул"],"timeFormat-short":"H:mm","dateFormatItem-H":"H","quarters-format-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"days-format-abbr":["вс","пн","вт","ср","чт","пт","сб"],"days-format-narrow":["вс","пн","вт","ср","чт","пт","сб"],"dateFormatItem-yMMMd":"d MMM y 'г'.","dateFormatItem-MEd":"E, dd.MM","days-standAlone-short":["вс","пн","вт","ср","чт","пт","сб"],"days-standAlone-abbr":["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],"months-standAlone-wide-leap":"Адар II","dayPeriods-format-abbr-pm":"после полудня","dateFormat-short":"dd.MM.yy","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM y 'г'.","dateFormatItem-Md":"dd.MM","dateFormatItem-yMEd":"ccc, d.MM.y 'г'.","months-format-wide":["Тишрей","Хешван","Кислев","Тевет","Шеват","Адар I","Адар","Нисан","Ияр","Сиван","Таммуз","Ав","Элул"],"dayPeriods-format-abbr-am":"до полудня","days-format-short":["вс","пн","вт","ср","чт","пт","сб"],"quarters-format-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"months-format-wide-leap":"Адар II","days-format-wide":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ru/islamic.js b/lib/dojo/cldr/nls/ru/islamic.js
new file mode 100644
index 000000000..2e4b980bd
--- /dev/null
+++ b/lib/dojo/cldr/nls/ru/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/ru/islamic",{"days-standAlone-short":["вс","пн","вт","ср","чт","пт","сб"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-yyMMMEd":"E, d MMM yy G","dateFormatItem-yMEd":"ccc, d.MM.y 'г'.","dateFormatItem-yyyyLLLL":"LLLL y G","dateFormatItem-MMMEd":"ccc, d MMM","days-format-short":["вс","пн","вт","ср","чт","пт","сб"],"dateFormat-long":"d MMMM y 'г'. G","months-format-wide":["Мухаррам","Сафар","Раби-уль-авваль","Раби-уль-ахир","Джумад-уль-авваль","Джумад-уль-ахир","Раджаб","Шаабан","Рамадан","Шавваль","Зуль-Каада","Зуль-Хиджжа"],"dateFormatItem-yyyyQQQ":"QQQ y G","dateTimeFormat-medium":"{1}, {0}","dayPeriods-format-wide-pm":"после полудня","dateFormat-full":"EEEE, d MMMM y 'г'. G","dateFormatItem-yyyyMEd":"E, dd.MM.y G","dateFormatItem-Md":"dd.MM","dayPeriods-format-abbr-am":"до полудня","dateFormatItem-yMd":"dd.MM.y","dateFormatItem-yM":"MM.y","months-standAlone-wide":["Мухаррам","Сафар","Раби-уль-авваль","Раби-уль-ахир","Джумад-уль-авваль","Джумад-уль-ахир","Раджаб","Шаабан","Рамадан","Шавваль","Зуль-Каада","Зуль-Хиджжа"],"timeFormat-short":"H:mm","quarters-format-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"timeFormat-long":"H:mm:ss z","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"QQQ y 'г'.","dateFormatItem-yyyyMMMM":"LLLL y G","dateFormatItem-MMdd":"dd.MM","months-format-abbr":["Мухаррам","Сафар","Раби-уль-авваль","Раби-уль-ахир","Джумад-уль-авваль","Джумад-уль-ахир","Раджаб","Шаабан","Рамадан","Шавваль","Зуль-Каада","Зуль-Хиджжа"],"dateFormatItem-yyQ":"Q yy G","timeFormat-full":"H:mm:ss zzzz","dateFormatItem-E":"ccc","dateFormatItem-H":"H","months-standAlone-abbr":["Мухаррам","Сафар","Раби-уль-авваль","Раби-уль-ахир","Джумад-уль-авваль","Джумад-уль-ахир","Раджаб","Шаабан","Рамадан","Шавваль","Зуль-Каада","Зуль-Хиджжа"],"quarters-format-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"quarters-standAlone-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"dateFormatItem-yyyyMMMEd":"E, d MMM y G","dateFormatItem-M":"L","days-standAlone-wide":["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],"dateFormatItem-yyyyMMM":"LLL y G","dateFormatItem-yyyyMMMd":"d MMM y G","dateFormatItem-yyMMM":"LLL yy G","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"days-standAlone-abbr":["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","dateTimeFormat-long":"{1}, {0}","dayPeriods-format-narrow-am":"дп","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, dd.MM","dateTimeFormat-full":"{1}, {0}","days-format-wide":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"dateFormatItem-yyyyMM":"MM.yyyy G","dateFormatItem-yyMM":"MM.yy G","dayPeriods-format-abbr-pm":"после полудня","days-format-abbr":["вс","пн","вт","ср","чт","пт","сб"],"dateFormatItem-yMMMd":"d MMM y 'г'.","days-format-narrow":["вс","пн","вт","ср","чт","пт","сб"],"dateFormatItem-yyyyMd":"dd.MM.y G","days-standAlone-narrow":["В","П","В","С","Ч","П","С"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"до полудня","dateFormat-short":"dd.MM.yy G","dateFormatItem-yMMMEd":"E, d MMM y","dateFormatItem-Ed":"E, d","dateFormat-medium":"dd.MM.yyyy G","dateFormatItem-yyyyM":"MM.y G","dayPeriods-format-narrow-pm":"пп","dateFormatItem-yyyyQQQQ":"QQQQ y 'г'. G","dateTimeFormat-short":"{1}, {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yyyy":"y G"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/ru/number.js b/lib/dojo/cldr/nls/ru/number.js
index bfa8f2fd5..bc5c99048 100644
--- a/lib/dojo/cldr/nls/ru/number.js
+++ b/lib/dojo/cldr/nls/ru/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/ru/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/ru/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"не число","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 триллиона","decimalFormat-short":"000 трлн"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sk/currency.js b/lib/dojo/cldr/nls/sk/currency.js
index 8fe9859b2..4dd71f13f 100644
--- a/lib/dojo/cldr/nls/sk/currency.js
+++ b/lib/dojo/cldr/nls/sk/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/sk/currency",{"HKD_displayName":"Hong Kongský dolár","CHF_displayName":"Švajčiarský frank","CAD_displayName":"Kanadský dolár","CNY_displayName":"Čínsky Yuan Renminbi","AUD_displayName":"Austrálsky dolár","JPY_displayName":"Japonský yen","USD_displayName":"US dolár","GBP_displayName":"Britská libra","EUR_displayName":"Euro"}); \ No newline at end of file
+define("dojo/cldr/nls/sk/currency",{"HKD_displayName":"Hongkongský dolár","CHF_displayName":"Švajčiarský frank","JPY_symbol":"JPY","CAD_displayName":"Kanadský dolár","HKD_symbol":"HKD","CNY_displayName":"Čínsky jüan","USD_symbol":"USD","AUD_displayName":"Austrálsky dolár","JPY_displayName":"Japonský jen","CAD_symbol":"CAD","USD_displayName":"Americký dolár","EUR_symbol":"EUR","CNY_symbol":"CNY","GBP_displayName":"Britská libra","GBP_symbol":"GBP","AUD_symbol":"AUD","EUR_displayName":"Euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sk/gregorian.js b/lib/dojo/cldr/nls/sk/gregorian.js
index c5629b3ad..2c9f6978a 100644
--- a/lib/dojo/cldr/nls/sk/gregorian.js
+++ b/lib/dojo/cldr/nls/sk/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/sk/gregorian",{"field-dayperiod":"Časť dňa","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"popoludní","field-minute":"Minúta","eraNames":["pred n.l.","n.l."],"dateFormatItem-MMMEd":"E, d. MMM","field-day-relative+-1":"Včera","field-weekday":"Deň v týždni","dateFormatItem-yQQQ":"QQQ y","field-day-relative+-2":"Predvčerom","field-day-relative+-3":"Pred tromi dňami","days-standAlone-wide":["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],"months-standAlone-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"field-era":"Éra","field-hour":"Hodina","dayPeriods-format-wide-am":"dopoludnia","timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],"dateFormatItem-yMMM":"LLL y","field-day-relative+0":"Dnes","field-day-relative+1":"Zajtra","days-standAlone-narrow":["N","P","U","S","Š","P","S"],"eraAbbr":["pred n.l.","n.l."],"field-day-relative+2":"Pozajtra","field-day-relative+3":"O tri dni","dateFormatItem-yyyyMMMM":"LLLL y","dateFormat-long":"d. MMMM y","timeFormat-medium":"H:mm:ss","dateFormatItem-EEEd":"EEE, d.","field-zone":"Pásmo","dateFormatItem-Hm":"H:mm","dateFormat-medium":"d.M.yyyy","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yyQQQQ":"QQQQ yy","quarters-standAlone-wide":["1. štvrťrok","2. štvrťrok","3. štvrťrok","4. štvrťrok"],"dateFormatItem-yMMMM":"LLLL y","dateFormatItem-ms":"mm:ss","field-year":"Rok","months-standAlone-wide":["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],"field-week":"Týždeň","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"H:mm:ss z","months-format-abbr":["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],"timeFormat-short":"H:mm","dateFormatItem-H":"H","field-month":"Mesiac","dateFormatItem-MMMMd":"d. MMMM","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["ne","po","ut","st","št","pi","so"],"dateFormatItem-mmss":"mm:ss","days-format-narrow":["N","P","U","S","Š","P","S"],"field-second":"Sekunda","field-day":"Deň","dateFormatItem-MEd":"E, d.M.","months-format-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"days-standAlone-abbr":["ne","po","ut","st","št","pi","so"],"dateFormat-short":"d.M.yyyy","dateFormatItem-yyyyM":"M.yyyy","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"EEE, d.M.yyyy","months-format-wide":["januára","februára","marca","apríla","mája","júna","júla","augusta","septembra","októbra","novembra","decembra"],"dateFormatItem-d":"d.","quarters-format-wide":["1. štvrťrok","2. štvrťrok","3. štvrťrok","4. štvrťrok"],"days-format-wide":["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],"eraNarrow":["pred n.l.","n.l."]}); \ No newline at end of file
+define("dojo/cldr/nls/sk/gregorian",{"days-standAlone-short":["Ne","Po","Ut","St","Št","Pi","So"],"months-format-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Deň v týždni","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E d. M. y","dateFormatItem-MMMEd":"E, d. MMM.","eraNarrow":["pred n.l.","n.l."],"days-format-short":["Ne","Po","Ut","St","Št","Pi","So"],"dateFormat-long":"d. MMMM y","months-format-wide":["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"popoludní","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yMd":"d.M.yyyy","field-era":"Éra","dateFormatItem-yM":"M.yyyy","months-standAlone-wide":["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],"timeFormat-short":"H:mm","quarters-format-wide":["1. štvrťrok","2. štvrťrok","3. štvrťrok","4. štvrťrok"],"timeFormat-long":"H:mm:ss z","field-year":"Rok","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Hodina","months-format-abbr":["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"H:mm:ss zzzz","field-day-relative+0":"Dnes","field-day-relative+1":"Zajtra","field-day-relative+2":"Pozajtra","dateFormatItem-H":"H","months-standAlone-abbr":["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["1. štvrťrok","2. štvrťrok","3. štvrťrok","4. štvrťrok"],"dateFormatItem-M":"L.","days-standAlone-wide":["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],"dateFormatItem-MMMMd":"d. MMMM","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1Q","2Q","3Q","4Q"],"eraAbbr":["pred n.l.","n.l."],"field-minute":"Minúta","field-dayperiod":"Časť dňa","days-standAlone-abbr":["ne","po","ut","st","št","pi","so"],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Včera","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"Predvčerom","dateFormatItem-MMMd":"d. MMM.","dateFormatItem-MEd":"E, d.M.","dateTimeFormat-full":"{1} {0}","dateFormatItem-yMMMM":"LLLL y","field-day":"Deň","days-format-wide":["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],"field-zone":"Časové pásmo","dateFormatItem-y":"y","months-standAlone-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"field-year-relative+-1":"Minulý rok","field-month-relative+-1":"Posledný mesiac","dateFormatItem-hm":"h:mm a","days-format-abbr":["ne","po","ut","st","št","pi","so"],"dateFormatItem-yMMMd":"d.M.yyyy","eraNames":["pred n.l.","n.l."],"days-format-narrow":["N","P","U","S","Š","P","S"],"days-standAlone-narrow":["N","P","U","S","Š","P","S"],"dateFormatItem-MMM":"LLL","field-month":"Mesiac","dayPeriods-format-wide-am":"dopoludnia","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormat-short":"d.M.yyyy","field-second":"Sekunda","dateFormatItem-yMMMEd":"E, d. MMM y","field-month-relative+0":"Tento mesiac","field-month-relative+1":"Budúci mesiac","dateFormatItem-Ed":"E d.","field-week":"Týždeň","dateFormat-medium":"d.M.yyyy","field-year-relative+0":"Tento rok","field-week-relative+-1":"Minulý týždeň","dateFormatItem-yyyyM":"M.yyyy","field-year-relative+1":"Budúci rok","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"Tento týždeň","field-week-relative+1":"Budúci týždeň"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sk/number.js b/lib/dojo/cldr/nls/sk/number.js
index 3bbb8cac6..7290e9a39 100644
--- a/lib/dojo/cldr/nls/sk/number.js
+++ b/lib/dojo/cldr/nls/sk/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/sk/number",{"currencyFormat":"#,##0.00 ¤","group":" ","decimal":","}); \ No newline at end of file
+define("dojo/cldr/nls/sk/number",{"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 biliónov","decimalFormat-short":"000 bil'.'"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sl/currency.js b/lib/dojo/cldr/nls/sl/currency.js
index a704c6f4b..ac3e5a034 100644
--- a/lib/dojo/cldr/nls/sl/currency.js
+++ b/lib/dojo/cldr/nls/sl/currency.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/cldr/nls/sl/gregorian.js b/lib/dojo/cldr/nls/sl/gregorian.js
index 2f695f40f..7c4fe1c5f 100644
--- a/lib/dojo/cldr/nls/sl/gregorian.js
+++ b/lib/dojo/cldr/nls/sl/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/sl/gregorian",{"field-dayperiod":"Čas dneva","dayPeriods-format-wide-pm":"pop.","field-minute":"Minuta","eraNames":["pred našim štetjem","naše štetje"],"dateFormatItem-MMMEd":"E., d. MMM","field-day-relative+-1":"Včeraj","field-weekday":"Dan v tednu","field-day-relative+-2":"Predvčerajšnjim","field-day-relative+-3":"Pred tremi dnevi","days-standAlone-wide":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"months-standAlone-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"field-era":"Doba","field-hour":"Ura","dayPeriods-format-wide-am":"dop.","dateFormatItem-y":"y","timeFormat-full":"HH:mm:ss zzzz","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"dateFormatItem-Ed":"E., d.","dateFormatItem-yMMM":"MMM y","field-day-relative+0":"Danes","field-day-relative+1":"Jutri","days-standAlone-narrow":["n","p","t","s","č","p","s"],"eraAbbr":["pr. n. št.","po Kr."],"field-day-relative+2":"Pojutrišnjem","field-day-relative+3":"Čez tri dni","dateFormatItem-yyyyMMMM":"MMMM y","dateFormat-long":"dd. MMMM y","timeFormat-medium":"HH:mm:ss","field-zone":"Območje","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d. MMM yyyy","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-wide":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"dateFormatItem-ms":"mm:ss","field-year":"Leto","field-week":"Teden","months-standAlone-wide":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q/yy","timeFormat-long":"HH:mm:ss z","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","avg.","sep.","okt.","nov.","dec."],"timeFormat-short":"HH:mm","field-month":"Mesec","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["ned","pon","tor","sre","čet","pet","sob"],"dateFormatItem-mmss":"mm:ss","days-format-narrow":["n","p","t","s","č","p","s"],"field-second":"Sekunda","field-day":"Dan","dateFormatItem-MEd":"E., d. MM.","months-format-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"days-standAlone-abbr":["ned","pon","tor","sre","čet","pet","sob"],"dateFormat-short":"d. MM. yy","dateFormatItem-yyyyM":"M/yyyy","dateFormatItem-yMMMEd":"E., d. MMM y","dateFormat-full":"EEEE, dd. MMMM y","dateFormatItem-Md":"d. M.","dateFormatItem-yMEd":"E., d. M. y","months-format-wide":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"quarters-format-wide":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"days-format-wide":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"eraNarrow":["pr. n. št.","po Kr."]}); \ No newline at end of file
+define("dojo/cldr/nls/sl/gregorian",{"days-standAlone-short":["ned.","pon.","tor.","sre.","čet.","pet.","sob."],"months-format-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Dan v tednu","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E, d. M. y","dateFormatItem-MMMEd":"E, d. MMM","eraNarrow":["pr. n. št.","po Kr."],"days-format-short":["ned.","pon.","tor.","sre.","čet.","pet.","sob."],"dateFormat-long":"dd. MMMM y","months-format-wide":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"pop.","dateFormat-full":"EEEE, dd. MMMM y","dateFormatItem-Md":"d. M.","dateFormatItem-yMd":"d. M. y","field-era":"Doba","dateFormatItem-yM":"M/y","months-standAlone-wide":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"timeFormat-long":"HH:mm:ss z","field-year":"Leto","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Ura","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","avg.","sep.","okt.","nov.","dec."],"dateFormatItem-yyQ":"Q/yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Danes","field-day-relative+1":"Jutri","field-day-relative+2":"Pojutrišnjem","dateFormatItem-H":"HH","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"dateFormatItem-M":"L","days-standAlone-wide":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","eraAbbr":["pr. n. št.","po Kr."],"field-minute":"Minuta","field-dayperiod":"Čas dneva","days-standAlone-abbr":["ned","pon","tor","sre","čet","pet","sob"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Včeraj","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"Predvčerajšnjim","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E, d. MM.","dateTimeFormat-full":"{1} {0}","field-day":"Dan","days-format-wide":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"field-zone":"Območje","dateFormatItem-y":"y","months-standAlone-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"field-year-relative+-1":"Lani","field-month-relative+-1":"Prejšnji mesec","dateFormatItem-hm":"h:mm a","days-format-abbr":["ned.","pon.","tor.","sre.","čet.","pet.","sob."],"dateFormatItem-yMMMd":"MMM d, y","eraNames":["pred našim štetjem","naše štetje"],"days-format-narrow":["n","p","t","s","č","p","s"],"field-month":"Mesec","days-standAlone-narrow":["n","p","t","s","č","p","s"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"dop.","dateFormat-short":"d. MM. yy","field-second":"Sekunda","dateFormatItem-yMMMEd":"E, d. MMM y","field-month-relative+0":"Ta mesec","field-month-relative+1":"Naslednji mesec","dateFormatItem-Ed":"E, d.","field-week":"Teden","dateFormat-medium":"d. MMM yyyy","field-year-relative+0":"Letos","field-week-relative+-1":"Prejšnji teden","dateFormatItem-yyyyM":"M/yyyy","field-year-relative+1":"Naslednje leto","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"Ta teden","field-week-relative+1":"Naslednji teden"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sl/number.js b/lib/dojo/cldr/nls/sl/number.js
index 60bceac74..fbfac1639 100644
--- a/lib/dojo/cldr/nls/sl/number.js
+++ b/lib/dojo/cldr/nls/sl/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/sl/number",{"group":".","percentSign":"%","exponential":"e","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/sl/number",{"group":".","percentSign":"%","exponential":"e","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-long":"000 bilijona","decimalFormat-short":"000 bil'.'"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sv/buddhist.js b/lib/dojo/cldr/nls/sv/buddhist.js
new file mode 100644
index 000000000..c9312eaa9
--- /dev/null
+++ b/lib/dojo/cldr/nls/sv/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/sv/buddhist",{"dateFormatItem-yM":"G yyyy-MM","dateFormatItem-yQ":"G yyyy Q","dayPeriods-format-wide-pm":"em","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"G y QQQ","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"fm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"dateFormatItem-y":"y G","timeFormat-full":"'kl'. HH:mm:ss zzzz","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["S","M","T","O","T","F","L"],"eraAbbr":["BE"],"dateFormatItem-yyyyMM":"G yyyy-MM","dateFormat-long":"d MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d/M","dateFormatItem-yyMM":"G yy-MM","dateFormat-medium":"d MMM y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"e","dateFormatItem-yyMMM":"MMM -yy G","dateFormatItem-yMd":"G yyyy-MM-dd","quarters-standAlone-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"dateFormatItem-ms":"mm:ss","dateFormatItem-yyyyQQQQ":"QQQQ y G","dayPeriods-format-narrow-am":"f","months-standAlone-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"dateFormatItem-MMMMEd":"E d:'e' MMMM","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q yy G","months-format-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-MMMMd":"d:'e' MMMM","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["sön","mån","tis","ons","tors","fre","lör"],"dateFormatItem-M":"L","days-format-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yMMMd":"d MMM y G","dateFormatItem-MEd":"E d/M","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-short":["sö","må","ti","on","to","fr","lö"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["sön","mån","tis","ons","tor","fre","lör"],"dayPeriods-format-abbr-pm":"EM","dateFormat-short":"G yyyy-MM-dd","dateFormatItem-yMMMEd":"E d MMM y G","dateFormat-full":"EEEE d MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, G yyyy-MM-dd","months-format-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"dayPeriods-format-abbr-am":"FM","days-format-short":["sö","må","ti","on","to","fr","lö"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"days-format-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sv/currency.js b/lib/dojo/cldr/nls/sv/currency.js
index 0fb6bf18a..f25e638a6 100644
--- a/lib/dojo/cldr/nls/sv/currency.js
+++ b/lib/dojo/cldr/nls/sv/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/sv/currency",{"HKD_displayName":"Hongkong-dollar","CHF_displayName":"schweizisk franc","CHF_symbol":"CHF","CAD_displayName":"kanadensisk dollar","CNY_displayName":"kinesisk yuan renminbi","AUD_displayName":"australisk dollar","JPY_displayName":"japansk yen","CAD_symbol":"CAD","USD_displayName":"US-dollar","CNY_symbol":"CNY","GBP_displayName":"brittiskt pund sterling","EUR_displayName":"euro"}); \ No newline at end of file
+define("dojo/cldr/nls/sv/currency",{"HKD_displayName":"Hongkong-dollar","CHF_displayName":"schweizisk franc","JPY_symbol":"JP¥","CAD_displayName":"kanadensisk dollar","HKD_symbol":"HK$","CNY_displayName":"kinesisk yuan renminbi","USD_symbol":"US$","AUD_displayName":"australisk dollar","JPY_displayName":"japansk yen","CAD_symbol":"CAN$","USD_displayName":"US-dollar","EUR_symbol":"€","CNY_symbol":"CN¥","GBP_displayName":"brittiskt pund sterling","GBP_symbol":"GB£","AUD_symbol":"AU$","EUR_displayName":"euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sv/gregorian.js b/lib/dojo/cldr/nls/sv/gregorian.js
index aee96c11e..ca98ab019 100644
--- a/lib/dojo/cldr/nls/sv/gregorian.js
+++ b/lib/dojo/cldr/nls/sv/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/sv/gregorian",{"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"veckodag","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, yyyy-MM-dd","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d MMMM y","months-format-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"em","dateFormat-full":"EEEE'en' 'den' d:'e' MMMM y","dateFormatItem-Md":"d/M","dateFormatItem-MMMMEEEd":"EEE d MMMM","field-era":"era","dateFormatItem-yM":"yyyy-MM","months-standAlone-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"timeFormat-short":"HH:mm","quarters-format-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"timeFormat-long":"HH:mm:ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"yyyy Q","field-hour":"timme","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"'kl'. HH:mm:ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgon","field-day-relative+2":"i övermorgon","field-day-relative+3":"i överövermorgon","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"dateFormatItem-M":"L","days-standAlone-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"dateFormatItem-yyyyMMM":"MMM y","dateFormatItem-MMMMd":"d:'e' MMMM","dateFormatItem-yyMMM":"MMM -yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minut","field-dayperiod":"fm/em","days-standAlone-abbr":["sön","mån","tis","ons","tors","fre","lör"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"i går","field-day-relative+-2":"i förrgår","field-day-relative+-3":"i förrförrgår","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E d/M","field-day":"dag","days-format-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"field-zone":"tidszon","dateFormatItem-yyyyMM":"yyyy-MM","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"h:mm a","days-format-abbr":["sön","mån","tis","ons","tors","fre","lör"],"eraNames":["före Kristus","efter Kristus"],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"månad","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"fm","dateFormatItem-MMMMEd":"E d:'e' MMMM","dateFormat-short":"yyyy-MM-dd","dateFormatItem-MMd":"d/M","field-second":"sekund","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"vecka","dateFormat-medium":"d MMM y","dateFormatItem-yyyyQQQQ":"QQQQ y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"}); \ No newline at end of file
+define("dojo/cldr/nls/sv/gregorian",{"days-standAlone-short":["sö","må","ti","on","to","fr","lö"],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"veckodag","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"E, yyyy-MM-dd","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["f.Kr.","e.Kr."],"days-format-short":["sö","må","ti","on","to","fr","lö"],"dateFormat-long":"d MMMM y","months-format-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"em","dateFormat-full":"EEEE'en' 'den' d:'e' MMMM y","dateFormatItem-Md":"d/M","dayPeriods-format-abbr-am":"FM","dateFormatItem-yMd":"yyyy-MM-dd","dateFormatItem-yM":"yyyy-MM","field-era":"era","months-standAlone-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"timeFormat-short":"HH:mm","quarters-format-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"timeFormat-long":"HH:mm:ss z","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"yyyy Q","field-year":"år","dateFormatItem-MMdd":"dd/MM","field-hour":"timme","months-format-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"'kl'. HH:mm:ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgon","field-day-relative+2":"i övermorgon","dateFormatItem-H":"HH","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"dateFormatItem-M":"L","days-standAlone-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"dateFormatItem-yyyyMMM":"MMM y","dateFormatItem-MMMMd":"d:'e' MMMM","dateFormatItem-yyMMM":"MMM -yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minut","field-dayperiod":"fm/em","days-standAlone-abbr":["sön","mån","tis","ons","tor","fre","lör"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"i går","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"f","field-day-relative+-2":"i förrgår","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E d/M","dateTimeFormat-full":"{1} {0}","field-day":"dag","days-format-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"field-zone":"tidszon","dateFormatItem-yyyyMM":"yyyy-MM","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-year-relative+-1":"i fjol","field-month-relative+-1":"förra månaden","dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"h:mm a","dayPeriods-format-abbr-pm":"EM","days-format-abbr":["sön","mån","tis","ons","tors","fre","lör"],"dateFormatItem-yMMMd":"d MMM y","eraNames":["före Kristus","efter Kristus"],"days-format-narrow":["S","M","T","O","T","F","L"],"days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"LLL","field-month":"månad","dayPeriods-format-wide-am":"fm","dateFormatItem-MMMMEd":"E d:'e' MMMM","dateFormat-short":"yyyy-MM-dd","dateFormatItem-MMd":"d/M","field-second":"sekund","dateFormatItem-yMMMEd":"E d MMM y","field-month-relative+0":"denna månad","field-month-relative+1":"nästa månad","dateFormatItem-Ed":"E d","field-week":"vecka","dateFormat-medium":"d MMM y","field-year-relative+0":"i år","field-week-relative+-1":"förra veckan","field-year-relative+1":"nästa år","dayPeriods-format-narrow-pm":"e","dateFormatItem-yyyyQQQQ":"QQQQ y","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"denna vecka","field-week-relative+1":"nästa vecka"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sv/hebrew.js b/lib/dojo/cldr/nls/sv/hebrew.js
new file mode 100644
index 000000000..67bacd543
--- /dev/null
+++ b/lib/dojo/cldr/nls/sv/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/sv/hebrew",{"dateFormatItem-yM":"yyyy-MM","dateFormatItem-yQ":"yyyy Q","dayPeriods-format-wide-pm":"em","dateFormatItem-MMMEd":"E d MMM","days-standAlone-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"dayPeriods-format-wide-am":"fm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"timeFormat-full":"'kl'. HH:mm:ss zzzz","months-standAlone-abbr":["tishrí","heshván","kislév","tevét","shevát","adár I","adár","nisán","ijjár","siván","tammúz","ab","elúl"],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","O","T","F","L"],"eraAbbr":["AM"],"dateFormat-long":"d MMMM y","dateFormat-medium":"d MMM y","dayPeriods-format-narrow-pm":"e","dateFormatItem-yMd":"yyyy-MM-dd","quarters-standAlone-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"dayPeriods-format-narrow-am":"f","months-standAlone-wide":["tishrí","heshván","kislév","tevét","shevát","adár I","adár","nisán","ijjár","siván","tammúz","ab","elúl"],"dateFormatItem-MMMd":"d MMM","months-format-abbr":["tishrí","heshván","kislév","tevét","shevát","adár I","adár","nisán","ijjár","siván","tammúz","ab","elúl"],"quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["sön","mån","tis","ons","tors","fre","lör"],"days-format-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E d/M","days-standAlone-short":["sö","må","ti","on","to","fr","lö"],"days-standAlone-abbr":["sön","mån","tis","ons","tor","fre","lör"],"dayPeriods-format-abbr-pm":"EM","dateFormatItem-yMMMEd":"E d MMM y","dateFormat-full":"EEEE'en' 'den' d:'e' MMMM y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E, yyyy-MM-dd","months-format-wide":["tishrí","heshván","kislév","tevét","shevát","adár I","adár","nisán","ijjár","siván","tammúz","ab","elúl"],"dayPeriods-format-abbr-am":"FM","days-format-short":["sö","må","ti","on","to","fr","lö"],"quarters-format-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"months-format-wide-leap":"adár II","days-format-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sv/islamic.js b/lib/dojo/cldr/nls/sv/islamic.js
new file mode 100644
index 000000000..38b8e4ba9
--- /dev/null
+++ b/lib/dojo/cldr/nls/sv/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/sv/islamic",{"dateFormatItem-yM":"yyyy-MM","dateFormatItem-yyyyMMMEd":"E d MMM y G","dateFormatItem-yQ":"yyyy Q","dayPeriods-format-wide-pm":"em","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"fm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"timeFormat-full":"'kl'. HH:mm:ss zzzz","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","jumada-l-ula","jumada-l-akhira","rajab","sha’ban","ramadan","shawwal","dhu-l-ga’da","dhu-l-hijja"],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","O","T","F","L"],"eraAbbr":["AH"],"dateFormatItem-yyyyMM":"G y-MM","dateFormat-long":"d MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d/M","dateFormatItem-yyMM":"G yy-MM","dateFormat-medium":"d MMM y G","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"e","dateFormatItem-yyMMM":"MMM -yy G","dateFormatItem-yMd":"yyyy-MM-dd","quarters-standAlone-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"dateFormatItem-ms":"mm:ss","dateFormatItem-yyyyQQQQ":"QQQQ y G","dayPeriods-format-narrow-am":"f","months-standAlone-wide":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","jumada-l-ula","jumada-l-akhira","rajab","sha’ban","ramadan","shawwal","dhu-l-ga’da","dhu-l-hijja"],"dateFormatItem-yyyyMd":"G y-MM-dd","dateFormatItem-yyyyMMMd":"d MMM y G","dateFormatItem-MMMMEd":"E d:'e' MMMM","dateFormatItem-yyyyMEd":"E, G y-MM-dd","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q yy G","months-format-abbr":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","jumada-l-ula","jumada-l-akhira","rajab","sha’ban","ramadan","shawwal","dhu-l-ga’da","dhu-l-hijja"],"dateFormatItem-MMMMd":"d:'e' MMMM","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["sön","mån","tis","ons","tors","fre","lör"],"dateFormatItem-M":"L","days-format-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E d/M","dateFormatItem-yyyyQQQ":"G y QQQ","days-standAlone-short":["sö","må","ti","on","to","fr","lö"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["sön","mån","tis","ons","tor","fre","lör"],"dayPeriods-format-abbr-pm":"EM","dateFormat-short":"G y-MM-dd","dateFormatItem-yyyyM":"G y-MM","dateFormatItem-yMMMEd":"E d MMM y","dateFormat-full":"EEEE d MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yyyyQ":"G y Q","dateFormatItem-yMEd":"E, yyyy-MM-dd","months-format-wide":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","jumada-l-ula","jumada-l-akhira","rajab","sha’ban","ramadan","shawwal","dhu-l-ga’da","dhu-l-hijja"],"dayPeriods-format-abbr-am":"FM","days-format-short":["sö","må","ti","on","to","fr","lö"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"days-format-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/sv/number.js b/lib/dojo/cldr/nls/sv/number.js
index 89d9db5d6..b4b11594f 100644
--- a/lib/dojo/cldr/nls/sv/number.js
+++ b/lib/dojo/cldr/nls/sv/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/sv/number",{"group":" ","percentSign":"%","exponential":"×10^","scientificFormat":"#E0","percentFormat":"#,##0 %","list":";","infinity":"∞","patternDigit":"#","minusSign":"−","decimal":",","nan":"¤¤¤","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/sv/number",{"scientificFormat":"#E0","currencyDecimal":":","infinity":"∞","list":";","percentSign":"%","minusSign":"−","decimalFormat-short":"000 bn","nan":"¤¤¤","plusSign":"+","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat-long":"000 biljoner","decimalFormat":"#,##0.###","currencyGroup":".","decimal":",","exponential":"×10^"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/th/buddhist.js b/lib/dojo/cldr/nls/th/buddhist.js
index 38c6140e9..3d3600793 100644
--- a/lib/dojo/cldr/nls/th/buddhist.js
+++ b/lib/dojo/cldr/nls/th/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/th/buddhist",{"dateFormatItem-yM":"M/yyyy","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"หลังเที่ยง","eraNames":["พุทธศักราช"],"dateFormatItem-MMMEd":"E d MMM","dateTimeFormat-full":"{1}, {0}","dateFormatItem-yQQQ":"QQQ y","months-standAlone-narrow":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"dateTimeFormat-short":"{1}, {0}","dayPeriods-format-wide-am":"ก่อนเที่ยง","dateTimeFormat-medium":"{1}, {0}","timeFormat-full":"H นาฬิกา m นาที ss วินาที zzzz","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["อ","จ","อ","พ","พ","ศ","ส"],"eraAbbr":["พ.ศ."],"dateFormat-long":"d MMMM y","timeFormat-medium":"H:mm:ss","dateFormatItem-EEEd":"EEE d","dateFormatItem-Hm":"H:mm","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"H:mm:ss","dateTimeFormat-long":"{1}, {0}","dateFormatItem-MMMd":"d MMM","timeFormat-long":"H นาฬิกา m นาที ss วินาที z","months-format-abbr":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","days-format-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-MEd":"E, d/M","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormat-full":"EEEEที่ d MMMM G y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE d/M/yyyy","months-format-wide":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"quarters-format-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"days-format-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"eraNarrow":["พ.ศ."]}); \ No newline at end of file
+define("dojo/cldr/nls/th/buddhist",{"dateFormatItem-yM":"M/yyyy","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"หลังเที่ยง","eraNames":["พุทธศักราช"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"dayPeriods-format-wide-am":"ก่อนเที่ยง","quarters-standAlone-abbr":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"dateFormatItem-y":"G y","timeFormat-full":"H นาฬิกา mm นาที ss วินาที zzzz","months-standAlone-abbr":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"eraAbbr":["พ.ศ."],"dateFormatItem-yyyyMMMM":"MMMM y","dateFormat-long":"d MMMM y","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"หลังเที่ยง","dateFormatItem-yMd":"d/M/yyyy","quarters-standAlone-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"dateFormatItem-yMMMM":"MMMM y","dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"ก่อนเที่ยง","months-standAlone-wide":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"H นาฬิกา mm นาที ss วินาที z","months-format-abbr":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"dateFormatItem-H":"HH","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"days-format-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-mmss":"mm:ss","dateFormatItem-M":"L","days-format-narrow":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, d/M","months-format-narrow":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"days-standAlone-short":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormat-short":"d/M/yy","dateFormatItem-yyyyM":"M/yyyy","dateFormatItem-yMMMEd":"E d MMM y","dateFormat-full":"EEEEที่ d MMMM G y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E d/M/yyyy","months-format-wide":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"days-format-short":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-d":"d","quarters-format-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"eraNarrow":["พ.ศ."],"days-format-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"dateFormatItem-h":"h a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/th/currency.js b/lib/dojo/cldr/nls/th/currency.js
index 66d836e2f..a781a4c13 100644
--- a/lib/dojo/cldr/nls/th/currency.js
+++ b/lib/dojo/cldr/nls/th/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/th/currency",{"HKD_displayName":"ดอลลาร์ฮ่องกง","CHF_displayName":"ฟรังก์สวิส","JPY_symbol":"¥","CAD_displayName":"ดอลลาร์แคนาดา","CNY_displayName":"หยวนเหรินหมินปี้ (สาธารณรัฐประชาชนจีน)","AUD_displayName":"ดอลลาร์ออสเตรเลีย","JPY_displayName":"เยนญี่ปุ่น","USD_displayName":"ดอลลาร์สหรัฐ","GBP_displayName":"ปอนด์สเตอร์ลิง (สหราชอาณาจักร)","EUR_displayName":"ยูโร"}); \ No newline at end of file
+define("dojo/cldr/nls/th/currency",{"HKD_displayName":"ดอลลาร์ฮ่องกง","CHF_displayName":"ฟรังก์สวิส","JPY_symbol":"¥","CAD_displayName":"ดอลลาร์แคนาดา","HKD_symbol":"HK$","CNY_displayName":"หยวนจีน","USD_symbol":"US$","AUD_displayName":"ดอลลาร์ออสเตรเลีย","JPY_displayName":"เยนญี่ปุ่น","CAD_symbol":"CA$","USD_displayName":"ดอลลาร์สหรัฐ","EUR_symbol":"€","CNY_symbol":"CN¥","GBP_displayName":"ปอนด์สเตอร์ลิง (สหราชอาณาจักร)","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"ยูโร"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/th/gregorian.js b/lib/dojo/cldr/nls/th/gregorian.js
index 5198811a2..0bab9b306 100644
--- a/lib/dojo/cldr/nls/th/gregorian.js
+++ b/lib/dojo/cldr/nls/th/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/th/gregorian",{"months-format-narrow":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"field-weekday":"วันในสัปดาห์","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["ก่อน ค.ศ.","ค.ศ."],"dateFormat-long":"d MMMM y","months-format-wide":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"dateTimeFormat-medium":"{1}, {0}","dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"หลังเที่ยง","dateFormat-full":"EEEEที่ d MMMM G y","dateFormatItem-Md":"d/M","field-era":"สมัย","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"timeFormat-short":"H:mm","quarters-format-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"timeFormat-long":"H นาฬิกา m นาที ss วินาที z","field-year":"ปี","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"ชั่วโมง","months-format-abbr":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"H นาฬิกา m นาที ss วินาที zzzz","field-day-relative+0":"วันนี้","field-day-relative+1":"พรุ่งนี้","field-day-relative+2":"มะรืนนี้","dateFormatItem-H":"H","field-day-relative+3":"สามวันต่อจากนี้","months-standAlone-abbr":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"dateFormatItem-M":"L","days-standAlone-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"dateFormatItem-MMMMd":"d MMMM","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","eraAbbr":["ปีก่อน ค.ศ.","ค.ศ."],"field-minute":"นาที","field-dayperiod":"ช่วงวัน","days-standAlone-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"เมื่อวาน","dateTimeFormat-long":"{1}, {0}","field-day-relative+-2":"เมื่อวานซืน","field-day-relative+-3":"สามวันก่อน","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","dateTimeFormat-full":"{1}, {0}","dateFormatItem-yMMMM":"MMMM y","field-day":"วัน","days-format-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"field-zone":"เขต","dateFormatItem-y":"y","months-standAlone-narrow":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"days-format-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"eraNames":["ปีก่อนคริสต์ศักราช","คริสต์ศักราช"],"days-format-narrow":["อ","จ","อ","พ","พ","ศ","ส"],"field-month":"เดือน","days-standAlone-narrow":["อ","จ","อ","พ","พ","ศ","ส"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"ก่อนเที่ยง","dateFormatItem-MMMMEd":"E d MMMM","dateFormat-short":"d/M/yyyy","field-second":"วินาที","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"สัปดาห์","dateFormat-medium":"d MMM y","dateFormatItem-yyyyM":"M/yyyy","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1}, {0}","dateFormatItem-Hms":"H:mm:ss"}); \ No newline at end of file
+define("dojo/cldr/nls/th/gregorian",{"days-standAlone-short":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"months-format-narrow":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"วันในสัปดาห์","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["ก่อน ค.ศ.","ค.ศ."],"days-format-short":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormat-long":"d MMMM y","months-format-wide":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"dateTimeFormat-medium":"{1}, {0}","dayPeriods-format-wide-pm":"หลังเที่ยง","dateFormat-full":"EEEEที่ d MMMM G y","dateFormatItem-Md":"d/M","dateFormatItem-yMd":"d/M/yyyy","field-era":"สมัย","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"timeFormat-short":"HH:mm","quarters-format-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"timeFormat-long":"H นาฬิกา mm นาที ss วินาที z","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","field-year":"ปี","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"ชั่วโมง","months-format-abbr":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"H นาฬิกา mm นาที ss วินาที zzzz","field-day-relative+0":"วันนี้","field-day-relative+1":"พรุ่งนี้","field-day-relative+2":"มะรืนนี้","dateFormatItem-H":"HH","months-standAlone-abbr":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"quarters-format-abbr":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"quarters-standAlone-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"dateFormatItem-M":"L","days-standAlone-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"dateFormatItem-MMMMd":"d MMMM","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"eraAbbr":["ปีก่อน ค.ศ.","ค.ศ."],"field-minute":"นาที","field-dayperiod":"ช่วงวัน","days-standAlone-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"เมื่อวาน","dateFormatItem-h":"h a","dateTimeFormat-long":"{1}, {0}","dayPeriods-format-narrow-am":"ก่อนเที่ยง","field-day-relative+-2":"เมื่อวานซืน","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","dateTimeFormat-full":"{1}, {0}","dateFormatItem-yMMMM":"MMMM y","field-day":"วัน","days-format-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"field-zone":"เขต","dateFormatItem-y":"y","months-standAlone-narrow":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"field-year-relative+-1":"ปีที่แล้ว","field-month-relative+-1":"เดือนที่แล้ว","dateFormatItem-hm":"h:mm a","days-format-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-yMMMd":"d MMM y","eraNames":["ปีก่อนคริสต์ศักราช","คริสต์ศักราช"],"days-format-narrow":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"days-standAlone-narrow":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-MMM":"LLL","field-month":"เดือน","dayPeriods-format-wide-am":"ก่อนเที่ยง","dateFormatItem-MMMMEd":"E d MMMM","dateFormat-short":"d/M/yy","field-second":"วินาที","dateFormatItem-yMMMEd":"E d MMM y","field-month-relative+0":"เดือนนี้","field-month-relative+1":"เดือนหน้า","dateFormatItem-Ed":"E d","field-week":"สัปดาห์","dateFormat-medium":"d MMM y","field-year-relative+0":"ปีนี้","field-week-relative+-1":"สัปดาห์ที่แล้ว","dateFormatItem-yyyyM":"M/yyyy","field-year-relative+1":"ปีหน้า","dateFormatItem-mmss":"mm:ss","dayPeriods-format-narrow-pm":"หลังเที่ยง","dateTimeFormat-short":"{1}, {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","field-week-relative+0":"สัปดาห์นี้","field-week-relative+1":"สัปดาห์หน้า"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/th/hebrew.js b/lib/dojo/cldr/nls/th/hebrew.js
new file mode 100644
index 000000000..6a946be00
--- /dev/null
+++ b/lib/dojo/cldr/nls/th/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/th/hebrew",{"dateFormatItem-yM":"M/yyyy","dateFormatItem-yQ":"Q yyyy","months-standAlone-abbr-leap":"อาดาร์ II","dayPeriods-format-wide-pm":"หลังเที่ยง","eraNames":["ย.ศ."],"dateFormatItem-MMMEd":"E d MMM","dateTimeFormat-full":"{1}, {0}","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"dateTimeFormat-short":"{1}, {0}","dayPeriods-format-wide-am":"ก่อนเที่ยง","dateTimeFormat-medium":"{1}, {0}","months-format-abbr-leap":"อาดาร์ II","quarters-standAlone-abbr":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"timeFormat-full":"H นาฬิกา mm นาที ss วินาที zzzz","months-standAlone-abbr":["ทิชรี","เฮวาน","กีสเลฟ","เตเวต","เชวัต","อาดาร์ I","อาดาร์","นิสซาน","อิยาร์","สีวัน","ตามูซ","อัฟ","เอลอุล"],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"eraAbbr":["ย.ศ."],"dateFormat-long":"d MMMM y","dateFormat-medium":"d MMM y","dayPeriods-format-narrow-pm":"หลังเที่ยง","dateFormatItem-yMd":"d/M/yyyy","quarters-standAlone-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"dayPeriods-format-narrow-am":"ก่อนเที่ยง","dateTimeFormat-long":"{1}, {0}","months-standAlone-wide":["ทิชรี","เฮวาน","กีสเลฟ","เตเวต","เชวัต","อาดาร์ I","อาดาร์","นิสซาน","อิยาร์","สีวัน","ตามูซ","อัฟ","เอลอุล"],"dateFormatItem-MMMd":"d MMM","timeFormat-long":"H นาฬิกา mm นาที ss วินาที z","months-format-abbr":["ทิชรี","เฮวาน","กีสเลฟ","เตเวต","เชวัต","อาดาร์ I","อาดาร์","นิสซาน","อิยาร์","สีวัน","ตามูซ","อัฟ","เอลอุล"],"quarters-format-abbr":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"days-format-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"days-format-narrow":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, d/M","days-standAlone-short":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"days-standAlone-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"months-standAlone-wide-leap":"อาดาร์ II","dateFormat-short":"d/M/yy","dateFormatItem-yMMMEd":"E d MMM y","dateFormat-full":"EEEEที่ d MMMM G y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E d/M/yyyy","months-format-wide":["ทิชรี","เฮวาน","กีสเลฟ","เตเวต","เชวัต","อาดาร์ I","อาดาร์","นิสซาน","อิยาร์","สีวัน","ตามูซ","อัฟ","เอลอุล"],"days-format-short":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"quarters-format-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"months-format-wide-leap":"อาดาร์ II","eraNarrow":["ย.ศ."],"days-format-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/th/islamic.js b/lib/dojo/cldr/nls/th/islamic.js
new file mode 100644
index 000000000..b297efcd1
--- /dev/null
+++ b/lib/dojo/cldr/nls/th/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/th/islamic",{"dateFormatItem-yM":"M/yyyy","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"หลังเที่ยง","eraNames":["ฮิจเราะห์ศักราช"],"dateFormatItem-MMMEd":"E d MMM","dateTimeFormat-full":"{1}, {0}","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormat-short":"{1}, {0}","dayPeriods-format-wide-am":"ก่อนเที่ยง","dateTimeFormat-medium":"{1}, {0}","quarters-standAlone-abbr":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"dateFormatItem-y":"y","timeFormat-full":"H นาฬิกา mm นาที ss วินาที zzzz","months-standAlone-abbr":["มุฮัร.","เศาะ.","รอบี 1","รอบี 2","ญุมา 1","ญุมา 2","เราะ.","ชะอ์.","เราะมะ.","เชาว.","ซุลกิอฺ.","ซุลหิจ."],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"eraAbbr":["ฮ.ศ."],"dateFormat-long":"d MMMM y","dateFormatItem-Hm":"H:mm","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"H:mm:ss","dayPeriods-format-narrow-pm":"หลังเที่ยง","dateFormatItem-yMd":"d/M/yyyy","quarters-standAlone-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"dateFormatItem-yMMMM":"MMMM y","dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"ก่อนเที่ยง","dateTimeFormat-long":"{1}, {0}","months-standAlone-wide":["มุฮะร์รอม","ซอฟาร์","รอบี I","รอบี II","จุมาดา I","จุมาดา II","รอจับ","ชะอะบาน","รอมะดอน","เชาวัล","ดฮุุอัลกิดะห์","ดฮุอัลฮิจจะห์"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","months-format-abbr":["มุฮัร.","เศาะ.","รอบี 1","รอบี 2","ญุมา 1","ญุมา 2","เราะ.","ชะอ์.","เราะมะ.","เชาว.","ซุลกิอฺ.","ซุลหิจ."],"timeFormat-long":"H นาฬิกา mm นาที ss วินาที z","dateFormatItem-H":"H","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"days-format-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-M":"L","days-format-narrow":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-yMMMd":"d MMM y","dateFormatItem-MEd":"E, d/M","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"days-standAlone-short":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"E d MMM y","dateFormat-full":"EEEEที่ d MMMM G y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"E d/M/yyyy","months-format-wide":["มุฮะร์รอม","ซอฟาร์","รอบี I","รอบี II","จุมาดา I","จุมาดา II","รอจับ","ชะอะบาน","รอมะดอน","เชาวัล","ดฮุุอัลกิดะห์","ดฮุอัลฮิจจะห์"],"days-format-short":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-d":"d","quarters-format-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"eraNarrow":["ฮ.ศ."],"days-format-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"dateFormatItem-h":"h a"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/th/number.js b/lib/dojo/cldr/nls/th/number.js
index 4881638b7..2f657cd21 100644
--- a/lib/dojo/cldr/nls/th/number.js
+++ b/lib/dojo/cldr/nls/th/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/th/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;¤-#,##0.00","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/th/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":".","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-long":"000 ล้านล้าน","decimalFormat-short":"000 ล'.'ล'.'"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/tr/buddhist.js b/lib/dojo/cldr/nls/tr/buddhist.js
new file mode 100644
index 000000000..c6eb212f1
--- /dev/null
+++ b/lib/dojo/cldr/nls/tr/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/tr/buddhist",{"dateFormatItem-yM":"MM.y G","dateFormatItem-yQ":"Q y G","dayPeriods-format-wide-pm":"ÖS","dateFormatItem-MMMEd":"dd MMM E","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y G","days-standAlone-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["O","Ş","M","N","M","H","T","A","E","E","K","A"],"dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"ÖÖ","quarters-standAlone-abbr":["Ç1","Ç2","Ç3","Ç4"],"dateFormatItem-y":"y G","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],"dateFormatItem-Ed":"d E","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["P","P","S","Ç","P","C","C"],"dateFormat-long":"dd MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-yyMM":"MM.yy G","dateFormat-medium":"dd MMM y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM yy G","dateFormatItem-yyQQQQ":"QQQQ yy G","dateFormatItem-yMd":"dd.MM.y G","quarters-standAlone-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"dateFormatItem-yMMMM":"MMMM y G","dateFormatItem-ms":"mm:ss","quarters-standAlone-narrow":["1.","2.","3.","4."],"months-standAlone-wide":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"dateFormatItem-MMMd":"dd MMM","quarters-format-narrow":["1.","2.","3.","4."],"dateFormatItem-yyQ":"Q yy G","months-format-abbr":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],"dateFormatItem-H":"HH","quarters-format-abbr":["Ç1","Ç2","Ç3","Ç4"],"days-format-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"dateFormatItem-mmss":"mm:ss","dateFormatItem-M":"L","days-format-narrow":["P","P","S","Ç","P","C","C"],"dateFormatItem-yMMMd":"dd MMM y G","dateFormatItem-MEd":"dd.MM E","months-format-narrow":["O","Ş","M","N","M","H","T","A","E","E","K","A"],"days-standAlone-short":["Pa","Pt","Sa","Ça","Pe","Cu","Ct"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"dateFormat-short":"dd.MM.yyyy G","dateFormatItem-yMMMEd":"dd MMM y G E","dateFormat-full":"dd MMMM y G EEEE","dateFormatItem-Md":"dd.MM","dateFormatItem-yMEd":"dd.MM.y G E","months-format-wide":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"days-format-short":["Pa","Pt","Sa","Ça","Pe","Cu","Ct"],"dateFormatItem-d":"d","quarters-format-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"days-format-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/tr/currency.js b/lib/dojo/cldr/nls/tr/currency.js
index 5a54850a4..b56b56507 100644
--- a/lib/dojo/cldr/nls/tr/currency.js
+++ b/lib/dojo/cldr/nls/tr/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/tr/currency",{"HKD_displayName":"Hong Kong Doları","CHF_displayName":"İsviçre Frangı","JPY_symbol":"¥","CAD_displayName":"Kanada Doları","CNY_displayName":"Çin Yuanı Renminbi","USD_symbol":"$","AUD_displayName":"Avustralya Doları","JPY_displayName":"Japon Yeni","USD_displayName":"ABD Doları","GBP_displayName":"İngiliz Sterlini","EUR_displayName":"Euro"}); \ No newline at end of file
+define("dojo/cldr/nls/tr/currency",{"HKD_displayName":"Hong Kong Doları","CHF_displayName":"İsviçre Frangı","JPY_symbol":"¥","CAD_displayName":"Kanada Doları","HKD_symbol":"HK$","CNY_displayName":"Çin Yuanı","USD_symbol":"$","AUD_displayName":"Avustralya Doları","JPY_displayName":"Japon Yeni","CAD_symbol":"CA$","USD_displayName":"ABD Doları","EUR_symbol":"€","CNY_symbol":"CN¥","GBP_displayName":"İngiliz Sterlini","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"Euro"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/tr/gregorian.js b/lib/dojo/cldr/nls/tr/gregorian.js
index cb19a1aac..0b31c636c 100644
--- a/lib/dojo/cldr/nls/tr/gregorian.js
+++ b/lib/dojo/cldr/nls/tr/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/tr/gregorian",{"months-format-narrow":["O","Ş","M","N","M","H","T","A","E","E","K","A"],"field-weekday":"Haftanın Günü","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"dd.MM.yyyy EEE","dateFormatItem-MMMEd":"dd MMM E","eraNarrow":["MÖ","MS"],"dateFormat-long":"dd MMMM y","months-format-wide":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"dd MMMM y EEEE","dateFormatItem-Md":"dd/MM","field-era":"Miladi Dönem","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"timeFormat-long":"HH:mm:ss z","field-year":"Yıl","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","field-hour":"Saat","months-format-abbr":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Bugün","field-day-relative+1":"Yarın","field-day-relative+2":"Yarından sonraki gün","dateFormatItem-H":"HH","field-day-relative+3":"Üç gün sonra","months-standAlone-abbr":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],"quarters-format-abbr":["Ç1","Ç2","Ç3","Ç4"],"quarters-standAlone-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"dateFormatItem-M":"L","days-standAlone-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"dateFormatItem-MMMMd":"dd MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Ç1","Ç2","Ç3","Ç4"],"eraAbbr":["MÖ","MS"],"field-minute":"Dakika","field-dayperiod":"AM/PM","days-standAlone-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Dün","field-day-relative+-2":"Evvelsi gün","field-day-relative+-3":"Üç gün önce","dateFormatItem-MMMd":"dd MMM","dateFormatItem-MEd":"dd/MM E","dateFormatItem-yMMMM":"MMMM y","field-day":"Gün","days-format-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"field-zone":"Saat Dilimi","dateFormatItem-y":"y","months-standAlone-narrow":["O","Ş","M","N","M","H","T","A","E","E","K","A"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"eraNames":["Milattan Önce","Milattan Sonra"],"days-format-narrow":["P","P","S","Ç","P","C","C"],"field-month":"Ay","days-standAlone-narrow":["P","P","S","Ç","P","C","C"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"dd MMMM E","dateFormat-short":"dd.MM.yyyy","field-second":"Saniye","dateFormatItem-yMMMEd":"dd MMM y EEE","dateFormatItem-Ed":"d E","field-week":"Hafta","dateFormat-medium":"dd MMM y","dateFormatItem-mmss":"mm:ss","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y"}); \ No newline at end of file
+define("dojo/cldr/nls/tr/gregorian",{"days-standAlone-short":["Pa","Pt","Sa","Ça","Pe","Cu","Ct"],"months-format-narrow":["O","Ş","M","N","M","H","T","A","E","E","K","A"],"quarters-standAlone-narrow":["1.","2.","3.","4."],"field-weekday":"Haftanın Günü","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"y/QQQ","dateFormatItem-yMEd":"dd.MM.yyyy E","dateFormatItem-MMMEd":"d MMMM E","eraNarrow":["MÖ","MS"],"days-format-short":["Pa","Pt","Sa","Ça","Pe","Cu","Ct"],"dateFormat-long":"d MMMM y","months-format-wide":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"ÖS","dateFormat-full":"d MMMM y EEEE","dateFormatItem-Md":"dd/MM","dateFormatItem-yMd":"dd.MM.yyyy","field-era":"Miladi Dönem","dateFormatItem-yM":"MM/y","months-standAlone-wide":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"timeFormat-long":"HH:mm:ss z","field-year":"Yıl","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"y/Q","field-hour":"Saat","months-format-abbr":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Bugün","field-day-relative+1":"Yarın","field-day-relative+2":"Öbür gün","dateFormatItem-H":"HH","months-standAlone-abbr":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],"quarters-format-abbr":["Ç1","Ç2","Ç3","Ç4"],"quarters-standAlone-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"dateFormatItem-M":"L","days-standAlone-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"dateFormatItem-MMMMd":"dd MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Ç1","Ç2","Ç3","Ç4"],"eraAbbr":["MÖ","MS"],"field-minute":"Dakika","field-dayperiod":"ÖÖ/ÖS","days-standAlone-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1.","2.","3.","4."],"field-day-relative+-1":"Dün","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"Evvelsi gün","dateFormatItem-MMMd":"d MMMM","dateFormatItem-MEd":"dd/MM E","dateTimeFormat-full":"{1} {0}","dateFormatItem-yMMMM":"MMMM y","field-day":"Gün","days-format-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"field-zone":"Saat Dilimi","dateFormatItem-y":"y","months-standAlone-narrow":["O","Ş","M","N","M","H","T","A","E","E","K","A"],"field-year-relative+-1":"Geçen yıl","field-month-relative+-1":"Geçen ay","dateFormatItem-yyMM":"MM.yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"dateFormatItem-yMMMd":"dd MMM y","eraNames":["Milattan Önce","Milattan Sonra"],"days-format-narrow":["P","P","S","Ç","P","C","C"],"days-standAlone-narrow":["P","P","S","Ç","P","C","C"],"dateFormatItem-MMM":"LLL","field-month":"Ay","dayPeriods-format-wide-am":"ÖÖ","dateFormatItem-MMMMEd":"dd MMMM E","dateFormat-short":"dd.MM.yyyy","field-second":"Saniye","dateFormatItem-yMMMEd":"d MMM y E","field-month-relative+0":"Bu ay","field-month-relative+1":"Gelecek ay","dateFormatItem-Ed":"d E","field-week":"Hafta","dateFormat-medium":"d MMM y","field-year-relative+0":"Bu yıl","field-week-relative+-1":"Geçen hafta","field-year-relative+1":"Gelecek yıl","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y","field-week-relative+0":"Bu hafta","field-week-relative+1":"Gelecek hafta"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/tr/hebrew.js b/lib/dojo/cldr/nls/tr/hebrew.js
new file mode 100644
index 000000000..86c3bfbe3
--- /dev/null
+++ b/lib/dojo/cldr/nls/tr/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/tr/hebrew",{"dateFormatItem-yM":"MM/y","dateFormatItem-yQ":"y/Q","dayPeriods-format-wide-pm":"ÖS","dateFormatItem-MMMEd":"d MMMM E","dateFormatItem-yQQQ":"y/QQQ","days-standAlone-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"dayPeriods-format-wide-am":"ÖÖ","quarters-standAlone-abbr":["Ç1","Ç2","Ç3","Ç4"],"months-standAlone-abbr":["Tişri","Heşvan","Kislev","Tevet","Şevat","Veadar","Adar","Nisan","İyar","Sivan","Tamuz","Av","Elul"],"dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["P","P","S","Ç","P","C","C"],"dateFormat-long":"d MMMM y","dateFormat-medium":"d MMM y","dateFormatItem-yMd":"dd.MM.yyyy","quarters-standAlone-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"quarters-standAlone-narrow":["1.","2.","3.","4."],"months-standAlone-wide":["Tişri","Heşvan","Kislev","Tevet","Şevat","Veadar","Adar","Nisan","İyar","Sivan","Tamuz","Av","Elul"],"dateFormatItem-MMMd":"d MMMM","quarters-format-narrow":["1.","2.","3.","4."],"months-format-abbr":["Tişri","Heşvan","Kislev","Tevet","Şevat","Veadar","Adar","Nisan","İyar","Sivan","Tamuz","Av","Elul"],"quarters-format-abbr":["Ç1","Ç2","Ç3","Ç4"],"days-format-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"days-format-narrow":["P","P","S","Ç","P","C","C"],"dateFormatItem-yMMMd":"dd MMM y","dateFormatItem-MEd":"dd/MM E","days-standAlone-short":["Pa","Pt","Sa","Ça","Pe","Cu","Ct"],"days-standAlone-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"dateFormat-short":"dd.MM.yyyy","dateFormatItem-yMMMEd":"d MMM y E","dateFormat-full":"d MMMM y EEEE","dateFormatItem-Md":"dd/MM","dateFormatItem-yMEd":"dd.MM.yyyy E","months-format-wide":["Tişri","Heşvan","Kislev","Tevet","Şevat","Veadar","Adar","Nisan","İyar","Sivan","Tamuz","Av","Elul"],"days-format-short":["Pa","Pt","Sa","Ça","Pe","Cu","Ct"],"quarters-format-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"months-format-wide-leap":"Adar II","days-format-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/tr/islamic.js b/lib/dojo/cldr/nls/tr/islamic.js
new file mode 100644
index 000000000..54a262b40
--- /dev/null
+++ b/lib/dojo/cldr/nls/tr/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/tr/islamic",{"dateFormatItem-yM":"MM/y","dateFormatItem-yyyyMMMEd":"dd MMM y G E","dateFormatItem-yQ":"y/Q","dayPeriods-format-wide-pm":"ÖS","dateFormatItem-MMMEd":"dd MMM E","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"y/QQQ","days-standAlone-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dayPeriods-format-wide-am":"ÖÖ","quarters-standAlone-abbr":["Ç1","Ç2","Ç3","Ç4"],"dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Muharrem","Safer","Rebiülevvel","Rebiülahir","Cemaziyelevvel","Cemaziyelahir","Recep","Şaban","Ramazan","Şevval","Zilkade","Zilhicce"],"dateFormatItem-Ed":"d E","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["P","P","S","Ç","P","C","C"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"dd MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-yyMM":"MM.yy G","dateFormat-medium":"dd MMM y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM yy G","dateFormatItem-yyQQQQ":"QQQQ yy G","dateFormatItem-yMd":"dd.MM.yyyy","quarters-standAlone-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"dateFormatItem-ms":"mm:ss","quarters-standAlone-narrow":["1.","2.","3.","4."],"months-standAlone-wide":["Muharrem","Safer","Rebiülevvel","Rebiülahir","Cemaziyelevvel","Cemaziyelahir","Recep","Şaban","Ramazan","Şevval","Zilkade","Zilhicce"],"dateFormatItem-yyyyMd":"dd.MM.y G","dateFormatItem-yyyyMMMd":"dd MMM y G","dateFormatItem-yyyyMEd":"dd.MM.y G E","dateFormatItem-MMMd":"dd MMM","quarters-format-narrow":["1.","2.","3.","4."],"dateFormatItem-yyQ":"Q yy G","months-format-abbr":["Muharrem","Safer","Rebiülevvel","Rebiülahir","Cemaziyelevvel","Cemaziyelahir","Recep","Şaban","Ramazan","Şevval","Zilkade","Zilhicce"],"dateFormatItem-H":"HH","quarters-format-abbr":["Ç1","Ç2","Ç3","Ç4"],"days-format-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"dateFormatItem-mmss":"mm:ss","dateFormatItem-M":"L","days-format-narrow":["P","P","S","Ç","P","C","C"],"dateFormatItem-yMMMd":"dd MMM y","dateFormatItem-MEd":"dd.MM E","dateFormatItem-yyyyQQQ":"QQQ y G","days-standAlone-short":["Pa","Pt","Sa","Ça","Pe","Cu","Ct"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"dateFormat-short":"dd.MM.yyyy G","dateFormatItem-yyyyM":"MM.y G","dateFormatItem-yMMMEd":"d MMM y E","dateFormat-full":"dd MMMM y G EEEE","dateFormatItem-Md":"dd.MM","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"dd.MM.yyyy E","months-format-wide":["Muharrem","Safer","Rebiülevvel","Rebiülahir","Cemaziyelevvel","Cemaziyelahir","Recep","Şaban","Ramazan","Şevval","Zilkade","Zilhicce"],"days-format-short":["Pa","Pt","Sa","Ça","Pe","Cu","Ct"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"days-format-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/tr/number.js b/lib/dojo/cldr/nls/tr/number.js
index 1cd3ab7e5..cd0960dbf 100644
--- a/lib/dojo/cldr/nls/tr/number.js
+++ b/lib/dojo/cldr/nls/tr/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/tr/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"% #,##0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+"}); \ No newline at end of file
+define("dojo/cldr/nls/tr/number",{"group":".","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"%#,##0","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","decimalFormat-long":"000 trilyon","decimalFormat-short":"000 T"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-hant/buddhist.js b/lib/dojo/cldr/nls/zh-hant/buddhist.js
index fb929d3d7..b45dfcf9d 100644
--- a/lib/dojo/cldr/nls/zh-hant/buddhist.js
+++ b/lib/dojo/cldr/nls/zh-hant/buddhist.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh-hant/buddhist",{"dateFormatItem-yM":"Gy/M","dateFormatItem-yQ":"Gy年QQQ","dayPeriods-format-wide-pm":"下午","dateFormatItem-MMMEd":"MMMd日E","dateTimeFormat-full":"{1}{0}","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yQQQ":"Gy年QQQ","dateFormatItem-MMdd":"MM/dd","dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-y":"Gy年","timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-yyyy":"y年","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"Gy年M月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-yyyyMMMM":"y年MMMM","dateFormat-long":"Gy年M月d日","timeFormat-medium":"ah:mm:ss","dateFormatItem-EEEd":"d EEE","dateFormatItem-Hm":"H:mm","dateFormatItem-yyMM":"Gyy/MM","dateFormat-medium":"Gy/M/d","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yyMMM":"Gyy年MMM","dateFormatItem-yMd":"Gy/M/d","dateFormatItem-ms":"mm:ss","dateTimeFormat-long":"{1}{0}","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"dateFormatItem-MMMd":"MMMd日","dateFormatItem-yyQ":"Gyy年第Q季度","timeFormat-long":"zah時mm分ss秒","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-H":"H時","timeFormat-short":"ah:mm","quarters-format-abbr":["1季","2季","3季","4季"],"dateFormatItem-MMMMdd":"MMMMdd日","days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-M":"M月","dateFormatItem-yMMMd":"Gy年MMMd日","dateFormatItem-MEd":"M/d(E)","dateFormatItem-hm":"ah:mm","dateFormat-short":"Gy/M/d","dateFormatItem-yyyyM":"y年M月","dateFormatItem-yMMMEd":"Gy年M月d日EEE","dateFormat-full":"Gy年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"Gy/M/d(EEE)","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-d":"d日","quarters-format-wide":["第1季","第2季","第3季","第4季"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-h":"ah時"}); \ No newline at end of file
+define("dojo/cldr/nls/zh-hant/buddhist",{"dateFormatItem-yM":"Gy/M","dateFormatItem-yQ":"Gy年QQQ","dayPeriods-format-wide-pm":"下午","eraNames":["佛曆"],"dateFormatItem-MMMEd":"M月d日E","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yQQQ":"Gy年QQQ","dateFormatItem-MMdd":"MM/dd","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-MMM":"LLL","dateFormatItem-Gy":"Gy年","dayPeriods-format-wide-am":"上午","quarters-standAlone-abbr":["1季度","2季度","3季度","4季度"],"dateFormatItem-y":"Gy年","timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-yyyy":"Gy年","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"Gy年M月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"eraAbbr":["佛曆"],"dateFormat-long":"Gy年M月d日","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","dateFormatItem-yyMM":"Gyy/MM","dateFormat-medium":"Gy/M/d","dateFormatItem-Hms":"H:mm:ss","dayPeriods-format-narrow-pm":"下午","dateFormatItem-yyMMM":"Gyy年M月","dateFormatItem-yMd":"Gy/M/d","quarters-standAlone-wide":["第一季度","第二季度","第三季度","第四季度"],"dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"上午","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"dateFormatItem-MMMd":"M月d日","dateFormatItem-yyQ":"Gyy年第Q季度","timeFormat-long":"zah時mm分ss秒","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-H":"H時","timeFormat-short":"ah:mm","quarters-format-abbr":["1季","2季","3季","4季"],"dateFormatItem-MMMMdd":"M月dd日","days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-M":"M月","days-format-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-yMMMd":"Gy年M月d日","dateFormatItem-MEd":"M/d(E)","days-standAlone-short":["日","一","二","三","四","五","六"],"dateFormatItem-hm":"ah:mm","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormat-short":"Gy/M/d","dateFormatItem-yyyyM":"y年M月","dateFormatItem-yMMMEd":"Gy年M月d日E","dateFormat-full":"Gy年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"Gy/M/d(E)","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"days-format-short":["日","一","二","三","四","五","六"],"dateFormatItem-yyyyMMM":"Gy年M月","dateFormatItem-d":"d日","quarters-format-wide":["第1季","第2季","第3季","第4季"],"eraNarrow":["佛曆"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-h":"ah時"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-hant/currency.js b/lib/dojo/cldr/nls/zh-hant/currency.js
index be12a4e7b..cf31d117d 100644
--- a/lib/dojo/cldr/nls/zh-hant/currency.js
+++ b/lib/dojo/cldr/nls/zh-hant/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh-hant/currency",{"HKD_displayName":"港幣","CHF_displayName":"瑞士法郎","CAD_displayName":"加幣","CNY_displayName":"人民幣","USD_symbol":"$","AUD_displayName":"澳幣","JPY_displayName":"日圓","CNY_symbol":"¥","GBP_displayName":"英鎊","EUR_displayName":"歐元"}); \ No newline at end of file
+define("dojo/cldr/nls/zh-hant/currency",{"HKD_displayName":"港幣","CHF_displayName":"瑞士法郎","JPY_symbol":"¥","CAD_displayName":"加幣","HKD_symbol":"HK$","CNY_displayName":"人民幣","USD_symbol":"$","AUD_displayName":"澳幣","JPY_displayName":"日圓","CAD_symbol":"CA$","USD_displayName":"美金","EUR_symbol":"€","CNY_symbol":"¥","GBP_displayName":"英鎊","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"歐元"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-hant/gregorian.js b/lib/dojo/cldr/nls/zh-hant/gregorian.js
index 98a066dd4..282da047b 100644
--- a/lib/dojo/cldr/nls/zh-hant/gregorian.js
+++ b/lib/dojo/cldr/nls/zh-hant/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh-hant/gregorian",{"field-weekday":"週天","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-yMEd":"yyyy/M/d(EEE)","dateFormatItem-MMMEd":"MMMd日E","eraNarrow":["西元前","西元"],"dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","field-era":"年代","dateFormatItem-yM":"yyyy/M","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"timeFormat-short":"ah:mm","quarters-format-wide":["第1季","第2季","第3季","第4季"],"timeFormat-long":"zah時mm分ss秒","field-year":"年","dateFormatItem-yMMM":"y年M月","dateFormatItem-yQ":"y年QQQ","field-hour":"小時","dateFormatItem-MMdd":"MM/dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","timeFormat-full":"zzzzah時mm分ss秒","field-day-relative+0":"今天","field-day-relative+1":"明天","field-day-relative+2":"後天","dateFormatItem-H":"H時","field-day-relative+3":"大後天","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"quarters-format-abbr":["1季","2季","3季","4季"],"quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"dateFormatItem-M":"M月","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1季","2季","3季","4季"],"eraAbbr":["西元前","西元"],"field-minute":"分鐘","field-dayperiod":"上午/下午","days-standAlone-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateFormatItem-h":"ah時","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","field-day-relative+-3":"大前天","dateFormatItem-MMMd":"MMMd日","dateFormatItem-MEd":"M/d(E)","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-zone":"區域","dateFormatItem-y":"y年","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"ah:mm","days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-yMMMd":"y年MMMd日","eraNames":["西元前","西元"],"days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dateFormat-short":"yy/M/d","field-second":"秒","dateFormatItem-yMMMEd":"y年M月d日EEE","dateFormatItem-Ed":"d日(E)","field-week":"週","dateFormat-medium":"yyyy/M/d","dateFormatItem-yyyyM":"y年M月","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年"}); \ No newline at end of file
+define("dojo/cldr/nls/zh-hant/gregorian",{"days-standAlone-short":["日","一","二","三","四","五","六"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"週天","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-yMEd":"y/M/d(E)","dateFormatItem-MMMEd":"M月d日E","eraNarrow":["西元前","西元"],"dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","days-format-short":["日","一","二","三","四","五","六"],"dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dayPeriods-format-narrow-midDay":"中午","dayPeriods-format-wide-noon":"中午","dateFormatItem-yMd":"y/M/d","field-era":"年代","dateFormatItem-yM":"y/M","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"timeFormat-short":"ah:mm","quarters-format-wide":["第1季","第2季","第3季","第4季"],"timeFormat-long":"zah時mm分ss秒","field-year":"年","dateFormatItem-yMMM":"y年M月","dateFormatItem-yQ":"y年QQQ","dateFormatItem-yyyyMMMM":"y年M月","field-hour":"小時","dateFormatItem-MMdd":"MM/dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","timeFormat-full":"zzzzah時mm分ss秒","dayPeriods-format-narrow-morning":"上午","field-day-relative+0":"今天","field-day-relative+1":"明天","field-day-relative+2":"後天","dateFormatItem-H":"H時","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"quarters-format-abbr":["1季","2季","3季","4季"],"quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"dateFormatItem-M":"M月","dateFormatItem-yyMMM":"yy年M月","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1季","2季","3季","4季"],"eraAbbr":["西元前","西元"],"field-minute":"分鐘","field-dayperiod":"上午/下午","days-standAlone-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"昨天","dateFormatItem-h":"ah時","dateTimeFormat-long":"{1}{0}","dayPeriods-format-narrow-am":"上午","field-day-relative+-2":"前天","dateFormatItem-MMMd":"M月d日","dayPeriods-format-wide-midDay":"中午","dateFormatItem-MEd":"M/d(E)","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-zone":"時區","dateFormatItem-y":"y年","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"field-year-relative+-1":"去年","dayPeriods-format-narrow-night":"晚上","field-month-relative+-1":"上個月","dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"ah:mm","dayPeriods-format-narrow-weeHours":"凌晨","days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-yMMMd":"y年M月d日","eraNames":["西元前","西元"],"dayPeriods-format-narrow-earlyMorning":"清晨","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","field-month":"月","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"M月dd日","dayPeriods-format-wide-weeHours":"凌晨","dateFormat-short":"y/M/d","dayPeriods-format-wide-afternoon":"下午","dayPeriods-format-narrow-afternoon":"下午","dayPeriods-format-narrow-noon":"中午","field-second":"秒","dateFormatItem-yMMMEd":"y年M月d日E","field-month-relative+0":"本月","field-month-relative+1":"下個月","dateFormatItem-Ed":"d日(E)","field-week":"週","dateFormat-medium":"yyyy/M/d","field-year-relative+0":"今年","field-week-relative+-1":"上週","dateFormatItem-yyyyM":"y年M月","field-year-relative+1":"明年","dayPeriods-format-narrow-pm":"下午","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","field-week-relative+0":"本週","field-week-relative+1":"下週"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-hant/hebrew.js b/lib/dojo/cldr/nls/zh-hant/hebrew.js
new file mode 100644
index 000000000..7ba747b98
--- /dev/null
+++ b/lib/dojo/cldr/nls/zh-hant/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/zh-hant/hebrew",{"dateFormatItem-yM":"y/M","dateFormatItem-yQ":"y年QQQ","months-standAlone-abbr-leap":"亞達月 II","dayPeriods-format-wide-pm":"下午","eraNames":["創世紀元"],"dateFormatItem-MMMEd":"M月d日E","dateTimeFormat-full":"{1}{0}","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yQQQ":"y年QQQ","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dayPeriods-format-wide-am":"上午","months-format-abbr-leap":"亞達月 II","quarters-standAlone-abbr":["1季度","2季度","3季度","4季度"],"dateFormatItem-y":"y年","timeFormat-full":"zzzzah時mm分ss秒","months-standAlone-abbr":["提斯利月","瑪西班月","基斯流月","提別月","細罷特月","亞達月 I","亞達月","尼散月","以珥月","西彎月","搭模斯月","埃波月","以祿月"],"dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"y年M月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"eraAbbr":["創世紀元"],"dateFormat-long":"y年M月d日","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"yyyy/M/d","dateFormatItem-Hms":"H:mm:ss","dayPeriods-format-narrow-pm":"下午","dateFormatItem-yMd":"y/M/d","quarters-standAlone-wide":["第一季度","第二季度","第三季度","第四季度"],"dayPeriods-format-narrow-am":"上午","dateTimeFormat-long":"{1}{0}","months-standAlone-wide":["提斯利月","瑪西班月","基斯流月","提別月","細罷特月","亞達月 I","亞達月","尼散月","以珥月","西彎月","搭模斯月","埃波月","以祿月"],"dateFormatItem-MMMd":"M月d日","timeFormat-long":"zah時mm分ss秒","months-format-abbr":["提斯利月","瑪西班月","基斯流月","提別月","細罷特月","亞達月 I","亞達月","尼散月","以珥月","西彎月","搭模斯月","埃波月","以祿月"],"dateFormatItem-H":"H時","timeFormat-short":"ah:mm","quarters-format-abbr":["1季","2季","3季","4季"],"days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-M":"M月","days-format-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-yMMMd":"y年M月d日","dateFormatItem-MEd":"M/d(E)","days-standAlone-short":["日","一","二","三","四","五","六"],"dateFormatItem-hm":"ah:mm","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"months-standAlone-wide-leap":"亞達月 II","dateFormat-short":"y/M/d","dateFormatItem-yMMMEd":"y年M月d日E","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"y/M/d(E)","months-format-wide":["提斯利月","瑪西班月","基斯流月","提別月","細罷特月","亞達月 I","亞達月","尼散月","以珥月","西彎月","搭模斯月","埃波月","以祿月"],"days-format-short":["日","一","二","三","四","五","六"],"dateFormatItem-d":"d日","quarters-format-wide":["第1季","第2季","第3季","第4季"],"months-format-wide-leap":"亞達月 II","eraNarrow":["創世紀元"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-h":"ah時"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-hant/islamic.js b/lib/dojo/cldr/nls/zh-hant/islamic.js
index 5967498db..3e9155a9a 100644
--- a/lib/dojo/cldr/nls/zh-hant/islamic.js
+++ b/lib/dojo/cldr/nls/zh-hant/islamic.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh-hant/islamic",{"dateFormatItem-yM":"yyyy/M","dateFormatItem-yQ":"y年QQQ","dayPeriods-format-wide-pm":"下午","dateFormatItem-MMMEd":"MMMd日E","dateTimeFormat-full":"{1}{0}","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-MMdd":"MM/dd","dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-y":"y年","timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-yyyy":"Gy年","dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"y年M月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormat-long":"Gy年M月d日","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"Gy/M/d","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-ms":"mm:ss","dateTimeFormat-long":"{1}{0}","dateFormatItem-yyyyMd":"Gy/M/d","dateFormatItem-yyyyMMMd":"Gy年M月d日","dateFormatItem-MMMd":"MMMd日","timeFormat-long":"zah時mm分ss秒","timeFormat-short":"ah:mm","dateFormatItem-H":"H時","quarters-format-abbr":["1季","2季","3季","4季"],"days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-MMMMdd":"MMMMdd日","dateFormatItem-M":"M月","dateFormatItem-MEd":"M/d(E)","dateFormatItem-hm":"ah:mm","dateFormat-short":"Gy/M/d","dateFormatItem-yyyyM":"Gy/M","dateFormatItem-yMMMEd":"y年M月d日EEE","dateFormat-full":"Gy年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yyyyQ":"Gy年QQQ","dateFormatItem-yMEd":"yyyy/M/d(EEE)","dateFormatItem-yyyyMMM":"Gy年M月","dateFormatItem-d":"d日","quarters-format-wide":["第1季","第2季","第3季","第4季"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-h":"ah時"}); \ No newline at end of file
+define("dojo/cldr/nls/zh-hant/islamic",{"dateFormatItem-yM":"y/M","dateFormatItem-yyyyMMMEd":"Gy年M月d日E","dateFormatItem-yQ":"y年QQQ","dayPeriods-format-wide-pm":"下午","eraNames":["伊斯蘭曆"],"dateFormatItem-MMMEd":"M月d日E","dateTimeFormat-full":"{1}{0}","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-MMdd":"MM/dd","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-Gy":"Gy年","dayPeriods-format-wide-am":"上午","quarters-standAlone-abbr":["1季度","2季度","3季度","4季度"],"dateFormatItem-y":"y年","timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-yyyy":"Gy年","months-standAlone-abbr":["穆哈蘭姆月","色法爾月","賴比月 I","賴比月 II","主馬達月 I","主馬達月 II","賴哲卜月","舍爾邦月","賴買丹月","閃瓦魯月","都爾喀爾德月","都爾黑哲月"],"dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"y年M月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"eraAbbr":["伊斯蘭曆"],"dateFormat-long":"Gy年M月d日","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"Gy/M/d","dateFormatItem-Hms":"H:mm:ss","dayPeriods-format-narrow-pm":"下午","dateFormatItem-yMd":"Gy/M/d","quarters-standAlone-wide":["第一季度","第二季度","第三季度","第四季度"],"dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"上午","dateTimeFormat-long":"{1}{0}","months-standAlone-wide":["穆哈蘭姆月","色法爾月","賴比月 I","賴比月 II","主馬達月 I","主馬達月 II","賴哲卜月","舍爾邦月","賴買丹月","閃瓦魯月","都爾喀爾德月","都爾黑哲月"],"dateFormatItem-yyyyMd":"Gy/M/d","dateFormatItem-yyyyMMMd":"Gy年M月d日","dateFormatItem-MMMd":"M月d日","months-format-abbr":["穆哈蘭姆月","色法爾月","賴比月 I","賴比月 II","主馬達月 I","主馬達月 II","賴哲卜月","舍爾邦月","賴買丹月","閃瓦魯月","都爾喀爾德月","都爾黑哲月"],"timeFormat-long":"zah時mm分ss秒","dateFormatItem-H":"H時","timeFormat-short":"ah:mm","quarters-format-abbr":["1季","2季","3季","4季"],"dateFormatItem-MMMMdd":"M月dd日","days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-M":"M月","days-format-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-yMMMd":"Gy年M月d日","dateFormatItem-MEd":"M/d(E)","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"days-standAlone-short":["日","一","二","三","四","五","六"],"dateFormatItem-hm":"ah:mm","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormat-short":"Gy/M/d","dateFormatItem-yyyyM":"Gy/M","dateFormatItem-yMMMEd":"y年M月d日E","dateFormat-full":"Gy年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"y/M/d(E)","dateFormatItem-yyyyQ":"Gy年QQQ","months-format-wide":["穆哈蘭姆月","色法爾月","賴比月 I","賴比月 II","主馬達月 I","主馬達月 II","賴哲卜月","舍爾邦月","賴買丹月","閃瓦魯月","都爾喀爾德月","都爾黑哲月"],"days-format-short":["日","一","二","三","四","五","六"],"dateFormatItem-yyyyMMM":"Gy年M月","dateFormatItem-d":"d日","quarters-format-wide":["第1季","第2季","第3季","第4季"],"eraNarrow":["伊斯蘭曆"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-h":"ah時"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-hant/number.js b/lib/dojo/cldr/nls/zh-hant/number.js
index b7f8f06ec..51f24314e 100644
--- a/lib/dojo/cldr/nls/zh-hant/number.js
+++ b/lib/dojo/cldr/nls/zh-hant/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh-hant/number",{"currencyFormat":"¤#,##0.00"}); \ No newline at end of file
+define("dojo/cldr/nls/zh-hant/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":".","nan":"非數值","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+","decimalFormat-long":"000兆","decimalFormat-short":"000T"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-hk/currency.js b/lib/dojo/cldr/nls/zh-hk/currency.js
index 7191c7df6..b92686b81 100644
--- a/lib/dojo/cldr/nls/zh-hk/currency.js
+++ b/lib/dojo/cldr/nls/zh-hk/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh-hk/currency",{"HKD_displayName":"港幣","HKD_symbol":"HK$","CAD_displayName":"加幣","CNY_displayName":"人民幣","USD_symbol":"$","AUD_displayName":"澳幣","JPY_displayName":"日圓","GBP_displayName":"英鎊","EUR_displayName":"歐元"}); \ No newline at end of file
+define("dojo/cldr/nls/zh-hk/currency",{"HKD_displayName":"港幣","JPY_symbol":"¥","CAD_displayName":"加幣","CNY_displayName":"人民幣","USD_symbol":"$","AUD_displayName":"澳幣","JPY_displayName":"日圓","USD_displayName":"美金","GBP_displayName":"英鎊","EUR_displayName":"歐元"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-hk/gregorian.js b/lib/dojo/cldr/nls/zh-hk/gregorian.js
index 436681258..32d28d0ab 100644
--- a/lib/dojo/cldr/nls/zh-hk/gregorian.js
+++ b/lib/dojo/cldr/nls/zh-hk/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh-hk/gregorian",{"dateFormatItem-yM":"yyyy/M","field-minute":"分鐘","eraNames":["西元前","西元"],"field-weekday":"週天","dateFormatItem-MMdd":"MM/dd","field-day-relative+-3":"大前天","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormat-short":"{1} {0}","field-era":"年代","field-hour":"小時","dateTimeFormat-medium":"{1} {0}","quarters-standAlone-abbr":["第1季","第2季","第3季","第4季"],"timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"y年M月","eraAbbr":["西元前","西元"],"field-day-relative+2":"後天","field-day-relative+3":"大後天","dateFormat-long":"y年M月d日","timeFormat-medium":"ah:mm:ss","field-zone":"區域","dateFormat-medium":"yyyy/M/d","quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"field-week":"週","timeFormat-long":"zah時mm分ss秒","dateFormatItem-H":"H時","quarters-format-abbr":["第1季","第2季","第3季","第4季"],"field-second":"秒","dateFormatItem-MEd":"M/d(E)","dateFormat-short":"yy/M/d","dateFormatItem-yMMMEd":"y年M月d日EEE","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"yyyy/M/d(EEE)","quarters-format-wide":["第1季","第2季","第3季","第4季"],"eraNarrow":["西元前","西元"],"dateFormatItem-h":"ah時"}); \ No newline at end of file
+define("dojo/cldr/nls/zh-hk/gregorian",{"dateFormatItem-yQ":"y年QQQ","field-minute":"分鐘","eraNames":["西元前","西元"],"field-weekday":"週天","field-era":"年代","field-hour":"小時","quarters-standAlone-abbr":["第1季","第2季","第3季","第4季"],"timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-yyyy":"y年","dateFormatItem-Ed":"d日(E)","eraAbbr":["西元前","西元"],"field-day-relative+2":"後天","dateFormatItem-yyyyMMMM":"y年M月","field-zone":"時區","dateFormatItem-Hm":"H:mm","field-week-relative+-1":"上週","dateFormatItem-yyMM":"yy-MM","dateFormat-medium":"yyyy/M/d","dateFormatItem-Hms":"H:mm:ss","quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"field-week":"週","field-week-relative+0":"本週","field-week-relative+1":"下週","timeFormat-long":"zah時mm分ss秒","field-month-relative+1":"下個月","dateFormatItem-H":"H時","quarters-format-abbr":["第1季","第2季","第3季","第4季"],"field-second":"秒","dateFormatItem-MEd":"M/d(E)","dateFormat-short":"y/M/d","dateFormatItem-yyyyM":"y年M月","dateFormatItem-yMEd":"y/M/d(E)","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"quarters-format-wide":["第1季","第2季","第3季","第4季"],"field-month-relative+-1":"上個月","eraNarrow":["西元前","西元"],"dateFormatItem-h":"ah時"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-hk/number.js b/lib/dojo/cldr/nls/zh-hk/number.js
index ede243a2b..99df11c33 100644
--- a/lib/dojo/cldr/nls/zh-hk/number.js
+++ b/lib/dojo/cldr/nls/zh-hk/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh-hk/number",{"currencyFormat":"¤#,##0.00"}); \ No newline at end of file
+define("dojo/cldr/nls/zh-hk/number",{"currencyFormat":"¤#,##0.00","decimalFormat-short":"000T","nan":"非數值"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-tw/currency.js b/lib/dojo/cldr/nls/zh-tw/currency.js
index 583a96f04..f8193eff8 100644
--- a/lib/dojo/cldr/nls/zh-tw/currency.js
+++ b/lib/dojo/cldr/nls/zh-tw/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh-tw/currency",{"USD_symbol":"$","EUR_displayName":"歐元","HKD_displayName":"港幣","CAD_displayName":"加幣","JPY_displayName":"日圓","GBP_displayName":"英鎊","AUD_displayName":"澳幣","CNY_displayName":"人民幣"}); \ No newline at end of file
+define("dojo/cldr/nls/zh-tw/currency",{"HKD_displayName":"港幣","JPY_symbol":"¥","CAD_displayName":"加幣","CNY_displayName":"人民幣","USD_symbol":"$","AUD_displayName":"澳幣","JPY_displayName":"日圓","USD_displayName":"美金","GBP_displayName":"英鎊","EUR_displayName":"歐元"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-tw/gregorian.js b/lib/dojo/cldr/nls/zh-tw/gregorian.js
index 5bf9bd984..e5ed51519 100644
--- a/lib/dojo/cldr/nls/zh-tw/gregorian.js
+++ b/lib/dojo/cldr/nls/zh-tw/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh-tw/gregorian",{"quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"quarters-format-abbr":["第1季","第2季","第3季","第4季"],"dateFormat-medium":"yyyy/M/d","field-second":"秒","quarters-standAlone-abbr":["第1季","第2季","第3季","第4季"],"dateFormatItem-MMdd":"MM/dd","dateFormatItem-MEd":"M/d(E)","dateFormatItem-yMEd":"yyyy/M/d(EEE)","field-week":"週","dateFormatItem-H":"H時","eraNarrow":["西元前","西元"],"field-day-relative+-3":"大前天","timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-Md":"M/d","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"eraNames":["西元前","西元"],"field-minute":"分鐘","field-hour":"小時","field-day-relative+2":"後天","field-day-relative+3":"大後天","dateFormat-short":"yy/M/d","dateFormatItem-yMMMEd":"y年M月d日EEE","field-era":"年代","dateFormatItem-yM":"yyyy/M","timeFormat-long":"zah時mm分ss秒","eraAbbr":["西元前","西元"],"dateFormatItem-h":"ah時","dateFormatItem-yMMM":"y年M月","quarters-format-wide":["第1季","第2季","第3季","第4季"],"field-weekday":"週天","field-zone":"區域","dateFormatItem-Ed":"d日(E)"}); \ No newline at end of file
+define("dojo/cldr/nls/zh-tw/gregorian",{"dateFormatItem-yQ":"y年QQQ","field-minute":"分鐘","eraNames":["西元前","西元"],"field-weekday":"週天","field-era":"年代","field-hour":"小時","quarters-standAlone-abbr":["第1季","第2季","第3季","第4季"],"timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-yyyy":"y年","dateFormatItem-Ed":"d日(E)","eraAbbr":["西元前","西元"],"field-day-relative+2":"後天","dateFormatItem-yyyyMMMM":"y年M月","field-zone":"時區","dateFormatItem-Hm":"H:mm","field-week-relative+-1":"上週","dateFormatItem-yyMM":"yy-MM","dateFormat-medium":"yyyy/M/d","dateFormatItem-Hms":"H:mm:ss","quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"field-week":"週","field-week-relative+0":"本週","field-week-relative+1":"下週","timeFormat-long":"zah時mm分ss秒","field-month-relative+1":"下個月","dateFormatItem-H":"H時","quarters-format-abbr":["第1季","第2季","第3季","第4季"],"field-second":"秒","dateFormatItem-MEd":"M/d(E)","dateFormat-short":"y/M/d","dateFormatItem-yyyyM":"y年M月","dateFormatItem-yMEd":"y/M/d(E)","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"quarters-format-wide":["第1季","第2季","第3季","第4季"],"field-month-relative+-1":"上個月","eraNarrow":["西元前","西元"],"dateFormatItem-h":"ah時"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh-tw/number.js b/lib/dojo/cldr/nls/zh-tw/number.js
new file mode 100644
index 000000000..dd92e3213
--- /dev/null
+++ b/lib/dojo/cldr/nls/zh-tw/number.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/zh-tw/number",{"currencyFormat":"¤#,##0.00","decimalFormat-short":"000T","nan":"非數值"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh/buddhist.js b/lib/dojo/cldr/nls/zh/buddhist.js
new file mode 100644
index 000000000..e8fc22202
--- /dev/null
+++ b/lib/dojo/cldr/nls/zh/buddhist.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/zh/buddhist",{"dateFormatItem-yM":"Gy年M月","dateFormatItem-yyyyMMMEd":"Gy年M月d日E","dateFormatItem-yQ":"Gy年第Q季度","dayPeriods-format-wide-pm":"下午","eraNames":["佛历"],"dateFormatItem-MMMEd":"M月d日E","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yQQQ":"Gy年第Q季度","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-MMM":"LLL","dateFormatItem-Gy":"Gy年","dayPeriods-format-wide-am":"上午","quarters-standAlone-abbr":["1季度","2季度","3季度","4季度"],"dateFormatItem-y":"Gy年","timeFormat-full":"zzzzah:mm:ss","dateFormatItem-yyyy":"Gy年","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-Ed":"d日E","dateFormatItem-yMMM":"Gy年M月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"eraAbbr":["佛历"],"dateFormat-long":"Gy年M月d日","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"Gyyyy-M-d","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-narrow-pm":"下午","dateFormatItem-yMd":"y/M/d","quarters-standAlone-wide":["第一季度","第二季度","第三季度","第四季度"],"dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"上午","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"dateFormatItem-yyyyMd":"Gy-M-d","dateFormatItem-yyyyMMMd":"Gy年M月d日","dateFormatItem-yyyyMEd":"Gy-M-dE","dateFormatItem-MMMd":"M月d日","timeFormat-long":"zah:mm:ss","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-H":"H时","timeFormat-short":"ah:mm","quarters-format-abbr":["1季度","2季度","3季度","4季度"],"days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-M":"M月","days-format-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-yMMMd":"y年M月d日","dateFormatItem-MEd":"M-dE","dateFormatItem-yyyyQQQ":"Gy年QQQQ","days-standAlone-short":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-hm":"ah:mm","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormat-short":"Gy-M-d","dateFormatItem-yyyyM":"Gy-M","dateFormatItem-yMMMEd":"Gy年M月d日E","dateFormat-full":"Gy年M月d日EEEE","dateFormatItem-Md":"M-d","dateFormatItem-yMEd":"Gy年M月d日,E","dateFormatItem-yyyyQ":"Gy年QQQ","months-format-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"days-format-short":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-yyyyMMM":"Gy年M月","dateFormatItem-d":"d日","quarters-format-wide":["第一季度","第二季度","第三季度","第四季度"],"eraNarrow":["佛历"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-h":"ah时"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh/currency.js b/lib/dojo/cldr/nls/zh/currency.js
index c0a50f7da..1d67eee60 100644
--- a/lib/dojo/cldr/nls/zh/currency.js
+++ b/lib/dojo/cldr/nls/zh/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh/currency",{"HKD_displayName":"港元","CHF_displayName":"瑞士法郎","CAD_displayName":"加拿大元","CNY_displayName":"人民币","AUD_displayName":"澳大利亚元","JPY_displayName":"日元","USD_displayName":"美元","CNY_symbol":"¥","GBP_displayName":"英镑","EUR_displayName":"欧元"}); \ No newline at end of file
+define("dojo/cldr/nls/zh/currency",{"HKD_displayName":"港元","CHF_displayName":"瑞士法郎","JPY_symbol":"JP¥","CAD_displayName":"加拿大元","HKD_symbol":"HK$","CNY_displayName":"人民币","USD_symbol":"US$","AUD_displayName":"澳大利亚元","JPY_displayName":"日元","CAD_symbol":"CA$","USD_displayName":"美元","EUR_symbol":"€","CNY_symbol":"¥","GBP_displayName":"英镑","GBP_symbol":"£","AUD_symbol":"AU$","EUR_displayName":"欧元"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh/gregorian.js b/lib/dojo/cldr/nls/zh/gregorian.js
index efeedefe1..080ca9437 100644
--- a/lib/dojo/cldr/nls/zh/gregorian.js
+++ b/lib/dojo/cldr/nls/zh/gregorian.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh/gregorian",{"months-format-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"field-weekday":"周天","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-yMEd":"y年M月d日,E","dateFormatItem-MMMEd":"MMMd日E","eraNarrow":["公元前","公元"],"dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M-d","field-era":"时期","dateFormatItem-yM":"yyyy-M","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"timeFormat-short":"ah:mm","quarters-format-wide":["第1季度","第2季度","第3季度","第4季度"],"timeFormat-long":"zah时mm分ss秒","field-year":"年","dateFormatItem-yMMM":"y年MMM","dateFormatItem-yQ":"y年QQQ","dateFormatItem-yyyyMMMM":"y年MMMM","field-hour":"小时","dateFormatItem-MMdd":"MM-dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","timeFormat-full":"zzzzah时mm分ss秒","field-day-relative+0":"今天","field-day-relative+1":"明天","field-day-relative+2":"后天","dateFormatItem-H":"H时","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"quarters-format-abbr":["1季","2季","3季","4季"],"quarters-standAlone-wide":["第1季度","第2季度","第3季度","第4季度"],"dateFormatItem-M":"M月","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1季","2季","3季","4季"],"eraAbbr":["公元前","公元"],"field-minute":"分钟","field-dayperiod":"上午/下午","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateFormatItem-h":"ah时","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","dateFormatItem-MMMd":"MMMd日","dayPeriods-format-wide-midDay":"中午","dateFormatItem-MEd":"M-dE","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-zone":"区域","dateFormatItem-y":"y年","months-standAlone-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"ah:mm","days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-yMMMd":"y年MMMd日","eraNames":["公元前","公元"],"days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dayPeriods-format-wide-weeHours":"凌晨","dateFormat-short":"yy-M-d","dayPeriods-format-wide-afternoon":"下午","field-second":"秒钟","dateFormatItem-yMMMEd":"y年MMMd日EEE","dateFormatItem-Ed":"d日E","field-week":"周","dateFormat-medium":"yyyy-M-d","dateFormatItem-yyyyM":"y年M月","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年"}); \ No newline at end of file
+define("dojo/cldr/nls/zh/gregorian",{"days-standAlone-short":["周日","周一","周二","周三","周四","周五","周六"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"星期","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-yMEd":"y/M/dEEE","dateFormatItem-MMMEd":"M月d日E","eraNarrow":["公元前","公元"],"dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","days-format-short":["周日","周一","周二","周三","周四","周五","周六"],"dateFormat-long":"y年M月d日","months-format-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dayPeriods-format-narrow-midDay":"中午","dayPeriods-format-wide-noon":"中午","dateFormatItem-yMd":"y/M/d","dateFormatItem-yM":"y/M","field-era":"时期","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"timeFormat-short":"ah:mm","quarters-format-wide":["第一季度","第二季度","第三季度","第四季度"],"timeFormat-long":"zah:mm:ss","dateFormatItem-yMMM":"y年M月","dateFormatItem-yQ":"y年第Q季度","field-year":"年","dateFormatItem-MMdd":"MM/dd","dateFormatItem-yyyyMMMM":"yyyy年M月","field-hour":"小时","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","timeFormat-full":"zzzzah:mm:ss","dayPeriods-format-narrow-morning":"上午","field-day-relative+0":"今天","field-day-relative+1":"明天","field-day-relative+2":"后天","dateFormatItem-H":"H时","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"quarters-format-abbr":["1季度","2季度","3季度","4季度"],"quarters-standAlone-wide":["第一季度","第二季度","第三季度","第四季度"],"dateFormatItem-M":"M月","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年M月","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1季度","2季度","3季度","4季度"],"eraAbbr":["公元前","公元"],"field-minute":"分钟","field-dayperiod":"上午/下午","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"昨天","dateFormatItem-h":"ah时","dateTimeFormat-long":"{1}{0}","dayPeriods-format-narrow-am":"上午","field-day-relative+-2":"前天","dateFormatItem-MMMd":"M月d日","dayPeriods-format-wide-midDay":"中午","dateFormatItem-MEd":"M/dE","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-zone":"时区","dateFormatItem-y":"y年","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"field-year-relative+-1":"去年","dayPeriods-format-narrow-night":"晚上","field-month-relative+-1":"上个月","dateFormatItem-yyMM":"yy年M月","dateFormatItem-hm":"ah:mm","dayPeriods-format-narrow-weeHours":"凌晨","days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"eraNames":["公元前","公元"],"dateFormatItem-yMMMd":"y年M月d日","days-format-narrow":["日","一","二","三","四","五","六"],"dayPeriods-format-narrow-earlyMorning":"清晨","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","field-month":"月","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"M月dd日","dayPeriods-format-wide-weeHours":"凌晨","dateFormat-short":"yy-M-d","dayPeriods-format-wide-afternoon":"下午","dayPeriods-format-narrow-afternoon":"下午","dayPeriods-format-narrow-noon":"中午","field-second":"秒钟","dateFormatItem-yMMMEd":"y年M月d日E","field-month-relative+0":"本月","field-month-relative+1":"下个月","dateFormatItem-Ed":"d日E","field-week":"周","dateFormat-medium":"y年M月d日","field-year-relative+0":"今年","field-week-relative+-1":"上周","dateFormatItem-yyyyM":"yyyy年M月","field-year-relative+1":"明年","dayPeriods-format-narrow-pm":"下午","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"yyyy年","field-week-relative+0":"本周","field-week-relative+1":"下周"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh/hebrew.js b/lib/dojo/cldr/nls/zh/hebrew.js
new file mode 100644
index 000000000..b831ea7bc
--- /dev/null
+++ b/lib/dojo/cldr/nls/zh/hebrew.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/zh/hebrew",{"dateFormatItem-yM":"y/M","dateFormatItem-yQ":"y年第Q季度","months-standAlone-abbr-leap":"闰7月","dayPeriods-format-wide-pm":"下午","eraNames":["希伯来历"],"dateFormatItem-MMMEd":"M月d日E","dateTimeFormat-full":"{1}{0}","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yQQQ":"y年QQQ","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dayPeriods-format-wide-am":"上午","months-format-abbr-leap":"闰7月","quarters-standAlone-abbr":["1季度","2季度","3季度","4季度"],"dateFormatItem-y":"y年","timeFormat-full":"zzzzah:mm:ss","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月","13月"],"dateFormatItem-Ed":"d日E","dateFormatItem-yMMM":"y年M月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"eraAbbr":["希伯来历"],"dateFormat-long":"y年M月d日","timeFormat-medium":"ah:mm:ss","dateFormat-medium":"y年M月d日","dayPeriods-format-narrow-pm":"下午","dateFormatItem-yMd":"y/M/d","quarters-standAlone-wide":["第一季度","第二季度","第三季度","第四季度"],"dayPeriods-format-narrow-am":"上午","dateTimeFormat-long":"{1}{0}","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月","十三月"],"dateFormatItem-MMMd":"M月d日","timeFormat-long":"zah:mm:ss","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月","13月"],"timeFormat-short":"ah:mm","dateFormatItem-H":"H时","quarters-format-abbr":["1季度","2季度","3季度","4季度"],"days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-M":"M月","days-format-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-yMMMd":"y年M月d日","dateFormatItem-MEd":"M/dE","days-standAlone-short":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-hm":"ah:mm","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"months-standAlone-wide-leap":"闰七月","dateFormat-short":"yy-M-d","dateFormatItem-yMMMEd":"y年M月d日E","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"y/M/dEEE","months-format-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月","十三月"],"days-format-short":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-d":"d日","quarters-format-wide":["第一季度","第二季度","第三季度","第四季度"],"months-format-wide-leap":"闰七月","eraNarrow":["希伯来历"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-h":"ah时"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh/islamic.js b/lib/dojo/cldr/nls/zh/islamic.js
new file mode 100644
index 000000000..653b41b1a
--- /dev/null
+++ b/lib/dojo/cldr/nls/zh/islamic.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/cldr/nls/zh/islamic",{"dateFormatItem-yM":"y年M月","dateFormatItem-yQ":"y年第Q季度","dayPeriods-format-wide-pm":"下午","eraNames":["回历"],"dateFormatItem-MMMEd":"M月d日E","dateTimeFormat-full":"{1}{0}","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yQQQ":"y年第Q季度","dateFormatItem-MMdd":"MM-dd","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dayPeriods-format-wide-am":"上午","quarters-standAlone-abbr":["1季度","2季度","3季度","4季度"],"dateFormatItem-y":"y年","timeFormat-full":"zzzzah:mm:ss","dateFormatItem-yyyy":"GGGyy年","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-Ed":"d日E","dateFormatItem-yMMM":"y年M月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"eraAbbr":["回历"],"dateFormat-long":"Gy年M月d日","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"Gy年M月d日","dateFormatItem-Hms":"H:mm:ss","dayPeriods-format-narrow-pm":"下午","dateFormatItem-yMd":"y/M/d","quarters-standAlone-wide":["第一季度","第二季度","第三季度","第四季度"],"dateFormatItem-ms":"mm:ss","dayPeriods-format-narrow-am":"上午","dateTimeFormat-long":"{1}{0}","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"dateFormatItem-yyyyMd":"GGGGGyy-MM-dd","dateFormatItem-yyyyMMMd":"GGGGGyy年M月d日","dateFormatItem-MMMd":"M月d日","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"timeFormat-long":"zah:mm:ss","dateFormatItem-H":"H时","timeFormat-short":"ah:mm","quarters-format-abbr":["1季度","2季度","3季度","4季度"],"dateFormatItem-MMMMdd":"M月dd日","days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-M":"M月","days-format-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-yMMMd":"y年M月d日","dateFormatItem-MEd":"M-dE","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"days-standAlone-short":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-hm":"ah:mm","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormat-short":"Gyy-MM-dd","dateFormatItem-yyyyM":"GGGGGyy-MM","dateFormatItem-yMMMEd":"y年M月d日E","dateFormat-full":"Gy年M月d日EEEE","dateFormatItem-Md":"M-d","dateFormatItem-yMEd":"y年M月d日,E","dateFormatItem-yyyyQ":"Gy年QQQ","months-format-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"days-format-short":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-yyyyMMM":"GGGGGyy年M月","dateFormatItem-d":"d日","quarters-format-wide":["第一季度","第二季度","第三季度","第四季度"],"eraNarrow":["回历"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-h":"ah时"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/nls/zh/number.js b/lib/dojo/cldr/nls/zh/number.js
index b14f7bdcd..7d9c54696 100644
--- a/lib/dojo/cldr/nls/zh/number.js
+++ b/lib/dojo/cldr/nls/zh/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/nls/zh/number",{"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":"."}); \ No newline at end of file
+define("dojo/cldr/nls/zh/number",{"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";","infinity":"∞","minusSign":"-","decimal":".","nan":"NaN","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-long":"000兆","decimalFormat-short":"000兆"}); \ No newline at end of file
diff --git a/lib/dojo/cldr/supplemental.js b/lib/dojo/cldr/supplemental.js
index 40519d09b..893fd31f2 100644
--- a/lib/dojo/cldr/supplemental.js
+++ b/lib/dojo/cldr/supplemental.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/cldr/supplemental",["../_base/kernel","../_base/lang","../i18n"],function(_1,_2){_2.getObject("cldr.supplemental",true,_1);_1.cldr.supplemental.getFirstDayOfWeek=function(_3){var _4={mv:5,ae:6,af:6,bh:6,dj:6,dz:6,eg:6,er:6,et:6,iq:6,ir:6,jo:6,ke:6,kw:6,ly:6,ma:6,om:6,qa:6,sa:6,sd:6,so:6,sy:6,tn:6,ye:6,ar:0,as:0,az:0,bw:0,ca:0,cn:0,fo:0,ge:0,gl:0,gu:0,hk:0,il:0,"in":0,jm:0,jp:0,kg:0,kr:0,la:0,mh:0,mn:0,mo:0,mp:0,mt:0,nz:0,ph:0,pk:0,sg:0,th:0,tt:0,tw:0,um:0,us:0,uz:0,vi:0,zw:0};var _5=_1.cldr.supplemental._region(_3);var _6=_4[_5];return (_6===undefined)?1:_6;};_1.cldr.supplemental._region=function(_7){_7=_1.i18n.normalizeLocale(_7);var _8=_7.split("-");var _9=_8[1];if(!_9){_9={de:"de",en:"us",es:"es",fi:"fi",fr:"fr",he:"il",hu:"hu",it:"it",ja:"jp",ko:"kr",nl:"nl",pt:"br",sv:"se",zh:"cn"}[_8[0]];}else{if(_9.length==4){_9=_8[2];}}return _9;};_1.cldr.supplemental.getWeekend=function(_a){var _b={"in":0,af:4,dz:4,ir:4,om:4,sa:4,ye:4,ae:5,bh:5,eg:5,il:5,iq:5,jo:5,kw:5,ly:5,ma:5,qa:5,sd:5,sy:5,tn:5};var _c={af:5,dz:5,ir:5,om:5,sa:5,ye:5,ae:6,bh:5,eg:6,il:6,iq:6,jo:6,kw:6,ly:6,ma:6,qa:6,sd:6,sy:6,tn:6};var _d=_1.cldr.supplemental._region(_a);var _e=_b[_d];var _f=_c[_d];if(_e===undefined){_e=6;}if(_f===undefined){_f=0;}return {start:_e,end:_f};};return _1.cldr.supplemental;}); \ No newline at end of file
+define("dojo/cldr/supplemental",["../_base/lang","../i18n"],function(_1,_2){var _3={};_1.setObject("dojo.cldr.supplemental",_3);_3.getFirstDayOfWeek=function(_4){var _5={bd:5,mv:5,ae:6,af:6,bh:6,dj:6,dz:6,eg:6,iq:6,ir:6,jo:6,kw:6,ly:6,ma:6,om:6,qa:6,sa:6,sd:6,sy:6,ye:6,ag:0,ar:0,as:0,au:0,br:0,bs:0,bt:0,bw:0,by:0,bz:0,ca:0,cn:0,co:0,dm:0,"do":0,et:0,gt:0,gu:0,hk:0,hn:0,id:0,ie:0,il:0,"in":0,jm:0,jp:0,ke:0,kh:0,kr:0,la:0,mh:0,mm:0,mo:0,mt:0,mx:0,mz:0,ni:0,np:0,nz:0,pa:0,pe:0,ph:0,pk:0,pr:0,py:0,sg:0,sv:0,th:0,tn:0,tt:0,tw:0,um:0,us:0,ve:0,vi:0,ws:0,za:0,zw:0};var _6=_3._region(_4);var _7=_5[_6];return (_7===undefined)?1:_7;};_3._region=function(_8){_8=_2.normalizeLocale(_8);var _9=_8.split("-");var _a=_9[1];if(!_a){_a={de:"de",en:"us",es:"es",fi:"fi",fr:"fr",he:"il",hu:"hu",it:"it",ja:"jp",ko:"kr",nl:"nl",pt:"br",sv:"se",zh:"cn"}[_9[0]];}else{if(_a.length==4){_a=_9[2];}}return _a;};_3.getWeekend=function(_b){var _c={"in":0,af:4,dz:4,ir:4,om:4,sa:4,ye:4,ae:5,bh:5,eg:5,il:5,iq:5,jo:5,kw:5,ly:5,ma:5,qa:5,sd:5,sy:5,tn:5},_d={af:5,dz:5,ir:5,om:5,sa:5,ye:5,ae:6,bh:5,eg:6,il:6,iq:6,jo:6,kw:6,ly:6,ma:6,qa:6,sd:6,sy:6,tn:6},_e=_3._region(_b),_f=_c[_e],end=_d[_e];if(_f===undefined){_f=6;}if(end===undefined){end=0;}return {start:_f,end:end};};return _3;}); \ No newline at end of file
diff --git a/lib/dojo/colors.js b/lib/dojo/colors.js
index 38d572105..7d0aa1829 100644
--- a/lib/dojo/colors.js
+++ b/lib/dojo/colors.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/colors",["./_base/kernel","./_base/lang","./_base/Color","./_base/array"],function(_1,_2,_3,_4){var _5=_2.getObject("dojo.colors",true);var _6=function(m1,m2,h){if(h<0){++h;}if(h>1){--h;}var h6=6*h;if(h6<1){return m1+(m2-m1)*h6;}if(2*h<1){return m2;}if(3*h<2){return m1+(m2-m1)*(2/3-h)*6;}return m1;};_1.colorFromRgb=_3.fromRgb=function(_7,_8){var m=_7.toLowerCase().match(/^(rgba?|hsla?)\(([\s\.\-,%0-9]+)\)/);if(m){var c=m[2].split(/\s*,\s*/),l=c.length,t=m[1],a;if((t=="rgb"&&l==3)||(t=="rgba"&&l==4)){var r=c[0];if(r.charAt(r.length-1)=="%"){a=_4.map(c,function(x){return parseFloat(x)*2.56;});if(l==4){a[3]=c[3];}return _3.fromArray(a,_8);}return _3.fromArray(c,_8);}if((t=="hsl"&&l==3)||(t=="hsla"&&l==4)){var H=((parseFloat(c[0])%360)+360)%360/360,S=parseFloat(c[1])/100,L=parseFloat(c[2])/100,m2=L<=0.5?L*(S+1):L+S-L*S,m1=2*L-m2;a=[_6(m1,m2,H+1/3)*256,_6(m1,m2,H)*256,_6(m1,m2,H-1/3)*256,1];if(l==4){a[3]=c[3];}return _3.fromArray(a,_8);}}return null;};var _9=function(c,_a,_b){c=Number(c);return isNaN(c)?_b:c<_a?_a:c>_b?_b:c;};_3.prototype.sanitize=function(){var t=this;t.r=Math.round(_9(t.r,0,255));t.g=Math.round(_9(t.g,0,255));t.b=Math.round(_9(t.b,0,255));t.a=_9(t.a,0,1);return this;};_5.makeGrey=_3.makeGrey=function(g,a){return _3.fromArray([g,g,g,a]);};_2.mixin(_3.named,{"aliceblue":[240,248,255],"antiquewhite":[250,235,215],"aquamarine":[127,255,212],"azure":[240,255,255],"beige":[245,245,220],"bisque":[255,228,196],"blanchedalmond":[255,235,205],"blueviolet":[138,43,226],"brown":[165,42,42],"burlywood":[222,184,135],"cadetblue":[95,158,160],"chartreuse":[127,255,0],"chocolate":[210,105,30],"coral":[255,127,80],"cornflowerblue":[100,149,237],"cornsilk":[255,248,220],"crimson":[220,20,60],"cyan":[0,255,255],"darkblue":[0,0,139],"darkcyan":[0,139,139],"darkgoldenrod":[184,134,11],"darkgray":[169,169,169],"darkgreen":[0,100,0],"darkgrey":[169,169,169],"darkkhaki":[189,183,107],"darkmagenta":[139,0,139],"darkolivegreen":[85,107,47],"darkorange":[255,140,0],"darkorchid":[153,50,204],"darkred":[139,0,0],"darksalmon":[233,150,122],"darkseagreen":[143,188,143],"darkslateblue":[72,61,139],"darkslategray":[47,79,79],"darkslategrey":[47,79,79],"darkturquoise":[0,206,209],"darkviolet":[148,0,211],"deeppink":[255,20,147],"deepskyblue":[0,191,255],"dimgray":[105,105,105],"dimgrey":[105,105,105],"dodgerblue":[30,144,255],"firebrick":[178,34,34],"floralwhite":[255,250,240],"forestgreen":[34,139,34],"gainsboro":[220,220,220],"ghostwhite":[248,248,255],"gold":[255,215,0],"goldenrod":[218,165,32],"greenyellow":[173,255,47],"grey":[128,128,128],"honeydew":[240,255,240],"hotpink":[255,105,180],"indianred":[205,92,92],"indigo":[75,0,130],"ivory":[255,255,240],"khaki":[240,230,140],"lavender":[230,230,250],"lavenderblush":[255,240,245],"lawngreen":[124,252,0],"lemonchiffon":[255,250,205],"lightblue":[173,216,230],"lightcoral":[240,128,128],"lightcyan":[224,255,255],"lightgoldenrodyellow":[250,250,210],"lightgray":[211,211,211],"lightgreen":[144,238,144],"lightgrey":[211,211,211],"lightpink":[255,182,193],"lightsalmon":[255,160,122],"lightseagreen":[32,178,170],"lightskyblue":[135,206,250],"lightslategray":[119,136,153],"lightslategrey":[119,136,153],"lightsteelblue":[176,196,222],"lightyellow":[255,255,224],"limegreen":[50,205,50],"linen":[250,240,230],"magenta":[255,0,255],"mediumaquamarine":[102,205,170],"mediumblue":[0,0,205],"mediumorchid":[186,85,211],"mediumpurple":[147,112,219],"mediumseagreen":[60,179,113],"mediumslateblue":[123,104,238],"mediumspringgreen":[0,250,154],"mediumturquoise":[72,209,204],"mediumvioletred":[199,21,133],"midnightblue":[25,25,112],"mintcream":[245,255,250],"mistyrose":[255,228,225],"moccasin":[255,228,181],"navajowhite":[255,222,173],"oldlace":[253,245,230],"olivedrab":[107,142,35],"orange":[255,165,0],"orangered":[255,69,0],"orchid":[218,112,214],"palegoldenrod":[238,232,170],"palegreen":[152,251,152],"paleturquoise":[175,238,238],"palevioletred":[219,112,147],"papayawhip":[255,239,213],"peachpuff":[255,218,185],"peru":[205,133,63],"pink":[255,192,203],"plum":[221,160,221],"powderblue":[176,224,230],"rosybrown":[188,143,143],"royalblue":[65,105,225],"saddlebrown":[139,69,19],"salmon":[250,128,114],"sandybrown":[244,164,96],"seagreen":[46,139,87],"seashell":[255,245,238],"sienna":[160,82,45],"skyblue":[135,206,235],"slateblue":[106,90,205],"slategray":[112,128,144],"slategrey":[112,128,144],"snow":[255,250,250],"springgreen":[0,255,127],"steelblue":[70,130,180],"tan":[210,180,140],"thistle":[216,191,216],"tomato":[255,99,71],"turquoise":[64,224,208],"violet":[238,130,238],"wheat":[245,222,179],"whitesmoke":[245,245,245],"yellowgreen":[154,205,50]});return _3;}); \ No newline at end of file
+define("dojo/colors",["./_base/kernel","./_base/lang","./_base/Color","./_base/array"],function(_1,_2,_3,_4){var _5={};_2.setObject("dojo.colors",_5);var _6=function(m1,m2,h){if(h<0){++h;}if(h>1){--h;}var h6=6*h;if(h6<1){return m1+(m2-m1)*h6;}if(2*h<1){return m2;}if(3*h<2){return m1+(m2-m1)*(2/3-h)*6;}return m1;};_1.colorFromRgb=_3.fromRgb=function(_7,_8){var m=_7.toLowerCase().match(/^(rgba?|hsla?)\(([\s\.\-,%0-9]+)\)/);if(m){var c=m[2].split(/\s*,\s*/),l=c.length,t=m[1],a;if((t=="rgb"&&l==3)||(t=="rgba"&&l==4)){var r=c[0];if(r.charAt(r.length-1)=="%"){a=_4.map(c,function(x){return parseFloat(x)*2.56;});if(l==4){a[3]=c[3];}return _3.fromArray(a,_8);}return _3.fromArray(c,_8);}if((t=="hsl"&&l==3)||(t=="hsla"&&l==4)){var H=((parseFloat(c[0])%360)+360)%360/360,S=parseFloat(c[1])/100,L=parseFloat(c[2])/100,m2=L<=0.5?L*(S+1):L+S-L*S,m1=2*L-m2;a=[_6(m1,m2,H+1/3)*256,_6(m1,m2,H)*256,_6(m1,m2,H-1/3)*256,1];if(l==4){a[3]=c[3];}return _3.fromArray(a,_8);}}return null;};var _9=function(c,_a,_b){c=Number(c);return isNaN(c)?_b:c<_a?_a:c>_b?_b:c;};_3.prototype.sanitize=function(){var t=this;t.r=Math.round(_9(t.r,0,255));t.g=Math.round(_9(t.g,0,255));t.b=Math.round(_9(t.b,0,255));t.a=_9(t.a,0,1);return this;};_5.makeGrey=_3.makeGrey=function(g,a){return _3.fromArray([g,g,g,a]);};_2.mixin(_3.named,{"aliceblue":[240,248,255],"antiquewhite":[250,235,215],"aquamarine":[127,255,212],"azure":[240,255,255],"beige":[245,245,220],"bisque":[255,228,196],"blanchedalmond":[255,235,205],"blueviolet":[138,43,226],"brown":[165,42,42],"burlywood":[222,184,135],"cadetblue":[95,158,160],"chartreuse":[127,255,0],"chocolate":[210,105,30],"coral":[255,127,80],"cornflowerblue":[100,149,237],"cornsilk":[255,248,220],"crimson":[220,20,60],"cyan":[0,255,255],"darkblue":[0,0,139],"darkcyan":[0,139,139],"darkgoldenrod":[184,134,11],"darkgray":[169,169,169],"darkgreen":[0,100,0],"darkgrey":[169,169,169],"darkkhaki":[189,183,107],"darkmagenta":[139,0,139],"darkolivegreen":[85,107,47],"darkorange":[255,140,0],"darkorchid":[153,50,204],"darkred":[139,0,0],"darksalmon":[233,150,122],"darkseagreen":[143,188,143],"darkslateblue":[72,61,139],"darkslategray":[47,79,79],"darkslategrey":[47,79,79],"darkturquoise":[0,206,209],"darkviolet":[148,0,211],"deeppink":[255,20,147],"deepskyblue":[0,191,255],"dimgray":[105,105,105],"dimgrey":[105,105,105],"dodgerblue":[30,144,255],"firebrick":[178,34,34],"floralwhite":[255,250,240],"forestgreen":[34,139,34],"gainsboro":[220,220,220],"ghostwhite":[248,248,255],"gold":[255,215,0],"goldenrod":[218,165,32],"greenyellow":[173,255,47],"grey":[128,128,128],"honeydew":[240,255,240],"hotpink":[255,105,180],"indianred":[205,92,92],"indigo":[75,0,130],"ivory":[255,255,240],"khaki":[240,230,140],"lavender":[230,230,250],"lavenderblush":[255,240,245],"lawngreen":[124,252,0],"lemonchiffon":[255,250,205],"lightblue":[173,216,230],"lightcoral":[240,128,128],"lightcyan":[224,255,255],"lightgoldenrodyellow":[250,250,210],"lightgray":[211,211,211],"lightgreen":[144,238,144],"lightgrey":[211,211,211],"lightpink":[255,182,193],"lightsalmon":[255,160,122],"lightseagreen":[32,178,170],"lightskyblue":[135,206,250],"lightslategray":[119,136,153],"lightslategrey":[119,136,153],"lightsteelblue":[176,196,222],"lightyellow":[255,255,224],"limegreen":[50,205,50],"linen":[250,240,230],"magenta":[255,0,255],"mediumaquamarine":[102,205,170],"mediumblue":[0,0,205],"mediumorchid":[186,85,211],"mediumpurple":[147,112,219],"mediumseagreen":[60,179,113],"mediumslateblue":[123,104,238],"mediumspringgreen":[0,250,154],"mediumturquoise":[72,209,204],"mediumvioletred":[199,21,133],"midnightblue":[25,25,112],"mintcream":[245,255,250],"mistyrose":[255,228,225],"moccasin":[255,228,181],"navajowhite":[255,222,173],"oldlace":[253,245,230],"olivedrab":[107,142,35],"orange":[255,165,0],"orangered":[255,69,0],"orchid":[218,112,214],"palegoldenrod":[238,232,170],"palegreen":[152,251,152],"paleturquoise":[175,238,238],"palevioletred":[219,112,147],"papayawhip":[255,239,213],"peachpuff":[255,218,185],"peru":[205,133,63],"pink":[255,192,203],"plum":[221,160,221],"powderblue":[176,224,230],"rosybrown":[188,143,143],"royalblue":[65,105,225],"saddlebrown":[139,69,19],"salmon":[250,128,114],"sandybrown":[244,164,96],"seagreen":[46,139,87],"seashell":[255,245,238],"sienna":[160,82,45],"skyblue":[135,206,235],"slateblue":[106,90,205],"slategray":[112,128,144],"slategrey":[112,128,144],"snow":[255,250,250],"springgreen":[0,255,127],"steelblue":[70,130,180],"tan":[210,180,140],"thistle":[216,191,216],"tomato":[255,99,71],"turquoise":[64,224,208],"violet":[238,130,238],"wheat":[245,222,179],"whitesmoke":[245,245,245],"yellowgreen":[154,205,50]});return _3;}); \ No newline at end of file
diff --git a/lib/dojo/cookie.js b/lib/dojo/cookie.js
index a32e0bb13..23cb09ba2 100644
--- a/lib/dojo/cookie.js
+++ b/lib/dojo/cookie.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/currency.js b/lib/dojo/currency.js
index 4e9e249a9..871b6c12e 100644
--- a/lib/dojo/currency.js
+++ b/lib/dojo/currency.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/currency",["./_base/kernel","./_base/lang","./_base/array","./number","./i18n","./i18n!./cldr/nls/currency","./cldr/monetary"],function(_1,_2,_3,_4,_5,_6,_7){_2.getObject("currency",true,_1);_1.currency._mixInDefaults=function(_8){_8=_8||{};_8.type="currency";var _9=_5.getLocalization("dojo.cldr","currency",_8.locale)||{};var _a=_8.currency;var _b=_7.getData(_a);_3.forEach(["displayName","symbol","group","decimal"],function(_c){_b[_c]=_9[_a+"_"+_c];});_b.fractional=[true,false];return _2.mixin(_b,_8);};_1.currency.format=function(_d,_e){return _4.format(_d,_1.currency._mixInDefaults(_e));};_1.currency.regexp=function(_f){return _4.regexp(_1.currency._mixInDefaults(_f));};_1.currency.parse=function(_10,_11){return _4.parse(_10,_1.currency._mixInDefaults(_11));};return _1.currency;}); \ No newline at end of file
+define("dojo/currency",["./_base/array","./_base/lang","./number","./i18n","./i18n!./cldr/nls/currency","./cldr/monetary"],function(_1,_2,_3,_4,_5,_6){var _7={};_2.setObject("dojo.currency",_7);_7._mixInDefaults=function(_8){_8=_8||{};_8.type="currency";var _9=_4.getLocalization("dojo.cldr","currency",_8.locale)||{};var _a=_8.currency;var _b=_6.getData(_a);_1.forEach(["displayName","symbol","group","decimal"],function(_c){_b[_c]=_9[_a+"_"+_c];});_b.fractional=[true,false];return _2.mixin(_b,_8);};_7.format=function(_d,_e){return _3.format(_d,_7._mixInDefaults(_e));};_7.regexp=function(_f){return _3.regexp(_7._mixInDefaults(_f));};_7.parse=function(_10,_11){return _3.parse(_10,_7._mixInDefaults(_11));};return _7;}); \ No newline at end of file
diff --git a/lib/dojo/data/ItemFileReadStore.js b/lib/dojo/data/ItemFileReadStore.js
index b57daa2de..d393bcfe9 100644
--- a/lib/dojo/data/ItemFileReadStore.js
+++ b/lib/dojo/data/ItemFileReadStore.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/ItemFileReadStore",["../_base/kernel","../_base/lang","../_base/declare","../_base/array","../_base/xhr","../Evented","../_base/window","./util/filter","./util/simpleFetch","../date/stamp"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){var _b=_3("dojo.data.ItemFileReadStore",[_6],{constructor:function(_c){this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._jsonFileUrl=_c.url;this._ccUrl=_c.url;this.url=_c.url;this._jsonData=_c.data;this.data=null;this._datatypeMap=_c.typeMap||{};if(!this._datatypeMap["Date"]){this._datatypeMap["Date"]={type:Date,deserialize:function(_d){return _a.fromISOString(_d);}};}this._features={"dojo.data.api.Read":true,"dojo.data.api.Identity":true};this._itemsByIdentity=null;this._storeRefPropName="_S";this._itemNumPropName="_0";this._rootItemPropName="_RI";this._reverseRefMap="_RRM";this._loadInProgress=false;this._queuedFetches=[];if(_c.urlPreventCache!==undefined){this.urlPreventCache=_c.urlPreventCache?true:false;}if(_c.hierarchical!==undefined){this.hierarchical=_c.hierarchical?true:false;}if(_c.clearOnClose){this.clearOnClose=true;}if("failOk" in _c){this.failOk=_c.failOk?true:false;}},url:"",_ccUrl:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,failOk:false,hierarchical:true,_assertIsItem:function(_e){if(!this.isItem(_e)){throw new Error("dojo.data.ItemFileReadStore: Invalid item argument.");}},_assertIsAttribute:function(_f){if(typeof _f!=="string"){throw new Error("dojo.data.ItemFileReadStore: Invalid attribute argument.");}},getValue:function(_10,_11,_12){var _13=this.getValues(_10,_11);return (_13.length>0)?_13[0]:_12;},getValues:function(_14,_15){this._assertIsItem(_14);this._assertIsAttribute(_15);return (_14[_15]||[]).slice(0);},getAttributes:function(_16){this._assertIsItem(_16);var _17=[];for(var key in _16){if((key!==this._storeRefPropName)&&(key!==this._itemNumPropName)&&(key!==this._rootItemPropName)&&(key!==this._reverseRefMap)){_17.push(key);}}return _17;},hasAttribute:function(_18,_19){this._assertIsItem(_18);this._assertIsAttribute(_19);return (_19 in _18);},containsValue:function(_1a,_1b,_1c){var _1d=undefined;if(typeof _1c==="string"){_1d=_8.patternToRegExp(_1c,false);}return this._containsValue(_1a,_1b,_1c,_1d);},_containsValue:function(_1e,_1f,_20,_21){return _4.some(this.getValues(_1e,_1f),function(_22){if(_22!==null&&!_2.isObject(_22)&&_21){if(_22.toString().match(_21)){return true;}}else{if(_20===_22){return true;}}});},isItem:function(_23){if(_23&&_23[this._storeRefPropName]===this){if(this._arrayOfAllItems[_23[this._itemNumPropName]]===_23){return true;}}return false;},isItemLoaded:function(_24){return this.isItem(_24);},loadItem:function(_25){this._assertIsItem(_25.item);},getFeatures:function(){return this._features;},getLabel:function(_26){if(this._labelAttr&&this.isItem(_26)){return this.getValue(_26,this._labelAttr);}return undefined;},getLabelAttributes:function(_27){if(this._labelAttr){return [this._labelAttr];}return null;},_fetchItems:function(_28,_29,_2a){var _2b=this,_2c=function(_2d,_2e){var _2f=[],i,key;if(_2d.query){var _30,_31=_2d.queryOptions?_2d.queryOptions.ignoreCase:false;var _32={};for(key in _2d.query){_30=_2d.query[key];if(typeof _30==="string"){_32[key]=_8.patternToRegExp(_30,_31);}else{if(_30 instanceof RegExp){_32[key]=_30;}}}for(i=0;i<_2e.length;++i){var _33=true;var _34=_2e[i];if(_34===null){_33=false;}else{for(key in _2d.query){_30=_2d.query[key];if(!_2b._containsValue(_34,key,_30,_32[key])){_33=false;}}}if(_33){_2f.push(_34);}}_29(_2f,_2d);}else{for(i=0;i<_2e.length;++i){var _35=_2e[i];if(_35!==null){_2f.push(_35);}}_29(_2f,_2d);}};if(this._loadFinished){_2c(_28,this._getItemsArray(_28.queryOptions));}else{if(this._jsonFileUrl!==this._ccUrl){_1.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_28,filter:_2c});}else{this._loadInProgress=true;var _36={url:_2b._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _37=_5.get(_36);_37.addCallback(function(_38){try{_2b._getItemsFromLoadedData(_38);_2b._loadFinished=true;_2b._loadInProgress=false;_2c(_28,_2b._getItemsArray(_28.queryOptions));_2b._handleQueuedFetches();}catch(e){_2b._loadFinished=true;_2b._loadInProgress=false;_2a(e,_28);}});_37.addErrback(function(_39){_2b._loadInProgress=false;_2a(_39,_28);});var _3a=null;if(_28.abort){_3a=_28.abort;}_28.abort=function(){var df=_37;if(df&&df.fired===-1){df.cancel();df=null;}if(_3a){_3a.call(_28);}};}}else{if(this._jsonData){try{this._loadFinished=true;this._getItemsFromLoadedData(this._jsonData);this._jsonData=null;_2c(_28,this._getItemsArray(_28.queryOptions));}catch(e){_2a(e,_28);}}else{_2a(new Error("dojo.data.ItemFileReadStore: No JSON source data was provided as either URL or a nested Javascript object."),_28);}}}},_handleQueuedFetches:function(){if(this._queuedFetches.length>0){for(var i=0;i<this._queuedFetches.length;i++){var _3b=this._queuedFetches[i],_3c=_3b.args,_3d=_3b.filter;if(_3d){_3d(_3c,this._getItemsArray(_3c.queryOptions));}else{this.fetchItemByIdentity(_3c);}}this._queuedFetches=[];}},_getItemsArray:function(_3e){if(_3e&&_3e.deep){return this._arrayOfAllItems;}return this._arrayOfTopLevelItems;},close:function(_3f){if(this.clearOnClose&&this._loadFinished&&!this._loadInProgress){if(((this._jsonFileUrl==""||this._jsonFileUrl==null)&&(this.url==""||this.url==null))&&this.data==null){}this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._itemsByIdentity=null;this._loadInProgress=false;this._queuedFetches=[];}},_getItemsFromLoadedData:function(_40){var _41=false,_42=this;function _43(_44){return (_44!==null)&&(typeof _44==="object")&&(!_2.isArray(_44)||_41)&&(!_2.isFunction(_44))&&(_44.constructor==Object||_2.isArray(_44))&&(typeof _44._reference==="undefined")&&(typeof _44._type==="undefined")&&(typeof _44._value==="undefined")&&_42.hierarchical;};function _45(_46){_42._arrayOfAllItems.push(_46);for(var _47 in _46){var _48=_46[_47];if(_48){if(_2.isArray(_48)){var _49=_48;for(var k=0;k<_49.length;++k){var _4a=_49[k];if(_43(_4a)){_45(_4a);}}}else{if(_43(_48)){_45(_48);}}}}};this._labelAttr=_40.label;var i,_4b;this._arrayOfAllItems=[];this._arrayOfTopLevelItems=_40.items;for(i=0;i<this._arrayOfTopLevelItems.length;++i){_4b=this._arrayOfTopLevelItems[i];if(_2.isArray(_4b)){_41=true;}_45(_4b);_4b[this._rootItemPropName]=true;}var _4c={},key;for(i=0;i<this._arrayOfAllItems.length;++i){_4b=this._arrayOfAllItems[i];for(key in _4b){if(key!==this._rootItemPropName){var _4d=_4b[key];if(_4d!==null){if(!_2.isArray(_4d)){_4b[key]=[_4d];}}else{_4b[key]=[null];}}_4c[key]=key;}}while(_4c[this._storeRefPropName]){this._storeRefPropName+="_";}while(_4c[this._itemNumPropName]){this._itemNumPropName+="_";}while(_4c[this._reverseRefMap]){this._reverseRefMap+="_";}var _4e;var _4f=_40.identifier;if(_4f){this._itemsByIdentity={};this._features["dojo.data.api.Identity"]=_4f;for(i=0;i<this._arrayOfAllItems.length;++i){_4b=this._arrayOfAllItems[i];_4e=_4b[_4f];var _50=_4e[0];if(!Object.hasOwnProperty.call(this._itemsByIdentity,_50)){this._itemsByIdentity[_50]=_4b;}else{if(this._jsonFileUrl){throw new Error("dojo.data.ItemFileReadStore: The json data as specified by: ["+this._jsonFileUrl+"] is malformed. Items within the list have identifier: ["+_4f+"]. Value collided: ["+_50+"]");}else{if(this._jsonData){throw new Error("dojo.data.ItemFileReadStore: The json data provided by the creation arguments is malformed. Items within the list have identifier: ["+_4f+"]. Value collided: ["+_50+"]");}}}}}else{this._features["dojo.data.api.Identity"]=Number;}for(i=0;i<this._arrayOfAllItems.length;++i){_4b=this._arrayOfAllItems[i];_4b[this._storeRefPropName]=this;_4b[this._itemNumPropName]=i;}for(i=0;i<this._arrayOfAllItems.length;++i){_4b=this._arrayOfAllItems[i];for(key in _4b){_4e=_4b[key];for(var j=0;j<_4e.length;++j){_4d=_4e[j];if(_4d!==null&&typeof _4d=="object"){if(("_type" in _4d)&&("_value" in _4d)){var _51=_4d._type;var _52=this._datatypeMap[_51];if(!_52){throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '"+_51+"'");}else{if(_2.isFunction(_52)){_4e[j]=new _52(_4d._value);}else{if(_2.isFunction(_52.deserialize)){_4e[j]=_52.deserialize(_4d._value);}else{throw new Error("dojo.data.ItemFileReadStore: Value provided in typeMap was neither a constructor, nor a an object with a deserialize function");}}}}if(_4d._reference){var _53=_4d._reference;if(!_2.isObject(_53)){_4e[j]=this._getItemByIdentity(_53);}else{for(var k=0;k<this._arrayOfAllItems.length;++k){var _54=this._arrayOfAllItems[k],_55=true;for(var _56 in _53){if(_54[_56]!=_53[_56]){_55=false;}}if(_55){_4e[j]=_54;}}}if(this.referenceIntegrity){var _57=_4e[j];if(this.isItem(_57)){this._addReferenceToMap(_57,_4b,key);}}}else{if(this.isItem(_4d)){if(this.referenceIntegrity){this._addReferenceToMap(_4d,_4b,key);}}}}}}}},_addReferenceToMap:function(_58,_59,_5a){},getIdentity:function(_5b){var _5c=this._features["dojo.data.api.Identity"];if(_5c===Number){return _5b[this._itemNumPropName];}else{var _5d=_5b[_5c];if(_5d){return _5d[0];}}return null;},fetchItemByIdentity:function(_5e){var _5f,_60;if(!this._loadFinished){var _61=this;if(this._jsonFileUrl!==this._ccUrl){_1.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_5e});}else{this._loadInProgress=true;var _62={url:_61._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _63=_5.get(_62);_63.addCallback(function(_64){var _65=_5e.scope?_5e.scope:_7.global;try{_61._getItemsFromLoadedData(_64);_61._loadFinished=true;_61._loadInProgress=false;_5f=_61._getItemByIdentity(_5e.identity);if(_5e.onItem){_5e.onItem.call(_65,_5f);}_61._handleQueuedFetches();}catch(error){_61._loadInProgress=false;if(_5e.onError){_5e.onError.call(_65,error);}}});_63.addErrback(function(_66){_61._loadInProgress=false;if(_5e.onError){var _67=_5e.scope?_5e.scope:_7.global;_5e.onError.call(_67,_66);}});}}else{if(this._jsonData){_61._getItemsFromLoadedData(_61._jsonData);_61._jsonData=null;_61._loadFinished=true;_5f=_61._getItemByIdentity(_5e.identity);if(_5e.onItem){_60=_5e.scope?_5e.scope:_7.global;_5e.onItem.call(_60,_5f);}}}}else{_5f=this._getItemByIdentity(_5e.identity);if(_5e.onItem){_60=_5e.scope?_5e.scope:_7.global;_5e.onItem.call(_60,_5f);}}},_getItemByIdentity:function(_68){var _69=null;if(this._itemsByIdentity){if(Object.hasOwnProperty.call(this._itemsByIdentity,_68)){_69=this._itemsByIdentity[_68];}}else{if(Object.hasOwnProperty.call(this._arrayOfAllItems,_68)){_69=this._arrayOfAllItems[_68];}}if(_69===undefined){_69=null;}return _69;},getIdentityAttributes:function(_6a){var _6b=this._features["dojo.data.api.Identity"];if(_6b===Number){return null;}else{return [_6b];}},_forceLoad:function(){var _6c=this;if(this._jsonFileUrl!==this._ccUrl){_1.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){var _6d={url:this._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk,sync:true};var _6e=_5.get(_6d);_6e.addCallback(function(_6f){try{if(_6c._loadInProgress!==true&&!_6c._loadFinished){_6c._getItemsFromLoadedData(_6f);_6c._loadFinished=true;}else{if(_6c._loadInProgress){throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress.");}}}catch(e){throw e;}});_6e.addErrback(function(_70){throw _70;});}else{if(this._jsonData){_6c._getItemsFromLoadedData(_6c._jsonData);_6c._jsonData=null;_6c._loadFinished=true;}}}});_2.extend(_b,_9);return _b;}); \ No newline at end of file
+define("dojo/data/ItemFileReadStore",["../_base/kernel","../_base/lang","../_base/declare","../_base/array","../_base/xhr","../Evented","./util/filter","./util/simpleFetch","../date/stamp"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){var _a=_3("dojo.data.ItemFileReadStore",[_6],{constructor:function(_b){this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._jsonFileUrl=_b.url;this._ccUrl=_b.url;this.url=_b.url;this._jsonData=_b.data;this.data=null;this._datatypeMap=_b.typeMap||{};if(!this._datatypeMap["Date"]){this._datatypeMap["Date"]={type:Date,deserialize:function(_c){return _9.fromISOString(_c);}};}this._features={"dojo.data.api.Read":true,"dojo.data.api.Identity":true};this._itemsByIdentity=null;this._storeRefPropName="_S";this._itemNumPropName="_0";this._rootItemPropName="_RI";this._reverseRefMap="_RRM";this._loadInProgress=false;this._queuedFetches=[];if(_b.urlPreventCache!==undefined){this.urlPreventCache=_b.urlPreventCache?true:false;}if(_b.hierarchical!==undefined){this.hierarchical=_b.hierarchical?true:false;}if(_b.clearOnClose){this.clearOnClose=true;}if("failOk" in _b){this.failOk=_b.failOk?true:false;}},url:"",_ccUrl:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,failOk:false,hierarchical:true,_assertIsItem:function(_d){if(!this.isItem(_d)){throw new Error(this.declaredClass+": Invalid item argument.");}},_assertIsAttribute:function(_e){if(typeof _e!=="string"){throw new Error(this.declaredClass+": Invalid attribute argument.");}},getValue:function(_f,_10,_11){var _12=this.getValues(_f,_10);return (_12.length>0)?_12[0]:_11;},getValues:function(_13,_14){this._assertIsItem(_13);this._assertIsAttribute(_14);return (_13[_14]||[]).slice(0);},getAttributes:function(_15){this._assertIsItem(_15);var _16=[];for(var key in _15){if((key!==this._storeRefPropName)&&(key!==this._itemNumPropName)&&(key!==this._rootItemPropName)&&(key!==this._reverseRefMap)){_16.push(key);}}return _16;},hasAttribute:function(_17,_18){this._assertIsItem(_17);this._assertIsAttribute(_18);return (_18 in _17);},containsValue:function(_19,_1a,_1b){var _1c=undefined;if(typeof _1b==="string"){_1c=_7.patternToRegExp(_1b,false);}return this._containsValue(_19,_1a,_1b,_1c);},_containsValue:function(_1d,_1e,_1f,_20){return _4.some(this.getValues(_1d,_1e),function(_21){if(_21!==null&&!_2.isObject(_21)&&_20){if(_21.toString().match(_20)){return true;}}else{if(_1f===_21){return true;}}});},isItem:function(_22){if(_22&&_22[this._storeRefPropName]===this){if(this._arrayOfAllItems[_22[this._itemNumPropName]]===_22){return true;}}return false;},isItemLoaded:function(_23){return this.isItem(_23);},loadItem:function(_24){this._assertIsItem(_24.item);},getFeatures:function(){return this._features;},getLabel:function(_25){if(this._labelAttr&&this.isItem(_25)){return this.getValue(_25,this._labelAttr);}return undefined;},getLabelAttributes:function(_26){if(this._labelAttr){return [this._labelAttr];}return null;},filter:function(_27,_28,_29){var _2a=[],i,key;if(_27.query){var _2b,_2c=_27.queryOptions?_27.queryOptions.ignoreCase:false;var _2d={};for(key in _27.query){_2b=_27.query[key];if(typeof _2b==="string"){_2d[key]=_7.patternToRegExp(_2b,_2c);}else{if(_2b instanceof RegExp){_2d[key]=_2b;}}}for(i=0;i<_28.length;++i){var _2e=true;var _2f=_28[i];if(_2f===null){_2e=false;}else{for(key in _27.query){_2b=_27.query[key];if(!this._containsValue(_2f,key,_2b,_2d[key])){_2e=false;}}}if(_2e){_2a.push(_2f);}}_29(_2a,_27);}else{for(i=0;i<_28.length;++i){var _30=_28[i];if(_30!==null){_2a.push(_30);}}_29(_2a,_27);}},_fetchItems:function(_31,_32,_33){var _34=this;if(this._loadFinished){this.filter(_31,this._getItemsArray(_31.queryOptions),_32);}else{if(this._jsonFileUrl!==this._ccUrl){_1.deprecated(this.declaredClass+": ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_31,filter:_2.hitch(_34,"filter"),findCallback:_2.hitch(_34,_32)});}else{this._loadInProgress=true;var _35={url:_34._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _36=_5.get(_35);_36.addCallback(function(_37){try{_34._getItemsFromLoadedData(_37);_34._loadFinished=true;_34._loadInProgress=false;_34.filter(_31,_34._getItemsArray(_31.queryOptions),_32);_34._handleQueuedFetches();}catch(e){_34._loadFinished=true;_34._loadInProgress=false;_33(e,_31);}});_36.addErrback(function(_38){_34._loadInProgress=false;_33(_38,_31);});var _39=null;if(_31.abort){_39=_31.abort;}_31.abort=function(){var df=_36;if(df&&df.fired===-1){df.cancel();df=null;}if(_39){_39.call(_31);}};}}else{if(this._jsonData){try{this._loadFinished=true;this._getItemsFromLoadedData(this._jsonData);this._jsonData=null;_34.filter(_31,this._getItemsArray(_31.queryOptions),_32);}catch(e){_33(e,_31);}}else{_33(new Error(this.declaredClass+": No JSON source data was provided as either URL or a nested Javascript object."),_31);}}}},_handleQueuedFetches:function(){if(this._queuedFetches.length>0){for(var i=0;i<this._queuedFetches.length;i++){var _3a=this._queuedFetches[i],_3b=_3a.args,_3c=_3a.filter,_3d=_3a.findCallback;if(_3c){_3c(_3b,this._getItemsArray(_3b.queryOptions),_3d);}else{this.fetchItemByIdentity(_3b);}}this._queuedFetches=[];}},_getItemsArray:function(_3e){if(_3e&&_3e.deep){return this._arrayOfAllItems;}return this._arrayOfTopLevelItems;},close:function(_3f){if(this.clearOnClose&&this._loadFinished&&!this._loadInProgress){if(((this._jsonFileUrl==""||this._jsonFileUrl==null)&&(this.url==""||this.url==null))&&this.data==null){}this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._itemsByIdentity=null;this._loadInProgress=false;this._queuedFetches=[];}},_getItemsFromLoadedData:function(_40){var _41=false,_42=this;function _43(_44){return (_44!==null)&&(typeof _44==="object")&&(!_2.isArray(_44)||_41)&&(!_2.isFunction(_44))&&(_44.constructor==Object||_2.isArray(_44))&&(typeof _44._reference==="undefined")&&(typeof _44._type==="undefined")&&(typeof _44._value==="undefined")&&_42.hierarchical;};function _45(_46){_42._arrayOfAllItems.push(_46);for(var _47 in _46){var _48=_46[_47];if(_48){if(_2.isArray(_48)){var _49=_48;for(var k=0;k<_49.length;++k){var _4a=_49[k];if(_43(_4a)){_45(_4a);}}}else{if(_43(_48)){_45(_48);}}}}};this._labelAttr=_40.label;var i,_4b;this._arrayOfAllItems=[];this._arrayOfTopLevelItems=_40.items;for(i=0;i<this._arrayOfTopLevelItems.length;++i){_4b=this._arrayOfTopLevelItems[i];if(_2.isArray(_4b)){_41=true;}_45(_4b);_4b[this._rootItemPropName]=true;}var _4c={},key;for(i=0;i<this._arrayOfAllItems.length;++i){_4b=this._arrayOfAllItems[i];for(key in _4b){if(key!==this._rootItemPropName){var _4d=_4b[key];if(_4d!==null){if(!_2.isArray(_4d)){_4b[key]=[_4d];}}else{_4b[key]=[null];}}_4c[key]=key;}}while(_4c[this._storeRefPropName]){this._storeRefPropName+="_";}while(_4c[this._itemNumPropName]){this._itemNumPropName+="_";}while(_4c[this._reverseRefMap]){this._reverseRefMap+="_";}var _4e;var _4f=_40.identifier;if(_4f){this._itemsByIdentity={};this._features["dojo.data.api.Identity"]=_4f;for(i=0;i<this._arrayOfAllItems.length;++i){_4b=this._arrayOfAllItems[i];_4e=_4b[_4f];var _50=_4e[0];if(!Object.hasOwnProperty.call(this._itemsByIdentity,_50)){this._itemsByIdentity[_50]=_4b;}else{if(this._jsonFileUrl){throw new Error(this.declaredClass+": The json data as specified by: ["+this._jsonFileUrl+"] is malformed. Items within the list have identifier: ["+_4f+"]. Value collided: ["+_50+"]");}else{if(this._jsonData){throw new Error(this.declaredClass+": The json data provided by the creation arguments is malformed. Items within the list have identifier: ["+_4f+"]. Value collided: ["+_50+"]");}}}}}else{this._features["dojo.data.api.Identity"]=Number;}for(i=0;i<this._arrayOfAllItems.length;++i){_4b=this._arrayOfAllItems[i];_4b[this._storeRefPropName]=this;_4b[this._itemNumPropName]=i;}for(i=0;i<this._arrayOfAllItems.length;++i){_4b=this._arrayOfAllItems[i];for(key in _4b){_4e=_4b[key];for(var j=0;j<_4e.length;++j){_4d=_4e[j];if(_4d!==null&&typeof _4d=="object"){if(("_type" in _4d)&&("_value" in _4d)){var _51=_4d._type;var _52=this._datatypeMap[_51];if(!_52){throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '"+_51+"'");}else{if(_2.isFunction(_52)){_4e[j]=new _52(_4d._value);}else{if(_2.isFunction(_52.deserialize)){_4e[j]=_52.deserialize(_4d._value);}else{throw new Error("dojo.data.ItemFileReadStore: Value provided in typeMap was neither a constructor, nor a an object with a deserialize function");}}}}if(_4d._reference){var _53=_4d._reference;if(!_2.isObject(_53)){_4e[j]=this._getItemByIdentity(_53);}else{for(var k=0;k<this._arrayOfAllItems.length;++k){var _54=this._arrayOfAllItems[k],_55=true;for(var _56 in _53){if(_54[_56]!=_53[_56]){_55=false;}}if(_55){_4e[j]=_54;}}}if(this.referenceIntegrity){var _57=_4e[j];if(this.isItem(_57)){this._addReferenceToMap(_57,_4b,key);}}}else{if(this.isItem(_4d)){if(this.referenceIntegrity){this._addReferenceToMap(_4d,_4b,key);}}}}}}}},_addReferenceToMap:function(_58,_59,_5a){},getIdentity:function(_5b){var _5c=this._features["dojo.data.api.Identity"];if(_5c===Number){return _5b[this._itemNumPropName];}else{var _5d=_5b[_5c];if(_5d){return _5d[0];}}return null;},fetchItemByIdentity:function(_5e){var _5f,_60;if(!this._loadFinished){var _61=this;if(this._jsonFileUrl!==this._ccUrl){_1.deprecated(this.declaredClass+": ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_5e});}else{this._loadInProgress=true;var _62={url:_61._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _63=_5.get(_62);_63.addCallback(function(_64){var _65=_5e.scope?_5e.scope:_1.global;try{_61._getItemsFromLoadedData(_64);_61._loadFinished=true;_61._loadInProgress=false;_5f=_61._getItemByIdentity(_5e.identity);if(_5e.onItem){_5e.onItem.call(_65,_5f);}_61._handleQueuedFetches();}catch(error){_61._loadInProgress=false;if(_5e.onError){_5e.onError.call(_65,error);}}});_63.addErrback(function(_66){_61._loadInProgress=false;if(_5e.onError){var _67=_5e.scope?_5e.scope:_1.global;_5e.onError.call(_67,_66);}});}}else{if(this._jsonData){_61._getItemsFromLoadedData(_61._jsonData);_61._jsonData=null;_61._loadFinished=true;_5f=_61._getItemByIdentity(_5e.identity);if(_5e.onItem){_60=_5e.scope?_5e.scope:_1.global;_5e.onItem.call(_60,_5f);}}}}else{_5f=this._getItemByIdentity(_5e.identity);if(_5e.onItem){_60=_5e.scope?_5e.scope:_1.global;_5e.onItem.call(_60,_5f);}}},_getItemByIdentity:function(_68){var _69=null;if(this._itemsByIdentity){if(Object.hasOwnProperty.call(this._itemsByIdentity,_68)){_69=this._itemsByIdentity[_68];}}else{if(Object.hasOwnProperty.call(this._arrayOfAllItems,_68)){_69=this._arrayOfAllItems[_68];}}if(_69===undefined){_69=null;}return _69;},getIdentityAttributes:function(_6a){var _6b=this._features["dojo.data.api.Identity"];if(_6b===Number){return null;}else{return [_6b];}},_forceLoad:function(){var _6c=this;if(this._jsonFileUrl!==this._ccUrl){_1.deprecated(this.declaredClass+": ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){var _6d={url:this._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk,sync:true};var _6e=_5.get(_6d);_6e.addCallback(function(_6f){try{if(_6c._loadInProgress!==true&&!_6c._loadFinished){_6c._getItemsFromLoadedData(_6f);_6c._loadFinished=true;}else{if(_6c._loadInProgress){throw new Error(this.declaredClass+": Unable to perform a synchronous load, an async load is in progress.");}}}catch(e){throw e;}});_6e.addErrback(function(_70){throw _70;});}else{if(this._jsonData){_6c._getItemsFromLoadedData(_6c._jsonData);_6c._jsonData=null;_6c._loadFinished=true;}}}});_2.extend(_a,_8);return _a;}); \ No newline at end of file
diff --git a/lib/dojo/data/ItemFileWriteStore.js b/lib/dojo/data/ItemFileWriteStore.js
index 25651cf92..81e07c1a4 100644
--- a/lib/dojo/data/ItemFileWriteStore.js
+++ b/lib/dojo/data/ItemFileWriteStore.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/ItemFileWriteStore",["../_base/lang","../_base/declare","../_base/array","../_base/json","../_base/window","./ItemFileReadStore","../date/stamp"],function(_1,_2,_3,_4,_5,_6,_7){return _2("dojo.data.ItemFileWriteStore",_6,{constructor:function(_8){this._features["dojo.data.api.Write"]=true;this._features["dojo.data.api.Notification"]=true;this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};if(!this._datatypeMap["Date"].serialize){this._datatypeMap["Date"].serialize=function(_9){return _7.toISOString(_9,{zulu:true});};}if(_8&&(_8.referenceIntegrity===false)){this.referenceIntegrity=false;}this._saveInProgress=false;},referenceIntegrity:true,_assert:function(_a){if(!_a){throw new Error("assertion failed in ItemFileWriteStore");}},_getIdentifierAttribute:function(){return this.getFeatures()["dojo.data.api.Identity"];},newItem:function(_b,_c){this._assert(!this._saveInProgress);if(!this._loadFinished){this._forceLoad();}if(typeof _b!="object"&&typeof _b!="undefined"){throw new Error("newItem() was passed something other than an object");}var _d=null;var _e=this._getIdentifierAttribute();if(_e===Number){_d=this._arrayOfAllItems.length;}else{_d=_b[_e];if(typeof _d==="undefined"){throw new Error("newItem() was not passed an identity for the new item");}if(_1.isArray(_d)){throw new Error("newItem() was not passed an single-valued identity");}}if(this._itemsByIdentity){this._assert(typeof this._itemsByIdentity[_d]==="undefined");}this._assert(typeof this._pending._newItems[_d]==="undefined");this._assert(typeof this._pending._deletedItems[_d]==="undefined");var _f={};_f[this._storeRefPropName]=this;_f[this._itemNumPropName]=this._arrayOfAllItems.length;if(this._itemsByIdentity){this._itemsByIdentity[_d]=_f;_f[_e]=[_d];}this._arrayOfAllItems.push(_f);var _10=null;if(_c&&_c.parent&&_c.attribute){_10={item:_c.parent,attribute:_c.attribute,oldValue:undefined};var _11=this.getValues(_c.parent,_c.attribute);if(_11&&_11.length>0){var _12=_11.slice(0,_11.length);if(_11.length===1){_10.oldValue=_11[0];}else{_10.oldValue=_11.slice(0,_11.length);}_12.push(_f);this._setValueOrValues(_c.parent,_c.attribute,_12,false);_10.newValue=this.getValues(_c.parent,_c.attribute);}else{this._setValueOrValues(_c.parent,_c.attribute,_f,false);_10.newValue=_f;}}else{_f[this._rootItemPropName]=true;this._arrayOfTopLevelItems.push(_f);}this._pending._newItems[_d]=_f;for(var key in _b){if(key===this._storeRefPropName||key===this._itemNumPropName){throw new Error("encountered bug in ItemFileWriteStore.newItem");}var _13=_b[key];if(!_1.isArray(_13)){_13=[_13];}_f[key]=_13;if(this.referenceIntegrity){for(var i=0;i<_13.length;i++){var val=_13[i];if(this.isItem(val)){this._addReferenceToMap(val,_f,key);}}}}this.onNew(_f,_10);return _f;},_removeArrayElement:function(_14,_15){var _16=_3.indexOf(_14,_15);if(_16!=-1){_14.splice(_16,1);return true;}return false;},deleteItem:function(_17){this._assert(!this._saveInProgress);this._assertIsItem(_17);var _18=_17[this._itemNumPropName];var _19=this.getIdentity(_17);if(this.referenceIntegrity){var _1a=this.getAttributes(_17);if(_17[this._reverseRefMap]){_17["backup_"+this._reverseRefMap]=_1.clone(_17[this._reverseRefMap]);}_3.forEach(_1a,function(_1b){_3.forEach(this.getValues(_17,_1b),function(_1c){if(this.isItem(_1c)){if(!_17["backupRefs_"+this._reverseRefMap]){_17["backupRefs_"+this._reverseRefMap]=[];}_17["backupRefs_"+this._reverseRefMap].push({id:this.getIdentity(_1c),attr:_1b});this._removeReferenceFromMap(_1c,_17,_1b);}},this);},this);var _1d=_17[this._reverseRefMap];if(_1d){for(var _1e in _1d){var _1f=null;if(this._itemsByIdentity){_1f=this._itemsByIdentity[_1e];}else{_1f=this._arrayOfAllItems[_1e];}if(_1f){for(var _20 in _1d[_1e]){var _21=this.getValues(_1f,_20)||[];var _22=_3.filter(_21,function(_23){return !(this.isItem(_23)&&this.getIdentity(_23)==_19);},this);this._removeReferenceFromMap(_17,_1f,_20);if(_22.length<_21.length){this._setValueOrValues(_1f,_20,_22,true);}}}}}}this._arrayOfAllItems[_18]=null;_17[this._storeRefPropName]=null;if(this._itemsByIdentity){delete this._itemsByIdentity[_19];}this._pending._deletedItems[_19]=_17;if(_17[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,_17);}this.onDelete(_17);return true;},setValue:function(_24,_25,_26){return this._setValueOrValues(_24,_25,_26,true);},setValues:function(_27,_28,_29){return this._setValueOrValues(_27,_28,_29,true);},unsetAttribute:function(_2a,_2b){return this._setValueOrValues(_2a,_2b,[],true);},_setValueOrValues:function(_2c,_2d,_2e,_2f){this._assert(!this._saveInProgress);this._assertIsItem(_2c);this._assert(_1.isString(_2d));this._assert(typeof _2e!=="undefined");var _30=this._getIdentifierAttribute();if(_2d==_30){throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier.");}var _31=this._getValueOrValues(_2c,_2d);var _32=this.getIdentity(_2c);if(!this._pending._modifiedItems[_32]){var _33={};for(var key in _2c){if((key===this._storeRefPropName)||(key===this._itemNumPropName)||(key===this._rootItemPropName)){_33[key]=_2c[key];}else{if(key===this._reverseRefMap){_33[key]=_1.clone(_2c[key]);}else{_33[key]=_2c[key].slice(0,_2c[key].length);}}}this._pending._modifiedItems[_32]=_33;}var _34=false;if(_1.isArray(_2e)&&_2e.length===0){_34=delete _2c[_2d];_2e=undefined;if(this.referenceIntegrity&&_31){var _35=_31;if(!_1.isArray(_35)){_35=[_35];}for(var i=0;i<_35.length;i++){var _36=_35[i];if(this.isItem(_36)){this._removeReferenceFromMap(_36,_2c,_2d);}}}}else{var _37;if(_1.isArray(_2e)){_37=_2e.slice(0,_2e.length);}else{_37=[_2e];}if(this.referenceIntegrity){if(_31){var _35=_31;if(!_1.isArray(_35)){_35=[_35];}var map={};_3.forEach(_35,function(_38){if(this.isItem(_38)){var id=this.getIdentity(_38);map[id.toString()]=true;}},this);_3.forEach(_37,function(_39){if(this.isItem(_39)){var id=this.getIdentity(_39);if(map[id.toString()]){delete map[id.toString()];}else{this._addReferenceToMap(_39,_2c,_2d);}}},this);for(var rId in map){var _3a;if(this._itemsByIdentity){_3a=this._itemsByIdentity[rId];}else{_3a=this._arrayOfAllItems[rId];}this._removeReferenceFromMap(_3a,_2c,_2d);}}else{for(var i=0;i<_37.length;i++){var _36=_37[i];if(this.isItem(_36)){this._addReferenceToMap(_36,_2c,_2d);}}}}_2c[_2d]=_37;_34=true;}if(_2f){this.onSet(_2c,_2d,_31,_2e);}return _34;},_addReferenceToMap:function(_3b,_3c,_3d){var _3e=this.getIdentity(_3c);var _3f=_3b[this._reverseRefMap];if(!_3f){_3f=_3b[this._reverseRefMap]={};}var _40=_3f[_3e];if(!_40){_40=_3f[_3e]={};}_40[_3d]=true;},_removeReferenceFromMap:function(_41,_42,_43){var _44=this.getIdentity(_42);var _45=_41[this._reverseRefMap];var _46;if(_45){for(_46 in _45){if(_46==_44){delete _45[_46][_43];if(this._isEmpty(_45[_46])){delete _45[_46];}}}if(this._isEmpty(_45)){delete _41[this._reverseRefMap];}}},_dumpReferenceMap:function(){var i;for(i=0;i<this._arrayOfAllItems.length;i++){var _47=this._arrayOfAllItems[i];if(_47&&_47[this._reverseRefMap]){}}},_getValueOrValues:function(_48,_49){var _4a=undefined;if(this.hasAttribute(_48,_49)){var _4b=this.getValues(_48,_49);if(_4b.length==1){_4a=_4b[0];}else{_4a=_4b;}}return _4a;},_flatten:function(_4c){if(this.isItem(_4c)){return {_reference:this.getIdentity(_4c)};}else{if(typeof _4c==="object"){for(var _4d in this._datatypeMap){var _4e=this._datatypeMap[_4d];if(_1.isObject(_4e)&&!_1.isFunction(_4e)){if(_4c instanceof _4e.type){if(!_4e.serialize){throw new Error("ItemFileWriteStore: No serializer defined for type mapping: ["+_4d+"]");}return {_type:_4d,_value:_4e.serialize(_4c)};}}else{if(_4c instanceof _4e){return {_type:_4d,_value:_4c.toString()};}}}}return _4c;}},_getNewFileContentString:function(){var _4f={};var _50=this._getIdentifierAttribute();if(_50!==Number){_4f.identifier=_50;}if(this._labelAttr){_4f.label=this._labelAttr;}_4f.items=[];for(var i=0;i<this._arrayOfAllItems.length;++i){var _51=this._arrayOfAllItems[i];if(_51!==null){var _52={};for(var key in _51){if(key!==this._storeRefPropName&&key!==this._itemNumPropName&&key!==this._reverseRefMap&&key!==this._rootItemPropName){var _53=this.getValues(_51,key);if(_53.length==1){_52[key]=this._flatten(_53[0]);}else{var _54=[];for(var j=0;j<_53.length;++j){_54.push(this._flatten(_53[j]));_52[key]=_54;}}}}_4f.items.push(_52);}}var _55=true;return _4.toJson(_4f,_55);},_isEmpty:function(_56){var _57=true;if(_1.isObject(_56)){var i;for(i in _56){_57=false;break;}}else{if(_1.isArray(_56)){if(_56.length>0){_57=false;}}}return _57;},save:function(_58){this._assert(!this._saveInProgress);this._saveInProgress=true;var _59=this;var _5a=function(){_59._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};_59._saveInProgress=false;if(_58&&_58.onComplete){var _5b=_58.scope||_5.global;_58.onComplete.call(_5b);}};var _5c=function(err){_59._saveInProgress=false;if(_58&&_58.onError){var _5d=_58.scope||_5.global;_58.onError.call(_5d,err);}};if(this._saveEverything){var _5e=this._getNewFileContentString();this._saveEverything(_5a,_5c,_5e);}if(this._saveCustom){this._saveCustom(_5a,_5c);}if(!this._saveEverything&&!this._saveCustom){_5a();}},revert:function(){this._assert(!this._saveInProgress);var _5f;for(_5f in this._pending._modifiedItems){var _60=this._pending._modifiedItems[_5f];var _61=null;if(this._itemsByIdentity){_61=this._itemsByIdentity[_5f];}else{_61=this._arrayOfAllItems[_5f];}_60[this._storeRefPropName]=this;for(var key in _61){delete _61[key];}_1.mixin(_61,_60);}var _62;for(_5f in this._pending._deletedItems){_62=this._pending._deletedItems[_5f];_62[this._storeRefPropName]=this;var _63=_62[this._itemNumPropName];if(_62["backup_"+this._reverseRefMap]){_62[this._reverseRefMap]=_62["backup_"+this._reverseRefMap];delete _62["backup_"+this._reverseRefMap];}this._arrayOfAllItems[_63]=_62;if(this._itemsByIdentity){this._itemsByIdentity[_5f]=_62;}if(_62[this._rootItemPropName]){this._arrayOfTopLevelItems.push(_62);}}for(_5f in this._pending._deletedItems){_62=this._pending._deletedItems[_5f];if(_62["backupRefs_"+this._reverseRefMap]){_3.forEach(_62["backupRefs_"+this._reverseRefMap],function(_64){var _65;if(this._itemsByIdentity){_65=this._itemsByIdentity[_64.id];}else{_65=this._arrayOfAllItems[_64.id];}this._addReferenceToMap(_65,_62,_64.attr);},this);delete _62["backupRefs_"+this._reverseRefMap];}}for(_5f in this._pending._newItems){var _66=this._pending._newItems[_5f];_66[this._storeRefPropName]=null;this._arrayOfAllItems[_66[this._itemNumPropName]]=null;if(_66[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,_66);}if(this._itemsByIdentity){delete this._itemsByIdentity[_5f];}}this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};return true;},isDirty:function(_67){if(_67){var _68=this.getIdentity(_67);return new Boolean(this._pending._newItems[_68]||this._pending._modifiedItems[_68]||this._pending._deletedItems[_68]).valueOf();}else{return !this._isEmpty(this._pending._newItems)||!this._isEmpty(this._pending._modifiedItems)||!this._isEmpty(this._pending._deletedItems);}},onSet:function(_69,_6a,_6b,_6c){},onNew:function(_6d,_6e){},onDelete:function(_6f){},close:function(_70){if(this.clearOnClose){if(!this.isDirty()){this.inherited(arguments);}else{throw new Error("dojo.data.ItemFileWriteStore: There are unsaved changes present in the store. Please save or revert the changes before invoking close.");}}}});}); \ No newline at end of file
+define("dojo/data/ItemFileWriteStore",["../_base/lang","../_base/declare","../_base/array","../_base/json","../_base/kernel","./ItemFileReadStore","../date/stamp"],function(_1,_2,_3,_4,_5,_6,_7){return _2("dojo.data.ItemFileWriteStore",_6,{constructor:function(_8){this._features["dojo.data.api.Write"]=true;this._features["dojo.data.api.Notification"]=true;this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};if(!this._datatypeMap["Date"].serialize){this._datatypeMap["Date"].serialize=function(_9){return _7.toISOString(_9,{zulu:true});};}if(_8&&(_8.referenceIntegrity===false)){this.referenceIntegrity=false;}this._saveInProgress=false;},referenceIntegrity:true,_assert:function(_a){if(!_a){throw new Error("assertion failed in ItemFileWriteStore");}},_getIdentifierAttribute:function(){return this.getFeatures()["dojo.data.api.Identity"];},newItem:function(_b,_c){this._assert(!this._saveInProgress);if(!this._loadFinished){this._forceLoad();}if(typeof _b!="object"&&typeof _b!="undefined"){throw new Error("newItem() was passed something other than an object");}var _d=null;var _e=this._getIdentifierAttribute();if(_e===Number){_d=this._arrayOfAllItems.length;}else{_d=_b[_e];if(typeof _d==="undefined"){throw new Error("newItem() was not passed an identity for the new item");}if(_1.isArray(_d)){throw new Error("newItem() was not passed an single-valued identity");}}if(this._itemsByIdentity){this._assert(typeof this._itemsByIdentity[_d]==="undefined");}this._assert(typeof this._pending._newItems[_d]==="undefined");this._assert(typeof this._pending._deletedItems[_d]==="undefined");var _f={};_f[this._storeRefPropName]=this;_f[this._itemNumPropName]=this._arrayOfAllItems.length;if(this._itemsByIdentity){this._itemsByIdentity[_d]=_f;_f[_e]=[_d];}this._arrayOfAllItems.push(_f);var _10=null;if(_c&&_c.parent&&_c.attribute){_10={item:_c.parent,attribute:_c.attribute,oldValue:undefined};var _11=this.getValues(_c.parent,_c.attribute);if(_11&&_11.length>0){var _12=_11.slice(0,_11.length);if(_11.length===1){_10.oldValue=_11[0];}else{_10.oldValue=_11.slice(0,_11.length);}_12.push(_f);this._setValueOrValues(_c.parent,_c.attribute,_12,false);_10.newValue=this.getValues(_c.parent,_c.attribute);}else{this._setValueOrValues(_c.parent,_c.attribute,_f,false);_10.newValue=_f;}}else{_f[this._rootItemPropName]=true;this._arrayOfTopLevelItems.push(_f);}this._pending._newItems[_d]=_f;for(var key in _b){if(key===this._storeRefPropName||key===this._itemNumPropName){throw new Error("encountered bug in ItemFileWriteStore.newItem");}var _13=_b[key];if(!_1.isArray(_13)){_13=[_13];}_f[key]=_13;if(this.referenceIntegrity){for(var i=0;i<_13.length;i++){var val=_13[i];if(this.isItem(val)){this._addReferenceToMap(val,_f,key);}}}}this.onNew(_f,_10);return _f;},_removeArrayElement:function(_14,_15){var _16=_3.indexOf(_14,_15);if(_16!=-1){_14.splice(_16,1);return true;}return false;},deleteItem:function(_17){this._assert(!this._saveInProgress);this._assertIsItem(_17);var _18=_17[this._itemNumPropName];var _19=this.getIdentity(_17);if(this.referenceIntegrity){var _1a=this.getAttributes(_17);if(_17[this._reverseRefMap]){_17["backup_"+this._reverseRefMap]=_1.clone(_17[this._reverseRefMap]);}_3.forEach(_1a,function(_1b){_3.forEach(this.getValues(_17,_1b),function(_1c){if(this.isItem(_1c)){if(!_17["backupRefs_"+this._reverseRefMap]){_17["backupRefs_"+this._reverseRefMap]=[];}_17["backupRefs_"+this._reverseRefMap].push({id:this.getIdentity(_1c),attr:_1b});this._removeReferenceFromMap(_1c,_17,_1b);}},this);},this);var _1d=_17[this._reverseRefMap];if(_1d){for(var _1e in _1d){var _1f=null;if(this._itemsByIdentity){_1f=this._itemsByIdentity[_1e];}else{_1f=this._arrayOfAllItems[_1e];}if(_1f){for(var _20 in _1d[_1e]){var _21=this.getValues(_1f,_20)||[];var _22=_3.filter(_21,function(_23){return !(this.isItem(_23)&&this.getIdentity(_23)==_19);},this);this._removeReferenceFromMap(_17,_1f,_20);if(_22.length<_21.length){this._setValueOrValues(_1f,_20,_22,true);}}}}}}this._arrayOfAllItems[_18]=null;_17[this._storeRefPropName]=null;if(this._itemsByIdentity){delete this._itemsByIdentity[_19];}this._pending._deletedItems[_19]=_17;if(_17[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,_17);}this.onDelete(_17);return true;},setValue:function(_24,_25,_26){return this._setValueOrValues(_24,_25,_26,true);},setValues:function(_27,_28,_29){return this._setValueOrValues(_27,_28,_29,true);},unsetAttribute:function(_2a,_2b){return this._setValueOrValues(_2a,_2b,[],true);},_setValueOrValues:function(_2c,_2d,_2e,_2f){this._assert(!this._saveInProgress);this._assertIsItem(_2c);this._assert(_1.isString(_2d));this._assert(typeof _2e!=="undefined");var _30=this._getIdentifierAttribute();if(_2d==_30){throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier.");}var _31=this._getValueOrValues(_2c,_2d);var _32=this.getIdentity(_2c);if(!this._pending._modifiedItems[_32]){var _33={};for(var key in _2c){if((key===this._storeRefPropName)||(key===this._itemNumPropName)||(key===this._rootItemPropName)){_33[key]=_2c[key];}else{if(key===this._reverseRefMap){_33[key]=_1.clone(_2c[key]);}else{_33[key]=_2c[key].slice(0,_2c[key].length);}}}this._pending._modifiedItems[_32]=_33;}var _34=false;if(_1.isArray(_2e)&&_2e.length===0){_34=delete _2c[_2d];_2e=undefined;if(this.referenceIntegrity&&_31){var _35=_31;if(!_1.isArray(_35)){_35=[_35];}for(var i=0;i<_35.length;i++){var _36=_35[i];if(this.isItem(_36)){this._removeReferenceFromMap(_36,_2c,_2d);}}}}else{var _37;if(_1.isArray(_2e)){_37=_2e.slice(0,_2e.length);}else{_37=[_2e];}if(this.referenceIntegrity){if(_31){var _35=_31;if(!_1.isArray(_35)){_35=[_35];}var map={};_3.forEach(_35,function(_38){if(this.isItem(_38)){var id=this.getIdentity(_38);map[id.toString()]=true;}},this);_3.forEach(_37,function(_39){if(this.isItem(_39)){var id=this.getIdentity(_39);if(map[id.toString()]){delete map[id.toString()];}else{this._addReferenceToMap(_39,_2c,_2d);}}},this);for(var rId in map){var _3a;if(this._itemsByIdentity){_3a=this._itemsByIdentity[rId];}else{_3a=this._arrayOfAllItems[rId];}this._removeReferenceFromMap(_3a,_2c,_2d);}}else{for(var i=0;i<_37.length;i++){var _36=_37[i];if(this.isItem(_36)){this._addReferenceToMap(_36,_2c,_2d);}}}}_2c[_2d]=_37;_34=true;}if(_2f){this.onSet(_2c,_2d,_31,_2e);}return _34;},_addReferenceToMap:function(_3b,_3c,_3d){var _3e=this.getIdentity(_3c);var _3f=_3b[this._reverseRefMap];if(!_3f){_3f=_3b[this._reverseRefMap]={};}var _40=_3f[_3e];if(!_40){_40=_3f[_3e]={};}_40[_3d]=true;},_removeReferenceFromMap:function(_41,_42,_43){var _44=this.getIdentity(_42);var _45=_41[this._reverseRefMap];var _46;if(_45){for(_46 in _45){if(_46==_44){delete _45[_46][_43];if(this._isEmpty(_45[_46])){delete _45[_46];}}}if(this._isEmpty(_45)){delete _41[this._reverseRefMap];}}},_dumpReferenceMap:function(){var i;for(i=0;i<this._arrayOfAllItems.length;i++){var _47=this._arrayOfAllItems[i];if(_47&&_47[this._reverseRefMap]){}}},_getValueOrValues:function(_48,_49){var _4a=undefined;if(this.hasAttribute(_48,_49)){var _4b=this.getValues(_48,_49);if(_4b.length==1){_4a=_4b[0];}else{_4a=_4b;}}return _4a;},_flatten:function(_4c){if(this.isItem(_4c)){return {_reference:this.getIdentity(_4c)};}else{if(typeof _4c==="object"){for(var _4d in this._datatypeMap){var _4e=this._datatypeMap[_4d];if(_1.isObject(_4e)&&!_1.isFunction(_4e)){if(_4c instanceof _4e.type){if(!_4e.serialize){throw new Error("ItemFileWriteStore: No serializer defined for type mapping: ["+_4d+"]");}return {_type:_4d,_value:_4e.serialize(_4c)};}}else{if(_4c instanceof _4e){return {_type:_4d,_value:_4c.toString()};}}}}return _4c;}},_getNewFileContentString:function(){var _4f={};var _50=this._getIdentifierAttribute();if(_50!==Number){_4f.identifier=_50;}if(this._labelAttr){_4f.label=this._labelAttr;}_4f.items=[];for(var i=0;i<this._arrayOfAllItems.length;++i){var _51=this._arrayOfAllItems[i];if(_51!==null){var _52={};for(var key in _51){if(key!==this._storeRefPropName&&key!==this._itemNumPropName&&key!==this._reverseRefMap&&key!==this._rootItemPropName){var _53=this.getValues(_51,key);if(_53.length==1){_52[key]=this._flatten(_53[0]);}else{var _54=[];for(var j=0;j<_53.length;++j){_54.push(this._flatten(_53[j]));_52[key]=_54;}}}}_4f.items.push(_52);}}var _55=true;return _4.toJson(_4f,_55);},_isEmpty:function(_56){var _57=true;if(_1.isObject(_56)){var i;for(i in _56){_57=false;break;}}else{if(_1.isArray(_56)){if(_56.length>0){_57=false;}}}return _57;},save:function(_58){this._assert(!this._saveInProgress);this._saveInProgress=true;var _59=this;var _5a=function(){_59._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};_59._saveInProgress=false;if(_58&&_58.onComplete){var _5b=_58.scope||_5.global;_58.onComplete.call(_5b);}};var _5c=function(err){_59._saveInProgress=false;if(_58&&_58.onError){var _5d=_58.scope||_5.global;_58.onError.call(_5d,err);}};if(this._saveEverything){var _5e=this._getNewFileContentString();this._saveEverything(_5a,_5c,_5e);}if(this._saveCustom){this._saveCustom(_5a,_5c);}if(!this._saveEverything&&!this._saveCustom){_5a();}},revert:function(){this._assert(!this._saveInProgress);var _5f;for(_5f in this._pending._modifiedItems){var _60=this._pending._modifiedItems[_5f];var _61=null;if(this._itemsByIdentity){_61=this._itemsByIdentity[_5f];}else{_61=this._arrayOfAllItems[_5f];}_60[this._storeRefPropName]=this;for(var key in _61){delete _61[key];}_1.mixin(_61,_60);}var _62;for(_5f in this._pending._deletedItems){_62=this._pending._deletedItems[_5f];_62[this._storeRefPropName]=this;var _63=_62[this._itemNumPropName];if(_62["backup_"+this._reverseRefMap]){_62[this._reverseRefMap]=_62["backup_"+this._reverseRefMap];delete _62["backup_"+this._reverseRefMap];}this._arrayOfAllItems[_63]=_62;if(this._itemsByIdentity){this._itemsByIdentity[_5f]=_62;}if(_62[this._rootItemPropName]){this._arrayOfTopLevelItems.push(_62);}}for(_5f in this._pending._deletedItems){_62=this._pending._deletedItems[_5f];if(_62["backupRefs_"+this._reverseRefMap]){_3.forEach(_62["backupRefs_"+this._reverseRefMap],function(_64){var _65;if(this._itemsByIdentity){_65=this._itemsByIdentity[_64.id];}else{_65=this._arrayOfAllItems[_64.id];}this._addReferenceToMap(_65,_62,_64.attr);},this);delete _62["backupRefs_"+this._reverseRefMap];}}for(_5f in this._pending._newItems){var _66=this._pending._newItems[_5f];_66[this._storeRefPropName]=null;this._arrayOfAllItems[_66[this._itemNumPropName]]=null;if(_66[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,_66);}if(this._itemsByIdentity){delete this._itemsByIdentity[_5f];}}this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};return true;},isDirty:function(_67){if(_67){var _68=this.getIdentity(_67);return new Boolean(this._pending._newItems[_68]||this._pending._modifiedItems[_68]||this._pending._deletedItems[_68]).valueOf();}else{return !this._isEmpty(this._pending._newItems)||!this._isEmpty(this._pending._modifiedItems)||!this._isEmpty(this._pending._deletedItems);}},onSet:function(_69,_6a,_6b,_6c){},onNew:function(_6d,_6e){},onDelete:function(_6f){},close:function(_70){if(this.clearOnClose){if(!this.isDirty()){this.inherited(arguments);}else{throw new Error("dojo.data.ItemFileWriteStore: There are unsaved changes present in the store. Please save or revert the changes before invoking close.");}}}});}); \ No newline at end of file
diff --git a/lib/dojo/data/ObjectStore.js b/lib/dojo/data/ObjectStore.js
index f0c241379..a2acacb41 100644
--- a/lib/dojo/data/ObjectStore.js
+++ b/lib/dojo/data/ObjectStore.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/ObjectStore",["../_base/lang","../Evented","../_base/declare","../_base/Deferred","../_base/array","../_base/connect","../regexp"],function(_1,_2,_3,_4,_5,_6,_7){return _3("dojo.data.ObjectStore",[_2],{objectStore:null,constructor:function(_8){_1.mixin(this,_8);},labelProperty:"label",getValue:function(_9,_a,_b){return typeof _9.get==="function"?_9.get(_a):_a in _9?_9[_a]:_b;},getValues:function(_c,_d){var _e=this.getValue(_c,_d);return _e instanceof Array?_e:_e===undefined?[]:[_e];},getAttributes:function(_f){var res=[];for(var i in _f){if(_f.hasOwnProperty(i)&&!(i.charAt(0)=="_"&&i.charAt(1)=="_")){res.push(i);}}return res;},hasAttribute:function(_10,_11){return _11 in _10;},containsValue:function(_12,_13,_14){return _5.indexOf(this.getValues(_12,_13),_14)>-1;},isItem:function(_15){return (typeof _15=="object")&&_15&&!(_15 instanceof Date);},isItemLoaded:function(_16){return _16&&typeof _16.load!=="function";},loadItem:function(_17){var _18;if(typeof _17.item.load==="function"){_4.when(_17.item.load(),function(_19){_18=_19;var _1a=_19 instanceof Error?_17.onError:_17.onItem;if(_1a){_1a.call(_17.scope,_19);}});}else{if(_17.onItem){_17.onItem.call(_17.scope,_17.item);}}return _18;},close:function(_1b){return _1b&&_1b.abort&&_1b.abort();},fetch:function(_1c){_1c=_1.delegate(_1c,_1c&&_1c.queryOptions);var _1d=this;var _1e=_1c.scope||_1d;var _1f=_1c.query;if(typeof _1f=="object"){_1f=_1.delegate(_1f);for(var i in _1f){var _20=_1f[i];if(typeof _20=="string"){_1f[i]=RegExp("^"+_7.escapeString(_20,"*?").replace(/\*/g,".*").replace(/\?/g,".")+"$",_1c.ignoreCase?"mi":"m");_1f[i].toString=(function(_21){return function(){return _21;};})(_20);}}}var _22=this.objectStore.query(_1f,_1c);_4.when(_22.total,function(_23){_4.when(_22,function(_24){if(_1c.onBegin){_1c.onBegin.call(_1e,_23||_24.length,_1c);}if(_1c.onItem){for(var i=0;i<_24.length;i++){_1c.onItem.call(_1e,_24[i],_1c);}}if(_1c.onComplete){_1c.onComplete.call(_1e,_1c.onItem?null:_24,_1c);}return _24;},_25);},_25);function _25(_26){if(_1c.onError){_1c.onError.call(_1e,_26,_1c);}};_1c.abort=function(){if(_22.cancel){_22.cancel();}};if(_22.observe){if(this.observing){this.observing.cancel();}this.observing=_22.observe(function(_27,_28,_29){if(_5.indexOf(_1d._dirtyObjects,_27)==-1){if(_28==-1){_1d.onNew(_27);}else{if(_29==-1){_1d.onDelete(_27);}else{for(var i in _27){if(i!=_1d.objectStore.idProperty){_1d.onSet(_27,i,null,_27[i]);}}}}}},true);}this.onFetch(_22);_1c.store=this;return _1c;},getFeatures:function(){return {"dojo.data.api.Read":!!this.objectStore.get,"dojo.data.api.Identity":true,"dojo.data.api.Write":!!this.objectStore.put,"dojo.data.api.Notification":true};},getLabel:function(_2a){if(this.isItem(_2a)){return this.getValue(_2a,this.labelProperty);}return undefined;},getLabelAttributes:function(_2b){return [this.labelProperty];},getIdentity:function(_2c){return this.objectStore.getIdentity?this.objectStore.getIdentity(_2c):_2c[this.objectStore.idProperty||"id"];},getIdentityAttributes:function(_2d){return [this.objectStore.idProperty];},fetchItemByIdentity:function(_2e){var _2f;_4.when(this.objectStore.get(_2e.identity),function(_30){_2f=_30;_2e.onItem.call(_2e.scope,_30);},function(_31){_2e.onError.call(_2e.scope,_31);});return _2f;},newItem:function(_32,_33){if(_33){var _34=this.getValue(_33.parent,_33.attribute,[]);_34=_34.concat([_32]);_32.__parent=_34;this.setValue(_33.parent,_33.attribute,_34);}this._dirtyObjects.push({object:_32,save:true});this.onNew(_32);return _32;},deleteItem:function(_35){this.changing(_35,true);this.onDelete(_35);},setValue:function(_36,_37,_38){var old=_36[_37];this.changing(_36);_36[_37]=_38;this.onSet(_36,_37,old,_38);},setValues:function(_39,_3a,_3b){if(!_1.isArray(_3b)){throw new Error("setValues expects to be passed an Array object as its value");}this.setValue(_39,_3a,_3b);},unsetAttribute:function(_3c,_3d){this.changing(_3c);var old=_3c[_3d];delete _3c[_3d];this.onSet(_3c,_3d,old,undefined);},_dirtyObjects:[],changing:function(_3e,_3f){_3e.__isDirty=true;for(var i=0;i<this._dirtyObjects.length;i++){var _40=this._dirtyObjects[i];if(_3e==_40.object){if(_3f){_40.object=false;if(!this._saveNotNeeded){_40.save=true;}}return;}}var old=_3e instanceof Array?[]:{};for(i in _3e){if(_3e.hasOwnProperty(i)){old[i]=_3e[i];}}this._dirtyObjects.push({object:!_3f&&_3e,old:old,save:!this._saveNotNeeded});},save:function(_41){_41=_41||{};var _42,_43=[];var _44=[];var _45=this;var _46=this._dirtyObjects;var _47=_46.length;try{_6.connect(_41,"onError",function(){if(_41.revertOnError!==false){var _48=_46;_46=_44;_45.revert();_45._dirtyObjects=_48;}else{_45._dirtyObjects=_46.concat(_44);}});if(this.objectStore.transaction){var _49=this.objectStore.transaction();}for(var i=0;i<_46.length;i++){var _4a=_46[i];var _4b=_4a.object;var old=_4a.old;delete _4b.__isDirty;if(_4b){_42=this.objectStore.put(_4b,{overwrite:!!old});}else{if(typeof old!="undefined"){_42=this.objectStore.remove(this.getIdentity(old));}}_44.push(_4a);_46.splice(i--,1);_4.when(_42,function(_4c){if(!(--_47)){if(_41.onComplete){_41.onComplete.call(_41.scope,_43);}}},function(_4d){_47=-1;_41.onError.call(_41.scope,_4d);});}if(_49){_49.commit();}}catch(e){_41.onError.call(_41.scope,value);}},revert:function(_4e){var _4f=this._dirtyObjects;for(var i=_4f.length;i>0;){i--;var _50=_4f[i];var _51=_50.object;var old=_50.old;if(_51&&old){for(var j in old){if(old.hasOwnProperty(j)&&_51[j]!==old[j]){this.onSet(_51,j,_51[j],old[j]);_51[j]=old[j];}}for(j in _51){if(!old.hasOwnProperty(j)){this.onSet(_51,j,_51[j]);delete _51[j];}}}else{if(!old){this.onDelete(_51);}else{this.onNew(old);}}delete (_51||old).__isDirty;_4f.splice(i,1);}},isDirty:function(_52){if(!_52){return !!this._dirtyObjects.length;}return _52.__isDirty;},onSet:function(){},onNew:function(){},onDelete:function(){},onFetch:function(_53){}});}); \ No newline at end of file
+define("dojo/data/ObjectStore",["../_base/lang","../Evented","../_base/declare","../_base/Deferred","../_base/array","../_base/connect","../regexp"],function(_1,_2,_3,_4,_5,_6,_7){function _8(_9){return _9=="*"?".*":_9=="?"?".":_9;};return _3("dojo.data.ObjectStore",[_2],{objectStore:null,constructor:function(_a){this._dirtyObjects=[];if(_a.labelAttribute){_a.labelProperty=_a.labelAttribute;}_1.mixin(this,_a);},labelProperty:"label",getValue:function(_b,_c,_d){return typeof _b.get==="function"?_b.get(_c):_c in _b?_b[_c]:_d;},getValues:function(_e,_f){var val=this.getValue(_e,_f);return val instanceof Array?val:val===undefined?[]:[val];},getAttributes:function(_10){var res=[];for(var i in _10){if(_10.hasOwnProperty(i)&&!(i.charAt(0)=="_"&&i.charAt(1)=="_")){res.push(i);}}return res;},hasAttribute:function(_11,_12){return _12 in _11;},containsValue:function(_13,_14,_15){return _5.indexOf(this.getValues(_13,_14),_15)>-1;},isItem:function(_16){return (typeof _16=="object")&&_16&&!(_16 instanceof Date);},isItemLoaded:function(_17){return _17&&typeof _17.load!=="function";},loadItem:function(_18){var _19;if(typeof _18.item.load==="function"){_4.when(_18.item.load(),function(_1a){_19=_1a;var _1b=_1a instanceof Error?_18.onError:_18.onItem;if(_1b){_1b.call(_18.scope,_1a);}});}else{if(_18.onItem){_18.onItem.call(_18.scope,_18.item);}}return _19;},close:function(_1c){return _1c&&_1c.abort&&_1c.abort();},fetch:function(_1d){_1d=_1.delegate(_1d,_1d&&_1d.queryOptions);var _1e=this;var _1f=_1d.scope||_1e;var _20=_1d.query;if(typeof _20=="object"){_20=_1.delegate(_20);for(var i in _20){var _21=_20[i];if(typeof _21=="string"){_20[i]=RegExp("^"+_7.escapeString(_21,"*?\\").replace(/\\.|\*|\?/g,_8)+"$",_1d.ignoreCase?"mi":"m");_20[i].toString=(function(_22){return function(){return _22;};})(_21);}}}var _23=this.objectStore.query(_20,_1d);_4.when(_23.total,function(_24){_4.when(_23,function(_25){if(_1d.onBegin){_1d.onBegin.call(_1f,_24||_25.length,_1d);}if(_1d.onItem){for(var i=0;i<_25.length;i++){_1d.onItem.call(_1f,_25[i],_1d);}}if(_1d.onComplete){_1d.onComplete.call(_1f,_1d.onItem?null:_25,_1d);}return _25;},_26);},_26);function _26(_27){if(_1d.onError){_1d.onError.call(_1f,_27,_1d);}};_1d.abort=function(){if(_23.cancel){_23.cancel();}};if(_23.observe){if(this.observing){this.observing.cancel();}this.observing=_23.observe(function(_28,_29,_2a){if(_5.indexOf(_1e._dirtyObjects,_28)==-1){if(_29==-1){_1e.onNew(_28);}else{if(_2a==-1){_1e.onDelete(_28);}else{for(var i in _28){if(i!=_1e.objectStore.idProperty){_1e.onSet(_28,i,null,_28[i]);}}}}}},true);}this.onFetch(_23);_1d.store=this;return _1d;},getFeatures:function(){return {"dojo.data.api.Read":!!this.objectStore.get,"dojo.data.api.Identity":true,"dojo.data.api.Write":!!this.objectStore.put,"dojo.data.api.Notification":true};},getLabel:function(_2b){if(this.isItem(_2b)){return this.getValue(_2b,this.labelProperty);}return undefined;},getLabelAttributes:function(_2c){return [this.labelProperty];},getIdentity:function(_2d){return this.objectStore.getIdentity?this.objectStore.getIdentity(_2d):_2d[this.objectStore.idProperty||"id"];},getIdentityAttributes:function(_2e){return [this.objectStore.idProperty];},fetchItemByIdentity:function(_2f){var _30;_4.when(this.objectStore.get(_2f.identity),function(_31){_30=_31;_2f.onItem.call(_2f.scope,_31);},function(_32){_2f.onError.call(_2f.scope,_32);});return _30;},newItem:function(_33,_34){if(_34){var _35=this.getValue(_34.parent,_34.attribute,[]);_35=_35.concat([_33]);_33.__parent=_35;this.setValue(_34.parent,_34.attribute,_35);}this._dirtyObjects.push({object:_33,save:true});this.onNew(_33);return _33;},deleteItem:function(_36){this.changing(_36,true);this.onDelete(_36);},setValue:function(_37,_38,_39){var old=_37[_38];this.changing(_37);_37[_38]=_39;this.onSet(_37,_38,old,_39);},setValues:function(_3a,_3b,_3c){if(!_1.isArray(_3c)){throw new Error("setValues expects to be passed an Array object as its value");}this.setValue(_3a,_3b,_3c);},unsetAttribute:function(_3d,_3e){this.changing(_3d);var old=_3d[_3e];delete _3d[_3e];this.onSet(_3d,_3e,old,undefined);},changing:function(_3f,_40){_3f.__isDirty=true;for(var i=0;i<this._dirtyObjects.length;i++){var _41=this._dirtyObjects[i];if(_3f==_41.object){if(_40){_41.object=false;if(!this._saveNotNeeded){_41.save=true;}}return;}}var old=_3f instanceof Array?[]:{};for(i in _3f){if(_3f.hasOwnProperty(i)){old[i]=_3f[i];}}this._dirtyObjects.push({object:!_40&&_3f,old:old,save:!this._saveNotNeeded});},save:function(_42){_42=_42||{};var _43,_44=[];var _45=[];var _46=this;var _47=this._dirtyObjects;var _48=_47.length;try{_6.connect(_42,"onError",function(){if(_42.revertOnError!==false){var _49=_47;_47=_45;_46.revert();_46._dirtyObjects=_49;}else{_46._dirtyObjects=_47.concat(_45);}});if(this.objectStore.transaction){var _4a=this.objectStore.transaction();}for(var i=0;i<_47.length;i++){var _4b=_47[i];var _4c=_4b.object;var old=_4b.old;delete _4c.__isDirty;if(_4c){_43=this.objectStore.put(_4c,{overwrite:!!old});}else{if(typeof old!="undefined"){_43=this.objectStore.remove(this.getIdentity(old));}}_45.push(_4b);_47.splice(i--,1);_4.when(_43,function(_4d){if(!(--_48)){if(_42.onComplete){_42.onComplete.call(_42.scope,_44);}}},function(_4e){_48=-1;_42.onError.call(_42.scope,_4e);});}if(_4a){_4a.commit();}}catch(e){_42.onError.call(_42.scope,value);}},revert:function(){var _4f=this._dirtyObjects;for(var i=_4f.length;i>0;){i--;var _50=_4f[i];var _51=_50.object;var old=_50.old;if(_51&&old){for(var j in old){if(old.hasOwnProperty(j)&&_51[j]!==old[j]){this.onSet(_51,j,_51[j],old[j]);_51[j]=old[j];}}for(j in _51){if(!old.hasOwnProperty(j)){this.onSet(_51,j,_51[j]);delete _51[j];}}}else{if(!old){this.onDelete(_51);}else{this.onNew(old);}}delete (_51||old).__isDirty;_4f.splice(i,1);}},isDirty:function(_52){if(!_52){return !!this._dirtyObjects.length;}return _52.__isDirty;},onSet:function(){},onNew:function(){},onDelete:function(){},onFetch:function(_53){}});}); \ No newline at end of file
diff --git a/lib/dojo/data/api/Identity.js b/lib/dojo/data/api/Identity.js
index 110113bc8..4b7cd6671 100644
--- a/lib/dojo/data/api/Identity.js
+++ b/lib/dojo/data/api/Identity.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/api/Identity",["../..","./Read"],function(_1){_1.declare("dojo.data.api.Identity",_1.data.api.Read,{getFeatures:function(){return {"dojo.data.api.Read":true,"dojo.data.api.Identity":true};},getIdentity:function(_2){throw new Error("Unimplemented API: dojo.data.api.Identity.getIdentity");},getIdentityAttributes:function(_3){throw new Error("Unimplemented API: dojo.data.api.Identity.getIdentityAttributes");},fetchItemByIdentity:function(_4){if(!this.isItemLoaded(_4.item)){throw new Error("Unimplemented API: dojo.data.api.Identity.fetchItemByIdentity");}}});return _1.data.api.Identity;}); \ No newline at end of file
+define("dojo/data/api/Identity",["../../_base/declare","./Read"],function(_1,_2){return _1("dojo.data.api.Identity",_2,{getFeatures:function(){return {"dojo.data.api.Read":true,"dojo.data.api.Identity":true};},getIdentity:function(_3){throw new Error("Unimplemented API: dojo.data.api.Identity.getIdentity");},getIdentityAttributes:function(_4){throw new Error("Unimplemented API: dojo.data.api.Identity.getIdentityAttributes");},fetchItemByIdentity:function(_5){if(!this.isItemLoaded(_5.item)){throw new Error("Unimplemented API: dojo.data.api.Identity.fetchItemByIdentity");}}});}); \ No newline at end of file
diff --git a/lib/dojo/data/api/Item.js b/lib/dojo/data/api/Item.js
new file mode 100644
index 000000000..d7bd7cb5b
--- /dev/null
+++ b/lib/dojo/data/api/Item.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/data/api/Item",["../../_base/declare"],function(_1){return _1(null,{});}); \ No newline at end of file
diff --git a/lib/dojo/data/api/Notification.js b/lib/dojo/data/api/Notification.js
index d4da32e41..ac6a1da06 100644
--- a/lib/dojo/data/api/Notification.js
+++ b/lib/dojo/data/api/Notification.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/api/Notification",["../..","./Read"],function(_1){_1.declare("dojo.data.api.Notification",_1.data.api.Read,{getFeatures:function(){return {"dojo.data.api.Read":true,"dojo.data.api.Notification":true};},onSet:function(_2,_3,_4,_5){throw new Error("Unimplemented API: dojo.data.api.Notification.onSet");},onNew:function(_6,_7){throw new Error("Unimplemented API: dojo.data.api.Notification.onNew");},onDelete:function(_8){throw new Error("Unimplemented API: dojo.data.api.Notification.onDelete");}});return _1.data.api.Notification;}); \ No newline at end of file
+define("dojo/data/api/Notification",["../../_base/declare","./Read"],function(_1,_2){return _1("dojo.data.api.Notification",_2,{getFeatures:function(){return {"dojo.data.api.Read":true,"dojo.data.api.Notification":true};},onSet:function(_3,_4,_5,_6){throw new Error("Unimplemented API: dojo.data.api.Notification.onSet");},onNew:function(_7,_8){throw new Error("Unimplemented API: dojo.data.api.Notification.onNew");},onDelete:function(_9){throw new Error("Unimplemented API: dojo.data.api.Notification.onDelete");}});}); \ No newline at end of file
diff --git a/lib/dojo/data/api/Read.js b/lib/dojo/data/api/Read.js
index 4682c6f51..b3fb2a1c2 100644
--- a/lib/dojo/data/api/Read.js
+++ b/lib/dojo/data/api/Read.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/api/Read",["../..","./Request"],function(_1){_1.declare("dojo.data.api.Read",null,{getValue:function(_2,_3,_4){throw new Error("Unimplemented API: dojo.data.api.Read.getValue");},getValues:function(_5,_6){throw new Error("Unimplemented API: dojo.data.api.Read.getValues");},getAttributes:function(_7){throw new Error("Unimplemented API: dojo.data.api.Read.getAttributes");},hasAttribute:function(_8,_9){throw new Error("Unimplemented API: dojo.data.api.Read.hasAttribute");},containsValue:function(_a,_b,_c){throw new Error("Unimplemented API: dojo.data.api.Read.containsValue");},isItem:function(_d){throw new Error("Unimplemented API: dojo.data.api.Read.isItem");},isItemLoaded:function(_e){throw new Error("Unimplemented API: dojo.data.api.Read.isItemLoaded");},loadItem:function(_f){if(!this.isItemLoaded(_f.item)){throw new Error("Unimplemented API: dojo.data.api.Read.loadItem");}},fetch:function(_10){throw new Error("Unimplemented API: dojo.data.api.Read.fetch");},getFeatures:function(){return {"dojo.data.api.Read":true};},close:function(_11){throw new Error("Unimplemented API: dojo.data.api.Read.close");},getLabel:function(_12){throw new Error("Unimplemented API: dojo.data.api.Read.getLabel");},getLabelAttributes:function(_13){throw new Error("Unimplemented API: dojo.data.api.Read.getLabelAttributes");}});return _1.data.api.Read;}); \ No newline at end of file
+define("dojo/data/api/Read",["../../_base/declare"],function(_1){return _1("dojo.data.api.Read",null,{getValue:function(_2,_3,_4){throw new Error("Unimplemented API: dojo.data.api.Read.getValue");},getValues:function(_5,_6){throw new Error("Unimplemented API: dojo.data.api.Read.getValues");},getAttributes:function(_7){throw new Error("Unimplemented API: dojo.data.api.Read.getAttributes");},hasAttribute:function(_8,_9){throw new Error("Unimplemented API: dojo.data.api.Read.hasAttribute");},containsValue:function(_a,_b,_c){throw new Error("Unimplemented API: dojo.data.api.Read.containsValue");},isItem:function(_d){throw new Error("Unimplemented API: dojo.data.api.Read.isItem");},isItemLoaded:function(_e){throw new Error("Unimplemented API: dojo.data.api.Read.isItemLoaded");},loadItem:function(_f){if(!this.isItemLoaded(_f.item)){throw new Error("Unimplemented API: dojo.data.api.Read.loadItem");}},fetch:function(_10){throw new Error("Unimplemented API: dojo.data.api.Read.fetch");},getFeatures:function(){return {"dojo.data.api.Read":true};},close:function(_11){throw new Error("Unimplemented API: dojo.data.api.Read.close");},getLabel:function(_12){throw new Error("Unimplemented API: dojo.data.api.Read.getLabel");},getLabelAttributes:function(_13){throw new Error("Unimplemented API: dojo.data.api.Read.getLabelAttributes");}});}); \ No newline at end of file
diff --git a/lib/dojo/data/api/Request.js b/lib/dojo/data/api/Request.js
index 83b3696aa..22e6129c1 100644
--- a/lib/dojo/data/api/Request.js
+++ b/lib/dojo/data/api/Request.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/api/Request",["../.."],function(_1){_1.declare("dojo.data.api.Request",null,{abort:function(){throw new Error("Unimplemented API: dojo.data.api.Request.abort");}});return _1.data.api.Request;}); \ No newline at end of file
+define("dojo/data/api/Request",["../../_base/declare"],function(_1){return _1("dojo.data.api.Request",null,{abort:function(){throw new Error("Unimplemented API: dojo.data.api.Request.abort");}});}); \ No newline at end of file
diff --git a/lib/dojo/data/api/Write.js b/lib/dojo/data/api/Write.js
index 33392dc42..4aba32e97 100644
--- a/lib/dojo/data/api/Write.js
+++ b/lib/dojo/data/api/Write.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/api/Write",["../..","./Read"],function(_1){_1.declare("dojo.data.api.Write",_1.data.api.Read,{getFeatures:function(){return {"dojo.data.api.Read":true,"dojo.data.api.Write":true};},newItem:function(_2,_3){throw new Error("Unimplemented API: dojo.data.api.Write.newItem");},deleteItem:function(_4){throw new Error("Unimplemented API: dojo.data.api.Write.deleteItem");},setValue:function(_5,_6,_7){throw new Error("Unimplemented API: dojo.data.api.Write.setValue");},setValues:function(_8,_9,_a){throw new Error("Unimplemented API: dojo.data.api.Write.setValues");},unsetAttribute:function(_b,_c){throw new Error("Unimplemented API: dojo.data.api.Write.clear");},save:function(_d){throw new Error("Unimplemented API: dojo.data.api.Write.save");},revert:function(){throw new Error("Unimplemented API: dojo.data.api.Write.revert");},isDirty:function(_e){throw new Error("Unimplemented API: dojo.data.api.Write.isDirty");}});return _1.data.api.Write;}); \ No newline at end of file
+define("dojo/data/api/Write",["../../_base/declare","./Read"],function(_1,_2){return _1("dojo.data.api.Write",_2,{getFeatures:function(){return {"dojo.data.api.Read":true,"dojo.data.api.Write":true};},newItem:function(_3,_4){throw new Error("Unimplemented API: dojo.data.api.Write.newItem");},deleteItem:function(_5){throw new Error("Unimplemented API: dojo.data.api.Write.deleteItem");},setValue:function(_6,_7,_8){throw new Error("Unimplemented API: dojo.data.api.Write.setValue");},setValues:function(_9,_a,_b){throw new Error("Unimplemented API: dojo.data.api.Write.setValues");},unsetAttribute:function(_c,_d){throw new Error("Unimplemented API: dojo.data.api.Write.clear");},save:function(_e){throw new Error("Unimplemented API: dojo.data.api.Write.save");},revert:function(){throw new Error("Unimplemented API: dojo.data.api.Write.revert");},isDirty:function(_f){throw new Error("Unimplemented API: dojo.data.api.Write.isDirty");}});}); \ No newline at end of file
diff --git a/lib/dojo/data/util/filter.js b/lib/dojo/data/util/filter.js
index 582b31131..d5d1f175e 100644
--- a/lib/dojo/data/util/filter.js
+++ b/lib/dojo/data/util/filter.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/util/filter",["dojo/_base/lang"],function(_1){var _2=_1.getObject("dojo.data.util.filter",true);_2.patternToRegExp=function(_3,_4){var _5="^";var c=null;for(var i=0;i<_3.length;i++){c=_3.charAt(i);switch(c){case "\\":_5+=c;i++;_5+=_3.charAt(i);break;case "*":_5+=".*";break;case "?":_5+=".";break;case "$":case "^":case "/":case "+":case ".":case "|":case "(":case ")":case "{":case "}":case "[":case "]":_5+="\\";default:_5+=c;}}_5+="$";if(_4){return new RegExp(_5,"mi");}else{return new RegExp(_5,"m");}};return _2;}); \ No newline at end of file
+define("dojo/data/util/filter",["../../_base/lang"],function(_1){var _2={};_1.setObject("dojo.data.util.filter",_2);_2.patternToRegExp=function(_3,_4){var _5="^";var c=null;for(var i=0;i<_3.length;i++){c=_3.charAt(i);switch(c){case "\\":_5+=c;i++;_5+=_3.charAt(i);break;case "*":_5+=".*";break;case "?":_5+=".";break;case "$":case "^":case "/":case "+":case ".":case "|":case "(":case ")":case "{":case "}":case "[":case "]":_5+="\\";default:_5+=c;}}_5+="$";if(_4){return new RegExp(_5,"mi");}else{return new RegExp(_5,"m");}};return _2;}); \ No newline at end of file
diff --git a/lib/dojo/data/util/simpleFetch.js b/lib/dojo/data/util/simpleFetch.js
index d339ecda6..b4271f428 100644
--- a/lib/dojo/data/util/simpleFetch.js
+++ b/lib/dojo/data/util/simpleFetch.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/util/simpleFetch",["dojo/_base/lang","dojo/_base/window","./sorter"],function(_1,_2,_3){var _4=_1.getObject("dojo.data.util.simpleFetch",true);_4.fetch=function(_5){_5=_5||{};if(!_5.store){_5.store=this;}var _6=this;var _7=function(_8,_9){if(_9.onError){var _a=_9.scope||_2.global;_9.onError.call(_a,_8,_9);}};var _b=function(_c,_d){var _e=_d.abort||null;var _f=false;var _10=_d.start?_d.start:0;var _11=(_d.count&&(_d.count!==Infinity))?(_10+_d.count):_c.length;_d.abort=function(){_f=true;if(_e){_e.call(_d);}};var _12=_d.scope||_2.global;if(!_d.store){_d.store=_6;}if(_d.onBegin){_d.onBegin.call(_12,_c.length,_d);}if(_d.sort){_c.sort(_3.createSortFunction(_d.sort,_6));}if(_d.onItem){for(var i=_10;(i<_c.length)&&(i<_11);++i){var _13=_c[i];if(!_f){_d.onItem.call(_12,_13,_d);}}}if(_d.onComplete&&!_f){var _14=null;if(!_d.onItem){_14=_c.slice(_10,_11);}_d.onComplete.call(_12,_14,_d);}};this._fetchItems(_5,_b,_7);return _5;};return _4;}); \ No newline at end of file
+define("dojo/data/util/simpleFetch",["../../_base/lang","../../_base/kernel","./sorter"],function(_1,_2,_3){var _4={};_1.setObject("dojo.data.util.simpleFetch",_4);_4.errorHandler=function(_5,_6){if(_6.onError){var _7=_6.scope||_2.global;_6.onError.call(_7,_5,_6);}};_4.fetchHandler=function(_8,_9){var _a=_9.abort||null,_b=false,_c=_9.start?_9.start:0,_d=(_9.count&&(_9.count!==Infinity))?(_c+_9.count):_8.length;_9.abort=function(){_b=true;if(_a){_a.call(_9);}};var _e=_9.scope||_2.global;if(!_9.store){_9.store=this;}if(_9.onBegin){_9.onBegin.call(_e,_8.length,_9);}if(_9.sort){_8.sort(_3.createSortFunction(_9.sort,this));}if(_9.onItem){for(var i=_c;(i<_8.length)&&(i<_d);++i){var _f=_8[i];if(!_b){_9.onItem.call(_e,_f,_9);}}}if(_9.onComplete&&!_b){var _10=null;if(!_9.onItem){_10=_8.slice(_c,_d);}_9.onComplete.call(_e,_10,_9);}};_4.fetch=function(_11){_11=_11||{};if(!_11.store){_11.store=this;}this._fetchItems(_11,_1.hitch(this,"fetchHandler"),_1.hitch(this,"errorHandler"));return _11;};return _4;}); \ No newline at end of file
diff --git a/lib/dojo/data/util/sorter.js b/lib/dojo/data/util/sorter.js
index 2591fe18e..9817434a3 100644
--- a/lib/dojo/data/util/sorter.js
+++ b/lib/dojo/data/util/sorter.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/data/util/sorter",["dojo/_base/lang"],function(_1){var _2=_1.getObject("dojo.data.util.sorter",true);_2.basicComparator=function(a,b){var r=-1;if(a===null){a=undefined;}if(b===null){b=undefined;}if(a==b){r=0;}else{if(a>b||a==null){r=1;}}return r;};_2.createSortFunction=function(_3,_4){var _5=[];function _6(_7,_8,_9,s){return function(_a,_b){var a=s.getValue(_a,_7);var b=s.getValue(_b,_7);return _8*_9(a,b);};};var _c;var _d=_4.comparatorMap;var bc=_2.basicComparator;for(var i=0;i<_3.length;i++){_c=_3[i];var _e=_c.attribute;if(_e){var _f=(_c.descending)?-1:1;var _10=bc;if(_d){if(typeof _e!=="string"&&("toString" in _e)){_e=_e.toString();}_10=_d[_e]||bc;}_5.push(_6(_e,_f,_10,_4));}}return function(_11,_12){var i=0;while(i<_5.length){var ret=_5[i++](_11,_12);if(ret!==0){return ret;}}return 0;};};return _2;}); \ No newline at end of file
+define("dojo/data/util/sorter",["../../_base/lang"],function(_1){var _2={};_1.setObject("dojo.data.util.sorter",_2);_2.basicComparator=function(a,b){var r=-1;if(a===null){a=undefined;}if(b===null){b=undefined;}if(a==b){r=0;}else{if(a>b||a==null){r=1;}}return r;};_2.createSortFunction=function(_3,_4){var _5=[];function _6(_7,_8,_9,s){return function(_a,_b){var a=s.getValue(_a,_7);var b=s.getValue(_b,_7);return _8*_9(a,b);};};var _c;var _d=_4.comparatorMap;var bc=_2.basicComparator;for(var i=0;i<_3.length;i++){_c=_3[i];var _e=_c.attribute;if(_e){var _f=(_c.descending)?-1:1;var _10=bc;if(_d){if(typeof _e!=="string"&&("toString" in _e)){_e=_e.toString();}_10=_d[_e]||bc;}_5.push(_6(_e,_f,_10,_4));}}return function(_11,_12){var i=0;while(i<_5.length){var ret=_5[i++](_11,_12);if(ret!==0){return ret;}}return 0;};};return _2;}); \ No newline at end of file
diff --git a/lib/dojo/date.js b/lib/dojo/date.js
index 55a1bdf27..dee2c3e80 100644
--- a/lib/dojo/date.js
+++ b/lib/dojo/date.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/date",["./_base/kernel","./_base/lang"],function(_1,_2){_2.getObject("date",true,_1);_1.date.getDaysInMonth=function(_3){var _4=_3.getMonth();var _5=[31,28,31,30,31,30,31,31,30,31,30,31];if(_4==1&&_1.date.isLeapYear(_3)){return 29;}return _5[_4];};_1.date.isLeapYear=function(_6){var _7=_6.getFullYear();return !(_7%400)||(!(_7%4)&&!!(_7%100));};_1.date.getTimezoneName=function(_8){var _9=_8.toString();var tz="";var _a;var _b=_9.indexOf("(");if(_b>-1){tz=_9.substring(++_b,_9.indexOf(")"));}else{var _c=/([A-Z\/]+) \d{4}$/;if((_a=_9.match(_c))){tz=_a[1];}else{_9=_8.toLocaleString();_c=/ ([A-Z\/]+)$/;if((_a=_9.match(_c))){tz=_a[1];}}}return (tz=="AM"||tz=="PM")?"":tz;};_1.date.compare=function(_d,_e,_f){_d=new Date(+_d);_e=new Date(+(_e||new Date()));if(_f=="date"){_d.setHours(0,0,0,0);_e.setHours(0,0,0,0);}else{if(_f=="time"){_d.setFullYear(0,0,0);_e.setFullYear(0,0,0);}}if(_d>_e){return 1;}if(_d<_e){return -1;}return 0;};_1.date.add=function(_10,_11,_12){var sum=new Date(+_10);var _13=false;var _14="Date";switch(_11){case "day":break;case "weekday":var _15,_16;var mod=_12%5;if(!mod){_15=(_12>0)?5:-5;_16=(_12>0)?((_12-5)/5):((_12+5)/5);}else{_15=mod;_16=parseInt(_12/5);}var _17=_10.getDay();var adj=0;if(_17==6&&_12>0){adj=1;}else{if(_17==0&&_12<0){adj=-1;}}var _18=_17+_15;if(_18==0||_18==6){adj=(_12>0)?2:-2;}_12=(7*_16)+_15+adj;break;case "year":_14="FullYear";_13=true;break;case "week":_12*=7;break;case "quarter":_12*=3;case "month":_13=true;_14="Month";break;default:_14="UTC"+_11.charAt(0).toUpperCase()+_11.substring(1)+"s";}if(_14){sum["set"+_14](sum["get"+_14]()+_12);}if(_13&&(sum.getDate()<_10.getDate())){sum.setDate(0);}return sum;};_1.date.difference=function(_19,_1a,_1b){_1a=_1a||new Date();_1b=_1b||"day";var _1c=_1a.getFullYear()-_19.getFullYear();var _1d=1;switch(_1b){case "quarter":var m1=_19.getMonth();var m2=_1a.getMonth();var q1=Math.floor(m1/3)+1;var q2=Math.floor(m2/3)+1;q2+=(_1c*4);_1d=q2-q1;break;case "weekday":var _1e=Math.round(_1.date.difference(_19,_1a,"day"));var _1f=parseInt(_1.date.difference(_19,_1a,"week"));var mod=_1e%7;if(mod==0){_1e=_1f*5;}else{var adj=0;var _20=_19.getDay();var _21=_1a.getDay();_1f=parseInt(_1e/7);mod=_1e%7;var _22=new Date(_19);_22.setDate(_22.getDate()+(_1f*7));var _23=_22.getDay();if(_1e>0){switch(true){case _20==6:adj=-1;break;case _20==0:adj=0;break;case _21==6:adj=-1;break;case _21==0:adj=-2;break;case (_23+mod)>5:adj=-2;}}else{if(_1e<0){switch(true){case _20==6:adj=0;break;case _20==0:adj=1;break;case _21==6:adj=2;break;case _21==0:adj=1;break;case (_23+mod)<0:adj=2;}}}_1e+=adj;_1e-=(_1f*2);}_1d=_1e;break;case "year":_1d=_1c;break;case "month":_1d=(_1a.getMonth()-_19.getMonth())+(_1c*12);break;case "week":_1d=parseInt(_1.date.difference(_19,_1a,"day")/7);break;case "day":_1d/=24;case "hour":_1d/=60;case "minute":_1d/=60;case "second":_1d/=1000;case "millisecond":_1d*=_1a.getTime()-_19.getTime();}return Math.round(_1d);};return _1.date;}); \ No newline at end of file
+define("dojo/date",["./has","./_base/lang"],function(_1,_2){var _3={};_3.getDaysInMonth=function(_4){var _5=_4.getMonth();var _6=[31,28,31,30,31,30,31,31,30,31,30,31];if(_5==1&&_3.isLeapYear(_4)){return 29;}return _6[_5];};_3.isLeapYear=function(_7){var _8=_7.getFullYear();return !(_8%400)||(!(_8%4)&&!!(_8%100));};_3.getTimezoneName=function(_9){var _a=_9.toString();var tz="";var _b;var _c=_a.indexOf("(");if(_c>-1){tz=_a.substring(++_c,_a.indexOf(")"));}else{var _d=/([A-Z\/]+) \d{4}$/;if((_b=_a.match(_d))){tz=_b[1];}else{_a=_9.toLocaleString();_d=/ ([A-Z\/]+)$/;if((_b=_a.match(_d))){tz=_b[1];}}}return (tz=="AM"||tz=="PM")?"":tz;};_3.compare=function(_e,_f,_10){_e=new Date(+_e);_f=new Date(+(_f||new Date()));if(_10=="date"){_e.setHours(0,0,0,0);_f.setHours(0,0,0,0);}else{if(_10=="time"){_e.setFullYear(0,0,0);_f.setFullYear(0,0,0);}}if(_e>_f){return 1;}if(_e<_f){return -1;}return 0;};_3.add=function(_11,_12,_13){var sum=new Date(+_11);var _14=false;var _15="Date";switch(_12){case "day":break;case "weekday":var _16,_17;var mod=_13%5;if(!mod){_16=(_13>0)?5:-5;_17=(_13>0)?((_13-5)/5):((_13+5)/5);}else{_16=mod;_17=parseInt(_13/5);}var _18=_11.getDay();var adj=0;if(_18==6&&_13>0){adj=1;}else{if(_18==0&&_13<0){adj=-1;}}var _19=_18+_16;if(_19==0||_19==6){adj=(_13>0)?2:-2;}_13=(7*_17)+_16+adj;break;case "year":_15="FullYear";_14=true;break;case "week":_13*=7;break;case "quarter":_13*=3;case "month":_14=true;_15="Month";break;default:_15="UTC"+_12.charAt(0).toUpperCase()+_12.substring(1)+"s";}if(_15){sum["set"+_15](sum["get"+_15]()+_13);}if(_14&&(sum.getDate()<_11.getDate())){sum.setDate(0);}return sum;};_3.difference=function(_1a,_1b,_1c){_1b=_1b||new Date();_1c=_1c||"day";var _1d=_1b.getFullYear()-_1a.getFullYear();var _1e=1;switch(_1c){case "quarter":var m1=_1a.getMonth();var m2=_1b.getMonth();var q1=Math.floor(m1/3)+1;var q2=Math.floor(m2/3)+1;q2+=(_1d*4);_1e=q2-q1;break;case "weekday":var _1f=Math.round(_3.difference(_1a,_1b,"day"));var _20=parseInt(_3.difference(_1a,_1b,"week"));var mod=_1f%7;if(mod==0){_1f=_20*5;}else{var adj=0;var _21=_1a.getDay();var _22=_1b.getDay();_20=parseInt(_1f/7);mod=_1f%7;var _23=new Date(_1a);_23.setDate(_23.getDate()+(_20*7));var _24=_23.getDay();if(_1f>0){switch(true){case _21==6:adj=-1;break;case _21==0:adj=0;break;case _22==6:adj=-1;break;case _22==0:adj=-2;break;case (_24+mod)>5:adj=-2;}}else{if(_1f<0){switch(true){case _21==6:adj=0;break;case _21==0:adj=1;break;case _22==6:adj=2;break;case _22==0:adj=1;break;case (_24+mod)<0:adj=2;}}}_1f+=adj;_1f-=(_20*2);}_1e=_1f;break;case "year":_1e=_1d;break;case "month":_1e=(_1b.getMonth()-_1a.getMonth())+(_1d*12);break;case "week":_1e=parseInt(_3.difference(_1a,_1b,"day")/7);break;case "day":_1e/=24;case "hour":_1e/=60;case "minute":_1e/=60;case "second":_1e/=1000;case "millisecond":_1e*=_1b.getTime()-_1a.getTime();}return Math.round(_1e);};1&&_2.mixin(_2.getObject("dojo.date",true),_3);return _3;}); \ No newline at end of file
diff --git a/lib/dojo/date/locale.js b/lib/dojo/date/locale.js
index 2d029b014..7d4106a43 100644
--- a/lib/dojo/date/locale.js
+++ b/lib/dojo/date/locale.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/date/locale",["../_base/kernel","../_base/lang","../_base/array","../date","../cldr/supplemental","../regexp","../string","../i18n!../cldr/nls/gregorian"],function(_1,_2,_3,_4,_5,_6,_7,_8){_2.getObject("date.locale",true,_1);function _9(_a,_b,_c,_d){return _d.replace(/([a-z])\1*/ig,function(_e){var s,_f,c=_e.charAt(0),l=_e.length,_10=["abbr","wide","narrow"];switch(c){case "G":s=_b[(l<4)?"eraAbbr":"eraNames"][_a.getFullYear()<0?0:1];break;case "y":s=_a.getFullYear();switch(l){case 1:break;case 2:if(!_c.fullYear){s=String(s);s=s.substr(s.length-2);break;}default:_f=true;}break;case "Q":case "q":s=Math.ceil((_a.getMonth()+1)/3);_f=true;break;case "M":var m=_a.getMonth();if(l<3){s=m+1;_f=true;}else{var _11=["months","format",_10[l-3]].join("-");s=_b[_11][m];}break;case "w":var _12=0;s=_1.date.locale._getWeekOfYear(_a,_12);_f=true;break;case "d":s=_a.getDate();_f=true;break;case "D":s=_1.date.locale._getDayOfYear(_a);_f=true;break;case "E":var d=_a.getDay();if(l<3){s=d+1;_f=true;}else{var _13=["days","format",_10[l-3]].join("-");s=_b[_13][d];}break;case "a":var _14=(_a.getHours()<12)?"am":"pm";s=_c[_14]||_b["dayPeriods-format-wide-"+_14];break;case "h":case "H":case "K":case "k":var h=_a.getHours();switch(c){case "h":s=(h%12)||12;break;case "H":s=h;break;case "K":s=(h%12);break;case "k":s=h||24;break;}_f=true;break;case "m":s=_a.getMinutes();_f=true;break;case "s":s=_a.getSeconds();_f=true;break;case "S":s=Math.round(_a.getMilliseconds()*Math.pow(10,l-3));_f=true;break;case "v":case "z":s=_1.date.locale._getZone(_a,true,_c);if(s){break;}l=4;case "Z":var _15=_1.date.locale._getZone(_a,false,_c);var tz=[(_15<=0?"+":"-"),_7.pad(Math.floor(Math.abs(_15)/60),2),_7.pad(Math.abs(_15)%60,2)];if(l==4){tz.splice(0,0,"GMT");tz.splice(3,0,":");}s=tz.join("");break;default:throw new Error("dojo.date.locale.format: invalid pattern char: "+_d);}if(_f){s=_7.pad(s,l);}return s;});};_1.date.locale._getZone=function(_16,_17,_18){if(_17){return _4.getTimezoneName(_16);}else{return _16.getTimezoneOffset();}};_1.date.locale.format=function(_19,_1a){_1a=_1a||{};var _1b=_1.i18n.normalizeLocale(_1a.locale),_1c=_1a.formatLength||"short",_1d=_1.date.locale._getGregorianBundle(_1b),str=[],_1e=_2.hitch(this,_9,_19,_1d,_1a);if(_1a.selector=="year"){return _1f(_1d["dateFormatItem-yyyy"]||"yyyy",_1e);}var _20;if(_1a.selector!="date"){_20=_1a.timePattern||_1d["timeFormat-"+_1c];if(_20){str.push(_1f(_20,_1e));}}if(_1a.selector!="time"){_20=_1a.datePattern||_1d["dateFormat-"+_1c];if(_20){str.push(_1f(_20,_1e));}}return str.length==1?str[0]:_1d["dateTimeFormat-"+_1c].replace(/\{(\d+)\}/g,function(_21,key){return str[key];});};_1.date.locale.regexp=function(_22){return _1.date.locale._parseInfo(_22).regexp;};_1.date.locale._parseInfo=function(_23){_23=_23||{};var _24=_1.i18n.normalizeLocale(_23.locale),_25=_1.date.locale._getGregorianBundle(_24),_26=_23.formatLength||"short",_27=_23.datePattern||_25["dateFormat-"+_26],_28=_23.timePattern||_25["timeFormat-"+_26],_29;if(_23.selector=="date"){_29=_27;}else{if(_23.selector=="time"){_29=_28;}else{_29=_25["dateTimeFormat-"+_26].replace(/\{(\d+)\}/g,function(_2a,key){return [_28,_27][key];});}}var _2b=[],re=_1f(_29,_2.hitch(this,_2c,_2b,_25,_23));return {regexp:re,tokens:_2b,bundle:_25};};_1.date.locale.parse=function(_2d,_2e){var _2f=/[\u200E\u200F\u202A\u202E]/g,_30=_1.date.locale._parseInfo(_2e),_31=_30.tokens,_32=_30.bundle,re=new RegExp("^"+_30.regexp.replace(_2f,"")+"$",_30.strict?"":"i"),_33=re.exec(_2d&&_2d.replace(_2f,""));if(!_33){return null;}var _34=["abbr","wide","narrow"],_35=[1970,0,1,0,0,0,0],_36="",_37=_1.every(_33,function(v,i){if(!i){return true;}var _38=_31[i-1];var l=_38.length;switch(_38.charAt(0)){case "y":if(l!=2&&_2e.strict){_35[0]=v;}else{if(v<100){v=Number(v);var _39=""+new Date().getFullYear(),_3a=_39.substring(0,2)*100,_3b=Math.min(Number(_39.substring(2,4))+20,99);_35[0]=(v<_3b)?_3a+v:_3a-100+v;}else{if(_2e.strict){return false;}_35[0]=v;}}break;case "M":if(l>2){var _3c=_32["months-format-"+_34[l-3]].concat();if(!_2e.strict){v=v.replace(".","").toLowerCase();_3c=_1.map(_3c,function(s){return s.replace(".","").toLowerCase();});}v=_1.indexOf(_3c,v);if(v==-1){return false;}}else{v--;}_35[1]=v;break;case "E":case "e":var _3d=_32["days-format-"+_34[l-3]].concat();if(!_2e.strict){v=v.toLowerCase();_3d=_1.map(_3d,function(d){return d.toLowerCase();});}v=_1.indexOf(_3d,v);if(v==-1){return false;}break;case "D":_35[1]=0;case "d":_35[2]=v;break;case "a":var am=_2e.am||_32["dayPeriods-format-wide-am"],pm=_2e.pm||_32["dayPeriods-format-wide-pm"];if(!_2e.strict){var _3e=/\./g;v=v.replace(_3e,"").toLowerCase();am=am.replace(_3e,"").toLowerCase();pm=pm.replace(_3e,"").toLowerCase();}if(_2e.strict&&v!=am&&v!=pm){return false;}_36=(v==pm)?"p":(v==am)?"a":"";break;case "K":if(v==24){v=0;}case "h":case "H":case "k":if(v>23){return false;}_35[3]=v;break;case "m":_35[4]=v;break;case "s":_35[5]=v;break;case "S":_35[6]=v;}return true;});var _3f=+_35[3];if(_36==="p"&&_3f<12){_35[3]=_3f+12;}else{if(_36==="a"&&_3f==12){_35[3]=0;}}var _40=new Date(_35[0],_35[1],_35[2],_35[3],_35[4],_35[5],_35[6]);if(_2e.strict){_40.setFullYear(_35[0]);}var _41=_31.join(""),_42=_41.indexOf("d")!=-1,_43=_41.indexOf("M")!=-1;if(!_37||(_43&&_40.getMonth()>_35[1])||(_42&&_40.getDate()>_35[2])){return null;}if((_43&&_40.getMonth()<_35[1])||(_42&&_40.getDate()<_35[2])){_40=_4.add(_40,"hour",1);}return _40;};function _1f(_44,_45,_46,_47){var _48=function(x){return x;};_45=_45||_48;_46=_46||_48;_47=_47||_48;var _49=_44.match(/(''|[^'])+/g),_4a=_44.charAt(0)=="'";_1.forEach(_49,function(_4b,i){if(!_4b){_49[i]="";}else{_49[i]=(_4a?_46:_45)(_4b.replace(/''/g,"'"));_4a=!_4a;}});return _47(_49.join(""));};function _2c(_4c,_4d,_4e,_4f){_4f=_6.escapeString(_4f);if(!_4e.strict){_4f=_4f.replace(" a"," ?a");}return _4f.replace(/([a-z])\1*/ig,function(_50){var s,c=_50.charAt(0),l=_50.length,p2="",p3="";if(_4e.strict){if(l>1){p2="0"+"{"+(l-1)+"}";}if(l>2){p3="0"+"{"+(l-2)+"}";}}else{p2="0?";p3="0{0,2}";}switch(c){case "y":s="\\d{2,4}";break;case "M":s=(l>2)?"\\S+?":"1[0-2]|"+p2+"[1-9]";break;case "D":s="[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|"+p2+"[1-9][0-9]|"+p3+"[1-9]";break;case "d":s="3[01]|[12]\\d|"+p2+"[1-9]";break;case "w":s="[1-4][0-9]|5[0-3]|"+p2+"[1-9]";break;case "E":s="\\S+";break;case "h":s="1[0-2]|"+p2+"[1-9]";break;case "k":s="1[01]|"+p2+"\\d";break;case "H":s="1\\d|2[0-3]|"+p2+"\\d";break;case "K":s="1\\d|2[0-4]|"+p2+"[1-9]";break;case "m":case "s":s="[0-5]\\d";break;case "S":s="\\d{"+l+"}";break;case "a":var am=_4e.am||_4d["dayPeriods-format-wide-am"],pm=_4e.pm||_4d["dayPeriods-format-wide-pm"];s=am+"|"+pm;if(!_4e.strict){if(am!=am.toLowerCase()){s+="|"+am.toLowerCase();}if(pm!=pm.toLowerCase()){s+="|"+pm.toLowerCase();}if(s.indexOf(".")!=-1){s+="|"+s.replace(/\./g,"");}}s=s.replace(/\./g,"\\.");break;default:s=".*";}if(_4c){_4c.push(_50);}return "("+s+")";}).replace(/[\xa0 ]/g,"[\\s\\xa0]");};var _51=[];_1.date.locale.addCustomFormats=function(_52,_53){_51.push({pkg:_52,name:_53});};_1.date.locale._getGregorianBundle=function(_54){var _55={};_1.forEach(_51,function(_56){var _57=_1.i18n.getLocalization(_56.pkg,_56.name,_54);_55=_2.mixin(_55,_57);},this);return _55;};_1.date.locale.addCustomFormats("dojo.cldr","gregorian");_1.date.locale.getNames=function(_58,_59,_5a,_5b){var _5c,_5d=_1.date.locale._getGregorianBundle(_5b),_5e=[_58,_5a,_59];if(_5a=="standAlone"){var key=_5e.join("-");_5c=_5d[key];if(_5c[0]==1){_5c=undefined;}}_5e[1]="format";return (_5c||_5d[_5e.join("-")]).concat();};_1.date.locale.isWeekend=function(_5f,_60){var _61=_5.getWeekend(_60),day=(_5f||new Date()).getDay();if(_61.end<_61.start){_61.end+=7;if(day<_61.start){day+=7;}}return day>=_61.start&&day<=_61.end;};_1.date.locale._getDayOfYear=function(_62){return _4.difference(new Date(_62.getFullYear(),0,1,_62.getHours()),_62)+1;};_1.date.locale._getWeekOfYear=function(_63,_64){if(arguments.length==1){_64=0;}var _65=new Date(_63.getFullYear(),0,1).getDay(),adj=(_65-_64+7)%7,_66=Math.floor((_1.date.locale._getDayOfYear(_63)+adj-1)/7);if(_65==_64){_66++;}return _66;};return _1.date.locale;}); \ No newline at end of file
+define("dojo/date/locale",["../_base/lang","../_base/array","../date","../cldr/supplemental","../i18n","../regexp","../string","../i18n!../cldr/nls/gregorian","module"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){var _a={};_1.setObject(_9.id.replace(/\//g,"."),_a);function _b(_c,_d,_e,_f){return _f.replace(/([a-z])\1*/ig,function(_10){var s,pad,c=_10.charAt(0),l=_10.length,_11=["abbr","wide","narrow"];switch(c){case "G":s=_d[(l<4)?"eraAbbr":"eraNames"][_c.getFullYear()<0?0:1];break;case "y":s=_c.getFullYear();switch(l){case 1:break;case 2:if(!_e.fullYear){s=String(s);s=s.substr(s.length-2);break;}default:pad=true;}break;case "Q":case "q":s=Math.ceil((_c.getMonth()+1)/3);pad=true;break;case "M":case "L":var m=_c.getMonth();if(l<3){s=m+1;pad=true;}else{var _12=["months",c=="L"?"standAlone":"format",_11[l-3]].join("-");s=_d[_12][m];}break;case "w":var _13=0;s=_a._getWeekOfYear(_c,_13);pad=true;break;case "d":s=_c.getDate();pad=true;break;case "D":s=_a._getDayOfYear(_c);pad=true;break;case "e":case "c":var d=_c.getDay();if(l<2){s=(d-_4.getFirstDayOfWeek(_e.locale)+8)%7;break;}case "E":d=_c.getDay();if(l<3){s=d+1;pad=true;}else{var _14=["days",c=="c"?"standAlone":"format",_11[l-3]].join("-");s=_d[_14][d];}break;case "a":var _15=_c.getHours()<12?"am":"pm";s=_e[_15]||_d["dayPeriods-format-wide-"+_15];break;case "h":case "H":case "K":case "k":var h=_c.getHours();switch(c){case "h":s=(h%12)||12;break;case "H":s=h;break;case "K":s=(h%12);break;case "k":s=h||24;break;}pad=true;break;case "m":s=_c.getMinutes();pad=true;break;case "s":s=_c.getSeconds();pad=true;break;case "S":s=Math.round(_c.getMilliseconds()*Math.pow(10,l-3));pad=true;break;case "v":case "z":s=_a._getZone(_c,true,_e);if(s){break;}l=4;case "Z":var _16=_a._getZone(_c,false,_e);var tz=[(_16<=0?"+":"-"),_7.pad(Math.floor(Math.abs(_16)/60),2),_7.pad(Math.abs(_16)%60,2)];if(l==4){tz.splice(0,0,"GMT");tz.splice(3,0,":");}s=tz.join("");break;default:throw new Error("dojo.date.locale.format: invalid pattern char: "+_f);}if(pad){s=_7.pad(s,l);}return s;});};_a._getZone=function(_17,_18,_19){if(_18){return _3.getTimezoneName(_17);}else{return _17.getTimezoneOffset();}};_a.format=function(_1a,_1b){_1b=_1b||{};var _1c=_5.normalizeLocale(_1b.locale),_1d=_1b.formatLength||"short",_1e=_a._getGregorianBundle(_1c),str=[],_1f=_1.hitch(this,_b,_1a,_1e,_1b);if(_1b.selector=="year"){return _20(_1e["dateFormatItem-yyyy"]||"yyyy",_1f);}var _21;if(_1b.selector!="date"){_21=_1b.timePattern||_1e["timeFormat-"+_1d];if(_21){str.push(_20(_21,_1f));}}if(_1b.selector!="time"){_21=_1b.datePattern||_1e["dateFormat-"+_1d];if(_21){str.push(_20(_21,_1f));}}return str.length==1?str[0]:_1e["dateTimeFormat-"+_1d].replace(/\'/g,"").replace(/\{(\d+)\}/g,function(_22,key){return str[key];});};_a.regexp=function(_23){return _a._parseInfo(_23).regexp;};_a._parseInfo=function(_24){_24=_24||{};var _25=_5.normalizeLocale(_24.locale),_26=_a._getGregorianBundle(_25),_27=_24.formatLength||"short",_28=_24.datePattern||_26["dateFormat-"+_27],_29=_24.timePattern||_26["timeFormat-"+_27],_2a;if(_24.selector=="date"){_2a=_28;}else{if(_24.selector=="time"){_2a=_29;}else{_2a=_26["dateTimeFormat-"+_27].replace(/\{(\d+)\}/g,function(_2b,key){return [_29,_28][key];});}}var _2c=[],re=_20(_2a,_1.hitch(this,_2d,_2c,_26,_24));return {regexp:re,tokens:_2c,bundle:_26};};_a.parse=function(_2e,_2f){var _30=/[\u200E\u200F\u202A\u202E]/g,_31=_a._parseInfo(_2f),_32=_31.tokens,_33=_31.bundle,re=new RegExp("^"+_31.regexp.replace(_30,"")+"$",_31.strict?"":"i"),_34=re.exec(_2e&&_2e.replace(_30,""));if(!_34){return null;}var _35=["abbr","wide","narrow"],_36=[1970,0,1,0,0,0,0],_37="",_38=_2.every(_34,function(v,i){if(!i){return true;}var _39=_32[i-1],l=_39.length,c=_39.charAt(0);switch(c){case "y":if(l!=2&&_2f.strict){_36[0]=v;}else{if(v<100){v=Number(v);var _3a=""+new Date().getFullYear(),_3b=_3a.substring(0,2)*100,_3c=Math.min(Number(_3a.substring(2,4))+20,99);_36[0]=(v<_3c)?_3b+v:_3b-100+v;}else{if(_2f.strict){return false;}_36[0]=v;}}break;case "M":case "L":if(l>2){var _3d=_33["months-"+(c=="L"?"standAlone":"format")+"-"+_35[l-3]].concat();if(!_2f.strict){v=v.replace(".","").toLowerCase();_3d=_2.map(_3d,function(s){return s.replace(".","").toLowerCase();});}v=_2.indexOf(_3d,v);if(v==-1){return false;}}else{v--;}_36[1]=v;break;case "E":case "e":case "c":var _3e=_33["days-"+(c=="c"?"standAlone":"format")+"-"+_35[l-3]].concat();if(!_2f.strict){v=v.toLowerCase();_3e=_2.map(_3e,function(d){return d.toLowerCase();});}v=_2.indexOf(_3e,v);if(v==-1){return false;}break;case "D":_36[1]=0;case "d":_36[2]=v;break;case "a":var am=_2f.am||_33["dayPeriods-format-wide-am"],pm=_2f.pm||_33["dayPeriods-format-wide-pm"];if(!_2f.strict){var _3f=/\./g;v=v.replace(_3f,"").toLowerCase();am=am.replace(_3f,"").toLowerCase();pm=pm.replace(_3f,"").toLowerCase();}if(_2f.strict&&v!=am&&v!=pm){return false;}_37=(v==pm)?"p":(v==am)?"a":"";break;case "K":if(v==24){v=0;}case "h":case "H":case "k":if(v>23){return false;}_36[3]=v;break;case "m":_36[4]=v;break;case "s":_36[5]=v;break;case "S":_36[6]=v;}return true;});var _40=+_36[3];if(_37==="p"&&_40<12){_36[3]=_40+12;}else{if(_37==="a"&&_40==12){_36[3]=0;}}var _41=new Date(_36[0],_36[1],_36[2],_36[3],_36[4],_36[5],_36[6]);if(_2f.strict){_41.setFullYear(_36[0]);}var _42=_32.join(""),_43=_42.indexOf("d")!=-1,_44=_42.indexOf("M")!=-1;if(!_38||(_44&&_41.getMonth()>_36[1])||(_43&&_41.getDate()>_36[2])){return null;}if((_44&&_41.getMonth()<_36[1])||(_43&&_41.getDate()<_36[2])){_41=_3.add(_41,"hour",1);}return _41;};function _20(_45,_46,_47,_48){var _49=function(x){return x;};_46=_46||_49;_47=_47||_49;_48=_48||_49;var _4a=_45.match(/(''|[^'])+/g),_4b=_45.charAt(0)=="'";_2.forEach(_4a,function(_4c,i){if(!_4c){_4a[i]="";}else{_4a[i]=(_4b?_47:_46)(_4c.replace(/''/g,"'"));_4b=!_4b;}});return _48(_4a.join(""));};function _2d(_4d,_4e,_4f,_50){_50=_6.escapeString(_50);if(!_4f.strict){_50=_50.replace(" a"," ?a");}return _50.replace(/([a-z])\1*/ig,function(_51){var s,c=_51.charAt(0),l=_51.length,p2="",p3="";if(_4f.strict){if(l>1){p2="0"+"{"+(l-1)+"}";}if(l>2){p3="0"+"{"+(l-2)+"}";}}else{p2="0?";p3="0{0,2}";}switch(c){case "y":s="\\d{2,4}";break;case "M":case "L":s=(l>2)?"\\S+?":"1[0-2]|"+p2+"[1-9]";break;case "D":s="[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|"+p2+"[1-9][0-9]|"+p3+"[1-9]";break;case "d":s="3[01]|[12]\\d|"+p2+"[1-9]";break;case "w":s="[1-4][0-9]|5[0-3]|"+p2+"[1-9]";break;case "E":case "e":case "c":s="\\S+";break;case "h":s="1[0-2]|"+p2+"[1-9]";break;case "k":s="1[01]|"+p2+"\\d";break;case "H":s="1\\d|2[0-3]|"+p2+"\\d";break;case "K":s="1\\d|2[0-4]|"+p2+"[1-9]";break;case "m":case "s":s="[0-5]\\d";break;case "S":s="\\d{"+l+"}";break;case "a":var am=_4f.am||_4e["dayPeriods-format-wide-am"],pm=_4f.pm||_4e["dayPeriods-format-wide-pm"];s=am+"|"+pm;if(!_4f.strict){if(am!=am.toLowerCase()){s+="|"+am.toLowerCase();}if(pm!=pm.toLowerCase()){s+="|"+pm.toLowerCase();}if(s.indexOf(".")!=-1){s+="|"+s.replace(/\./g,"");}}s=s.replace(/\./g,"\\.");break;default:s=".*";}if(_4d){_4d.push(_51);}return "("+s+")";}).replace(/[\xa0 ]/g,"[\\s\\xa0]");};var _52=[];_a.addCustomFormats=function(_53,_54){_52.push({pkg:_53,name:_54});};_a._getGregorianBundle=function(_55){var _56={};_2.forEach(_52,function(_57){var _58=_5.getLocalization(_57.pkg,_57.name,_55);_56=_1.mixin(_56,_58);},this);return _56;};_a.addCustomFormats(_9.id.replace(/\/date\/locale$/,".cldr"),"gregorian");_a.getNames=function(_59,_5a,_5b,_5c){var _5d,_5e=_a._getGregorianBundle(_5c),_5f=[_59,_5b,_5a];if(_5b=="standAlone"){var key=_5f.join("-");_5d=_5e[key];if(_5d[0]==1){_5d=undefined;}}_5f[1]="format";return (_5d||_5e[_5f.join("-")]).concat();};_a.isWeekend=function(_60,_61){var _62=_4.getWeekend(_61),day=(_60||new Date()).getDay();if(_62.end<_62.start){_62.end+=7;if(day<_62.start){day+=7;}}return day>=_62.start&&day<=_62.end;};_a._getDayOfYear=function(_63){return _3.difference(new Date(_63.getFullYear(),0,1,_63.getHours()),_63)+1;};_a._getWeekOfYear=function(_64,_65){if(arguments.length==1){_65=0;}var _66=new Date(_64.getFullYear(),0,1).getDay(),adj=(_66-_65+7)%7,_67=Math.floor((_a._getDayOfYear(_64)+adj-1)/7);if(_66==_65){_67++;}return _67;};return _a;}); \ No newline at end of file
diff --git a/lib/dojo/date/stamp.js b/lib/dojo/date/stamp.js
index 029a0130b..708ee7250 100644
--- a/lib/dojo/date/stamp.js
+++ b/lib/dojo/date/stamp.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/date/stamp",["../_base/kernel","../_base/lang","../_base/array"],function(_1,_2,_3){_2.getObject("date.stamp",true,_1);_1.date.stamp.fromISOString=function(_4,_5){if(!_1.date.stamp._isoRegExp){_1.date.stamp._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;}var _6=_1.date.stamp._isoRegExp.exec(_4),_7=null;if(_6){_6.shift();if(_6[1]){_6[1]--;}if(_6[6]){_6[6]*=1000;}if(_5){_5=new Date(_5);_3.forEach(_3.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(_8){return _5["get"+_8]();}),function(_9,_a){_6[_a]=_6[_a]||_9;});}_7=new Date(_6[0]||1970,_6[1]||0,_6[2]||1,_6[3]||0,_6[4]||0,_6[5]||0,_6[6]||0);if(_6[0]<100){_7.setFullYear(_6[0]||1970);}var _b=0,_c=_6[7]&&_6[7].charAt(0);if(_c!="Z"){_b=((_6[8]||0)*60)+(Number(_6[9])||0);if(_c!="-"){_b*=-1;}}if(_c){_b-=_7.getTimezoneOffset();}if(_b){_7.setTime(_7.getTime()+_b*60000);}}return _7;};_1.date.stamp.toISOString=function(_d,_e){var _f=function(n){return (n<10)?"0"+n:n;};_e=_e||{};var _10=[],_11=_e.zulu?"getUTC":"get",_12="";if(_e.selector!="time"){var _13=_d[_11+"FullYear"]();_12=["0000".substr((_13+"").length)+_13,_f(_d[_11+"Month"]()+1),_f(_d[_11+"Date"]())].join("-");}_10.push(_12);if(_e.selector!="date"){var _14=[_f(_d[_11+"Hours"]()),_f(_d[_11+"Minutes"]()),_f(_d[_11+"Seconds"]())].join(":");var _15=_d[_11+"Milliseconds"]();if(_e.milliseconds){_14+="."+(_15<100?"0":"")+_f(_15);}if(_e.zulu){_14+="Z";}else{if(_e.selector!="time"){var _16=_d.getTimezoneOffset();var _17=Math.abs(_16);_14+=(_16>0?"-":"+")+_f(Math.floor(_17/60))+":"+_f(_17%60);}}_10.push(_14);}return _10.join("T");};return _1.date.stamp;}); \ No newline at end of file
+define("dojo/date/stamp",["../_base/lang","../_base/array"],function(_1,_2){var _3={};_1.setObject("dojo.date.stamp",_3);_3.fromISOString=function(_4,_5){if(!_3._isoRegExp){_3._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;}var _6=_3._isoRegExp.exec(_4),_7=null;if(_6){_6.shift();if(_6[1]){_6[1]--;}if(_6[6]){_6[6]*=1000;}if(_5){_5=new Date(_5);_2.forEach(_2.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(_8){return _5["get"+_8]();}),function(_9,_a){_6[_a]=_6[_a]||_9;});}_7=new Date(_6[0]||1970,_6[1]||0,_6[2]||1,_6[3]||0,_6[4]||0,_6[5]||0,_6[6]||0);if(_6[0]<100){_7.setFullYear(_6[0]||1970);}var _b=0,_c=_6[7]&&_6[7].charAt(0);if(_c!="Z"){_b=((_6[8]||0)*60)+(Number(_6[9])||0);if(_c!="-"){_b*=-1;}}if(_c){_b-=_7.getTimezoneOffset();}if(_b){_7.setTime(_7.getTime()+_b*60000);}}return _7;};_3.toISOString=function(_d,_e){var _f=function(n){return (n<10)?"0"+n:n;};_e=_e||{};var _10=[],_11=_e.zulu?"getUTC":"get",_12="";if(_e.selector!="time"){var _13=_d[_11+"FullYear"]();_12=["0000".substr((_13+"").length)+_13,_f(_d[_11+"Month"]()+1),_f(_d[_11+"Date"]())].join("-");}_10.push(_12);if(_e.selector!="date"){var _14=[_f(_d[_11+"Hours"]()),_f(_d[_11+"Minutes"]()),_f(_d[_11+"Seconds"]())].join(":");var _15=_d[_11+"Milliseconds"]();if(_e.milliseconds){_14+="."+(_15<100?"0":"")+_f(_15);}if(_e.zulu){_14+="Z";}else{if(_e.selector!="time"){var _16=_d.getTimezoneOffset();var _17=Math.abs(_16);_14+=(_16>0?"-":"+")+_f(Math.floor(_17/60))+":"+_f(_17%60);}}_10.push(_14);}return _10.join("T");};return _3;}); \ No newline at end of file
diff --git a/lib/dojo/dnd/AutoSource.js b/lib/dojo/dnd/AutoSource.js
index 7e1a53f48..fa7eddd54 100644
--- a/lib/dojo/dnd/AutoSource.js
+++ b/lib/dojo/dnd/AutoSource.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/AutoSource",["./Source"],function(_1){return dojo.declare("dojo.dnd.AutoSource",_1,{constructor:function(_2,_3){this.autoSync=true;}});}); \ No newline at end of file
+define("dojo/dnd/AutoSource",["../_base/declare","./Source"],function(_1,_2){return _1("dojo.dnd.AutoSource",_2,{constructor:function(){this.autoSync=true;}});}); \ No newline at end of file
diff --git a/lib/dojo/dnd/Avatar.js b/lib/dojo/dnd/Avatar.js
index 51003b9eb..44fcfd2f4 100644
--- a/lib/dojo/dnd/Avatar.js
+++ b/lib/dojo/dnd/Avatar.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/Avatar",["../main","./common"],function(_1){_1.declare("dojo.dnd.Avatar",null,{constructor:function(_2){this.manager=_2;this.construct();},construct:function(){this.isA11y=_1.hasClass(_1.body(),"dijit_a11y");var a=_1.create("table",{"class":"dojoDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),_3=this.manager.source,_4,b=_1.create("tbody",null,a),tr=_1.create("tr",null,b),td=_1.create("td",null,tr),_5=this.isA11y?_1.create("span",{id:"a11yIcon",innerHTML:this.manager.copy?"+":"<"},td):null,_6=_1.create("span",{innerHTML:_3.generateText?this._generateText():""},td),k=Math.min(5,this.manager.nodes.length),i=0;_1.attr(tr,{"class":"dojoDndAvatarHeader",style:{opacity:0.9}});for(;i<k;++i){if(_3.creator){_4=_3._normalizedCreator(_3.getItem(this.manager.nodes[i].id).data,"avatar").node;}else{_4=this.manager.nodes[i].cloneNode(true);if(_4.tagName.toLowerCase()=="tr"){var _7=_1.create("table"),_8=_1.create("tbody",null,_7);_8.appendChild(_4);_4=_7;}}_4.id="";tr=_1.create("tr",null,b);td=_1.create("td",null,tr);td.appendChild(_4);_1.attr(tr,{"class":"dojoDndAvatarItem",style:{opacity:(9-i)/10}});}this.node=a;},destroy:function(){_1.destroy(this.node);this.node=false;},update:function(){_1[(this.manager.canDropFlag?"add":"remove")+"Class"](this.node,"dojoDndAvatarCanDrop");if(this.isA11y){var _9=_1.byId("a11yIcon");var _a="+";if(this.manager.canDropFlag&&!this.manager.copy){_a="< ";}else{if(!this.manager.canDropFlag&&!this.manager.copy){_a="o";}else{if(!this.manager.canDropFlag){_a="x";}}}_9.innerHTML=_a;}_1.query(("tr.dojoDndAvatarHeader td span"+(this.isA11y?" span":"")),this.node).forEach(function(_b){_b.innerHTML=this._generateText();},this);},_generateText:function(){return this.manager.nodes.length.toString();}});return _1.dnd.Avatar;}); \ No newline at end of file
+define("dojo/dnd/Avatar",["../_base/declare","../_base/window","../dom","../dom-attr","../dom-class","../dom-construct","../hccss","../query"],function(_1,_2,_3,_4,_5,_6,_7,_8){return _1("dojo.dnd.Avatar",null,{constructor:function(_9){this.manager=_9;this.construct();},construct:function(){var a=_6.create("table",{"class":"dojoDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),_a=this.manager.source,_b,b=_6.create("tbody",null,a),tr=_6.create("tr",null,b),td=_6.create("td",null,tr),k=Math.min(5,this.manager.nodes.length),i=0;if(_7("highcontrast")){_6.create("span",{id:"a11yIcon",innerHTML:this.manager.copy?"+":"<"},td);}_6.create("span",{innerHTML:_a.generateText?this._generateText():""},td);_4.set(tr,{"class":"dojoDndAvatarHeader",style:{opacity:0.9}});for(;i<k;++i){if(_a.creator){_b=_a._normalizedCreator(_a.getItem(this.manager.nodes[i].id).data,"avatar").node;}else{_b=this.manager.nodes[i].cloneNode(true);if(_b.tagName.toLowerCase()=="tr"){var _c=_6.create("table"),_d=_6.create("tbody",null,_c);_d.appendChild(_b);_b=_c;}}_b.id="";tr=_6.create("tr",null,b);td=_6.create("td",null,tr);td.appendChild(_b);_4.set(tr,{"class":"dojoDndAvatarItem",style:{opacity:(9-i)/10}});}this.node=a;},destroy:function(){_6.destroy(this.node);this.node=false;},update:function(){_5.toggle(this.node,"dojoDndAvatarCanDrop",this.manager.canDropFlag);if(_7("highcontrast")){var _e=_3.byId("a11yIcon");var _f="+";if(this.manager.canDropFlag&&!this.manager.copy){_f="< ";}else{if(!this.manager.canDropFlag&&!this.manager.copy){_f="o";}else{if(!this.manager.canDropFlag){_f="x";}}}_e.innerHTML=_f;}_8(("tr.dojoDndAvatarHeader td span"+(_7("highcontrast")?" span":"")),this.node).forEach(function(_10){_10.innerHTML=this.manager.source.generateText?this._generateText():"";},this);},_generateText:function(){return this.manager.nodes.length.toString();}});}); \ No newline at end of file
diff --git a/lib/dojo/dnd/Container.js b/lib/dojo/dnd/Container.js
index 0ab702ede..71912d313 100644
--- a/lib/dojo/dnd/Container.js
+++ b/lib/dojo/dnd/Container.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/Container",["../main","../Evented","./common","../parser"],function(_1,_2){_1.declare("dojo.dnd.Container",_2,{skipForm:false,constructor:function(_3,_4){this.node=_1.byId(_3);if(!_4){_4={};}this.creator=_4.creator||null;this.skipForm=_4.skipForm;this.parent=_4.dropParent&&_1.byId(_4.dropParent);this.map={};this.current=null;this.containerState="";_1.addClass(this.node,"dojoDndContainer");if(!(_4&&_4._skipStartup)){this.startup();}this.events=[_1.connect(this.node,"onmouseover",this,"onMouseOver"),_1.connect(this.node,"onmouseout",this,"onMouseOut"),_1.connect(this.node,"ondragstart",this,"onSelectStart"),_1.connect(this.node,"onselectstart",this,"onSelectStart")];},creator:function(){},getItem:function(_5){return this.map[_5];},setItem:function(_6,_7){this.map[_6]=_7;},delItem:function(_8){delete this.map[_8];},forInItems:function(f,o){o=o||_1.global;var m=this.map,e=_1.dnd._empty;for(var i in m){if(i in e){continue;}f.call(o,m[i],i,this);}return o;},clearItems:function(){this.map={};},getAllNodes:function(){return _1.query("> .dojoDndItem",this.parent);},sync:function(){var _9={};this.getAllNodes().forEach(function(_a){if(_a.id){var _b=this.getItem(_a.id);if(_b){_9[_a.id]=_b;return;}}else{_a.id=_1.dnd.getUniqueId();}var _c=_a.getAttribute("dndType"),_d=_a.getAttribute("dndData");_9[_a.id]={data:_d||_a.innerHTML,type:_c?_c.split(/\s*,\s*/):["text"]};},this);this.map=_9;return this;},insertNodes:function(_e,_f,_10){if(!this.parent.firstChild){_10=null;}else{if(_f){if(!_10){_10=this.parent.firstChild;}}else{if(_10){_10=_10.nextSibling;}}}if(_10){for(var i=0;i<_e.length;++i){var t=this._normalizedCreator(_e[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.insertBefore(t.node,_10);}}else{for(var i=0;i<_e.length;++i){var t=this._normalizedCreator(_e[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.appendChild(t.node);}}return this;},destroy:function(){_1.forEach(this.events,_1.disconnect);this.clearItems();this.node=this.parent=this.current=null;},markupFactory:function(_11,_12,_13){_11._skipStartup=true;return new _13(_12,_11);},startup:function(){if(!this.parent){this.parent=this.node;if(this.parent.tagName.toLowerCase()=="table"){var c=this.parent.getElementsByTagName("tbody");if(c&&c.length){this.parent=c[0];}}}this.defaultCreator=_1.dnd._defaultCreator(this.parent);this.sync();},onMouseOver:function(e){var n=e.relatedTarget;while(n){if(n==this.node){break;}try{n=n.parentNode;}catch(x){n=null;}}if(!n){this._changeState("Container","Over");this.onOverEvent();}n=this._getChildByEvent(e);if(this.current==n){return;}if(this.current){this._removeItemClass(this.current,"Over");}if(n){this._addItemClass(n,"Over");}this.current=n;},onMouseOut:function(e){for(var n=e.relatedTarget;n;){if(n==this.node){return;}try{n=n.parentNode;}catch(x){n=null;}}if(this.current){this._removeItemClass(this.current,"Over");this.current=null;}this._changeState("Container","");this.onOutEvent();},onSelectStart:function(e){if(!this.skipForm||!_1.dnd.isFormElement(e)){_1.stopEvent(e);}},onOverEvent:function(){},onOutEvent:function(){},_changeState:function(_14,_15){var _16="dojoDnd"+_14;var _17=_14.toLowerCase()+"State";_1.replaceClass(this.node,_16+_15,_16+this[_17]);this[_17]=_15;},_addItemClass:function(_18,_19){_1.addClass(_18,"dojoDndItem"+_19);},_removeItemClass:function(_1a,_1b){_1.removeClass(_1a,"dojoDndItem"+_1b);},_getChildByEvent:function(e){var _1c=e.target;if(_1c){for(var _1d=_1c.parentNode;_1d;_1c=_1d,_1d=_1c.parentNode){if(_1d==this.parent&&_1.hasClass(_1c,"dojoDndItem")){return _1c;}}}return null;},_normalizedCreator:function(_1e,_1f){var t=(this.creator||this.defaultCreator).call(this,_1e,_1f);if(!_1.isArray(t.type)){t.type=["text"];}if(!t.node.id){t.node.id=_1.dnd.getUniqueId();}_1.addClass(t.node,"dojoDndItem");return t;}});_1.dnd._createNode=function(tag){if(!tag){return _1.dnd._createSpan;}return function(_20){return _1.create(tag,{innerHTML:_20});};};_1.dnd._createTrTd=function(_21){var tr=_1.create("tr");_1.create("td",{innerHTML:_21},tr);return tr;};_1.dnd._createSpan=function(_22){return _1.create("span",{innerHTML:_22});};_1.dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"};_1.dnd._defaultCreator=function(_23){var tag=_23.tagName.toLowerCase();var c=tag=="tbody"||tag=="thead"?_1.dnd._createTrTd:_1.dnd._createNode(_1.dnd._defaultCreatorNodes[tag]);return function(_24,_25){var _26=_24&&_1.isObject(_24),_27,_28,n;if(_26&&_24.tagName&&_24.nodeType&&_24.getAttribute){_27=_24.getAttribute("dndData")||_24.innerHTML;_28=_24.getAttribute("dndType");_28=_28?_28.split(/\s*,\s*/):["text"];n=_24;}else{_27=(_26&&_24.data)?_24.data:_24;_28=(_26&&_24.type)?_24.type:["text"];n=(_25=="avatar"?_1.dnd._createSpan:c)(String(_27));}if(!n.id){n.id=_1.dnd.getUniqueId();}return {node:n,data:_27,type:_28};};};return _1.dnd.Container;}); \ No newline at end of file
+define("dojo/dnd/Container",["../_base/array","../_base/declare","../_base/event","../_base/kernel","../_base/lang","../_base/window","../dom","../dom-class","../dom-construct","../Evented","../has","../on","../query","../ready","../touch","./common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,on,_c,_d,_e,_f){var _10=_2("dojo.dnd.Container",_a,{skipForm:false,allowNested:false,constructor:function(_11,_12){this.node=_7.byId(_11);if(!_12){_12={};}this.creator=_12.creator||null;this.skipForm=_12.skipForm;this.parent=_12.dropParent&&_7.byId(_12.dropParent);this.map={};this.current=null;this.containerState="";_8.add(this.node,"dojoDndContainer");if(!(_12&&_12._skipStartup)){this.startup();}this.events=[on(this.node,_e.over,_5.hitch(this,"onMouseOver")),on(this.node,_e.out,_5.hitch(this,"onMouseOut")),on(this.node,"dragstart",_5.hitch(this,"onSelectStart")),on(this.node,"selectstart",_5.hitch(this,"onSelectStart"))];},creator:function(){},getItem:function(key){return this.map[key];},setItem:function(key,_13){this.map[key]=_13;},delItem:function(key){delete this.map[key];},forInItems:function(f,o){o=o||_4.global;var m=this.map,e=_f._empty;for(var i in m){if(i in e){continue;}f.call(o,m[i],i,this);}return o;},clearItems:function(){this.map={};},getAllNodes:function(){return _c((this.allowNested?"":"> ")+".dojoDndItem",this.parent);},sync:function(){var map={};this.getAllNodes().forEach(function(_14){if(_14.id){var _15=this.getItem(_14.id);if(_15){map[_14.id]=_15;return;}}else{_14.id=_f.getUniqueId();}var _16=_14.getAttribute("dndType"),_17=_14.getAttribute("dndData");map[_14.id]={data:_17||_14.innerHTML,type:_16?_16.split(/\s*,\s*/):["text"]};},this);this.map=map;return this;},insertNodes:function(_18,_19,_1a){if(!this.parent.firstChild){_1a=null;}else{if(_19){if(!_1a){_1a=this.parent.firstChild;}}else{if(_1a){_1a=_1a.nextSibling;}}}var i,t;if(_1a){for(i=0;i<_18.length;++i){t=this._normalizedCreator(_18[i]);this.setItem(t.node.id,{data:t.data,type:t.type});_1a.parentNode.insertBefore(t.node,_1a);}}else{for(i=0;i<_18.length;++i){t=this._normalizedCreator(_18[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.appendChild(t.node);}}return this;},destroy:function(){_1.forEach(this.events,function(_1b){_1b.remove();});this.clearItems();this.node=this.parent=this.current=null;},markupFactory:function(_1c,_1d,_1e){_1c._skipStartup=true;return new _1e(_1d,_1c);},startup:function(){if(!this.parent){this.parent=this.node;if(this.parent.tagName.toLowerCase()=="table"){var c=this.parent.getElementsByTagName("tbody");if(c&&c.length){this.parent=c[0];}}}this.defaultCreator=_f._defaultCreator(this.parent);this.sync();},onMouseOver:function(e){var n=e.relatedTarget;while(n){if(n==this.node){break;}try{n=n.parentNode;}catch(x){n=null;}}if(!n){this._changeState("Container","Over");this.onOverEvent();}n=this._getChildByEvent(e);if(this.current==n){return;}if(this.current){this._removeItemClass(this.current,"Over");}if(n){this._addItemClass(n,"Over");}this.current=n;},onMouseOut:function(e){for(var n=e.relatedTarget;n;){if(n==this.node){return;}try{n=n.parentNode;}catch(x){n=null;}}if(this.current){this._removeItemClass(this.current,"Over");this.current=null;}this._changeState("Container","");this.onOutEvent();},onSelectStart:function(e){if(!this.skipForm||!_f.isFormElement(e)){_3.stop(e);}},onOverEvent:function(){},onOutEvent:function(){},_changeState:function(_1f,_20){var _21="dojoDnd"+_1f;var _22=_1f.toLowerCase()+"State";_8.replace(this.node,_21+_20,_21+this[_22]);this[_22]=_20;},_addItemClass:function(_23,_24){_8.add(_23,"dojoDndItem"+_24);},_removeItemClass:function(_25,_26){_8.remove(_25,"dojoDndItem"+_26);},_getChildByEvent:function(e){var _27=e.target;if(_27){for(var _28=_27.parentNode;_28;_27=_28,_28=_27.parentNode){if((_28==this.parent||this.allowNested)&&_8.contains(_27,"dojoDndItem")){return _27;}}}return null;},_normalizedCreator:function(_29,_2a){var t=(this.creator||this.defaultCreator).call(this,_29,_2a);if(!_5.isArray(t.type)){t.type=["text"];}if(!t.node.id){t.node.id=_f.getUniqueId();}_8.add(t.node,"dojoDndItem");return t;}});_f._createNode=function(tag){if(!tag){return _f._createSpan;}return function(_2b){return _9.create(tag,{innerHTML:_2b});};};_f._createTrTd=function(_2c){var tr=_9.create("tr");_9.create("td",{innerHTML:_2c},tr);return tr;};_f._createSpan=function(_2d){return _9.create("span",{innerHTML:_2d});};_f._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"};_f._defaultCreator=function(_2e){var tag=_2e.tagName.toLowerCase();var c=tag=="tbody"||tag=="thead"?_f._createTrTd:_f._createNode(_f._defaultCreatorNodes[tag]);return function(_2f,_30){var _31=_2f&&_5.isObject(_2f),_32,_33,n;if(_31&&_2f.tagName&&_2f.nodeType&&_2f.getAttribute){_32=_2f.getAttribute("dndData")||_2f.innerHTML;_33=_2f.getAttribute("dndType");_33=_33?_33.split(/\s*,\s*/):["text"];n=_2f;}else{_32=(_31&&_2f.data)?_2f.data:_2f;_33=(_31&&_2f.type)?_2f.type:["text"];n=(_30=="avatar"?_f._createSpan:c)(String(_32));}if(!n.id){n.id=_f.getUniqueId();}return {node:n,data:_32,type:_33};};};return _10;}); \ No newline at end of file
diff --git a/lib/dojo/dnd/Manager.js b/lib/dojo/dnd/Manager.js
index 079dffa19..a38ff45c2 100644
--- a/lib/dojo/dnd/Manager.js
+++ b/lib/dojo/dnd/Manager.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/Manager",["../main","../Evented","./common","./autoscroll","./Avatar"],function(_1,_2){var _3=_1.declare("dojo.dnd.Manager",[_2],{constructor:function(){this.avatar=null;this.source=null;this.nodes=[];this.copy=true;this.target=null;this.canDropFlag=false;this.events=[];},OFFSET_X:16,OFFSET_Y:16,overSource:function(_4){if(this.avatar){this.target=(_4&&_4.targetState!="Disabled")?_4:null;this.canDropFlag=Boolean(this.target);this.avatar.update();}_1.publish("/dnd/source/over",[_4]);},outSource:function(_5){if(this.avatar){if(this.target==_5){this.target=null;this.canDropFlag=false;this.avatar.update();_1.publish("/dnd/source/over",[null]);}}else{_1.publish("/dnd/source/over",[null]);}},startDrag:function(_6,_7,_8){this.source=_6;this.nodes=_7;this.copy=Boolean(_8);this.avatar=this.makeAvatar();_1.body().appendChild(this.avatar.node);_1.publish("/dnd/start",[_6,_7,this.copy]);this.events=[_1.connect(_1.doc,"onmousemove",this,"onMouseMove"),_1.connect(_1.doc,"onmouseup",this,"onMouseUp"),_1.connect(_1.doc,"onkeydown",this,"onKeyDown"),_1.connect(_1.doc,"onkeyup",this,"onKeyUp"),_1.connect(_1.doc,"ondragstart",_1.stopEvent),_1.connect(_1.body(),"onselectstart",_1.stopEvent)];var c="dojoDnd"+(_8?"Copy":"Move");_1.addClass(_1.body(),c);},canDrop:function(_9){var _a=Boolean(this.target&&_9);if(this.canDropFlag!=_a){this.canDropFlag=_a;this.avatar.update();}},stopDrag:function(){_1.removeClass(_1.body(),["dojoDndCopy","dojoDndMove"]);_1.forEach(this.events,_1.disconnect);this.events=[];this.avatar.destroy();this.avatar=null;this.source=this.target=null;this.nodes=[];},makeAvatar:function(){return new _1.dnd.Avatar(this);},updateAvatar:function(){this.avatar.update();},onMouseMove:function(e){var a=this.avatar;if(a){_1.dnd.autoScrollNodes(e);var s=a.node.style;s.left=(e.pageX+this.OFFSET_X)+"px";s.top=(e.pageY+this.OFFSET_Y)+"px";var _b=Boolean(this.source.copyState(_1.isCopyKey(e)));if(this.copy!=_b){this._setCopyStatus(_b);}}},onMouseUp:function(e){if(this.avatar){if(this.target&&this.canDropFlag){var _c=Boolean(this.source.copyState(_1.isCopyKey(e))),_d=[this.source,this.nodes,_c,this.target,e];_1.publish("/dnd/drop/before",_d);_1.publish("/dnd/drop",_d);}else{_1.publish("/dnd/cancel");}this.stopDrag();}},onKeyDown:function(e){if(this.avatar){switch(e.keyCode){case _1.keys.CTRL:var _e=Boolean(this.source.copyState(true));if(this.copy!=_e){this._setCopyStatus(_e);}break;case _1.keys.ESCAPE:_1.publish("/dnd/cancel");this.stopDrag();break;}}},onKeyUp:function(e){if(this.avatar&&e.keyCode==_1.keys.CTRL){var _f=Boolean(this.source.copyState(false));if(this.copy!=_f){this._setCopyStatus(_f);}}},_setCopyStatus:function(_10){this.copy=_10;this.source._markDndStatus(this.copy);this.updateAvatar();_1.replaceClass(_1.body(),"dojoDnd"+(this.copy?"Copy":"Move"),"dojoDnd"+(this.copy?"Move":"Copy"));}});_1.dnd._manager=null;_3.manager=_1.dnd.manager=function(){if(!_1.dnd._manager){_1.dnd._manager=new _1.dnd.Manager();}return _1.dnd._manager;};return _3;}); \ No newline at end of file
+define("dojo/dnd/Manager",["../_base/array","../_base/declare","../_base/event","../_base/lang","../_base/window","../dom-class","../Evented","../has","../keys","../on","../topic","../touch","./common","./autoscroll","./Avatar"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,on,_a,_b,_c,_d,_e){var _f=_2("dojo.dnd.Manager",[_7],{constructor:function(){this.avatar=null;this.source=null;this.nodes=[];this.copy=true;this.target=null;this.canDropFlag=false;this.events=[];},OFFSET_X:_8("touch")?0:16,OFFSET_Y:_8("touch")?-64:16,overSource:function(_10){if(this.avatar){this.target=(_10&&_10.targetState!="Disabled")?_10:null;this.canDropFlag=Boolean(this.target);this.avatar.update();}_a.publish("/dnd/source/over",_10);},outSource:function(_11){if(this.avatar){if(this.target==_11){this.target=null;this.canDropFlag=false;this.avatar.update();_a.publish("/dnd/source/over",null);}}else{_a.publish("/dnd/source/over",null);}},startDrag:function(_12,_13,_14){_d.autoScrollStart(_5.doc);this.source=_12;this.nodes=_13;this.copy=Boolean(_14);this.avatar=this.makeAvatar();_5.body().appendChild(this.avatar.node);_a.publish("/dnd/start",_12,_13,this.copy);this.events=[on(_5.doc,_b.move,_4.hitch(this,"onMouseMove")),on(_5.doc,_b.release,_4.hitch(this,"onMouseUp")),on(_5.doc,"keydown",_4.hitch(this,"onKeyDown")),on(_5.doc,"keyup",_4.hitch(this,"onKeyUp")),on(_5.doc,"dragstart",_3.stop),on(_5.body(),"selectstart",_3.stop)];var c="dojoDnd"+(_14?"Copy":"Move");_6.add(_5.body(),c);},canDrop:function(_15){var _16=Boolean(this.target&&_15);if(this.canDropFlag!=_16){this.canDropFlag=_16;this.avatar.update();}},stopDrag:function(){_6.remove(_5.body(),["dojoDndCopy","dojoDndMove"]);_1.forEach(this.events,function(_17){_17.remove();});this.events=[];this.avatar.destroy();this.avatar=null;this.source=this.target=null;this.nodes=[];},makeAvatar:function(){return new _e(this);},updateAvatar:function(){this.avatar.update();},onMouseMove:function(e){var a=this.avatar;if(a){_d.autoScrollNodes(e);var s=a.node.style;s.left=(e.pageX+this.OFFSET_X)+"px";s.top=(e.pageY+this.OFFSET_Y)+"px";var _18=Boolean(this.source.copyState(_c.getCopyKeyState(e)));if(this.copy!=_18){this._setCopyStatus(_18);}}if(_8("touch")){e.preventDefault();}},onMouseUp:function(e){if(this.avatar){if(this.target&&this.canDropFlag){var _19=Boolean(this.source.copyState(_c.getCopyKeyState(e)));_a.publish("/dnd/drop/before",this.source,this.nodes,_19,this.target,e);_a.publish("/dnd/drop",this.source,this.nodes,_19,this.target,e);}else{_a.publish("/dnd/cancel");}this.stopDrag();}},onKeyDown:function(e){if(this.avatar){switch(e.keyCode){case _9.CTRL:var _1a=Boolean(this.source.copyState(true));if(this.copy!=_1a){this._setCopyStatus(_1a);}break;case _9.ESCAPE:_a.publish("/dnd/cancel");this.stopDrag();break;}}},onKeyUp:function(e){if(this.avatar&&e.keyCode==_9.CTRL){var _1b=Boolean(this.source.copyState(false));if(this.copy!=_1b){this._setCopyStatus(_1b);}}},_setCopyStatus:function(_1c){this.copy=_1c;this.source._markDndStatus(this.copy);this.updateAvatar();_6.replace(_5.body(),"dojoDnd"+(this.copy?"Copy":"Move"),"dojoDnd"+(this.copy?"Move":"Copy"));}});_c._manager=null;_f.manager=_c.manager=function(){if(!_c._manager){_c._manager=new _f();}return _c._manager;};return _f;}); \ No newline at end of file
diff --git a/lib/dojo/dnd/Moveable.js b/lib/dojo/dnd/Moveable.js
index 289b4cf94..acf17487a 100644
--- a/lib/dojo/dnd/Moveable.js
+++ b/lib/dojo/dnd/Moveable.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/Moveable",["../main","../Evented","../touch","./Mover"],function(_1,_2,_3){_1.declare("dojo.dnd.Moveable",[_2],{handle:"",delay:0,skip:false,constructor:function(_4,_5){this.node=_1.byId(_4);if(!_5){_5={};}this.handle=_5.handle?_1.byId(_5.handle):null;if(!this.handle){this.handle=this.node;}this.delay=_5.delay>0?_5.delay:0;this.skip=_5.skip;this.mover=_5.mover?_5.mover:_1.dnd.Mover;this.events=[_1.connect(this.handle,_3.press,this,"onMouseDown"),_1.connect(this.handle,"ondragstart",this,"onSelectStart"),_1.connect(this.handle,"onselectstart",this,"onSelectStart")];},markupFactory:function(_6,_7,_8){return new _8(_7,_6);},destroy:function(){_1.forEach(this.events,_1.disconnect);this.events=this.node=this.handle=null;},onMouseDown:function(e){if(this.skip&&_1.dnd.isFormElement(e)){return;}if(this.delay){this.events.push(_1.connect(this.handle,_3.move,this,"onMouseMove"),_1.connect(this.handle,_3.release,this,"onMouseUp"));this._lastX=e.pageX;this._lastY=e.pageY;}else{this.onDragDetected(e);}_1.stopEvent(e);},onMouseMove:function(e){if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){this.onMouseUp(e);this.onDragDetected(e);}_1.stopEvent(e);},onMouseUp:function(e){for(var i=0;i<2;++i){_1.disconnect(this.events.pop());}_1.stopEvent(e);},onSelectStart:function(e){if(!this.skip||!_1.dnd.isFormElement(e)){_1.stopEvent(e);}},onDragDetected:function(e){new this.mover(this.node,e,this);},onMoveStart:function(_9){_1.publish("/dnd/move/start",[_9]);_1.addClass(_1.body(),"dojoMove");_1.addClass(this.node,"dojoMoveItem");},onMoveStop:function(_a){_1.publish("/dnd/move/stop",[_a]);_1.removeClass(_1.body(),"dojoMove");_1.removeClass(this.node,"dojoMoveItem");},onFirstMove:function(_b,e){},onMove:function(_c,_d,e){this.onMoving(_c,_d);var s=_c.node.style;s.left=_d.l+"px";s.top=_d.t+"px";this.onMoved(_c,_d);},onMoving:function(_e,_f){},onMoved:function(_10,_11){}});return _1.dnd.Moveable;}); \ No newline at end of file
+define("dojo/dnd/Moveable",["../_base/array","../_base/declare","../_base/event","../_base/lang","../dom","../dom-class","../Evented","../on","../topic","../touch","./common","./Mover","../_base/window"],function(_1,_2,_3,_4,_5,_6,_7,on,_8,_9,_a,_b,_c){var _d=_2("dojo.dnd.Moveable",[_7],{handle:"",delay:0,skip:false,constructor:function(_e,_f){this.node=_5.byId(_e);if(!_f){_f={};}this.handle=_f.handle?_5.byId(_f.handle):null;if(!this.handle){this.handle=this.node;}this.delay=_f.delay>0?_f.delay:0;this.skip=_f.skip;this.mover=_f.mover?_f.mover:_b;this.events=[on(this.handle,_9.press,_4.hitch(this,"onMouseDown")),on(this.handle,"dragstart",_4.hitch(this,"onSelectStart")),on(this.handle,"selectstart",_4.hitch(this,"onSelectStart"))];},markupFactory:function(_10,_11,_12){return new _12(_11,_10);},destroy:function(){_1.forEach(this.events,function(_13){_13.remove();});this.events=this.node=this.handle=null;},onMouseDown:function(e){if(this.skip&&_a.isFormElement(e)){return;}if(this.delay){this.events.push(on(this.handle,_9.move,_4.hitch(this,"onMouseMove")),on(this.handle,_9.release,_4.hitch(this,"onMouseUp")));this._lastX=e.pageX;this._lastY=e.pageY;}else{this.onDragDetected(e);}_3.stop(e);},onMouseMove:function(e){if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){this.onMouseUp(e);this.onDragDetected(e);}_3.stop(e);},onMouseUp:function(e){for(var i=0;i<2;++i){this.events.pop().remove();}_3.stop(e);},onSelectStart:function(e){if(!this.skip||!_a.isFormElement(e)){_3.stop(e);}},onDragDetected:function(e){new this.mover(this.node,e,this);},onMoveStart:function(_14){_8.publish("/dnd/move/start",_14);_6.add(_c.body(),"dojoMove");_6.add(this.node,"dojoMoveItem");},onMoveStop:function(_15){_8.publish("/dnd/move/stop",_15);_6.remove(_c.body(),"dojoMove");_6.remove(this.node,"dojoMoveItem");},onFirstMove:function(){},onMove:function(_16,_17){this.onMoving(_16,_17);var s=_16.node.style;s.left=_17.l+"px";s.top=_17.t+"px";this.onMoved(_16,_17);},onMoving:function(){},onMoved:function(){}});return _d;}); \ No newline at end of file
diff --git a/lib/dojo/dnd/Mover.js b/lib/dojo/dnd/Mover.js
index fecc6d9b8..0b7c6613e 100644
--- a/lib/dojo/dnd/Mover.js
+++ b/lib/dojo/dnd/Mover.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/Mover",["../main","../Evented","../touch","./common","./autoscroll"],function(_1,_2,_3){_1.declare("dojo.dnd.Mover",[_2],{constructor:function(_4,e,_5){this.node=_1.byId(_4);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=(this.host=_5),d=_4.ownerDocument;this.events=[_1.connect(d,_3.move,this,"onFirstMove"),_1.connect(d,_3.move,this,"onMouseMove"),_1.connect(d,_3.release,this,"onMouseUp"),_1.connect(d,"ondragstart",_1.stopEvent),_1.connect(d.body,"onselectstart",_1.stopEvent)];if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){_1.dnd.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY},e);_1.stopEvent(e);},onMouseUp:function(e){if(_1.isWebKit&&_1.isMac&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){this.destroy();}_1.stopEvent(e);},onFirstMove:function(e){var s=this.node.style,l,t,h=this.host;switch(s.position){case "relative":case "absolute":l=Math.round(parseFloat(s.left))||0;t=Math.round(parseFloat(s.top))||0;break;default:s.position="absolute";var m=_1.marginBox(this.node);var b=_1.doc.body;var bs=_1.getComputedStyle(b);var bm=_1._getMarginBox(b,bs);var bc=_1._getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break;}this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove){h.onFirstMove(this,e);}_1.disconnect(this.events.shift());},destroy:function(){_1.forEach(this.events,_1.disconnect);var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}this.events=this.node=this.host=null;}});return _1.dnd.Mover;}); \ No newline at end of file
+define("dojo/dnd/Mover",["../_base/array","../_base/declare","../_base/event","../_base/lang","../sniff","../_base/window","../dom","../dom-geometry","../dom-style","../Evented","../on","../touch","./common","./autoscroll"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,on,_b,_c,_d){return _2("dojo.dnd.Mover",[_a],{constructor:function(_e,e,_f){this.node=_7.byId(_e);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=(this.host=_f),d=_e.ownerDocument;this.events=[on(d,_b.move,_4.hitch(this,"onFirstMove")),on(d,_b.move,_4.hitch(this,"onMouseMove")),on(d,_b.release,_4.hitch(this,"onMouseUp")),on(d,"dragstart",_3.stop),on(d.body,"selectstart",_3.stop)];_d.autoScrollStart(d);if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){_d.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY},e);_3.stop(e);},onMouseUp:function(e){if(_5("webkit")&&_5("mac")&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){this.destroy();}_3.stop(e);},onFirstMove:function(e){var s=this.node.style,l,t,h=this.host;switch(s.position){case "relative":case "absolute":l=Math.round(parseFloat(s.left))||0;t=Math.round(parseFloat(s.top))||0;break;default:s.position="absolute";var m=_8.getMarginBox(this.node);var b=_6.doc.body;var bs=_9.getComputedStyle(b);var bm=_8.getMarginBox(b,bs);var bc=_8.getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break;}this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove){h.onFirstMove(this,e);}this.events.shift().remove();},destroy:function(){_1.forEach(this.events,function(_10){_10.remove();});var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}this.events=this.node=this.host=null;}});}); \ No newline at end of file
diff --git a/lib/dojo/dnd/Selector.js b/lib/dojo/dnd/Selector.js
index 8c1929072..e44e15dd4 100644
--- a/lib/dojo/dnd/Selector.js
+++ b/lib/dojo/dnd/Selector.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/Selector",["../main","./common","./Container"],function(_1){_1.declare("dojo.dnd.Selector",_1.dnd.Container,{constructor:function(_2,_3){if(!_3){_3={};}this.singular=_3.singular;this.autoSync=_3.autoSync;this.selection={};this.anchor=null;this.simpleSelection=false;this.events.push(_1.connect(this.node,"onmousedown",this,"onMouseDown"),_1.connect(this.node,"onmouseup",this,"onMouseUp"));},singular:false,getSelectedNodes:function(){var t=new _1.NodeList();var e=_1.dnd._empty;for(var i in this.selection){if(i in e){continue;}t.push(_1.byId(i));}return t;},selectNone:function(){return this._removeSelection()._removeAnchor();},selectAll:function(){this.forInItems(function(_4,id){this._addItemClass(_1.byId(id),"Selected");this.selection[id]=1;},this);return this._removeAnchor();},deleteSelectedNodes:function(){var e=_1.dnd._empty;for(var i in this.selection){if(i in e){continue;}var n=_1.byId(i);this.delItem(i);_1.destroy(n);}this.anchor=null;this.selection={};return this;},forInSelectedItems:function(f,o){o=o||_1.global;var s=this.selection,e=_1.dnd._empty;for(var i in s){if(i in e){continue;}f.call(o,this.getItem(i),i,this);}},sync:function(){_1.dnd.Selector.superclass.sync.call(this);if(this.anchor){if(!this.getItem(this.anchor.id)){this.anchor=null;}}var t=[],e=_1.dnd._empty;for(var i in this.selection){if(i in e){continue;}if(!this.getItem(i)){t.push(i);}}_1.forEach(t,function(i){delete this.selection[i];},this);return this;},insertNodes:function(_5,_6,_7,_8){var _9=this._normalizedCreator;this._normalizedCreator=function(_a,_b){var t=_9.call(this,_a,_b);if(_5){if(!this.anchor){this.anchor=t.node;this._removeItemClass(t.node,"Selected");this._addItemClass(this.anchor,"Anchor");}else{if(this.anchor!=t.node){this._removeItemClass(t.node,"Anchor");this._addItemClass(t.node,"Selected");}}this.selection[t.node.id]=1;}else{this._removeItemClass(t.node,"Selected");this._removeItemClass(t.node,"Anchor");}return t;};_1.dnd.Selector.superclass.insertNodes.call(this,_6,_7,_8);this._normalizedCreator=_9;return this;},destroy:function(){_1.dnd.Selector.superclass.destroy.call(this);this.selection=this.anchor=null;},onMouseDown:function(e){if(this.autoSync){this.sync();}if(!this.current){return;}if(!this.singular&&!_1.isCopyKey(e)&&!e.shiftKey&&(this.current.id in this.selection)){this.simpleSelection=true;if(e.button===_1.mouseButtons.LEFT){_1.stopEvent(e);}return;}if(!this.singular&&e.shiftKey){if(!_1.isCopyKey(e)){this._removeSelection();}var c=this.getAllNodes();if(c.length){if(!this.anchor){this.anchor=c[0];this._addItemClass(this.anchor,"Anchor");}this.selection[this.anchor.id]=1;if(this.anchor!=this.current){var i=0;for(;i<c.length;++i){var _c=c[i];if(_c==this.anchor||_c==this.current){break;}}for(++i;i<c.length;++i){var _c=c[i];if(_c==this.anchor||_c==this.current){break;}this._addItemClass(_c,"Selected");this.selection[_c.id]=1;}this._addItemClass(this.current,"Selected");this.selection[this.current.id]=1;}}}else{if(this.singular){if(this.anchor==this.current){if(_1.isCopyKey(e)){this.selectNone();}}else{this.selectNone();this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}}else{if(_1.isCopyKey(e)){if(this.anchor==this.current){delete this.selection[this.anchor.id];this._removeAnchor();}else{if(this.current.id in this.selection){this._removeItemClass(this.current,"Selected");delete this.selection[this.current.id];}else{if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this._addItemClass(this.anchor,"Selected");}this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}else{if(!(this.current.id in this.selection)){this.selectNone();this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}}_1.stopEvent(e);},onMouseUp:function(e){if(!this.simpleSelection){return;}this.simpleSelection=false;this.selectNone();if(this.current){this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}},onMouseMove:function(e){this.simpleSelection=false;},onOverEvent:function(){this.onmousemoveEvent=_1.connect(this.node,"onmousemove",this,"onMouseMove");},onOutEvent:function(){_1.disconnect(this.onmousemoveEvent);delete this.onmousemoveEvent;},_removeSelection:function(){var e=_1.dnd._empty;for(var i in this.selection){if(i in e){continue;}var _d=_1.byId(i);if(_d){this._removeItemClass(_d,"Selected");}}this.selection={};return this;},_removeAnchor:function(){if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this.anchor=null;}return this;}});return _1.dnd.Selector;}); \ No newline at end of file
+define("dojo/dnd/Selector",["../_base/array","../_base/declare","../_base/event","../_base/kernel","../_base/lang","../dom","../dom-construct","../mouse","../_base/NodeList","../on","../touch","./common","./Container"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,on,_a,_b,_c){var _d=_2("dojo.dnd.Selector",_c,{constructor:function(_e,_f){if(!_f){_f={};}this.singular=_f.singular;this.autoSync=_f.autoSync;this.selection={};this.anchor=null;this.simpleSelection=false;this.events.push(on(this.node,_a.press,_5.hitch(this,"onMouseDown")),on(this.node,_a.release,_5.hitch(this,"onMouseUp")));},singular:false,getSelectedNodes:function(){var t=new _9();var e=_b._empty;for(var i in this.selection){if(i in e){continue;}t.push(_6.byId(i));}return t;},selectNone:function(){return this._removeSelection()._removeAnchor();},selectAll:function(){this.forInItems(function(_10,id){this._addItemClass(_6.byId(id),"Selected");this.selection[id]=1;},this);return this._removeAnchor();},deleteSelectedNodes:function(){var e=_b._empty;for(var i in this.selection){if(i in e){continue;}var n=_6.byId(i);this.delItem(i);_7.destroy(n);}this.anchor=null;this.selection={};return this;},forInSelectedItems:function(f,o){o=o||_4.global;var s=this.selection,e=_b._empty;for(var i in s){if(i in e){continue;}f.call(o,this.getItem(i),i,this);}},sync:function(){_d.superclass.sync.call(this);if(this.anchor){if(!this.getItem(this.anchor.id)){this.anchor=null;}}var t=[],e=_b._empty;for(var i in this.selection){if(i in e){continue;}if(!this.getItem(i)){t.push(i);}}_1.forEach(t,function(i){delete this.selection[i];},this);return this;},insertNodes:function(_11,_12,_13,_14){var _15=this._normalizedCreator;this._normalizedCreator=function(_16,_17){var t=_15.call(this,_16,_17);if(_11){if(!this.anchor){this.anchor=t.node;this._removeItemClass(t.node,"Selected");this._addItemClass(this.anchor,"Anchor");}else{if(this.anchor!=t.node){this._removeItemClass(t.node,"Anchor");this._addItemClass(t.node,"Selected");}}this.selection[t.node.id]=1;}else{this._removeItemClass(t.node,"Selected");this._removeItemClass(t.node,"Anchor");}return t;};_d.superclass.insertNodes.call(this,_12,_13,_14);this._normalizedCreator=_15;return this;},destroy:function(){_d.superclass.destroy.call(this);this.selection=this.anchor=null;},onMouseDown:function(e){if(this.autoSync){this.sync();}if(!this.current){return;}if(!this.singular&&!_b.getCopyKeyState(e)&&!e.shiftKey&&(this.current.id in this.selection)){this.simpleSelection=true;if(_8.isLeft(e)){_3.stop(e);}return;}if(!this.singular&&e.shiftKey){if(!_b.getCopyKeyState(e)){this._removeSelection();}var c=this.getAllNodes();if(c.length){if(!this.anchor){this.anchor=c[0];this._addItemClass(this.anchor,"Anchor");}this.selection[this.anchor.id]=1;if(this.anchor!=this.current){var i=0,_18;for(;i<c.length;++i){_18=c[i];if(_18==this.anchor||_18==this.current){break;}}for(++i;i<c.length;++i){_18=c[i];if(_18==this.anchor||_18==this.current){break;}this._addItemClass(_18,"Selected");this.selection[_18.id]=1;}this._addItemClass(this.current,"Selected");this.selection[this.current.id]=1;}}}else{if(this.singular){if(this.anchor==this.current){if(_b.getCopyKeyState(e)){this.selectNone();}}else{this.selectNone();this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}}else{if(_b.getCopyKeyState(e)){if(this.anchor==this.current){delete this.selection[this.anchor.id];this._removeAnchor();}else{if(this.current.id in this.selection){this._removeItemClass(this.current,"Selected");delete this.selection[this.current.id];}else{if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this._addItemClass(this.anchor,"Selected");}this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}else{if(!(this.current.id in this.selection)){this.selectNone();this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}}_3.stop(e);},onMouseUp:function(){if(!this.simpleSelection){return;}this.simpleSelection=false;this.selectNone();if(this.current){this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}},onMouseMove:function(){this.simpleSelection=false;},onOverEvent:function(){this.onmousemoveEvent=on(this.node,_a.move,_5.hitch(this,"onMouseMove"));},onOutEvent:function(){if(this.onmousemoveEvent){this.onmousemoveEvent.remove();delete this.onmousemoveEvent;}},_removeSelection:function(){var e=_b._empty;for(var i in this.selection){if(i in e){continue;}var _19=_6.byId(i);if(_19){this._removeItemClass(_19,"Selected");}}this.selection={};return this;},_removeAnchor:function(){if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this.anchor=null;}return this;}});return _d;}); \ No newline at end of file
diff --git a/lib/dojo/dnd/Source.js b/lib/dojo/dnd/Source.js
index b61da09bd..51c2b589c 100644
--- a/lib/dojo/dnd/Source.js
+++ b/lib/dojo/dnd/Source.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/Source",["../main","./Selector","./Manager"],function(_1,_2,_3){if(!_1.isAsync){_1.ready(0,function(){var _4=["dojo/dnd/AutoSource","dojo/dnd/Target"];require(_4);});}return _1.declare("dojo.dnd.Source",_2,{isSource:true,horizontal:false,copyOnly:false,selfCopy:false,selfAccept:true,skipForm:false,withHandles:false,autoSync:false,delay:0,accept:["text"],generateText:true,constructor:function(_5,_6){_1.mixin(this,_1.mixin({},_6));var _7=this.accept;if(_7.length){this.accept={};for(var i=0;i<_7.length;++i){this.accept[_7[i]]=1;}}this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.before=true;this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource){_1.addClass(this.node,"dojoDndSource");}this.targetState="";if(this.accept){_1.addClass(this.node,"dojoDndTarget");}if(this.horizontal){_1.addClass(this.node,"dojoDndHorizontal");}this.topics=[_1.subscribe("/dnd/source/over",this,"onDndSourceOver"),_1.subscribe("/dnd/start",this,"onDndStart"),_1.subscribe("/dnd/drop",this,"onDndDrop"),_1.subscribe("/dnd/cancel",this,"onDndCancel")];},checkAcceptance:function(_8,_9){if(this==_8){return !this.copyOnly||this.selfAccept;}for(var i=0;i<_9.length;++i){var _a=_8.getItem(_9[i].id).type;var _b=false;for(var j=0;j<_a.length;++j){if(_a[j] in this.accept){_b=true;break;}}if(!_b){return false;}}return true;},copyState:function(_c,_d){if(_c){return true;}if(arguments.length<2){_d=this==_3.manager().target;}if(_d){if(this.copyOnly){return this.selfCopy;}}else{return this.copyOnly;}return false;},destroy:function(){_1.dnd.Source.superclass.destroy.call(this);_1.forEach(this.topics,_1.unsubscribe);this.targetAnchor=null;},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}_1.dnd.Source.superclass.onMouseMove.call(this,e);var m=_3.manager();if(!this.isDragging){if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay)){var _e=this.getSelectedNodes();if(_e.length){m.startDrag(this,_e,this.copyState(_1.isCopyKey(e),true));}}}if(this.isDragging){var _f=false;if(this.current){if(!this.targetBox||this.targetAnchor!=this.current){this.targetBox=_1.position(this.current,true);}if(this.horizontal){_f=(e.pageX-this.targetBox.x)<(this.targetBox.w/2);}else{_f=(e.pageY-this.targetBox.y)<(this.targetBox.h/2);}}if(this.current!=this.targetAnchor||_f!=this.before){this._markTargetAnchor(_f);m.canDrop(!this.current||m.source!=this||!(this.current.id in this.selection));}}},onMouseDown:function(e){if(!this.mouseDown&&this._legalMouseDown(e)&&(!this.skipForm||!_1.dnd.isFormElement(e))){this.mouseDown=true;this._lastX=e.pageX;this._lastY=e.pageY;_1.dnd.Source.superclass.onMouseDown.call(this,e);}},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;_1.dnd.Source.superclass.onMouseUp.call(this,e);}},onDndSourceOver:function(_10){if(this!=_10){this.mouseDown=false;if(this.targetAnchor){this._unmarkTargetAnchor();}}else{if(this.isDragging){var m=_3.manager();m.canDrop(this.targetState!="Disabled"&&(!this.current||m.source!=this||!(this.current.id in this.selection)));}}},onDndStart:function(_11,_12,_13){if(this.autoSync){this.sync();}if(this.isSource){this._changeState("Source",this==_11?(_13?"Copied":"Moved"):"");}var _14=this.accept&&this.checkAcceptance(_11,_12);this._changeState("Target",_14?"":"Disabled");if(this==_11){_3.manager().overSource(this);}this.isDragging=true;},onDndDrop:function(_15,_16,_17,_18){if(this==_18){this.onDrop(_15,_16,_17);}this.onDndCancel();},onDndCancel:function(){if(this.targetAnchor){this._unmarkTargetAnchor();this.targetAnchor=null;}this.before=true;this.isDragging=false;this.mouseDown=false;this._changeState("Source","");this._changeState("Target","");},onDrop:function(_19,_1a,_1b){if(this!=_19){this.onDropExternal(_19,_1a,_1b);}else{this.onDropInternal(_1a,_1b);}},onDropExternal:function(_1c,_1d,_1e){var _1f=this._normalizedCreator;if(this.creator){this._normalizedCreator=function(_20,_21){return _1f.call(this,_1c.getItem(_20.id).data,_21);};}else{if(_1e){this._normalizedCreator=function(_22,_23){var t=_1c.getItem(_22.id);var n=_22.cloneNode(true);n.id=_1.dnd.getUniqueId();return {node:n,data:t.data,type:t.type};};}else{this._normalizedCreator=function(_24,_25){var t=_1c.getItem(_24.id);_1c.delItem(_24.id);return {node:_24,data:t.data,type:t.type};};}}this.selectNone();if(!_1e&&!this.creator){_1c.selectNone();}this.insertNodes(true,_1d,this.before,this.current);if(!_1e&&this.creator){_1c.deleteSelectedNodes();}this._normalizedCreator=_1f;},onDropInternal:function(_26,_27){var _28=this._normalizedCreator;if(this.current&&this.current.id in this.selection){return;}if(_27){if(this.creator){this._normalizedCreator=function(_29,_2a){return _28.call(this,this.getItem(_29.id).data,_2a);};}else{this._normalizedCreator=function(_2b,_2c){var t=this.getItem(_2b.id);var n=_2b.cloneNode(true);n.id=_1.dnd.getUniqueId();return {node:n,data:t.data,type:t.type};};}}else{if(!this.current){return;}this._normalizedCreator=function(_2d,_2e){var t=this.getItem(_2d.id);return {node:_2d,data:t.data,type:t.type};};}this._removeSelection();this.insertNodes(true,_26,this.before,this.current);this._normalizedCreator=_28;},onDraggingOver:function(){},onDraggingOut:function(){},onOverEvent:function(){_1.dnd.Source.superclass.onOverEvent.call(this);_3.manager().overSource(this);if(this.isDragging&&this.targetState!="Disabled"){this.onDraggingOver();}},onOutEvent:function(){_1.dnd.Source.superclass.onOutEvent.call(this);_3.manager().outSource(this);if(this.isDragging&&this.targetState!="Disabled"){this.onDraggingOut();}},_markTargetAnchor:function(_2f){if(this.current==this.targetAnchor&&this.before==_2f){return;}if(this.targetAnchor){this._removeItemClass(this.targetAnchor,this.before?"Before":"After");}this.targetAnchor=this.current;this.targetBox=null;this.before=_2f;if(this.targetAnchor){this._addItemClass(this.targetAnchor,this.before?"Before":"After");}},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this._removeItemClass(this.targetAnchor,this.before?"Before":"After");this.targetAnchor=null;this.targetBox=null;this.before=true;},_markDndStatus:function(_30){this._changeState("Source",_30?"Copied":"Moved");},_legalMouseDown:function(e){if(!_1.mouseButtons.isLeft(e)){return false;}if(!this.withHandles){return true;}for(var _31=e.target;_31&&_31!==this.node;_31=_31.parentNode){if(_1.hasClass(_31,"dojoDndHandle")){return true;}if(_1.hasClass(_31,"dojoDndItem")||_1.hasClass(_31,"dojoDndIgnore")){break;}}return false;}});}); \ No newline at end of file
+define("dojo/dnd/Source",["../_base/array","../_base/connect","../_base/declare","../_base/kernel","../_base/lang","../dom-class","../dom-geometry","../mouse","../ready","../topic","./common","./Selector","./Manager"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d){if(!_4.isAsync){_9(0,function(){var _e=["dojo/dnd/AutoSource","dojo/dnd/Target"];require(_e);});}var _f=_3("dojo.dnd.Source",_c,{isSource:true,horizontal:false,copyOnly:false,selfCopy:false,selfAccept:true,skipForm:false,withHandles:false,autoSync:false,delay:0,accept:["text"],generateText:true,constructor:function(_10,_11){_5.mixin(this,_5.mixin({},_11));var _12=this.accept;if(_12.length){this.accept={};for(var i=0;i<_12.length;++i){this.accept[_12[i]]=1;}}this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.before=true;this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource){_6.add(this.node,"dojoDndSource");}this.targetState="";if(this.accept){_6.add(this.node,"dojoDndTarget");}if(this.horizontal){_6.add(this.node,"dojoDndHorizontal");}this.topics=[_a.subscribe("/dnd/source/over",_5.hitch(this,"onDndSourceOver")),_a.subscribe("/dnd/start",_5.hitch(this,"onDndStart")),_a.subscribe("/dnd/drop",_5.hitch(this,"onDndDrop")),_a.subscribe("/dnd/cancel",_5.hitch(this,"onDndCancel"))];},checkAcceptance:function(_13,_14){if(this==_13){return !this.copyOnly||this.selfAccept;}for(var i=0;i<_14.length;++i){var _15=_13.getItem(_14[i].id).type;var _16=false;for(var j=0;j<_15.length;++j){if(_15[j] in this.accept){_16=true;break;}}if(!_16){return false;}}return true;},copyState:function(_17,_18){if(_17){return true;}if(arguments.length<2){_18=this==_d.manager().target;}if(_18){if(this.copyOnly){return this.selfCopy;}}else{return this.copyOnly;}return false;},destroy:function(){_f.superclass.destroy.call(this);_1.forEach(this.topics,function(t){t.remove();});this.targetAnchor=null;},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}_f.superclass.onMouseMove.call(this,e);var m=_d.manager();if(!this.isDragging){if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay)){var _19=this.getSelectedNodes();if(_19.length){m.startDrag(this,_19,this.copyState(_b.getCopyKeyState(e),true));}}}if(this.isDragging){var _1a=false;if(this.current){if(!this.targetBox||this.targetAnchor!=this.current){this.targetBox=_7.position(this.current,true);}if(this.horizontal){_1a=(e.pageX-this.targetBox.x<this.targetBox.w/2)==_7.isBodyLtr(this.current.ownerDocument);}else{_1a=(e.pageY-this.targetBox.y)<(this.targetBox.h/2);}}if(this.current!=this.targetAnchor||_1a!=this.before){this._markTargetAnchor(_1a);m.canDrop(!this.current||m.source!=this||!(this.current.id in this.selection));}}},onMouseDown:function(e){if(!this.mouseDown&&this._legalMouseDown(e)&&(!this.skipForm||!_b.isFormElement(e))){this.mouseDown=true;this._lastX=e.pageX;this._lastY=e.pageY;_f.superclass.onMouseDown.call(this,e);}},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;_f.superclass.onMouseUp.call(this,e);}},onDndSourceOver:function(_1b){if(this!==_1b){this.mouseDown=false;if(this.targetAnchor){this._unmarkTargetAnchor();}}else{if(this.isDragging){var m=_d.manager();m.canDrop(this.targetState!="Disabled"&&(!this.current||m.source!=this||!(this.current.id in this.selection)));}}},onDndStart:function(_1c,_1d,_1e){if(this.autoSync){this.sync();}if(this.isSource){this._changeState("Source",this==_1c?(_1e?"Copied":"Moved"):"");}var _1f=this.accept&&this.checkAcceptance(_1c,_1d);this._changeState("Target",_1f?"":"Disabled");if(this==_1c){_d.manager().overSource(this);}this.isDragging=true;},onDndDrop:function(_20,_21,_22,_23){if(this==_23){this.onDrop(_20,_21,_22);}this.onDndCancel();},onDndCancel:function(){if(this.targetAnchor){this._unmarkTargetAnchor();this.targetAnchor=null;}this.before=true;this.isDragging=false;this.mouseDown=false;this._changeState("Source","");this._changeState("Target","");},onDrop:function(_24,_25,_26){if(this!=_24){this.onDropExternal(_24,_25,_26);}else{this.onDropInternal(_25,_26);}},onDropExternal:function(_27,_28,_29){var _2a=this._normalizedCreator;if(this.creator){this._normalizedCreator=function(_2b,_2c){return _2a.call(this,_27.getItem(_2b.id).data,_2c);};}else{if(_29){this._normalizedCreator=function(_2d){var t=_27.getItem(_2d.id);var n=_2d.cloneNode(true);n.id=_b.getUniqueId();return {node:n,data:t.data,type:t.type};};}else{this._normalizedCreator=function(_2e){var t=_27.getItem(_2e.id);_27.delItem(_2e.id);return {node:_2e,data:t.data,type:t.type};};}}this.selectNone();if(!_29&&!this.creator){_27.selectNone();}this.insertNodes(true,_28,this.before,this.current);if(!_29&&this.creator){_27.deleteSelectedNodes();}this._normalizedCreator=_2a;},onDropInternal:function(_2f,_30){var _31=this._normalizedCreator;if(this.current&&this.current.id in this.selection){return;}if(_30){if(this.creator){this._normalizedCreator=function(_32,_33){return _31.call(this,this.getItem(_32.id).data,_33);};}else{this._normalizedCreator=function(_34){var t=this.getItem(_34.id);var n=_34.cloneNode(true);n.id=_b.getUniqueId();return {node:n,data:t.data,type:t.type};};}}else{if(!this.current){return;}this._normalizedCreator=function(_35){var t=this.getItem(_35.id);return {node:_35,data:t.data,type:t.type};};}this._removeSelection();this.insertNodes(true,_2f,this.before,this.current);this._normalizedCreator=_31;},onDraggingOver:function(){},onDraggingOut:function(){},onOverEvent:function(){_f.superclass.onOverEvent.call(this);_d.manager().overSource(this);if(this.isDragging&&this.targetState!="Disabled"){this.onDraggingOver();}},onOutEvent:function(){_f.superclass.onOutEvent.call(this);_d.manager().outSource(this);if(this.isDragging&&this.targetState!="Disabled"){this.onDraggingOut();}},_markTargetAnchor:function(_36){if(this.current==this.targetAnchor&&this.before==_36){return;}if(this.targetAnchor){this._removeItemClass(this.targetAnchor,this.before?"Before":"After");}this.targetAnchor=this.current;this.targetBox=null;this.before=_36;if(this.targetAnchor){this._addItemClass(this.targetAnchor,this.before?"Before":"After");}},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this._removeItemClass(this.targetAnchor,this.before?"Before":"After");this.targetAnchor=null;this.targetBox=null;this.before=true;},_markDndStatus:function(_37){this._changeState("Source",_37?"Copied":"Moved");},_legalMouseDown:function(e){if(e.type!="touchstart"&&!_8.isLeft(e)){return false;}if(!this.withHandles){return true;}for(var _38=e.target;_38&&_38!==this.node;_38=_38.parentNode){if(_6.contains(_38,"dojoDndHandle")){return true;}if(_6.contains(_38,"dojoDndItem")||_6.contains(_38,"dojoDndIgnore")){break;}}return false;}});return _f;}); \ No newline at end of file
diff --git a/lib/dojo/dnd/Target.js b/lib/dojo/dnd/Target.js
index cd10fbc27..f7316f004 100644
--- a/lib/dojo/dnd/Target.js
+++ b/lib/dojo/dnd/Target.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/Target",["./Source"],function(_1){return dojo.declare("dojo.dnd.Target",_1,{constructor:function(_2,_3){this.isSource=false;dojo.removeClass(this.node,"dojoDndSource");}});}); \ No newline at end of file
+define("dojo/dnd/Target",["../_base/declare","../dom-class","./Source"],function(_1,_2,_3){return _1("dojo.dnd.Target",_3,{constructor:function(){this.isSource=false;_2.remove(this.node,"dojoDndSource");}});}); \ No newline at end of file
diff --git a/lib/dojo/dnd/TimedMoveable.js b/lib/dojo/dnd/TimedMoveable.js
index 049ee5da1..d160e3d0b 100644
--- a/lib/dojo/dnd/TimedMoveable.js
+++ b/lib/dojo/dnd/TimedMoveable.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/TimedMoveable",["../main","./Moveable"],function(_1){var _2=_1.dnd.Moveable.prototype.onMove;_1.declare("dojo.dnd.TimedMoveable",_1.dnd.Moveable,{timeout:40,constructor:function(_3,_4){if(!_4){_4={};}if(_4.timeout&&typeof _4.timeout=="number"&&_4.timeout>=0){this.timeout=_4.timeout;}},onMoveStop:function(_5){if(_5._timer){clearTimeout(_5._timer);_2.call(this,_5,_5._leftTop);}_1.dnd.Moveable.prototype.onMoveStop.apply(this,arguments);},onMove:function(_6,_7){_6._leftTop=_7;if(!_6._timer){var _8=this;_6._timer=setTimeout(function(){_6._timer=null;_2.call(_8,_6,_6._leftTop);},this.timeout);}}});return _1.dnd.TimedMoveable;}); \ No newline at end of file
+define("dojo/dnd/TimedMoveable",["../_base/declare","./Moveable"],function(_1,_2){var _3=_2.prototype.onMove;return _1("dojo.dnd.TimedMoveable",_2,{timeout:40,constructor:function(_4,_5){if(!_5){_5={};}if(_5.timeout&&typeof _5.timeout=="number"&&_5.timeout>=0){this.timeout=_5.timeout;}},onMoveStop:function(_6){if(_6._timer){clearTimeout(_6._timer);_3.call(this,_6,_6._leftTop);}_2.prototype.onMoveStop.apply(this,arguments);},onMove:function(_7,_8){_7._leftTop=_8;if(!_7._timer){var _9=this;_7._timer=setTimeout(function(){_7._timer=null;_3.call(_9,_7,_7._leftTop);},this.timeout);}}});}); \ No newline at end of file
diff --git a/lib/dojo/dnd/autoscroll.js b/lib/dojo/dnd/autoscroll.js
index 3d3a57b30..1c5badb44 100644
--- a/lib/dojo/dnd/autoscroll.js
+++ b/lib/dojo/dnd/autoscroll.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/autoscroll",["../main","../window"],function(_1){_1.getObject("dnd",true,_1);_1.dnd.getViewport=_1.window.getBox;_1.dnd.V_TRIGGER_AUTOSCROLL=32;_1.dnd.H_TRIGGER_AUTOSCROLL=32;_1.dnd.V_AUTOSCROLL_VALUE=16;_1.dnd.H_AUTOSCROLL_VALUE=16;_1.dnd.autoScroll=function(e){var v=_1.window.getBox(),dx=0,dy=0;if(e.clientX<_1.dnd.H_TRIGGER_AUTOSCROLL){dx=-_1.dnd.H_AUTOSCROLL_VALUE;}else{if(e.clientX>v.w-_1.dnd.H_TRIGGER_AUTOSCROLL){dx=_1.dnd.H_AUTOSCROLL_VALUE;}}if(e.clientY<_1.dnd.V_TRIGGER_AUTOSCROLL){dy=-_1.dnd.V_AUTOSCROLL_VALUE;}else{if(e.clientY>v.h-_1.dnd.V_TRIGGER_AUTOSCROLL){dy=_1.dnd.V_AUTOSCROLL_VALUE;}}window.scrollBy(dx,dy);};_1.dnd._validNodes={"div":1,"p":1,"td":1};_1.dnd._validOverflow={"auto":1,"scroll":1};_1.dnd.autoScrollNodes=function(e){var b,t,w,h,rx,ry,dx=0,dy=0,_2,_3;for(var n=e.target;n;){if(n.nodeType==1&&(n.tagName.toLowerCase() in _1.dnd._validNodes)){var s=_1.getComputedStyle(n),_4=(s.overflow.toLowerCase() in _1.dnd._validOverflow),_5=(s.overflowX.toLowerCase() in _1.dnd._validOverflow),_6=(s.overflowY.toLowerCase() in _1.dnd._validOverflow);if(_4||_5||_6){b=_1._getContentBox(n,s);t=_1.position(n,true);}if(_4||_5){w=Math.min(_1.dnd.H_TRIGGER_AUTOSCROLL,b.w/2);rx=e.pageX-t.x;if(_1.isWebKit||_1.isOpera){rx+=_1.body().scrollLeft;}dx=0;if(rx>0&&rx<b.w){if(rx<w){dx=-w;}else{if(rx>b.w-w){dx=w;}}_2=n.scrollLeft;n.scrollLeft=n.scrollLeft+dx;}}if(_4||_6){h=Math.min(_1.dnd.V_TRIGGER_AUTOSCROLL,b.h/2);ry=e.pageY-t.y;if(_1.isWebKit||_1.isOpera){ry+=_1.body().scrollTop;}dy=0;if(ry>0&&ry<b.h){if(ry<h){dy=-h;}else{if(ry>b.h-h){dy=h;}}_3=n.scrollTop;n.scrollTop=n.scrollTop+dy;}}if(dx||dy){return;}}try{n=n.parentNode;}catch(x){n=null;}}_1.dnd.autoScroll(e);};return _1.dnd;}); \ No newline at end of file
+define("dojo/dnd/autoscroll",["../_base/lang","../sniff","../_base/window","../dom-geometry","../dom-style","../window"],function(_1,_2,_3,_4,_5,_6){var _7={};_1.setObject("dojo.dnd.autoscroll",_7);_7.getViewport=_6.getBox;_7.V_TRIGGER_AUTOSCROLL=32;_7.H_TRIGGER_AUTOSCROLL=32;_7.V_AUTOSCROLL_VALUE=16;_7.H_AUTOSCROLL_VALUE=16;var _8,_9=_3.doc,_a=Infinity,_b=Infinity;_7.autoScrollStart=function(d){_9=d;_8=_6.getBox(_9);var _c=_3.body(_9).parentNode;_a=Math.max(_c.scrollHeight-_8.h,0);_b=Math.max(_c.scrollWidth-_8.w,0);};_7.autoScroll=function(e){var v=_8||_6.getBox(_9),_d=_3.body(_9).parentNode,dx=0,dy=0;if(e.clientX<_7.H_TRIGGER_AUTOSCROLL){dx=-_7.H_AUTOSCROLL_VALUE;}else{if(e.clientX>v.w-_7.H_TRIGGER_AUTOSCROLL){dx=Math.min(_7.H_AUTOSCROLL_VALUE,_b-_d.scrollLeft);}}if(e.clientY<_7.V_TRIGGER_AUTOSCROLL){dy=-_7.V_AUTOSCROLL_VALUE;}else{if(e.clientY>v.h-_7.V_TRIGGER_AUTOSCROLL){dy=Math.min(_7.V_AUTOSCROLL_VALUE,_a-_d.scrollTop);}}window.scrollBy(dx,dy);};_7._validNodes={"div":1,"p":1,"td":1};_7._validOverflow={"auto":1,"scroll":1};_7.autoScrollNodes=function(e){var b,t,w,h,rx,ry,dx=0,dy=0,_e,_f;for(var n=e.target;n;){if(n.nodeType==1&&(n.tagName.toLowerCase() in _7._validNodes)){var s=_5.getComputedStyle(n),_10=(s.overflow.toLowerCase() in _7._validOverflow),_11=(s.overflowX.toLowerCase() in _7._validOverflow),_12=(s.overflowY.toLowerCase() in _7._validOverflow);if(_10||_11||_12){b=_4.getContentBox(n,s);t=_4.position(n,true);}if(_10||_11){w=Math.min(_7.H_TRIGGER_AUTOSCROLL,b.w/2);rx=e.pageX-t.x;if(_2("webkit")||_2("opera")){rx+=_3.body().scrollLeft;}dx=0;if(rx>0&&rx<b.w){if(rx<w){dx=-w;}else{if(rx>b.w-w){dx=w;}}_e=n.scrollLeft;n.scrollLeft=n.scrollLeft+dx;}}if(_10||_12){h=Math.min(_7.V_TRIGGER_AUTOSCROLL,b.h/2);ry=e.pageY-t.y;if(_2("webkit")||_2("opera")){ry+=_3.body().scrollTop;}dy=0;if(ry>0&&ry<b.h){if(ry<h){dy=-h;}else{if(ry>b.h-h){dy=h;}}_f=n.scrollTop;n.scrollTop=n.scrollTop+dy;}}if(dx||dy){return;}}try{n=n.parentNode;}catch(x){n=null;}}_7.autoScroll(e);};return _7;}); \ No newline at end of file
diff --git a/lib/dojo/dnd/common.js b/lib/dojo/dnd/common.js
index 97434a728..4ac2dca56 100644
--- a/lib/dojo/dnd/common.js
+++ b/lib/dojo/dnd/common.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/common",["../main"],function(_1){_1.getObject("dnd",true,_1);_1.dnd.getCopyKeyState=_1.isCopyKey;_1.dnd._uniqueId=0;_1.dnd.getUniqueId=function(){var id;do{id=_1._scopeName+"Unique"+(++_1.dnd._uniqueId);}while(_1.byId(id));return id;};_1.dnd._empty={};_1.dnd.isFormElement=function(e){var t=e.target;if(t.nodeType==3){t=t.parentNode;}return " button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0;};return _1.dnd;}); \ No newline at end of file
+define("dojo/dnd/common",["../_base/connect","../_base/kernel","../_base/lang","../dom"],function(_1,_2,_3,_4){var _5=_3.getObject("dojo.dnd",true);_5.getCopyKeyState=_1.isCopyKey;_5._uniqueId=0;_5.getUniqueId=function(){var id;do{id=_2._scopeName+"Unique"+(++_5._uniqueId);}while(_4.byId(id));return id;};_5._empty={};_5.isFormElement=function(e){var t=e.target;if(t.nodeType==3){t=t.parentNode;}return " button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0;};return _5;}); \ No newline at end of file
diff --git a/lib/dojo/dnd/move.js b/lib/dojo/dnd/move.js
index 3c8d97ae0..1271d4de7 100644
--- a/lib/dojo/dnd/move.js
+++ b/lib/dojo/dnd/move.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dnd/move",["../main","./Mover","./Moveable"],function(_1){_1.declare("dojo.dnd.move.constrainedMoveable",_1.dnd.Moveable,{constraints:function(){},within:false,constructor:function(_2,_3){if(!_3){_3={};}this.constraints=_3.constraints;this.within=_3.within;},onFirstMove:function(_4){var c=this.constraintBox=this.constraints.call(this,_4);c.r=c.l+c.w;c.b=c.t+c.h;if(this.within){var mb=_1._getMarginSize(_4.node);c.r-=mb.w;c.b-=mb.h;}},onMove:function(_5,_6){var c=this.constraintBox,s=_5.node.style;this.onMoving(_5,_6);_6.l=_6.l<c.l?c.l:c.r<_6.l?c.r:_6.l;_6.t=_6.t<c.t?c.t:c.b<_6.t?c.b:_6.t;s.left=_6.l+"px";s.top=_6.t+"px";this.onMoved(_5,_6);}});_1.declare("dojo.dnd.move.boxConstrainedMoveable",_1.dnd.move.constrainedMoveable,{box:{},constructor:function(_7,_8){var _9=_8&&_8.box;this.constraints=function(){return _9;};}});_1.declare("dojo.dnd.move.parentConstrainedMoveable",_1.dnd.move.constrainedMoveable,{area:"content",constructor:function(_a,_b){var _c=_b&&_b.area;this.constraints=function(){var n=this.node.parentNode,s=_1.getComputedStyle(n),mb=_1._getMarginBox(n,s);if(_c=="margin"){return mb;}var t=_1._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(_c=="border"){return mb;}t=_1._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(_c=="padding"){return mb;}t=_1._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};}});_1.dnd.constrainedMover=_1.dnd.move.constrainedMover;_1.dnd.boxConstrainedMover=_1.dnd.move.boxConstrainedMover;_1.dnd.parentConstrainedMover=_1.dnd.move.parentConstrainedMover;return _1.dnd.move;}); \ No newline at end of file
+define("dojo/dnd/move",["../_base/declare","../dom-geometry","../dom-style","./common","./Mover","./Moveable"],function(_1,_2,_3,_4,_5,_6){var _7=_1("dojo.dnd.move.constrainedMoveable",_6,{constraints:function(){},within:false,constructor:function(_8,_9){if(!_9){_9={};}this.constraints=_9.constraints;this.within=_9.within;},onFirstMove:function(_a){var c=this.constraintBox=this.constraints.call(this,_a);c.r=c.l+c.w;c.b=c.t+c.h;if(this.within){var mb=_2.getMarginSize(_a.node);c.r-=mb.w;c.b-=mb.h;}},onMove:function(_b,_c){var c=this.constraintBox,s=_b.node.style;this.onMoving(_b,_c);_c.l=_c.l<c.l?c.l:c.r<_c.l?c.r:_c.l;_c.t=_c.t<c.t?c.t:c.b<_c.t?c.b:_c.t;s.left=_c.l+"px";s.top=_c.t+"px";this.onMoved(_b,_c);}});var _d=_1("dojo.dnd.move.boxConstrainedMoveable",_7,{box:{},constructor:function(_e,_f){var box=_f&&_f.box;this.constraints=function(){return box;};}});var _10=_1("dojo.dnd.move.parentConstrainedMoveable",_7,{area:"content",constructor:function(_11,_12){var _13=_12&&_12.area;this.constraints=function(){var n=this.node.parentNode,s=_3.getComputedStyle(n),mb=_2.getMarginBox(n,s);if(_13=="margin"){return mb;}var t=_2.getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(_13=="border"){return mb;}t=_2.getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(_13=="padding"){return mb;}t=_2.getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};}});return {constrainedMoveable:_7,boxConstrainedMoveable:_d,parentConstrainedMoveable:_10};}); \ No newline at end of file
diff --git a/lib/dojo/dojo.js b/lib/dojo/dojo.js
index 65334627f..912b0143f 100644
--- a/lib/dojo/dojo.js
+++ b/lib/dojo/dojo.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
@@ -12,4 +12,4 @@
*/
//>>built
-(function(_1,_2){var _3=function(){},_4=function(it){for(var p in it){return 0;}return 1;},_5={}.toString,_6=function(it){return _5.call(it)=="[object Function]";},_7=function(it){return _5.call(it)=="[object String]";},_8=function(it){return _5.call(it)=="[object Array]";},_9=function(_a,_b){if(_a){for(var i=0;i<_a.length;){_b(_a[i++]);}}},_c=function(_d,_e){for(var p in _e){_d[p]=_e[p];}return _d;},_f=function(_10,_11){return _c(new Error(_10),{src:"dojoLoader",info:_11});},_12=1,uid=function(){return "_"+_12++;},req=function(_13,_14,_15){return _16(_13,_14,_15,0,req);},_17=this,doc=_17.document,_18=doc&&doc.createElement("DiV"),has=req.has=function(_19){return _6(_1a[_19])?(_1a[_19]=_1a[_19](_17,doc,_18)):_1a[_19];},_1a=has.cache=_2.hasCache;has.add=function(_1b,_1c,now,_1d){(_1a[_1b]===undefined||_1d)&&(_1a[_1b]=_1c);return now&&has(_1b);};false&&has.add("host-node",_1.has&&"host-node" in _1.has?_1.has["host-node"]:(typeof process=="object"&&process.versions&&process.versions.node&&process.versions.v8));if(0){require("./_base/configNode.js").config(_2);_2.loaderPatch.nodeRequire=require;}false&&has.add("host-rhino",_1.has&&"host-rhino" in _1.has?_1.has["host-rhino"]:(typeof load=="function"&&(typeof Packages=="function"||typeof Packages=="object")));if(0){for(var _1e=_1.baseUrl||".",arg,_1f=this.arguments,i=0;i<_1f.length;){arg=(_1f[i++]+"").split("=");if(arg[0]=="baseUrl"){_1e=arg[1];break;}}load(_1e+"/_base/configRhino.js");rhinoDojoConfig(_2,_1e,_1f);}for(var p in _1.has){has.add(p,_1.has[p],0,1);}var _20=1,_21=2,_22=3,_23=4,_24=5;if(0){_20="requested";_21="arrived";_22="not-a-module";_23="executing";_24="executed";}var _25=0,_26="sync",xd="xd",_27=[],_28=0,_29=_3,_2a=_3,_2b;if(1){req.isXdUrl=_3;req.initSyncLoader=function(_2c,_2d,_2e){if(!_28){_28=_2c;_29=_2d;_2a=_2e;}return {sync:_26,xd:xd,arrived:_21,nonmodule:_22,executing:_23,executed:_24,syncExecStack:_27,modules:_2f,execQ:_30,getModule:_31,injectModule:_32,setArrived:_33,signal:_34,finishExec:_35,execModule:_36,dojoRequirePlugin:_28,getLegacyMode:function(){return _25;},holdIdle:function(){_76++;},releaseIdle:function(){_37();}};};if(1){var _38=location.protocol,_39=location.host,_3a=!_39;req.isXdUrl=function(url){if(_3a||/^\./.test(url)){return false;}if(/^\/\//.test(url)){return true;}var _3b=url.match(/^([^\/\:]+\:)\/\/([^\/]+)/);return _3b&&(_3b[1]!=_38||_3b[2]!=_39);};true||has.add("dojo-xhr-factory",1);has.add("dojo-force-activex-xhr",1&&!doc.addEventListener&&window.location.protocol=="file:");has.add("native-xhr",typeof XMLHttpRequest!="undefined");if(has("native-xhr")&&!has("dojo-force-activex-xhr")){_2b=function(){return new XMLHttpRequest();};}else{for(var _3c=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],_3d,i=0;i<3;){try{_3d=_3c[i++];if(new ActiveXObject(_3d)){break;}}catch(e){}}_2b=function(){return new ActiveXObject(_3d);};}req.getXhr=_2b;has.add("dojo-gettext-api",1);req.getText=function(url,_3e,_3f){var xhr=_2b();xhr.open("GET",_40(url),false);xhr.send(null);if(xhr.status==200||(!location.host&&!xhr.status)){if(_3f){_3f(xhr.responseText,_3e);}}else{throw _f("xhrFailed",xhr.status);}return xhr.responseText;};}}else{req.async=1;}var _41=new Function("return eval(arguments[0]);");req.eval=function(_42,_43){return _41(_42+"\r\n////@ sourceURL="+_43);};var _44={},_45="error",_34=req.signal=function(_46,_47){var _48=_44[_46];_9(_48&&_48.slice(0),function(_49){_49.apply(null,_8(_47)?_47:[_47]);});},on=req.on=function(_4a,_4b){var _4c=_44[_4a]||(_44[_4a]=[]);_4c.push(_4b);return {remove:function(){for(var i=0;i<_4c.length;i++){if(_4c[i]===_4b){_4c.splice(i,1);return;}}}};};var _4d=[],_4e={},_4f=[],_50={},_51={},_52=[],_2f={},_53="",_54={},_55={},_56={};if(1){var _57=function(_58){var p,_59,_5a,now;for(p in _55){_59=_55[p];_5a=p.match(/^url\:(.+)/);if(_5a){_54[_5b(_5a[1],_58)]=_59;}else{if(p=="*now"){now=_59;}else{if(p!="*noref"){_54[_5c(p,_58).mid]=_59;}}}}if(now){now(_5d(_58));}_55={};},_5e=function(map,_5f,_60){_5f.splice(0,_5f.length);var p,i,_61,_62=0;for(p in map){_5f.push([p,map[p]]);if(map[p]==_60){_62=p;}}_5f.sort(function(lhs,rhs){return rhs[0].length-lhs[0].length;});for(i=0;i<_5f.length;){_61=_5f[i++];_61[2]=new RegExp("^"+_61[0].replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(c){return "\\"+c;})+"(/|$)");_61[3]=_61[0].length+1;}return _62;},_63=function(_64,_65){var _66=_64.name;if(!_66){_66=_64;_64={name:_66};}_64=_c({main:"main",mapProg:[]},_64);_64.location=(_65||"")+(_64.location?_64.location:_66);_64.reverseName=_5e(_64.packageMap,_64.mapProg,_66);if(!_64.main.indexOf("./")){_64.main=_64.main.substring(2);}_c(_4e,_64.paths);_50[_66]=_64;_51[_66]=_66;},_67=function(_68,_69){for(var p in _68){if(p=="waitSeconds"){req.waitms=(_68[p]||0)*1000;}if(p=="cacheBust"){_53=_68[p]?(_7(_68[p])?_68[p]:(new Date()).getTime()+""):"";}if(p=="baseUrl"||p=="combo"){req[p]=_68[p];}if(1&&p=="async"){var _6a=_68[p];req.legacyMode=_25=(_7(_6a)&&/sync|legacyAsync/.test(_6a)?_6a:(!_6a?"sync":false));req.async=!_25;}if(_68[p]!==_1a){req.rawConfig[p]=_68[p];p!="has"&&has.add("config-"+p,_68[p],0,_69);}}if(!req.baseUrl){req.baseUrl="./";}if(!/\/$/.test(req.baseUrl)){req.baseUrl+="/";}for(p in _68.has){has.add(p,_68.has[p],0,_69);}_9(_68.packages,_63);for(_1e in _68.packagePaths){_9(_68.packagePaths[_1e],function(_6b){_63(_6b,_1e+"/");});}_5e(_c(_4e,_68.paths),_4f);_9(_68.aliases,function(_6c){if(_7(_6c[0])){_6c[0]=new RegExp("^"+_6c[0].replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(c){return "\\"+c;})+"$");}_4d.push(_6c);});_5e(_c(_51,_68.packageMap),_52);if(_68.cache){_57();_55=_68.cache;if(_68.cache["*noref"]){_57();}}_34("config",[_68,req.rawConfig]);};if(has("dojo-cdn")||1){for(var _6d,src,_6e,_6f=doc.getElementsByTagName("script"),i=0;i<_6f.length&&!_6e;i++){if((src=_6f[i].getAttribute("src"))&&(_6e=src.match(/(.*)\/?dojo\.js(\W|$)/i))){_1.baseUrl=_6d=_1.baseUrl||_2.baseUrl||_6e[1];src=(_6f[i].getAttribute("data-dojo-config")||_6f[i].getAttribute("djConfig"));if(src){_56=req.eval("({ "+src+" })","data-dojo-config");}if(0){var _70=_6f[i].getAttribute("data-main");if(_70){_56.deps=_56.deps||[_70];}}}}}if(0){try{if(window.parent!=window&&window.parent.require){var doh=window.parent.require("doh");doh&&_c(_56,doh.testConfig);}}catch(e){}}req.rawConfig={};_67(_2,1);_67(_1,1);_67(_56,1);if(has("dojo-cdn")){_50.dojo.location=_6d;_50.dijit.location=_6d+"../dijit/";_50.dojox.location=_6d+"../dojox/";}}else{_4e=_2.paths;_4f=_2.pathsMapProg;_50=_2.packs;_4d=_2.aliases;_51=_2.packageMap;_52=_2.packageMapProg;_2f=_2.modules;_54=_2.cache;_53=_2.cacheBust;req.rawConfig=_2;}if(0){req.combo=req.combo||{add:_3};var _71=0,_72=[],_73=null;}var _74=function(_75){_76++;_9(_75.deps,_32);if(0&&_71&&!_73){_73=setTimeout(function(){_71=0;_73=null;req.combo.done(function(_77,url){var _78=function(){_79(0,_77);_7a();};_72.push(_77);_7b=_77;req.injectUrl(url,_78,_77);_7b=0;},req);},0);}_37();},_16=function(a1,a2,a3,_7c,_7d){var _7e,_7f;if(_7(a1)){_7e=_31(a1,_7c,true);if(_7e&&_7e.executed){return _7e.result;}throw _f("undefinedModule",a1);}if(!_8(a1)){_67(a1);a1=a2;a2=a3;}if(_8(a1)){if(!a1.length){a2&&a2();}else{_7f="require*"+uid();for(var mid,_80=[],i=0;i<a1.length;){mid=a1[i++];if(mid in {exports:1,module:1}){throw _f("illegalModuleId",mid);}_80.push(_31(mid,_7c));}_7e=_c(_81("",_7f,0,""),{injected:_21,deps:_80,def:a2||_3,require:_7c?_7c.require:req});_2f[_7e.mid]=_7e;_74(_7e);var _82=_76&&req.async;_76++;_36(_7e,_82);_37();if(!_7e.executed){_30.push(_7e);}_7a();}}return _7d;},_5d=function(_83){if(!_83){return req;}var _84=_83.require;if(!_84){_84=function(a1,a2,a3){return _16(a1,a2,a3,_83,_84);};_83.require=_c(_84,req);_84.module=_83;_84.toUrl=function(_85){return _5b(_85,_83);};_84.toAbsMid=function(mid){return _b4(mid,_83);};if(0){_84.undef=function(mid){req.undef(mid,_83);};}if(1){_84.syncLoadNls=function(mid){var _86=_5c(mid,_83),_87=_2f[_86.mid];if(!_87||!_87.executed){_88=_54[_86.mid]||_54[_86.cacheId];if(_88){_89(_88);_87=_2f[_86.mid];}}return _87&&_87.executed&&_87.result;};}}return _84;},_30=[],_8a=[],_8b={},_8c=function(_8d){_8d.injected=_20;_8b[_8d.mid]=1;if(_8d.url){_8b[_8d.url]=_8d.pack||1;}},_33=function(_8e){_8e.injected=_21;delete _8b[_8e.mid];if(_8e.url){delete _8b[_8e.url];}if(_4(_8b)){_8f();1&&_25==xd&&(_25=_26);}},_90=req.idle=function(){return !_8a.length&&_4(_8b)&&!_30.length&&!_76;},_91=function(_92,map){for(var i=0;i<map.length;i++){if(map[i][2].test(_92)){return map[i];}}return 0;},_93=function(_94){var _95=[],_96,_97;_94=_94.replace(/\\/g,"/").split("/");while(_94.length){_96=_94.shift();if(_96==".."&&_95.length&&_97!=".."){_95.pop();_97=_95[_95.length-1];}else{if(_96!="."){_95.push(_97=_96);}}}return _95.join("/");},_81=function(pid,mid,_98,url,_99){if(1){var xd=req.isXdUrl(url);return {pid:pid,mid:mid,pack:_98,url:url,executed:0,def:0,isXd:xd,isAmd:!!(xd||(_50[pid]&&_50[pid].isAmd)),cacheId:_99};}else{return {pid:pid,mid:mid,pack:_98,url:url,executed:0,def:0,cacheId:_99};}},_9a=function(mid,_9b,_9c,_9d,_9e,_9f,_a0,_a1){var pid,_a2,_a3,_a4,_a5,_a6,url,_a7,_a8,_a9,_aa=0;_a9=mid;_a8=/^\./.test(mid);if(/(^\/)|(\:)|(\.js$)/.test(mid)||(_a8&&!_9b)){return _81(0,mid,0,mid);}else{mid=_93(_a8?(_9b.mid+"/../"+mid):mid);if(/^\./.test(mid)){throw _f("irrationalPath",mid);}_a4=_9b&&_9b.pack&&_9b.pack.mapProg;_a5=(_a4&&_91(mid,_a4))||_91(mid,_9f);if(_a5){pid=_a5[1];mid=mid.substring(_a5[3]);_a2=_9c[pid];if(!mid){mid=_a2.main;}_a3=mid;_aa=_a2.reverseName+"/"+mid;mid=pid+"/"+mid;}else{pid="";}var _ab=0,_ac=0;_9(_4d,function(_ad){var _ae=mid.match(_ad[0]);if(_ae&&_ae.length>_ab){_ac=_6(_ad[1])?mid.replace(_ad[0],_ad[1]):_ad[1];}});if(_ac){return _9a(_ac,0,_9c,_9d,_9e,_9f,_a0,_a1);}_a7=_9d[mid];if(_a7){return _a1?_81(_a7.pid,_a7.mid,_a7.pack,_a7.url,_aa):_9d[mid];}}_a5=_91(mid,_a0);if(_a5){url=_a5[1]+mid.substring(_a5[3]-1);}else{if(pid){url=_a2.location+"/"+_a3;}else{if(has("config-tlmSiblingOfDojo")){url="../"+mid;}else{url=mid;}}}if(!(/(^\/)|(\:)/.test(url))){url=_9e+url;}url+=".js";return _81(pid,mid,_a2,_93(url),_aa);},_5c=function(mid,_af){return _9a(mid,_af,_50,_2f,req.baseUrl,_52,_4f);},_b0=function(_b1,_b2,_b3){return _b1.normalize?_b1.normalize(_b2,function(mid){return _b4(mid,_b3);}):_b4(_b2,_b3);},_b5=0,_31=function(mid,_b6,_b7){var _b8,_b9,_ba,_bb;_b8=mid.match(/^(.+?)\!(.*)$/);if(_b8){_b9=_31(_b8[1],_b6,_b7);if(1&&_25==_26&&!_b9.executed){_32(_b9);if(_b9.injected===_21&&!_b9.executed){_76++;_36(_b9);_37();}if(_b9.executed){_bc(_b9);}else{_30.unshift(_b9);}}if(_b9.executed===_24&&!_b9.load){_bc(_b9);}if(_b9.load){_ba=_b0(_b9,_b8[2],_b6);mid=(_b9.mid+"!"+(_b9.dynamic?++_b5+"!":"")+_ba);}else{_ba=_b8[2];mid=_b9.mid+"!"+(++_b5)+"!waitingForPlugin";}_bb={plugin:_b9,mid:mid,req:_5d(_b6),prid:_ba};}else{_bb=_5c(mid,_b6);}return _2f[_bb.mid]||(!_b7&&(_2f[_bb.mid]=_bb));},_b4=req.toAbsMid=function(mid,_bd){return _5c(mid,_bd).mid;},_5b=req.toUrl=function(_be,_bf){var _c0=_5c(_be+"/x",_bf),url=_c0.url;return _40(_c0.pid===0?_be:url.substring(0,url.length-5));},_c1={injected:_21,executed:_24,def:_22,result:_22},_c2=function(mid){return _2f[mid]=_c({mid:mid},_c1);},_c3=_c2("require"),_c4=_c2("exports"),_c5=_c2("module"),_c6=function(_c7,_c8){req.trace("loader-run-factory",[_c7.mid]);var _c9=_c7.def,_ca;1&&_27.unshift(_c7);if(has("config-dojo-loader-catches")){try{_ca=_6(_c9)?_c9.apply(null,_c8):_c9;}catch(e){_34(_45,_c7.result=_f("factoryThrew",[_c7,e]));}}else{_ca=_6(_c9)?_c9.apply(null,_c8):_c9;}_c7.result=_ca===undefined&&_c7.cjs?_c7.cjs.exports:_ca;1&&_27.shift(_c7);},_cb={},_cc=0,_bc=function(_cd){var _ce=_cd.result;_cd.dynamic=_ce.dynamic;_cd.normalize=_ce.normalize;_cd.load=_ce.load;return _cd;},_cf=function(_d0){var map={};_9(_d0.loadQ,function(_d1){var _d2=_d1.mid,_d3=_b0(_d0,_d1.prid,_d1.req.module),mid=_d0.dynamic?_d1.mid.replace(/waitingForPlugin$/,_d3):(_d0.mid+"!"+_d3),_d4=_c(_c({},_d1),{mid:mid,prid:_d3,injected:0});if(!_2f[mid]){_e5(_2f[mid]=_d4);}map[_d1.mid]=_2f[mid];_33(_d1);delete _2f[_d1.mid];});_d0.loadQ=0;var _d5=function(_d6){for(var _d7,_d8=_d6.deps||[],i=0;i<_d8.length;i++){_d7=map[_d8[i].mid];if(_d7){_d8[i]=_d7;}}};for(var p in _2f){_d5(_2f[p]);}_9(_30,_d5);},_35=function(_d9){req.trace("loader-finish-exec",[_d9.mid]);_d9.executed=_24;_d9.defOrder=_cc++;1&&_9(_d9.provides,function(cb){cb();});if(_d9.loadQ){_bc(_d9);_cf(_d9);}for(i=0;i<_30.length;){if(_30[i]===_d9){_30.splice(i,1);}else{i++;}}},_da=[],_36=function(_db,_dc){if(_db.executed===_23){req.trace("loader-circular-dependency",[_da.concat(mid).join("->")]);return (!_db.def||_dc)?_cb:(_db.cjs&&_db.cjs.exports);}if(!_db.executed){if(!_db.def){return _cb;}var mid=_db.mid,_dd=_db.deps||[],arg,_de,_df=[],i=0;if(0){_da.push(mid);req.trace("loader-exec-module",["exec",_da.length,mid]);}_db.executed=_23;while(i<_dd.length){arg=_dd[i++];_de=((arg===_c3)?_5d(_db):((arg===_c4)?_db.cjs.exports:((arg===_c5)?_db.cjs:_36(arg,_dc))));if(_de===_cb){_db.executed=0;req.trace("loader-exec-module",["abort",mid]);0&&_da.pop();return _cb;}_df.push(_de);}_c6(_db,_df);_35(_db);}0&&_da.pop();return _db.result;},_76=0,_7a=function(){if(_76){return;}_76++;_29();for(var _e0,_e1,i=0;i<_30.length;){_e0=_cc;_e1=_30[i];_36(_e1);if(_e0!=_cc){_29();i=0;}else{i++;}}_37();},_37=function(){_76--;if(_90()){_34("idle",[]);}};if(0){req.undef=function(_e2,_e3){var _e4=_31(_e2,_e3);_33(_e4);delete _2f[_e4.mid];};}if(1){if(has("dojo-loader-eval-hint-url")===undefined){has.add("dojo-loader-eval-hint-url",1);}var _40=function(url){url+="";return url+(_53?((/\?/.test(url)?"&":"?")+_53):"");},_e5=function(_e6){var _e7=_e6.plugin;if(_e7.executed===_24&&!_e7.load){_bc(_e7);}var _e8=function(def){_e6.result=def;_33(_e6);_35(_e6);_7a();};if(_e7.load){_e7.load(_e6.prid,_e6.req,_e8);}else{if(_e7.loadQ){_e7.loadQ.push(_e6);}else{_e7.loadQ=[_e6];_30.unshift(_e7);_32(_e7);}}},_88=0,_7b=0,_e9=0,_89=function(_ea,_eb){_e9=1;if(has("config-dojo-loader-catches")){try{if(_ea===_88){_88.call(null);}else{req.eval(_ea,has("dojo-loader-eval-hint-url")?_eb.url:_eb.mid);}}catch(e){_34(_45,_f("evalModuleThrew",_eb));}}else{if(_ea===_88){_88.call(null);}else{req.eval(_ea,has("dojo-loader-eval-hint-url")?_eb.url:_eb.mid);}}_e9=0;},_32=function(_ec){var mid=_ec.mid,url=_ec.url;if(_ec.executed||_ec.injected||_8b[mid]||(_ec.url&&((_ec.pack&&_8b[_ec.url]===_ec.pack)||_8b[_ec.url]==1))){return;}_8c(_ec);if(0){var _ed=0;if(_ec.plugin&&_ec.plugin.isCombo){req.combo.add(_ec.plugin.mid,_ec.prid,0,req);_ed=1;}else{if(!_ec.plugin){_ed=req.combo.add(0,_ec.mid,_ec.url,req);}}if(_ed){_71=1;return;}}if(_ec.plugin){_e5(_ec);return;}var _ee=function(){_79(_ec);if(_ec.injected!==_21){_33(_ec);_c(_ec,_c1);}if(1&&_25){!_27.length&&_7a();}else{_7a();}};_88=_54[mid]||_54[_ec.cacheId];if(_88){req.trace("loader-inject",["cache",_ec.mid,url]);_89(_88,_ec);_ee();return;}if(1&&_25){if(_ec.isXd){_25==_26&&(_25=xd);}else{if(_ec.isAmd&&_25!=_26){}else{var _ef=function(_f0){if(_25==_26){_27.unshift(_ec);_89(_f0,_ec);_27.shift();_79(_ec);if(!_ec.cjs){_33(_ec);_35(_ec);}if(_ec.finish){var _f1=mid+"*finish",_f2=_ec.finish;delete _ec.finish;def(_f1,["dojo",("dojo/require!"+_f2.join(",")).replace(/\./g,"/")],function(_f3){_9(_f2,function(mid){_f3.require(mid);});});_30.unshift(_31(_f1));}_ee();}else{_f0=_2a(_ec,_f0);if(_f0){_89(_f0,_ec);_ee();}else{_7b=_ec;req.injectUrl(_40(url),_ee,_ec);_7b=0;}}};req.trace("loader-inject",["xhr",_ec.mid,url,_25!=_26]);if(has("config-dojo-loader-catches")){try{req.getText(url,_25!=_26,_ef);}catch(e){_34(_45,_f("xhrInjectFailed",[_ec,e]));}}else{req.getText(url,_25!=_26,_ef);}return;}}}req.trace("loader-inject",["script",_ec.mid,url]);_7b=_ec;req.injectUrl(_40(url),_ee,_ec);_7b=0;},_f4=function(_f5,_f6,def){req.trace("loader-define-module",[_f5.mid,_f6]);if(0&&_f5.plugin&&_f5.plugin.isCombo){_f5.result=_6(def)?def():def;_33(_f5);_35(_f5);return _f5;}var mid=_f5.mid;if(_f5.injected===_21){_34(_45,_f("multipleDefine",_f5));return _f5;}_c(_f5,{deps:_f6,def:def,cjs:{id:_f5.mid,uri:_f5.url,exports:(_f5.result={}),setExports:function(_f7){_f5.cjs.exports=_f7;}}});for(var i=0;i<_f6.length;i++){_f6[i]=_31(_f6[i],_f5);}if(1&&_25&&!_8b[mid]){_74(_f5);_30.push(_f5);_7a();}_33(_f5);if(!_6(def)&&!_f6.length){_f5.result=def;_35(_f5);}return _f5;},_79=function(_f8,_f9){var _fa=[],_fb,_fc;while(_8a.length){_fc=_8a.shift();_f9&&(_fc[0]=_f9.shift());_fb=(_fc[0]&&_31(_fc[0]))||_f8;_fa.push([_fb,_fc[1],_fc[2]]);}_57(_f8);_9(_fa,function(_fd){_74(_f4.apply(null,_fd));});};}var _fe=0,_8f=_3,_ff=_3;if(1){_8f=function(){_fe&&clearTimeout(_fe);_fe=0;},_ff=function(){_8f();req.waitms&&(_fe=setTimeout(function(){_8f();_34(_45,_f("timeout",_8b));},req.waitms));};}if(1){has.add("ie-event-behavior",doc.attachEvent&&(typeof opera==="undefined"||opera.toString()!="[object Opera]"));}if(1&&(1||1)){var _100=function(node,_101,_102,_103){if(!has("ie-event-behavior")){node.addEventListener(_101,_103,false);return function(){node.removeEventListener(_101,_103,false);};}else{node.attachEvent(_102,_103);return function(){node.detachEvent(_102,_103);};}},_104=_100(window,"load","onload",function(){req.pageLoaded=1;doc.readyState!="complete"&&(doc.readyState="complete");_104();});if(1){var _105=doc.getElementsByTagName("script")[0],_106=_105.parentNode;req.injectUrl=function(url,_107,_108){_ff();var node=_108.node=doc.createElement("script"),_109=function(e){e=e||window.event;var node=e.target||e.srcElement;if(e.type==="load"||/complete|loaded/.test(node.readyState)){_10a();_107&&_107();}},_10a=_100(node,"load","onreadystatechange",_109);node.type="text/javascript";node.charset="utf-8";node.src=url;_106.insertBefore(node,_105);return node;};}}if(1){req.log=function(){try{for(var i=0;i<arguments.length;i++){}}catch(e){}};}else{req.log=_3;}if(0){var _10b=req.trace=function(_10c,args){if(_10b.on&&_10b.group[_10c]){_34("trace",[_10c,args]);for(var arg,dump=[],text="trace:"+_10c+(args.length?(":"+args[0]):""),i=1;i<args.length;){arg=args[i++];if(_7(arg)){text+=", "+arg;}else{dump.push(arg);}}req.log(text);dump.length&&dump.push(".");req.log.apply(req,dump);}};_c(_10b,{on:1,group:{},set:function(_10d,_10e){if(_7(_10d)){_10b.group[_10d]=_10e;}else{_c(_10b.group,_10d);}}});_10b.set(_c(_c(_c({},_2.trace),_1.trace),_56.trace));on("config",function(_10f){_10f.trace&&_10b.set(_10f.trace);});}else{req.trace=_3;}var def=function(mid,_110,_111){var _112=arguments.length,args=0,_113=["require","exports","module"];if(0){if(_112==1&&_6(mid)){_110=[];mid.toString().replace(/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,"").replace(/require\(["']([\w\!\-_\.\/]+)["']\)/g,function(_114,dep){_110.push(dep);});args=[0,_113.concat(_110),mid];}}if(!args){args=_112==1?[0,_113,mid]:(_112==2?(_8(mid)?[0,mid,_110]:(_6(_110)?[mid,_113,_110]:[mid,[],_110])):[mid,_110,_111]);}req.trace("loader-define",args.slice(0,2));var _115=args[0]&&_31(args[0]),_116;if(_115&&!_8b[_115.mid]){_74(_f4(_115,args[1],args[2]));}else{if(!has("ie-event-behavior")||!1||_e9){_8a.push(args);}else{_115=_115||_7b;if(!_115){for(mid in _8b){_116=_2f[mid];if(_116&&_116.node&&_116.node.readyState==="interactive"){_115=_116;break;}}if(0&&!_115){for(var i=0;i<_72.length;i++){_115=_72[i];if(_115.node&&_115.node.readyState==="interactive"){break;}_115=0;}}}if(0&&_8(_115)){_74(_f4(_31(_115.shift()),args[1],args[2]));if(!_115.length){_72.splice(i,1);}}else{if(_115){_57(_115);_74(_f4(_115,args[1],args[2]));}else{_34(_45,_f("ieDefineFailed",args[0]));}}_7a();}}};def.amd={vendor:"dojotoolkit.org"};if(0){req.def=def;}_c(_c(req,_2.loaderPatch),_1.loaderPatch);on(_45,function(arg){try{console.error(arg);if(arg instanceof Error){for(var p in arg){}}}catch(e){}});_c(req,{uid:uid,cache:_54,packs:_50});if(0){_c(req,{paths:_4e,aliases:_4d,packageMap:_51,modules:_2f,legacyMode:_25,execQ:_30,defQ:_8a,waiting:_8b,pathsMapProg:_4f,packageMapProg:_52,listenerQueues:_44,computeMapProg:_5e,runMapProg:_91,compactPath:_93,getModuleInfo:_9a});}if(_17.define){if(1){_34(_45,_f("defineAlreadyDefined",0));}}else{_17.define=def;_17.require=req;}if(0&&req.combo&&req.combo.plugins){var _117=req.combo.plugins,_118;for(_118 in _117){_c(_c(_31(_118),_117[_118]),{isCombo:1,executed:"executed",load:1});}}if(1){var _119=_56.deps||_1.deps||_2.deps,_11a=_56.callback||_1.callback||_2.callback;req.boot=(_119||_11a)?[_119||[],_11a]:0;}if(!1){!req.async&&req(["dojo"]);req.boot&&req.apply(null,req.boot);}})(this.dojoConfig||this.djConfig||this.require||{},{async:0,hasCache:{"config-selectorEngine":"acme","config-tlmSiblingOfDojo":1,"dojo-built":1,"dojo-loader":1,dom:1,"host-browser":1},packages:[{location:"../dijit",name:"dijit"},{location:".",name:"dojo"}]});require({cache:{"dojo/_base/fx":function(){define(["./kernel","./lang","../Evented","./Color","./connect","./sniff","../dom","../dom-style"],function(dojo,lang,_11b,_11c,_11d,has,dom,_11e){var _11f=lang.mixin;dojo._Line=function(_120,end){this.start=_120;this.end=end;};dojo._Line.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};dojo.Animation=function(args){_11f(this,args);if(lang.isArray(this.curve)){this.curve=new dojo._Line(this.curve[0],this.curve[1]);}};dojo.Animation.prototype=new _11b();dojo._Animation=dojo.Animation;lang.extend(dojo.Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _121=this._percent,_122=this.easing;return _122?_122(_121):_121;},_fire:function(evt,args){var a=args||[];if(this[evt]){if(dojo.config.debugAtAllCosts){this[evt].apply(this,a);}else{try{this[evt].apply(this,a);}catch(e){console.error("exception in animation handler for:",evt);console.error(e);}}}return this;},play:function(_123,_124){var _125=this;if(_125._delayTimer){_125._clearTimer();}if(_124){_125._stopTimer();_125._active=_125._paused=false;_125._percent=0;}else{if(_125._active&&!_125._paused){return _125;}}_125._fire("beforeBegin",[_125.node]);var de=_123||_125.delay,_126=lang.hitch(_125,"_play",_124);if(de>0){_125._delayTimer=setTimeout(_126,de);return _125;}_126();return _125;},_play:function(_127){var _128=this;if(_128._delayTimer){_128._clearTimer();}_128._startTime=new Date().valueOf();if(_128._paused){_128._startTime-=_128.duration*_128._percent;}_128._active=true;_128._paused=false;var _129=_128.curve.getValue(_128._getStep());if(!_128._percent){if(!_128._startRepeatCount){_128._startRepeatCount=_128.repeat;}_128._fire("onBegin",[_129]);}_128._fire("onPlay",[_129]);_128._cycle();return _128;},pause:function(){var _12a=this;if(_12a._delayTimer){_12a._clearTimer();}_12a._stopTimer();if(!_12a._active){return _12a;}_12a._paused=true;_12a._fire("onPause",[_12a.curve.getValue(_12a._getStep())]);return _12a;},gotoPercent:function(_12b,_12c){var _12d=this;_12d._stopTimer();_12d._active=_12d._paused=true;_12d._percent=_12b;if(_12c){_12d.play();}return _12d;},stop:function(_12e){var _12f=this;if(_12f._delayTimer){_12f._clearTimer();}if(!_12f._timer){return _12f;}_12f._stopTimer();if(_12e){_12f._percent=1;}_12f._fire("onStop",[_12f.curve.getValue(_12f._getStep())]);_12f._active=_12f._paused=false;return _12f;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _130=this;if(_130._active){var curr=new Date().valueOf();var step=(curr-_130._startTime)/(_130.duration);if(step>=1){step=1;}_130._percent=step;if(_130.easing){step=_130.easing(step);}_130._fire("onAnimate",[_130.curve.getValue(step)]);if(_130._percent<1){_130._startTimer();}else{_130._active=false;if(_130.repeat>0){_130.repeat--;_130.play(null,true);}else{if(_130.repeat==-1){_130.play(null,true);}else{if(_130._startRepeatCount){_130.repeat=_130._startRepeatCount;_130._startRepeatCount=0;}}}_130._percent=0;_130._fire("onEnd",[_130.node]);!_130.repeat&&_130._stopTimer();}}return _130;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_131=null,_132={run:function(){}};lang.extend(dojo.Animation,{_startTimer:function(){if(!this._timer){this._timer=_11d.connect(_132,"run",this,"_cycle");ctr++;}if(!_131){_131=setInterval(lang.hitch(_132,"run"),this.rate);}},_stopTimer:function(){if(this._timer){_11d.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_131);_131=null;ctr=0;}}});var _133=has("ie")?function(node){var ns=node.style;if(!ns.width.length&&_11e.get(node,"width")=="auto"){ns.width="auto";}}:function(){};dojo._fade=function(args){args.node=dom.byId(args.node);var _134=_11f({properties:{}},args),_135=(_134.properties.opacity={});_135.start=!("start" in _134)?function(){return +_11e.get(_134.node,"opacity")||0;}:_134.start;_135.end=_134.end;var anim=dojo.animateProperty(_134);_11d.connect(anim,"beforeBegin",lang.partial(_133,_134.node));return anim;};dojo.fadeIn=function(args){return dojo._fade(_11f({end:1},args));};dojo.fadeOut=function(args){return dojo._fade(_11f({end:0},args));};dojo._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _136=function(_137){this._properties=_137;for(var p in _137){var prop=_137[p];if(prop.start instanceof _11c){prop.tempColor=new _11c();}}};_136.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_138=prop.start;if(_138 instanceof _11c){ret[p]=_11c.blendColors(_138,prop.end,r,prop.tempColor).toCss();}else{if(!lang.isArray(_138)){ret[p]=((prop.end-_138)*r)+_138+(p!="opacity"?prop.units||"px":0);}}}return ret;};dojo.animateProperty=function(args){var n=args.node=dom.byId(args.node);if(!args.easing){args.easing=dojo._defaultEasing;}var anim=new dojo.Animation(args);_11d.connect(anim,"beforeBegin",anim,function(){var pm={};for(var p in this.properties){if(p=="width"||p=="height"){this.node.display="block";}var prop=this.properties[p];if(lang.isFunction(prop)){prop=prop(n);}prop=pm[p]=_11f({},(lang.isObject(prop)?prop:{end:prop}));if(lang.isFunction(prop.start)){prop.start=prop.start(n);}if(lang.isFunction(prop.end)){prop.end=prop.end(n);}var _139=(p.toLowerCase().indexOf("color")>=0);function _13a(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return v;}v=_11e.get(node,p);return (p=="opacity")?+v:(_139?v:parseFloat(v));};if(!("end" in prop)){prop.end=_13a(n,p);}else{if(!("start" in prop)){prop.start=_13a(n,p);}}if(_139){prop.start=new _11c(prop.start);prop.end=new _11c(prop.end);}else{prop.start=(p=="opacity")?+prop.start:parseFloat(prop.start);}}this.curve=new _136(pm);});_11d.connect(anim,"onAnimate",lang.hitch(_11e,"set",anim.node));return anim;};dojo.anim=function(node,_13b,_13c,_13d,_13e,_13f){return dojo.animateProperty({node:node,duration:_13c||dojo.Animation.prototype.duration,properties:_13b,easing:_13d,onEnd:_13e}).play(_13f||0);};return {_Line:dojo._Line,Animation:dojo.Animation,_fade:dojo._fade,fadeIn:dojo.fadeIn,fadeOut:dojo.fadeOut,_defaultEasing:dojo._defaultEasing,animateProperty:dojo.animateProperty,anim:dojo.anim};});},"dojo/dom-form":function(){define("dojo/dom-form",["./_base/lang","./dom","./io-query","./json"],function(lang,dom,ioq,json){function _140(obj,name,_141){if(_141===null){return;}var val=obj[name];if(typeof val=="string"){obj[name]=[val,_141];}else{if(lang.isArray(val)){val.push(_141);}else{obj[name]=_141;}}};var _142="file|submit|image|reset|button";var form={fieldToObject:function fieldToObject(_143){var ret=null;_143=dom.byId(_143);if(_143){var _144=_143.name,type=(_143.type||"").toLowerCase();if(_144&&type&&!_143.disabled){if(type=="radio"||type=="checkbox"){if(_143.checked){ret=_143.value;}}else{if(_143.multiple){ret=[];var _145=[_143.firstChild];while(_145.length){for(var node=_145.pop();node;node=node.nextSibling){if(node.nodeType==1&&node.tagName.toLowerCase()=="option"){if(node.selected){ret.push(node.value);}}else{if(node.nextSibling){_145.push(node.nextSibling);}if(node.firstChild){_145.push(node.firstChild);}break;}}}}else{ret=_143.value;}}}}return ret;},toObject:function formToObject(_146){var ret={},_147=dom.byId(_146).elements;for(var i=0,l=_147.length;i<l;++i){var item=_147[i],_148=item.name,type=(item.type||"").toLowerCase();if(_148&&type&&_142.indexOf(type)<0&&!item.disabled){_140(ret,_148,form.fieldToObject(item));if(type=="image"){ret[_148+".x"]=ret[_148+".y"]=ret[_148].x=ret[_148].y=0;}}}return ret;},toQuery:function formToQuery(_149){return ioq.objectToQuery(form.toObject(_149));},toJson:function formToJson(_14a,_14b){return json.stringify(form.toObject(_14a),null,_14b?4:0);}};return form;});},"dojo/_base/html":function(){define(["./kernel","../dom","../dom-style","../dom-attr","../dom-prop","../dom-class","../dom-construct","../dom-geometry"],function(dojo,dom,_14c,attr,prop,cls,ctr,geom){dojo.byId=dom.byId;dojo.isDescendant=dom.isDescendant;dojo.setSelectable=dom.setSelectable;dojo.getAttr=attr.get;dojo.setAttr=attr.set;dojo.hasAttr=attr.has;dojo.removeAttr=attr.remove;dojo.getNodeProp=attr.getNodeProp;dojo.attr=function(node,name,_14d){if(arguments.length==2){return attr[typeof name=="string"?"get":"set"](node,name);}return attr.set(node,name,_14d);};dojo.hasClass=cls.contains;dojo.addClass=cls.add;dojo.removeClass=cls.remove;dojo.toggleClass=cls.toggle;dojo.replaceClass=cls.replace;dojo._toDom=dojo.toDom=ctr.toDom;dojo.place=ctr.place;dojo.create=ctr.create;dojo.empty=function(node){ctr.empty(node);};dojo._destroyElement=dojo.destroy=function(node){ctr.destroy(node);};dojo._getPadExtents=dojo.getPadExtents=geom.getPadExtents;dojo._getBorderExtents=dojo.getBorderExtents=geom.getBorderExtents;dojo._getPadBorderExtents=dojo.getPadBorderExtents=geom.getPadBorderExtents;dojo._getMarginExtents=dojo.getMarginExtents=geom.getMarginExtents;dojo._getMarginSize=dojo.getMarginSize=geom.getMarginSize;dojo._getMarginBox=dojo.getMarginBox=geom.getMarginBox;dojo.setMarginBox=geom.setMarginBox;dojo._getContentBox=dojo.getContentBox=geom.getContentBox;dojo.setContentSize=geom.setContentSize;dojo._isBodyLtr=dojo.isBodyLtr=geom.isBodyLtr;dojo._docScroll=dojo.docScroll=geom.docScroll;dojo._getIeDocumentElementOffset=dojo.getIeDocumentElementOffset=geom.getIeDocumentElementOffset;dojo._fixIeBiDiScrollLeft=dojo.fixIeBiDiScrollLeft=geom.fixIeBiDiScrollLeft;dojo.position=geom.position;dojo.marginBox=function marginBox(node,box){return box?geom.setMarginBox(node,box):geom.getMarginBox(node);};dojo.contentBox=function contentBox(node,box){return box?geom.setContentSize(node,box):geom.getContentBox(node);};dojo.coords=function(node,_14e){dojo.deprecated("dojo.coords()","Use dojo.position() or dojo.marginBox().");node=dom.byId(node);var s=_14c.getComputedStyle(node),mb=geom.getMarginBox(node,s);var abs=geom.position(node,_14e);mb.x=abs.x;mb.y=abs.y;return mb;};dojo.getProp=prop.get;dojo.setProp=prop.set;dojo.prop=function(node,name,_14f){if(arguments.length==2){return prop[typeof name=="string"?"get":"set"](node,name);}return prop.set(node,name,_14f);};dojo.getStyle=_14c.get;dojo.setStyle=_14c.set;dojo.getComputedStyle=_14c.getComputedStyle;dojo.__toPixelValue=dojo.toPixelValue=_14c.toPixelValue;dojo.style=function(node,name,_150){switch(arguments.length){case 1:return _14c.get(node);case 2:return _14c[typeof name=="string"?"get":"set"](node,name);}return _14c.set(node,name,_150);};return dojo;});},"dojo/_base/kernel":function(){define(["../has","./config","require","module"],function(has,_151,_152,_153){var i,p,_154={},_155={},dojo={config:_151,global:this,dijit:_154,dojox:_155};var _156={dojo:["dojo",dojo],dijit:["dijit",_154],dojox:["dojox",_155]},_157=(_152.packs&&_152.packs[_153.id.match(/[^\/]+/)[0]].packageMap)||{},item;for(p in _157){if(_156[p]){_156[p][0]=_157[p];}else{_156[p]=[_157[p],{}];}}for(p in _156){item=_156[p];item[1]._scopeName=item[0];if(!_151.noGlobals){this[item[0]]=item[1];}}dojo.scopeMap=_156;dojo.baseUrl=dojo.config.baseUrl=_152.baseUrl;dojo.isAsync=!1||_152.async;dojo.locale=_151.locale;var rev="$Rev: 28982 $".match(/\d+/);dojo.version={major:1,minor:7,patch:3,flag:"",revision:rev?+rev[0]:NaN,toString:function(){var v=dojo.version;return v.major+"."+v.minor+"."+v.patch+v.flag+" ("+v.revision+")";}};true||has.add("extend-dojo",1);dojo.eval=function(_158){};(Function("d","d.eval = function(){return d.global.eval ? d.global.eval(arguments[0]) : eval(arguments[0]);}"))(dojo);if(0){dojo.exit=function(_159){quit(_159);};}else{dojo.exit=function(){};}true||has.add("dojo-guarantee-console",1);if(1){typeof console!="undefined"||(console={});var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var tn;i=0;while((tn=cn[i++])){if(!console[tn]){(function(){var tcn=tn+"";console[tcn]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(tcn+":");console["log"](a.join(" "));}:function(){};console[tcn]._fake=true;})();}}}has.add("dojo-debug-messages",!!_151.isDebug);if(has("dojo-debug-messages")){dojo.deprecated=function(_15a,_15b,_15c){var _15d="DEPRECATED: "+_15a;if(_15b){_15d+=" "+_15b;}if(_15c){_15d+=" -- will be removed in version: "+_15c;}console.warn(_15d);};dojo.experimental=function(_15e,_15f){var _160="EXPERIMENTAL: "+_15e+" -- APIs subject to change without notice.";if(_15f){_160+=" "+_15f;}console.warn(_160);};}else{dojo.deprecated=dojo.experimental=function(){};}true||has.add("dojo-modulePaths",1);if(1){if(_151.modulePaths){dojo.deprecated("dojo.modulePaths","use paths configuration");var _161={};for(p in _151.modulePaths){_161[p.replace(/\./g,"/")]=_151.modulePaths[p];}_152({paths:_161});}}true||has.add("dojo-moduleUrl",1);if(1){dojo.moduleUrl=function(_162,url){dojo.deprecated("dojo.moduleUrl()","use require.toUrl","2.0");var _163=null;if(_162){_163=_152.toUrl(_162.replace(/\./g,"/")+(url?("/"+url):"")+"/*.*").replace(/\/\*\.\*/,"")+(url?"":"/");}return _163;};}dojo._hasResource={};return dojo;});},"dojo/io-query":function(){define(["./_base/lang"],function(lang){var _164={};function _165(map){var enc=encodeURIComponent,_166=[];for(var name in map){var _167=map[name];if(_167!=_164[name]){var _168=enc(name)+"=";if(lang.isArray(_167)){for(var i=0,l=_167.length;i<l;++i){_166.push(_168+enc(_167[i]));}}else{_166.push(_168+enc(_167));}}}return _166.join("&");};function _169(str){var dec=decodeURIComponent,qp=str.split("&"),ret={},name,val;for(var i=0,l=qp.length,item;i<l;++i){item=qp[i];if(item.length){var s=item.indexOf("=");if(s<0){name=dec(item);val="";}else{name=dec(item.slice(0,s));val=dec(item.slice(s+1));}if(typeof ret[name]=="string"){ret[name]=[ret[name]];}if(lang.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}}return ret;};return {objectToQuery:_165,queryToObject:_169};});},"dojo/_base/Deferred":function(){define("dojo/_base/Deferred",["./kernel","./lang"],function(dojo,lang){var _16a=function(){};var _16b=Object.freeze||function(){};dojo.Deferred=function(_16c){var _16d,_16e,_16f,head,_170;var _171=(this.promise={});function _172(_173){if(_16e){throw new Error("This deferred has already been resolved");}_16d=_173;_16e=true;_174();};function _174(){var _175;while(!_175&&_170){var _176=_170;_170=_170.next;if((_175=(_176.progress==_16a))){_16e=false;}var func=(_16f?_176.error:_176.resolved);if(func){try{var _177=func(_16d);if(_177&&typeof _177.then==="function"){_177.then(lang.hitch(_176.deferred,"resolve"),lang.hitch(_176.deferred,"reject"),lang.hitch(_176.deferred,"progress"));continue;}var _178=_175&&_177===undefined;if(_175&&!_178){_16f=_177 instanceof Error;}_176.deferred[_178&&_16f?"reject":"resolve"](_178?_16d:_177);}catch(e){_176.deferred.reject(e);}}else{if(_16f){_176.deferred.reject(_16d);}else{_176.deferred.resolve(_16d);}}}};this.resolve=this.callback=function(_179){this.fired=0;this.results=[_179,null];_172(_179);};this.reject=this.errback=function(_17a){_16f=true;this.fired=1;_172(_17a);this.results=[null,_17a];if(!_17a||_17a.log!==false){(dojo.config.deferredOnError||function(x){console.error(x);})(_17a);}};this.progress=function(_17b){var _17c=_170;while(_17c){var _17d=_17c.progress;_17d&&_17d(_17b);_17c=_17c.next;}};this.addCallbacks=function(_17e,_17f){this.then(_17e,_17f,_16a);return this;};_171.then=this.then=function(_180,_181,_182){var _183=_182==_16a?this:new dojo.Deferred(_171.cancel);var _184={resolved:_180,error:_181,progress:_182,deferred:_183};if(_170){head=head.next=_184;}else{_170=head=_184;}if(_16e){_174();}return _183.promise;};var _185=this;_171.cancel=this.cancel=function(){if(!_16e){var _186=_16c&&_16c(_185);if(!_16e){if(!(_186 instanceof Error)){_186=new Error(_186);}_186.log=false;_185.reject(_186);}}};_16b(_171);};lang.extend(dojo.Deferred,{addCallback:function(_187){return this.addCallbacks(lang.hitch.apply(dojo,arguments));},addErrback:function(_188){return this.addCallbacks(null,lang.hitch.apply(dojo,arguments));},addBoth:function(_189){var _18a=lang.hitch.apply(dojo,arguments);return this.addCallbacks(_18a,_18a);},fired:-1});dojo.Deferred.when=dojo.when=function(_18b,_18c,_18d,_18e){if(_18b&&typeof _18b.then==="function"){return _18b.then(_18c,_18d,_18e);}return _18c?_18c(_18b):_18b;};return dojo.Deferred;});},"dojo/NodeList-dom":function(){define(["./_base/kernel","./query","./_base/array","./_base/lang","./dom-class","./dom-construct","./dom-geometry","./dom-attr","./dom-style"],function(dojo,_18f,_190,lang,_191,_192,_193,_194,_195){var _196=function(a){return a.length==1&&(typeof a[0]=="string");};var _197=function(node){var p=node.parentNode;if(p){p.removeChild(node);}};var _198=_18f.NodeList,awc=_198._adaptWithCondition,aafe=_198._adaptAsForEach,aam=_198._adaptAsMap;function _199(_19a){return function(node,name,_19b){if(arguments.length==2){return _19a[typeof name=="string"?"get":"set"](node,name);}return _19a.set(node,name,_19b);};};lang.extend(_198,{_normalize:function(_19c,_19d){var _19e=_19c.parse===true;if(typeof _19c.template=="string"){var _19f=_19c.templateFunc||(dojo.string&&dojo.string.substitute);_19c=_19f?_19f(_19c.template,_19c):_19c;}var type=(typeof _19c);if(type=="string"||type=="number"){_19c=_192.toDom(_19c,(_19d&&_19d.ownerDocument));if(_19c.nodeType==11){_19c=lang._toArray(_19c.childNodes);}else{_19c=[_19c];}}else{if(!lang.isArrayLike(_19c)){_19c=[_19c];}else{if(!lang.isArray(_19c)){_19c=lang._toArray(_19c);}}}if(_19e){_19c._runParse=true;}return _19c;},_cloneNode:function(node){return node.cloneNode(true);},_place:function(ary,_1a0,_1a1,_1a2){if(_1a0.nodeType!=1&&_1a1=="only"){return;}var _1a3=_1a0,_1a4;var _1a5=ary.length;for(var i=_1a5-1;i>=0;i--){var node=(_1a2?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!_1a4){_1a4=_1a3.ownerDocument.createElement("div");}_1a4.appendChild(node);dojo.parser.parse(_1a4);node=_1a4.firstChild;while(_1a4.firstChild){_1a4.removeChild(_1a4.firstChild);}}if(i==_1a5-1){_192.place(node,_1a3,_1a1);}else{_1a3.parentNode.insertBefore(node,_1a3);}_1a3=node;}},attr:awc(_199(_194),_196),style:awc(_199(_195),_196),addClass:aafe(_191.add),removeClass:aafe(_191.remove),replaceClass:aafe(_191.replace),toggleClass:aafe(_191.toggle),empty:aafe(_192.empty),removeAttr:aafe(_194.remove),position:aam(_193.position),marginBox:aam(_193.getMarginBox),place:function(_1a6,_1a7){var item=_18f(_1a6)[0];return this.forEach(function(node){_192.place(node,item,_1a7);});},orphan:function(_1a8){return (_1a8?_18f._filterResult(this,_1a8):this).forEach(_197);},adopt:function(_1a9,_1aa){return _18f(_1a9).place(this[0],_1aa)._stash(this);},query:function(_1ab){if(!_1ab){return this;}var ret=new _198;this.map(function(node){_18f(_1ab,node).forEach(function(_1ac){if(_1ac!==undefined){ret.push(_1ac);}});});return ret._stash(this);},filter:function(_1ad){var a=arguments,_1ae=this,_1af=0;if(typeof _1ad=="string"){_1ae=_18f._filterResult(this,a[0]);if(a.length==1){return _1ae._stash(this);}_1af=1;}return this._wrap(_190.filter(_1ae,a[_1af],a[_1af+1]),this);},addContent:function(_1b0,_1b1){_1b0=this._normalize(_1b0,this[0]);for(var i=0,node;(node=this[i]);i++){this._place(_1b0,node,_1b1,i>0);}return this;}});return _198;});},"dojo/query":function(){define(["./_base/kernel","./has","./dom","./on","./_base/array","./_base/lang","./selector/_loader","./selector/_loader!default"],function(dojo,has,dom,on,_1b2,lang,_1b3,_1b4){"use strict";has.add("array-extensible",function(){return lang.delegate([],{length:1}).length==1&&!has("bug-for-in-skips-shadowed");});var ap=Array.prototype,aps=ap.slice,apc=ap.concat,_1b5=_1b2.forEach;var tnl=function(a,_1b6,_1b7){var _1b8=new (_1b7||this._NodeListCtor||nl)(a);return _1b6?_1b8._stash(_1b6):_1b8;};var _1b9=function(f,a,o){a=[0].concat(aps.call(a,0));o=o||dojo.global;return function(node){a[0]=node;return f.apply(o,a);};};var _1ba=function(f,o){return function(){this.forEach(_1b9(f,arguments,o));return this;};};var _1bb=function(f,o){return function(){return this.map(_1b9(f,arguments,o));};};var _1bc=function(f,o){return function(){return this.filter(_1b9(f,arguments,o));};};var _1bd=function(f,g,o){return function(){var a=arguments,body=_1b9(f,a,o);if(g.call(o||dojo.global,a)){return this.map(body);}this.forEach(body);return this;};};var _1be=function(_1bf){var _1c0=this instanceof nl&&has("array-extensible");if(typeof _1bf=="number"){_1bf=Array(_1bf);}var _1c1=(_1bf&&"length" in _1bf)?_1bf:arguments;if(_1c0||!_1c1.sort){var _1c2=_1c0?this:[],l=_1c2.length=_1c1.length;for(var i=0;i<l;i++){_1c2[i]=_1c1[i];}if(_1c0){return _1c2;}_1c1=_1c2;}lang._mixin(_1c1,nlp);_1c1._NodeListCtor=function(_1c3){return nl(_1c3);};return _1c1;};var nl=_1be,nlp=nl.prototype=has("array-extensible")?[]:{};nl._wrap=nlp._wrap=tnl;nl._adaptAsMap=_1bb;nl._adaptAsForEach=_1ba;nl._adaptAsFilter=_1bc;nl._adaptWithCondition=_1bd;_1b5(["slice","splice"],function(name){var f=ap[name];nlp[name]=function(){return this._wrap(f.apply(this,arguments),name=="slice"?this:null);};});_1b5(["indexOf","lastIndexOf","every","some"],function(name){var f=_1b2[name];nlp[name]=function(){return f.apply(dojo,[this].concat(aps.call(arguments,0)));};});lang.extend(_1be,{constructor:nl,_NodeListCtor:nl,toString:function(){return this.join(",");},_stash:function(_1c4){this._parent=_1c4;return this;},on:function(_1c5,_1c6){var _1c7=this.map(function(node){return on(node,_1c5,_1c6);});_1c7.remove=function(){for(var i=0;i<_1c7.length;i++){_1c7[i].remove();}};return _1c7;},end:function(){if(this._parent){return this._parent;}else{return new this._NodeListCtor(0);}},concat:function(item){var t=lang.isArray(this)?this:aps.call(this,0),m=_1b2.map(arguments,function(a){return a&&!lang.isArray(a)&&(typeof _1be!="undefined"&&a.constructor===_1be||a.constructor===this._NodeListCtor)?aps.call(a,0):a;});return this._wrap(apc.apply(t,m),this);},map:function(func,obj){return this._wrap(_1b2.map(this,func,obj),this);},forEach:function(_1c8,_1c9){_1b5(this,_1c8,_1c9);return this;},filter:function(_1ca){var a=arguments,_1cb=this,_1cc=0;if(typeof _1ca=="string"){_1cb=_1cd._filterResult(this,a[0]);if(a.length==1){return _1cb._stash(this);}_1cc=1;}return this._wrap(_1b2.filter(_1cb,a[_1cc],a[_1cc+1]),this);},instantiate:function(_1ce,_1cf){var c=lang.isFunction(_1ce)?_1ce:lang.getObject(_1ce);_1cf=_1cf||{};return this.forEach(function(node){new c(_1cf,node);});},at:function(){var t=new this._NodeListCtor(0);_1b5(arguments,function(i){if(i<0){i=this.length+i;}if(this[i]){t.push(this[i]);}},this);return t._stash(this);}});function _1d0(_1d1,_1d2){var _1d3=function(_1d4,root){if(typeof root=="string"){root=dom.byId(root);if(!root){return new _1d2([]);}}var _1d5=typeof _1d4=="string"?_1d1(_1d4,root):_1d4.orphan?_1d4:[_1d4];if(_1d5.orphan){return _1d5;}return new _1d2(_1d5);};_1d3.matches=_1d1.match||function(node,_1d6,root){return _1d3.filter([node],_1d6,root).length>0;};_1d3.filter=_1d1.filter||function(_1d7,_1d8,root){return _1d3(_1d8,root).filter(function(node){return _1b2.indexOf(_1d7,node)>-1;});};if(typeof _1d1!="function"){var _1d9=_1d1.search;_1d1=function(_1da,root){return _1d9(root||document,_1da);};}return _1d3;};var _1cd=_1d0(_1b4,_1be);dojo.query=_1d0(_1b4,function(_1db){return _1be(_1db);});_1cd.load=function(id,_1dc,_1dd,_1de){_1b3.load(id,_1dc,function(_1df){_1dd(_1d0(_1df,_1be));});};dojo._filterQueryResult=_1cd._filterResult=function(_1e0,_1e1,root){return new _1be(_1cd.filter(_1e0,_1e1,root));};dojo.NodeList=_1cd.NodeList=_1be;return _1cd;});},"dojo/has":function(){define(["require"],function(_1e2){var has=_1e2.has||function(){};if(!1){var _1e3=typeof window!="undefined"&&typeof location!="undefined"&&typeof document!="undefined"&&window.location==location&&window.document==document,_1e4=this,doc=_1e3&&document,_1e5=doc&&doc.createElement("DiV"),_1e6={};has=function(name){return typeof _1e6[name]=="function"?(_1e6[name]=_1e6[name](_1e4,doc,_1e5)):_1e6[name];};has.cache=_1e6;has.add=function(name,test,now,_1e7){(typeof _1e6[name]=="undefined"||_1e7)&&(_1e6[name]=test);return now&&has(name);};true||has.add("host-browser",_1e3);true||has.add("dom",_1e3);true||has.add("dojo-dom-ready-api",1);true||has.add("dojo-sniff",1);}if(1){var _1e8=navigator.userAgent;has.add("dom-addeventlistener",!!document.addEventListener);has.add("touch","ontouchstart" in document);has.add("device-width",screen.availWidth||innerWidth);has.add("agent-ios",!!_1e8.match(/iPhone|iP[ao]d/));has.add("agent-android",_1e8.indexOf("android")>1);}has.clearElement=function(_1e9){_1e9.innerHTML="";return _1e9;};has.normalize=function(id,_1ea){var _1eb=id.match(/[\?:]|[^:\?]*/g),i=0,get=function(skip){var term=_1eb[i++];if(term==":"){return 0;}else{if(_1eb[i++]=="?"){if(!skip&&has(term)){return get();}else{get(true);return get(skip);}}return term||0;}};id=get();return id&&_1ea(id);};has.load=function(id,_1ec,_1ed){if(id){_1ec([id],_1ed);}else{_1ed();}};return has;});},"dojo/_base/loader":function(){define(["./kernel","../has","require","module","./json","./lang","./array"],function(dojo,has,_1ee,_1ef,json,lang,_1f0){if(!1){console.error("cannot load the Dojo v1.x loader with a foreign loader");return 0;}var _1f1=function(id){return {src:_1ef.id,id:id};},_1f2=function(name){return name.replace(/\./g,"/");},_1f3=/\/\/>>built/,_1f4=[],_1f5=[],_1f6=function(mid,_1f7,_1f8){_1f4.push(_1f8);_1f0.forEach(mid.split(","),function(mid){var _1f9=_1fa(mid,_1f7.module);_1f5.push(_1f9);_1fb(_1f9);});_1fc();},_1fd,_1fe=function(m){_1fd[m.mid]=1;for(var t,_1ff,deps=m.deps||[],i=0;i<deps.length;i++){_1ff=deps[i];if(!(t=_1fd[_1ff.mid])){if(t===0||!_1fe(_1ff)){_1fd[m.mid]=0;return false;}}}return true;},_1fc=function(){var _200,mid;_1fd={};for(mid in _201){_200=_201[mid];if(_200.executed||_200.noReqPluginCheck){_1fd[mid]=1;}else{if(_200.noReqPluginCheck!==0){_200.noReqPluginCheck=/loadInit\!/.test(mid)||/require\!/.test(mid)?1:0;}if(_200.noReqPluginCheck){_1fd[mid]=1;}else{if(_200.injected!==_202){_1fd[mid]=0;}}}}for(var t,i=0,end=_1f5.length;i<end;i++){_200=_1f5[i];if(!(t=_1fd[_200.mid])){if(t===0||!_1fe(_200)){return;}}}_203.holdIdle();var _204=_1f4;_1f4=[];_1f0.forEach(_204,function(cb){cb(1);});_203.releaseIdle();},_205=function(mid,_206,_207){_206([mid],function(_208){_206(_208.names,function(){for(var _209="",args=[],i=0;i<arguments.length;i++){_209+="var "+_208.names[i]+"= arguments["+i+"]; ";args.push(arguments[i]);}eval(_209);var _20a=_206.module,deps=[],hold={},_20b=[],p,_20c={provide:function(_20d){_20d=_1f2(_20d);var _20e=_1fa(_20d,_20a);if(_20e!==_20a){_232(_20e);}},require:function(_20f,_210){_20f=_1f2(_20f);_210&&(_1fa(_20f,_20a).result=_22d);_20b.push(_20f);},requireLocalization:function(_211,_212,_213){deps.length||(deps=["dojo/i18n"]);_213=(_213||dojo.locale).toLowerCase();_211=_1f2(_211)+"/nls/"+(/root/i.test(_213)?"":_213+"/")+_1f2(_212);if(_1fa(_211,_20a).isXd){deps.push("dojo/i18n!"+_211);}},loadInit:function(f){f();}};try{for(p in _20c){hold[p]=dojo[p];dojo[p]=_20c[p];}_208.def.apply(null,args);}catch(e){_233("error",[_1f1("failedDojoLoadInit"),e]);}finally{for(p in _20c){dojo[p]=hold[p];}}_20b.length&&deps.push("dojo/require!"+_20b.join(","));_1f4.push(_207);_1f0.forEach(_20b,function(mid){var _214=_1fa(mid,_206.module);_1f5.push(_214);_1fb(_214);});_1fc();});});},_215=function(text,_216,_217){var _218=/\(|\)/g,_219=1,_21a;_218.lastIndex=_216;while((_21a=_218.exec(text))){if(_21a[0]==")"){_219-=1;}else{_219+=1;}if(_219==0){break;}}if(_219!=0){throw "unmatched paren around character "+_218.lastIndex+" in: "+text;}return [dojo.trim(text.substring(_217,_218.lastIndex))+";\n",_218.lastIndex];},_21b=/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,_21c=/(^|\s)dojo\.(loadInit|require|provide|requireLocalization|requireIf|requireAfterIf|platformRequire)\s*\(/mg,_21d=/(^|\s)(require|define)\s*\(/m,_21e=function(text,_21f){var _220,_221,_222,_223,_224=[],_225=[],_226=[];_21f=_21f||text.replace(_21b,function(_227){_21c.lastIndex=_21d.lastIndex=0;return (_21c.test(_227)||_21d.test(_227))?"":_227;});while((_220=_21c.exec(_21f))){_221=_21c.lastIndex;_222=_221-_220[0].length;_223=_215(_21f,_221,_222);if(_220[2]=="loadInit"){_224.push(_223[0]);}else{_225.push(_223[0]);}_21c.lastIndex=_223[1];}_226=_224.concat(_225);if(_226.length||!_21d.test(_21f)){return [text.replace(/(^|\s)dojo\.loadInit\s*\(/g,"\n0 && dojo.loadInit("),_226.join(""),_226];}else{return 0;}},_228=function(_229,text){var _22a,id,_22b=[],_22c=[];if(_1f3.test(text)||!(_22a=_21e(text))){return 0;}id=_229.mid+"-*loadInit";for(var p in _1fa("dojo",_229).result.scopeMap){_22b.push(p);_22c.push("\""+p+"\"");}return "// xdomain rewrite of "+_229.path+"\n"+"define('"+id+"',{\n"+"\tnames:"+dojo.toJson(_22b)+",\n"+"\tdef:function("+_22b.join(",")+"){"+_22a[1]+"}"+"});\n\n"+"define("+dojo.toJson(_22b.concat(["dojo/loadInit!"+id]))+", function("+_22b.join(",")+"){\n"+_22a[0]+"});";},_203=_1ee.initSyncLoader(_1f6,_1fc,_228),sync=_203.sync,xd=_203.xd,_202=_203.arrived,_22d=_203.nonmodule,_22e=_203.executing,_22f=_203.executed,_230=_203.syncExecStack,_201=_203.modules,_231=_203.execQ,_1fa=_203.getModule,_1fb=_203.injectModule,_232=_203.setArrived,_233=_203.signal,_234=_203.finishExec,_235=_203.execModule,_236=_203.getLegacyMode;dojo.provide=function(mid){var _237=_230[0],_238=lang.mixin(_1fa(_1f2(mid),_1ee.module),{executed:_22e,result:lang.getObject(mid,true)});_232(_238);if(_237){(_237.provides||(_237.provides=[])).push(function(){_238.result=lang.getObject(mid);delete _238.provides;_238.executed!==_22f&&_234(_238);});}return _238.result;};has.add("config-publishRequireResult",1,0,0);dojo.require=function(_239,_23a){function _23b(mid,_23c){var _23d=_1fa(_1f2(mid),_1ee.module);if(_230.length&&_230[0].finish){_230[0].finish.push(mid);return undefined;}if(_23d.executed){return _23d.result;}_23c&&(_23d.result=_22d);var _23e=_236();_1fb(_23d);_23e=_236();if(_23d.executed!==_22f&&_23d.injected===_202){_203.holdIdle();_235(_23d);_203.releaseIdle();}if(_23d.executed){return _23d.result;}if(_23e==sync){if(_23d.cjs){_231.unshift(_23d);}else{_230.length&&(_230[0].finish=[mid]);}}else{_231.push(_23d);}return undefined;};var _23f=_23b(_239,_23a);if(has("config-publishRequireResult")&&!lang.exists(_239)&&_23f!==undefined){lang.setObject(_239,_23f);}return _23f;};dojo.loadInit=function(f){f();};dojo.registerModulePath=function(_240,_241){var _242={};_242[_240.replace(/\./g,"/")]=_241;_1ee({paths:_242});};dojo.platformRequire=function(_243){var _244=(_243.common||[]).concat(_243[dojo._name]||_243["default"]||[]),temp;while(_244.length){if(lang.isArray(temp=_244.shift())){dojo.require.apply(dojo,temp);}else{dojo.require(temp);}}};dojo.requireIf=dojo.requireAfterIf=function(_245,_246,_247){if(_245){dojo.require(_246,_247);}};dojo.requireLocalization=function(_248,_249,_24a){_1ee(["../i18n"],function(i18n){i18n.getLocalization(_248,_249,_24a);});};return {extractLegacyApiApplications:_21e,require:_203.dojoRequirePlugin,loadInit:_205};});},"dojo/json":function(){define(["./has"],function(has){"use strict";var _24b=typeof JSON!="undefined";has.add("json-parse",_24b);has.add("json-stringify",_24b&&JSON.stringify({a:0},function(k,v){return v||1;})=="{\"a\":1}");if(has("json-stringify")){return JSON;}else{var _24c=function(str){return ("\""+str.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};return {parse:has("json-parse")?JSON.parse:function(str,_24d){if(_24d&&!/^([\s\[\{]*(?:"(?:\\.|[^"])+"|-?\d[\d\.]*(?:[Ee][+-]?\d+)?|null|true|false|)[\s\]\}]*(?:,|:|$))+$/.test(str)){throw new SyntaxError("Invalid characters in JSON");}return eval("("+str+")");},stringify:function(_24e,_24f,_250){var _251;if(typeof _24f=="string"){_250=_24f;_24f=null;}function _252(it,_253,key){if(_24f){it=_24f(key,it);}var val,_254=typeof it;if(_254=="number"){return isFinite(it)?it+"":"null";}if(_254=="boolean"){return it+"";}if(it===null){return "null";}if(typeof it=="string"){return _24c(it);}if(_254=="function"||_254=="undefined"){return _251;}if(typeof it.toJSON=="function"){return _252(it.toJSON(key),_253,key);}if(it instanceof Date){return "\"{FullYear}-{Month+}-{Date}T{Hours}:{Minutes}:{Seconds}Z\"".replace(/\{(\w+)(\+)?\}/g,function(t,prop,plus){var num=it["getUTC"+prop]()+(plus?1:0);return num<10?"0"+num:num;});}if(it.valueOf()!==it){return _252(it.valueOf(),_253,key);}var _255=_250?(_253+_250):"";var sep=_250?" ":"";var _256=_250?"\n":"";if(it instanceof Array){var itl=it.length,res=[];for(key=0;key<itl;key++){var obj=it[key];val=_252(obj,_255,key);if(typeof val!="string"){val="null";}res.push(_256+_255+val);}return "["+res.join(",")+_256+_253+"]";}var _257=[];for(key in it){var _258;if(typeof key=="number"){_258="\""+key+"\"";}else{if(typeof key=="string"){_258=_24c(key);}else{continue;}}val=_252(it[key],_255,key);if(typeof val!="string"){continue;}_257.push(_256+_255+_258+":"+sep+val);}return "{"+_257.join(",")+_256+_253+"}";};return _252(_24e,"","");}};}});},"dojo/_base/declare":function(){define(["./kernel","../has","./lang"],function(dojo,has,lang){var mix=lang.mixin,op=Object.prototype,opts=op.toString,xtor=new Function,_259=0,_25a="constructor";function err(msg,cls){throw new Error("declare"+(cls?" "+cls:"")+": "+msg);};function _25b(_25c,_25d){var _25e=[],_25f=[{cls:0,refs:[]}],_260={},_261=1,l=_25c.length,i=0,j,lin,base,top,_262,rec,name,refs;for(;i<l;++i){base=_25c[i];if(!base){err("mixin #"+i+" is unknown. Did you use dojo.require to pull it in?",_25d);}else{if(opts.call(base)!="[object Function]"){err("mixin #"+i+" is not a callable constructor.",_25d);}}lin=base._meta?base._meta.bases:[base];top=0;for(j=lin.length-1;j>=0;--j){_262=lin[j].prototype;if(!_262.hasOwnProperty("declaredClass")){_262.declaredClass="uniqName_"+(_259++);}name=_262.declaredClass;if(!_260.hasOwnProperty(name)){_260[name]={count:0,refs:[],cls:lin[j]};++_261;}rec=_260[name];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_25f[0].refs.push(top);}while(_25f.length){top=_25f.pop();_25e.push(top.cls);--_261;while(refs=top.refs,refs.length==1){top=refs[0];if(!top||--top.count){top=0;break;}_25e.push(top.cls);--_261;}if(top){for(i=0,l=refs.length;i<l;++i){top=refs[i];if(!--top.count){_25f.push(top);}}}}if(_261){err("can't build consistent linearization",_25d);}base=_25c[0];_25e[0]=base?base._meta&&base===_25e[_25e.length-base._meta.bases.length]?base._meta.bases.length:1:0;return _25e;};function _263(args,a,f){var name,_264,_265,_266,meta,base,_267,opf,pos,_268=this._inherited=this._inherited||{};if(typeof args=="string"){name=args;args=a;a=f;}f=0;_266=args.callee;name=name||_266.nom;if(!name){err("can't deduce a name to call inherited()",this.declaredClass);}meta=this.constructor._meta;_265=meta.bases;pos=_268.p;if(name!=_25a){if(_268.c!==_266){pos=0;base=_265[0];meta=base._meta;if(meta.hidden[name]!==_266){_264=meta.chains;if(_264&&typeof _264[name]=="string"){err("calling chained method with inherited: "+name,this.declaredClass);}do{meta=base._meta;_267=base.prototype;if(meta&&(_267[name]===_266&&_267.hasOwnProperty(name)||meta.hidden[name]===_266)){break;}}while(base=_265[++pos]);pos=base?pos:-1;}}base=_265[++pos];if(base){_267=base.prototype;if(base._meta&&_267.hasOwnProperty(name)){f=_267[name];}else{opf=op[name];do{_267=base.prototype;f=_267[name];if(f&&(base._meta?_267.hasOwnProperty(name):f!==opf)){break;}}while(base=_265[++pos]);}}f=base&&f||op[name];}else{if(_268.c!==_266){pos=0;meta=_265[0]._meta;if(meta&&meta.ctor!==_266){_264=meta.chains;if(!_264||_264.constructor!=="manual"){err("calling chained constructor with inherited",this.declaredClass);}while(base=_265[++pos]){meta=base._meta;if(meta&&meta.ctor===_266){break;}}pos=base?pos:-1;}}while(base=_265[++pos]){meta=base._meta;f=meta?meta.ctor:base;if(f){break;}}f=base&&f;}_268.c=f;_268.p=pos;if(f){return a===true?f:f.apply(this,a||args);}};function _269(name,args){if(typeof name=="string"){return this.__inherited(name,args,true);}return this.__inherited(name,true);};function _26a(args,a1,a2){var f=this.getInherited(args,a1);if(f){return f.apply(this,a2||a1||args);}};var _26b=dojo.config.isDebug?_26a:_263;function _26c(cls){var _26d=this.constructor._meta.bases;for(var i=0,l=_26d.length;i<l;++i){if(_26d[i]===cls){return true;}}return this instanceof cls;};function _26e(_26f,_270){for(var name in _270){if(name!=_25a&&_270.hasOwnProperty(name)){_26f[name]=_270[name];}}if(has("bug-for-in-skips-shadowed")){for(var _271=lang._extraNames,i=_271.length;i;){name=_271[--i];if(name!=_25a&&_270.hasOwnProperty(name)){_26f[name]=_270[name];}}}};function _272(_273,_274){var name,t;for(name in _274){t=_274[name];if((t!==op[name]||!(name in op))&&name!=_25a){if(opts.call(t)=="[object Function]"){t.nom=name;}_273[name]=t;}}if(has("bug-for-in-skips-shadowed")){for(var _275=lang._extraNames,i=_275.length;i;){name=_275[--i];t=_274[name];if((t!==op[name]||!(name in op))&&name!=_25a){if(opts.call(t)=="[object Function]"){t.nom=name;}_273[name]=t;}}}return _273;};function _276(_277){_278.safeMixin(this.prototype,_277);return this;};function _279(_27a,_27b){return function(){var a=arguments,args=a,a0=a[0],f,i,m,l=_27a.length,_27c;if(!(this instanceof a.callee)){return _27d(a);}if(_27b&&(a0&&a0.preamble||this.preamble)){_27c=new Array(_27a.length);_27c[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_27a[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_27c[i]=a;}}for(i=l-1;i>=0;--i){f=_27a[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_27c?_27c[i]:a);}}f=this.postscript;if(f){f.apply(this,args);}};};function _27e(ctor,_27f){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _27d(a);}if(_27f){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(ctor){ctor.apply(this,a);}f=this.postscript;if(f){f.apply(this,a);}};};function _280(_281){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _27d(a);}for(;f=_281[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function _282(name,_283,_284){return function(){var b,m,f,i=0,step=1;if(_284){i=_283.length-1;step=-1;}for(;b=_283[i];i+=step){m=b._meta;f=(m?m.hidden:b.prototype)[name];if(f){f.apply(this,arguments);}}};};function _285(ctor){xtor.prototype=ctor.prototype;var t=new xtor;xtor.prototype=null;return t;};function _27d(args){var ctor=args.callee,t=_285(ctor);ctor.apply(t,args);return t;};function _278(_286,_287,_288){if(typeof _286!="string"){_288=_287;_287=_286;_286="";}_288=_288||{};var _289,i,t,ctor,name,_28a,_28b,_28c=1,_28d=_287;if(opts.call(_287)=="[object Array]"){_28a=_25b(_287,_286);t=_28a[0];_28c=_28a.length-t;_287=_28a[_28c];}else{_28a=[0];if(_287){if(opts.call(_287)=="[object Function]"){t=_287._meta;_28a=_28a.concat(t?t.bases:_287);}else{err("base class is not a callable constructor.",_286);}}else{if(_287!==null){err("unknown base class. Did you use dojo.require to pull it in?",_286);}}}if(_287){for(i=_28c-1;;--i){_289=_285(_287);if(!i){break;}t=_28a[i];(t._meta?_26e:mix)(_289,t.prototype);ctor=new Function;ctor.superclass=_287;ctor.prototype=_289;_287=_289.constructor=ctor;}}else{_289={};}_278.safeMixin(_289,_288);t=_288.constructor;if(t!==op.constructor){t.nom=_25a;_289.constructor=t;}for(i=_28c-1;i;--i){t=_28a[i]._meta;if(t&&t.chains){_28b=mix(_28b||{},t.chains);}}if(_289["-chains-"]){_28b=mix(_28b||{},_289["-chains-"]);}t=!_28b||!_28b.hasOwnProperty(_25a);_28a[0]=ctor=(_28b&&_28b.constructor==="manual")?_280(_28a):(_28a.length==1?_27e(_288.constructor,t):_279(_28a,t));ctor._meta={bases:_28a,hidden:_288,chains:_28b,parents:_28d,ctor:_288.constructor};ctor.superclass=_287&&_287.prototype;ctor.extend=_276;ctor.prototype=_289;_289.constructor=ctor;_289.getInherited=_269;_289.isInstanceOf=_26c;_289.inherited=_26b;_289.__inherited=_263;if(_286){_289.declaredClass=_286;lang.setObject(_286,ctor);}if(_28b){for(name in _28b){if(_289[name]&&typeof _28b[name]=="string"&&name!=_25a){t=_289[name]=_282(name,_28a,_28b[name]==="after");t.nom=name;}}}return ctor;};dojo.safeMixin=_278.safeMixin=_272;dojo.declare=_278;return _278;});},"dojo/dom":function(){define(["./_base/sniff","./_base/lang","./_base/window"],function(has,lang,win){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}var dom={};if(has("ie")){dom.byId=function(id,doc){if(typeof id!="string"){return id;}var _28e=doc||win.doc,te=id&&_28e.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_28e.all[id];if(!eles||eles.nodeName){eles=[eles];}var i=0;while((te=eles[i++])){if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){return te;}}}};}else{dom.byId=function(id,doc){return ((typeof id=="string")?(doc||win.doc).getElementById(id):id)||null;};}dom.isDescendant=function(node,_28f){try{node=dom.byId(node);_28f=dom.byId(_28f);while(node){if(node==_28f){return true;}node=node.parentNode;}}catch(e){}return false;};dom.setSelectable=function(node,_290){node=dom.byId(node);if(has("mozilla")){node.style.MozUserSelect=_290?"":"none";}else{if(has("khtml")||has("webkit")){node.style.KhtmlUserSelect=_290?"auto":"none";}else{if(has("ie")){var v=(node.unselectable=_290?"":"on"),cs=node.getElementsByTagName("*"),i=0,l=cs.length;for(;i<l;++i){cs.item(i).unselectable=v;}}}}};return dom;});},"dojo/_base/browser":function(){if(require.has){require.has.add("config-selectorEngine","acme");}define("dojo/_base/browser",["../ready","./kernel","./connect","./unload","./window","./event","./html","./NodeList","../query","./xhr","./fx"],function(dojo){return dojo;});},"dojo/dom-style":function(){define(["./_base/sniff","./dom"],function(has,dom){var _291,_292={};if(has("webkit")){_291=function(node){var s;if(node.nodeType==1){var dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null);}}return s||{};};}else{if(has("ie")&&(has("ie")<9||has("quirks"))){_291=function(node){return node.nodeType==1?node.currentStyle:{};};}else{_291=function(node){return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}_292.getComputedStyle=_291;var _293;if(!has("ie")){_293=function(_294,_295){return parseFloat(_295)||0;};}else{_293=function(_296,_297){if(!_297){return 0;}if(_297=="medium"){return 4;}if(_297.slice&&_297.slice(-2)=="px"){return parseFloat(_297);}var s=_296.style,rs=_296.runtimeStyle,cs=_296.currentStyle,_298=s.left,_299=rs.left;rs.left=cs.left;try{s.left=_297;_297=s.pixelLeft;}catch(e){_297=0;}s.left=_298;rs.left=_299;return _297;};}_292.toPixelValue=_293;var astr="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};var _29a=has("ie")<9||(has("ie")&&has("quirks"))?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return _291(node).opacity;};var _29b=has("ie")<9||(has("ie")&&has("quirks"))?function(node,_29c){var ov=_29c*100,_29d=_29c==1;node.style.zoom=_29d?"":1;if(!af(node)){if(_29d){return _29c;}node.style.filter+=" progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}af(node,1).Enabled=!_29d;if(node.tagName.toLowerCase()=="tr"){for(var td=node.firstChild;td;td=td.nextSibling){if(td.tagName.toLowerCase()=="td"){_29b(td,_29c);}}}return _29c;}:function(node,_29e){return node.style.opacity=_29e;};var _29f={left:true,top:true};var _2a0=/margin|padding|width|height|max|min|offset/;function _2a1(node,type,_2a2){type=type.toLowerCase();if(has("ie")){if(_2a2=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_2a2){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _29f)){_29f[type]=_2a0.test(type);}return _29f[type]?_293(node,_2a2):_2a2;};var _2a3=has("ie")?"styleFloat":"cssFloat",_2a4={"cssFloat":_2a3,"styleFloat":_2a3,"float":_2a3};_292.get=function getStyle(node,name){var n=dom.byId(node),l=arguments.length,op=(name=="opacity");if(l==2&&op){return _29a(n);}name=_2a4[name]||name;var s=_292.getComputedStyle(n);return (l==1)?s:_2a1(n,name,s[name]||n.style[name]);};_292.set=function setStyle(node,name,_2a5){var n=dom.byId(node),l=arguments.length,op=(name=="opacity");name=_2a4[name]||name;if(l==3){return op?_29b(n,_2a5):n.style[name]=_2a5;}for(var x in name){_292.set(node,x,name[x]);}return _292.getComputedStyle(n);};return _292;});},"dojo/dom-geometry":function(){define(["./_base/sniff","./_base/window","./dom","./dom-style"],function(has,win,dom,_2a6){var geom={};geom.boxModel="content-box";if(has("ie")){geom.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}geom.getPadExtents=function getPadExtents(node,_2a7){node=dom.byId(node);var s=_2a7||_2a6.getComputedStyle(node),px=_2a6.toPixelValue,l=px(node,s.paddingLeft),t=px(node,s.paddingTop),r=px(node,s.paddingRight),b=px(node,s.paddingBottom);return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};var none="none";geom.getBorderExtents=function getBorderExtents(node,_2a8){node=dom.byId(node);var px=_2a6.toPixelValue,s=_2a8||_2a6.getComputedStyle(node),l=s.borderLeftStyle!=none?px(node,s.borderLeftWidth):0,t=s.borderTopStyle!=none?px(node,s.borderTopWidth):0,r=s.borderRightStyle!=none?px(node,s.borderRightWidth):0,b=s.borderBottomStyle!=none?px(node,s.borderBottomWidth):0;return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};geom.getPadBorderExtents=function getPadBorderExtents(node,_2a9){node=dom.byId(node);var s=_2a9||_2a6.getComputedStyle(node),p=geom.getPadExtents(node,s),b=geom.getBorderExtents(node,s);return {l:p.l+b.l,t:p.t+b.t,r:p.r+b.r,b:p.b+b.b,w:p.w+b.w,h:p.h+b.h};};geom.getMarginExtents=function getMarginExtents(node,_2aa){node=dom.byId(node);var s=_2aa||_2a6.getComputedStyle(node),px=_2a6.toPixelValue,l=px(node,s.marginLeft),t=px(node,s.marginTop),r=px(node,s.marginRight),b=px(node,s.marginBottom);if(has("webkit")&&(s.position!="absolute")){r=l;}return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};geom.getMarginBox=function getMarginBox(node,_2ab){node=dom.byId(node);var s=_2ab||_2a6.getComputedStyle(node),me=geom.getMarginExtents(node,s),l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode,px=_2a6.toPixelValue,pcs;if(has("mozilla")){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl,t=st;}else{if(p&&p.style){pcs=_2a6.getComputedStyle(p);if(pcs.overflow!="visible"){l+=pcs.borderLeftStyle!=none?px(node,pcs.borderLeftWidth):0;t+=pcs.borderTopStyle!=none?px(node,pcs.borderTopWidth):0;}}}}else{if(has("opera")||(has("ie")==8&&!has("quirks"))){if(p){pcs=_2a6.getComputedStyle(p);l-=pcs.borderLeftStyle!=none?px(node,pcs.borderLeftWidth):0;t-=pcs.borderTopStyle!=none?px(node,pcs.borderTopWidth):0;}}}return {l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h};};geom.getContentBox=function getContentBox(node,_2ac){node=dom.byId(node);var s=_2ac||_2a6.getComputedStyle(node),w=node.clientWidth,h,pe=geom.getPadExtents(node,s),be=geom.getBorderExtents(node,s);if(!w){w=node.offsetWidth;h=node.offsetHeight;}else{h=node.clientHeight;be.w=be.h=0;}if(has("opera")){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};function _2ad(node,l,t,w,h,u){u=u||"px";var s=node.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};function _2ae(node){return node.tagName.toLowerCase()=="button"||node.tagName.toLowerCase()=="input"&&(node.getAttribute("type")||"").toLowerCase()=="button";};function _2af(node){return geom.boxModel=="border-box"||node.tagName.toLowerCase()=="table"||_2ae(node);};geom.setContentSize=function setContentSize(node,box,_2b0){node=dom.byId(node);var w=box.w,h=box.h;if(_2af(node)){var pb=geom.getPadBorderExtents(node,_2b0);if(w>=0){w+=pb.w;}if(h>=0){h+=pb.h;}}_2ad(node,NaN,NaN,w,h);};var _2b1={l:0,t:0,w:0,h:0};geom.setMarginBox=function setMarginBox(node,box,_2b2){node=dom.byId(node);var s=_2b2||_2a6.getComputedStyle(node),w=box.w,h=box.h,pb=_2af(node)?_2b1:geom.getPadBorderExtents(node,s),mb=geom.getMarginExtents(node,s);if(has("webkit")){if(_2ae(node)){var ns=node.style;if(w>=0&&!ns.width){ns.width="4px";}if(h>=0&&!ns.height){ns.height="4px";}}}if(w>=0){w=Math.max(w-pb.w-mb.w,0);}if(h>=0){h=Math.max(h-pb.h-mb.h,0);}_2ad(node,box.l,box.t,w,h);};geom.isBodyLtr=function isBodyLtr(){return (win.body().dir||win.doc.documentElement.dir||"ltr").toLowerCase()=="ltr";};geom.docScroll=function docScroll(){var node=win.doc.parentWindow||win.doc.defaultView;return "pageXOffset" in node?{x:node.pageXOffset,y:node.pageYOffset}:(node=has("quirks")?win.body():win.doc.documentElement,{x:geom.fixIeBiDiScrollLeft(node.scrollLeft||0),y:node.scrollTop||0});};geom.getIeDocumentElementOffset=function getIeDocumentElementOffset(){var de=win.doc.documentElement;if(has("ie")<8){var r=de.getBoundingClientRect(),l=r.left,t=r.top;if(has("ie")<7){l+=de.clientLeft;t+=de.clientTop;}return {x:l<0?0:l,y:t<0?0:t};}else{return {x:0,y:0};}};geom.fixIeBiDiScrollLeft=function fixIeBiDiScrollLeft(_2b3){var ie=has("ie");if(ie&&!geom.isBodyLtr()){var qk=has("quirks"),de=qk?win.body():win.doc.documentElement;if(ie==6&&!qk&&win.global.frameElement&&de.scrollHeight>de.clientHeight){_2b3+=de.clientLeft;}return (ie<8||qk)?(_2b3+de.clientWidth-de.scrollWidth):-_2b3;}return _2b3;};geom.position=function(node,_2b4){node=dom.byId(node);var db=win.body(),dh=db.parentNode,ret=node.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(has("ie")){var _2b5=geom.getIeDocumentElementOffset();ret.x-=_2b5.x+(has("quirks")?db.clientLeft+db.offsetLeft:0);ret.y-=_2b5.y+(has("quirks")?db.clientTop+db.offsetTop:0);}else{if(has("ff")==3){var cs=_2a6.getComputedStyle(dh),px=_2a6.toPixelValue;ret.x-=px(dh,cs.marginLeft)+px(dh,cs.borderLeftWidth);ret.y-=px(dh,cs.marginTop)+px(dh,cs.borderTopWidth);}}if(_2b4){var _2b6=geom.docScroll();ret.x+=_2b6.x;ret.y+=_2b6.y;}return ret;};geom.getMarginSize=function getMarginSize(node,_2b7){node=dom.byId(node);var me=geom.getMarginExtents(node,_2b7||_2a6.getComputedStyle(node));var size=node.getBoundingClientRect();return {w:(size.right-size.left)+me.w,h:(size.bottom-size.top)+me.h};};geom.normalizeEvent=function(_2b8){if(!("layerX" in _2b8)){_2b8.layerX=_2b8.offsetX;_2b8.layerY=_2b8.offsetY;}if(!has("dom-addeventlistener")){var se=_2b8.target;var doc=(se&&se.ownerDocument)||document;var _2b9=has("quirks")?doc.body:doc.documentElement;var _2ba=geom.getIeDocumentElementOffset();_2b8.pageX=_2b8.clientX+geom.fixIeBiDiScrollLeft(_2b9.scrollLeft||0)-_2ba.x;_2b8.pageY=_2b8.clientY+(_2b9.scrollTop||0)-_2ba.y;}};return geom;});},"dojo/dom-prop":function(){define("dojo/dom-prop",["exports","./_base/kernel","./_base/sniff","./_base/lang","./dom","./dom-style","./dom-construct","./_base/connect"],function(_2bb,dojo,has,lang,dom,_2bc,ctr,conn){var _2bd={},_2be=0,_2bf=dojo._scopeName+"attrid";var _2c0={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1};_2bb.names={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"};_2bb.get=function getProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_2c1=_2bb.names[lc]||name;return node[_2c1];};_2bb.set=function setProp(node,name,_2c2){node=dom.byId(node);var l=arguments.length;if(l==2&&typeof name!="string"){for(var x in name){_2bb.set(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_2c3=_2bb.names[lc]||name;if(_2c3=="style"&&typeof _2c2!="string"){_2bc.style(node,_2c2);return node;}if(_2c3=="innerHTML"){if(has("ie")&&node.tagName.toLowerCase() in _2c0){ctr.empty(node);node.appendChild(ctr.toDom(_2c2,node.ownerDocument));}else{node[_2c3]=_2c2;}return node;}if(lang.isFunction(_2c2)){var _2c4=node[_2bf];if(!_2c4){_2c4=_2be++;node[_2bf]=_2c4;}if(!_2bd[_2c4]){_2bd[_2c4]={};}var h=_2bd[_2c4][_2c3];if(h){conn.disconnect(h);}else{try{delete node[_2c3];}catch(e){}}if(_2c2){_2bd[_2c4][_2c3]=conn.connect(node,_2c3,_2c2);}else{node[_2c3]=null;}return node;}node[_2c3]=_2c2;return node;};});},"dojo/dom-attr":function(){define(["exports","./_base/sniff","./_base/lang","./dom","./dom-style","./dom-prop"],function(_2c5,has,lang,dom,_2c6,prop){var _2c7={innerHTML:1,className:1,htmlFor:has("ie"),value:1},_2c8={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"};function _2c9(node,name){var attr=node.getAttributeNode&&node.getAttributeNode(name);return attr&&attr.specified;};_2c5.has=function hasAttr(node,name){var lc=name.toLowerCase();return _2c7[prop.names[lc]||name]||_2c9(dom.byId(node),_2c8[lc]||name);};_2c5.get=function getAttr(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_2ca=prop.names[lc]||name,_2cb=_2c7[_2ca];value=node[_2ca];if(_2cb&&typeof value!="undefined"){return value;}if(_2ca!="href"&&(typeof value=="boolean"||lang.isFunction(value))){return value;}var _2cc=_2c8[lc]||name;return _2c9(node,_2cc)?node.getAttribute(_2cc):null;};_2c5.set=function setAttr(node,name,_2cd){node=dom.byId(node);if(arguments.length==2){for(var x in name){_2c5.set(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_2ce=prop.names[lc]||name,_2cf=_2c7[_2ce];if(_2ce=="style"&&typeof _2cd!="string"){_2c6.set(node,_2cd);return node;}if(_2cf||typeof _2cd=="boolean"||lang.isFunction(_2cd)){return prop.set(node,name,_2cd);}node.setAttribute(_2c8[lc]||name,_2cd);return node;};_2c5.remove=function removeAttr(node,name){dom.byId(node).removeAttribute(_2c8[name.toLowerCase()]||name);};_2c5.getNodeProp=function getNodeProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_2d0=prop.names[lc]||name;if((_2d0 in node)&&_2d0!="href"){return node[_2d0];}var _2d1=_2c8[lc]||name;return _2c9(node,_2d1)?node.getAttribute(_2d1):null;};});},"dojo/dom-construct":function(){define("dojo/dom-construct",["exports","./_base/kernel","./_base/sniff","./_base/window","./dom","./dom-attr","./on"],function(_2d2,dojo,has,win,dom,attr,on){var _2d3={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_2d4=/<\s*([\w\:]+)/,_2d5={},_2d6=0,_2d7="__"+dojo._scopeName+"ToDomId";for(var _2d8 in _2d3){if(_2d3.hasOwnProperty(_2d8)){var tw=_2d3[_2d8];tw.pre=_2d8=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}}function _2d9(node,ref){var _2da=ref.parentNode;if(_2da){_2da.insertBefore(node,ref);}};function _2db(node,ref){var _2dc=ref.parentNode;if(_2dc){if(_2dc.lastChild==ref){_2dc.appendChild(node);}else{_2dc.insertBefore(node,ref.nextSibling);}}};var _2dd=null,_2de;on(window,"unload",function(){_2dd=null;});_2d2.toDom=function toDom(frag,doc){doc=doc||win.doc;var _2df=doc[_2d7];if(!_2df){doc[_2d7]=_2df=++_2d6+"";_2d5[_2df]=doc.createElement("div");}frag+="";var _2e0=frag.match(_2d4),tag=_2e0?_2e0[1].toLowerCase():"",_2e1=_2d5[_2df],wrap,i,fc,df;if(_2e0&&_2d3[tag]){wrap=_2d3[tag];_2e1.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i){_2e1=_2e1.firstChild;}}else{_2e1.innerHTML=frag;}if(_2e1.childNodes.length==1){return _2e1.removeChild(_2e1.firstChild);}df=doc.createDocumentFragment();while(fc=_2e1.firstChild){df.appendChild(fc);}return df;};_2d2.place=function place(node,_2e2,_2e3){_2e2=dom.byId(_2e2);if(typeof node=="string"){node=/^\s*</.test(node)?_2d2.toDom(node,_2e2.ownerDocument):dom.byId(node);}if(typeof _2e3=="number"){var cn=_2e2.childNodes;if(!cn.length||cn.length<=_2e3){_2e2.appendChild(node);}else{_2d9(node,cn[_2e3<0?0:_2e3]);}}else{switch(_2e3){case "before":_2d9(node,_2e2);break;case "after":_2db(node,_2e2);break;case "replace":_2e2.parentNode.replaceChild(node,_2e2);break;case "only":_2d2.empty(_2e2);_2e2.appendChild(node);break;case "first":if(_2e2.firstChild){_2d9(node,_2e2.firstChild);break;}default:_2e2.appendChild(node);}}return node;};_2d2.create=function create(tag,_2e4,_2e5,pos){var doc=win.doc;if(_2e5){_2e5=dom.byId(_2e5);doc=_2e5.ownerDocument;}if(typeof tag=="string"){tag=doc.createElement(tag);}if(_2e4){attr.set(tag,_2e4);}if(_2e5){_2d2.place(tag,_2e5,pos);}return tag;};_2d2.empty=has("ie")?function(node){node=dom.byId(node);for(var c;c=node.lastChild;){_2d2.destroy(c);}}:function(node){dom.byId(node).innerHTML="";};_2d2.destroy=function destroy(node){node=dom.byId(node);try{var doc=node.ownerDocument;if(!_2dd||_2de!=doc){_2dd=doc.createElement("div");_2de=doc;}_2dd.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_2dd.innerHTML="";}catch(e){}};});},"dojo/keys":function(){define("dojo/keys",["./_base/kernel","./_base/sniff"],function(dojo,has){return dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:has("safari")?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,UP_DPAD:175,DOWN_DPAD:176,LEFT_DPAD:177,RIGHT_DPAD:178,copyKey:has("mac")&&!has("air")?(has("safari")?91:224):17};});},"dojo/domReady":function(){define(["./has"],function(has){var _2e6=this,doc=document,_2e7={"loaded":1,"complete":1},_2e8=typeof doc.readyState!="string",_2e9=!!_2e7[doc.readyState];if(_2e8){doc.readyState="loading";}if(!_2e9){var _2ea=[],_2eb=[],_2ec=function(evt){evt=evt||_2e6.event;if(_2e9||(evt.type=="readystatechange"&&!_2e7[doc.readyState])){return;}_2e9=1;if(_2e8){doc.readyState="complete";}while(_2ea.length){(_2ea.shift())();}},on=function(node,_2ed){node.addEventListener(_2ed,_2ec,false);_2ea.push(function(){node.removeEventListener(_2ed,_2ec,false);});};if(!has("dom-addeventlistener")){on=function(node,_2ee){_2ee="on"+_2ee;node.attachEvent(_2ee,_2ec);_2ea.push(function(){node.detachEvent(_2ee,_2ec);});};var div=doc.createElement("div");try{if(div.doScroll&&_2e6.frameElement===null){_2eb.push(function(){try{div.doScroll("left");return 1;}catch(e){}});}}catch(e){}}on(doc,"DOMContentLoaded");on(_2e6,"load");if("onreadystatechange" in doc){on(doc,"readystatechange");}else{if(!_2e8){_2eb.push(function(){return _2e7[doc.readyState];});}}if(_2eb.length){var _2ef=function(){if(_2e9){return;}var i=_2eb.length;while(i--){if(_2eb[i]()){_2ec("poller");return;}}setTimeout(_2ef,30);};_2ef();}}function _2f0(_2f1){if(_2e9){_2f1(1);}else{_2ea.push(_2f1);}};_2f0.load=function(id,req,load){_2f0(load);};return _2f0;});},"dojo/_base/lang":function(){define(["./kernel","../has","./sniff"],function(dojo,has){has.add("bug-for-in-skips-shadowed",function(){for(var i in {toString:1}){return 0;}return 1;});var _2f2=has("bug-for-in-skips-shadowed")?"hasOwnProperty.valueOf.isPrototypeOf.propertyIsEnumerable.toLocaleString.toString.constructor".split("."):[],_2f3=_2f2.length,_2f4=function(dest,_2f5,_2f6){var name,s,i,_2f7={};for(name in _2f5){s=_2f5[name];if(!(name in dest)||(dest[name]!==s&&(!(name in _2f7)||_2f7[name]!==s))){dest[name]=_2f6?_2f6(s):s;}}if(has("bug-for-in-skips-shadowed")){if(_2f5){for(i=0;i<_2f3;++i){name=_2f2[i];s=_2f5[name];if(!(name in dest)||(dest[name]!==s&&(!(name in _2f7)||_2f7[name]!==s))){dest[name]=_2f6?_2f6(s):s;}}}}return dest;},_2f8=function(dest,_2f9){if(!dest){dest={};}for(var i=1,l=arguments.length;i<l;i++){lang._mixin(dest,arguments[i]);}return dest;},_2fa=function(_2fb,_2fc,_2fd){var p,i=0,_2fe=dojo.global;if(!_2fd){if(!_2fb.length){return _2fe;}else{p=_2fb[i++];try{_2fd=dojo.scopeMap[p]&&dojo.scopeMap[p][1];}catch(e){}_2fd=_2fd||(p in _2fe?_2fe[p]:(_2fc?_2fe[p]={}:undefined));}}while(_2fd&&(p=_2fb[i++])){_2fd=(p in _2fd?_2fd[p]:(_2fc?_2fd[p]={}:undefined));}return _2fd;},_2ff=function(name,_300,_301){var _302=name.split("."),p=_302.pop(),obj=_2fa(_302,true,_301);return obj&&p?(obj[p]=_300):undefined;},_303=function(name,_304,_305){return _2fa(name.split("."),_304,_305);},_306=function(name,obj){return lang.getObject(name,false,obj)!==undefined;},opts=Object.prototype.toString,_307=function(it){return (typeof it=="string"||it instanceof String);},_308=function(it){return it&&(it instanceof Array||typeof it=="array");},_309=function(it){return opts.call(it)==="[object Function]";},_30a=function(it){return it!==undefined&&(it===null||typeof it=="object"||lang.isArray(it)||lang.isFunction(it));},_30b=function(it){return it&&it!==undefined&&!lang.isString(it)&&!lang.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(lang.isArray(it)||isFinite(it.length));},_30c=function(it){return it&&!lang.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));},_30d=function(_30e,_30f){for(var i=1,l=arguments.length;i<l;i++){lang._mixin(_30e.prototype,arguments[i]);}return _30e;},_310=function(_311,_312){var pre=_313(arguments,2);var _314=lang.isString(_312);return function(){var args=_313(arguments);var f=_314?(_311||dojo.global)[_312]:_312;return f&&f.apply(_311||this,pre.concat(args));};},_315=function(_316,_317){if(arguments.length>2){return lang._hitchArgs.apply(dojo,arguments);}if(!_317){_317=_316;_316=null;}if(lang.isString(_317)){_316=_316||dojo.global;if(!_316[_317]){throw (["dojo.hitch: scope[\"",_317,"\"] is null (scope=\"",_316,"\")"].join(""));}return function(){return _316[_317].apply(_316,arguments||[]);};}return !_316?_317:function(){return _317.apply(_316,arguments||[]);};},_318=(function(){function TMP(){};return function(obj,_319){TMP.prototype=obj;var tmp=new TMP();TMP.prototype=null;if(_319){lang._mixin(tmp,_319);}return tmp;};})(),_31a=function(obj,_31b,_31c){return (_31c||[]).concat(Array.prototype.slice.call(obj,_31b||0));},_313=has("ie")?(function(){function slow(obj,_31d,_31e){var arr=_31e||[];for(var x=_31d||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};return function(obj){return ((obj.item)?slow:_31a).apply(this,arguments);};})():_31a,_31f=function(_320){var arr=[null];return lang.hitch.apply(dojo,arr.concat(lang._toArray(arguments)));},_321=function(src){if(!src||typeof src!="object"||lang.isFunction(src)){return src;}if(src.nodeType&&"cloneNode" in src){return src.cloneNode(true);}if(src instanceof Date){return new Date(src.getTime());}if(src instanceof RegExp){return new RegExp(src);}var r,i,l;if(lang.isArray(src)){r=[];for(i=0,l=src.length;i<l;++i){if(i in src){r.push(_321(src[i]));}}}else{r=src.constructor?new src.constructor():{};}return lang._mixin(r,src,_321);},trim=String.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");},_322=/\{([^\}]+)\}/g,_323=function(tmpl,map,_324){return tmpl.replace(_324||_322,lang.isFunction(map)?map:function(_325,k){return _303(k,false,map);});},lang={_extraNames:_2f2,_mixin:_2f4,mixin:_2f8,setObject:_2ff,getObject:_303,exists:_306,isString:_307,isArray:_308,isFunction:_309,isObject:_30a,isArrayLike:_30b,isAlien:_30c,extend:_30d,_hitchArgs:_310,hitch:_315,delegate:_318,_toArray:_313,partial:_31f,clone:_321,trim:trim,replace:_323};1&&_2f8(dojo,lang);return lang;});},"dojo/Evented":function(){define(["./aspect","./on"],function(_326,on){"use strict";var _327=_326.after;function _328(){};_328.prototype={on:function(type,_329){return on.parse(this,type,_329,function(_32a,type){return _327(_32a,"on"+type,_329,true);});},emit:function(type,_32b){var args=[this];args.push.apply(args,arguments);return on.emit.apply(on,args);}};return _328;});},"dojo/mouse":function(){define(["./_base/kernel","./on","./has","./dom","./_base/window"],function(dojo,on,has,dom,win){has.add("dom-quirks",win.doc&&win.doc.compatMode=="BackCompat");has.add("events-mouseenter",win.doc&&"onmouseenter" in win.doc.createElement("div"));var _32c;if(has("dom-quirks")||!has("dom-addeventlistener")){_32c={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_32d){return e.button&_32d;},isLeft:function(e){return e.button&1;},isMiddle:function(e){return e.button&4;},isRight:function(e){return e.button&2;}};}else{_32c={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_32e){return e.button==_32e;},isLeft:function(e){return e.button==0;},isMiddle:function(e){return e.button==1;},isRight:function(e){return e.button==2;}};}dojo.mouseButtons=_32c;function _32f(type,_330){var _331=function(node,_332){return on(node,type,function(evt){if(!dom.isDescendant(evt.relatedTarget,_330?evt.target:node)){return _332.call(this,evt);}});};if(!_330){_331.bubble=_32f(type,true);}return _331;};return {enter:_32f("mouseover"),leave:_32f("mouseout"),isLeft:_32c.isLeft,isMiddle:_32c.isMiddle,isRight:_32c.isRight};});},"dojo/topic":function(){define(["./Evented"],function(_333){var hub=new _333;return {publish:function(_334,_335){return hub.emit.apply(hub,arguments);},subscribe:function(_336,_337){return hub.on.apply(hub,arguments);}};});},"dojo/_base/xhr":function(){define(["./kernel","./sniff","require","../io-query","../dom","../dom-form","./Deferred","./json","./lang","./array","../on"],function(dojo,has,_338,ioq,dom,_339,_33a,json,lang,_33b,on){has.add("native-xhr",function(){return typeof XMLHttpRequest!=="undefined";});if(1&&_338.getXhr){dojo._xhrObj=_338.getXhr;}else{if(has("native-xhr")){dojo._xhrObj=function(){try{return new XMLHttpRequest();}catch(e){throw new Error("XMLHTTP not available: "+e);}};}else{for(var _33c=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],_33d,i=0;i<3;){try{_33d=_33c[i++];if(new ActiveXObject(_33d)){break;}}catch(e){}}dojo._xhrObj=function(){return new ActiveXObject(_33d);};}}var cfg=dojo.config;dojo.objectToQuery=ioq.objectToQuery;dojo.queryToObject=ioq.queryToObject;dojo.fieldToObject=_339.fieldToObject;dojo.formToObject=_339.toObject;dojo.formToQuery=_339.toQuery;dojo.formToJson=_339.toJson;dojo._blockAsync=false;var _33e=dojo._contentHandlers=dojo.contentHandlers={"text":function(xhr){return xhr.responseText;},"json":function(xhr){return json.fromJson(xhr.responseText||null);},"json-comment-filtered":function(xhr){if(!dojo.config.useCommentedJson){console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message.");}var _33f=xhr.responseText;var _340=_33f.indexOf("/*");var _341=_33f.lastIndexOf("*/");if(_340==-1||_341==-1){throw new Error("JSON was not comment filtered");}return json.fromJson(_33f.substring(_340+2,_341));},"javascript":function(xhr){return dojo.eval(xhr.responseText);},"xml":function(xhr){var _342=xhr.responseXML;if(has("ie")){if((!_342||!_342.documentElement)){var ms=function(n){return "MSXML"+n+".DOMDocument";};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_33b.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_342=dom;}catch(e){return false;}return true;});}}return _342;},"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){return _33e["json-comment-filtered"](xhr);}else{return _33e["json"](xhr);}}};dojo._ioSetArgs=function(args,_343,_344,_345){var _346={args:args,url:args.url};var _347=null;if(args.form){var form=dom.byId(args.form);var _348=form.getAttributeNode("action");_346.url=_346.url||(_348?_348.value:null);_347=_339.toObject(form);}var _349=[{}];if(_347){_349.push(_347);}if(args.content){_349.push(args.content);}if(args.preventCache){_349.push({"dojo.preventCache":new Date().valueOf()});}_346.query=ioq.objectToQuery(lang.mixin.apply(null,_349));_346.handleAs=args.handleAs||"text";var d=new _33a(_343);d.addCallbacks(_344,function(_34a){return _345(_34a,d);});var ld=args.load;if(ld&&lang.isFunction(ld)){d.addCallback(function(_34b){return ld.call(args,_34b,_346);});}var err=args.error;if(err&&lang.isFunction(err)){d.addErrback(function(_34c){return err.call(args,_34c,_346);});}var _34d=args.handle;if(_34d&&lang.isFunction(_34d)){d.addBoth(function(_34e){return _34d.call(args,_34e,_346);});}if(cfg.ioPublish&&dojo.publish&&_346.args.ioPublish!==false){d.addCallbacks(function(res){dojo.publish("/dojo/io/load",[d,res]);return res;},function(res){dojo.publish("/dojo/io/error",[d,res]);return res;});d.addBoth(function(res){dojo.publish("/dojo/io/done",[d,res]);return res;});}d.ioArgs=_346;return d;};var _34f=function(dfd){dfd.canceled=true;var xhr=dfd.ioArgs.xhr;var _350=typeof xhr.abort;if(_350=="function"||_350=="object"||_350=="unknown"){xhr.abort();}var err=dfd.ioArgs.error;if(!err){err=new Error("xhr cancelled");err.dojoType="cancel";}return err;};var _351=function(dfd){var ret=_33e[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _352=function(_353,dfd){if(!dfd.ioArgs.args.failOk){console.error(_353);}return _353;};var _354=null;var _355=[];var _356=0;var _357=function(dfd){if(_356<=0){_356=0;if(cfg.ioPublish&&dojo.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){dojo.publish("/dojo/io/stop");}}};var _358=function(){var now=(new Date()).getTime();if(!dojo._blockAsync){for(var i=0,tif;i<_355.length&&(tif=_355[i]);i++){var dfd=tif.dfd;var func=function(){if(!dfd||dfd.canceled||!tif.validCheck(dfd)){_355.splice(i--,1);_356-=1;}else{if(tif.ioCheck(dfd)){_355.splice(i--,1);tif.resHandle(dfd);_356-=1;}else{if(dfd.startTime){if(dfd.startTime+(dfd.ioArgs.args.timeout||0)<now){_355.splice(i--,1);var err=new Error("timeout exceeded");err.dojoType="timeout";dfd.errback(err);dfd.cancel();_356-=1;}}}}};if(dojo.config.debugAtAllCosts){func.call(this);}else{try{func.call(this);}catch(e){dfd.errback(e);}}}}_357(dfd);if(!_355.length){clearInterval(_354);_354=null;}};dojo._ioCancelAll=function(){try{_33b.forEach(_355,function(i){try{i.dfd.cancel();}catch(e){}});}catch(e){}};if(has("ie")){on(window,"unload",dojo._ioCancelAll);}dojo._ioNotifyStart=function(dfd){if(cfg.ioPublish&&dojo.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_356){dojo.publish("/dojo/io/start");}_356+=1;dojo.publish("/dojo/io/send",[dfd]);}};dojo._ioWatch=function(dfd,_359,_35a,_35b){var args=dfd.ioArgs.args;if(args.timeout){dfd.startTime=(new Date()).getTime();}_355.push({dfd:dfd,validCheck:_359,ioCheck:_35a,resHandle:_35b});if(!_354){_354=setInterval(_358,50);}if(args.sync){_358();}};var _35c="application/x-www-form-urlencoded";var _35d=function(dfd){return dfd.ioArgs.xhr.readyState;};var _35e=function(dfd){return 4==dfd.ioArgs.xhr.readyState;};var _35f=function(dfd){var xhr=dfd.ioArgs.xhr;if(dojo._isDocumentOk(xhr)){dfd.callback(dfd);}else{var err=new Error("Unable to load "+dfd.ioArgs.url+" status:"+xhr.status);err.status=xhr.status;err.responseText=xhr.responseText;err.xhr=xhr;dfd.errback(err);}};dojo._ioAddQueryToUrl=function(_360){if(_360.query.length){_360.url+=(_360.url.indexOf("?")==-1?"?":"&")+_360.query;_360.query=null;}};dojo.xhr=function(_361,args,_362){var dfd=dojo._ioSetArgs(args,_34f,_351,_352);var _363=dfd.ioArgs;var xhr=_363.xhr=dojo._xhrObj(_363.args);if(!xhr){dfd.cancel();return dfd;}if("postData" in args){_363.query=args.postData;}else{if("putData" in args){_363.query=args.putData;}else{if("rawBody" in args){_363.query=args.rawBody;}else{if((arguments.length>2&&!_362)||"POST|PUT".indexOf(_361.toUpperCase())==-1){dojo._ioAddQueryToUrl(_363);}}}}xhr.open(_361,_363.url,args.sync!==true,args.user||undefined,args.password||undefined);if(args.headers){for(var hdr in args.headers){if(hdr.toLowerCase()==="content-type"&&!args.contentType){args.contentType=args.headers[hdr];}else{if(args.headers[hdr]){xhr.setRequestHeader(hdr,args.headers[hdr]);}}}}if(args.contentType!==false){xhr.setRequestHeader("Content-Type",args.contentType||_35c);}if(!args.headers||!("X-Requested-With" in args.headers)){xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");}dojo._ioNotifyStart(dfd);if(dojo.config.debugAtAllCosts){xhr.send(_363.query);}else{try{xhr.send(_363.query);}catch(e){_363.error=e;dfd.cancel();}}dojo._ioWatch(dfd,_35d,_35e,_35f);xhr=null;return dfd;};dojo.xhrGet=function(args){return dojo.xhr("GET",args);};dojo.rawXhrPost=dojo.xhrPost=function(args){return dojo.xhr("POST",args,true);};dojo.rawXhrPut=dojo.xhrPut=function(args){return dojo.xhr("PUT",args,true);};dojo.xhrDelete=function(args){return dojo.xhr("DELETE",args);};dojo._isDocumentOk=function(http){var stat=http.status||0;stat=(stat>=200&&stat<300)||stat==304||stat==1223||!stat;return stat;};dojo._getText=function(url){var _364;dojo.xhrGet({url:url,sync:true,load:function(text){_364=text;}});return _364;};lang.mixin(dojo.xhr,{_xhrObj:dojo._xhrObj,fieldToObject:_339.fieldToObject,formToObject:_339.toObject,objectToQuery:ioq.objectToQuery,formToQuery:_339.toQuery,formToJson:_339.toJson,queryToObject:ioq.queryToObject,contentHandlers:_33e,_ioSetArgs:dojo._ioSetArgs,_ioCancelAll:dojo._ioCancelAll,_ioNotifyStart:dojo._ioNotifyStart,_ioWatch:dojo._ioWatch,_ioAddQueryToUrl:dojo._ioAddQueryToUrl,_isDocumentOk:dojo._isDocumentOk,_getText:dojo._getText,get:dojo.xhrGet,post:dojo.xhrPost,put:dojo.xhrPut,del:dojo.xhrDelete});return dojo.xhr;});},"dojo/_base/unload":function(){define(["./kernel","./connect"],function(dojo,_365){var win=window;dojo.addOnWindowUnload=function(obj,_366){if(!dojo.windowUnloaded){_365.connect(win,"unload",(dojo.windowUnloaded=function(){}));}_365.connect(win,"unload",obj,_366);};dojo.addOnUnload=function(obj,_367){_365.connect(win,"beforeunload",obj,_367);};return {addOnWindowUnload:dojo.addOnWindowUnload,addOnUnload:dojo.addOnUnload};});},"dojo/_base/NodeList":function(){define(["./kernel","../query","./array","./html","../NodeList-dom"],function(dojo,_368,_369){var _36a=_368.NodeList;var nlp=_36a.prototype;nlp.connect=_36a._adaptAsForEach(function(){return dojo.connect.apply(this,arguments);});nlp.coords=_36a._adaptAsMap(dojo.coords);_36a.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"];_369.forEach(_36a.events,function(evt){var _36b="on"+evt;nlp[_36b]=function(a,b){return this.connect(_36b,a,b);};});dojo.NodeList=_36a;return dojo.NodeList;});},"dojo/_base/Color":function(){define(["./kernel","./lang","./array","./config"],function(dojo,lang,_36c,_36d){var _36e=dojo.Color=function(_36f){if(_36f){this.setColor(_36f);}};_36e.named={"black":[0,0,0],"silver":[192,192,192],"gray":[128,128,128],"white":[255,255,255],"maroon":[128,0,0],"red":[255,0,0],"purple":[128,0,128],"fuchsia":[255,0,255],"green":[0,128,0],"lime":[0,255,0],"olive":[128,128,0],"yellow":[255,255,0],"navy":[0,0,128],"blue":[0,0,255],"teal":[0,128,128],"aqua":[0,255,255],"transparent":_36d.transparentColor||[0,0,0,0]};lang.extend(_36e,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var t=this;t.r=r;t.g=g;t.b=b;t.a=a;},setColor:function(_370){if(lang.isString(_370)){_36e.fromString(_370,this);}else{if(lang.isArray(_370)){_36e.fromArray(_370,this);}else{this._set(_370.r,_370.g,_370.b,_370.a);if(!(_370 instanceof _36e)){this.sanitize();}}}return this;},sanitize:function(){return this;},toRgb:function(){var t=this;return [t.r,t.g,t.b];},toRgba:function(){var t=this;return [t.r,t.g,t.b,t.a];},toHex:function(){var arr=_36c.map(["r","g","b"],function(x){var s=this[x].toString(16);return s.length<2?"0"+s:s;},this);return "#"+arr.join("");},toCss:function(_371){var t=this,rgb=t.r+", "+t.g+", "+t.b;return (_371?"rgba("+rgb+", "+t.a:"rgb("+rgb)+")";},toString:function(){return this.toCss(true);}});_36e.blendColors=dojo.blendColors=function(_372,end,_373,obj){var t=obj||new _36e();_36c.forEach(["r","g","b","a"],function(x){t[x]=_372[x]+(end[x]-_372[x])*_373;if(x!="a"){t[x]=Math.round(t[x]);}});return t.sanitize();};_36e.fromRgb=dojo.colorFromRgb=function(_374,obj){var m=_374.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&&_36e.fromArray(m[1].split(/\s*,\s*/),obj);};_36e.fromHex=dojo.colorFromHex=function(_375,obj){var t=obj||new _36e(),bits=(_375.length==4)?4:8,mask=(1<<bits)-1;_375=Number("0x"+_375.substr(1));if(isNaN(_375)){return null;}_36c.forEach(["b","g","r"],function(x){var c=_375&mask;_375>>=bits;t[x]=bits==4?17*c:c;});t.a=1;return t;};_36e.fromArray=dojo.colorFromArray=function(a,obj){var t=obj||new _36e();t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a)){t.a=1;}return t.sanitize();};_36e.fromString=dojo.colorFromString=function(str,obj){var a=_36e.named[str];return a&&_36e.fromArray(a,obj)||_36e.fromRgb(str,obj)||_36e.fromHex(str,obj);};return _36e;});},"dojo/selector/_loader":function(){define(["../has","require"],function(has,_376){"use strict";var _377=document.createElement("div");has.add("dom-qsa2.1",!!_377.querySelectorAll);has.add("dom-qsa3",function(){try{_377.innerHTML="<p class='TEST'></p>";return _377.querySelectorAll(".TEST:empty").length==1;}catch(e){}});var _378;var acme="./acme",lite="./lite";return {load:function(id,_379,_37a,_37b){var req=_376;id=id=="default"?has("config-selectorEngine")||"css3":id;id=id=="css2"||id=="lite"?lite:id=="css2.1"?has("dom-qsa2.1")?lite:acme:id=="css3"?has("dom-qsa3")?lite:acme:id=="acme"?acme:(req=_379)&&id;if(id.charAt(id.length-1)=="?"){id=id.substring(0,id.length-1);var _37c=true;}if(_37c&&(has("dom-compliant-qsa")||_378)){return _37a(_378);}req([id],function(_37d){if(id!="./lite"){_378=_37d;}_37a(_37d);});}};});},"dojo/on":function(){define(["./has!dom-addeventlistener?:./aspect","./_base/kernel","./has"],function(_37e,dojo,has){"use strict";if(1){var _37f=window.ScriptEngineMajorVersion;has.add("jscript",_37f&&(_37f()+ScriptEngineMinorVersion()/10));has.add("event-orientationchange",has("touch")&&!has("android"));}var on=function(_380,type,_381,_382){if(_380.on){return _380.on(type,_381);}return on.parse(_380,type,_381,_383,_382,this);};on.pausable=function(_384,type,_385,_386){var _387;var _388=on(_384,type,function(){if(!_387){return _385.apply(this,arguments);}},_386);_388.pause=function(){_387=true;};_388.resume=function(){_387=false;};return _388;};on.once=function(_389,type,_38a,_38b){var _38c=on(_389,type,function(){_38c.remove();return _38a.apply(this,arguments);});return _38c;};on.parse=function(_38d,type,_38e,_38f,_390,_391){if(type.call){return type.call(_391,_38d,_38e);}if(type.indexOf(",")>-1){var _392=type.split(/\s*,\s*/);var _393=[];var i=0;var _394;while(_394=_392[i++]){_393.push(_38f(_38d,_394,_38e,_390,_391));}_393.remove=function(){for(var i=0;i<_393.length;i++){_393[i].remove();}};return _393;}return _38f(_38d,type,_38e,_390,_391);};var _395=/^touch/;function _383(_396,type,_397,_398,_399){var _39a=type.match(/(.*):(.*)/);if(_39a){type=_39a[2];_39a=_39a[1];return on.selector(_39a,type).call(_399,_396,_397);}if(has("touch")){if(_395.test(type)){_397=_39b(_397);}if(!has("event-orientationchange")&&(type=="orientationchange")){type="resize";_396=window;_397=_39b(_397);}}if(_396.addEventListener){var _39c=type in _39d;_396.addEventListener(_39c?_39d[type]:type,_397,_39c);return {remove:function(){_396.removeEventListener(type,_397,_39c);}};}type="on"+type;if(_39e&&_396.attachEvent){return _39e(_396,type,_397);}throw new Error("Target must be an event emitter");};on.selector=function(_39f,_3a0,_3a1){return function(_3a2,_3a3){var _3a4=this;var _3a5=_3a0.bubble;if(_3a5){_3a0=_3a5;}else{if(_3a1!==false){_3a1=true;}}return on(_3a2,_3a0,function(_3a6){var _3a7=_3a6.target;_3a4=_3a4&&_3a4.matches?_3a4:dojo.query;while(!_3a4.matches(_3a7,_39f,_3a2)){if(_3a7==_3a2||!_3a1||!(_3a7=_3a7.parentNode)){return;}}return _3a3.call(_3a7,_3a6);});};};function _3a8(){this.cancelable=false;};function _3a9(){this.bubbles=false;};var _3aa=[].slice,_3ab=on.emit=function(_3ac,type,_3ad){var args=_3aa.call(arguments,2);var _3ae="on"+type;if("parentNode" in _3ac){var _3af=args[0]={};for(var i in _3ad){_3af[i]=_3ad[i];}_3af.preventDefault=_3a8;_3af.stopPropagation=_3a9;_3af.target=_3ac;_3af.type=type;_3ad=_3af;}do{_3ac[_3ae]&&_3ac[_3ae].apply(_3ac,args);}while(_3ad&&_3ad.bubbles&&(_3ac=_3ac.parentNode));return _3ad&&_3ad.cancelable&&_3ad;};var _39d={};if(has("dom-addeventlistener")){_39d={focusin:"focus",focusout:"blur"};if(has("opera")){_39d.keydown="keypress";}on.emit=function(_3b0,type,_3b1){if(_3b0.dispatchEvent&&document.createEvent){var _3b2=document.createEvent("HTMLEvents");_3b2.initEvent(type,!!_3b1.bubbles,!!_3b1.cancelable);for(var i in _3b1){var _3b3=_3b1[i];if(!(i in _3b2)){_3b2[i]=_3b1[i];}}return _3b0.dispatchEvent(_3b2)&&_3b2;}return _3ab.apply(on,arguments);};}else{on._fixEvent=function(evt,_3b4){if(!evt){var w=_3b4&&(_3b4.ownerDocument||_3b4.document||_3b4).parentWindow||window;evt=w.event;}if(!evt){return (evt);}if(!evt.target){evt.target=evt.srcElement;evt.currentTarget=(_3b4||evt.srcElement);if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}if(!evt.stopPropagation){evt.stopPropagation=_3b5;evt.preventDefault=_3b6;}switch(evt.type){case "keypress":var c=("charCode" in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;_3b7(evt);break;}}return evt;};var _3b8=function(_3b9){this.handle=_3b9;};_3b8.prototype.remove=function(){delete _dojoIEListeners_[this.handle];};var _3ba=function(_3bb){return function(evt){evt=on._fixEvent(evt,this);return _3bb.call(this,evt);};};var _39e=function(_3bc,type,_3bd){_3bd=_3ba(_3bd);if(((_3bc.ownerDocument?_3bc.ownerDocument.parentWindow:_3bc.parentWindow||_3bc.window||window)!=top||has("jscript")<5.8)&&!has("config-_allow_leaks")){if(typeof _dojoIEListeners_=="undefined"){_dojoIEListeners_=[];}var _3be=_3bc[type];if(!_3be||!_3be.listeners){var _3bf=_3be;_3bc[type]=_3be=Function("event","var callee = arguments.callee; for(var i = 0; i<callee.listeners.length; i++){var listener = _dojoIEListeners_[callee.listeners[i]]; if(listener){listener.call(this,event);}}");_3be.listeners=[];_3be.global=this;if(_3bf){_3be.listeners.push(_dojoIEListeners_.push(_3bf)-1);}}var _3c0;_3be.listeners.push(_3c0=(_3be.global._dojoIEListeners_.push(_3bd)-1));return new _3b8(_3c0);}return _37e.after(_3bc,type,_3bd,true);};var _3b7=function(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;};var _3b5=function(){this.cancelBubble=true;};var _3b6=on._preventDefault=function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){try{this.keyCode=0;}catch(e){}}this.returnValue=false;};}if(has("touch")){var _3c1=function(){};var _3c2=window.orientation;var _39b=function(_3c3){return function(_3c4){var _3c5=_3c4.corrected;if(!_3c5){var type=_3c4.type;try{delete _3c4.type;}catch(e){}if(_3c4.type){_3c1.prototype=_3c4;var _3c5=new _3c1;_3c5.preventDefault=function(){_3c4.preventDefault();};_3c5.stopPropagation=function(){_3c4.stopPropagation();};}else{_3c5=_3c4;_3c5.type=type;}_3c4.corrected=_3c5;if(type=="resize"){if(_3c2==window.orientation){return null;}_3c2=window.orientation;_3c5.type="orientationchange";return _3c3.call(this,_3c5);}if(!("rotation" in _3c5)){_3c5.rotation=0;_3c5.scale=1;}var _3c6=_3c5.changedTouches[0];for(var i in _3c6){delete _3c5[i];_3c5[i]=_3c6[i];}}return _3c3.call(this,_3c5);};};}return on;});},"dojo/_base/sniff":function(){define(["./kernel","../has"],function(dojo,has){if(!1){return has;}dojo.isBrowser=true,dojo._name="browser";var _3c7=has.add,n=navigator,dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav),_3c8,_3c9,_3ca,_3cb,_3cc,_3cd,_3ce,_3cf,_3d0,isIE,isFF,_3d1,_3d2,_3d3,_3d4;if(dua.indexOf("AdobeAIR")>=0){_3c9=1;}_3ca=(dav.indexOf("Konqueror")>=0)?tv:0;_3cb=parseFloat(dua.split("WebKit/")[1])||undefined;_3cc=parseFloat(dua.split("Chrome/")[1])||undefined;_3cd=dav.indexOf("Macintosh")>=0;_3d2=/iPhone|iPod|iPad/.test(dua);_3d3=parseFloat(dua.split("Android ")[1])||undefined;_3d4=typeof opera!="undefined"&&opera.wiiremote;var _3d5=Math.max(dav.indexOf("WebKit"),dav.indexOf("Safari"),0);if(_3d5&&!_3cc){_3ce=parseFloat(dav.split("Version/")[1]);if(!_3ce||parseFloat(dav.substr(_3d5+7))<=419.3){_3ce=2;}}if(!has("dojo-webkit")){if(dua.indexOf("Opera")>=0){_3c8=tv;if(_3c8>=9.8){_3c8=parseFloat(dua.split("Version/")[1])||tv;}}if(dua.indexOf("Gecko")>=0&&!_3ca&&!_3cb){_3cf=_3d0=tv;}if(_3d0){isFF=parseFloat(dua.split("Firefox/")[1]||dua.split("Minefield/")[1])||undefined;}if(document.all&&!_3c8){isIE=parseFloat(dav.split("MSIE ")[1])||undefined;var mode=document.documentMode;if(mode&&mode!=5&&Math.floor(isIE)!=mode){isIE=mode;}}}_3d1=document.compatMode=="BackCompat";_3c7("opera",dojo.isOpera=_3c8);_3c7("air",dojo.isAIR=_3c9);_3c7("khtml",dojo.isKhtml=_3ca);_3c7("webkit",dojo.isWebKit=_3cb);_3c7("chrome",dojo.isChrome=_3cc);_3c7("mac",dojo.isMac=_3cd);_3c7("safari",dojo.isSafari=_3ce);_3c7("mozilla",dojo.isMozilla=dojo.isMoz=_3cf);_3c7("ie",dojo.isIE=isIE);_3c7("ff",dojo.isFF=isFF);_3c7("quirks",dojo.isQuirks=_3d1);_3c7("ios",dojo.isIos=_3d2);_3c7("android",dojo.isAndroid=_3d3);dojo.locale=dojo.locale||(isIE?n.userLanguage:n.language).toLowerCase();return has;});},"dojo/_base/array":function(){define("dojo/_base/array",["./kernel","../has","./lang"],function(dojo,has,lang){var _3d6={},u,_3d7;function _3d8(){_3d6={};};function _3d9(fn){return _3d6[fn]=new Function("item","index","array",fn);};function _3da(some){var _3db=!some;return function(a,fn,o){var i=0,l=a&&a.length||0,_3dc;if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_3d6[fn]||_3d9(fn);}if(o){for(;i<l;++i){_3dc=!fn.call(o,a[i],i,a);if(some^_3dc){return !_3dc;}}}else{for(;i<l;++i){_3dc=!fn(a[i],i,a);if(some^_3dc){return !_3dc;}}}return _3db;};};function _3dd(up){var _3de=1,_3df=0,_3e0=0;if(!up){_3de=_3df=_3e0=-1;}return function(a,x,from,last){if(last&&_3de>0){return _3d7.lastIndexOf(a,x,from);}var l=a&&a.length||0,end=up?l+_3e0:_3df,i;if(from===u){i=up?_3df:l+_3e0;}else{if(from<0){i=l+from;if(i<0){i=_3df;}}else{i=from>=l?l+_3e0:from;}}if(l&&typeof a=="string"){a=a.split("");}for(;i!=end;i+=_3de){if(a[i]==x){return i;}}return -1;};};function _3e1(a,fn,o){var i=0,l=a&&a.length||0;if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_3d6[fn]||_3d9(fn);}if(o){for(;i<l;++i){fn.call(o,a[i],i,a);}}else{for(;i<l;++i){fn(a[i],i,a);}}};function map(a,fn,o,Ctr){var i=0,l=a&&a.length||0,out=new (Ctr||Array)(l);if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_3d6[fn]||_3d9(fn);}if(o){for(;i<l;++i){out[i]=fn.call(o,a[i],i,a);}}else{for(;i<l;++i){out[i]=fn(a[i],i,a);}}return out;};function _3e2(a,fn,o){var i=0,l=a&&a.length||0,out=[],_3e3;if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_3d6[fn]||_3d9(fn);}if(o){for(;i<l;++i){_3e3=a[i];if(fn.call(o,_3e3,i,a)){out.push(_3e3);}}}else{for(;i<l;++i){_3e3=a[i];if(fn(_3e3,i,a)){out.push(_3e3);}}}return out;};_3d7={every:_3da(false),some:_3da(true),indexOf:_3dd(true),lastIndexOf:_3dd(false),forEach:_3e1,map:map,filter:_3e2,clearCache:_3d8};1&&lang.mixin(dojo,_3d7);return _3d7;});},"dojo/_base/json":function(){define(["./kernel","../json"],function(dojo,json){dojo.fromJson=function(js){return eval("("+js+")");};dojo._escapeString=json.stringify;dojo.toJsonIndentStr="\t";dojo.toJson=function(it,_3e4){return json.stringify(it,function(key,_3e5){if(_3e5){var tf=_3e5.__json__||_3e5.json;if(typeof tf=="function"){return tf.call(_3e5);}}return _3e5;},_3e4&&dojo.toJsonIndentStr);};return dojo;});},"dojo/dom-class":function(){define(["./_base/lang","./_base/array","./dom"],function(lang,_3e6,dom){var _3e7="className";var cls,_3e8=/\s+/,a1=[""];function _3e9(s){if(typeof s=="string"||s instanceof String){if(s&&!_3e8.test(s)){a1[0]=s;return a1;}var a=s.split(_3e8);if(a.length&&!a[0]){a.shift();}if(a.length&&!a[a.length-1]){a.pop();}return a;}if(!s){return [];}return _3e6.filter(s,function(x){return x;});};var _3ea={};cls={contains:function containsClass(node,_3eb){return ((" "+dom.byId(node)[_3e7]+" ").indexOf(" "+_3eb+" ")>=0);},add:function addClass(node,_3ec){node=dom.byId(node);_3ec=_3e9(_3ec);var cls=node[_3e7],_3ed;cls=cls?" "+cls+" ":" ";_3ed=cls.length;for(var i=0,len=_3ec.length,c;i<len;++i){c=_3ec[i];if(c&&cls.indexOf(" "+c+" ")<0){cls+=c+" ";}}if(_3ed<cls.length){node[_3e7]=cls.substr(1,cls.length-2);}},remove:function removeClass(node,_3ee){node=dom.byId(node);var cls;if(_3ee!==undefined){_3ee=_3e9(_3ee);cls=" "+node[_3e7]+" ";for(var i=0,len=_3ee.length;i<len;++i){cls=cls.replace(" "+_3ee[i]+" "," ");}cls=lang.trim(cls);}else{cls="";}if(node[_3e7]!=cls){node[_3e7]=cls;}},replace:function replaceClass(node,_3ef,_3f0){node=dom.byId(node);_3ea[_3e7]=node[_3e7];cls.remove(_3ea,_3f0);cls.add(_3ea,_3ef);if(node[_3e7]!==_3ea[_3e7]){node[_3e7]=_3ea[_3e7];}},toggle:function toggleClass(node,_3f1,_3f2){node=dom.byId(node);if(_3f2===undefined){_3f1=_3e9(_3f1);for(var i=0,len=_3f1.length,c;i<len;++i){c=_3f1[i];cls[cls.contains(node,c)?"remove":"add"](node,c);}}else{cls[_3f2?"add":"remove"](node,_3f1);}return _3f2;}};return cls;});},"dojo/_base/window":function(){define(["./kernel","../has","./sniff"],function(dojo,has){dojo.doc=this["document"]||null;dojo.body=function(){return dojo.doc.body||dojo.doc.getElementsByTagName("body")[0];};dojo.setContext=function(_3f3,_3f4){dojo.global=ret.global=_3f3;dojo.doc=ret.doc=_3f4;};dojo.withGlobal=function(_3f5,_3f6,_3f7,_3f8){var _3f9=dojo.global;try{dojo.global=ret.global=_3f5;return dojo.withDoc.call(null,_3f5.document,_3f6,_3f7,_3f8);}finally{dojo.global=ret.global=_3f9;}};dojo.withDoc=function(_3fa,_3fb,_3fc,_3fd){var _3fe=dojo.doc,oldQ=dojo.isQuirks,_3ff=dojo.isIE,isIE,mode,pwin;try{dojo.doc=ret.doc=_3fa;dojo.isQuirks=has.add("quirks",dojo.doc.compatMode=="BackCompat",true,true);if(has("ie")){if((pwin=_3fa.parentWindow)&&pwin.navigator){isIE=parseFloat(pwin.navigator.appVersion.split("MSIE ")[1])||undefined;mode=_3fa.documentMode;if(mode&&mode!=5&&Math.floor(isIE)!=mode){isIE=mode;}dojo.isIE=has.add("ie",isIE,true,true);}}if(_3fc&&typeof _3fb=="string"){_3fb=_3fc[_3fb];}return _3fb.apply(_3fc,_3fd||[]);}finally{dojo.doc=ret.doc=_3fe;dojo.isQuirks=has.add("quirks",oldQ,true,true);dojo.isIE=has.add("ie",_3ff,true,true);}};var ret={global:dojo.global,doc:dojo.doc,body:dojo.body,setContext:dojo.setContext,withGlobal:dojo.withGlobal,withDoc:dojo.withDoc};return ret;});},"dojo/_base/config":function(){define(["../has","require"],function(has,_400){var _401={};if(1){var src=_400.rawConfig,p;for(p in src){_401[p]=src[p];}}else{var _402=function(_403,_404,_405){for(p in _403){p!="has"&&has.add(_404+p,_403[p],0,_405);}};_401=1?_400.rawConfig:this.dojoConfig||this.djConfig||{};_402(_401,"config",1);_402(_401.has,"",1);}return _401;});},"dojo/_base/event":function(){define(["./kernel","../on","../has","../dom-geometry"],function(dojo,on,has,dom){if(on._fixEvent){var _406=on._fixEvent;on._fixEvent=function(evt,se){evt=_406(evt,se);if(evt){dom.normalizeEvent(evt);}return evt;};}dojo.fixEvent=function(evt,_407){if(on._fixEvent){return on._fixEvent(evt,_407);}return evt;};dojo.stopEvent=function(evt){if(has("dom-addeventlistener")||(evt&&evt.preventDefault)){evt.preventDefault();evt.stopPropagation();}else{evt=evt||window.event;evt.cancelBubble=true;on._preventDefault.call(evt);}};return {fix:dojo.fixEvent,stop:dojo.stopEvent};});},"dojo/main":function(){define(["./_base/kernel","./has","require","./_base/sniff","./_base/lang","./_base/array","./ready","./_base/declare","./_base/connect","./_base/Deferred","./_base/json","./_base/Color","./has!dojo-firebug?./_firebug/firebug","./_base/browser","./_base/loader"],function(dojo,has,_408,_409,lang,_40a,_40b){if(dojo.config.isDebug){_408(["./_firebug/firebug"]);}true||has.add("dojo-config-require",1);if(1){var deps=dojo.config.require;if(deps){deps=_40a.map(lang.isArray(deps)?deps:[deps],function(item){return item.replace(/\./g,"/");});if(dojo.isAsync){_408(deps);}else{_40b(1,function(){_408(deps);});}}}return dojo;});},"dojo/ready":function(){define(["./_base/kernel","./has","require","./domReady","./_base/lang"],function(dojo,has,_40c,_40d,lang){var _40e=0,_40f,_410=[],_411=0,_412=function(){_40e=1;dojo._postLoad=dojo.config.afterOnLoad=true;if(_410.length){_40f(_413);}},_413=function(){if(_40e&&!_411&&_410.length){_411=1;var f=_410.shift();try{f();}finally{_411=0;}_411=0;if(_410.length){_40f(_413);}}};if(1){_40c.on("idle",_413);_40f=function(){if(_40c.idle()){_413();}};}else{_40f=function(){_40c.ready(_413);};}var _414=dojo.ready=dojo.addOnLoad=function(_415,_416,_417){var _418=lang._toArray(arguments);if(typeof _415!="number"){_417=_416;_416=_415;_415=1000;}else{_418.shift();}_417=_417?lang.hitch.apply(dojo,_418):function(){_416();};_417.priority=_415;for(var i=0;i<_410.length&&_415>=_410[i].priority;i++){}_410.splice(i,0,_417);_40f();};true||has.add("dojo-config-addOnLoad",1);if(1){var dca=dojo.config.addOnLoad;if(dca){_414[(lang.isArray(dca)?"apply":"call")](dojo,dca);}}if(1&&dojo.config.parseOnLoad&&!dojo.isAsync){_414(99,function(){if(!dojo.parser){dojo.deprecated("Add explicit require(['dojo/parser']);","","2.0");_40c(["dojo/parser"]);}});}if(1){_40d(_412);}else{_412();}return _414;});},"dojo/aspect":function(){define([],function(){"use strict";var _419=0;function _41a(_41b,type,_41c,_41d){var _41e=_41b[type];var _41f=type=="around";var _420;if(_41f){var _421=_41c(function(){return _41e.advice(this,arguments);});_420={remove:function(){_420.cancelled=true;},advice:function(_422,args){return _420.cancelled?_41e.advice(_422,args):_421.apply(_422,args);}};}else{_420={remove:function(){var _423=_420.previous;var next=_420.next;if(!next&&!_423){delete _41b[type];}else{if(_423){_423.next=next;}else{_41b[type]=next;}if(next){next.previous=_423;}}},id:_419++,advice:_41c,receiveArguments:_41d};}if(_41e&&!_41f){if(type=="after"){var next=_41e;while(next){_41e=next;next=next.next;}_41e.next=_420;_420.previous=_41e;}else{if(type=="before"){_41b[type]=_420;_420.next=_41e;_41e.previous=_420;}}}else{_41b[type]=_420;}return _420;};function _424(type){return function(_425,_426,_427,_428){var _429=_425[_426],_42a;if(!_429||_429.target!=_425){_425[_426]=_42a=function(){var _42b=_419;var args=arguments;var _42c=_42a.before;while(_42c){args=_42c.advice.apply(this,args)||args;_42c=_42c.next;}if(_42a.around){var _42d=_42a.around.advice(this,args);}var _42e=_42a.after;while(_42e&&_42e.id<_42b){_42d=_42e.receiveArguments?_42e.advice.apply(this,args)||_42d:_42e.advice.call(this,_42d);_42e=_42e.next;}return _42d;};if(_429){_42a.around={advice:function(_42f,args){return _429.apply(_42f,args);}};}_42a.target=_425;}var _430=_41a((_42a||_429),type,_427,_428);_427=null;return _430;};};return {before:_424("before"),around:_424("around"),after:_424("after")};});},"dojo/_base/connect":function(){define(["./kernel","../on","../topic","../aspect","./event","../mouse","./sniff","./lang","../keys"],function(_431,on,hub,_432,_433,_434,has,lang){has.add("events-keypress-typed",function(){var _435={charCode:0};try{_435=document.createEvent("KeyboardEvent");(_435.initKeyboardEvent||_435.initKeyEvent).call(_435,"keypress",true,true,null,false,false,false,false,9,3);}catch(e){}return _435.charCode==0&&!has("opera");});function _436(obj,_437,_438,_439,_43a){_439=lang.hitch(_438,_439);if(!obj||!(obj.addEventListener||obj.attachEvent)){return _432.after(obj||_431.global,_437,_439,true);}if(typeof _437=="string"&&_437.substring(0,2)=="on"){_437=_437.substring(2);}if(!obj){obj=_431.global;}if(!_43a){switch(_437){case "keypress":_437=_43b;break;case "mouseenter":_437=_434.enter;break;case "mouseleave":_437=_434.leave;break;}}return on(obj,_437,_439,_43a);};var _43c={106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39,229:113};var _43d=has("mac")?"metaKey":"ctrlKey";var _43e=function(evt,_43f){var faux=lang.mixin({},evt,_43f);_440(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};function _440(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;};var _43b;if(has("events-keypress-typed")){var _441=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};_43b=function(_442,_443){var _444=on(_442,"keydown",function(evt){var k=evt.keyCode;var _445=(k!=13||(has("ie")>=9&&!has("quirks")))&&k!=32&&(k!=27||!has("ie"))&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222)&&k!=229;if(_445||evt.ctrlKey){var c=_445?0:k;if(evt.ctrlKey){if(k==3||k==13){return _443.call(evt.currentTarget,evt);}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=_43c[c]||c;}}}}var faux=_43e(evt,{type:"keypress",faux:true,charCode:c});_443.call(evt.currentTarget,faux);if(has("ie")){_441(evt,faux.keyCode);}}});var _446=on(_442,"keypress",function(evt){var c=evt.charCode;c=c>=32?c:0;evt=_43e(evt,{charCode:c,faux:true});return _443.call(this,evt);});return {remove:function(){_444.remove();_446.remove();}};};}else{if(has("opera")){_43b=function(_447,_448){return on(_447,"keypress",function(evt){var c=evt.which;if(c==3){c=99;}c=c<32&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){c+=32;}return _448.call(this,_43e(evt,{charCode:c}));});};}else{_43b=function(_449,_44a){return on(_449,"keypress",function(evt){_440(evt);return _44a.call(this,evt);});};}}var _44b={_keypress:_43b,connect:function(obj,_44c,_44d,_44e,_44f){var a=arguments,args=[],i=0;args.push(typeof a[0]=="string"?null:a[i++],a[i++]);var a1=a[i+1];args.push(typeof a1=="string"||typeof a1=="function"?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++){args.push(a[i]);}return _436.apply(this,args);},disconnect:function(_450){if(_450){_450.remove();}},subscribe:function(_451,_452,_453){return hub.subscribe(_451,lang.hitch(_452,_453));},publish:function(_454,args){return hub.publish.apply(hub,[_454].concat(args));},connectPublisher:function(_455,obj,_456){var pf=function(){_44b.publish(_455,arguments);};return _456?_44b.connect(obj,_456,pf):_44b.connect(obj,pf);},isCopyKey:function(e){return e[_43d];}};_44b.unsubscribe=_44b.disconnect;1&&lang.mixin(_431,_44b);return _44b;});}}});(function(){var _457=this.require;_457({cache:{}});!_457.async&&_457(["dojo"]);_457.boot&&_457.apply(null,_457.boot);})(); \ No newline at end of file
+(function(_1,_2){var _3=function(){},_4=function(it){for(var p in it){return 0;}return 1;},_5={}.toString,_6=function(it){return _5.call(it)=="[object Function]";},_7=function(it){return _5.call(it)=="[object String]";},_8=function(it){return _5.call(it)=="[object Array]";},_9=function(_a,_b){if(_a){for(var i=0;i<_a.length;){_b(_a[i++]);}}},_c=function(_d,_e){for(var p in _e){_d[p]=_e[p];}return _d;},_f=function(_10,_11){return _c(new Error(_10),{src:"dojoLoader",info:_11});},_12=1,uid=function(){return "_"+_12++;},req=function(_13,_14,_15){return _16(_13,_14,_15,0,req);},_17=this,doc=_17.document,_18=doc&&doc.createElement("DiV"),has=req.has=function(_19){return _6(_1a[_19])?(_1a[_19]=_1a[_19](_17,doc,_18)):_1a[_19];},_1a=has.cache=_2.hasCache;has.add=function(_1b,_1c,now,_1d){(_1a[_1b]===undefined||_1d)&&(_1a[_1b]=_1c);return now&&has(_1b);};0&&has.add("host-node",_1.has&&"host-node" in _1.has?_1.has["host-node"]:(typeof process=="object"&&process.versions&&process.versions.node&&process.versions.v8));if(0){require("./_base/configNode.js").config(_2);_2.loaderPatch.nodeRequire=require;}0&&has.add("host-rhino",_1.has&&"host-rhino" in _1.has?_1.has["host-rhino"]:(typeof load=="function"&&(typeof Packages=="function"||typeof Packages=="object")));if(0){for(var _1e=_1.baseUrl||".",arg,_1f=this.arguments,i=0;i<_1f.length;){arg=(_1f[i++]+"").split("=");if(arg[0]=="baseUrl"){_1e=arg[1];break;}}load(_1e+"/_base/configRhino.js");rhinoDojoConfig(_2,_1e,_1f);}for(var p in _1.has){has.add(p,_1.has[p],0,1);}var _20=1,_21=2,_22=3,_23=4,_24=5;if(0){_20="requested";_21="arrived";_22="not-a-module";_23="executing";_24="executed";}var _25=0,_26="sync",xd="xd",_27=[],_28=0,_29=_3,_2a=_3,_2b;if(1){req.isXdUrl=_3;req.initSyncLoader=function(_2c,_2d,_2e){if(!_28){_28=_2c;_29=_2d;_2a=_2e;}return {sync:_26,requested:_20,arrived:_21,nonmodule:_22,executing:_23,executed:_24,syncExecStack:_27,modules:_2f,execQ:_30,getModule:_31,injectModule:_32,setArrived:_33,signal:_34,finishExec:_35,execModule:_36,dojoRequirePlugin:_28,getLegacyMode:function(){return _25;},guardCheckComplete:_37};};if(1){var _38=location.protocol,_39=location.host;req.isXdUrl=function(url){if(/^\./.test(url)){return false;}if(/^\/\//.test(url)){return true;}var _3a=url.match(/^([^\/\:]+\:)\/+([^\/]+)/);return _3a&&(_3a[1]!=_38||(_39&&_3a[2]!=_39));};1||has.add("dojo-xhr-factory",1);has.add("dojo-force-activex-xhr",1&&!doc.addEventListener&&window.location.protocol=="file:");has.add("native-xhr",typeof XMLHttpRequest!="undefined");if(has("native-xhr")&&!has("dojo-force-activex-xhr")){_2b=function(){return new XMLHttpRequest();};}else{for(var _3b=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],_3c,i=0;i<3;){try{_3c=_3b[i++];if(new ActiveXObject(_3c)){break;}}catch(e){}}_2b=function(){return new ActiveXObject(_3c);};}req.getXhr=_2b;has.add("dojo-gettext-api",1);req.getText=function(url,_3d,_3e){var xhr=_2b();xhr.open("GET",_3f(url),false);xhr.send(null);if(xhr.status==200||(!location.host&&!xhr.status)){if(_3e){_3e(xhr.responseText,_3d);}}else{throw _f("xhrFailed",xhr.status);}return xhr.responseText;};}}else{req.async=1;}var _40=new Function("return eval(arguments[0]);");req.eval=function(_41,_42){return _40(_41+"\r\n////@ sourceURL="+_42);};var _43={},_44="error",_34=req.signal=function(_45,_46){var _47=_43[_45];_9(_47&&_47.slice(0),function(_48){_48.apply(null,_8(_46)?_46:[_46]);});},on=req.on=function(_49,_4a){var _4b=_43[_49]||(_43[_49]=[]);_4b.push(_4a);return {remove:function(){for(var i=0;i<_4b.length;i++){if(_4b[i]===_4a){_4b.splice(i,1);return;}}}};};var _4c=[],_4d={},_4e=[],_4f={},map=req.map={},_50=[],_2f={},_51="",_52={},_53="url:",_54={},_55={};if(1){var _56=function(_57){var p,_58,_59,now,m;for(p in _54){_58=_54[p];_59=p.match(/^url\:(.+)/);if(_59){_52[_53+_5a(_59[1],_57)]=_58;}else{if(p=="*now"){now=_58;}else{if(p!="*noref"){m=_5b(p,_57);_52[m.mid]=_52[_53+m.url]=_58;}}}}if(now){now(_5c(_57));}_54={};},_5d=function(s){return s.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(c){return "\\"+c;});},_5e=function(map,_5f){_5f.splice(0,_5f.length);for(var p in map){_5f.push([p,map[p],new RegExp("^"+_5d(p)+"(/|$)"),p.length]);}_5f.sort(function(lhs,rhs){return rhs[3]-lhs[3];});return _5f;},_60=function(_61){var _62=_61.name;if(!_62){_62=_61;_61={name:_62};}_61=_c({main:"main"},_61);_61.location=_61.location?_61.location:_62;if(_61.packageMap){map[_62]=_61.packageMap;}if(!_61.main.indexOf("./")){_61.main=_61.main.substring(2);}_4f[_62]=_61;},_63=[],_64=function(_65,_66,_67){for(var p in _65){if(p=="waitSeconds"){req.waitms=(_65[p]||0)*1000;}if(p=="cacheBust"){_51=_65[p]?(_7(_65[p])?_65[p]:(new Date()).getTime()+""):"";}if(p=="baseUrl"||p=="combo"){req[p]=_65[p];}if(1&&p=="async"){var _68=_65[p];req.legacyMode=_25=(_7(_68)&&/sync|legacyAsync/.test(_68)?_68:(!_68?_26:false));req.async=!_25;}if(_65[p]!==_1a){req.rawConfig[p]=_65[p];p!="has"&&has.add("config-"+p,_65[p],0,_66);}}if(!req.baseUrl){req.baseUrl="./";}if(!/\/$/.test(req.baseUrl)){req.baseUrl+="/";}for(p in _65.has){has.add(p,_65.has[p],0,_66);}_9(_65.packages,_60);for(_1e in _65.packagePaths){_9(_65.packagePaths[_1e],function(_69){var _6a=_1e+"/"+_69;if(_7(_69)){_69={name:_69};}_69.location=_6a;_60(_69);});}_5e(_c(map,_65.map),_50);_9(_50,function(_6b){_6b[1]=_5e(_6b[1],[]);if(_6b[0]=="*"){_50.star=_6b;}});_5e(_c(_4d,_65.paths),_4e);_9(_65.aliases,function(_6c){if(_7(_6c[0])){_6c[0]=new RegExp("^"+_5d(_6c[0])+"$");}_4c.push(_6c);});if(_66){_63.push({config:_65.config});}else{for(p in _65.config){var _6d=_31(p,_67);_6d.config=_c(_6d.config||{},_65.config[p]);}}if(_65.cache){_56();_54=_65.cache;if(_65.cache["*noref"]){_56();}}_34("config",[_65,req.rawConfig]);};if(has("dojo-cdn")||1){var _6e=doc.getElementsByTagName("script"),i=0,_6f,_70,src,_71;while(i<_6e.length){_6f=_6e[i++];if((src=_6f.getAttribute("src"))&&(_71=src.match(/(((.*)\/)|^)dojo\.js(\W|$)/i))){_70=_71[3]||"";_2.baseUrl=_2.baseUrl||_70;src=(_6f.getAttribute("data-dojo-config")||_6f.getAttribute("djConfig"));if(src){_55=req.eval("({ "+src+" })","data-dojo-config");}if(0){var _72=_6f.getAttribute("data-main");if(_72){_55.deps=_55.deps||[_72];}}break;}}}if(0){try{if(window.parent!=window&&window.parent.require){var doh=window.parent.require("doh");doh&&_c(_55,doh.testConfig);}}catch(e){}}req.rawConfig={};_64(_2,1);if(has("dojo-cdn")){_4f.dojo.location=_70;if(_70){_70+="/";}_4f.dijit.location=_70+"../dijit/";_4f.dojox.location=_70+"../dojox/";}_64(_1,1);_64(_55,1);}else{_4d=_2.paths;_4e=_2.pathsMapProg;_4f=_2.packs;_4c=_2.aliases;_50=_2.mapProgs;_2f=_2.modules;_52=_2.cache;_51=_2.cacheBust;req.rawConfig=_2;}if(0){req.combo=req.combo||{add:_3};var _73=0,_74=[],_75=null;}var _76=function(_77){_37(function(){_9(_77.deps,_32);if(0&&_73&&!_75){_75=setTimeout(function(){_73=0;_75=null;req.combo.done(function(_78,url){var _79=function(){_7a(0,_78);_7b();};_74.push(_78);_7c=_78;req.injectUrl(url,_79,_78);_7c=0;},req);},0);}});},_16=function(a1,a2,a3,_7d,_7e){var _7f,_80;if(_7(a1)){_7f=_31(a1,_7d,true);if(_7f&&_7f.executed){return _7f.result;}throw _f("undefinedModule",a1);}if(!_8(a1)){_64(a1,0,_7d);a1=a2;a2=a3;}if(_8(a1)){if(!a1.length){a2&&a2();}else{_80="require*"+uid();for(var mid,_81=[],i=0;i<a1.length;){mid=a1[i++];_81.push(_31(mid,_7d));}_7f=_c(_82("",_80,0,""),{injected:_21,deps:_81,def:a2||_3,require:_7d?_7d.require:req,gc:1});_2f[_7f.mid]=_7f;_76(_7f);var _83=_84&&_25!=_26;_37(function(){_36(_7f,_83);});if(!_7f.executed){_30.push(_7f);}_7b();}}return _7e;},_5c=function(_85){if(!_85){return req;}var _86=_85.require;if(!_86){_86=function(a1,a2,a3){return _16(a1,a2,a3,_85,_86);};_85.require=_c(_86,req);_86.module=_85;_86.toUrl=function(_87){return _5a(_87,_85);};_86.toAbsMid=function(mid){return _b4(mid,_85);};if(0){_86.undef=function(mid){req.undef(mid,_85);};}if(1){_86.syncLoadNls=function(mid){var _88=_5b(mid,_85),_89=_2f[_88.mid];if(!_89||!_89.executed){_8a=_52[_88.mid]||_52[_53+_88.url];if(_8a){_8b(_8a);_89=_2f[_88.mid];}}return _89&&_89.executed&&_89.result;};}}return _86;},_30=[],_8c=[],_8d={},_8e=function(_8f){_8f.injected=_20;_8d[_8f.mid]=1;if(_8f.url){_8d[_8f.url]=_8f.pack||1;}_90();},_33=function(_91){_91.injected=_21;delete _8d[_91.mid];if(_91.url){delete _8d[_91.url];}if(_4(_8d)){_92();1&&_25==xd&&(_25=_26);}},_93=req.idle=function(){return !_8c.length&&_4(_8d)&&!_30.length&&!_84;},_94=function(_95,map){if(map){for(var i=0;i<map.length;i++){if(map[i][2].test(_95)){return map[i];}}}return 0;},_96=function(_97){var _98=[],_99,_9a;_97=_97.replace(/\\/g,"/").split("/");while(_97.length){_99=_97.shift();if(_99==".."&&_98.length&&_9a!=".."){_98.pop();_9a=_98[_98.length-1];}else{if(_99!="."){_98.push(_9a=_99);}}}return _98.join("/");},_82=function(pid,mid,_9b,url){if(1){var xd=req.isXdUrl(url);return {pid:pid,mid:mid,pack:_9b,url:url,executed:0,def:0,isXd:xd,isAmd:!!(xd||(_4f[pid]&&_4f[pid].isAmd))};}else{return {pid:pid,mid:mid,pack:_9b,url:url,executed:0,def:0};}},_9c=function(mid,_9d,_9e,_9f,_a0,_a1,_a2,_a3){var pid,_a4,_a5,_a6,_a7,url,_a8,_a9,_aa;_aa=mid;_a9=/^\./.test(mid);if(/(^\/)|(\:)|(\.js$)/.test(mid)||(_a9&&!_9d)){return _82(0,mid,0,mid);}else{mid=_96(_a9?(_9d.mid+"/../"+mid):mid);if(/^\./.test(mid)){throw _f("irrationalPath",mid);}if(_9d){_a7=_94(_9d.mid,_a1);}_a7=_a7||_a1.star;_a7=_a7&&_94(mid,_a7[1]);if(_a7){mid=_a7[1]+mid.substring(_a7[3]);}_71=mid.match(/^([^\/]+)(\/(.+))?$/);pid=_71?_71[1]:"";if((_a4=_9e[pid])){mid=pid+"/"+(_a5=(_71[3]||_a4.main));}else{pid="";}var _ab=0,_ac=0;_9(_4c,function(_ad){var _ae=mid.match(_ad[0]);if(_ae&&_ae.length>_ab){_ac=_6(_ad[1])?mid.replace(_ad[0],_ad[1]):_ad[1];}});if(_ac){return _9c(_ac,0,_9e,_9f,_a0,_a1,_a2,_a3);}_a8=_9f[mid];if(_a8){return _a3?_82(_a8.pid,_a8.mid,_a8.pack,_a8.url):_9f[mid];}}_a7=_94(mid,_a2);if(_a7){url=_a7[1]+mid.substring(_a7[3]);}else{if(pid){url=_a4.location+"/"+_a5;}else{if(has("config-tlmSiblingOfDojo")){url="../"+mid;}else{url=mid;}}}if(!(/(^\/)|(\:)/.test(url))){url=_a0+url;}url+=".js";return _82(pid,mid,_a4,_96(url));},_5b=function(mid,_af){return _9c(mid,_af,_4f,_2f,req.baseUrl,_50,_4e);},_b0=function(_b1,_b2,_b3){return _b1.normalize?_b1.normalize(_b2,function(mid){return _b4(mid,_b3);}):_b4(_b2,_b3);},_b5=0,_31=function(mid,_b6,_b7){var _b8,_b9,_ba,_bb;_b8=mid.match(/^(.+?)\!(.*)$/);if(_b8){_b9=_31(_b8[1],_b6,_b7);if(1&&_25==_26&&!_b9.executed){_32(_b9);if(_b9.injected===_21&&!_b9.executed){_37(function(){_36(_b9);});}if(_b9.executed){_bc(_b9);}else{_30.unshift(_b9);}}if(_b9.executed===_24&&!_b9.load){_bc(_b9);}if(_b9.load){_ba=_b0(_b9,_b8[2],_b6);mid=(_b9.mid+"!"+(_b9.dynamic?++_b5+"!":"")+_ba);}else{_ba=_b8[2];mid=_b9.mid+"!"+(++_b5)+"!waitingForPlugin";}_bb={plugin:_b9,mid:mid,req:_5c(_b6),prid:_ba};}else{_bb=_5b(mid,_b6);}return _2f[_bb.mid]||(!_b7&&(_2f[_bb.mid]=_bb));},_b4=req.toAbsMid=function(mid,_bd){return _5b(mid,_bd).mid;},_5a=req.toUrl=function(_be,_bf){var _c0=_5b(_be+"/x",_bf),url=_c0.url;return _3f(_c0.pid===0?_be:url.substring(0,url.length-5));},_c1={injected:_21,executed:_24,def:_22,result:_22},_c2=function(mid){return _2f[mid]=_c({mid:mid},_c1);},_c3=_c2("require"),_c4=_c2("exports"),_c5=_c2("module"),_c6=function(_c7,_c8){req.trace("loader-run-factory",[_c7.mid]);var _c9=_c7.def,_ca;1&&_27.unshift(_c7);if(has("config-dojo-loader-catches")){try{_ca=_6(_c9)?_c9.apply(null,_c8):_c9;}catch(e){_34(_44,_c7.result=_f("factoryThrew",[_c7,e]));}}else{_ca=_6(_c9)?_c9.apply(null,_c8):_c9;}_c7.result=_ca===undefined&&_c7.cjs?_c7.cjs.exports:_ca;1&&_27.shift(_c7);},_cb={},_cc=0,_bc=function(_cd){var _ce=_cd.result;_cd.dynamic=_ce.dynamic;_cd.normalize=_ce.normalize;_cd.load=_ce.load;return _cd;},_cf=function(_d0){var map={};_9(_d0.loadQ,function(_d1){var _d2=_b0(_d0,_d1.prid,_d1.req.module),mid=_d0.dynamic?_d1.mid.replace(/waitingForPlugin$/,_d2):(_d0.mid+"!"+_d2),_d3=_c(_c({},_d1),{mid:mid,prid:_d2,injected:0});if(!_2f[mid]){_e5(_2f[mid]=_d3);}map[_d1.mid]=_2f[mid];_33(_d1);delete _2f[_d1.mid];});_d0.loadQ=0;var _d4=function(_d5){for(var _d6,_d7=_d5.deps||[],i=0;i<_d7.length;i++){_d6=map[_d7[i].mid];if(_d6){_d7[i]=_d6;}}};for(var p in _2f){_d4(_2f[p]);}_9(_30,_d4);},_35=function(_d8){req.trace("loader-finish-exec",[_d8.mid]);_d8.executed=_24;_d8.defOrder=_cc++;1&&_9(_d8.provides,function(cb){cb();});if(_d8.loadQ){_bc(_d8);_cf(_d8);}for(i=0;i<_30.length;){if(_30[i]===_d8){_30.splice(i,1);}else{i++;}}if(/^require\*/.test(_d8.mid)){delete _2f[_d8.mid];}},_d9=[],_36=function(_da,_db){if(_da.executed===_23){req.trace("loader-circular-dependency",[_d9.concat(_da.mid).join("->")]);return (!_da.def||_db)?_cb:(_da.cjs&&_da.cjs.exports);}if(!_da.executed){if(!_da.def){return _cb;}var mid=_da.mid,_dc=_da.deps||[],arg,_dd,_de=[],i=0;if(0){_d9.push(mid);req.trace("loader-exec-module",["exec",_d9.length,mid]);}_da.executed=_23;while(i<_dc.length){arg=_dc[i++];_dd=((arg===_c3)?_5c(_da):((arg===_c4)?_da.cjs.exports:((arg===_c5)?_da.cjs:_36(arg,_db))));if(_dd===_cb){_da.executed=0;req.trace("loader-exec-module",["abort",mid]);0&&_d9.pop();return _cb;}_de.push(_dd);}_c6(_da,_de);_35(_da);0&&_d9.pop();}return _da.result;},_84=0,_37=function(_df){try{_84++;_df();}finally{_84--;}if(_93()){_34("idle",[]);}},_7b=function(){if(_84){return;}_37(function(){_29();for(var _e0,_e1,i=0;i<_30.length;){_e0=_cc;_e1=_30[i];_36(_e1);if(_e0!=_cc){_29();i=0;}else{i++;}}});};if(0){req.undef=function(_e2,_e3){var _e4=_31(_e2,_e3);_33(_e4);delete _2f[_e4.mid];};}if(1){if(has("dojo-loader-eval-hint-url")===undefined){has.add("dojo-loader-eval-hint-url",1);}var _3f=function(url){url+="";return url+(_51?((/\?/.test(url)?"&":"?")+_51):"");},_e5=function(_e6){var _e7=_e6.plugin;if(_e7.executed===_24&&!_e7.load){_bc(_e7);}var _e8=function(def){_e6.result=def;_33(_e6);_35(_e6);_7b();};if(_e7.load){_e7.load(_e6.prid,_e6.req,_e8);}else{if(_e7.loadQ){_e7.loadQ.push(_e6);}else{_e7.loadQ=[_e6];_30.unshift(_e7);_32(_e7);}}},_8a=0,_7c=0,_e9=0,_8b=function(_ea,_eb){if(has("config-stripStrict")){_ea=_ea.replace(/"use strict"/g,"");}_e9=1;if(has("config-dojo-loader-catches")){try{if(_ea===_8a){_8a.call(null);}else{req.eval(_ea,has("dojo-loader-eval-hint-url")?_eb.url:_eb.mid);}}catch(e){_34(_44,_f("evalModuleThrew",_eb));}}else{if(_ea===_8a){_8a.call(null);}else{req.eval(_ea,has("dojo-loader-eval-hint-url")?_eb.url:_eb.mid);}}_e9=0;},_32=function(_ec){var mid=_ec.mid,url=_ec.url;if(_ec.executed||_ec.injected||_8d[mid]||(_ec.url&&((_ec.pack&&_8d[_ec.url]===_ec.pack)||_8d[_ec.url]==1))){return;}_8e(_ec);if(0){var _ed=0;if(_ec.plugin&&_ec.plugin.isCombo){req.combo.add(_ec.plugin.mid,_ec.prid,0,req);_ed=1;}else{if(!_ec.plugin){_ed=req.combo.add(0,_ec.mid,_ec.url,req);}}if(_ed){_73=1;return;}}if(_ec.plugin){_e5(_ec);return;}var _ee=function(){_7a(_ec);if(_ec.injected!==_21){_33(_ec);_c(_ec,_c1);req.trace("loader-define-nonmodule",[_ec.url]);}if(1&&_25){!_27.length&&_7b();}else{_7b();}};_8a=_52[mid]||_52[_53+_ec.url];if(_8a){req.trace("loader-inject",["cache",_ec.mid,url]);_8b(_8a,_ec);_ee();return;}if(1&&_25){if(_ec.isXd){_25==_26&&(_25=xd);}else{if(_ec.isAmd&&_25!=_26){}else{var _ef=function(_f0){if(_25==_26){_27.unshift(_ec);_8b(_f0,_ec);_27.shift();_7a(_ec);if(!_ec.cjs){_33(_ec);_35(_ec);}if(_ec.finish){var _f1=mid+"*finish",_f2=_ec.finish;delete _ec.finish;def(_f1,["dojo",("dojo/require!"+_f2.join(",")).replace(/\./g,"/")],function(_f3){_9(_f2,function(mid){_f3.require(mid);});});_30.unshift(_31(_f1));}_ee();}else{_f0=_2a(_ec,_f0);if(_f0){_8b(_f0,_ec);_ee();}else{_7c=_ec;req.injectUrl(_3f(url),_ee,_ec);_7c=0;}}};req.trace("loader-inject",["xhr",_ec.mid,url,_25!=_26]);if(has("config-dojo-loader-catches")){try{req.getText(url,_25!=_26,_ef);}catch(e){_34(_44,_f("xhrInjectFailed",[_ec,e]));}}else{req.getText(url,_25!=_26,_ef);}return;}}}req.trace("loader-inject",["script",_ec.mid,url]);_7c=_ec;req.injectUrl(_3f(url),_ee,_ec);_7c=0;},_f4=function(_f5,_f6,def){req.trace("loader-define-module",[_f5.mid,_f6]);if(0&&_f5.plugin&&_f5.plugin.isCombo){_f5.result=_6(def)?def():def;_33(_f5);_35(_f5);return _f5;}var mid=_f5.mid;if(_f5.injected===_21){_34(_44,_f("multipleDefine",_f5));return _f5;}_c(_f5,{deps:_f6,def:def,cjs:{id:_f5.mid,uri:_f5.url,exports:(_f5.result={}),setExports:function(_f7){_f5.cjs.exports=_f7;},config:function(){return _f5.config;}}});for(var i=0;i<_f6.length;i++){_f6[i]=_31(_f6[i],_f5);}if(1&&_25&&!_8d[mid]){_76(_f5);_30.push(_f5);_7b();}_33(_f5);if(!_6(def)&&!_f6.length){_f5.result=def;_35(_f5);}return _f5;},_7a=function(_f8,_f9){var _fa=[],_fb,_fc;while(_8c.length){_fc=_8c.shift();_f9&&(_fc[0]=_f9.shift());_fb=(_fc[0]&&_31(_fc[0]))||_f8;_fa.push([_fb,_fc[1],_fc[2]]);}_56(_f8);_9(_fa,function(_fd){_76(_f4.apply(null,_fd));});};}var _fe=0,_92=_3,_90=_3;if(1){_92=function(){_fe&&clearTimeout(_fe);_fe=0;},_90=function(){_92();if(req.waitms){_fe=window.setTimeout(function(){_92();_34(_44,_f("timeout",_8d));},req.waitms);}};}if(1){has.add("ie-event-behavior",!!doc.attachEvent&&(typeof opera==="undefined"||opera.toString()!="[object Opera]"));}if(1&&(1||1)){var _ff=function(node,_100,_101,_102){if(!has("ie-event-behavior")){node.addEventListener(_100,_102,false);return function(){node.removeEventListener(_100,_102,false);};}else{node.attachEvent(_101,_102);return function(){node.detachEvent(_101,_102);};}},_103=_ff(window,"load","onload",function(){req.pageLoaded=1;doc.readyState!="complete"&&(doc.readyState="complete");_103();});if(1){var _104=doc.getElementsByTagName("script")[0],_105=_104.parentNode;req.injectUrl=function(url,_106,_107){var node=_107.node=doc.createElement("script"),_108=function(e){e=e||window.event;var node=e.target||e.srcElement;if(e.type==="load"||/complete|loaded/.test(node.readyState)){_109();_10a();_106&&_106();}},_109=_ff(node,"load","onreadystatechange",_108),_10a=_ff(node,"error","onerror",function(e){_109();_10a();_34(_44,_f("scriptError",[url,e]));});node.type="text/javascript";node.charset="utf-8";node.src=url;_105.insertBefore(node,_104);return node;};}}if(1){req.log=function(){try{for(var i=0;i<arguments.length;i++){}}catch(e){}};}else{req.log=_3;}if(0){var _10b=req.trace=function(_10c,args){if(_10b.on&&_10b.group[_10c]){_34("trace",[_10c,args]);for(var arg,dump=[],text="trace:"+_10c+(args.length?(":"+args[0]):""),i=1;i<args.length;){arg=args[i++];if(_7(arg)){text+=", "+arg;}else{dump.push(arg);}}req.log(text);dump.length&&dump.push(".");req.log.apply(req,dump);}};_c(_10b,{on:1,group:{},set:function(_10d,_10e){if(_7(_10d)){_10b.group[_10d]=_10e;}else{_c(_10b.group,_10d);}}});_10b.set(_c(_c(_c({},_2.trace),_1.trace),_55.trace));on("config",function(_10f){_10f.trace&&_10b.set(_10f.trace);});}else{req.trace=_3;}var def=function(mid,_110,_111){var _112=arguments.length,_113=["require","exports","module"],args=[0,mid,_110];if(_112==1){args=[0,(_6(mid)?_113:[]),mid];}else{if(_112==2&&_7(mid)){args=[mid,(_6(_110)?_113:[]),_110];}else{if(_112==3){args=[mid,_110,_111];}}}if(0&&args[1]===_113){args[2].toString().replace(/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,"").replace(/require\(["']([\w\!\-_\.\/]+)["']\)/g,function(_114,dep){args[1].push(dep);});}req.trace("loader-define",args.slice(0,2));var _115=args[0]&&_31(args[0]),_116;if(_115&&!_8d[_115.mid]){_76(_f4(_115,args[1],args[2]));}else{if(!has("ie-event-behavior")||!1||_e9){_8c.push(args);}else{_115=_115||_7c;if(!_115){for(mid in _8d){_116=_2f[mid];if(_116&&_116.node&&_116.node.readyState==="interactive"){_115=_116;break;}}if(0&&!_115){for(var i=0;i<_74.length;i++){_115=_74[i];if(_115.node&&_115.node.readyState==="interactive"){break;}_115=0;}}}if(0&&_8(_115)){_76(_f4(_31(_115.shift()),args[1],args[2]));if(!_115.length){_74.splice(i,1);}}else{if(_115){_56(_115);_76(_f4(_115,args[1],args[2]));}else{_34(_44,_f("ieDefineFailed",args[0]));}}_7b();}}};def.amd={vendor:"dojotoolkit.org"};if(0){req.def=def;}_c(_c(req,_2.loaderPatch),_1.loaderPatch);on(_44,function(arg){try{console.error(arg);if(arg instanceof Error){for(var p in arg){}}}catch(e){}});_c(req,{uid:uid,cache:_52,packs:_4f});if(0){_c(req,{paths:_4d,aliases:_4c,modules:_2f,legacyMode:_25,execQ:_30,defQ:_8c,waiting:_8d,packs:_4f,mapProgs:_50,pathsMapProg:_4e,listenerQueues:_43,computeMapProg:_5e,runMapProg:_94,compactPath:_96,getModuleInfo:_9c});}if(_17.define){if(1){_34(_44,_f("defineAlreadyDefined",0));}return;}else{_17.define=def;_17.require=req;if(0){require=req;}}if(0&&req.combo&&req.combo.plugins){var _117=req.combo.plugins,_118;for(_118 in _117){_c(_c(_31(_118),_117[_118]),{isCombo:1,executed:"executed",load:1});}}if(1){_9(_63,function(c){_64(c);});var _119=_55.deps||_1.deps||_2.deps,_11a=_55.callback||_1.callback||_2.callback;req.boot=(_119||_11a)?[_119||[],_11a]:0;}if(!1){!req.async&&req(["dojo"]);req.boot&&req.apply(null,req.boot);}})(this.dojoConfig||this.djConfig||this.require||{},{async:0,hasCache:{"config-selectorEngine":"acme","config-tlmSiblingOfDojo":1,"dojo-built":1,"dojo-loader":1,dom:1,"host-browser":1},packages:[{location:"../dijit",name:"dijit"},{location:".",name:"dojo"}]});require({cache:{"dojo/main":function(){define("dojo/main",["./_base/kernel","./has","require","./sniff","./_base/lang","./_base/array","./_base/config","./ready","./_base/declare","./_base/connect","./_base/Deferred","./_base/json","./_base/Color","./has!dojo-firebug?./_firebug/firebug","./_base/browser","./_base/loader"],function(_11b,has,_11c,_11d,lang,_11e,_11f,_120){if(_11f.isDebug){_11c(["./_firebug/firebug"]);}1||has.add("dojo-config-require",1);if(1){var deps=_11f.require;if(deps){deps=_11e.map(lang.isArray(deps)?deps:[deps],function(item){return item.replace(/\./g,"/");});if(_11b.isAsync){_11c(deps);}else{_120(1,function(){_11c(deps);});}}}return _11b;});},"dojo/_base/kernel":function(){define(["../has","./config","require","module"],function(has,_121,_122,_123){var i,p,_124={},_125={},dojo={config:_121,global:this,dijit:_124,dojox:_125};var _126={dojo:["dojo",dojo],dijit:["dijit",_124],dojox:["dojox",_125]},_127=(_122.map&&_122.map[_123.id.match(/[^\/]+/)[0]]),item;for(p in _127){if(_126[p]){_126[p][0]=_127[p];}else{_126[p]=[_127[p],{}];}}for(p in _126){item=_126[p];item[1]._scopeName=item[0];if(!_121.noGlobals){this[item[0]]=item[1];}}dojo.scopeMap=_126;dojo.baseUrl=dojo.config.baseUrl=_122.baseUrl;dojo.isAsync=!1||_122.async;dojo.locale=_121.locale;var rev="$Rev: 30226 $".match(/\d+/);dojo.version={major:1,minor:8,patch:3,flag:"",revision:rev?+rev[0]:NaN,toString:function(){var v=dojo.version;return v.major+"."+v.minor+"."+v.patch+v.flag+" ("+v.revision+")";}};1||has.add("extend-dojo",1);(Function("d","d.eval = function(){return d.global.eval ? d.global.eval(arguments[0]) : eval(arguments[0]);}"))(dojo);if(0){dojo.exit=function(_128){quit(_128);};}else{dojo.exit=function(){};}1||has.add("dojo-guarantee-console",1);if(1){typeof console!="undefined"||(console={});var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var tn;i=0;while((tn=cn[i++])){if(!console[tn]){(function(){var tcn=tn+"";console[tcn]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(tcn+":");console["log"](a.join(" "));}:function(){};console[tcn]._fake=true;})();}}}has.add("dojo-debug-messages",!!_121.isDebug);dojo.deprecated=dojo.experimental=function(){};if(has("dojo-debug-messages")){dojo.deprecated=function(_129,_12a,_12b){var _12c="DEPRECATED: "+_129;if(_12a){_12c+=" "+_12a;}if(_12b){_12c+=" -- will be removed in version: "+_12b;}console.warn(_12c);};dojo.experimental=function(_12d,_12e){var _12f="EXPERIMENTAL: "+_12d+" -- APIs subject to change without notice.";if(_12e){_12f+=" "+_12e;}console.warn(_12f);};}1||has.add("dojo-modulePaths",1);if(1){if(_121.modulePaths){dojo.deprecated("dojo.modulePaths","use paths configuration");var _130={};for(p in _121.modulePaths){_130[p.replace(/\./g,"/")]=_121.modulePaths[p];}_122({paths:_130});}}1||has.add("dojo-moduleUrl",1);if(1){dojo.moduleUrl=function(_131,url){dojo.deprecated("dojo.moduleUrl()","use require.toUrl","2.0");var _132=null;if(_131){_132=_122.toUrl(_131.replace(/\./g,"/")+(url?("/"+url):"")+"/*.*").replace(/\/\*\.\*/,"")+(url?"":"/");}return _132;};}dojo._hasResource={};return dojo;});},"dojo/has":function(){define("dojo/has",["require","module"],function(_133,_134){var has=_133.has||function(){};if(!1){var _135=typeof window!="undefined"&&typeof location!="undefined"&&typeof document!="undefined"&&window.location==location&&window.document==document,_136=this,doc=_135&&document,_137=doc&&doc.createElement("DiV"),_138=(_134.config&&_134.config())||{};has=function(name){return typeof _138[name]=="function"?(_138[name]=_138[name](_136,doc,_137)):_138[name];};has.cache=_138;has.add=function(name,test,now,_139){(typeof _138[name]=="undefined"||_139)&&(_138[name]=test);return now&&has(name);};1||has.add("host-browser",_135);1||has.add("dom",_135);1||has.add("dojo-dom-ready-api",1);1||has.add("dojo-sniff",1);}if(1){has.add("dom-addeventlistener",!!document.addEventListener);has.add("touch","ontouchstart" in document);has.add("device-width",screen.availWidth||innerWidth);var form=document.createElement("form");has.add("dom-attributes-explicit",form.attributes.length==0);has.add("dom-attributes-specified-flag",form.attributes.length>0&&form.attributes.length<40);}has.clearElement=function(_13a){_13a.innerHTML="";return _13a;};has.normalize=function(id,_13b){var _13c=id.match(/[\?:]|[^:\?]*/g),i=0,get=function(skip){var term=_13c[i++];if(term==":"){return 0;}else{if(_13c[i++]=="?"){if(!skip&&has(term)){return get();}else{get(true);return get(skip);}}return term||0;}};id=get();return id&&_13b(id);};has.load=function(id,_13d,_13e){if(id){_13d([id],_13e);}else{_13e();}};return has;});},"dojo/_base/config":function(){define(["../has","require"],function(has,_13f){var _140={};if(1){var src=_13f.rawConfig,p;for(p in src){_140[p]=src[p];}}else{var _141=function(_142,_143,_144){for(p in _142){p!="has"&&has.add(_143+p,_142[p],0,_144);}};_140=1?_13f.rawConfig:this.dojoConfig||this.djConfig||{};_141(_140,"config",1);_141(_140.has,"",1);}return _140;});},"dojo/sniff":function(){define("dojo/sniff",["./has"],function(has){if(1){var n=navigator,dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav);has.add("air",dua.indexOf("AdobeAIR")>=0),has.add("khtml",dav.indexOf("Konqueror")>=0?tv:undefined);has.add("webkit",parseFloat(dua.split("WebKit/")[1])||undefined);has.add("chrome",parseFloat(dua.split("Chrome/")[1])||undefined);has.add("safari",dav.indexOf("Safari")>=0&&!has("chrome")?parseFloat(dav.split("Version/")[1]):undefined);has.add("mac",dav.indexOf("Macintosh")>=0);has.add("quirks",document.compatMode=="BackCompat");has.add("ios",/iPhone|iPod|iPad/.test(dua));has.add("android",parseFloat(dua.split("Android ")[1])||undefined);if(!has("webkit")){if(dua.indexOf("Opera")>=0){has.add("opera",tv>=9.8?parseFloat(dua.split("Version/")[1])||tv:tv);}if(dua.indexOf("Gecko")>=0&&!has("khtml")&&!has("webkit")){has.add("mozilla",tv);}if(has("mozilla")){has.add("ff",parseFloat(dua.split("Firefox/")[1]||dua.split("Minefield/")[1])||undefined);}if(document.all&&!has("opera")){var isIE=parseFloat(dav.split("MSIE ")[1])||undefined;var mode=document.documentMode;if(mode&&mode!=5&&Math.floor(isIE)!=mode){isIE=mode;}has.add("ie",isIE);}has.add("wii",typeof opera!="undefined"&&opera.wiiremote);}}return has;});},"dojo/_base/lang":function(){define(["./kernel","../has","../sniff"],function(dojo,has){has.add("bug-for-in-skips-shadowed",function(){for(var i in {toString:1}){return 0;}return 1;});var _145=has("bug-for-in-skips-shadowed")?"hasOwnProperty.valueOf.isPrototypeOf.propertyIsEnumerable.toLocaleString.toString.constructor".split("."):[],_146=_145.length,_147=function(_148,_149,_14a){var p,i=0,_14b=dojo.global;if(!_14a){if(!_148.length){return _14b;}else{p=_148[i++];try{_14a=dojo.scopeMap[p]&&dojo.scopeMap[p][1];}catch(e){}_14a=_14a||(p in _14b?_14b[p]:(_149?_14b[p]={}:undefined));}}while(_14a&&(p=_148[i++])){_14a=(p in _14a?_14a[p]:(_149?_14a[p]={}:undefined));}return _14a;},opts=Object.prototype.toString,_14c=function(obj,_14d,_14e){return (_14e||[]).concat(Array.prototype.slice.call(obj,_14d||0));},_14f=/\{([^\}]+)\}/g;var lang={_extraNames:_145,_mixin:function(dest,_150,_151){var name,s,i,_152={};for(name in _150){s=_150[name];if(!(name in dest)||(dest[name]!==s&&(!(name in _152)||_152[name]!==s))){dest[name]=_151?_151(s):s;}}if(has("bug-for-in-skips-shadowed")){if(_150){for(i=0;i<_146;++i){name=_145[i];s=_150[name];if(!(name in dest)||(dest[name]!==s&&(!(name in _152)||_152[name]!==s))){dest[name]=_151?_151(s):s;}}}}return dest;},mixin:function(dest,_153){if(!dest){dest={};}for(var i=1,l=arguments.length;i<l;i++){lang._mixin(dest,arguments[i]);}return dest;},setObject:function(name,_154,_155){var _156=name.split("."),p=_156.pop(),obj=_147(_156,true,_155);return obj&&p?(obj[p]=_154):undefined;},getObject:function(name,_157,_158){return _147(name.split("."),_157,_158);},exists:function(name,obj){return lang.getObject(name,false,obj)!==undefined;},isString:function(it){return (typeof it=="string"||it instanceof String);},isArray:function(it){return it&&(it instanceof Array||typeof it=="array");},isFunction:function(it){return opts.call(it)==="[object Function]";},isObject:function(it){return it!==undefined&&(it===null||typeof it=="object"||lang.isArray(it)||lang.isFunction(it));},isArrayLike:function(it){return it&&it!==undefined&&!lang.isString(it)&&!lang.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(lang.isArray(it)||isFinite(it.length));},isAlien:function(it){return it&&!lang.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));},extend:function(ctor,_159){for(var i=1,l=arguments.length;i<l;i++){lang._mixin(ctor.prototype,arguments[i]);}return ctor;},_hitchArgs:function(_15a,_15b){var pre=lang._toArray(arguments,2);var _15c=lang.isString(_15b);return function(){var args=lang._toArray(arguments);var f=_15c?(_15a||dojo.global)[_15b]:_15b;return f&&f.apply(_15a||this,pre.concat(args));};},hitch:function(_15d,_15e){if(arguments.length>2){return lang._hitchArgs.apply(dojo,arguments);}if(!_15e){_15e=_15d;_15d=null;}if(lang.isString(_15e)){_15d=_15d||dojo.global;if(!_15d[_15e]){throw (["lang.hitch: scope[\"",_15e,"\"] is null (scope=\"",_15d,"\")"].join(""));}return function(){return _15d[_15e].apply(_15d,arguments||[]);};}return !_15d?_15e:function(){return _15e.apply(_15d,arguments||[]);};},delegate:(function(){function TMP(){};return function(obj,_15f){TMP.prototype=obj;var tmp=new TMP();TMP.prototype=null;if(_15f){lang._mixin(tmp,_15f);}return tmp;};})(),_toArray:has("ie")?(function(){function slow(obj,_160,_161){var arr=_161||[];for(var x=_160||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};return function(obj){return ((obj.item)?slow:_14c).apply(this,arguments);};})():_14c,partial:function(_162){var arr=[null];return lang.hitch.apply(dojo,arr.concat(lang._toArray(arguments)));},clone:function(src){if(!src||typeof src!="object"||lang.isFunction(src)){return src;}if(src.nodeType&&"cloneNode" in src){return src.cloneNode(true);}if(src instanceof Date){return new Date(src.getTime());}if(src instanceof RegExp){return new RegExp(src);}var r,i,l;if(lang.isArray(src)){r=[];for(i=0,l=src.length;i<l;++i){if(i in src){r.push(lang.clone(src[i]));}}}else{r=src.constructor?new src.constructor():{};}return lang._mixin(r,src,lang.clone);},trim:String.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");},replace:function(tmpl,map,_163){return tmpl.replace(_163||_14f,lang.isFunction(map)?map:function(_164,k){return lang.getObject(k,false,map);});}};1&&lang.mixin(dojo,lang);return lang;});},"dojo/_base/array":function(){define(["./kernel","../has","./lang"],function(dojo,has,lang){var _165={},u;function _166(fn){return _165[fn]=new Function("item","index","array",fn);};function _167(some){var _168=!some;return function(a,fn,o){var i=0,l=a&&a.length||0,_169;if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_165[fn]||_166(fn);}if(o){for(;i<l;++i){_169=!fn.call(o,a[i],i,a);if(some^_169){return !_169;}}}else{for(;i<l;++i){_169=!fn(a[i],i,a);if(some^_169){return !_169;}}}return _168;};};function _16a(up){var _16b=1,_16c=0,_16d=0;if(!up){_16b=_16c=_16d=-1;}return function(a,x,from,last){if(last&&_16b>0){return _16e.lastIndexOf(a,x,from);}var l=a&&a.length||0,end=up?l+_16d:_16c,i;if(from===u){i=up?_16c:l+_16d;}else{if(from<0){i=l+from;if(i<0){i=_16c;}}else{i=from>=l?l+_16d:from;}}if(l&&typeof a=="string"){a=a.split("");}for(;i!=end;i+=_16b){if(a[i]==x){return i;}}return -1;};};var _16e={every:_167(false),some:_167(true),indexOf:_16a(true),lastIndexOf:_16a(false),forEach:function(arr,_16f,_170){var i=0,l=arr&&arr.length||0;if(l&&typeof arr=="string"){arr=arr.split("");}if(typeof _16f=="string"){_16f=_165[_16f]||_166(_16f);}if(_170){for(;i<l;++i){_16f.call(_170,arr[i],i,arr);}}else{for(;i<l;++i){_16f(arr[i],i,arr);}}},map:function(arr,_171,_172,Ctr){var i=0,l=arr&&arr.length||0,out=new (Ctr||Array)(l);if(l&&typeof arr=="string"){arr=arr.split("");}if(typeof _171=="string"){_171=_165[_171]||_166(_171);}if(_172){for(;i<l;++i){out[i]=_171.call(_172,arr[i],i,arr);}}else{for(;i<l;++i){out[i]=_171(arr[i],i,arr);}}return out;},filter:function(arr,_173,_174){var i=0,l=arr&&arr.length||0,out=[],_175;if(l&&typeof arr=="string"){arr=arr.split("");}if(typeof _173=="string"){_173=_165[_173]||_166(_173);}if(_174){for(;i<l;++i){_175=arr[i];if(_173.call(_174,_175,i,arr)){out.push(_175);}}}else{for(;i<l;++i){_175=arr[i];if(_173(_175,i,arr)){out.push(_175);}}}return out;},clearCache:function(){_165={};}};1&&lang.mixin(dojo,_16e);return _16e;});},"dojo/ready":function(){define("dojo/ready",["./_base/kernel","./has","require","./domReady","./_base/lang"],function(dojo,has,_176,_177,lang){var _178=0,_179,_17a=[],_17b=0,_17c=function(){_178=1;dojo._postLoad=dojo.config.afterOnLoad=true;if(_17a.length){_179(_17d);}},_17d=function(){if(_178&&!_17b&&_17a.length){_17b=1;var f=_17a.shift();try{f();}finally{_17b=0;}_17b=0;if(_17a.length){_179(_17d);}}};_176.on("idle",_17d);_179=function(){if(_176.idle()){_17d();}};var _17e=dojo.ready=dojo.addOnLoad=function(_17f,_180,_181){var _182=lang._toArray(arguments);if(typeof _17f!="number"){_181=_180;_180=_17f;_17f=1000;}else{_182.shift();}_181=_181?lang.hitch.apply(dojo,_182):function(){_180();};_181.priority=_17f;for(var i=0;i<_17a.length&&_17f>=_17a[i].priority;i++){}_17a.splice(i,0,_181);_179();};1||has.add("dojo-config-addOnLoad",1);if(1){var dca=dojo.config.addOnLoad;if(dca){_17e[(lang.isArray(dca)?"apply":"call")](dojo,dca);}}if(1&&dojo.config.parseOnLoad&&!dojo.isAsync){_17e(99,function(){if(!dojo.parser){dojo.deprecated("Add explicit require(['dojo/parser']);","","2.0");_176(["dojo/parser"]);}});}if(1){_177(_17c);}else{_17c();}return _17e;});},"dojo/domReady":function(){define("dojo/domReady",["./has"],function(has){var _183=this,doc=document,_184={"loaded":1,"complete":1},_185=typeof doc.readyState!="string",_186=!!_184[doc.readyState];if(_185){doc.readyState="loading";}if(!_186){var _187=[],_188=[],_189=function(evt){evt=evt||_183.event;if(_186||(evt.type=="readystatechange"&&!_184[doc.readyState])){return;}_186=1;if(_185){doc.readyState="complete";}while(_187.length){(_187.shift())(doc);}},on=function(node,_18a){node.addEventListener(_18a,_189,false);_187.push(function(){node.removeEventListener(_18a,_189,false);});};if(!has("dom-addeventlistener")){on=function(node,_18b){_18b="on"+_18b;node.attachEvent(_18b,_189);_187.push(function(){node.detachEvent(_18b,_189);});};var div=doc.createElement("div");try{if(div.doScroll&&_183.frameElement===null){_188.push(function(){try{div.doScroll("left");return 1;}catch(e){}});}}catch(e){}}on(doc,"DOMContentLoaded");on(_183,"load");if("onreadystatechange" in doc){on(doc,"readystatechange");}else{if(!_185){_188.push(function(){return _184[doc.readyState];});}}if(_188.length){var _18c=function(){if(_186){return;}var i=_188.length;while(i--){if(_188[i]()){_189("poller");return;}}setTimeout(_18c,30);};_18c();}}function _18d(_18e){if(_186){_18e(doc);}else{_187.push(_18e);}};_18d.load=function(id,req,load){_18d(load);};return _18d;});},"dojo/_base/declare":function(){define(["./kernel","../has","./lang"],function(dojo,has,lang){var mix=lang.mixin,op=Object.prototype,opts=op.toString,xtor=new Function,_18f=0,_190="constructor";function err(msg,cls){throw new Error("declare"+(cls?" "+cls:"")+": "+msg);};function _191(_192,_193){var _194=[],_195=[{cls:0,refs:[]}],_196={},_197=1,l=_192.length,i=0,j,lin,base,top,_198,rec,name,refs;for(;i<l;++i){base=_192[i];if(!base){err("mixin #"+i+" is unknown. Did you use dojo.require to pull it in?",_193);}else{if(opts.call(base)!="[object Function]"){err("mixin #"+i+" is not a callable constructor.",_193);}}lin=base._meta?base._meta.bases:[base];top=0;for(j=lin.length-1;j>=0;--j){_198=lin[j].prototype;if(!_198.hasOwnProperty("declaredClass")){_198.declaredClass="uniqName_"+(_18f++);}name=_198.declaredClass;if(!_196.hasOwnProperty(name)){_196[name]={count:0,refs:[],cls:lin[j]};++_197;}rec=_196[name];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_195[0].refs.push(top);}while(_195.length){top=_195.pop();_194.push(top.cls);--_197;while(refs=top.refs,refs.length==1){top=refs[0];if(!top||--top.count){top=0;break;}_194.push(top.cls);--_197;}if(top){for(i=0,l=refs.length;i<l;++i){top=refs[i];if(!--top.count){_195.push(top);}}}}if(_197){err("can't build consistent linearization",_193);}base=_192[0];_194[0]=base?base._meta&&base===_194[_194.length-base._meta.bases.length]?base._meta.bases.length:1:0;return _194;};function _199(args,a,f){var name,_19a,_19b,_19c,meta,base,_19d,opf,pos,_19e=this._inherited=this._inherited||{};if(typeof args=="string"){name=args;args=a;a=f;}f=0;_19c=args.callee;name=name||_19c.nom;if(!name){err("can't deduce a name to call inherited()",this.declaredClass);}meta=this.constructor._meta;_19b=meta.bases;pos=_19e.p;if(name!=_190){if(_19e.c!==_19c){pos=0;base=_19b[0];meta=base._meta;if(meta.hidden[name]!==_19c){_19a=meta.chains;if(_19a&&typeof _19a[name]=="string"){err("calling chained method with inherited: "+name,this.declaredClass);}do{meta=base._meta;_19d=base.prototype;if(meta&&(_19d[name]===_19c&&_19d.hasOwnProperty(name)||meta.hidden[name]===_19c)){break;}}while(base=_19b[++pos]);pos=base?pos:-1;}}base=_19b[++pos];if(base){_19d=base.prototype;if(base._meta&&_19d.hasOwnProperty(name)){f=_19d[name];}else{opf=op[name];do{_19d=base.prototype;f=_19d[name];if(f&&(base._meta?_19d.hasOwnProperty(name):f!==opf)){break;}}while(base=_19b[++pos]);}}f=base&&f||op[name];}else{if(_19e.c!==_19c){pos=0;meta=_19b[0]._meta;if(meta&&meta.ctor!==_19c){_19a=meta.chains;if(!_19a||_19a.constructor!=="manual"){err("calling chained constructor with inherited",this.declaredClass);}while(base=_19b[++pos]){meta=base._meta;if(meta&&meta.ctor===_19c){break;}}pos=base?pos:-1;}}while(base=_19b[++pos]){meta=base._meta;f=meta?meta.ctor:base;if(f){break;}}f=base&&f;}_19e.c=f;_19e.p=pos;if(f){return a===true?f:f.apply(this,a||args);}};function _19f(name,args){if(typeof name=="string"){return this.__inherited(name,args,true);}return this.__inherited(name,true);};function _1a0(args,a1,a2){var f=this.getInherited(args,a1);if(f){return f.apply(this,a2||a1||args);}};var _1a1=dojo.config.isDebug?_1a0:_199;function _1a2(cls){var _1a3=this.constructor._meta.bases;for(var i=0,l=_1a3.length;i<l;++i){if(_1a3[i]===cls){return true;}}return this instanceof cls;};function _1a4(_1a5,_1a6){for(var name in _1a6){if(name!=_190&&_1a6.hasOwnProperty(name)){_1a5[name]=_1a6[name];}}if(has("bug-for-in-skips-shadowed")){for(var _1a7=lang._extraNames,i=_1a7.length;i;){name=_1a7[--i];if(name!=_190&&_1a6.hasOwnProperty(name)){_1a5[name]=_1a6[name];}}}};function _1a8(_1a9,_1aa){var name,t;for(name in _1aa){t=_1aa[name];if((t!==op[name]||!(name in op))&&name!=_190){if(opts.call(t)=="[object Function]"){t.nom=name;}_1a9[name]=t;}}if(has("bug-for-in-skips-shadowed")){for(var _1ab=lang._extraNames,i=_1ab.length;i;){name=_1ab[--i];t=_1aa[name];if((t!==op[name]||!(name in op))&&name!=_190){if(opts.call(t)=="[object Function]"){t.nom=name;}_1a9[name]=t;}}}return _1a9;};function _1ac(_1ad){_1ae.safeMixin(this.prototype,_1ad);return this;};function _1af(_1b0){return _1ae([this].concat(_1b0));};function _1b1(_1b2,_1b3){return function(){var a=arguments,args=a,a0=a[0],f,i,m,l=_1b2.length,_1b4;if(!(this instanceof a.callee)){return _1b5(a);}if(_1b3&&(a0&&a0.preamble||this.preamble)){_1b4=new Array(_1b2.length);_1b4[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_1b2[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_1b4[i]=a;}}for(i=l-1;i>=0;--i){f=_1b2[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_1b4?_1b4[i]:a);}}f=this.postscript;if(f){f.apply(this,args);}};};function _1b6(ctor,_1b7){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _1b5(a);}if(_1b7){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(ctor){ctor.apply(this,a);}f=this.postscript;if(f){f.apply(this,a);}};};function _1b8(_1b9){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _1b5(a);}for(;f=_1b9[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function _1ba(name,_1bb,_1bc){return function(){var b,m,f,i=0,step=1;if(_1bc){i=_1bb.length-1;step=-1;}for(;b=_1bb[i];i+=step){m=b._meta;f=(m?m.hidden:b.prototype)[name];if(f){f.apply(this,arguments);}}};};function _1bd(ctor){xtor.prototype=ctor.prototype;var t=new xtor;xtor.prototype=null;return t;};function _1b5(args){var ctor=args.callee,t=_1bd(ctor);ctor.apply(t,args);return t;};function _1ae(_1be,_1bf,_1c0){if(typeof _1be!="string"){_1c0=_1bf;_1bf=_1be;_1be="";}_1c0=_1c0||{};var _1c1,i,t,ctor,name,_1c2,_1c3,_1c4=1,_1c5=_1bf;if(opts.call(_1bf)=="[object Array]"){_1c2=_191(_1bf,_1be);t=_1c2[0];_1c4=_1c2.length-t;_1bf=_1c2[_1c4];}else{_1c2=[0];if(_1bf){if(opts.call(_1bf)=="[object Function]"){t=_1bf._meta;_1c2=_1c2.concat(t?t.bases:_1bf);}else{err("base class is not a callable constructor.",_1be);}}else{if(_1bf!==null){err("unknown base class. Did you use dojo.require to pull it in?",_1be);}}}if(_1bf){for(i=_1c4-1;;--i){_1c1=_1bd(_1bf);if(!i){break;}t=_1c2[i];(t._meta?_1a4:mix)(_1c1,t.prototype);ctor=new Function;ctor.superclass=_1bf;ctor.prototype=_1c1;_1bf=_1c1.constructor=ctor;}}else{_1c1={};}_1ae.safeMixin(_1c1,_1c0);t=_1c0.constructor;if(t!==op.constructor){t.nom=_190;_1c1.constructor=t;}for(i=_1c4-1;i;--i){t=_1c2[i]._meta;if(t&&t.chains){_1c3=mix(_1c3||{},t.chains);}}if(_1c1["-chains-"]){_1c3=mix(_1c3||{},_1c1["-chains-"]);}t=!_1c3||!_1c3.hasOwnProperty(_190);_1c2[0]=ctor=(_1c3&&_1c3.constructor==="manual")?_1b8(_1c2):(_1c2.length==1?_1b6(_1c0.constructor,t):_1b1(_1c2,t));ctor._meta={bases:_1c2,hidden:_1c0,chains:_1c3,parents:_1c5,ctor:_1c0.constructor};ctor.superclass=_1bf&&_1bf.prototype;ctor.extend=_1ac;ctor.createSubclass=_1af;ctor.prototype=_1c1;_1c1.constructor=ctor;_1c1.getInherited=_19f;_1c1.isInstanceOf=_1a2;_1c1.inherited=_1a1;_1c1.__inherited=_199;if(_1be){_1c1.declaredClass=_1be;lang.setObject(_1be,ctor);}if(_1c3){for(name in _1c3){if(_1c1[name]&&typeof _1c3[name]=="string"&&name!=_190){t=_1c1[name]=_1ba(name,_1c2,_1c3[name]==="after");t.nom=name;}}}return ctor;};dojo.safeMixin=_1ae.safeMixin=_1a8;dojo.declare=_1ae;return _1ae;});},"dojo/_base/connect":function(){define(["./kernel","../on","../topic","../aspect","./event","../mouse","./sniff","./lang","../keys"],function(dojo,on,hub,_1c6,_1c7,_1c8,has,lang){has.add("events-keypress-typed",function(){var _1c9={charCode:0};try{_1c9=document.createEvent("KeyboardEvent");(_1c9.initKeyboardEvent||_1c9.initKeyEvent).call(_1c9,"keypress",true,true,null,false,false,false,false,9,3);}catch(e){}return _1c9.charCode==0&&!has("opera");});function _1ca(obj,_1cb,_1cc,_1cd,_1ce){_1cd=lang.hitch(_1cc,_1cd);if(!obj||!(obj.addEventListener||obj.attachEvent)){return _1c6.after(obj||dojo.global,_1cb,_1cd,true);}if(typeof _1cb=="string"&&_1cb.substring(0,2)=="on"){_1cb=_1cb.substring(2);}if(!obj){obj=dojo.global;}if(!_1ce){switch(_1cb){case "keypress":_1cb=_1cf;break;case "mouseenter":_1cb=_1c8.enter;break;case "mouseleave":_1cb=_1c8.leave;break;}}return on(obj,_1cb,_1cd,_1ce);};var _1d0={106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39,229:113};var _1d1=has("mac")?"metaKey":"ctrlKey";var _1d2=function(evt,_1d3){var faux=lang.mixin({},evt,_1d3);_1d4(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};function _1d4(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;};var _1cf;if(has("events-keypress-typed")){var _1d5=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};_1cf=function(_1d6,_1d7){var _1d8=on(_1d6,"keydown",function(evt){var k=evt.keyCode;var _1d9=(k!=13)&&k!=32&&(k!=27||!has("ie"))&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222)&&k!=229;if(_1d9||evt.ctrlKey){var c=_1d9?0:k;if(evt.ctrlKey){if(k==3||k==13){return _1d7.call(evt.currentTarget,evt);}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=_1d0[c]||c;}}}}var faux=_1d2(evt,{type:"keypress",faux:true,charCode:c});_1d7.call(evt.currentTarget,faux);if(has("ie")){_1d5(evt,faux.keyCode);}}});var _1da=on(_1d6,"keypress",function(evt){var c=evt.charCode;c=c>=32?c:0;evt=_1d2(evt,{charCode:c,faux:true});return _1d7.call(this,evt);});return {remove:function(){_1d8.remove();_1da.remove();}};};}else{if(has("opera")){_1cf=function(_1db,_1dc){return on(_1db,"keypress",function(evt){var c=evt.which;if(c==3){c=99;}c=c<32&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){c+=32;}return _1dc.call(this,_1d2(evt,{charCode:c}));});};}else{_1cf=function(_1dd,_1de){return on(_1dd,"keypress",function(evt){_1d4(evt);return _1de.call(this,evt);});};}}var _1df={_keypress:_1cf,connect:function(obj,_1e0,_1e1,_1e2,_1e3){var a=arguments,args=[],i=0;args.push(typeof a[0]=="string"?null:a[i++],a[i++]);var a1=a[i+1];args.push(typeof a1=="string"||typeof a1=="function"?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++){args.push(a[i]);}return _1ca.apply(this,args);},disconnect:function(_1e4){if(_1e4){_1e4.remove();}},subscribe:function(_1e5,_1e6,_1e7){return hub.subscribe(_1e5,lang.hitch(_1e6,_1e7));},publish:function(_1e8,args){return hub.publish.apply(hub,[_1e8].concat(args));},connectPublisher:function(_1e9,obj,_1ea){var pf=function(){_1df.publish(_1e9,arguments);};return _1ea?_1df.connect(obj,_1ea,pf):_1df.connect(obj,pf);},isCopyKey:function(e){return e[_1d1];}};_1df.unsubscribe=_1df.disconnect;1&&lang.mixin(dojo,_1df);return _1df;});},"dojo/on":function(){define("dojo/on",["./has!dom-addeventlistener?:./aspect","./_base/kernel","./has"],function(_1eb,dojo,has){"use strict";if(1){var _1ec=window.ScriptEngineMajorVersion;has.add("jscript",_1ec&&(_1ec()+ScriptEngineMinorVersion()/10));has.add("event-orientationchange",has("touch")&&!has("android"));has.add("event-stopimmediatepropagation",window.Event&&!!window.Event.prototype&&!!window.Event.prototype.stopImmediatePropagation);}var on=function(_1ed,type,_1ee,_1ef){if(typeof _1ed.on=="function"&&typeof type!="function"){return _1ed.on(type,_1ee);}return on.parse(_1ed,type,_1ee,_1f0,_1ef,this);};on.pausable=function(_1f1,type,_1f2,_1f3){var _1f4;var _1f5=on(_1f1,type,function(){if(!_1f4){return _1f2.apply(this,arguments);}},_1f3);_1f5.pause=function(){_1f4=true;};_1f5.resume=function(){_1f4=false;};return _1f5;};on.once=function(_1f6,type,_1f7,_1f8){var _1f9=on(_1f6,type,function(){_1f9.remove();return _1f7.apply(this,arguments);});return _1f9;};on.parse=function(_1fa,type,_1fb,_1fc,_1fd,_1fe){if(type.call){return type.call(_1fe,_1fa,_1fb);}if(type.indexOf(",")>-1){var _1ff=type.split(/\s*,\s*/);var _200=[];var i=0;var _201;while(_201=_1ff[i++]){_200.push(_1fc(_1fa,_201,_1fb,_1fd,_1fe));}_200.remove=function(){for(var i=0;i<_200.length;i++){_200[i].remove();}};return _200;}return _1fc(_1fa,type,_1fb,_1fd,_1fe);};var _202=/^touch/;function _1f0(_203,type,_204,_205,_206){var _207=type.match(/(.*):(.*)/);if(_207){type=_207[2];_207=_207[1];return on.selector(_207,type).call(_206,_203,_204);}if(has("touch")){if(_202.test(type)){_204=_208(_204);}if(!has("event-orientationchange")&&(type=="orientationchange")){type="resize";_203=window;_204=_208(_204);}}if(_209){_204=_209(_204);}if(_203.addEventListener){var _20a=type in _20b,_20c=_20a?_20b[type]:type;_203.addEventListener(_20c,_204,_20a);return {remove:function(){_203.removeEventListener(_20c,_204,_20a);}};}type="on"+type;if(_20d&&_203.attachEvent){return _20d(_203,type,_204);}throw new Error("Target must be an event emitter");};on.selector=function(_20e,_20f,_210){return function(_211,_212){var _213=typeof _20e=="function"?{matches:_20e}:this,_214=_20f.bubble;function _215(_216){_213=_213&&_213.matches?_213:dojo.query;while(!_213.matches(_216,_20e,_211)){if(_216==_211||_210===false||!(_216=_216.parentNode)||_216.nodeType!=1){return;}}return _216;};if(_214){return on(_211,_214(_215),_212);}return on(_211,_20f,function(_217){var _218=_215(_217.target);return _218&&_212.call(_218,_217);});};};function _219(){this.cancelable=false;};function _21a(){this.bubbles=false;};var _21b=[].slice,_21c=on.emit=function(_21d,type,_21e){var args=_21b.call(arguments,2);var _21f="on"+type;if("parentNode" in _21d){var _220=args[0]={};for(var i in _21e){_220[i]=_21e[i];}_220.preventDefault=_219;_220.stopPropagation=_21a;_220.target=_21d;_220.type=type;_21e=_220;}do{_21d[_21f]&&_21d[_21f].apply(_21d,args);}while(_21e&&_21e.bubbles&&(_21d=_21d.parentNode));return _21e&&_21e.cancelable&&_21e;};var _20b={};if(!has("event-stopimmediatepropagation")){var _221=function(){this.immediatelyStopped=true;this.modified=true;};var _209=function(_222){return function(_223){if(!_223.immediatelyStopped){_223.stopImmediatePropagation=_221;return _222.apply(this,arguments);}};};}if(has("dom-addeventlistener")){_20b={focusin:"focus",focusout:"blur"};on.emit=function(_224,type,_225){if(_224.dispatchEvent&&document.createEvent){var _226=_224.ownerDocument.createEvent("HTMLEvents");_226.initEvent(type,!!_225.bubbles,!!_225.cancelable);for(var i in _225){var _227=_225[i];if(!(i in _226)){_226[i]=_225[i];}}return _224.dispatchEvent(_226)&&_226;}return _21c.apply(on,arguments);};}else{on._fixEvent=function(evt,_228){if(!evt){var w=_228&&(_228.ownerDocument||_228.document||_228).parentWindow||window;evt=w.event;}if(!evt){return evt;}if(_229&&evt.type==_229.type){evt=_229;}if(!evt.target){evt.target=evt.srcElement;evt.currentTarget=(_228||evt.srcElement);if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}if(!evt.stopPropagation){evt.stopPropagation=_22a;evt.preventDefault=_22b;}switch(evt.type){case "keypress":var c=("charCode" in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;_22c(evt);break;}}return evt;};var _229,_22d=function(_22e){this.handle=_22e;};_22d.prototype.remove=function(){delete _dojoIEListeners_[this.handle];};var _22f=function(_230){return function(evt){evt=on._fixEvent(evt,this);var _231=_230.call(this,evt);if(evt.modified){if(!_229){setTimeout(function(){_229=null;});}_229=evt;}return _231;};};var _20d=function(_232,type,_233){_233=_22f(_233);if(((_232.ownerDocument?_232.ownerDocument.parentWindow:_232.parentWindow||_232.window||window)!=top||has("jscript")<5.8)&&!has("config-_allow_leaks")){if(typeof _dojoIEListeners_=="undefined"){_dojoIEListeners_=[];}var _234=_232[type];if(!_234||!_234.listeners){var _235=_234;_234=Function("event","var callee = arguments.callee; for(var i = 0; i<callee.listeners.length; i++){var listener = _dojoIEListeners_[callee.listeners[i]]; if(listener){listener.call(this,event);}}");_234.listeners=[];_232[type]=_234;_234.global=this;if(_235){_234.listeners.push(_dojoIEListeners_.push(_235)-1);}}var _236;_234.listeners.push(_236=(_234.global._dojoIEListeners_.push(_233)-1));return new _22d(_236);}return _1eb.after(_232,type,_233,true);};var _22c=function(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;};var _22a=function(){this.cancelBubble=true;};var _22b=on._preventDefault=function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){try{this.keyCode=0;}catch(e){}}this.defaultPrevented=true;this.returnValue=false;};}if(has("touch")){var _237=function(){};var _238=window.orientation;var _208=function(_239){return function(_23a){var _23b=_23a.corrected;if(!_23b){var type=_23a.type;try{delete _23a.type;}catch(e){}if(_23a.type){_237.prototype=_23a;var _23b=new _237;_23b.preventDefault=function(){_23a.preventDefault();};_23b.stopPropagation=function(){_23a.stopPropagation();};}else{_23b=_23a;_23b.type=type;}_23a.corrected=_23b;if(type=="resize"){if(_238==window.orientation){return null;}_238=window.orientation;_23b.type="orientationchange";return _239.call(this,_23b);}if(!("rotation" in _23b)){_23b.rotation=0;_23b.scale=1;}var _23c=_23b.changedTouches[0];for(var i in _23c){delete _23b[i];_23b[i]=_23c[i];}}return _239.call(this,_23b);};};}return on;});},"dojo/topic":function(){define("dojo/topic",["./Evented"],function(_23d){var hub=new _23d;return {publish:function(_23e,_23f){return hub.emit.apply(hub,arguments);},subscribe:function(_240,_241){return hub.on.apply(hub,arguments);}};});},"dojo/Evented":function(){define("dojo/Evented",["./aspect","./on"],function(_242,on){"use strict";var _243=_242.after;function _244(){};_244.prototype={on:function(type,_245){return on.parse(this,type,_245,function(_246,type){return _243(_246,"on"+type,_245,true);});},emit:function(type,_247){var args=[this];args.push.apply(args,arguments);return on.emit.apply(on,args);}};return _244;});},"dojo/aspect":function(){define("dojo/aspect",[],function(){"use strict";var _248,_249=0;function _24a(_24b,type,_24c,_24d){var _24e=_24b[type];var _24f=type=="around";var _250;if(_24f){var _251=_24c(function(){return _24e.advice(this,arguments);});_250={remove:function(){_250.cancelled=true;},advice:function(_252,args){return _250.cancelled?_24e.advice(_252,args):_251.apply(_252,args);}};}else{_250={remove:function(){var _253=_250.previous;var next=_250.next;if(!next&&!_253){delete _24b[type];}else{if(_253){_253.next=next;}else{_24b[type]=next;}if(next){next.previous=_253;}}},id:_249++,advice:_24c,receiveArguments:_24d};}if(_24e&&!_24f){if(type=="after"){while(_24e.next&&(_24e=_24e.next)){}_24e.next=_250;_250.previous=_24e;}else{if(type=="before"){_24b[type]=_250;_250.next=_24e;_24e.previous=_250;}}}else{_24b[type]=_250;}return _250;};function _254(type){return function(_255,_256,_257,_258){var _259=_255[_256],_25a;if(!_259||_259.target!=_255){_255[_256]=_25a=function(){var _25b=_249;var args=arguments;var _25c=_25a.before;while(_25c){args=_25c.advice.apply(this,args)||args;_25c=_25c.next;}if(_25a.around){var _25d=_25a.around.advice(this,args);}var _25e=_25a.after;while(_25e&&_25e.id<_25b){if(_25e.receiveArguments){var _25f=_25e.advice.apply(this,args);_25d=_25f===_248?_25d:_25f;}else{_25d=_25e.advice.call(this,_25d,args);}_25e=_25e.next;}return _25d;};if(_259){_25a.around={advice:function(_260,args){return _259.apply(_260,args);}};}_25a.target=_255;}var _261=_24a((_25a||_259),type,_257,_258);_257=null;return _261;};};var _262=_254("after");var _263=_254("before");var _264=_254("around");return {before:_263,around:_264,after:_262};});},"dojo/_base/event":function(){define(["./kernel","../on","../has","../dom-geometry"],function(dojo,on,has,dom){if(on._fixEvent){var _265=on._fixEvent;on._fixEvent=function(evt,se){evt=_265(evt,se);if(evt){dom.normalizeEvent(evt);}return evt;};}var ret={fix:function(evt,_266){if(on._fixEvent){return on._fixEvent(evt,_266);}return evt;},stop:function(evt){if(has("dom-addeventlistener")||(evt&&evt.preventDefault)){evt.preventDefault();evt.stopPropagation();}else{evt=evt||window.event;evt.cancelBubble=true;on._preventDefault.call(evt);}}};if(1){dojo.fixEvent=ret.fix;dojo.stopEvent=ret.stop;}return ret;});},"dojo/dom-geometry":function(){define("dojo/dom-geometry",["./sniff","./_base/window","./dom","./dom-style"],function(has,win,dom,_267){var geom={};geom.boxModel="content-box";if(has("ie")){geom.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}geom.getPadExtents=function getPadExtents(node,_268){node=dom.byId(node);var s=_268||_267.getComputedStyle(node),px=_267.toPixelValue,l=px(node,s.paddingLeft),t=px(node,s.paddingTop),r=px(node,s.paddingRight),b=px(node,s.paddingBottom);return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};var none="none";geom.getBorderExtents=function getBorderExtents(node,_269){node=dom.byId(node);var px=_267.toPixelValue,s=_269||_267.getComputedStyle(node),l=s.borderLeftStyle!=none?px(node,s.borderLeftWidth):0,t=s.borderTopStyle!=none?px(node,s.borderTopWidth):0,r=s.borderRightStyle!=none?px(node,s.borderRightWidth):0,b=s.borderBottomStyle!=none?px(node,s.borderBottomWidth):0;return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};geom.getPadBorderExtents=function getPadBorderExtents(node,_26a){node=dom.byId(node);var s=_26a||_267.getComputedStyle(node),p=geom.getPadExtents(node,s),b=geom.getBorderExtents(node,s);return {l:p.l+b.l,t:p.t+b.t,r:p.r+b.r,b:p.b+b.b,w:p.w+b.w,h:p.h+b.h};};geom.getMarginExtents=function getMarginExtents(node,_26b){node=dom.byId(node);var s=_26b||_267.getComputedStyle(node),px=_267.toPixelValue,l=px(node,s.marginLeft),t=px(node,s.marginTop),r=px(node,s.marginRight),b=px(node,s.marginBottom);return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};geom.getMarginBox=function getMarginBox(node,_26c){node=dom.byId(node);var s=_26c||_267.getComputedStyle(node),me=geom.getMarginExtents(node,s),l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode,px=_267.toPixelValue,pcs;if(has("mozilla")){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl;t=st;}else{if(p&&p.style){pcs=_267.getComputedStyle(p);if(pcs.overflow!="visible"){l+=pcs.borderLeftStyle!=none?px(node,pcs.borderLeftWidth):0;t+=pcs.borderTopStyle!=none?px(node,pcs.borderTopWidth):0;}}}}else{if(has("opera")||(has("ie")==8&&!has("quirks"))){if(p){pcs=_267.getComputedStyle(p);l-=pcs.borderLeftStyle!=none?px(node,pcs.borderLeftWidth):0;t-=pcs.borderTopStyle!=none?px(node,pcs.borderTopWidth):0;}}}return {l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h};};geom.getContentBox=function getContentBox(node,_26d){node=dom.byId(node);var s=_26d||_267.getComputedStyle(node),w=node.clientWidth,h,pe=geom.getPadExtents(node,s),be=geom.getBorderExtents(node,s);if(!w){w=node.offsetWidth;h=node.offsetHeight;}else{h=node.clientHeight;be.w=be.h=0;}if(has("opera")){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};function _26e(node,l,t,w,h,u){u=u||"px";var s=node.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};function _26f(node){return node.tagName.toLowerCase()=="button"||node.tagName.toLowerCase()=="input"&&(node.getAttribute("type")||"").toLowerCase()=="button";};function _270(node){return geom.boxModel=="border-box"||node.tagName.toLowerCase()=="table"||_26f(node);};geom.setContentSize=function setContentSize(node,box,_271){node=dom.byId(node);var w=box.w,h=box.h;if(_270(node)){var pb=geom.getPadBorderExtents(node,_271);if(w>=0){w+=pb.w;}if(h>=0){h+=pb.h;}}_26e(node,NaN,NaN,w,h);};var _272={l:0,t:0,w:0,h:0};geom.setMarginBox=function setMarginBox(node,box,_273){node=dom.byId(node);var s=_273||_267.getComputedStyle(node),w=box.w,h=box.h,pb=_270(node)?_272:geom.getPadBorderExtents(node,s),mb=geom.getMarginExtents(node,s);if(has("webkit")){if(_26f(node)){var ns=node.style;if(w>=0&&!ns.width){ns.width="4px";}if(h>=0&&!ns.height){ns.height="4px";}}}if(w>=0){w=Math.max(w-pb.w-mb.w,0);}if(h>=0){h=Math.max(h-pb.h-mb.h,0);}_26e(node,box.l,box.t,w,h);};geom.isBodyLtr=function isBodyLtr(doc){doc=doc||win.doc;return (win.body(doc).dir||doc.documentElement.dir||"ltr").toLowerCase()=="ltr";};geom.docScroll=function docScroll(doc){doc=doc||win.doc;var node=win.doc.parentWindow||win.doc.defaultView;return "pageXOffset" in node?{x:node.pageXOffset,y:node.pageYOffset}:(node=has("quirks")?win.body(doc):doc.documentElement)&&{x:geom.fixIeBiDiScrollLeft(node.scrollLeft||0,doc),y:node.scrollTop||0};};if(has("ie")){geom.getIeDocumentElementOffset=function getIeDocumentElementOffset(doc){doc=doc||win.doc;var de=doc.documentElement;if(has("ie")<8){var r=de.getBoundingClientRect(),l=r.left,t=r.top;if(has("ie")<7){l+=de.clientLeft;t+=de.clientTop;}return {x:l<0?0:l,y:t<0?0:t};}else{return {x:0,y:0};}};}geom.fixIeBiDiScrollLeft=function fixIeBiDiScrollLeft(_274,doc){doc=doc||win.doc;var ie=has("ie");if(ie&&!geom.isBodyLtr(doc)){var qk=has("quirks"),de=qk?win.body(doc):doc.documentElement,pwin=win.global;if(ie==6&&!qk&&pwin.frameElement&&de.scrollHeight>de.clientHeight){_274+=de.clientLeft;}return (ie<8||qk)?(_274+de.clientWidth-de.scrollWidth):-_274;}return _274;};geom.position=function(node,_275){node=dom.byId(node);var db=win.body(node.ownerDocument),ret=node.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(has("ie")<9){var _276=geom.getIeDocumentElementOffset(node.ownerDocument);ret.x-=_276.x+(has("quirks")?db.clientLeft+db.offsetLeft:0);ret.y-=_276.y+(has("quirks")?db.clientTop+db.offsetTop:0);}if(_275){var _277=geom.docScroll(node.ownerDocument);ret.x+=_277.x;ret.y+=_277.y;}return ret;};geom.getMarginSize=function getMarginSize(node,_278){node=dom.byId(node);var me=geom.getMarginExtents(node,_278||_267.getComputedStyle(node));var size=node.getBoundingClientRect();return {w:(size.right-size.left)+me.w,h:(size.bottom-size.top)+me.h};};geom.normalizeEvent=function(_279){if(!("layerX" in _279)){_279.layerX=_279.offsetX;_279.layerY=_279.offsetY;}if(!has("dom-addeventlistener")){var se=_279.target;var doc=(se&&se.ownerDocument)||document;var _27a=has("quirks")?doc.body:doc.documentElement;var _27b=geom.getIeDocumentElementOffset(doc);_279.pageX=_279.clientX+geom.fixIeBiDiScrollLeft(_27a.scrollLeft||0,doc)-_27b.x;_279.pageY=_279.clientY+(_27a.scrollTop||0)-_27b.y;}};return geom;});},"dojo/_base/window":function(){define(["./kernel","./lang","../sniff"],function(dojo,lang,has){var ret={global:dojo.global,doc:this["document"]||null,body:function(doc){doc=doc||dojo.doc;return doc.body||doc.getElementsByTagName("body")[0];},setContext:function(_27c,_27d){dojo.global=ret.global=_27c;dojo.doc=ret.doc=_27d;},withGlobal:function(_27e,_27f,_280,_281){var _282=dojo.global;try{dojo.global=ret.global=_27e;return ret.withDoc.call(null,_27e.document,_27f,_280,_281);}finally{dojo.global=ret.global=_282;}},withDoc:function(_283,_284,_285,_286){var _287=ret.doc,oldQ=has("quirks"),_288=has("ie"),isIE,mode,pwin;try{dojo.doc=ret.doc=_283;dojo.isQuirks=has.add("quirks",dojo.doc.compatMode=="BackCompat",true,true);if(has("ie")){if((pwin=_283.parentWindow)&&pwin.navigator){isIE=parseFloat(pwin.navigator.appVersion.split("MSIE ")[1])||undefined;mode=_283.documentMode;if(mode&&mode!=5&&Math.floor(isIE)!=mode){isIE=mode;}dojo.isIE=has.add("ie",isIE,true,true);}}if(_285&&typeof _284=="string"){_284=_285[_284];}return _284.apply(_285,_286||[]);}finally{dojo.doc=ret.doc=_287;dojo.isQuirks=has.add("quirks",oldQ,true,true);dojo.isIE=has.add("ie",_288,true,true);}}};1&&lang.mixin(dojo,ret);return ret;});},"dojo/dom":function(){define("dojo/dom",["./sniff","./_base/window"],function(has,win){if(has("ie")<=7){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}var dom={};if(has("ie")){dom.byId=function(id,doc){if(typeof id!="string"){return id;}var _289=doc||win.doc,te=id&&_289.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_289.all[id];if(!eles||eles.nodeName){eles=[eles];}var i=0;while((te=eles[i++])){if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){return te;}}}};}else{dom.byId=function(id,doc){return ((typeof id=="string")?(doc||win.doc).getElementById(id):id)||null;};}dom.isDescendant=function(node,_28a){try{node=dom.byId(node);_28a=dom.byId(_28a);while(node){if(node==_28a){return true;}node=node.parentNode;}}catch(e){}return false;};has.add("css-user-select",function(_28b,doc,_28c){if(!_28c){return false;}var _28d=_28c.style;var _28e=["Khtml","O","ms","Moz","Webkit"],i=_28e.length,name="userSelect",_28f;do{if(typeof _28d[name]!=="undefined"){return name;}}while(i--&&(name=_28e[i]+"UserSelect"));return false;});var _290=has("css-user-select");dom.setSelectable=_290?function(node,_291){dom.byId(node).style[_290]=_291?"":"none";}:function(node,_292){node=dom.byId(node);var _293=node.getElementsByTagName("*"),i=_293.length;if(_292){node.removeAttribute("unselectable");while(i--){_293[i].removeAttribute("unselectable");}}else{node.setAttribute("unselectable","on");while(i--){_293[i].setAttribute("unselectable","on");}}};return dom;});},"dojo/dom-style":function(){define("dojo/dom-style",["./sniff","./dom"],function(has,dom){var _294,_295={};if(has("webkit")){_294=function(node){var s;if(node.nodeType==1){var dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null);}}return s||{};};}else{if(has("ie")&&(has("ie")<9||has("quirks"))){_294=function(node){return node.nodeType==1&&node.currentStyle?node.currentStyle:{};};}else{_294=function(node){return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}_295.getComputedStyle=_294;var _296;if(!has("ie")){_296=function(_297,_298){return parseFloat(_298)||0;};}else{_296=function(_299,_29a){if(!_29a){return 0;}if(_29a=="medium"){return 4;}if(_29a.slice&&_29a.slice(-2)=="px"){return parseFloat(_29a);}var s=_299.style,rs=_299.runtimeStyle,cs=_299.currentStyle,_29b=s.left,_29c=rs.left;rs.left=cs.left;try{s.left=_29a;_29a=s.pixelLeft;}catch(e){_29a=0;}s.left=_29b;rs.left=_29c;return _29a;};}_295.toPixelValue=_296;var astr="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};var _29d=has("ie")<9||(has("ie")<10&&has("quirks"))?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return _294(node).opacity;};var _29e=has("ie")<9||(has("ie")<10&&has("quirks"))?function(node,_29f){var ov=_29f*100,_2a0=_29f==1;node.style.zoom=_2a0?"":1;if(!af(node)){if(_2a0){return _29f;}node.style.filter+=" progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}af(node,1).Enabled=!_2a0;if(node.tagName.toLowerCase()=="tr"){for(var td=node.firstChild;td;td=td.nextSibling){if(td.tagName.toLowerCase()=="td"){_29e(td,_29f);}}}return _29f;}:function(node,_2a1){return node.style.opacity=_2a1;};var _2a2={left:true,top:true};var _2a3=/margin|padding|width|height|max|min|offset/;function _2a4(node,type,_2a5){type=type.toLowerCase();if(has("ie")){if(_2a5=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_2a5){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _2a2)){_2a2[type]=_2a3.test(type);}return _2a2[type]?_296(node,_2a5):_2a5;};var _2a6=has("ie")?"styleFloat":"cssFloat",_2a7={"cssFloat":_2a6,"styleFloat":_2a6,"float":_2a6};_295.get=function getStyle(node,name){var n=dom.byId(node),l=arguments.length,op=(name=="opacity");if(l==2&&op){return _29d(n);}name=_2a7[name]||name;var s=_295.getComputedStyle(n);return (l==1)?s:_2a4(n,name,s[name]||n.style[name]);};_295.set=function setStyle(node,name,_2a8){var n=dom.byId(node),l=arguments.length,op=(name=="opacity");name=_2a7[name]||name;if(l==3){return op?_29e(n,_2a8):n.style[name]=_2a8;}for(var x in name){_295.set(node,x,name[x]);}return _295.getComputedStyle(n);};return _295;});},"dojo/mouse":function(){define("dojo/mouse",["./_base/kernel","./on","./has","./dom","./_base/window"],function(dojo,on,has,dom,win){has.add("dom-quirks",win.doc&&win.doc.compatMode=="BackCompat");has.add("events-mouseenter",win.doc&&"onmouseenter" in win.doc.createElement("div"));has.add("events-mousewheel",win.doc&&"onmousewheel" in win.doc);var _2a9;if((has("dom-quirks")&&has("ie"))||!has("dom-addeventlistener")){_2a9={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_2aa){return e.button&_2aa;},isLeft:function(e){return e.button&1;},isMiddle:function(e){return e.button&4;},isRight:function(e){return e.button&2;}};}else{_2a9={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_2ab){return e.button==_2ab;},isLeft:function(e){return e.button==0;},isMiddle:function(e){return e.button==1;},isRight:function(e){return e.button==2;}};}dojo.mouseButtons=_2a9;function _2ac(type,_2ad){var _2ae=function(node,_2af){return on(node,type,function(evt){if(_2ad){return _2ad(evt,_2af);}if(!dom.isDescendant(evt.relatedTarget,node)){return _2af.call(this,evt);}});};_2ae.bubble=function(_2b0){return _2ac(type,function(evt,_2b1){var _2b2=_2b0(evt.target);var _2b3=evt.relatedTarget;if(_2b2&&(_2b2!=(_2b3&&_2b3.nodeType==1&&_2b0(_2b3)))){return _2b1.call(_2b2,evt);}});};return _2ae;};var _2b4;if(has("events-mousewheel")){_2b4="mousewheel";}else{_2b4=function(node,_2b5){return on(node,"DOMMouseScroll",function(evt){evt.wheelDelta=-evt.detail;_2b5.call(this,evt);});};}return {_eventHandler:_2ac,enter:_2ac("mouseover"),leave:_2ac("mouseout"),wheel:_2b4,isLeft:_2a9.isLeft,isMiddle:_2a9.isMiddle,isRight:_2a9.isRight};});},"dojo/_base/sniff":function(){define(["./kernel","./lang","../sniff"],function(dojo,lang,has){if(!1){return has;}dojo._name="browser";lang.mixin(dojo,{isBrowser:true,isFF:has("ff"),isIE:has("ie"),isKhtml:has("khtml"),isWebKit:has("webkit"),isMozilla:has("mozilla"),isMoz:has("mozilla"),isOpera:has("opera"),isSafari:has("safari"),isChrome:has("chrome"),isMac:has("mac"),isIos:has("ios"),isAndroid:has("android"),isWii:has("wii"),isQuirks:has("quirks"),isAir:has("air")});dojo.locale=dojo.locale||(has("ie")?navigator.userLanguage:navigator.language).toLowerCase();return has;});},"dojo/keys":function(){define("dojo/keys",["./_base/kernel","./sniff"],function(dojo,has){return dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:has("webkit")?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,UP_DPAD:175,DOWN_DPAD:176,LEFT_DPAD:177,RIGHT_DPAD:178,copyKey:has("mac")&&!has("air")?(has("safari")?91:224):17};});},"dojo/_base/Deferred":function(){define(["./kernel","../Deferred","../promise/Promise","../errors/CancelError","../has","./lang","../when"],function(dojo,_2b6,_2b7,_2b8,has,lang,when){var _2b9=function(){};var _2ba=Object.freeze||function(){};var _2bb=dojo.Deferred=function(_2bc){var _2bd,_2be,_2bf,head,_2c0;var _2c1=(this.promise=new _2b7());function _2c2(_2c3){if(_2be){throw new Error("This deferred has already been resolved");}_2bd=_2c3;_2be=true;_2c4();};function _2c4(){var _2c5;while(!_2c5&&_2c0){var _2c6=_2c0;_2c0=_2c0.next;if((_2c5=(_2c6.progress==_2b9))){_2be=false;}var func=(_2bf?_2c6.error:_2c6.resolved);if(has("config-useDeferredInstrumentation")){if(_2bf&&_2b6.instrumentRejected){_2b6.instrumentRejected(_2bd,!!func);}}if(func){try{var _2c7=func(_2bd);if(_2c7&&typeof _2c7.then==="function"){_2c7.then(lang.hitch(_2c6.deferred,"resolve"),lang.hitch(_2c6.deferred,"reject"),lang.hitch(_2c6.deferred,"progress"));continue;}var _2c8=_2c5&&_2c7===undefined;if(_2c5&&!_2c8){_2bf=_2c7 instanceof Error;}_2c6.deferred[_2c8&&_2bf?"reject":"resolve"](_2c8?_2bd:_2c7);}catch(e){_2c6.deferred.reject(e);}}else{if(_2bf){_2c6.deferred.reject(_2bd);}else{_2c6.deferred.resolve(_2bd);}}}};this.resolve=this.callback=function(_2c9){this.fired=0;this.results=[_2c9,null];_2c2(_2c9);};this.reject=this.errback=function(_2ca){_2bf=true;this.fired=1;if(has("config-useDeferredInstrumentation")){if(_2b6.instrumentRejected){_2b6.instrumentRejected(_2ca,!!_2c0);}}_2c2(_2ca);this.results=[null,_2ca];};this.progress=function(_2cb){var _2cc=_2c0;while(_2cc){var _2cd=_2cc.progress;_2cd&&_2cd(_2cb);_2cc=_2cc.next;}};this.addCallbacks=function(_2ce,_2cf){this.then(_2ce,_2cf,_2b9);return this;};_2c1.then=this.then=function(_2d0,_2d1,_2d2){var _2d3=_2d2==_2b9?this:new _2bb(_2c1.cancel);var _2d4={resolved:_2d0,error:_2d1,progress:_2d2,deferred:_2d3};if(_2c0){head=head.next=_2d4;}else{_2c0=head=_2d4;}if(_2be){_2c4();}return _2d3.promise;};var _2d5=this;_2c1.cancel=this.cancel=function(){if(!_2be){var _2d6=_2bc&&_2bc(_2d5);if(!_2be){if(!(_2d6 instanceof Error)){_2d6=new _2b8(_2d6);}_2d6.log=false;_2d5.reject(_2d6);}}};_2ba(_2c1);};lang.extend(_2bb,{addCallback:function(_2d7){return this.addCallbacks(lang.hitch.apply(dojo,arguments));},addErrback:function(_2d8){return this.addCallbacks(null,lang.hitch.apply(dojo,arguments));},addBoth:function(_2d9){var _2da=lang.hitch.apply(dojo,arguments);return this.addCallbacks(_2da,_2da);},fired:-1});_2bb.when=dojo.when=when;return _2bb;});},"dojo/Deferred":function(){define("dojo/Deferred",["./has","./_base/lang","./errors/CancelError","./promise/Promise","./promise/instrumentation"],function(has,lang,_2db,_2dc,_2dd){"use strict";var _2de=0,_2df=1,_2e0=2;var _2e1="This deferred has already been fulfilled.";var _2e2=Object.freeze||function(){};var _2e3=function(_2e4,type,_2e5,_2e6,_2e7){if(1){if(type===_2e0&&_2e8.instrumentRejected&&_2e4.length===0){_2e8.instrumentRejected(_2e5,false,_2e6,_2e7);}}for(var i=0;i<_2e4.length;i++){_2e9(_2e4[i],type,_2e5,_2e6);}};var _2e9=function(_2ea,type,_2eb,_2ec){var func=_2ea[type];var _2ed=_2ea.deferred;if(func){try{var _2ee=func(_2eb);if(type===_2de){if(typeof _2ee!=="undefined"){_2ef(_2ed,type,_2ee);}}else{if(_2ee&&typeof _2ee.then==="function"){_2ea.cancel=_2ee.cancel;_2ee.then(_2f0(_2ed,_2df),_2f0(_2ed,_2e0),_2f0(_2ed,_2de));return;}_2ef(_2ed,_2df,_2ee);}}catch(error){_2ef(_2ed,_2e0,error);}}else{_2ef(_2ed,type,_2eb);}if(1){if(type===_2e0&&_2e8.instrumentRejected){_2e8.instrumentRejected(_2eb,!!func,_2ec,_2ed.promise);}}};var _2f0=function(_2f1,type){return function(_2f2){_2ef(_2f1,type,_2f2);};};var _2ef=function(_2f3,type,_2f4){if(!_2f3.isCanceled()){switch(type){case _2de:_2f3.progress(_2f4);break;case _2df:_2f3.resolve(_2f4);break;case _2e0:_2f3.reject(_2f4);break;}}};var _2e8=function(_2f5){var _2f6=this.promise=new _2dc();var _2f7=this;var _2f8,_2f9,_2fa;var _2fb=false;var _2fc=[];if(1&&Error.captureStackTrace){Error.captureStackTrace(_2f7,_2e8);Error.captureStackTrace(_2f6,_2e8);}this.isResolved=_2f6.isResolved=function(){return _2f8===_2df;};this.isRejected=_2f6.isRejected=function(){return _2f8===_2e0;};this.isFulfilled=_2f6.isFulfilled=function(){return !!_2f8;};this.isCanceled=_2f6.isCanceled=function(){return _2fb;};this.progress=function(_2fd,_2fe){if(!_2f8){_2e3(_2fc,_2de,_2fd,null,_2f7);return _2f6;}else{if(_2fe===true){throw new Error(_2e1);}else{return _2f6;}}};this.resolve=function(_2ff,_300){if(!_2f8){_2e3(_2fc,_2f8=_2df,_2f9=_2ff,null,_2f7);_2fc=null;return _2f6;}else{if(_300===true){throw new Error(_2e1);}else{return _2f6;}}};var _301=this.reject=function(_302,_303){if(!_2f8){if(1&&Error.captureStackTrace){Error.captureStackTrace(_2fa={},_301);}_2e3(_2fc,_2f8=_2e0,_2f9=_302,_2fa,_2f7);_2fc=null;return _2f6;}else{if(_303===true){throw new Error(_2e1);}else{return _2f6;}}};this.then=_2f6.then=function(_304,_305,_306){var _307=[_306,_304,_305];_307.cancel=_2f6.cancel;_307.deferred=new _2e8(function(_308){return _307.cancel&&_307.cancel(_308);});if(_2f8&&!_2fc){_2e9(_307,_2f8,_2f9,_2fa);}else{_2fc.push(_307);}return _307.deferred.promise;};this.cancel=_2f6.cancel=function(_309,_30a){if(!_2f8){if(_2f5){var _30b=_2f5(_309);_309=typeof _30b==="undefined"?_309:_30b;}_2fb=true;if(!_2f8){if(typeof _309==="undefined"){_309=new _2db();}_301(_309);return _309;}else{if(_2f8===_2e0&&_2f9===_309){return _309;}}}else{if(_30a===true){throw new Error(_2e1);}}};_2e2(_2f6);};_2e8.prototype.toString=function(){return "[object Deferred]";};if(_2dd){_2dd(_2e8);}return _2e8;});},"dojo/errors/CancelError":function(){define(["./create"],function(_30c){return _30c("CancelError",null,null,{dojoType:"cancel"});});},"dojo/errors/create":function(){define(["../_base/lang"],function(lang){return function(name,ctor,base,_30d){base=base||Error;var _30e=function(_30f){if(base===Error){if(Error.captureStackTrace){Error.captureStackTrace(this,_30e);}var err=Error.call(this,_30f),prop;for(prop in err){if(err.hasOwnProperty(prop)){this[prop]=err[prop];}}this.message=_30f;this.stack=err.stack;}else{base.apply(this,arguments);}if(ctor){ctor.apply(this,arguments);}};_30e.prototype=lang.delegate(base.prototype,_30d);_30e.prototype.name=name;_30e.prototype.constructor=_30e;return _30e;};});},"dojo/promise/Promise":function(){define(["../_base/lang"],function(lang){"use strict";function _310(){throw new TypeError("abstract");};return lang.extend(function Promise(){},{then:function(_311,_312,_313){_310();},cancel:function(_314,_315){_310();},isResolved:function(){_310();},isRejected:function(){_310();},isFulfilled:function(){_310();},isCanceled:function(){_310();},always:function(_316){return this.then(_316,_316);},otherwise:function(_317){return this.then(null,_317);},trace:function(){return this;},traceRejected:function(){return this;},toString:function(){return "[object Promise]";}});});},"dojo/promise/instrumentation":function(){define(["./tracer","../has","../_base/lang","../_base/array"],function(_318,has,lang,_319){function _31a(_31b,_31c,_31d){var _31e="";if(_31b&&_31b.stack){_31e+=_31b.stack;}if(_31c&&_31c.stack){_31e+="\n ----------------------------------------\n rejected"+_31c.stack.split("\n").slice(1).join("\n").replace(/^\s+/," ");}if(_31d&&_31d.stack){_31e+="\n ----------------------------------------\n"+_31d.stack;}console.error(_31b,_31e);};function _31f(_320,_321,_322,_323){if(!_321){_31a(_320,_322,_323);}};var _324=[];var _325=false;var _326=1000;function _327(_328,_329,_32a,_32b){if(_329){_319.some(_324,function(obj,ix){if(obj.error===_328){_324.splice(ix,1);return true;}});}else{if(!_319.some(_324,function(obj){return obj.error===_328;})){_324.push({error:_328,rejection:_32a,deferred:_32b,timestamp:new Date().getTime()});}}if(!_325){_325=setTimeout(_32c,_326);}};function _32c(){var now=new Date().getTime();var _32d=now-_326;_324=_319.filter(_324,function(obj){if(obj.timestamp<_32d){_31a(obj.error,obj.rejection,obj.deferred);return false;}return true;});if(_324.length){_325=setTimeout(_32c,_324[0].timestamp+_326-now);}else{_325=false;}};return function(_32e){var _32f=has("config-useDeferredInstrumentation");if(_32f){_318.on("resolved",lang.hitch(console,"log","resolved"));_318.on("rejected",lang.hitch(console,"log","rejected"));_318.on("progress",lang.hitch(console,"log","progress"));var args=[];if(typeof _32f==="string"){args=_32f.split(",");_32f=args.shift();}if(_32f==="report-rejections"){_32e.instrumentRejected=_31f;}else{if(_32f==="report-unhandled-rejections"||_32f===true||_32f===1){_32e.instrumentRejected=_327;_326=parseInt(args[0],10)||_326;}else{throw new Error("Unsupported instrumentation usage <"+_32f+">");}}}};});},"dojo/promise/tracer":function(){define(["../_base/lang","./Promise","../Evented"],function(lang,_330,_331){"use strict";var _332=new _331;var emit=_332.emit;_332.emit=null;function _333(args){setTimeout(function(){emit.apply(_332,args);},0);};_330.prototype.trace=function(){var args=lang._toArray(arguments);this.then(function(_334){_333(["resolved",_334].concat(args));},function(_335){_333(["rejected",_335].concat(args));},function(_336){_333(["progress",_336].concat(args));});return this;};_330.prototype.traceRejected=function(){var args=lang._toArray(arguments);this.otherwise(function(_337){_333(["rejected",_337].concat(args));});return this;};return _332;});},"dojo/when":function(){define("dojo/when",["./Deferred","./promise/Promise"],function(_338,_339){"use strict";return function when(_33a,_33b,_33c,_33d){var _33e=_33a&&typeof _33a.then==="function";var _33f=_33e&&_33a instanceof _339;if(!_33e){if(_33b){return _33b(_33a);}else{return new _338().resolve(_33a);}}else{if(!_33f){var _340=new _338(_33a.cancel);_33a.then(_340.resolve,_340.reject,_340.progress);_33a=_340.promise;}}if(_33b||_33c||_33d){return _33a.then(_33b,_33c,_33d);}return _33a;};});},"dojo/_base/json":function(){define(["./kernel","../json"],function(dojo,json){dojo.fromJson=function(js){return eval("("+js+")");};dojo._escapeString=json.stringify;dojo.toJsonIndentStr="\t";dojo.toJson=function(it,_341){return json.stringify(it,function(key,_342){if(_342){var tf=_342.__json__||_342.json;if(typeof tf=="function"){return tf.call(_342);}}return _342;},_341&&dojo.toJsonIndentStr);};return dojo;});},"dojo/json":function(){define("dojo/json",["./has"],function(has){"use strict";var _343=typeof JSON!="undefined";has.add("json-parse",_343);has.add("json-stringify",_343&&JSON.stringify({a:0},function(k,v){return v||1;})=="{\"a\":1}");if(has("json-stringify")){return JSON;}else{var _344=function(str){return ("\""+str.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};return {parse:has("json-parse")?JSON.parse:function(str,_345){if(_345&&!/^([\s\[\{]*(?:"(?:\\.|[^"])+"|-?\d[\d\.]*(?:[Ee][+-]?\d+)?|null|true|false|)[\s\]\}]*(?:,|:|$))+$/.test(str)){throw new SyntaxError("Invalid characters in JSON");}return eval("("+str+")");},stringify:function(_346,_347,_348){var _349;if(typeof _347=="string"){_348=_347;_347=null;}function _34a(it,_34b,key){if(_347){it=_347(key,it);}var val,_34c=typeof it;if(_34c=="number"){return isFinite(it)?it+"":"null";}if(_34c=="boolean"){return it+"";}if(it===null){return "null";}if(typeof it=="string"){return _344(it);}if(_34c=="function"||_34c=="undefined"){return _349;}if(typeof it.toJSON=="function"){return _34a(it.toJSON(key),_34b,key);}if(it instanceof Date){return "\"{FullYear}-{Month+}-{Date}T{Hours}:{Minutes}:{Seconds}Z\"".replace(/\{(\w+)(\+)?\}/g,function(t,prop,plus){var num=it["getUTC"+prop]()+(plus?1:0);return num<10?"0"+num:num;});}if(it.valueOf()!==it){return _34a(it.valueOf(),_34b,key);}var _34d=_348?(_34b+_348):"";var sep=_348?" ":"";var _34e=_348?"\n":"";if(it instanceof Array){var itl=it.length,res=[];for(key=0;key<itl;key++){var obj=it[key];val=_34a(obj,_34d,key);if(typeof val!="string"){val="null";}res.push(_34e+_34d+val);}return "["+res.join(",")+_34e+_34b+"]";}var _34f=[];for(key in it){var _350;if(it.hasOwnProperty(key)){if(typeof key=="number"){_350="\""+key+"\"";}else{if(typeof key=="string"){_350=_344(key);}else{continue;}}val=_34a(it[key],_34d,key);if(typeof val!="string"){continue;}_34f.push(_34e+_34d+_350+":"+sep+val);}}return "{"+_34f.join(",")+_34e+_34b+"}";};return _34a(_346,"","");}};}});},"dojo/_base/Color":function(){define(["./kernel","./lang","./array","./config"],function(dojo,lang,_351,_352){var _353=dojo.Color=function(_354){if(_354){this.setColor(_354);}};_353.named={"black":[0,0,0],"silver":[192,192,192],"gray":[128,128,128],"white":[255,255,255],"maroon":[128,0,0],"red":[255,0,0],"purple":[128,0,128],"fuchsia":[255,0,255],"green":[0,128,0],"lime":[0,255,0],"olive":[128,128,0],"yellow":[255,255,0],"navy":[0,0,128],"blue":[0,0,255],"teal":[0,128,128],"aqua":[0,255,255],"transparent":_352.transparentColor||[0,0,0,0]};lang.extend(_353,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var t=this;t.r=r;t.g=g;t.b=b;t.a=a;},setColor:function(_355){if(lang.isString(_355)){_353.fromString(_355,this);}else{if(lang.isArray(_355)){_353.fromArray(_355,this);}else{this._set(_355.r,_355.g,_355.b,_355.a);if(!(_355 instanceof _353)){this.sanitize();}}}return this;},sanitize:function(){return this;},toRgb:function(){var t=this;return [t.r,t.g,t.b];},toRgba:function(){var t=this;return [t.r,t.g,t.b,t.a];},toHex:function(){var arr=_351.map(["r","g","b"],function(x){var s=this[x].toString(16);return s.length<2?"0"+s:s;},this);return "#"+arr.join("");},toCss:function(_356){var t=this,rgb=t.r+", "+t.g+", "+t.b;return (_356?"rgba("+rgb+", "+t.a:"rgb("+rgb)+")";},toString:function(){return this.toCss(true);}});_353.blendColors=dojo.blendColors=function(_357,end,_358,obj){var t=obj||new _353();_351.forEach(["r","g","b","a"],function(x){t[x]=_357[x]+(end[x]-_357[x])*_358;if(x!="a"){t[x]=Math.round(t[x]);}});return t.sanitize();};_353.fromRgb=dojo.colorFromRgb=function(_359,obj){var m=_359.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&&_353.fromArray(m[1].split(/\s*,\s*/),obj);};_353.fromHex=dojo.colorFromHex=function(_35a,obj){var t=obj||new _353(),bits=(_35a.length==4)?4:8,mask=(1<<bits)-1;_35a=Number("0x"+_35a.substr(1));if(isNaN(_35a)){return null;}_351.forEach(["b","g","r"],function(x){var c=_35a&mask;_35a>>=bits;t[x]=bits==4?17*c:c;});t.a=1;return t;};_353.fromArray=dojo.colorFromArray=function(a,obj){var t=obj||new _353();t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a)){t.a=1;}return t.sanitize();};_353.fromString=dojo.colorFromString=function(str,obj){var a=_353.named[str];return a&&_353.fromArray(a,obj)||_353.fromRgb(str,obj)||_353.fromHex(str,obj);};return _353;});},"dojo/_base/browser":function(){if(require.has){require.has.add("config-selectorEngine","acme");}define(["../ready","./kernel","./connect","./unload","./window","./event","./html","./NodeList","../query","./xhr","./fx"],function(dojo){return dojo;});},"dojo/_base/unload":function(){define(["./kernel","./lang","../on"],function(dojo,lang,on){var win=window;var _35b={addOnWindowUnload:function(obj,_35c){if(!dojo.windowUnloaded){on(win,"unload",(dojo.windowUnloaded=function(){}));}on(win,"unload",lang.hitch(obj,_35c));},addOnUnload:function(obj,_35d){on(win,"beforeunload",lang.hitch(obj,_35d));}};dojo.addOnWindowUnload=_35b.addOnWindowUnload;dojo.addOnUnload=_35b.addOnUnload;return _35b;});},"dojo/_base/html":function(){define(["./kernel","../dom","../dom-style","../dom-attr","../dom-prop","../dom-class","../dom-construct","../dom-geometry"],function(dojo,dom,_35e,attr,prop,cls,ctr,geom){dojo.byId=dom.byId;dojo.isDescendant=dom.isDescendant;dojo.setSelectable=dom.setSelectable;dojo.getAttr=attr.get;dojo.setAttr=attr.set;dojo.hasAttr=attr.has;dojo.removeAttr=attr.remove;dojo.getNodeProp=attr.getNodeProp;dojo.attr=function(node,name,_35f){if(arguments.length==2){return attr[typeof name=="string"?"get":"set"](node,name);}return attr.set(node,name,_35f);};dojo.hasClass=cls.contains;dojo.addClass=cls.add;dojo.removeClass=cls.remove;dojo.toggleClass=cls.toggle;dojo.replaceClass=cls.replace;dojo._toDom=dojo.toDom=ctr.toDom;dojo.place=ctr.place;dojo.create=ctr.create;dojo.empty=function(node){ctr.empty(node);};dojo._destroyElement=dojo.destroy=function(node){ctr.destroy(node);};dojo._getPadExtents=dojo.getPadExtents=geom.getPadExtents;dojo._getBorderExtents=dojo.getBorderExtents=geom.getBorderExtents;dojo._getPadBorderExtents=dojo.getPadBorderExtents=geom.getPadBorderExtents;dojo._getMarginExtents=dojo.getMarginExtents=geom.getMarginExtents;dojo._getMarginSize=dojo.getMarginSize=geom.getMarginSize;dojo._getMarginBox=dojo.getMarginBox=geom.getMarginBox;dojo.setMarginBox=geom.setMarginBox;dojo._getContentBox=dojo.getContentBox=geom.getContentBox;dojo.setContentSize=geom.setContentSize;dojo._isBodyLtr=dojo.isBodyLtr=geom.isBodyLtr;dojo._docScroll=dojo.docScroll=geom.docScroll;dojo._getIeDocumentElementOffset=dojo.getIeDocumentElementOffset=geom.getIeDocumentElementOffset;dojo._fixIeBiDiScrollLeft=dojo.fixIeBiDiScrollLeft=geom.fixIeBiDiScrollLeft;dojo.position=geom.position;dojo.marginBox=function marginBox(node,box){return box?geom.setMarginBox(node,box):geom.getMarginBox(node);};dojo.contentBox=function contentBox(node,box){return box?geom.setContentSize(node,box):geom.getContentBox(node);};dojo.coords=function(node,_360){dojo.deprecated("dojo.coords()","Use dojo.position() or dojo.marginBox().");node=dom.byId(node);var s=_35e.getComputedStyle(node),mb=geom.getMarginBox(node,s);var abs=geom.position(node,_360);mb.x=abs.x;mb.y=abs.y;return mb;};dojo.getProp=prop.get;dojo.setProp=prop.set;dojo.prop=function(node,name,_361){if(arguments.length==2){return prop[typeof name=="string"?"get":"set"](node,name);}return prop.set(node,name,_361);};dojo.getStyle=_35e.get;dojo.setStyle=_35e.set;dojo.getComputedStyle=_35e.getComputedStyle;dojo.__toPixelValue=dojo.toPixelValue=_35e.toPixelValue;dojo.style=function(node,name,_362){switch(arguments.length){case 1:return _35e.get(node);case 2:return _35e[typeof name=="string"?"get":"set"](node,name);}return _35e.set(node,name,_362);};return dojo;});},"dojo/dom-attr":function(){define("dojo/dom-attr",["exports","./sniff","./_base/lang","./dom","./dom-style","./dom-prop"],function(_363,has,lang,dom,_364,prop){var _365={innerHTML:1,className:1,htmlFor:has("ie"),value:1},_366={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"};function _367(node,name){var attr=node.getAttributeNode&&node.getAttributeNode(name);return attr&&attr.specified;};_363.has=function hasAttr(node,name){var lc=name.toLowerCase();return _365[prop.names[lc]||name]||_367(dom.byId(node),_366[lc]||name);};_363.get=function getAttr(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_368=prop.names[lc]||name,_369=_365[_368],_36a=node[_368];if(_369&&typeof _36a!="undefined"){return _36a;}if(_368!="href"&&(typeof _36a=="boolean"||lang.isFunction(_36a))){return _36a;}var _36b=_366[lc]||name;return _367(node,_36b)?node.getAttribute(_36b):null;};_363.set=function setAttr(node,name,_36c){node=dom.byId(node);if(arguments.length==2){for(var x in name){_363.set(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_36d=prop.names[lc]||name,_36e=_365[_36d];if(_36d=="style"&&typeof _36c!="string"){_364.set(node,_36c);return node;}if(_36e||typeof _36c=="boolean"||lang.isFunction(_36c)){return prop.set(node,name,_36c);}node.setAttribute(_366[lc]||name,_36c);return node;};_363.remove=function removeAttr(node,name){dom.byId(node).removeAttribute(_366[name.toLowerCase()]||name);};_363.getNodeProp=function getNodeProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_36f=prop.names[lc]||name;if((_36f in node)&&_36f!="href"){return node[_36f];}var _370=_366[lc]||name;return _367(node,_370)?node.getAttribute(_370):null;};});},"dojo/dom-prop":function(){define("dojo/dom-prop",["exports","./_base/kernel","./sniff","./_base/lang","./dom","./dom-style","./dom-construct","./_base/connect"],function(_371,dojo,has,lang,dom,_372,ctr,conn){var _373={},_374=0,_375=dojo._scopeName+"attrid";_371.names={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"};_371.get=function getProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_376=_371.names[lc]||name;return node[_376];};_371.set=function setProp(node,name,_377){node=dom.byId(node);var l=arguments.length;if(l==2&&typeof name!="string"){for(var x in name){_371.set(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_378=_371.names[lc]||name;if(_378=="style"&&typeof _377!="string"){_372.set(node,_377);return node;}if(_378=="innerHTML"){if(has("ie")&&node.tagName.toLowerCase() in {col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1}){ctr.empty(node);node.appendChild(ctr.toDom(_377,node.ownerDocument));}else{node[_378]=_377;}return node;}if(lang.isFunction(_377)){var _379=node[_375];if(!_379){_379=_374++;node[_375]=_379;}if(!_373[_379]){_373[_379]={};}var h=_373[_379][_378];if(h){conn.disconnect(h);}else{try{delete node[_378];}catch(e){}}if(_377){_373[_379][_378]=conn.connect(node,_378,_377);}else{node[_378]=null;}return node;}node[_378]=_377;return node;};});},"dojo/dom-construct":function(){define("dojo/dom-construct",["exports","./_base/kernel","./sniff","./_base/window","./dom","./dom-attr","./on"],function(_37a,dojo,has,win,dom,attr,on){var _37b={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_37c=/<\s*([\w\:]+)/,_37d={},_37e=0,_37f="__"+dojo._scopeName+"ToDomId";for(var _380 in _37b){if(_37b.hasOwnProperty(_380)){var tw=_37b[_380];tw.pre=_380=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}}function _381(node,ref){var _382=ref.parentNode;if(_382){_382.insertBefore(node,ref);}};function _383(node,ref){var _384=ref.parentNode;if(_384){if(_384.lastChild==ref){_384.appendChild(node);}else{_384.insertBefore(node,ref.nextSibling);}}};_37a.toDom=function toDom(frag,doc){doc=doc||win.doc;var _385=doc[_37f];if(!_385){doc[_37f]=_385=++_37e+"";_37d[_385]=doc.createElement("div");}frag+="";var _386=frag.match(_37c),tag=_386?_386[1].toLowerCase():"",_387=_37d[_385],wrap,i,fc,df;if(_386&&_37b[tag]){wrap=_37b[tag];_387.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i){_387=_387.firstChild;}}else{_387.innerHTML=frag;}if(_387.childNodes.length==1){return _387.removeChild(_387.firstChild);}df=doc.createDocumentFragment();while((fc=_387.firstChild)){df.appendChild(fc);}return df;};_37a.place=function place(node,_388,_389){_388=dom.byId(_388);if(typeof node=="string"){node=/^\s*</.test(node)?_37a.toDom(node,_388.ownerDocument):dom.byId(node);}if(typeof _389=="number"){var cn=_388.childNodes;if(!cn.length||cn.length<=_389){_388.appendChild(node);}else{_381(node,cn[_389<0?0:_389]);}}else{switch(_389){case "before":_381(node,_388);break;case "after":_383(node,_388);break;case "replace":_388.parentNode.replaceChild(node,_388);break;case "only":_37a.empty(_388);_388.appendChild(node);break;case "first":if(_388.firstChild){_381(node,_388.firstChild);break;}default:_388.appendChild(node);}}return node;};_37a.create=function create(tag,_38a,_38b,pos){var doc=win.doc;if(_38b){_38b=dom.byId(_38b);doc=_38b.ownerDocument;}if(typeof tag=="string"){tag=doc.createElement(tag);}if(_38a){attr.set(tag,_38a);}if(_38b){_37a.place(tag,_38b,pos);}return tag;};var _38c=has("ie")?function(node){try{node.innerHTML="";}catch(e){for(var c;c=node.lastChild;){_38d(c,node);}}}:function(node){node.innerHTML="";};_37a.empty=function empty(node){_38c(dom.byId(node));};function _38d(node,_38e){if(node.firstChild){_38c(node);}if(_38e){_38e.removeChild(node);}};_37a.destroy=function destroy(node){node=dom.byId(node);if(!node){return;}_38d(node,node.parentNode);};});},"dojo/dom-class":function(){define("dojo/dom-class",["./_base/lang","./_base/array","./dom"],function(lang,_38f,dom){var _390="className";var cls,_391=/\s+/,a1=[""];function _392(s){if(typeof s=="string"||s instanceof String){if(s&&!_391.test(s)){a1[0]=s;return a1;}var a=s.split(_391);if(a.length&&!a[0]){a.shift();}if(a.length&&!a[a.length-1]){a.pop();}return a;}if(!s){return [];}return _38f.filter(s,function(x){return x;});};var _393={};cls={contains:function containsClass(node,_394){return ((" "+dom.byId(node)[_390]+" ").indexOf(" "+_394+" ")>=0);},add:function addClass(node,_395){node=dom.byId(node);_395=_392(_395);var cls=node[_390],_396;cls=cls?" "+cls+" ":" ";_396=cls.length;for(var i=0,len=_395.length,c;i<len;++i){c=_395[i];if(c&&cls.indexOf(" "+c+" ")<0){cls+=c+" ";}}if(_396<cls.length){node[_390]=cls.substr(1,cls.length-2);}},remove:function removeClass(node,_397){node=dom.byId(node);var cls;if(_397!==undefined){_397=_392(_397);cls=" "+node[_390]+" ";for(var i=0,len=_397.length;i<len;++i){cls=cls.replace(" "+_397[i]+" "," ");}cls=lang.trim(cls);}else{cls="";}if(node[_390]!=cls){node[_390]=cls;}},replace:function replaceClass(node,_398,_399){node=dom.byId(node);_393[_390]=node[_390];cls.remove(_393,_399);cls.add(_393,_398);if(node[_390]!==_393[_390]){node[_390]=_393[_390];}},toggle:function toggleClass(node,_39a,_39b){node=dom.byId(node);if(_39b===undefined){_39a=_392(_39a);for(var i=0,len=_39a.length,c;i<len;++i){c=_39a[i];cls[cls.contains(node,c)?"remove":"add"](node,c);}}else{cls[_39b?"add":"remove"](node,_39a);}return _39b;}};return cls;});},"dojo/_base/NodeList":function(){define(["./kernel","../query","./array","./html","../NodeList-dom"],function(dojo,_39c,_39d){var _39e=_39c.NodeList,nlp=_39e.prototype;nlp.connect=_39e._adaptAsForEach(function(){return dojo.connect.apply(this,arguments);});nlp.coords=_39e._adaptAsMap(dojo.coords);_39e.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"];_39d.forEach(_39e.events,function(evt){var _39f="on"+evt;nlp[_39f]=function(a,b){return this.connect(_39f,a,b);};});dojo.NodeList=_39e;return _39e;});},"dojo/query":function(){define("dojo/query",["./_base/kernel","./has","./dom","./on","./_base/array","./_base/lang","./selector/_loader","./selector/_loader!default"],function(dojo,has,dom,on,_3a0,lang,_3a1,_3a2){"use strict";has.add("array-extensible",function(){return lang.delegate([],{length:1}).length==1&&!has("bug-for-in-skips-shadowed");});var ap=Array.prototype,aps=ap.slice,apc=ap.concat,_3a3=_3a0.forEach;var tnl=function(a,_3a4,_3a5){var _3a6=new (_3a5||this._NodeListCtor||nl)(a);return _3a4?_3a6._stash(_3a4):_3a6;};var _3a7=function(f,a,o){a=[0].concat(aps.call(a,0));o=o||dojo.global;return function(node){a[0]=node;return f.apply(o,a);};};var _3a8=function(f,o){return function(){this.forEach(_3a7(f,arguments,o));return this;};};var _3a9=function(f,o){return function(){return this.map(_3a7(f,arguments,o));};};var _3aa=function(f,o){return function(){return this.filter(_3a7(f,arguments,o));};};var _3ab=function(f,g,o){return function(){var a=arguments,body=_3a7(f,a,o);if(g.call(o||dojo.global,a)){return this.map(body);}this.forEach(body);return this;};};var _3ac=function(_3ad){var _3ae=this instanceof nl&&has("array-extensible");if(typeof _3ad=="number"){_3ad=Array(_3ad);}var _3af=(_3ad&&"length" in _3ad)?_3ad:arguments;if(_3ae||!_3af.sort){var _3b0=_3ae?this:[],l=_3b0.length=_3af.length;for(var i=0;i<l;i++){_3b0[i]=_3af[i];}if(_3ae){return _3b0;}_3af=_3b0;}lang._mixin(_3af,nlp);_3af._NodeListCtor=function(_3b1){return nl(_3b1);};return _3af;};var nl=_3ac,nlp=nl.prototype=has("array-extensible")?[]:{};nl._wrap=nlp._wrap=tnl;nl._adaptAsMap=_3a9;nl._adaptAsForEach=_3a8;nl._adaptAsFilter=_3aa;nl._adaptWithCondition=_3ab;_3a3(["slice","splice"],function(name){var f=ap[name];nlp[name]=function(){return this._wrap(f.apply(this,arguments),name=="slice"?this:null);};});_3a3(["indexOf","lastIndexOf","every","some"],function(name){var f=_3a0[name];nlp[name]=function(){return f.apply(dojo,[this].concat(aps.call(arguments,0)));};});lang.extend(_3ac,{constructor:nl,_NodeListCtor:nl,toString:function(){return this.join(",");},_stash:function(_3b2){this._parent=_3b2;return this;},on:function(_3b3,_3b4){var _3b5=this.map(function(node){return on(node,_3b3,_3b4);});_3b5.remove=function(){for(var i=0;i<_3b5.length;i++){_3b5[i].remove();}};return _3b5;},end:function(){if(this._parent){return this._parent;}else{return new this._NodeListCtor(0);}},concat:function(item){var t=aps.call(this,0),m=_3a0.map(arguments,function(a){return aps.call(a,0);});return this._wrap(apc.apply(t,m),this);},map:function(func,obj){return this._wrap(_3a0.map(this,func,obj),this);},forEach:function(_3b6,_3b7){_3a3(this,_3b6,_3b7);return this;},filter:function(_3b8){var a=arguments,_3b9=this,_3ba=0;if(typeof _3b8=="string"){_3b9=_3bb._filterResult(this,a[0]);if(a.length==1){return _3b9._stash(this);}_3ba=1;}return this._wrap(_3a0.filter(_3b9,a[_3ba],a[_3ba+1]),this);},instantiate:function(_3bc,_3bd){var c=lang.isFunction(_3bc)?_3bc:lang.getObject(_3bc);_3bd=_3bd||{};return this.forEach(function(node){new c(_3bd,node);});},at:function(){var t=new this._NodeListCtor(0);_3a3(arguments,function(i){if(i<0){i=this.length+i;}if(this[i]){t.push(this[i]);}},this);return t._stash(this);}});function _3be(_3bf,_3c0){var _3c1=function(_3c2,root){if(typeof root=="string"){root=dom.byId(root);if(!root){return new _3c0([]);}}var _3c3=typeof _3c2=="string"?_3bf(_3c2,root):_3c2?_3c2.orphan?_3c2:[_3c2]:[];if(_3c3.orphan){return _3c3;}return new _3c0(_3c3);};_3c1.matches=_3bf.match||function(node,_3c4,root){return _3c1.filter([node],_3c4,root).length>0;};_3c1.filter=_3bf.filter||function(_3c5,_3c6,root){return _3c1(_3c6,root).filter(function(node){return _3a0.indexOf(_3c5,node)>-1;});};if(typeof _3bf!="function"){var _3c7=_3bf.search;_3bf=function(_3c8,root){return _3c7(root||document,_3c8);};}return _3c1;};var _3bb=_3be(_3a2,_3ac);dojo.query=_3be(_3a2,function(_3c9){return _3ac(_3c9);});_3bb.load=function(id,_3ca,_3cb){_3a1.load(id,_3ca,function(_3cc){_3cb(_3be(_3cc,_3ac));});};dojo._filterQueryResult=_3bb._filterResult=function(_3cd,_3ce,root){return new _3ac(_3bb.filter(_3cd,_3ce,root));};dojo.NodeList=_3bb.NodeList=_3ac;return _3bb;});},"dojo/selector/_loader":function(){define(["../has","require"],function(has,_3cf){"use strict";var _3d0=document.createElement("div");has.add("dom-qsa2.1",!!_3d0.querySelectorAll);has.add("dom-qsa3",function(){try{_3d0.innerHTML="<p class='TEST'></p>";return _3d0.querySelectorAll(".TEST:empty").length==1;}catch(e){}});var _3d1;var acme="./acme",lite="./lite";return {load:function(id,_3d2,_3d3,_3d4){var req=_3cf;id=id=="default"?has("config-selectorEngine")||"css3":id;id=id=="css2"||id=="lite"?lite:id=="css2.1"?has("dom-qsa2.1")?lite:acme:id=="css3"?has("dom-qsa3")?lite:acme:id=="acme"?acme:(req=_3d2)&&id;if(id.charAt(id.length-1)=="?"){id=id.substring(0,id.length-1);var _3d5=true;}if(_3d5&&(has("dom-compliant-qsa")||_3d1)){return _3d3(_3d1);}req([id],function(_3d6){if(id!="./lite"){_3d1=_3d6;}_3d3(_3d6);});}};});},"dojo/NodeList-dom":function(){define(["./_base/kernel","./query","./_base/array","./_base/lang","./dom-class","./dom-construct","./dom-geometry","./dom-attr","./dom-style"],function(dojo,_3d7,_3d8,lang,_3d9,_3da,_3db,_3dc,_3dd){var _3de=function(a){return a.length==1&&(typeof a[0]=="string");};var _3df=function(node){var p=node.parentNode;if(p){p.removeChild(node);}};var _3e0=_3d7.NodeList,awc=_3e0._adaptWithCondition,aafe=_3e0._adaptAsForEach,aam=_3e0._adaptAsMap;function _3e1(_3e2){return function(node,name,_3e3){if(arguments.length==2){return _3e2[typeof name=="string"?"get":"set"](node,name);}return _3e2.set(node,name,_3e3);};};lang.extend(_3e0,{_normalize:function(_3e4,_3e5){var _3e6=_3e4.parse===true;if(typeof _3e4.template=="string"){var _3e7=_3e4.templateFunc||(dojo.string&&dojo.string.substitute);_3e4=_3e7?_3e7(_3e4.template,_3e4):_3e4;}var type=(typeof _3e4);if(type=="string"||type=="number"){_3e4=_3da.toDom(_3e4,(_3e5&&_3e5.ownerDocument));if(_3e4.nodeType==11){_3e4=lang._toArray(_3e4.childNodes);}else{_3e4=[_3e4];}}else{if(!lang.isArrayLike(_3e4)){_3e4=[_3e4];}else{if(!lang.isArray(_3e4)){_3e4=lang._toArray(_3e4);}}}if(_3e6){_3e4._runParse=true;}return _3e4;},_cloneNode:function(node){return node.cloneNode(true);},_place:function(ary,_3e8,_3e9,_3ea){if(_3e8.nodeType!=1&&_3e9=="only"){return;}var _3eb=_3e8,_3ec;var _3ed=ary.length;for(var i=_3ed-1;i>=0;i--){var node=(_3ea?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!_3ec){_3ec=_3eb.ownerDocument.createElement("div");}_3ec.appendChild(node);dojo.parser.parse(_3ec);node=_3ec.firstChild;while(_3ec.firstChild){_3ec.removeChild(_3ec.firstChild);}}if(i==_3ed-1){_3da.place(node,_3eb,_3e9);}else{_3eb.parentNode.insertBefore(node,_3eb);}_3eb=node;}},position:aam(_3db.position),attr:awc(_3e1(_3dc),_3de),style:awc(_3e1(_3dd),_3de),addClass:aafe(_3d9.add),removeClass:aafe(_3d9.remove),toggleClass:aafe(_3d9.toggle),replaceClass:aafe(_3d9.replace),empty:aafe(_3da.empty),removeAttr:aafe(_3dc.remove),marginBox:aam(_3db.getMarginBox),place:function(_3ee,_3ef){var item=_3d7(_3ee)[0];return this.forEach(function(node){_3da.place(node,item,_3ef);});},orphan:function(_3f0){return (_3f0?_3d7._filterResult(this,_3f0):this).forEach(_3df);},adopt:function(_3f1,_3f2){return _3d7(_3f1).place(this[0],_3f2)._stash(this);},query:function(_3f3){if(!_3f3){return this;}var ret=new _3e0;this.map(function(node){_3d7(_3f3,node).forEach(function(_3f4){if(_3f4!==undefined){ret.push(_3f4);}});});return ret._stash(this);},filter:function(_3f5){var a=arguments,_3f6=this,_3f7=0;if(typeof _3f5=="string"){_3f6=_3d7._filterResult(this,a[0]);if(a.length==1){return _3f6._stash(this);}_3f7=1;}return this._wrap(_3d8.filter(_3f6,a[_3f7],a[_3f7+1]),this);},addContent:function(_3f8,_3f9){_3f8=this._normalize(_3f8,this[0]);for(var i=0,node;(node=this[i]);i++){this._place(_3f8,node,_3f9,i>0);}return this;}});return _3e0;});},"dojo/_base/xhr":function(){define(["./kernel","./sniff","require","../io-query","../dom","../dom-form","./Deferred","./config","./json","./lang","./array","../on","../aspect","../request/watch","../request/xhr","../request/util"],function(dojo,has,_3fa,ioq,dom,_3fb,_3fc,_3fd,json,lang,_3fe,on,_3ff,_400,_401,util){dojo._xhrObj=_401._create;var cfg=dojo.config;dojo.objectToQuery=ioq.objectToQuery;dojo.queryToObject=ioq.queryToObject;dojo.fieldToObject=_3fb.fieldToObject;dojo.formToObject=_3fb.toObject;dojo.formToQuery=_3fb.toQuery;dojo.formToJson=_3fb.toJson;dojo._blockAsync=false;var _402=dojo._contentHandlers=dojo.contentHandlers={"text":function(xhr){return xhr.responseText;},"json":function(xhr){return json.fromJson(xhr.responseText||null);},"json-comment-filtered":function(xhr){if(!_3fd.useCommentedJson){console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message.");}var _403=xhr.responseText;var _404=_403.indexOf("/*");var _405=_403.lastIndexOf("*/");if(_404==-1||_405==-1){throw new Error("JSON was not comment filtered");}return json.fromJson(_403.substring(_404+2,_405));},"javascript":function(xhr){return dojo.eval(xhr.responseText);},"xml":function(xhr){var _406=xhr.responseXML;if(has("ie")){if((!_406||!_406.documentElement)){var ms=function(n){return "MSXML"+n+".DOMDocument";};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_3fe.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_406=dom;}catch(e){return false;}return true;});}}return _406;},"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){return _402["json-comment-filtered"](xhr);}else{return _402["json"](xhr);}}};dojo._ioSetArgs=function(args,_407,_408,_409){var _40a={args:args,url:args.url};var _40b=null;if(args.form){var form=dom.byId(args.form);var _40c=form.getAttributeNode("action");_40a.url=_40a.url||(_40c?_40c.value:null);_40b=_3fb.toObject(form);}var _40d=[{}];if(_40b){_40d.push(_40b);}if(args.content){_40d.push(args.content);}if(args.preventCache){_40d.push({"dojo.preventCache":new Date().valueOf()});}_40a.query=ioq.objectToQuery(lang.mixin.apply(null,_40d));_40a.handleAs=args.handleAs||"text";var d=new _3fc(function(dfd){dfd.canceled=true;_407&&_407(dfd);var err=dfd.ioArgs.error;if(!err){err=new Error("request cancelled");err.dojoType="cancel";dfd.ioArgs.error=err;}return err;});d.addCallback(_408);var ld=args.load;if(ld&&lang.isFunction(ld)){d.addCallback(function(_40e){return ld.call(args,_40e,_40a);});}var err=args.error;if(err&&lang.isFunction(err)){d.addErrback(function(_40f){return err.call(args,_40f,_40a);});}var _410=args.handle;if(_410&&lang.isFunction(_410)){d.addBoth(function(_411){return _410.call(args,_411,_40a);});}d.addErrback(function(_412){return _409(_412,d);});if(cfg.ioPublish&&dojo.publish&&_40a.args.ioPublish!==false){d.addCallbacks(function(res){dojo.publish("/dojo/io/load",[d,res]);return res;},function(res){dojo.publish("/dojo/io/error",[d,res]);return res;});d.addBoth(function(res){dojo.publish("/dojo/io/done",[d,res]);return res;});}d.ioArgs=_40a;return d;};var _413=function(dfd){var ret=_402[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _414=function(_415,dfd){if(!dfd.ioArgs.args.failOk){console.error(_415);}return _415;};var _416=function(dfd){if(_417<=0){_417=0;if(cfg.ioPublish&&dojo.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){dojo.publish("/dojo/io/stop");}}};var _417=0;_3ff.after(_400,"_onAction",function(){_417-=1;});_3ff.after(_400,"_onInFlight",_416);dojo._ioCancelAll=_400.cancelAll;dojo._ioNotifyStart=function(dfd){if(cfg.ioPublish&&dojo.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_417){dojo.publish("/dojo/io/start");}_417+=1;dojo.publish("/dojo/io/send",[dfd]);}};dojo._ioWatch=function(dfd,_418,_419,_41a){var args=dfd.ioArgs.options=dfd.ioArgs.args;lang.mixin(dfd,{response:dfd.ioArgs,isValid:function(_41b){return _418(dfd);},isReady:function(_41c){return _419(dfd);},handleResponse:function(_41d){return _41a(dfd);}});_400(dfd);_416(dfd);};var _41e="application/x-www-form-urlencoded";dojo._ioAddQueryToUrl=function(_41f){if(_41f.query.length){_41f.url+=(_41f.url.indexOf("?")==-1?"?":"&")+_41f.query;_41f.query=null;}};dojo.xhr=function(_420,args,_421){var rDfd;var dfd=dojo._ioSetArgs(args,function(dfd){rDfd&&rDfd.cancel();},_413,_414);var _422=dfd.ioArgs;if("postData" in args){_422.query=args.postData;}else{if("putData" in args){_422.query=args.putData;}else{if("rawBody" in args){_422.query=args.rawBody;}else{if((arguments.length>2&&!_421)||"POST|PUT".indexOf(_420.toUpperCase())===-1){dojo._ioAddQueryToUrl(_422);}}}}var _423={method:_420,handleAs:"text",timeout:args.timeout,withCredentials:args.withCredentials,ioArgs:_422};if(typeof args.headers!=="undefined"){_423.headers=args.headers;}if(typeof args.contentType!=="undefined"){if(!_423.headers){_423.headers={};}_423.headers["Content-Type"]=args.contentType;}if(typeof _422.query!=="undefined"){_423.data=_422.query;}if(typeof args.sync!=="undefined"){_423.sync=args.sync;}dojo._ioNotifyStart(dfd);try{rDfd=_401(_422.url,_423,true);}catch(e){dfd.cancel();return dfd;}dfd.ioArgs.xhr=rDfd.response.xhr;rDfd.then(function(){dfd.resolve(dfd);}).otherwise(function(_424){_422.error=_424;if(_424.response){_424.status=_424.response.status;_424.responseText=_424.response.text;_424.xhr=_424.response.xhr;}dfd.reject(_424);});return dfd;};dojo.xhrGet=function(args){return dojo.xhr("GET",args);};dojo.rawXhrPost=dojo.xhrPost=function(args){return dojo.xhr("POST",args,true);};dojo.rawXhrPut=dojo.xhrPut=function(args){return dojo.xhr("PUT",args,true);};dojo.xhrDelete=function(args){return dojo.xhr("DELETE",args);};dojo._isDocumentOk=function(x){return util.checkStatus(x.status);};dojo._getText=function(url){var _425;dojo.xhrGet({url:url,sync:true,load:function(text){_425=text;}});return _425;};lang.mixin(dojo.xhr,{_xhrObj:dojo._xhrObj,fieldToObject:_3fb.fieldToObject,formToObject:_3fb.toObject,objectToQuery:ioq.objectToQuery,formToQuery:_3fb.toQuery,formToJson:_3fb.toJson,queryToObject:ioq.queryToObject,contentHandlers:_402,_ioSetArgs:dojo._ioSetArgs,_ioCancelAll:dojo._ioCancelAll,_ioNotifyStart:dojo._ioNotifyStart,_ioWatch:dojo._ioWatch,_ioAddQueryToUrl:dojo._ioAddQueryToUrl,_isDocumentOk:dojo._isDocumentOk,_getText:dojo._getText,get:dojo.xhrGet,post:dojo.xhrPost,put:dojo.xhrPut,del:dojo.xhrDelete});return dojo.xhr;});},"dojo/io-query":function(){define("dojo/io-query",["./_base/lang"],function(lang){var _426={};return {objectToQuery:function objectToQuery(map){var enc=encodeURIComponent,_427=[];for(var name in map){var _428=map[name];if(_428!=_426[name]){var _429=enc(name)+"=";if(lang.isArray(_428)){for(var i=0,l=_428.length;i<l;++i){_427.push(_429+enc(_428[i]));}}else{_427.push(_429+enc(_428));}}}return _427.join("&");},queryToObject:function queryToObject(str){var dec=decodeURIComponent,qp=str.split("&"),ret={},name,val;for(var i=0,l=qp.length,item;i<l;++i){item=qp[i];if(item.length){var s=item.indexOf("=");if(s<0){name=dec(item);val="";}else{name=dec(item.slice(0,s));val=dec(item.slice(s+1));}if(typeof ret[name]=="string"){ret[name]=[ret[name]];}if(lang.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}}return ret;}};});},"dojo/dom-form":function(){define("dojo/dom-form",["./_base/lang","./dom","./io-query","./json"],function(lang,dom,ioq,json){function _42a(obj,name,_42b){if(_42b===null){return;}var val=obj[name];if(typeof val=="string"){obj[name]=[val,_42b];}else{if(lang.isArray(val)){val.push(_42b);}else{obj[name]=_42b;}}};var _42c="file|submit|image|reset|button";var form={fieldToObject:function fieldToObject(_42d){var ret=null;_42d=dom.byId(_42d);if(_42d){var _42e=_42d.name,type=(_42d.type||"").toLowerCase();if(_42e&&type&&!_42d.disabled){if(type=="radio"||type=="checkbox"){if(_42d.checked){ret=_42d.value;}}else{if(_42d.multiple){ret=[];var _42f=[_42d.firstChild];while(_42f.length){for(var node=_42f.pop();node;node=node.nextSibling){if(node.nodeType==1&&node.tagName.toLowerCase()=="option"){if(node.selected){ret.push(node.value);}}else{if(node.nextSibling){_42f.push(node.nextSibling);}if(node.firstChild){_42f.push(node.firstChild);}break;}}}}else{ret=_42d.value;}}}}return ret;},toObject:function formToObject(_430){var ret={},_431=dom.byId(_430).elements;for(var i=0,l=_431.length;i<l;++i){var item=_431[i],_432=item.name,type=(item.type||"").toLowerCase();if(_432&&type&&_42c.indexOf(type)<0&&!item.disabled){_42a(ret,_432,form.fieldToObject(item));if(type=="image"){ret[_432+".x"]=ret[_432+".y"]=ret[_432].x=ret[_432].y=0;}}}return ret;},toQuery:function formToQuery(_433){return ioq.objectToQuery(form.toObject(_433));},toJson:function formToJson(_434,_435){return json.stringify(form.toObject(_434),null,_435?4:0);}};return form;});},"dojo/request/watch":function(){define(["./util","../errors/RequestTimeoutError","../errors/CancelError","../_base/array","../_base/window","../has!host-browser?dom-addeventlistener?:../on:"],function(util,_436,_437,_438,win,on){var _439=null,_43a=[];function _43b(){var now=+(new Date);for(var i=0,dfd;i<_43a.length&&(dfd=_43a[i]);i++){var _43c=dfd.response,_43d=_43c.options;if((dfd.isCanceled&&dfd.isCanceled())||(dfd.isValid&&!dfd.isValid(_43c))){_43a.splice(i--,1);_43e._onAction&&_43e._onAction();}else{if(dfd.isReady&&dfd.isReady(_43c)){_43a.splice(i--,1);dfd.handleResponse(_43c);_43e._onAction&&_43e._onAction();}else{if(dfd.startTime){if(dfd.startTime+(_43d.timeout||0)<now){_43a.splice(i--,1);dfd.cancel(new _436("Timeout exceeded",_43c));_43e._onAction&&_43e._onAction();}}}}}_43e._onInFlight&&_43e._onInFlight(dfd);if(!_43a.length){clearInterval(_439);_439=null;}};function _43e(dfd){if(dfd.response.options.timeout){dfd.startTime=+(new Date);}if(dfd.isFulfilled()){return;}_43a.push(dfd);if(!_439){_439=setInterval(_43b,50);}if(dfd.response.options.sync){_43b();}};_43e.cancelAll=function cancelAll(){try{_438.forEach(_43a,function(dfd){try{dfd.cancel(new _437("All requests canceled."));}catch(e){}});}catch(e){}};if(win&&on&&win.doc.attachEvent){on(win.global,"unload",function(){_43e.cancelAll();});}return _43e;});},"dojo/request/util":function(){define(["exports","../errors/RequestError","../errors/CancelError","../Deferred","../io-query","../_base/array","../_base/lang"],function(_43f,_440,_441,_442,_443,_444,lang){_43f.deepCopy=function deepCopy(_445,_446){for(var name in _446){var tval=_445[name],sval=_446[name];if(tval!==sval){if(tval&&typeof tval==="object"&&sval&&typeof sval==="object"){_43f.deepCopy(tval,sval);}else{_445[name]=sval;}}}return _445;};_43f.deepCreate=function deepCreate(_447,_448){_448=_448||{};var _449=lang.delegate(_447),name,_44a;for(name in _447){_44a=_447[name];if(_44a&&typeof _44a==="object"){_449[name]=_43f.deepCreate(_44a,_448[name]);}}return _43f.deepCopy(_449,_448);};var _44b=Object.freeze||function(obj){return obj;};function _44c(_44d){return _44b(_44d);};_43f.deferred=function deferred(_44e,_44f,_450,_451,_452,last){var def=new _442(function(_453){_44f&&_44f(def,_44e);if(!_453||!(_453 instanceof _440)&&!(_453 instanceof _441)){return new _441("Request canceled",_44e);}return _453;});def.response=_44e;def.isValid=_450;def.isReady=_451;def.handleResponse=_452;function _454(_455){_455.response=_44e;throw _455;};var _456=def.then(_44c).otherwise(_454);if(_43f.notify){_456.then(lang.hitch(_43f.notify,"emit","load"),lang.hitch(_43f.notify,"emit","error"));}var _457=_456.then(function(_458){return _458.data||_458.text;});var _459=_44b(lang.delegate(_457,{response:_456}));if(last){def.then(function(_45a){last.call(def,_45a);},function(_45b){last.call(def,_44e,_45b);});}def.promise=_459;def.then=_459.then;return def;};_43f.addCommonMethods=function addCommonMethods(_45c,_45d){_444.forEach(_45d||["GET","POST","PUT","DELETE"],function(_45e){_45c[(_45e==="DELETE"?"DEL":_45e).toLowerCase()]=function(url,_45f){_45f=lang.delegate(_45f||{});_45f.method=_45e;return _45c(url,_45f);};});};_43f.parseArgs=function parseArgs(url,_460,_461){var data=_460.data,_462=_460.query;if(data&&!_461){if(typeof data==="object"){_460.data=_443.objectToQuery(data);}}if(_462){if(typeof _462==="object"){_462=_443.objectToQuery(_462);}if(_460.preventCache){_462+=(_462?"&":"")+"request.preventCache="+(+(new Date));}}else{if(_460.preventCache){_462="request.preventCache="+(+(new Date));}}if(url&&_462){url+=(~url.indexOf("?")?"&":"?")+_462;}return {url:url,options:_460,getHeader:function(_463){return null;}};};_43f.checkStatus=function(stat){stat=stat||0;return (stat>=200&&stat<300)||stat===304||stat===1223||!stat;};});},"dojo/errors/RequestError":function(){define(["./create"],function(_464){return _464("RequestError",function(_465,_466){this.response=_466;});});},"dojo/errors/RequestTimeoutError":function(){define(["./create","./RequestError"],function(_467,_468){return _467("RequestTimeoutError",null,_468,{dojoType:"timeout"});});},"dojo/request/xhr":function(){define(["../errors/RequestError","./watch","./handlers","./util","../has"],function(_469,_46a,_46b,util,has){has.add("native-xhr",function(){return typeof XMLHttpRequest!=="undefined";});has.add("dojo-force-activex-xhr",function(){return has("activex")&&!document.addEventListener&&window.location.protocol==="file:";});has.add("native-xhr2",function(){if(!has("native-xhr")){return;}var x=new XMLHttpRequest();return typeof x["addEventListener"]!=="undefined"&&(typeof opera==="undefined"||typeof x["upload"]!=="undefined");});has.add("native-formdata",function(){return typeof FormData==="function";});function _46c(_46d,_46e){var _46f=_46d.xhr;_46d.status=_46d.xhr.status;_46d.text=_46f.responseText;if(_46d.options.handleAs==="xml"){_46d.data=_46f.responseXML;}if(!_46e){try{_46b(_46d);}catch(e){_46e=e;}}if(_46e){this.reject(_46e);}else{if(util.checkStatus(_46f.status)){this.resolve(_46d);}else{_46e=new _469("Unable to load "+_46d.url+" status: "+_46f.status,_46d);this.reject(_46e);}}};var _470,_471,_472,_473;if(has("native-xhr2")){_470=function(_474){return !this.isFulfilled();};_473=function(dfd,_475){_475.xhr.abort();};_472=function(_476,dfd,_477){function _478(evt){dfd.handleResponse(_477);};function _479(evt){var _47a=evt.target;var _47b=new _469("Unable to load "+_477.url+" status: "+_47a.status,_477);dfd.handleResponse(_477,_47b);};function _47c(evt){if(evt.lengthComputable){_477.loaded=evt.loaded;_477.total=evt.total;dfd.progress(_477);}};_476.addEventListener("load",_478,false);_476.addEventListener("error",_479,false);_476.addEventListener("progress",_47c,false);return function(){_476.removeEventListener("load",_478,false);_476.removeEventListener("error",_479,false);_476.removeEventListener("progress",_47c,false);};};}else{_470=function(_47d){return _47d.xhr.readyState;};_471=function(_47e){return 4===_47e.xhr.readyState;};_473=function(dfd,_47f){var xhr=_47f.xhr;var _480=typeof xhr.abort;if(_480==="function"||_480==="object"||_480==="unknown"){xhr.abort();}};}var _481,_482={data:null,query:null,sync:false,method:"GET",headers:{"Content-Type":"application/x-www-form-urlencoded"}};function xhr(url,_483,_484){var _485=util.parseArgs(url,util.deepCreate(_482,_483),has("native-formdata")&&_483&&_483.data&&_483.data instanceof FormData);url=_485.url;_483=_485.options;var _486,last=function(){_486&&_486();};var dfd=util.deferred(_485,_473,_470,_471,_46c,last);var _487=_485.xhr=xhr._create();if(!_487){dfd.cancel(new _469("XHR was not created"));return _484?dfd:dfd.promise;}_485.getHeader=function(_488){return this.xhr.getResponseHeader(_488);};if(_472){_486=_472(_487,dfd,_485);}var data=_483.data,_489=!_483.sync,_48a=_483.method;try{_487.open(_48a,url,_489,_483.user||_481,_483.password||_481);if(_483.withCredentials){_487.withCredentials=_483.withCredentials;}var _48b=_483.headers,_48c;if(_48b){for(var hdr in _48b){if(hdr.toLowerCase()==="content-type"){_48c=_48b[hdr];}else{if(_48b[hdr]){_487.setRequestHeader(hdr,_48b[hdr]);}}}}if(_48c&&_48c!==false){_487.setRequestHeader("Content-Type",_48c);}if(!_48b||!("X-Requested-With" in _48b)){_487.setRequestHeader("X-Requested-With","XMLHttpRequest");}if(util.notify){util.notify.emit("send",_485,dfd.promise.cancel);}_487.send(data);}catch(e){dfd.reject(e);}_46a(dfd);_487=null;return _484?dfd:dfd.promise;};xhr._create=function(){throw new Error("XMLHTTP not available");};if(has("native-xhr")&&!has("dojo-force-activex-xhr")){xhr._create=function(){return new XMLHttpRequest();};}else{if(has("activex")){try{new ActiveXObject("Msxml2.XMLHTTP");xhr._create=function(){return new ActiveXObject("Msxml2.XMLHTTP");};}catch(e){try{new ActiveXObject("Microsoft.XMLHTTP");xhr._create=function(){return new ActiveXObject("Microsoft.XMLHTTP");};}catch(e){}}}}util.addCommonMethods(xhr);return xhr;});},"dojo/request/handlers":function(){define(["../json","../_base/kernel","../_base/array","../has"],function(JSON,_48d,_48e,has){has.add("activex",typeof ActiveXObject!=="undefined");var _48f;if(has("activex")){var dp=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML.DOMDocument"];_48f=function(_490){var _491=_490.data;if(!_491||!_491.documentElement){var text=_490.text;_48e.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(text);_491=dom;}catch(e){return false;}return true;});}return _491;};}var _492={"javascript":function(_493){return _48d.eval(_493.text||"");},"json":function(_494){return JSON.parse(_494.text||null);},"xml":_48f};function _495(_496){var _497=_492[_496.options.handleAs];_496.data=_497?_497(_496):(_496.data||_496.text);return _496;};_495.register=function(name,_498){_492[name]=_498;};return _495;});},"dojo/_base/fx":function(){define(["./kernel","./config","./lang","../Evented","./Color","./connect","./sniff","../dom","../dom-style"],function(dojo,_499,lang,_49a,_49b,_49c,has,dom,_49d){var _49e=lang.mixin;var _49f={};var _4a0=_49f._Line=function(_4a1,end){this.start=_4a1;this.end=end;};_4a0.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};var _4a2=_49f.Animation=function(args){_49e(this,args);if(lang.isArray(this.curve)){this.curve=new _4a0(this.curve[0],this.curve[1]);}};_4a2.prototype=new _49a();lang.extend(_4a2,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _4a3=this._percent,_4a4=this.easing;return _4a4?_4a4(_4a3):_4a3;},_fire:function(evt,args){var a=args||[];if(this[evt]){if(_499.debugAtAllCosts){this[evt].apply(this,a);}else{try{this[evt].apply(this,a);}catch(e){console.error("exception in animation handler for:",evt);console.error(e);}}}return this;},play:function(_4a5,_4a6){var _4a7=this;if(_4a7._delayTimer){_4a7._clearTimer();}if(_4a6){_4a7._stopTimer();_4a7._active=_4a7._paused=false;_4a7._percent=0;}else{if(_4a7._active&&!_4a7._paused){return _4a7;}}_4a7._fire("beforeBegin",[_4a7.node]);var de=_4a5||_4a7.delay,_4a8=lang.hitch(_4a7,"_play",_4a6);if(de>0){_4a7._delayTimer=setTimeout(_4a8,de);return _4a7;}_4a8();return _4a7;},_play:function(_4a9){var _4aa=this;if(_4aa._delayTimer){_4aa._clearTimer();}_4aa._startTime=new Date().valueOf();if(_4aa._paused){_4aa._startTime-=_4aa.duration*_4aa._percent;}_4aa._active=true;_4aa._paused=false;var _4ab=_4aa.curve.getValue(_4aa._getStep());if(!_4aa._percent){if(!_4aa._startRepeatCount){_4aa._startRepeatCount=_4aa.repeat;}_4aa._fire("onBegin",[_4ab]);}_4aa._fire("onPlay",[_4ab]);_4aa._cycle();return _4aa;},pause:function(){var _4ac=this;if(_4ac._delayTimer){_4ac._clearTimer();}_4ac._stopTimer();if(!_4ac._active){return _4ac;}_4ac._paused=true;_4ac._fire("onPause",[_4ac.curve.getValue(_4ac._getStep())]);return _4ac;},gotoPercent:function(_4ad,_4ae){var _4af=this;_4af._stopTimer();_4af._active=_4af._paused=true;_4af._percent=_4ad;if(_4ae){_4af.play();}return _4af;},stop:function(_4b0){var _4b1=this;if(_4b1._delayTimer){_4b1._clearTimer();}if(!_4b1._timer){return _4b1;}_4b1._stopTimer();if(_4b0){_4b1._percent=1;}_4b1._fire("onStop",[_4b1.curve.getValue(_4b1._getStep())]);_4b1._active=_4b1._paused=false;return _4b1;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _4b2=this;if(_4b2._active){var curr=new Date().valueOf();var step=_4b2.duration===0?1:(curr-_4b2._startTime)/(_4b2.duration);if(step>=1){step=1;}_4b2._percent=step;if(_4b2.easing){step=_4b2.easing(step);}_4b2._fire("onAnimate",[_4b2.curve.getValue(step)]);if(_4b2._percent<1){_4b2._startTimer();}else{_4b2._active=false;if(_4b2.repeat>0){_4b2.repeat--;_4b2.play(null,true);}else{if(_4b2.repeat==-1){_4b2.play(null,true);}else{if(_4b2._startRepeatCount){_4b2.repeat=_4b2._startRepeatCount;_4b2._startRepeatCount=0;}}}_4b2._percent=0;_4b2._fire("onEnd",[_4b2.node]);!_4b2.repeat&&_4b2._stopTimer();}}return _4b2;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_4b3=null,_4b4={run:function(){}};lang.extend(_4a2,{_startTimer:function(){if(!this._timer){this._timer=_49c.connect(_4b4,"run",this,"_cycle");ctr++;}if(!_4b3){_4b3=setInterval(lang.hitch(_4b4,"run"),this.rate);}},_stopTimer:function(){if(this._timer){_49c.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_4b3);_4b3=null;ctr=0;}}});var _4b5=has("ie")?function(node){var ns=node.style;if(!ns.width.length&&_49d.get(node,"width")=="auto"){ns.width="auto";}}:function(){};_49f._fade=function(args){args.node=dom.byId(args.node);var _4b6=_49e({properties:{}},args),_4b7=(_4b6.properties.opacity={});_4b7.start=!("start" in _4b6)?function(){return +_49d.get(_4b6.node,"opacity")||0;}:_4b6.start;_4b7.end=_4b6.end;var anim=_49f.animateProperty(_4b6);_49c.connect(anim,"beforeBegin",lang.partial(_4b5,_4b6.node));return anim;};_49f.fadeIn=function(args){return _49f._fade(_49e({end:1},args));};_49f.fadeOut=function(args){return _49f._fade(_49e({end:0},args));};_49f._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _4b8=function(_4b9){this._properties=_4b9;for(var p in _4b9){var prop=_4b9[p];if(prop.start instanceof _49b){prop.tempColor=new _49b();}}};_4b8.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_4ba=prop.start;if(_4ba instanceof _49b){ret[p]=_49b.blendColors(_4ba,prop.end,r,prop.tempColor).toCss();}else{if(!lang.isArray(_4ba)){ret[p]=((prop.end-_4ba)*r)+_4ba+(p!="opacity"?prop.units||"px":0);}}}return ret;};_49f.animateProperty=function(args){var n=args.node=dom.byId(args.node);if(!args.easing){args.easing=dojo._defaultEasing;}var anim=new _4a2(args);_49c.connect(anim,"beforeBegin",anim,function(){var pm={};for(var p in this.properties){if(p=="width"||p=="height"){this.node.display="block";}var prop=this.properties[p];if(lang.isFunction(prop)){prop=prop(n);}prop=pm[p]=_49e({},(lang.isObject(prop)?prop:{end:prop}));if(lang.isFunction(prop.start)){prop.start=prop.start(n);}if(lang.isFunction(prop.end)){prop.end=prop.end(n);}var _4bb=(p.toLowerCase().indexOf("color")>=0);function _4bc(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return v;}v=_49d.get(node,p);return (p=="opacity")?+v:(_4bb?v:parseFloat(v));};if(!("end" in prop)){prop.end=_4bc(n,p);}else{if(!("start" in prop)){prop.start=_4bc(n,p);}}if(_4bb){prop.start=new _49b(prop.start);prop.end=new _49b(prop.end);}else{prop.start=(p=="opacity")?+prop.start:parseFloat(prop.start);}}this.curve=new _4b8(pm);});_49c.connect(anim,"onAnimate",lang.hitch(_49d,"set",anim.node));return anim;};_49f.anim=function(node,_4bd,_4be,_4bf,_4c0,_4c1){return _49f.animateProperty({node:node,duration:_4be||_4a2.prototype.duration,properties:_4bd,easing:_4bf,onEnd:_4c0}).play(_4c1||0);};if(1){_49e(dojo,_49f);dojo._Animation=_4a2;}return _49f;});},"dojo/_base/loader":function(){define(["./kernel","../has","require","module","./json","./lang","./array"],function(dojo,has,_4c2,_4c3,json,lang,_4c4){if(!1){console.error("cannot load the Dojo v1.x loader with a foreign loader");return 0;}1||has.add("dojo-fast-sync-require",1);var _4c5=function(id){return {src:_4c3.id,id:id};},_4c6=function(name){return name.replace(/\./g,"/");},_4c7=/\/\/>>built/,_4c8=[],_4c9=[],_4ca=function(mid,_4cb,_4cc){_4c8.push(_4cc);_4c4.forEach(mid.split(","),function(mid){var _4cd=_4ce(mid,_4cb.module);_4c9.push(_4cd);_4cf(_4cd);});_4d0();},_4d0=(1?function(){var _4d1,mid;for(mid in _4d2){_4d1=_4d2[mid];if(_4d1.noReqPluginCheck===undefined){_4d1.noReqPluginCheck=/loadInit\!/.test(mid)||/require\!/.test(mid)?1:0;}if(!_4d1.executed&&!_4d1.noReqPluginCheck&&_4d1.injected==_4d3){return;}}_4d4(function(){var _4d5=_4c8;_4c8=[];_4c4.forEach(_4d5,function(cb){cb(1);});});}:(function(){var _4d6,_4d7=function(m){_4d6[m.mid]=1;for(var t,_4d8,deps=m.deps||[],i=0;i<deps.length;i++){_4d8=deps[i];if(!(t=_4d6[_4d8.mid])){if(t===0||!_4d7(_4d8)){_4d6[m.mid]=0;return false;}}}return true;};return function(){var _4d9,mid;_4d6={};for(mid in _4d2){_4d9=_4d2[mid];if(_4d9.executed||_4d9.noReqPluginCheck){_4d6[mid]=1;}else{if(_4d9.noReqPluginCheck!==0){_4d9.noReqPluginCheck=/loadInit\!/.test(mid)||/require\!/.test(mid)?1:0;}if(_4d9.noReqPluginCheck){_4d6[mid]=1;}else{if(_4d9.injected!==_505){_4d6[mid]=0;}}}}for(var t,i=0,end=_4c9.length;i<end;i++){_4d9=_4c9[i];if(!(t=_4d6[_4d9.mid])){if(t===0||!_4d7(_4d9)){return;}}}_4d4(function(){var _4da=_4c8;_4c8=[];_4c4.forEach(_4da,function(cb){cb(1);});});};})()),_4db=function(mid,_4dc,_4dd){_4dc([mid],function(_4de){_4dc(_4de.names,function(){for(var _4df="",args=[],i=0;i<arguments.length;i++){_4df+="var "+_4de.names[i]+"= arguments["+i+"]; ";args.push(arguments[i]);}eval(_4df);var _4e0=_4dc.module,_4e1=[],_4e2,_4e3={provide:function(_4e4){_4e4=_4c6(_4e4);var _4e5=_4ce(_4e4,_4e0);if(_4e5!==_4e0){_50b(_4e5);}},require:function(_4e6,_4e7){_4e6=_4c6(_4e6);_4e7&&(_4ce(_4e6,_4e0).result=_506);_4e1.push(_4e6);},requireLocalization:function(_4e8,_4e9,_4ea){if(!_4e2){_4e2=["dojo/i18n"];}_4ea=(_4ea||dojo.locale).toLowerCase();_4e8=_4c6(_4e8)+"/nls/"+(/root/i.test(_4ea)?"":_4ea+"/")+_4c6(_4e9);if(_4ce(_4e8,_4e0).isXd){_4e2.push("dojo/i18n!"+_4e8);}},loadInit:function(f){f();}},hold={},p;try{for(p in _4e3){hold[p]=dojo[p];dojo[p]=_4e3[p];}_4de.def.apply(null,args);}catch(e){_4eb("error",[_4c5("failedDojoLoadInit"),e]);}finally{for(p in _4e3){dojo[p]=hold[p];}}if(_4e2){_4e1=_4e1.concat(_4e2);}if(_4e1.length){_4ca(_4e1.join(","),_4dc,_4dd);}else{_4dd();}});});},_4ec=function(text,_4ed,_4ee){var _4ef=/\(|\)/g,_4f0=1,_4f1;_4ef.lastIndex=_4ed;while((_4f1=_4ef.exec(text))){if(_4f1[0]==")"){_4f0-=1;}else{_4f0+=1;}if(_4f0==0){break;}}if(_4f0!=0){throw "unmatched paren around character "+_4ef.lastIndex+" in: "+text;}return [dojo.trim(text.substring(_4ee,_4ef.lastIndex))+";\n",_4ef.lastIndex];},_4f2=/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,_4f3=/(^|\s)dojo\.(loadInit|require|provide|requireLocalization|requireIf|requireAfterIf|platformRequire)\s*\(/mg,_4f4=/(^|\s)(require|define)\s*\(/m,_4f5=function(text,_4f6){var _4f7,_4f8,_4f9,_4fa,_4fb=[],_4fc=[],_4fd=[];_4f6=_4f6||text.replace(_4f2,function(_4fe){_4f3.lastIndex=_4f4.lastIndex=0;return (_4f3.test(_4fe)||_4f4.test(_4fe))?"":_4fe;});while((_4f7=_4f3.exec(_4f6))){_4f8=_4f3.lastIndex;_4f9=_4f8-_4f7[0].length;_4fa=_4ec(_4f6,_4f8,_4f9);if(_4f7[2]=="loadInit"){_4fb.push(_4fa[0]);}else{_4fc.push(_4fa[0]);}_4f3.lastIndex=_4fa[1];}_4fd=_4fb.concat(_4fc);if(_4fd.length||!_4f4.test(_4f6)){return [text.replace(/(^|\s)dojo\.loadInit\s*\(/g,"\n0 && dojo.loadInit("),_4fd.join(""),_4fd];}else{return 0;}},_4ff=function(_500,text){var _501,id,_502=[],_503=[];if(_4c7.test(text)||!(_501=_4f5(text))){return 0;}id=_500.mid+"-*loadInit";for(var p in _4ce("dojo",_500).result.scopeMap){_502.push(p);_503.push("\""+p+"\"");}return "// xdomain rewrite of "+_500.mid+"\n"+"define('"+id+"',{\n"+"\tnames:"+dojo.toJson(_502)+",\n"+"\tdef:function("+_502.join(",")+"){"+_501[1]+"}"+"});\n\n"+"define("+dojo.toJson(_502.concat(["dojo/loadInit!"+id]))+", function("+_502.join(",")+"){\n"+_501[0]+"});";},_504=_4c2.initSyncLoader(_4ca,_4d0,_4ff),sync=_504.sync,_4d3=_504.requested,_505=_504.arrived,_506=_504.nonmodule,_507=_504.executing,_508=_504.executed,_509=_504.syncExecStack,_4d2=_504.modules,_50a=_504.execQ,_4ce=_504.getModule,_4cf=_504.injectModule,_50b=_504.setArrived,_4eb=_504.signal,_50c=_504.finishExec,_50d=_504.execModule,_50e=_504.getLegacyMode,_4d4=_504.guardCheckComplete;_4ca=_504.dojoRequirePlugin;dojo.provide=function(mid){var _50f=_509[0],_510=lang.mixin(_4ce(_4c6(mid),_4c2.module),{executed:_507,result:lang.getObject(mid,true)});_50b(_510);if(_50f){(_50f.provides||(_50f.provides=[])).push(function(){_510.result=lang.getObject(mid);delete _510.provides;_510.executed!==_508&&_50c(_510);});}return _510.result;};has.add("config-publishRequireResult",1,0,0);dojo.require=function(_511,_512){function _513(mid,_514){var _515=_4ce(_4c6(mid),_4c2.module);if(_509.length&&_509[0].finish){_509[0].finish.push(mid);return undefined;}if(_515.executed){return _515.result;}_514&&(_515.result=_506);var _516=_50e();_4cf(_515);_516=_50e();if(_515.executed!==_508&&_515.injected===_505){_504.guardCheckComplete(function(){_50d(_515);});}if(_515.executed){return _515.result;}if(_516==sync){if(_515.cjs){_50a.unshift(_515);}else{_509.length&&(_509[0].finish=[mid]);}}else{_50a.push(_515);}return undefined;};var _517=_513(_511,_512);if(has("config-publishRequireResult")&&!lang.exists(_511)&&_517!==undefined){lang.setObject(_511,_517);}return _517;};dojo.loadInit=function(f){f();};dojo.registerModulePath=function(_518,_519){var _51a={};_51a[_518.replace(/\./g,"/")]=_519;_4c2({paths:_51a});};dojo.platformRequire=function(_51b){var _51c=(_51b.common||[]).concat(_51b[dojo._name]||_51b["default"]||[]),temp;while(_51c.length){if(lang.isArray(temp=_51c.shift())){dojo.require.apply(dojo,temp);}else{dojo.require(temp);}}};dojo.requireIf=dojo.requireAfterIf=function(_51d,_51e,_51f){if(_51d){dojo.require(_51e,_51f);}};dojo.requireLocalization=function(_520,_521,_522){_4c2(["../i18n"],function(i18n){i18n.getLocalization(_520,_521,_522);});};return {extractLegacyApiApplications:_4f5,require:_4ca,loadInit:_4db};});}}});(function(){var _523=this.require;_523({cache:{}});!_523.async&&_523(["dojo"]);_523.boot&&_523.apply(null,_523.boot);})(); \ No newline at end of file
diff --git a/lib/dojo/dojo.profile.js b/lib/dojo/dojo.profile.js
index 40e45f923..4b24edb5e 100644
--- a/lib/dojo/dojo.profile.js
+++ b/lib/dojo/dojo.profile.js
@@ -15,7 +15,11 @@ var profile = (function(){
"dojo/tests/_base/loader/requirejs/relative/relative-tests":1,
"dojo/tests/_base/loader/requirejs/exports/exports-tests":1
};
- return (mid in list) || /^dojo\/_base\/config\w+$/.test(mid) || (/^dojo\/resources\//.test(mid) && !/\.css$/.test(filename)) || /(png|jpg|jpeg|gif|tiff)$/.test(filename);
+ return (mid in list) ||
+ /^dojo\/_base\/config\w+$/.test(mid) ||
+ (/^dojo\/resources\//.test(mid) && !/\.css$/.test(filename)) ||
+ /(png|jpg|jpeg|gif|tiff)$/.test(filename) ||
+ /built\-i18n\-test\/152\-build/.test(mid);
};
return {
@@ -31,10 +35,6 @@ var profile = (function(){
amd: function(filename, mid){
return !testResourceRe.test(mid) && !copyOnly(filename, mid) && /\.js$/.test(filename);
}
- },
-
- trees:[
- [".", ".", /(\/\.)|(~$)/]
- ]
+ }
};
})();
diff --git a/lib/dojo/dom-attr.js b/lib/dojo/dom-attr.js
index de63f414c..5413188ee 100644
--- a/lib/dojo/dom-attr.js
+++ b/lib/dojo/dom-attr.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dom-attr",["exports","./_base/sniff","./_base/lang","./dom","./dom-style","./dom-prop"],function(_1,_2,_3,_4,_5,_6){var _7={innerHTML:1,className:1,htmlFor:_2("ie"),value:1},_8={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"};function _9(_a,_b){var _c=_a.getAttributeNode&&_a.getAttributeNode(_b);return _c&&_c.specified;};_1.has=function hasAttr(_d,_e){var lc=_e.toLowerCase();return _7[_6.names[lc]||_e]||_9(_4.byId(_d),_8[lc]||_e);};_1.get=function getAttr(_f,_10){_f=_4.byId(_f);var lc=_10.toLowerCase(),_11=_6.names[lc]||_10,_12=_7[_11];value=_f[_11];if(_12&&typeof value!="undefined"){return value;}if(_11!="href"&&(typeof value=="boolean"||_3.isFunction(value))){return value;}var _13=_8[lc]||_10;return _9(_f,_13)?_f.getAttribute(_13):null;};_1.set=function setAttr(_14,_15,_16){_14=_4.byId(_14);if(arguments.length==2){for(var x in _15){_1.set(_14,x,_15[x]);}return _14;}var lc=_15.toLowerCase(),_17=_6.names[lc]||_15,_18=_7[_17];if(_17=="style"&&typeof _16!="string"){_5.set(_14,_16);return _14;}if(_18||typeof _16=="boolean"||_3.isFunction(_16)){return _6.set(_14,_15,_16);}_14.setAttribute(_8[lc]||_15,_16);return _14;};_1.remove=function removeAttr(_19,_1a){_4.byId(_19).removeAttribute(_8[_1a.toLowerCase()]||_1a);};_1.getNodeProp=function getNodeProp(_1b,_1c){_1b=_4.byId(_1b);var lc=_1c.toLowerCase(),_1d=_6.names[lc]||_1c;if((_1d in _1b)&&_1d!="href"){return _1b[_1d];}var _1e=_8[lc]||_1c;return _9(_1b,_1e)?_1b.getAttribute(_1e):null;};}); \ No newline at end of file
+define("dojo/dom-attr",["exports","./sniff","./_base/lang","./dom","./dom-style","./dom-prop"],function(_1,_2,_3,_4,_5,_6){var _7={innerHTML:1,className:1,htmlFor:_2("ie"),value:1},_8={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"};function _9(_a,_b){var _c=_a.getAttributeNode&&_a.getAttributeNode(_b);return _c&&_c.specified;};_1.has=function hasAttr(_d,_e){var lc=_e.toLowerCase();return _7[_6.names[lc]||_e]||_9(_4.byId(_d),_8[lc]||_e);};_1.get=function getAttr(_f,_10){_f=_4.byId(_f);var lc=_10.toLowerCase(),_11=_6.names[lc]||_10,_12=_7[_11],_13=_f[_11];if(_12&&typeof _13!="undefined"){return _13;}if(_11!="href"&&(typeof _13=="boolean"||_3.isFunction(_13))){return _13;}var _14=_8[lc]||_10;return _9(_f,_14)?_f.getAttribute(_14):null;};_1.set=function setAttr(_15,_16,_17){_15=_4.byId(_15);if(arguments.length==2){for(var x in _16){_1.set(_15,x,_16[x]);}return _15;}var lc=_16.toLowerCase(),_18=_6.names[lc]||_16,_19=_7[_18];if(_18=="style"&&typeof _17!="string"){_5.set(_15,_17);return _15;}if(_19||typeof _17=="boolean"||_3.isFunction(_17)){return _6.set(_15,_16,_17);}_15.setAttribute(_8[lc]||_16,_17);return _15;};_1.remove=function removeAttr(_1a,_1b){_4.byId(_1a).removeAttribute(_8[_1b.toLowerCase()]||_1b);};_1.getNodeProp=function getNodeProp(_1c,_1d){_1c=_4.byId(_1c);var lc=_1d.toLowerCase(),_1e=_6.names[lc]||_1d;if((_1e in _1c)&&_1e!="href"){return _1c[_1e];}var _1f=_8[lc]||_1d;return _9(_1c,_1f)?_1c.getAttribute(_1f):null;};}); \ No newline at end of file
diff --git a/lib/dojo/dom-class.js b/lib/dojo/dom-class.js
index e4f09f161..d9b80ab74 100644
--- a/lib/dojo/dom-class.js
+++ b/lib/dojo/dom-class.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/dom-construct.js b/lib/dojo/dom-construct.js
index 856d00058..cbcb8c151 100644
--- a/lib/dojo/dom-construct.js
+++ b/lib/dojo/dom-construct.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dom-construct",["exports","./_base/kernel","./_base/sniff","./_base/window","./dom","./dom-attr","./on"],function(_1,_2,_3,_4,_5,_6,on){var _7={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_8=/<\s*([\w\:]+)/,_9={},_a=0,_b="__"+_2._scopeName+"ToDomId";for(var _c in _7){if(_7.hasOwnProperty(_c)){var tw=_7[_c];tw.pre=_c=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}}function _d(_e,_f){var _10=_f.parentNode;if(_10){_10.insertBefore(_e,_f);}};function _11(_12,ref){var _13=ref.parentNode;if(_13){if(_13.lastChild==ref){_13.appendChild(_12);}else{_13.insertBefore(_12,ref.nextSibling);}}};var _14=null,_15;on(window,"unload",function(){_14=null;});_1.toDom=function toDom(_16,doc){doc=doc||_4.doc;var _17=doc[_b];if(!_17){doc[_b]=_17=++_a+"";_9[_17]=doc.createElement("div");}_16+="";var _18=_16.match(_8),tag=_18?_18[1].toLowerCase():"",_19=_9[_17],_1a,i,fc,df;if(_18&&_7[tag]){_1a=_7[tag];_19.innerHTML=_1a.pre+_16+_1a.post;for(i=_1a.length;i;--i){_19=_19.firstChild;}}else{_19.innerHTML=_16;}if(_19.childNodes.length==1){return _19.removeChild(_19.firstChild);}df=doc.createDocumentFragment();while(fc=_19.firstChild){df.appendChild(fc);}return df;};_1.place=function place(_1b,_1c,_1d){_1c=_5.byId(_1c);if(typeof _1b=="string"){_1b=/^\s*</.test(_1b)?_1.toDom(_1b,_1c.ownerDocument):_5.byId(_1b);}if(typeof _1d=="number"){var cn=_1c.childNodes;if(!cn.length||cn.length<=_1d){_1c.appendChild(_1b);}else{_d(_1b,cn[_1d<0?0:_1d]);}}else{switch(_1d){case "before":_d(_1b,_1c);break;case "after":_11(_1b,_1c);break;case "replace":_1c.parentNode.replaceChild(_1b,_1c);break;case "only":_1.empty(_1c);_1c.appendChild(_1b);break;case "first":if(_1c.firstChild){_d(_1b,_1c.firstChild);break;}default:_1c.appendChild(_1b);}}return _1b;};_1.create=function create(tag,_1e,_1f,pos){var doc=_4.doc;if(_1f){_1f=_5.byId(_1f);doc=_1f.ownerDocument;}if(typeof tag=="string"){tag=doc.createElement(tag);}if(_1e){_6.set(tag,_1e);}if(_1f){_1.place(tag,_1f,pos);}return tag;};_1.empty=_3("ie")?function(_20){_20=_5.byId(_20);for(var c;c=_20.lastChild;){_1.destroy(c);}}:function(_21){_5.byId(_21).innerHTML="";};_1.destroy=function destroy(_22){_22=_5.byId(_22);try{var doc=_22.ownerDocument;if(!_14||_15!=doc){_14=doc.createElement("div");_15=doc;}_14.appendChild(_22.parentNode?_22.parentNode.removeChild(_22):_22);_14.innerHTML="";}catch(e){}};}); \ No newline at end of file
+define("dojo/dom-construct",["exports","./_base/kernel","./sniff","./_base/window","./dom","./dom-attr","./on"],function(_1,_2,_3,_4,_5,_6,on){var _7={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_8=/<\s*([\w\:]+)/,_9={},_a=0,_b="__"+_2._scopeName+"ToDomId";for(var _c in _7){if(_7.hasOwnProperty(_c)){var tw=_7[_c];tw.pre=_c=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}}function _d(_e,_f){var _10=_f.parentNode;if(_10){_10.insertBefore(_e,_f);}};function _11(_12,ref){var _13=ref.parentNode;if(_13){if(_13.lastChild==ref){_13.appendChild(_12);}else{_13.insertBefore(_12,ref.nextSibling);}}};_1.toDom=function toDom(_14,doc){doc=doc||_4.doc;var _15=doc[_b];if(!_15){doc[_b]=_15=++_a+"";_9[_15]=doc.createElement("div");}_14+="";var _16=_14.match(_8),tag=_16?_16[1].toLowerCase():"",_17=_9[_15],_18,i,fc,df;if(_16&&_7[tag]){_18=_7[tag];_17.innerHTML=_18.pre+_14+_18.post;for(i=_18.length;i;--i){_17=_17.firstChild;}}else{_17.innerHTML=_14;}if(_17.childNodes.length==1){return _17.removeChild(_17.firstChild);}df=doc.createDocumentFragment();while((fc=_17.firstChild)){df.appendChild(fc);}return df;};_1.place=function place(_19,_1a,_1b){_1a=_5.byId(_1a);if(typeof _19=="string"){_19=/^\s*</.test(_19)?_1.toDom(_19,_1a.ownerDocument):_5.byId(_19);}if(typeof _1b=="number"){var cn=_1a.childNodes;if(!cn.length||cn.length<=_1b){_1a.appendChild(_19);}else{_d(_19,cn[_1b<0?0:_1b]);}}else{switch(_1b){case "before":_d(_19,_1a);break;case "after":_11(_19,_1a);break;case "replace":_1a.parentNode.replaceChild(_19,_1a);break;case "only":_1.empty(_1a);_1a.appendChild(_19);break;case "first":if(_1a.firstChild){_d(_19,_1a.firstChild);break;}default:_1a.appendChild(_19);}}return _19;};_1.create=function create(tag,_1c,_1d,pos){var doc=_4.doc;if(_1d){_1d=_5.byId(_1d);doc=_1d.ownerDocument;}if(typeof tag=="string"){tag=doc.createElement(tag);}if(_1c){_6.set(tag,_1c);}if(_1d){_1.place(tag,_1d,pos);}return tag;};var _1e=_3("ie")?function(_1f){try{_1f.innerHTML="";}catch(e){for(var c;c=_1f.lastChild;){_20(c,_1f);}}}:function(_21){_21.innerHTML="";};_1.empty=function empty(_22){_1e(_5.byId(_22));};function _20(_23,_24){if(_23.firstChild){_1e(_23);}if(_24){_24.removeChild(_23);}};_1.destroy=function destroy(_25){_25=_5.byId(_25);if(!_25){return;}_20(_25,_25.parentNode);};}); \ No newline at end of file
diff --git a/lib/dojo/dom-form.js b/lib/dojo/dom-form.js
index 0854d6b96..47ef9fd1d 100644
--- a/lib/dojo/dom-form.js
+++ b/lib/dojo/dom-form.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/dom-geometry.js b/lib/dojo/dom-geometry.js
index e9ade9c65..e1b04f9ce 100644
--- a/lib/dojo/dom-geometry.js
+++ b/lib/dojo/dom-geometry.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dom-geometry",["./_base/sniff","./_base/window","./dom","./dom-style"],function(_1,_2,_3,_4){var _5={};_5.boxModel="content-box";if(_1("ie")){_5.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}_5.getPadExtents=function getPadExtents(_6,_7){_6=_3.byId(_6);var s=_7||_4.getComputedStyle(_6),px=_4.toPixelValue,l=px(_6,s.paddingLeft),t=px(_6,s.paddingTop),r=px(_6,s.paddingRight),b=px(_6,s.paddingBottom);return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};var _8="none";_5.getBorderExtents=function getBorderExtents(_9,_a){_9=_3.byId(_9);var px=_4.toPixelValue,s=_a||_4.getComputedStyle(_9),l=s.borderLeftStyle!=_8?px(_9,s.borderLeftWidth):0,t=s.borderTopStyle!=_8?px(_9,s.borderTopWidth):0,r=s.borderRightStyle!=_8?px(_9,s.borderRightWidth):0,b=s.borderBottomStyle!=_8?px(_9,s.borderBottomWidth):0;return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};_5.getPadBorderExtents=function getPadBorderExtents(_b,_c){_b=_3.byId(_b);var s=_c||_4.getComputedStyle(_b),p=_5.getPadExtents(_b,s),b=_5.getBorderExtents(_b,s);return {l:p.l+b.l,t:p.t+b.t,r:p.r+b.r,b:p.b+b.b,w:p.w+b.w,h:p.h+b.h};};_5.getMarginExtents=function getMarginExtents(_d,_e){_d=_3.byId(_d);var s=_e||_4.getComputedStyle(_d),px=_4.toPixelValue,l=px(_d,s.marginLeft),t=px(_d,s.marginTop),r=px(_d,s.marginRight),b=px(_d,s.marginBottom);if(_1("webkit")&&(s.position!="absolute")){r=l;}return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};_5.getMarginBox=function getMarginBox(_f,_10){_f=_3.byId(_f);var s=_10||_4.getComputedStyle(_f),me=_5.getMarginExtents(_f,s),l=_f.offsetLeft-me.l,t=_f.offsetTop-me.t,p=_f.parentNode,px=_4.toPixelValue,pcs;if(_1("mozilla")){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl,t=st;}else{if(p&&p.style){pcs=_4.getComputedStyle(p);if(pcs.overflow!="visible"){l+=pcs.borderLeftStyle!=_8?px(_f,pcs.borderLeftWidth):0;t+=pcs.borderTopStyle!=_8?px(_f,pcs.borderTopWidth):0;}}}}else{if(_1("opera")||(_1("ie")==8&&!_1("quirks"))){if(p){pcs=_4.getComputedStyle(p);l-=pcs.borderLeftStyle!=_8?px(_f,pcs.borderLeftWidth):0;t-=pcs.borderTopStyle!=_8?px(_f,pcs.borderTopWidth):0;}}}return {l:l,t:t,w:_f.offsetWidth+me.w,h:_f.offsetHeight+me.h};};_5.getContentBox=function getContentBox(_11,_12){_11=_3.byId(_11);var s=_12||_4.getComputedStyle(_11),w=_11.clientWidth,h,pe=_5.getPadExtents(_11,s),be=_5.getBorderExtents(_11,s);if(!w){w=_11.offsetWidth;h=_11.offsetHeight;}else{h=_11.clientHeight;be.w=be.h=0;}if(_1("opera")){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};function _13(_14,l,t,w,h,u){u=u||"px";var s=_14.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};function _15(_16){return _16.tagName.toLowerCase()=="button"||_16.tagName.toLowerCase()=="input"&&(_16.getAttribute("type")||"").toLowerCase()=="button";};function _17(_18){return _5.boxModel=="border-box"||_18.tagName.toLowerCase()=="table"||_15(_18);};_5.setContentSize=function setContentSize(_19,box,_1a){_19=_3.byId(_19);var w=box.w,h=box.h;if(_17(_19)){var pb=_5.getPadBorderExtents(_19,_1a);if(w>=0){w+=pb.w;}if(h>=0){h+=pb.h;}}_13(_19,NaN,NaN,w,h);};var _1b={l:0,t:0,w:0,h:0};_5.setMarginBox=function setMarginBox(_1c,box,_1d){_1c=_3.byId(_1c);var s=_1d||_4.getComputedStyle(_1c),w=box.w,h=box.h,pb=_17(_1c)?_1b:_5.getPadBorderExtents(_1c,s),mb=_5.getMarginExtents(_1c,s);if(_1("webkit")){if(_15(_1c)){var ns=_1c.style;if(w>=0&&!ns.width){ns.width="4px";}if(h>=0&&!ns.height){ns.height="4px";}}}if(w>=0){w=Math.max(w-pb.w-mb.w,0);}if(h>=0){h=Math.max(h-pb.h-mb.h,0);}_13(_1c,box.l,box.t,w,h);};_5.isBodyLtr=function isBodyLtr(){return (_2.body().dir||_2.doc.documentElement.dir||"ltr").toLowerCase()=="ltr";};_5.docScroll=function docScroll(){var _1e=_2.doc.parentWindow||_2.doc.defaultView;return "pageXOffset" in _1e?{x:_1e.pageXOffset,y:_1e.pageYOffset}:(_1e=_1("quirks")?_2.body():_2.doc.documentElement,{x:_5.fixIeBiDiScrollLeft(_1e.scrollLeft||0),y:_1e.scrollTop||0});};_5.getIeDocumentElementOffset=function getIeDocumentElementOffset(){var de=_2.doc.documentElement;if(_1("ie")<8){var r=de.getBoundingClientRect(),l=r.left,t=r.top;if(_1("ie")<7){l+=de.clientLeft;t+=de.clientTop;}return {x:l<0?0:l,y:t<0?0:t};}else{return {x:0,y:0};}};_5.fixIeBiDiScrollLeft=function fixIeBiDiScrollLeft(_1f){var ie=_1("ie");if(ie&&!_5.isBodyLtr()){var qk=_1("quirks"),de=qk?_2.body():_2.doc.documentElement;if(ie==6&&!qk&&_2.global.frameElement&&de.scrollHeight>de.clientHeight){_1f+=de.clientLeft;}return (ie<8||qk)?(_1f+de.clientWidth-de.scrollWidth):-_1f;}return _1f;};_5.position=function(_20,_21){_20=_3.byId(_20);var db=_2.body(),dh=db.parentNode,ret=_20.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(_1("ie")){var _22=_5.getIeDocumentElementOffset();ret.x-=_22.x+(_1("quirks")?db.clientLeft+db.offsetLeft:0);ret.y-=_22.y+(_1("quirks")?db.clientTop+db.offsetTop:0);}else{if(_1("ff")==3){var cs=_4.getComputedStyle(dh),px=_4.toPixelValue;ret.x-=px(dh,cs.marginLeft)+px(dh,cs.borderLeftWidth);ret.y-=px(dh,cs.marginTop)+px(dh,cs.borderTopWidth);}}if(_21){var _23=_5.docScroll();ret.x+=_23.x;ret.y+=_23.y;}return ret;};_5.getMarginSize=function getMarginSize(_24,_25){_24=_3.byId(_24);var me=_5.getMarginExtents(_24,_25||_4.getComputedStyle(_24));var _26=_24.getBoundingClientRect();return {w:(_26.right-_26.left)+me.w,h:(_26.bottom-_26.top)+me.h};};_5.normalizeEvent=function(_27){if(!("layerX" in _27)){_27.layerX=_27.offsetX;_27.layerY=_27.offsetY;}if(!_1("dom-addeventlistener")){var se=_27.target;var doc=(se&&se.ownerDocument)||document;var _28=_1("quirks")?doc.body:doc.documentElement;var _29=_5.getIeDocumentElementOffset();_27.pageX=_27.clientX+_5.fixIeBiDiScrollLeft(_28.scrollLeft||0)-_29.x;_27.pageY=_27.clientY+(_28.scrollTop||0)-_29.y;}};return _5;}); \ No newline at end of file
+define("dojo/dom-geometry",["./sniff","./_base/window","./dom","./dom-style"],function(_1,_2,_3,_4){var _5={};_5.boxModel="content-box";if(_1("ie")){_5.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}_5.getPadExtents=function getPadExtents(_6,_7){_6=_3.byId(_6);var s=_7||_4.getComputedStyle(_6),px=_4.toPixelValue,l=px(_6,s.paddingLeft),t=px(_6,s.paddingTop),r=px(_6,s.paddingRight),b=px(_6,s.paddingBottom);return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};var _8="none";_5.getBorderExtents=function getBorderExtents(_9,_a){_9=_3.byId(_9);var px=_4.toPixelValue,s=_a||_4.getComputedStyle(_9),l=s.borderLeftStyle!=_8?px(_9,s.borderLeftWidth):0,t=s.borderTopStyle!=_8?px(_9,s.borderTopWidth):0,r=s.borderRightStyle!=_8?px(_9,s.borderRightWidth):0,b=s.borderBottomStyle!=_8?px(_9,s.borderBottomWidth):0;return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};_5.getPadBorderExtents=function getPadBorderExtents(_b,_c){_b=_3.byId(_b);var s=_c||_4.getComputedStyle(_b),p=_5.getPadExtents(_b,s),b=_5.getBorderExtents(_b,s);return {l:p.l+b.l,t:p.t+b.t,r:p.r+b.r,b:p.b+b.b,w:p.w+b.w,h:p.h+b.h};};_5.getMarginExtents=function getMarginExtents(_d,_e){_d=_3.byId(_d);var s=_e||_4.getComputedStyle(_d),px=_4.toPixelValue,l=px(_d,s.marginLeft),t=px(_d,s.marginTop),r=px(_d,s.marginRight),b=px(_d,s.marginBottom);return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};_5.getMarginBox=function getMarginBox(_f,_10){_f=_3.byId(_f);var s=_10||_4.getComputedStyle(_f),me=_5.getMarginExtents(_f,s),l=_f.offsetLeft-me.l,t=_f.offsetTop-me.t,p=_f.parentNode,px=_4.toPixelValue,pcs;if(_1("mozilla")){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl;t=st;}else{if(p&&p.style){pcs=_4.getComputedStyle(p);if(pcs.overflow!="visible"){l+=pcs.borderLeftStyle!=_8?px(_f,pcs.borderLeftWidth):0;t+=pcs.borderTopStyle!=_8?px(_f,pcs.borderTopWidth):0;}}}}else{if(_1("opera")||(_1("ie")==8&&!_1("quirks"))){if(p){pcs=_4.getComputedStyle(p);l-=pcs.borderLeftStyle!=_8?px(_f,pcs.borderLeftWidth):0;t-=pcs.borderTopStyle!=_8?px(_f,pcs.borderTopWidth):0;}}}return {l:l,t:t,w:_f.offsetWidth+me.w,h:_f.offsetHeight+me.h};};_5.getContentBox=function getContentBox(_11,_12){_11=_3.byId(_11);var s=_12||_4.getComputedStyle(_11),w=_11.clientWidth,h,pe=_5.getPadExtents(_11,s),be=_5.getBorderExtents(_11,s);if(!w){w=_11.offsetWidth;h=_11.offsetHeight;}else{h=_11.clientHeight;be.w=be.h=0;}if(_1("opera")){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};function _13(_14,l,t,w,h,u){u=u||"px";var s=_14.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};function _15(_16){return _16.tagName.toLowerCase()=="button"||_16.tagName.toLowerCase()=="input"&&(_16.getAttribute("type")||"").toLowerCase()=="button";};function _17(_18){return _5.boxModel=="border-box"||_18.tagName.toLowerCase()=="table"||_15(_18);};_5.setContentSize=function setContentSize(_19,box,_1a){_19=_3.byId(_19);var w=box.w,h=box.h;if(_17(_19)){var pb=_5.getPadBorderExtents(_19,_1a);if(w>=0){w+=pb.w;}if(h>=0){h+=pb.h;}}_13(_19,NaN,NaN,w,h);};var _1b={l:0,t:0,w:0,h:0};_5.setMarginBox=function setMarginBox(_1c,box,_1d){_1c=_3.byId(_1c);var s=_1d||_4.getComputedStyle(_1c),w=box.w,h=box.h,pb=_17(_1c)?_1b:_5.getPadBorderExtents(_1c,s),mb=_5.getMarginExtents(_1c,s);if(_1("webkit")){if(_15(_1c)){var ns=_1c.style;if(w>=0&&!ns.width){ns.width="4px";}if(h>=0&&!ns.height){ns.height="4px";}}}if(w>=0){w=Math.max(w-pb.w-mb.w,0);}if(h>=0){h=Math.max(h-pb.h-mb.h,0);}_13(_1c,box.l,box.t,w,h);};_5.isBodyLtr=function isBodyLtr(doc){doc=doc||_2.doc;return (_2.body(doc).dir||doc.documentElement.dir||"ltr").toLowerCase()=="ltr";};_5.docScroll=function docScroll(doc){doc=doc||_2.doc;var _1e=_2.doc.parentWindow||_2.doc.defaultView;return "pageXOffset" in _1e?{x:_1e.pageXOffset,y:_1e.pageYOffset}:(_1e=_1("quirks")?_2.body(doc):doc.documentElement)&&{x:_5.fixIeBiDiScrollLeft(_1e.scrollLeft||0,doc),y:_1e.scrollTop||0};};if(_1("ie")){_5.getIeDocumentElementOffset=function getIeDocumentElementOffset(doc){doc=doc||_2.doc;var de=doc.documentElement;if(_1("ie")<8){var r=de.getBoundingClientRect(),l=r.left,t=r.top;if(_1("ie")<7){l+=de.clientLeft;t+=de.clientTop;}return {x:l<0?0:l,y:t<0?0:t};}else{return {x:0,y:0};}};}_5.fixIeBiDiScrollLeft=function fixIeBiDiScrollLeft(_1f,doc){doc=doc||_2.doc;var ie=_1("ie");if(ie&&!_5.isBodyLtr(doc)){var qk=_1("quirks"),de=qk?_2.body(doc):doc.documentElement,_20=_2.global;if(ie==6&&!qk&&_20.frameElement&&de.scrollHeight>de.clientHeight){_1f+=de.clientLeft;}return (ie<8||qk)?(_1f+de.clientWidth-de.scrollWidth):-_1f;}return _1f;};_5.position=function(_21,_22){_21=_3.byId(_21);var db=_2.body(_21.ownerDocument),ret=_21.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(_1("ie")<9){var _23=_5.getIeDocumentElementOffset(_21.ownerDocument);ret.x-=_23.x+(_1("quirks")?db.clientLeft+db.offsetLeft:0);ret.y-=_23.y+(_1("quirks")?db.clientTop+db.offsetTop:0);}if(_22){var _24=_5.docScroll(_21.ownerDocument);ret.x+=_24.x;ret.y+=_24.y;}return ret;};_5.getMarginSize=function getMarginSize(_25,_26){_25=_3.byId(_25);var me=_5.getMarginExtents(_25,_26||_4.getComputedStyle(_25));var _27=_25.getBoundingClientRect();return {w:(_27.right-_27.left)+me.w,h:(_27.bottom-_27.top)+me.h};};_5.normalizeEvent=function(_28){if(!("layerX" in _28)){_28.layerX=_28.offsetX;_28.layerY=_28.offsetY;}if(!_1("dom-addeventlistener")){var se=_28.target;var doc=(se&&se.ownerDocument)||document;var _29=_1("quirks")?doc.body:doc.documentElement;var _2a=_5.getIeDocumentElementOffset(doc);_28.pageX=_28.clientX+_5.fixIeBiDiScrollLeft(_29.scrollLeft||0,doc)-_2a.x;_28.pageY=_28.clientY+(_29.scrollTop||0)-_2a.y;}};return _5;}); \ No newline at end of file
diff --git a/lib/dojo/dom-prop.js b/lib/dojo/dom-prop.js
index 5867d8fae..8dcccc819 100644
--- a/lib/dojo/dom-prop.js
+++ b/lib/dojo/dom-prop.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dom-prop",["exports","./_base/kernel","./_base/sniff","./_base/lang","./dom","./dom-style","./dom-construct","./_base/connect"],function(_1,_2,_3,_4,_5,_6,_7,_8){var _9={},_a=0,_b=_2._scopeName+"attrid";var _c={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1};_1.names={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"};_1.get=function getProp(_d,_e){_d=_5.byId(_d);var lc=_e.toLowerCase(),_f=_1.names[lc]||_e;return _d[_f];};_1.set=function setProp(_10,_11,_12){_10=_5.byId(_10);var l=arguments.length;if(l==2&&typeof _11!="string"){for(var x in _11){_1.set(_10,x,_11[x]);}return _10;}var lc=_11.toLowerCase(),_13=_1.names[lc]||_11;if(_13=="style"&&typeof _12!="string"){_6.style(_10,_12);return _10;}if(_13=="innerHTML"){if(_3("ie")&&_10.tagName.toLowerCase() in _c){_7.empty(_10);_10.appendChild(_7.toDom(_12,_10.ownerDocument));}else{_10[_13]=_12;}return _10;}if(_4.isFunction(_12)){var _14=_10[_b];if(!_14){_14=_a++;_10[_b]=_14;}if(!_9[_14]){_9[_14]={};}var h=_9[_14][_13];if(h){_8.disconnect(h);}else{try{delete _10[_13];}catch(e){}}if(_12){_9[_14][_13]=_8.connect(_10,_13,_12);}else{_10[_13]=null;}return _10;}_10[_13]=_12;return _10;};}); \ No newline at end of file
+define("dojo/dom-prop",["exports","./_base/kernel","./sniff","./_base/lang","./dom","./dom-style","./dom-construct","./_base/connect"],function(_1,_2,_3,_4,_5,_6,_7,_8){var _9={},_a=0,_b=_2._scopeName+"attrid";_1.names={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"};_1.get=function getProp(_c,_d){_c=_5.byId(_c);var lc=_d.toLowerCase(),_e=_1.names[lc]||_d;return _c[_e];};_1.set=function setProp(_f,_10,_11){_f=_5.byId(_f);var l=arguments.length;if(l==2&&typeof _10!="string"){for(var x in _10){_1.set(_f,x,_10[x]);}return _f;}var lc=_10.toLowerCase(),_12=_1.names[lc]||_10;if(_12=="style"&&typeof _11!="string"){_6.set(_f,_11);return _f;}if(_12=="innerHTML"){if(_3("ie")&&_f.tagName.toLowerCase() in {col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1}){_7.empty(_f);_f.appendChild(_7.toDom(_11,_f.ownerDocument));}else{_f[_12]=_11;}return _f;}if(_4.isFunction(_11)){var _13=_f[_b];if(!_13){_13=_a++;_f[_b]=_13;}if(!_9[_13]){_9[_13]={};}var h=_9[_13][_12];if(h){_8.disconnect(h);}else{try{delete _f[_12];}catch(e){}}if(_11){_9[_13][_12]=_8.connect(_f,_12,_11);}else{_f[_12]=null;}return _f;}_f[_12]=_11;return _f;};}); \ No newline at end of file
diff --git a/lib/dojo/dom-style.js b/lib/dojo/dom-style.js
index f996e2e5c..2efd5b295 100644
--- a/lib/dojo/dom-style.js
+++ b/lib/dojo/dom-style.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dom-style",["./_base/sniff","./dom"],function(_1,_2){var _3,_4={};if(_1("webkit")){_3=function(_5){var s;if(_5.nodeType==1){var dv=_5.ownerDocument.defaultView;s=dv.getComputedStyle(_5,null);if(!s&&_5.style){_5.style.display="";s=dv.getComputedStyle(_5,null);}}return s||{};};}else{if(_1("ie")&&(_1("ie")<9||_1("quirks"))){_3=function(_6){return _6.nodeType==1?_6.currentStyle:{};};}else{_3=function(_7){return _7.nodeType==1?_7.ownerDocument.defaultView.getComputedStyle(_7,null):{};};}}_4.getComputedStyle=_3;var _8;if(!_1("ie")){_8=function(_9,_a){return parseFloat(_a)||0;};}else{_8=function(_b,_c){if(!_c){return 0;}if(_c=="medium"){return 4;}if(_c.slice&&_c.slice(-2)=="px"){return parseFloat(_c);}var s=_b.style,rs=_b.runtimeStyle,cs=_b.currentStyle,_d=s.left,_e=rs.left;rs.left=cs.left;try{s.left=_c;_c=s.pixelLeft;}catch(e){_c=0;}s.left=_d;rs.left=_e;return _c;};}_4.toPixelValue=_8;var _f="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(_f);}catch(e){return f?{}:null;}};var _10=_1("ie")<9||(_1("ie")&&_1("quirks"))?function(_11){try{return af(_11).Opacity/100;}catch(e){return 1;}}:function(_12){return _3(_12).opacity;};var _13=_1("ie")<9||(_1("ie")&&_1("quirks"))?function(_14,_15){var ov=_15*100,_16=_15==1;_14.style.zoom=_16?"":1;if(!af(_14)){if(_16){return _15;}_14.style.filter+=" progid:"+_f+"(Opacity="+ov+")";}else{af(_14,1).Opacity=ov;}af(_14,1).Enabled=!_16;if(_14.tagName.toLowerCase()=="tr"){for(var td=_14.firstChild;td;td=td.nextSibling){if(td.tagName.toLowerCase()=="td"){_13(td,_15);}}}return _15;}:function(_17,_18){return _17.style.opacity=_18;};var _19={left:true,top:true};var _1a=/margin|padding|width|height|max|min|offset/;function _1b(_1c,_1d,_1e){_1d=_1d.toLowerCase();if(_1("ie")){if(_1e=="auto"){if(_1d=="height"){return _1c.offsetHeight;}if(_1d=="width"){return _1c.offsetWidth;}}if(_1d=="fontweight"){switch(_1e){case 700:return "bold";case 400:default:return "normal";}}}if(!(_1d in _19)){_19[_1d]=_1a.test(_1d);}return _19[_1d]?_8(_1c,_1e):_1e;};var _1f=_1("ie")?"styleFloat":"cssFloat",_20={"cssFloat":_1f,"styleFloat":_1f,"float":_1f};_4.get=function getStyle(_21,_22){var n=_2.byId(_21),l=arguments.length,op=(_22=="opacity");if(l==2&&op){return _10(n);}_22=_20[_22]||_22;var s=_4.getComputedStyle(n);return (l==1)?s:_1b(n,_22,s[_22]||n.style[_22]);};_4.set=function setStyle(_23,_24,_25){var n=_2.byId(_23),l=arguments.length,op=(_24=="opacity");_24=_20[_24]||_24;if(l==3){return op?_13(n,_25):n.style[_24]=_25;}for(var x in _24){_4.set(_23,x,_24[x]);}return _4.getComputedStyle(n);};return _4;}); \ No newline at end of file
+define("dojo/dom-style",["./sniff","./dom"],function(_1,_2){var _3,_4={};if(_1("webkit")){_3=function(_5){var s;if(_5.nodeType==1){var dv=_5.ownerDocument.defaultView;s=dv.getComputedStyle(_5,null);if(!s&&_5.style){_5.style.display="";s=dv.getComputedStyle(_5,null);}}return s||{};};}else{if(_1("ie")&&(_1("ie")<9||_1("quirks"))){_3=function(_6){return _6.nodeType==1&&_6.currentStyle?_6.currentStyle:{};};}else{_3=function(_7){return _7.nodeType==1?_7.ownerDocument.defaultView.getComputedStyle(_7,null):{};};}}_4.getComputedStyle=_3;var _8;if(!_1("ie")){_8=function(_9,_a){return parseFloat(_a)||0;};}else{_8=function(_b,_c){if(!_c){return 0;}if(_c=="medium"){return 4;}if(_c.slice&&_c.slice(-2)=="px"){return parseFloat(_c);}var s=_b.style,rs=_b.runtimeStyle,cs=_b.currentStyle,_d=s.left,_e=rs.left;rs.left=cs.left;try{s.left=_c;_c=s.pixelLeft;}catch(e){_c=0;}s.left=_d;rs.left=_e;return _c;};}_4.toPixelValue=_8;var _f="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(_f);}catch(e){return f?{}:null;}};var _10=_1("ie")<9||(_1("ie")<10&&_1("quirks"))?function(_11){try{return af(_11).Opacity/100;}catch(e){return 1;}}:function(_12){return _3(_12).opacity;};var _13=_1("ie")<9||(_1("ie")<10&&_1("quirks"))?function(_14,_15){var ov=_15*100,_16=_15==1;_14.style.zoom=_16?"":1;if(!af(_14)){if(_16){return _15;}_14.style.filter+=" progid:"+_f+"(Opacity="+ov+")";}else{af(_14,1).Opacity=ov;}af(_14,1).Enabled=!_16;if(_14.tagName.toLowerCase()=="tr"){for(var td=_14.firstChild;td;td=td.nextSibling){if(td.tagName.toLowerCase()=="td"){_13(td,_15);}}}return _15;}:function(_17,_18){return _17.style.opacity=_18;};var _19={left:true,top:true};var _1a=/margin|padding|width|height|max|min|offset/;function _1b(_1c,_1d,_1e){_1d=_1d.toLowerCase();if(_1("ie")){if(_1e=="auto"){if(_1d=="height"){return _1c.offsetHeight;}if(_1d=="width"){return _1c.offsetWidth;}}if(_1d=="fontweight"){switch(_1e){case 700:return "bold";case 400:default:return "normal";}}}if(!(_1d in _19)){_19[_1d]=_1a.test(_1d);}return _19[_1d]?_8(_1c,_1e):_1e;};var _1f=_1("ie")?"styleFloat":"cssFloat",_20={"cssFloat":_1f,"styleFloat":_1f,"float":_1f};_4.get=function getStyle(_21,_22){var n=_2.byId(_21),l=arguments.length,op=(_22=="opacity");if(l==2&&op){return _10(n);}_22=_20[_22]||_22;var s=_4.getComputedStyle(n);return (l==1)?s:_1b(n,_22,s[_22]||n.style[_22]);};_4.set=function setStyle(_23,_24,_25){var n=_2.byId(_23),l=arguments.length,op=(_24=="opacity");_24=_20[_24]||_24;if(l==3){return op?_13(n,_25):n.style[_24]=_25;}for(var x in _24){_4.set(_23,x,_24[x]);}return _4.getComputedStyle(n);};return _4;}); \ No newline at end of file
diff --git a/lib/dojo/dom.js b/lib/dojo/dom.js
index 7a2bd6bd1..054ec5291 100644
--- a/lib/dojo/dom.js
+++ b/lib/dojo/dom.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/dom",["./_base/sniff","./_base/lang","./_base/window"],function(_1,_2,_3){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}var _4={};if(_1("ie")){_4.byId=function(id,_5){if(typeof id!="string"){return id;}var _6=_5||_3.doc,te=id&&_6.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var _7=_6.all[id];if(!_7||_7.nodeName){_7=[_7];}var i=0;while((te=_7[i++])){if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){return te;}}}};}else{_4.byId=function(id,_8){return ((typeof id=="string")?(_8||_3.doc).getElementById(id):id)||null;};}_4.isDescendant=function(_9,_a){try{_9=_4.byId(_9);_a=_4.byId(_a);while(_9){if(_9==_a){return true;}_9=_9.parentNode;}}catch(e){}return false;};_4.setSelectable=function(_b,_c){_b=_4.byId(_b);if(_1("mozilla")){_b.style.MozUserSelect=_c?"":"none";}else{if(_1("khtml")||_1("webkit")){_b.style.KhtmlUserSelect=_c?"auto":"none";}else{if(_1("ie")){var v=(_b.unselectable=_c?"":"on"),cs=_b.getElementsByTagName("*"),i=0,l=cs.length;for(;i<l;++i){cs.item(i).unselectable=v;}}}}};return _4;}); \ No newline at end of file
+define("dojo/dom",["./sniff","./_base/window"],function(_1,_2){if(_1("ie")<=7){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}var _3={};if(_1("ie")){_3.byId=function(id,_4){if(typeof id!="string"){return id;}var _5=_4||_2.doc,te=id&&_5.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var _6=_5.all[id];if(!_6||_6.nodeName){_6=[_6];}var i=0;while((te=_6[i++])){if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){return te;}}}};}else{_3.byId=function(id,_7){return ((typeof id=="string")?(_7||_2.doc).getElementById(id):id)||null;};}_3.isDescendant=function(_8,_9){try{_8=_3.byId(_8);_9=_3.byId(_9);while(_8){if(_8==_9){return true;}_8=_8.parentNode;}}catch(e){}return false;};_1.add("css-user-select",function(_a,_b,_c){if(!_c){return false;}var _d=_c.style;var _e=["Khtml","O","ms","Moz","Webkit"],i=_e.length,_f="userSelect",_10;do{if(typeof _d[_f]!=="undefined"){return _f;}}while(i--&&(_f=_e[i]+"UserSelect"));return false;});var _11=_1("css-user-select");_3.setSelectable=_11?function(_12,_13){_3.byId(_12).style[_11]=_13?"":"none";}:function(_14,_15){_14=_3.byId(_14);var _16=_14.getElementsByTagName("*"),i=_16.length;if(_15){_14.removeAttribute("unselectable");while(i--){_16[i].removeAttribute("unselectable");}}else{_14.setAttribute("unselectable","on");while(i--){_16[i].setAttribute("unselectable","on");}}};return _3;}); \ No newline at end of file
diff --git a/lib/dojo/domReady.js b/lib/dojo/domReady.js
index 1e3dd6680..12fc0a455 100644
--- a/lib/dojo/domReady.js
+++ b/lib/dojo/domReady.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/domReady",["./has"],function(_1){var _2=this,_3=document,_4={"loaded":1,"complete":1},_5=typeof _3.readyState!="string",_6=!!_4[_3.readyState];if(_5){_3.readyState="loading";}if(!_6){var _7=[],_8=[],_9=function(_a){_a=_a||_2.event;if(_6||(_a.type=="readystatechange"&&!_4[_3.readyState])){return;}_6=1;if(_5){_3.readyState="complete";}while(_7.length){(_7.shift())();}},on=function(_b,_c){_b.addEventListener(_c,_9,false);_7.push(function(){_b.removeEventListener(_c,_9,false);});};if(!_1("dom-addeventlistener")){on=function(_d,_e){_e="on"+_e;_d.attachEvent(_e,_9);_7.push(function(){_d.detachEvent(_e,_9);});};var _f=_3.createElement("div");try{if(_f.doScroll&&_2.frameElement===null){_8.push(function(){try{_f.doScroll("left");return 1;}catch(e){}});}}catch(e){}}on(_3,"DOMContentLoaded");on(_2,"load");if("onreadystatechange" in _3){on(_3,"readystatechange");}else{if(!_5){_8.push(function(){return _4[_3.readyState];});}}if(_8.length){var _10=function(){if(_6){return;}var i=_8.length;while(i--){if(_8[i]()){_9("poller");return;}}setTimeout(_10,30);};_10();}}function _11(_12){if(_6){_12(1);}else{_7.push(_12);}};_11.load=function(id,req,_13){_11(_13);};return _11;}); \ No newline at end of file
+define("dojo/domReady",["./has"],function(_1){var _2=this,_3=document,_4={"loaded":1,"complete":1},_5=typeof _3.readyState!="string",_6=!!_4[_3.readyState];if(_5){_3.readyState="loading";}if(!_6){var _7=[],_8=[],_9=function(_a){_a=_a||_2.event;if(_6||(_a.type=="readystatechange"&&!_4[_3.readyState])){return;}_6=1;if(_5){_3.readyState="complete";}while(_7.length){(_7.shift())(_3);}},on=function(_b,_c){_b.addEventListener(_c,_9,false);_7.push(function(){_b.removeEventListener(_c,_9,false);});};if(!_1("dom-addeventlistener")){on=function(_d,_e){_e="on"+_e;_d.attachEvent(_e,_9);_7.push(function(){_d.detachEvent(_e,_9);});};var _f=_3.createElement("div");try{if(_f.doScroll&&_2.frameElement===null){_8.push(function(){try{_f.doScroll("left");return 1;}catch(e){}});}}catch(e){}}on(_3,"DOMContentLoaded");on(_2,"load");if("onreadystatechange" in _3){on(_3,"readystatechange");}else{if(!_5){_8.push(function(){return _4[_3.readyState];});}}if(_8.length){var _10=function(){if(_6){return;}var i=_8.length;while(i--){if(_8[i]()){_9("poller");return;}}setTimeout(_10,30);};_10();}}function _11(_12){if(_6){_12(_3);}else{_7.push(_12);}};_11.load=function(id,req,_13){_11(_13);};return _11;}); \ No newline at end of file
diff --git a/lib/dojo/errors/CancelError.js b/lib/dojo/errors/CancelError.js
new file mode 100644
index 000000000..5d6f9e653
--- /dev/null
+++ b/lib/dojo/errors/CancelError.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/errors/CancelError",["./create"],function(_1){return _1("CancelError",null,null,{dojoType:"cancel"});}); \ No newline at end of file
diff --git a/lib/dojo/errors/RequestError.js b/lib/dojo/errors/RequestError.js
new file mode 100644
index 000000000..2773cd77f
--- /dev/null
+++ b/lib/dojo/errors/RequestError.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/errors/RequestError",["./create"],function(_1){return _1("RequestError",function(_2,_3){this.response=_3;});}); \ No newline at end of file
diff --git a/lib/dojo/errors/RequestTimeoutError.js b/lib/dojo/errors/RequestTimeoutError.js
new file mode 100644
index 000000000..a9fed0154
--- /dev/null
+++ b/lib/dojo/errors/RequestTimeoutError.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/errors/RequestTimeoutError",["./create","./RequestError"],function(_1,_2){return _1("RequestTimeoutError",null,_2,{dojoType:"timeout"});}); \ No newline at end of file
diff --git a/lib/dojo/errors/create.js b/lib/dojo/errors/create.js
new file mode 100644
index 000000000..e4bb45659
--- /dev/null
+++ b/lib/dojo/errors/create.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/errors/create",["../_base/lang"],function(_1){return function(_2,_3,_4,_5){_4=_4||Error;var _6=function(_7){if(_4===Error){if(Error.captureStackTrace){Error.captureStackTrace(this,_6);}var _8=Error.call(this,_7),_9;for(_9 in _8){if(_8.hasOwnProperty(_9)){this[_9]=_8[_9];}}this.message=_7;this.stack=_8.stack;}else{_4.apply(this,arguments);}if(_3){_3.apply(this,arguments);}};_6.prototype=_1.delegate(_4.prototype,_5);_6.prototype.name=_2;_6.prototype.constructor=_6;return _6;};}); \ No newline at end of file
diff --git a/lib/dojo/fx.js b/lib/dojo/fx.js
index 53c611e2e..b806ade8d 100644
--- a/lib/dojo/fx.js
+++ b/lib/dojo/fx.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/fx/Toggler.js b/lib/dojo/fx/Toggler.js
index 265586c37..1bba9656f 100644
--- a/lib/dojo/fx/Toggler.js
+++ b/lib/dojo/fx/Toggler.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/fx/easing.js b/lib/dojo/fx/easing.js
index e9a2fb75b..34a94920f 100644
--- a/lib/dojo/fx/easing.js
+++ b/lib/dojo/fx/easing.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/gears.js b/lib/dojo/gears.js
index bc59a9dd8..2a9b82008 100644
--- a/lib/dojo/gears.js
+++ b/lib/dojo/gears.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/gears",["./_base/kernel","./_base/lang","./_base/sniff"],function(_1,_2,_3){_2.getObject("gears",true,_1);_1.gears._gearsObject=function(){var _4;var _5=_2.getObject("google.gears");if(_5){return _5;}if(typeof GearsFactory!="undefined"){_4=new GearsFactory();}else{if(_3("ie")){try{_4=new ActiveXObject("Gears.Factory");}catch(e){}}else{if(navigator.mimeTypes["application/x-googlegears"]){_4=document.createElement("object");_4.setAttribute("type","application/x-googlegears");_4.setAttribute("width",0);_4.setAttribute("height",0);_4.style.display="none";document.documentElement.appendChild(_4);}}}if(!_4){return null;}_2.setObject("google.gears.factory",_4);return _2.getObject("google.gears");};_1.gears.available=(!!_1.gears._gearsObject())||0;return _1.gears;}); \ No newline at end of file
+define("dojo/gears",["./_base/lang","./sniff"],function(_1,_2){var _3={};_1.setObject("dojo.gears",_3);_3._gearsObject=function(){var _4;var _5=_1.getObject("google.gears");if(_5){return _5;}if(typeof GearsFactory!="undefined"){_4=new GearsFactory();}else{if(_2("ie")){try{_4=new ActiveXObject("Gears.Factory");}catch(e){}}else{if(navigator.mimeTypes["application/x-googlegears"]){_4=document.createElement("object");_4.setAttribute("type","application/x-googlegears");_4.setAttribute("width",0);_4.setAttribute("height",0);_4.style.display="none";document.documentElement.appendChild(_4);}}}if(!_4){return null;}_1.setObject("google.gears.factory",_4);return _1.getObject("google.gears");};_3.available=(!!_3._gearsObject())||0;return _3;}); \ No newline at end of file
diff --git a/lib/dojo/has.js b/lib/dojo/has.js
index 32160dc0e..17bb5e6ac 100644
--- a/lib/dojo/has.js
+++ b/lib/dojo/has.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/has",["require"],function(_1){var _2=_1.has||function(){};if(!1){var _3=typeof window!="undefined"&&typeof location!="undefined"&&typeof document!="undefined"&&window.location==location&&window.document==document,_4=this,_5=_3&&document,_6=_5&&_5.createElement("DiV"),_7={};_2=function(_8){return typeof _7[_8]=="function"?(_7[_8]=_7[_8](_4,_5,_6)):_7[_8];};_2.cache=_7;_2.add=function(_9,_a,_b,_c){(typeof _7[_9]=="undefined"||_c)&&(_7[_9]=_a);return _b&&_2(_9);};true||_2.add("host-browser",_3);true||_2.add("dom",_3);true||_2.add("dojo-dom-ready-api",1);true||_2.add("dojo-sniff",1);}if(1){var _d=navigator.userAgent;_2.add("dom-addeventlistener",!!document.addEventListener);_2.add("touch","ontouchstart" in document);_2.add("device-width",screen.availWidth||innerWidth);_2.add("agent-ios",!!_d.match(/iPhone|iP[ao]d/));_2.add("agent-android",_d.indexOf("android")>1);}_2.clearElement=function(_e){_e.innerHTML="";return _e;};_2.normalize=function(id,_f){var _10=id.match(/[\?:]|[^:\?]*/g),i=0,get=function(_11){var _12=_10[i++];if(_12==":"){return 0;}else{if(_10[i++]=="?"){if(!_11&&_2(_12)){return get();}else{get(true);return get(_11);}}return _12||0;}};id=get();return id&&_f(id);};_2.load=function(id,_13,_14){if(id){_13([id],_14);}else{_14();}};return _2;}); \ No newline at end of file
+define("dojo/has",["require","module"],function(_1,_2){var _3=_1.has||function(){};if(!1){var _4=typeof window!="undefined"&&typeof location!="undefined"&&typeof document!="undefined"&&window.location==location&&window.document==document,_5=this,_6=_4&&document,_7=_6&&_6.createElement("DiV"),_8=(_2.config&&_2.config())||{};_3=function(_9){return typeof _8[_9]=="function"?(_8[_9]=_8[_9](_5,_6,_7)):_8[_9];};_3.cache=_8;_3.add=function(_a,_b,_c,_d){(typeof _8[_a]=="undefined"||_d)&&(_8[_a]=_b);return _c&&_3(_a);};1||_3.add("host-browser",_4);1||_3.add("dom",_4);1||_3.add("dojo-dom-ready-api",1);1||_3.add("dojo-sniff",1);}if(1){_3.add("dom-addeventlistener",!!document.addEventListener);_3.add("touch","ontouchstart" in document);_3.add("device-width",screen.availWidth||innerWidth);var _e=document.createElement("form");_3.add("dom-attributes-explicit",_e.attributes.length==0);_3.add("dom-attributes-specified-flag",_e.attributes.length>0&&_e.attributes.length<40);}_3.clearElement=function(_f){_f.innerHTML="";return _f;};_3.normalize=function(id,_10){var _11=id.match(/[\?:]|[^:\?]*/g),i=0,get=function(_12){var _13=_11[i++];if(_13==":"){return 0;}else{if(_11[i++]=="?"){if(!_12&&_3(_13)){return get();}else{get(true);return get(_12);}}return _13||0;}};id=get();return id&&_10(id);};_3.load=function(id,_14,_15){if(id){_14([id],_15);}else{_15();}};return _3;}); \ No newline at end of file
diff --git a/lib/dojo/hash.js b/lib/dojo/hash.js
index b39080176..4b07466b0 100644
--- a/lib/dojo/hash.js
+++ b/lib/dojo/hash.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/hash",["./_base/kernel","require","./_base/connect","./_base/lang","./ready","./_base/sniff"],function(_1,_2,_3,_4,_5,_6){_1.hash=function(_7,_8){if(!arguments.length){return _9();}if(_7.charAt(0)=="#"){_7=_7.substring(1);}if(_8){_a(_7);}else{location.href="#"+_7;}return _7;};var _b,_c,_d,_e=_1.config.hashPollFrequency||100;function _f(str,_10){var i=str.indexOf(_10);return (i>=0)?str.substring(i+1):"";};function _9(){return _f(location.href,"#");};function _11(){_3.publish("/dojo/hashchange",[_9()]);};function _12(){if(_9()===_b){return;}_b=_9();_11();};function _a(_13){if(_c){if(_c.isTransitioning()){setTimeout(_4.hitch(null,_a,_13),_e);return;}var _14=_c.iframe.location.href;var _15=_14.indexOf("?");_c.iframe.location.replace(_14.substring(0,_15)+"?"+_13);return;}location.replace("#"+_13);!_d&&_12();};function _16(){var ifr=document.createElement("iframe"),_17="dojo-hash-iframe",_18=_1.config.dojoBlankHtmlUrl||_2.toUrl("./resources/blank.html");if(_1.config.useXDomain&&!_1.config.dojoBlankHtmlUrl){console.warn("dojo.hash: When using cross-domain Dojo builds,"+" please save dojo/resources/blank.html to your domain and set djConfig.dojoBlankHtmlUrl"+" to the path on your domain to blank.html");}ifr.id=_17;ifr.src=_18+"?"+_9();ifr.style.display="none";document.body.appendChild(ifr);this.iframe=_1.global[_17];var _19,_1a,_1b,_1c,_1d,_1e=this.iframe.location;function _1f(){_b=_9();_19=_1d?_b:_f(_1e.href,"?");_1a=false;_1b=null;};this.isTransitioning=function(){return _1a;};this.pollLocation=function(){if(!_1d){try{var _20=_f(_1e.href,"?");if(document.title!=_1c){_1c=this.iframe.document.title=document.title;}}catch(e){_1d=true;console.error("dojo.hash: Error adding history entry. Server unreachable.");}}var _21=_9();if(_1a&&_b===_21){if(_1d||_20===_1b){_1f();_11();}else{setTimeout(_4.hitch(this,this.pollLocation),0);return;}}else{if(_b===_21&&(_1d||_19===_20)){}else{if(_b!==_21){_b=_21;_1a=true;_1b=_21;ifr.src=_18+"?"+_1b;_1d=false;setTimeout(_4.hitch(this,this.pollLocation),0);return;}else{if(!_1d){location.href="#"+_1e.search.substring(1);_1f();_11();}}}}setTimeout(_4.hitch(this,this.pollLocation),_e);};_1f();setTimeout(_4.hitch(this,this.pollLocation),_e);};_5(function(){if("onhashchange" in _1.global&&(!_6("ie")||(_6("ie")>=8&&document.compatMode!="BackCompat"))){_d=_3.connect(_1.global,"onhashchange",_11);}else{if(document.addEventListener){_b=_9();setInterval(_12,_e);}else{if(document.attachEvent){_c=new _16();}}}});return _1.hash;}); \ No newline at end of file
+define("dojo/hash",["./_base/kernel","require","./_base/config","./_base/connect","./_base/lang","./ready","./sniff"],function(_1,_2,_3,_4,_5,_6,_7){_1.hash=function(_8,_9){if(!arguments.length){return _a();}if(_8.charAt(0)=="#"){_8=_8.substring(1);}if(_9){_b(_8);}else{location.href="#"+_8;}return _8;};var _c,_d,_e,_f=_3.hashPollFrequency||100;function _10(str,_11){var i=str.indexOf(_11);return (i>=0)?str.substring(i+1):"";};function _a(){return _10(location.href,"#");};function _12(){_4.publish("/dojo/hashchange",[_a()]);};function _13(){if(_a()===_c){return;}_c=_a();_12();};function _b(_14){if(_d){if(_d.isTransitioning()){setTimeout(_5.hitch(null,_b,_14),_f);return;}var _15=_d.iframe.location.href;var _16=_15.indexOf("?");_d.iframe.location.replace(_15.substring(0,_16)+"?"+_14);return;}location.replace("#"+_14);!_e&&_13();};function _17(){var ifr=document.createElement("iframe"),_18="dojo-hash-iframe",_19=_3.dojoBlankHtmlUrl||_2.toUrl("./resources/blank.html");if(_3.useXDomain&&!_3.dojoBlankHtmlUrl){console.warn("dojo.hash: When using cross-domain Dojo builds,"+" please save dojo/resources/blank.html to your domain and set djConfig.dojoBlankHtmlUrl"+" to the path on your domain to blank.html");}ifr.id=_18;ifr.src=_19+"?"+_a();ifr.style.display="none";document.body.appendChild(ifr);this.iframe=_1.global[_18];var _1a,_1b,_1c,_1d,_1e,_1f=this.iframe.location;function _20(){_c=_a();_1a=_1e?_c:_10(_1f.href,"?");_1b=false;_1c=null;};this.isTransitioning=function(){return _1b;};this.pollLocation=function(){if(!_1e){try{var _21=_10(_1f.href,"?");if(document.title!=_1d){_1d=this.iframe.document.title=document.title;}}catch(e){_1e=true;console.error("dojo.hash: Error adding history entry. Server unreachable.");}}var _22=_a();if(_1b&&_c===_22){if(_1e||_21===_1c){_20();_12();}else{setTimeout(_5.hitch(this,this.pollLocation),0);return;}}else{if(_c===_22&&(_1e||_1a===_21)){}else{if(_c!==_22){_c=_22;_1b=true;_1c=_22;ifr.src=_19+"?"+_1c;_1e=false;setTimeout(_5.hitch(this,this.pollLocation),0);return;}else{if(!_1e){location.href="#"+_1f.search.substring(1);_20();_12();}}}}setTimeout(_5.hitch(this,this.pollLocation),_f);};_20();setTimeout(_5.hitch(this,this.pollLocation),_f);};_6(function(){if("onhashchange" in _1.global&&(!_7("ie")||(_7("ie")>=8&&document.compatMode!="BackCompat"))){_e=_4.connect(_1.global,"onhashchange",_12);}else{if(document.addEventListener){_c=_a();setInterval(_13,_f);}else{if(document.attachEvent){_d=new _17();}}}});return _1.hash;}); \ No newline at end of file
diff --git a/lib/dojo/hccss.js b/lib/dojo/hccss.js
new file mode 100644
index 000000000..3921ddb77
--- /dev/null
+++ b/lib/dojo/hccss.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/hccss",["require","./_base/config","./dom-class","./dom-style","./has","./ready","./_base/window"],function(_1,_2,_3,_4,_5,_6,_7){_5.add("highcontrast",function(){var _8=_7.doc.createElement("div");_8.style.cssText="border: 1px solid; border-color:red green; position: absolute; height: 5px; top: -999px;"+"background-image: url("+(_2.blankGif||_1.toUrl("./resources/blank.gif"))+");";_7.body().appendChild(_8);var cs=_4.getComputedStyle(_8),_9=cs.backgroundImage,hc=(cs.borderTopColor==cs.borderRightColor)||(_9&&(_9=="none"||_9=="url(invalid-url:)"));if(_5("ie")<=8){_8.outerHTML="";}else{_7.body().removeChild(_8);}return hc;});_6(90,function(){if(_5("highcontrast")){_3.add(_7.body(),"dj_a11y");}});return _5;}); \ No newline at end of file
diff --git a/lib/dojo/html.js b/lib/dojo/html.js
index 97872db25..10fc9b04e 100644
--- a/lib/dojo/html.js
+++ b/lib/dojo/html.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/html",["./_base/kernel","./_base/lang","./_base/array","./_base/declare","./dom","./dom-construct","./parser"],function(_1,_2,_3,_4,_5,_6,_7){_2.getObject("html",true,_1);var _8=0;_1.html._secureForInnerHtml=function(_9){return _9.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"");};_1.html._emptyNode=_6.empty;_1.html._setNodeContent=function(_a,_b){_6.empty(_a);if(_b){if(typeof _b=="string"){_b=_6.toDom(_b,_a.ownerDocument);}if(!_b.nodeType&&_2.isArrayLike(_b)){for(var _c=_b.length,i=0;i<_b.length;i=_c==_b.length?i+1:0){_6.place(_b[i],_a,"last");}}else{_6.place(_b,_a,"last");}}return _a;};_4("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,parserScope:_1._scopeName,startup:true,constructor:function(_d,_e){_2.mixin(this,_d||{});_e=this.node=_5.byId(this.node||_e);if(!this.id){this.id=["Setter",(_e)?_e.id||_e.tagName:"",_8++].join("_");}},set:function(_f,_10){if(undefined!==_f){this.content=_f;}if(_10){this._mixin(_10);}this.onBegin();this.setContent();this.onEnd();return this.node;},setContent:function(){var _11=this.node;if(!_11){throw new Error(this.declaredClass+": setContent given no node");}try{_11=_1.html._setNodeContent(_11,this.content);}catch(e){var _12=this.onContentError(e);try{_11.innerHTML=_12;}catch(e){console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e);}}this.node=_11;},empty:function(){if(this.parseResults&&this.parseResults.length){_3.forEach(this.parseResults,function(w){if(w.destroy){w.destroy();}});delete this.parseResults;}_1.html._emptyNode(this.node);},onBegin:function(){var _13=this.content;if(_2.isString(_13)){if(this.cleanContent){_13=_1.html._secureForInnerHtml(_13);}if(this.extractContent){var _14=_13.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_14){_13=_14[1];}}}this.empty();this.content=_13;return this.node;},onEnd:function(){if(this.parseContent){this._parse();}return this.node;},tearDown:function(){delete this.parseResults;delete this.node;delete this.content;},onContentError:function(err){return "Error occured setting content: "+err;},_mixin:function(_15){var _16={},key;for(key in _15){if(key in _16){continue;}this[key]=_15[key];}},_parse:function(){var _17=this.node;try{var _18={};_3.forEach(["dir","lang","textDir"],function(_19){if(this[_19]){_18[_19]=this[_19];}},this);this.parseResults=_7.parse({rootNode:_17,noStart:!this.startup,inherited:_18,scope:this.parserScope});}catch(e){this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id);}},_onError:function(_1a,err,_1b){var _1c=this["on"+_1a+"Error"].call(this,err);if(_1b){console.error(_1b,err);}else{if(_1c){_1.html._setNodeContent(this.node,_1c,true);}}}});_1.html.set=function(_1d,_1e,_1f){if(undefined==_1e){console.warn("dojo.html.set: no cont argument provided, using empty string");_1e="";}if(!_1f){return _1.html._setNodeContent(_1d,_1e,true);}else{var op=new _1.html._ContentSetter(_2.mixin(_1f,{content:_1e,node:_1d}));return op.set();}};return _1.html;}); \ No newline at end of file
+define("dojo/html",["./_base/kernel","./_base/lang","./_base/array","./_base/declare","./dom","./dom-construct","./parser"],function(_1,_2,_3,_4,_5,_6,_7){var _8={};_2.setObject("dojo.html",_8);var _9=0;_8._secureForInnerHtml=function(_a){return _a.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"");};_8._emptyNode=_6.empty;_8._setNodeContent=function(_b,_c){_6.empty(_b);if(_c){if(typeof _c=="string"){_c=_6.toDom(_c,_b.ownerDocument);}if(!_c.nodeType&&_2.isArrayLike(_c)){for(var _d=_c.length,i=0;i<_c.length;i=_d==_c.length?i+1:0){_6.place(_c[i],_b,"last");}}else{_6.place(_c,_b,"last");}}return _b;};_8._ContentSetter=_4("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,parserScope:_1._scopeName,startup:true,constructor:function(_e,_f){_2.mixin(this,_e||{});_f=this.node=_5.byId(this.node||_f);if(!this.id){this.id=["Setter",(_f)?_f.id||_f.tagName:"",_9++].join("_");}},set:function(_10,_11){if(undefined!==_10){this.content=_10;}if(_11){this._mixin(_11);}this.onBegin();this.setContent();var ret=this.onEnd();if(ret&&ret.then){return ret;}else{return this.node;}},setContent:function(){var _12=this.node;if(!_12){throw new Error(this.declaredClass+": setContent given no node");}try{_12=_8._setNodeContent(_12,this.content);}catch(e){var _13=this.onContentError(e);try{_12.innerHTML=_13;}catch(e){console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e);}}this.node=_12;},empty:function(){if(this.parseDeferred){if(!this.parseDeferred.isResolved()){this.parseDeferred.cancel();}delete this.parseDeferred;}if(this.parseResults&&this.parseResults.length){_3.forEach(this.parseResults,function(w){if(w.destroy){w.destroy();}});delete this.parseResults;}_6.empty(this.node);},onBegin:function(){var _14=this.content;if(_2.isString(_14)){if(this.cleanContent){_14=_8._secureForInnerHtml(_14);}if(this.extractContent){var _15=_14.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_15){_14=_15[1];}}}this.empty();this.content=_14;return this.node;},onEnd:function(){if(this.parseContent){this._parse();}return this.node;},tearDown:function(){delete this.parseResults;delete this.parseDeferred;delete this.node;delete this.content;},onContentError:function(err){return "Error occurred setting content: "+err;},onExecError:function(err){return "Error occurred executing scripts: "+err;},_mixin:function(_16){var _17={},key;for(key in _16){if(key in _17){continue;}this[key]=_16[key];}},_parse:function(){var _18=this.node;try{var _19={};_3.forEach(["dir","lang","textDir"],function(_1a){if(this[_1a]){_19[_1a]=this[_1a];}},this);var _1b=this;this.parseDeferred=_7.parse({rootNode:_18,noStart:!this.startup,inherited:_19,scope:this.parserScope}).then(function(_1c){return _1b.parseResults=_1c;});}catch(e){this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id);}},_onError:function(_1d,err,_1e){var _1f=this["on"+_1d+"Error"].call(this,err);if(_1e){console.error(_1e,err);}else{if(_1f){_8._setNodeContent(this.node,_1f,true);}}}});_8.set=function(_20,_21,_22){if(undefined==_21){console.warn("dojo.html.set: no cont argument provided, using empty string");_21="";}if(!_22){return _8._setNodeContent(_20,_21,true);}else{var op=new _8._ContentSetter(_2.mixin(_22,{content:_21,node:_20}));return op.set();}};return _8;}); \ No newline at end of file
diff --git a/lib/dojo/i18n.js b/lib/dojo/i18n.js
index b79ec6c5b..6b961d8f9 100644
--- a/lib/dojo/i18n.js
+++ b/lib/dojo/i18n.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/i18n",["./_base/kernel","require","./has","./_base/array","./_base/config","./_base/lang","./_base/xhr","./json"],function(_1,_2,_3,_4,_5,_6,_7,_8){_3.add("dojo-preload-i18n-Api",1);true||_3.add("dojo-v1x-i18n-Api",1);var _9=_1.i18n={},_a=/(^.*(^|\/)nls)(\/|$)([^\/]*)\/?([^\/]*)/,_b=function(_c,_d,_e,_f){for(var _10=[_e+_f],_11=_d.split("-"),_12="",i=0;i<_11.length;i++){_12+=(_12?"-":"")+_11[i];if(!_c||_c[_12]){_10.push(_e+_12+"/"+_f);}}return _10;},_13={},_14=_1.getL10nName=function(_15,_16,_17){_17=_17?_17.toLowerCase():_1.locale;_15="dojo/i18n!"+_15.replace(/\./g,"/");_16=_16.replace(/\./g,"/");return (/root/i.test(_17))?(_15+"/nls/"+_16):(_15+"/nls/"+_17+"/"+_16);},_18=function(_19,_1a,_1b,_1c,_1d,_1e){_19([_1a],function(_1f){var _20=_6.clone(_1f.root),_21=_b(!_1f._v1x&&_1f,_1d,_1b,_1c);_19(_21,function(){for(var i=1;i<_21.length;i++){_20=_6.mixin(_6.clone(_20),arguments[i]);}var _22=_1a+"/"+_1d;_13[_22]=_20;_1e();});});},_23=function(id,_24){return /^\./.test(id)?_24(id):id;},_25=function(_26){var _27=_5.extraLocale||[];_27=_6.isArray(_27)?_27:[_27];_27.push(_26);return _27;},_28=function(id,_29,_2a){if(_3("dojo-preload-i18n-Api")){var _2b=id.split("*"),_2c=_2b[1]=="preload";if(_2c){if(!_13[id]){_13[id]=1;_2d(_2b[2],_8.parse(_2b[3]),1);}_2a(1);}if(_2c||_2e(id,_29,_2a)){return;}}var _2f=_a.exec(id),_30=_2f[1]+"/",_31=_2f[5]||_2f[4],_32=_30+_31,_33=(_2f[5]&&_2f[4]),_34=_33||_1.locale,_35=_32+"/"+_34,_36=_33?[_34]:_25(_34),_37=_36.length,_38=function(){if(!--_37){_2a(_6.delegate(_13[_35]));}};_4.forEach(_36,function(_39){var _3a=_32+"/"+_39;if(_3("dojo-preload-i18n-Api")){_3b(_3a);}if(!_13[_3a]){_18(_29,_32,_30,_31,_39,_38);}else{_38();}});};if(_3("dojo-unit-tests")){var _3c=_9.unitTests=[];}if(_3("dojo-preload-i18n-Api")||1){var _3d=_9.normalizeLocale=function(_3e){var _3f=_3e?_3e.toLowerCase():_1.locale;return _3f=="root"?"ROOT":_3f;},_40=function(mid){return (1&&1)?_2.isXdUrl(_2.toUrl(mid+".js")):true;},_41=0,_42=[],_2d=_9._preloadLocalizations=function(_43,_44,_45){function _46(_47,_48){var _49=_47.split("-");while(_49.length){if(_48(_49.join("-"))){return true;}_49.pop();}return _48("ROOT");};function _4a(_4b){_4b=_3d(_4b);_46(_4b,function(loc){if(_4.indexOf(_44,loc)>=0){var mid=_43.replace(/\./g,"/")+"_"+loc;_41++;(_40(mid)||_45?_2:_50)([mid],function(_4c){for(var p in _4c){_13[p+"/"+_4b]=_4c[p];}--_41;while(!_41&&_42.length){_28.apply(null,_42.shift());}});return true;}return false;});};_4a();_4.forEach(_1.config.extraLocale,_4a);},_2e=function(id,_4d,_4e){if(_41){_42.push([id,_4d,_4e]);}return _41;};}if(1){var _4f=new Function("__bundle","__checkForLegacyModules","__mid","var define = function(){define.called = 1;},"+" require = function(){define.called = 1;};"+"try{"+"define.called = 0;"+"eval(__bundle);"+"if(define.called==1)"+"return 1;"+"if((__checkForLegacyModules = __checkForLegacyModules(__mid)))"+"return __checkForLegacyModules;"+"}catch(e){}"+"try{"+"return eval('('+__bundle+')');"+"}catch(e){"+"return e;"+"}"),_50=function(_51,_52){var _53=[];_4.forEach(_51,function(mid){var url=_2.toUrl(mid+".js");function _28(_54){var _55=_4f(_54,_3b,mid);if(_55===1){_2([mid],function(_56){_53.push(_13[url]=_56);});}else{if(_55 instanceof Error){console.error("failed to evaluate i18n bundle; url="+url,_55);_55={};}_53.push(_13[url]=(/nls\/[^\/]+\/[^\/]+$/.test(url)?_55:{root:_55,_v1x:1}));}};if(_13[url]){_53.push(_13[url]);}else{var _57=_2.syncLoadNls(mid);if(_57){_53.push(_57);}else{if(!_7){try{_2.getText(url,true,_28);}catch(e){_53.push(_13[url]={});}}else{_7.get({url:url,sync:true,load:_28,error:function(){_53.push(_13[url]={});}});}}}});_52&&_52.apply(null,_53);},_3b=function(_58){for(var _59,_5a=_58.split("/"),_5b=_1.global[_5a[0]],i=1;_5b&&i<_5a.length-1;_5b=_5b[_5a[i++]]){}if(_5b){_59=_5b[_5a[i]];if(!_59){_59=_5b[_5a[i].replace(/-/g,"_")];}if(_59){_13[_58]=_59;}}return _59;};_9.getLocalization=function(_5c,_5d,_5e){var _5f,_60=_14(_5c,_5d,_5e).substring(10);_28(_60,(!_40(_60)?_50:_2),function(_61){_5f=_61;});return _5f;};if(_3("dojo-unit-tests")){_3c.push(function(doh){doh.register("tests.i18n.unit",function(t){var _62;_62=_4f("{prop:1}");t.is({prop:1},_62);t.is(undefined,_62[1]);_62=_4f("({prop:1})");t.is({prop:1},_62);t.is(undefined,_62[1]);_62=_4f("{'prop-x':1}");t.is({"prop-x":1},_62);t.is(undefined,_62[1]);_62=_4f("({'prop-x':1})");t.is({"prop-x":1},_62);t.is(undefined,_62[1]);_62=_4f("define({'prop-x':1})");t.is(1,_62);_62=_4f("this is total nonsense and should throw an error");t.is(_62 instanceof Error,true);});});}}return _6.mixin(_9,{dynamic:true,normalize:_23,load:_28,cache:_13});}); \ No newline at end of file
+define("dojo/i18n",["./_base/kernel","require","./has","./_base/array","./_base/config","./_base/lang","./_base/xhr","./json","module"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){_3.add("dojo-preload-i18n-Api",1);1||_3.add("dojo-v1x-i18n-Api",1);var _a=_1.i18n={},_b=/(^.*(^|\/)nls)(\/|$)([^\/]*)\/?([^\/]*)/,_c=function(_d,_e,_f,_10){for(var _11=[_f+_10],_12=_e.split("-"),_13="",i=0;i<_12.length;i++){_13+=(_13?"-":"")+_12[i];if(!_d||_d[_13]){_11.push(_f+_13+"/"+_10);}}return _11;},_14={},_15=function(_16,_17,_18){_18=_18?_18.toLowerCase():_1.locale;_16=_16.replace(/\./g,"/");_17=_17.replace(/\./g,"/");return (/root/i.test(_18))?(_16+"/nls/"+_17):(_16+"/nls/"+_18+"/"+_17);},_19=_1.getL10nName=function(_1a,_1b,_1c){return _1a=_9.id+"!"+_15(_1a,_1b,_1c);},_1d=function(_1e,_1f,_20,_21,_22,_23){_1e([_1f],function(_24){var _25=_6.clone(_24.root),_26=_c(!_24._v1x&&_24,_22,_20,_21);_1e(_26,function(){for(var i=1;i<_26.length;i++){_25=_6.mixin(_6.clone(_25),arguments[i]);}var _27=_1f+"/"+_22;_14[_27]=_25;_23();});});},_28=function(id,_29){return /^\./.test(id)?_29(id):id;},_2a=function(_2b){var _2c=_5.extraLocale||[];_2c=_6.isArray(_2c)?_2c:[_2c];_2c.push(_2b);return _2c;},_2d=function(id,_2e,_2f){if(_3("dojo-preload-i18n-Api")){var _30=id.split("*"),_31=_30[1]=="preload";if(_31){if(!_14[id]){_14[id]=1;_32(_30[2],_8.parse(_30[3]),1,_2e);}_2f(1);}if(_31||_33(id,_2e,_2f)){return;}}var _34=_b.exec(id),_35=_34[1]+"/",_36=_34[5]||_34[4],_37=_35+_36,_38=(_34[5]&&_34[4]),_39=_38||_1.locale,_3a=_37+"/"+_39,_3b=_38?[_39]:_2a(_39),_3c=_3b.length,_3d=function(){if(!--_3c){_2f(_6.delegate(_14[_3a]));}};_4.forEach(_3b,function(_3e){var _3f=_37+"/"+_3e;if(_3("dojo-preload-i18n-Api")){_40(_3f);}if(!_14[_3f]){_1d(_2e,_37,_35,_36,_3e,_3d);}else{_3d();}});};if(_3("dojo-unit-tests")){var _41=_a.unitTests=[];}if(_3("dojo-preload-i18n-Api")||1){var _42=_a.normalizeLocale=function(_43){var _44=_43?_43.toLowerCase():_1.locale;return _44=="root"?"ROOT":_44;},_45=function(mid,_46){return (1&&1)?_46.isXdUrl(_2.toUrl(mid+".js")):true;},_47=0,_48=[],_32=_a._preloadLocalizations=function(_49,_4a,_4b,_4c){_4c=_4c||_2;function _4d(mid,_4e){if(_45(mid,_4c)||_4b){_4c([mid],_4e);}else{_5a([mid],_4e,_4c);}};function _4f(_50,_51){var _52=_50.split("-");while(_52.length){if(_51(_52.join("-"))){return;}_52.pop();}_51("ROOT");};function _53(_54){_54=_42(_54);_4f(_54,function(loc){if(_4.indexOf(_4a,loc)>=0){var mid=_49.replace(/\./g,"/")+"_"+loc;_47++;_4d(mid,function(_55){for(var p in _55){_14[_2.toAbsMid(p)+"/"+loc]=_55[p];}--_47;while(!_47&&_48.length){_2d.apply(null,_48.shift());}});return true;}return false;});};_53();_4.forEach(_1.config.extraLocale,_53);},_33=function(id,_56,_57){if(_47){_48.push([id,_56,_57]);}return _47;},_40=function(){};}if(1){var _58={},_59=new Function("__bundle","__checkForLegacyModules","__mid","__amdValue","var define = function(mid, factory){define.called = 1; __amdValue.result = factory || mid;},"+"\t require = function(){define.called = 1;};"+"try{"+"define.called = 0;"+"eval(__bundle);"+"if(define.called==1)"+"return __amdValue;"+"if((__checkForLegacyModules = __checkForLegacyModules(__mid)))"+"return __checkForLegacyModules;"+"}catch(e){}"+"try{"+"return eval('('+__bundle+')');"+"}catch(e){"+"return e;"+"}"),_5a=function(_5b,_5c,_5d){var _5e=[];_4.forEach(_5b,function(mid){var url=_5d.toUrl(mid+".js");function _2d(_5f){var _60=_59(_5f,_40,mid,_58);if(_60===_58){_5e.push(_14[url]=_58.result);}else{if(_60 instanceof Error){console.error("failed to evaluate i18n bundle; url="+url,_60);_60={};}_5e.push(_14[url]=(/nls\/[^\/]+\/[^\/]+$/.test(url)?_60:{root:_60,_v1x:1}));}};if(_14[url]){_5e.push(_14[url]);}else{var _61=_5d.syncLoadNls(mid);if(_61){_5e.push(_61);}else{if(!_7){try{_5d.getText(url,true,_2d);}catch(e){_5e.push(_14[url]={});}}else{_7.get({url:url,sync:true,load:_2d,error:function(){_5e.push(_14[url]={});}});}}}});_5c&&_5c.apply(null,_5e);};_40=function(_62){for(var _63,_64=_62.split("/"),_65=_1.global[_64[0]],i=1;_65&&i<_64.length-1;_65=_65[_64[i++]]){}if(_65){_63=_65[_64[i]];if(!_63){_63=_65[_64[i].replace(/-/g,"_")];}if(_63){_14[_62]=_63;}}return _63;};_a.getLocalization=function(_66,_67,_68){var _69,_6a=_15(_66,_67,_68);_2d(_6a,(!_45(_6a,_2)?function(_6b,_6c){_5a(_6b,_6c,_2);}:_2),function(_6d){_69=_6d;});return _69;};if(_3("dojo-unit-tests")){_41.push(function(doh){doh.register("tests.i18n.unit",function(t){var _6e;_6e=_59("{prop:1}",_40,"nonsense",_58);t.is({prop:1},_6e);t.is(undefined,_6e[1]);_6e=_59("({prop:1})",_40,"nonsense",_58);t.is({prop:1},_6e);t.is(undefined,_6e[1]);_6e=_59("{'prop-x':1}",_40,"nonsense",_58);t.is({"prop-x":1},_6e);t.is(undefined,_6e[1]);_6e=_59("({'prop-x':1})",_40,"nonsense",_58);t.is({"prop-x":1},_6e);t.is(undefined,_6e[1]);_6e=_59("define({'prop-x':1})",_40,"nonsense",_58);t.is(_58,_6e);t.is({"prop-x":1},_58.result);_6e=_59("define('some/module', {'prop-x':1})",_40,"nonsense",_58);t.is(_58,_6e);t.is({"prop-x":1},_58.result);_6e=_59("this is total nonsense and should throw an error",_40,"nonsense",_58);t.is(_6e instanceof Error,true);});});}}return _6.mixin(_a,{dynamic:true,normalize:_28,load:_2d,cache:_14});}); \ No newline at end of file
diff --git a/lib/dojo/io-query.js b/lib/dojo/io-query.js
index 91f2e74dd..840790043 100644
--- a/lib/dojo/io-query.js
+++ b/lib/dojo/io-query.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/io-query",["./_base/lang"],function(_1){var _2={};function _3(_4){var _5=encodeURIComponent,_6=[];for(var _7 in _4){var _8=_4[_7];if(_8!=_2[_7]){var _9=_5(_7)+"=";if(_1.isArray(_8)){for(var i=0,l=_8.length;i<l;++i){_6.push(_9+_5(_8[i]));}}else{_6.push(_9+_5(_8));}}}return _6.join("&");};function _a(_b){var _c=decodeURIComponent,qp=_b.split("&"),_d={},_e,_f;for(var i=0,l=qp.length,_10;i<l;++i){_10=qp[i];if(_10.length){var s=_10.indexOf("=");if(s<0){_e=_c(_10);_f="";}else{_e=_c(_10.slice(0,s));_f=_c(_10.slice(s+1));}if(typeof _d[_e]=="string"){_d[_e]=[_d[_e]];}if(_1.isArray(_d[_e])){_d[_e].push(_f);}else{_d[_e]=_f;}}}return _d;};return {objectToQuery:_3,queryToObject:_a};}); \ No newline at end of file
+define("dojo/io-query",["./_base/lang"],function(_1){var _2={};return {objectToQuery:function objectToQuery(_3){var _4=encodeURIComponent,_5=[];for(var _6 in _3){var _7=_3[_6];if(_7!=_2[_6]){var _8=_4(_6)+"=";if(_1.isArray(_7)){for(var i=0,l=_7.length;i<l;++i){_5.push(_8+_4(_7[i]));}}else{_5.push(_8+_4(_7));}}}return _5.join("&");},queryToObject:function queryToObject(_9){var _a=decodeURIComponent,qp=_9.split("&"),_b={},_c,_d;for(var i=0,l=qp.length,_e;i<l;++i){_e=qp[i];if(_e.length){var s=_e.indexOf("=");if(s<0){_c=_a(_e);_d="";}else{_c=_a(_e.slice(0,s));_d=_a(_e.slice(s+1));}if(typeof _b[_c]=="string"){_b[_c]=[_b[_c]];}if(_1.isArray(_b[_c])){_b[_c].push(_d);}else{_b[_c]=_d;}}}return _b;}};}); \ No newline at end of file
diff --git a/lib/dojo/io/iframe.js b/lib/dojo/io/iframe.js
index 9db3fbcfc..66ec8da2d 100644
--- a/lib/dojo/io/iframe.js
+++ b/lib/dojo/io/iframe.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/io/iframe",["../main","require"],function(_1,_2){_1.getObject("io",true,_1);_1.io.iframe={create:function(_3,_4,_5){if(window[_3]){return window[_3];}if(window.frames[_3]){return window.frames[_3];}var _6=_5;if(!_6){if(_1.config["useXDomain"]&&!_1.config["dojoBlankHtmlUrl"]){console.warn("dojo.io.iframe.create: When using cross-domain Dojo builds,"+" please save dojo/resources/blank.html to your domain and set djConfig.dojoBlankHtmlUrl"+" to the path on your domain to blank.html");}_6=(_1.config["dojoBlankHtmlUrl"]||_2.toUrl("../resources/blank.html"));}var _7=_1.place("<iframe id=\""+_3+"\" name=\""+_3+"\" src=\""+_6+"\" onload=\""+_4+"\" style=\"position: absolute; left: 1px; top: 1px; height: 1px; width: 1px; visibility: hidden\">",_1.body());window[_3]=_7;return _7;},setSrc:function(_8,_9,_a){try{if(!_a){if(_1.isWebKit){_8.location=_9;}else{frames[_8.name].location=_9;}}else{var _b;if(_1.isIE||_1.isWebKit){_b=_8.contentWindow.document;}else{_b=_8.contentWindow;}if(!_b){_8.location=_9;}else{_b.location.replace(_9);}}}catch(e){}},doc:function(_c){return _c.contentDocument||(((_c.name)&&(_c.document)&&(_1.doc.getElementsByTagName("iframe")[_c.name].contentWindow)&&(_1.doc.getElementsByTagName("iframe")[_c.name].contentWindow.document)))||((_c.name)&&(_1.doc.frames[_c.name])&&(_1.doc.frames[_c.name].document))||null;},send:function(_d){if(!this["_frame"]){this._frame=this.create(this._iframeName,_1._scopeName+".io.iframe._iframeOnload();");}var _e=_1._ioSetArgs(_d,function(_f){_f.canceled=true;_f.ioArgs._callNext();},function(dfd){var _10=null;try{var _11=dfd.ioArgs;var dii=_1.io.iframe;var ifd=dii.doc(dii._frame);var _12=_11.handleAs;_10=ifd;if(_12!="html"){if(_12=="xml"){if(_1.isIE<9||(_1.isIE&&_1.isQuirks)){_1.query("a",dii._frame.contentWindow.document.documentElement).orphan();var _13=(dii._frame.contentWindow.document).documentElement.innerText;_13=_13.replace(/>\s+</g,"><");_13=_1.trim(_13);var _14={responseText:_13};_10=_1._contentHandlers["xml"](_14);}}else{_10=ifd.getElementsByTagName("textarea")[0].value;if(_12=="json"){_10=_1.fromJson(_10);}else{if(_12=="javascript"){_10=_1.eval(_10);}}}}}catch(e){_10=e;}finally{_11._callNext();}return _10;},function(_15,dfd){dfd.ioArgs._hasError=true;dfd.ioArgs._callNext();return _15;});_e.ioArgs._callNext=function(){if(!this["_calledNext"]){this._calledNext=true;_1.io.iframe._currentDfd=null;_1.io.iframe._fireNextRequest();}};this._dfdQueue.push(_e);this._fireNextRequest();_1._ioWatch(_e,function(dfd){return !dfd.ioArgs["_hasError"];},function(dfd){return (!!dfd.ioArgs["_finished"]);},function(dfd){if(dfd.ioArgs._finished){dfd.callback(dfd);}else{dfd.errback(new Error("Invalid dojo.io.iframe request state"));}});return _e;},_currentDfd:null,_dfdQueue:[],_iframeName:_1._scopeName+"IoIframe",_fireNextRequest:function(){try{if((this._currentDfd)||(this._dfdQueue.length==0)){return;}do{var dfd=this._currentDfd=this._dfdQueue.shift();}while(dfd&&dfd.canceled&&this._dfdQueue.length);if(!dfd||dfd.canceled){this._currentDfd=null;return;}var _16=dfd.ioArgs;var _17=_16.args;_16._contentToClean=[];var fn=_1.byId(_17["form"]);var _18=_17["content"]||{};if(fn){if(_18){var _19=function(_1a,_1b){_1.create("input",{type:"hidden",name:_1a,value:_1b},fn);_16._contentToClean.push(_1a);};for(var x in _18){var val=_18[x];if(_1.isArray(val)&&val.length>1){var i;for(i=0;i<val.length;i++){_19(x,val[i]);}}else{if(!fn[x]){_19(x,val);}else{fn[x].value=val;}}}}var _1c=fn.getAttributeNode("action");var _1d=fn.getAttributeNode("method");var _1e=fn.getAttributeNode("target");if(_17["url"]){_16._originalAction=_1c?_1c.value:null;if(_1c){_1c.value=_17.url;}else{fn.setAttribute("action",_17.url);}}if(!_1d||!_1d.value){if(_1d){_1d.value=(_17["method"])?_17["method"]:"post";}else{fn.setAttribute("method",(_17["method"])?_17["method"]:"post");}}_16._originalTarget=_1e?_1e.value:null;if(_1e){_1e.value=this._iframeName;}else{fn.setAttribute("target",this._iframeName);}fn.target=this._iframeName;_1._ioNotifyStart(dfd);fn.submit();}else{var _1f=_17.url+(_17.url.indexOf("?")>-1?"&":"?")+_16.query;_1._ioNotifyStart(dfd);this.setSrc(this._frame,_1f,true);}}catch(e){dfd.errback(e);}},_iframeOnload:function(){var dfd=this._currentDfd;if(!dfd){this._fireNextRequest();return;}var _20=dfd.ioArgs;var _21=_20.args;var _22=_1.byId(_21.form);if(_22){var _23=_20._contentToClean;for(var i=0;i<_23.length;i++){var key=_23[i];for(var j=0;j<_22.childNodes.length;j++){var _24=_22.childNodes[j];if(_24.name==key){_1.destroy(_24);break;}}}if(_20["_originalAction"]){_22.setAttribute("action",_20._originalAction);}if(_20["_originalTarget"]){_22.setAttribute("target",_20._originalTarget);_22.target=_20._originalTarget;}}_20._finished=true;}};return _1.io.iframe;}); \ No newline at end of file
+define("dojo/io/iframe",["../_base/config","../_base/json","../_base/kernel","../_base/lang","../_base/xhr","../sniff","../_base/window","../dom","../dom-construct","../query","require","../aspect","../request/iframe"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d){_3.deprecated("dojo/io/iframe","Use dojo/request/iframe.","2.0");var _e=_d._iframeName;_e=_e.substring(0,_e.lastIndexOf("_"));var _f=_4.delegate(_d,{create:function(){return _f._frame=_d.create.apply(_d,arguments);},get:null,post:null,send:function(_10){var _11;var dfd=_5._ioSetArgs(_10,function(dfd){_11&&_11.cancel();},function(dfd){var _12=null,_13=dfd.ioArgs;try{var _14=_13.handleAs;if(_14==="xml"||_14==="html"){_12=_11.response.data;}else{_12=_11.response.text;if(_14==="json"){_12=_2.fromJson(_12);}else{if(_14==="javascript"){_12=_3.eval(_12);}}}}catch(e){_12=e;}return _12;},function(_15,dfd){dfd.ioArgs._hasError=true;return _15;});var _16=dfd.ioArgs;var _17="GET",_18=_8.byId(_10.form);if(_10.method&&_10.method.toUpperCase()==="POST"&&_18){_17="POST";}var _19={method:_17,handleAs:_10.handleAs==="json"||_10.handleAs==="javascript"?"text":_10.handleAs,form:_10.form,query:_18?null:_10.content,data:_18?_10.content:null,timeout:_10.timeout,ioArgs:_16};if(_19.method){_19.method=_19.method.toUpperCase();}if(_1.ioPublish&&_3.publish&&_16.args.ioPublish!==false){var _1a=_c.after(_d,"_notifyStart",function(_1b){if(_1b.options.ioArgs===_16){_1a.remove();_5._ioNotifyStart(dfd);}},true);}_11=_d(_16.url,_19,true);_16._callNext=_11._callNext;_11.then(function(){dfd.resolve(dfd);}).otherwise(function(_1c){dfd.ioArgs.error=_1c;dfd.reject(_1c);});return dfd;},_iframeOnload:_7.global[_e+"_onload"]});_4.setObject("dojo.io.iframe",_f);return _f;}); \ No newline at end of file
diff --git a/lib/dojo/io/script.js b/lib/dojo/io/script.js
index 03459fae1..130a5391f 100644
--- a/lib/dojo/io/script.js
+++ b/lib/dojo/io/script.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/io/script",["../main"],function(_1){_1.getObject("io",true,_1);var _2=_1.isIE?"onreadystatechange":"load",_3=/complete|loaded/;_1.io.script={get:function(_4){var _5=this._makeScriptDeferred(_4);var _6=_5.ioArgs;_1._ioAddQueryToUrl(_6);_1._ioNotifyStart(_5);if(this._canAttach(_6)){var _7=this.attach(_6.id,_6.url,_4.frameDoc);if(!_6.jsonp&&!_6.args.checkString){var _8=_1.connect(_7,_2,function(_9){if(_9.type=="load"||_3.test(_7.readyState)){_1.disconnect(_8);_6.scriptLoaded=_9;}});}}_1._ioWatch(_5,this._validCheck,this._ioCheck,this._resHandle);return _5;},attach:function(id,_a,_b){var _c=(_b||_1.doc);var _d=_c.createElement("script");_d.type="text/javascript";_d.src=_a;_d.id=id;_d.async=true;_d.charset="utf-8";return _c.getElementsByTagName("head")[0].appendChild(_d);},remove:function(id,_e){_1.destroy(_1.byId(id,_e));if(this["jsonp_"+id]){delete this["jsonp_"+id];}},_makeScriptDeferred:function(_f){var dfd=_1._ioSetArgs(_f,this._deferredCancel,this._deferredOk,this._deferredError);var _10=dfd.ioArgs;_10.id=_1._scopeName+"IoScript"+(this._counter++);_10.canDelete=false;_10.jsonp=_f.callbackParamName||_f.jsonp;if(_10.jsonp){_10.query=_10.query||"";if(_10.query.length>0){_10.query+="&";}_10.query+=_10.jsonp+"="+(_f.frameDoc?"parent.":"")+_1._scopeName+".io.script.jsonp_"+_10.id+"._jsonpCallback";_10.frameDoc=_f.frameDoc;_10.canDelete=true;dfd._jsonpCallback=this._jsonpCallback;this["jsonp_"+_10.id]=dfd;}return dfd;},_deferredCancel:function(dfd){dfd.canceled=true;if(dfd.ioArgs.canDelete){_1.io.script._addDeadScript(dfd.ioArgs);}},_deferredOk:function(dfd){var _11=dfd.ioArgs;if(_11.canDelete){_1.io.script._addDeadScript(_11);}return _11.json||_11.scriptLoaded||_11;},_deferredError:function(_12,dfd){if(dfd.ioArgs.canDelete){if(_12.dojoType=="timeout"){_1.io.script.remove(dfd.ioArgs.id,dfd.ioArgs.frameDoc);}else{_1.io.script._addDeadScript(dfd.ioArgs);}}return _12;},_deadScripts:[],_counter:1,_addDeadScript:function(_13){_1.io.script._deadScripts.push({id:_13.id,frameDoc:_13.frameDoc});_13.frameDoc=null;},_validCheck:function(dfd){var _14=_1.io.script;var _15=_14._deadScripts;if(_15&&_15.length>0){for(var i=0;i<_15.length;i++){_14.remove(_15[i].id,_15[i].frameDoc);_15[i].frameDoc=null;}_1.io.script._deadScripts=[];}return true;},_ioCheck:function(dfd){var _16=dfd.ioArgs;if(_16.json||(_16.scriptLoaded&&!_16.args.checkString)){return true;}var _17=_16.args.checkString;return _17&&eval("typeof("+_17+") != 'undefined'");},_resHandle:function(dfd){if(_1.io.script._ioCheck(dfd)){dfd.callback(dfd);}else{dfd.errback(new Error("inconceivable dojo.io.script._resHandle error"));}},_canAttach:function(_18){return true;},_jsonpCallback:function(_19){this.ioArgs.json=_19;}};return _1.io.script;}); \ No newline at end of file
+define("dojo/io/script",["../_base/connect","../_base/kernel","../_base/lang","../sniff","../_base/window","../_base/xhr","../dom","../dom-construct","../request/script"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){_2.deprecated("dojo/io/script","Use dojo/request/script.","2.0");var _a={get:function(_b){var _c;var _d=this._makeScriptDeferred(_b,function(_e){_c&&_c.cancel();});var _f=_d.ioArgs;_6._ioAddQueryToUrl(_f);_6._ioNotifyStart(_d);_c=_9.get(_f.url,{timeout:_b.timeout,jsonp:_f.jsonp,checkString:_b.checkString,ioArgs:_f,frameDoc:_b.frameDoc,canAttach:function(_10){_f.requestId=_10.id;_f.scriptId=_10.scriptId;_f.canDelete=_10.canDelete;return _a._canAttach(_f);}},true);_c.then(function(){_d.resolve(_d);}).otherwise(function(_11){_d.ioArgs.error=_11;_d.reject(_11);});return _d;},attach:_9._attach,remove:_9._remove,_makeScriptDeferred:function(_12,_13){var dfd=_6._ioSetArgs(_12,_13||this._deferredCancel,this._deferredOk,this._deferredError);var _14=dfd.ioArgs;_14.id=_2._scopeName+"IoScript"+(this._counter++);_14.canDelete=false;_14.jsonp=_12.callbackParamName||_12.jsonp;if(_14.jsonp){_14.query=_14.query||"";if(_14.query.length>0){_14.query+="&";}_14.query+=_14.jsonp+"="+(_12.frameDoc?"parent.":"")+_2._scopeName+".io.script.jsonp_"+_14.id+"._jsonpCallback";_14.frameDoc=_12.frameDoc;_14.canDelete=true;dfd._jsonpCallback=this._jsonpCallback;this["jsonp_"+_14.id]=dfd;}return dfd;},_deferredCancel:function(dfd){dfd.canceled=true;},_deferredOk:function(dfd){var _15=dfd.ioArgs;return _15.json||_15.scriptLoaded||_15;},_deferredError:function(_16,dfd){return _16;},_deadScripts:[],_counter:1,_addDeadScript:function(_17){_a._deadScripts.push({id:_17.id,frameDoc:_17.frameDoc});_17.frameDoc=null;},_validCheck:function(dfd){var _18=_a._deadScripts;if(_18&&_18.length>0){for(var i=0;i<_18.length;i++){_a.remove(_18[i].id,_18[i].frameDoc);_18[i].frameDoc=null;}_a._deadScripts=[];}return true;},_ioCheck:function(dfd){var _19=dfd.ioArgs;if(_19.json||(_19.scriptLoaded&&!_19.args.checkString)){return true;}var _1a=_19.args.checkString;return _1a&&eval("typeof("+_1a+") != 'undefined'");},_resHandle:function(dfd){if(_a._ioCheck(dfd)){dfd.callback(dfd);}else{dfd.errback(new Error("inconceivable dojo.io.script._resHandle error"));}},_canAttach:function(){return true;},_jsonpCallback:function(_1b){this.ioArgs.json=_1b;_2.global[_9._callbacksProperty][this.ioArgs.requestId](_1b);}};_3.setObject("dojo.io.script",_a);return _a;}); \ No newline at end of file
diff --git a/lib/dojo/jaxer.js b/lib/dojo/jaxer.js
index 835661dae..4e1a2fe38 100644
--- a/lib/dojo/jaxer.js
+++ b/lib/dojo/jaxer.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/jaxer",["./main"],function(_1){if(typeof print=="function"){console.debug=Jaxer.Log.debug;console.warn=Jaxer.Log.warn;console.error=Jaxer.Log.error;console.info=Jaxer.Log.info;console.log=Jaxer.Log.warn;}onserverload=_1._loadInit;return _1;}); \ No newline at end of file
+define("dojo/jaxer",["./_base/kernel"],function(_1){_1.deprecated("(dojo)/jaxer interface","Jaxer is no longer supported by the Dojo Toolkit, will be removed with DTK 1.9.");if(typeof print=="function"){console.debug=Jaxer.Log.debug;console.warn=Jaxer.Log.warn;console.error=Jaxer.Log.error;console.info=Jaxer.Log.info;console.log=Jaxer.Log.warn;}onserverload=_1._loadInit;return _1;}); \ No newline at end of file
diff --git a/lib/dojo/json.js b/lib/dojo/json.js
index fa84ba63e..203d51a52 100644
--- a/lib/dojo/json.js
+++ b/lib/dojo/json.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/json",["./has"],function(_1){"use strict";var _2=typeof JSON!="undefined";_1.add("json-parse",_2);_1.add("json-stringify",_2&&JSON.stringify({a:0},function(k,v){return v||1;})=="{\"a\":1}");if(_1("json-stringify")){return JSON;}else{var _3=function(_4){return ("\""+_4.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};return {parse:_1("json-parse")?JSON.parse:function(_5,_6){if(_6&&!/^([\s\[\{]*(?:"(?:\\.|[^"])+"|-?\d[\d\.]*(?:[Ee][+-]?\d+)?|null|true|false|)[\s\]\}]*(?:,|:|$))+$/.test(_5)){throw new SyntaxError("Invalid characters in JSON");}return eval("("+_5+")");},stringify:function(_7,_8,_9){var _a;if(typeof _8=="string"){_9=_8;_8=null;}function _b(it,_c,_d){if(_8){it=_8(_d,it);}var _e,_f=typeof it;if(_f=="number"){return isFinite(it)?it+"":"null";}if(_f=="boolean"){return it+"";}if(it===null){return "null";}if(typeof it=="string"){return _3(it);}if(_f=="function"||_f=="undefined"){return _a;}if(typeof it.toJSON=="function"){return _b(it.toJSON(_d),_c,_d);}if(it instanceof Date){return "\"{FullYear}-{Month+}-{Date}T{Hours}:{Minutes}:{Seconds}Z\"".replace(/\{(\w+)(\+)?\}/g,function(t,_10,_11){var num=it["getUTC"+_10]()+(_11?1:0);return num<10?"0"+num:num;});}if(it.valueOf()!==it){return _b(it.valueOf(),_c,_d);}var _12=_9?(_c+_9):"";var sep=_9?" ":"";var _13=_9?"\n":"";if(it instanceof Array){var itl=it.length,res=[];for(_d=0;_d<itl;_d++){var obj=it[_d];_e=_b(obj,_12,_d);if(typeof _e!="string"){_e="null";}res.push(_13+_12+_e);}return "["+res.join(",")+_13+_c+"]";}var _14=[];for(_d in it){var _15;if(typeof _d=="number"){_15="\""+_d+"\"";}else{if(typeof _d=="string"){_15=_3(_d);}else{continue;}}_e=_b(it[_d],_12,_d);if(typeof _e!="string"){continue;}_14.push(_13+_12+_15+":"+sep+_e);}return "{"+_14.join(",")+_13+_c+"}";};return _b(_7,"","");}};}}); \ No newline at end of file
+define("dojo/json",["./has"],function(_1){"use strict";var _2=typeof JSON!="undefined";_1.add("json-parse",_2);_1.add("json-stringify",_2&&JSON.stringify({a:0},function(k,v){return v||1;})=="{\"a\":1}");if(_1("json-stringify")){return JSON;}else{var _3=function(_4){return ("\""+_4.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};return {parse:_1("json-parse")?JSON.parse:function(_5,_6){if(_6&&!/^([\s\[\{]*(?:"(?:\\.|[^"])+"|-?\d[\d\.]*(?:[Ee][+-]?\d+)?|null|true|false|)[\s\]\}]*(?:,|:|$))+$/.test(_5)){throw new SyntaxError("Invalid characters in JSON");}return eval("("+_5+")");},stringify:function(_7,_8,_9){var _a;if(typeof _8=="string"){_9=_8;_8=null;}function _b(it,_c,_d){if(_8){it=_8(_d,it);}var _e,_f=typeof it;if(_f=="number"){return isFinite(it)?it+"":"null";}if(_f=="boolean"){return it+"";}if(it===null){return "null";}if(typeof it=="string"){return _3(it);}if(_f=="function"||_f=="undefined"){return _a;}if(typeof it.toJSON=="function"){return _b(it.toJSON(_d),_c,_d);}if(it instanceof Date){return "\"{FullYear}-{Month+}-{Date}T{Hours}:{Minutes}:{Seconds}Z\"".replace(/\{(\w+)(\+)?\}/g,function(t,_10,_11){var num=it["getUTC"+_10]()+(_11?1:0);return num<10?"0"+num:num;});}if(it.valueOf()!==it){return _b(it.valueOf(),_c,_d);}var _12=_9?(_c+_9):"";var sep=_9?" ":"";var _13=_9?"\n":"";if(it instanceof Array){var itl=it.length,res=[];for(_d=0;_d<itl;_d++){var obj=it[_d];_e=_b(obj,_12,_d);if(typeof _e!="string"){_e="null";}res.push(_13+_12+_e);}return "["+res.join(",")+_13+_c+"]";}var _14=[];for(_d in it){var _15;if(it.hasOwnProperty(_d)){if(typeof _d=="number"){_15="\""+_d+"\"";}else{if(typeof _d=="string"){_15=_3(_d);}else{continue;}}_e=_b(it[_d],_12,_d);if(typeof _e!="string"){continue;}_14.push(_13+_12+_15+":"+sep+_e);}}return "{"+_14.join(",")+_13+_c+"}";};return _b(_7,"","");}};}}); \ No newline at end of file
diff --git a/lib/dojo/keys.js b/lib/dojo/keys.js
index 3086cd8b1..0edf8b09e 100644
--- a/lib/dojo/keys.js
+++ b/lib/dojo/keys.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/keys",["./_base/kernel","./_base/sniff"],function(_1,_2){return _1.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:_2("safari")?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,UP_DPAD:175,DOWN_DPAD:176,LEFT_DPAD:177,RIGHT_DPAD:178,copyKey:_2("mac")&&!_2("air")?(_2("safari")?91:224):17};}); \ No newline at end of file
+define("dojo/keys",["./_base/kernel","./sniff"],function(_1,_2){return _1.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:_2("webkit")?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,UP_DPAD:175,DOWN_DPAD:176,LEFT_DPAD:177,RIGHT_DPAD:178,copyKey:_2("mac")&&!_2("air")?(_2("safari")?91:224):17};}); \ No newline at end of file
diff --git a/lib/dojo/loadInit.js b/lib/dojo/loadInit.js
index e5f966fe0..ceb9162ba 100644
--- a/lib/dojo/loadInit.js
+++ b/lib/dojo/loadInit.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/main.js b/lib/dojo/main.js
index f1443bcf6..78def25c3 100644
--- a/lib/dojo/main.js
+++ b/lib/dojo/main.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/main",["./_base/kernel","./has","require","./_base/sniff","./_base/lang","./_base/array","./ready","./_base/declare","./_base/connect","./_base/Deferred","./_base/json","./_base/Color","./has!dojo-firebug?./_firebug/firebug","./_base/browser","./_base/loader"],function(_1,_2,_3,_4,_5,_6,_7){if(_1.config.isDebug){_3(["./_firebug/firebug"]);}true||_2.add("dojo-config-require",1);if(1){var _8=_1.config.require;if(_8){_8=_6.map(_5.isArray(_8)?_8:[_8],function(_9){return _9.replace(/\./g,"/");});if(_1.isAsync){_3(_8);}else{_7(1,function(){_3(_8);});}}}return _1;}); \ No newline at end of file
+define("dojo/main",["./_base/kernel","./has","require","./sniff","./_base/lang","./_base/array","./_base/config","./ready","./_base/declare","./_base/connect","./_base/Deferred","./_base/json","./_base/Color","./has!dojo-firebug?./_firebug/firebug","./_base/browser","./_base/loader"],function(_1,_2,_3,_4,_5,_6,_7,_8){if(_7.isDebug){_3(["./_firebug/firebug"]);}1||_2.add("dojo-config-require",1);if(1){var _9=_7.require;if(_9){_9=_6.map(_5.isArray(_9)?_9:[_9],function(_a){return _a.replace(/\./g,"/");});if(_1.isAsync){_3(_9);}else{_8(1,function(){_3(_9);});}}}return _1;}); \ No newline at end of file
diff --git a/lib/dojo/mouse.js b/lib/dojo/mouse.js
index 397b5ee81..0c37325b6 100644
--- a/lib/dojo/mouse.js
+++ b/lib/dojo/mouse.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/mouse",["./_base/kernel","./on","./has","./dom","./_base/window"],function(_1,on,_2,_3,_4){_2.add("dom-quirks",_4.doc&&_4.doc.compatMode=="BackCompat");_2.add("events-mouseenter",_4.doc&&"onmouseenter" in _4.doc.createElement("div"));var _5;if(_2("dom-quirks")||!_2("dom-addeventlistener")){_5={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_6){return e.button&_6;},isLeft:function(e){return e.button&1;},isMiddle:function(e){return e.button&4;},isRight:function(e){return e.button&2;}};}else{_5={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_7){return e.button==_7;},isLeft:function(e){return e.button==0;},isMiddle:function(e){return e.button==1;},isRight:function(e){return e.button==2;}};}_1.mouseButtons=_5;function _8(_9,_a){var _b=function(_c,_d){return on(_c,_9,function(_e){if(!_3.isDescendant(_e.relatedTarget,_a?_e.target:_c)){return _d.call(this,_e);}});};if(!_a){_b.bubble=_8(_9,true);}return _b;};return {enter:_8("mouseover"),leave:_8("mouseout"),isLeft:_5.isLeft,isMiddle:_5.isMiddle,isRight:_5.isRight};}); \ No newline at end of file
+define("dojo/mouse",["./_base/kernel","./on","./has","./dom","./_base/window"],function(_1,on,_2,_3,_4){_2.add("dom-quirks",_4.doc&&_4.doc.compatMode=="BackCompat");_2.add("events-mouseenter",_4.doc&&"onmouseenter" in _4.doc.createElement("div"));_2.add("events-mousewheel",_4.doc&&"onmousewheel" in _4.doc);var _5;if((_2("dom-quirks")&&_2("ie"))||!_2("dom-addeventlistener")){_5={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_6){return e.button&_6;},isLeft:function(e){return e.button&1;},isMiddle:function(e){return e.button&4;},isRight:function(e){return e.button&2;}};}else{_5={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_7){return e.button==_7;},isLeft:function(e){return e.button==0;},isMiddle:function(e){return e.button==1;},isRight:function(e){return e.button==2;}};}_1.mouseButtons=_5;function _8(_9,_a){var _b=function(_c,_d){return on(_c,_9,function(_e){if(_a){return _a(_e,_d);}if(!_3.isDescendant(_e.relatedTarget,_c)){return _d.call(this,_e);}});};_b.bubble=function(_f){return _8(_9,function(evt,_10){var _11=_f(evt.target);var _12=evt.relatedTarget;if(_11&&(_11!=(_12&&_12.nodeType==1&&_f(_12)))){return _10.call(_11,evt);}});};return _b;};var _13;if(_2("events-mousewheel")){_13="mousewheel";}else{_13=function(_14,_15){return on(_14,"DOMMouseScroll",function(evt){evt.wheelDelta=-evt.detail;_15.call(this,evt);});};}return {_eventHandler:_8,enter:_8("mouseover"),leave:_8("mouseout"),wheel:_13,isLeft:_5.isLeft,isMiddle:_5.isMiddle,isRight:_5.isRight};}); \ No newline at end of file
diff --git a/lib/dojo/nls/ar/colors.js b/lib/dojo/nls/ar/colors.js
index a022327a9..5557b08b8 100644
--- a/lib/dojo/nls/ar/colors.js
+++ b/lib/dojo/nls/ar/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/az/colors.js b/lib/dojo/nls/az/colors.js
index 592accdf0..c08ba7312 100644
--- a/lib/dojo/nls/az/colors.js
+++ b/lib/dojo/nls/az/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/ca/colors.js b/lib/dojo/nls/ca/colors.js
index 0fafe55e9..414a3c1a7 100644
--- a/lib/dojo/nls/ca/colors.js
+++ b/lib/dojo/nls/ca/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/colors.js b/lib/dojo/nls/colors.js
index 2d78bab1b..85410e04d 100644
--- a/lib/dojo/nls/colors.js
+++ b/lib/dojo/nls/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/cs/colors.js b/lib/dojo/nls/cs/colors.js
index 1d93db9a7..c874c8797 100644
--- a/lib/dojo/nls/cs/colors.js
+++ b/lib/dojo/nls/cs/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/da/colors.js b/lib/dojo/nls/da/colors.js
index da3d11a2c..ccab17efd 100644
--- a/lib/dojo/nls/da/colors.js
+++ b/lib/dojo/nls/da/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/de/colors.js b/lib/dojo/nls/de/colors.js
index ea7fc0895..e22aaf447 100644
--- a/lib/dojo/nls/de/colors.js
+++ b/lib/dojo/nls/de/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/el/colors.js b/lib/dojo/nls/el/colors.js
index 4f398ca9f..e3acf13ff 100644
--- a/lib/dojo/nls/el/colors.js
+++ b/lib/dojo/nls/el/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/es/colors.js b/lib/dojo/nls/es/colors.js
index 63338948e..e1259c6df 100644
--- a/lib/dojo/nls/es/colors.js
+++ b/lib/dojo/nls/es/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/fi/colors.js b/lib/dojo/nls/fi/colors.js
index 93383f462..35db6586a 100644
--- a/lib/dojo/nls/fi/colors.js
+++ b/lib/dojo/nls/fi/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/fr/colors.js b/lib/dojo/nls/fr/colors.js
index 2ff1710e2..970618a0e 100644
--- a/lib/dojo/nls/fr/colors.js
+++ b/lib/dojo/nls/fr/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/he/colors.js b/lib/dojo/nls/he/colors.js
index 5ec2f42e2..1b6df3deb 100644
--- a/lib/dojo/nls/he/colors.js
+++ b/lib/dojo/nls/he/colors.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/he/colors",({aliceblue:"כחול פלדה",antiquewhite:"לבן עתיק",aqua:"אקווה",aquamarine:"אקוומארין",azure:"תכלת עז",beige:"בז'",bisque:"לבן שקד",black:"שחור",blanchedalmond:"שקד",blue:"כחול",blueviolet:"כחול-סגול",brown:"חום",burlywood:"חום דהוי",cadetblue:"כחול ים",chartreuse:"ירוק-צהוב",chocolate:"שוקולד",coral:"אלמוג",cornflowerblue:"כחול דרדר",cornsilk:"צהבהב",crimson:"ארגמן",cyan:"טורקיז",darkblue:"כחול כהה",darkcyan:"טורקיז כהה",darkgoldenrod:"זהוב כהה",darkgray:"אפור כהה",darkgreen:"ירוק כהה",darkgrey:"אפור כהה",darkkhaki:"חאקי כהה",darkmagenta:"בורדו כהה",darkolivegreen:"ירוק זית כהה",darkorange:"כתום כהה",darkorchid:"סחלב כהה",darkred:"אדום כהה",darksalmon:"סלמון כהה",darkseagreen:"ירוק ים כהה",darkslateblue:"כחול צפחה כהה",darkslategray:"אפור צפחה כהה",darkslategrey:"אפור צפחה כהה",darkturquoise:"טורקיז כהה",darkviolet:"סגול כהה",deeppink:"ורוד עמוק",deepskyblue:"כחול שמיים עמוק",dimgray:"אפור עמום",dimgrey:"אפור עמום",dodgerblue:"כחול",firebrick:"לבנה שרופה",floralwhite:"לבן פרחוני",forestgreen:"ירוק יער",fuchsia:"ורוד בהיר",gainsboro:"גיינסבורו",ghostwhite:"לבן רפאים",gold:"זהב",goldenrod:"זהוב",gray:"אפור",green:"ירוק",greenyellow:"ירוק-צהוב",grey:"אפור",honeydew:"ירקרק",hotpink:"ורוד לוהט",indianred:"אדום דהוי",indigo:"אינדיגו",ivory:"שנהב",khaki:"חאקי",lavender:"לבנדר",lavenderblush:"סומק לבנדר",lawngreen:"ירוק דשא",lemonchiffon:"ירוק לימון",lightblue:"תכלת",lightcoral:"אלמוג בהיר",lightcyan:"טורקיז בהיר",lightgoldenrodyellow:"צהוב בהיר",lightgray:"אפור בהיר",lightgreen:"ירוק בהיר",lightgrey:"אפור בהיר",lightpink:"ורוד בהיר",lightsalmon:"סלמון בהיר",lightseagreen:"ירוק ים בהיר",lightskyblue:"כחול שמיים בהיר",lightslategray:"אפור צפחה בהיר",lightslategrey:"אפור צפחה בהיר",lightsteelblue:"כחול פלדה בהיר",lightyellow:"צהוב בהיר",lime:"לימון",limegreen:"ירוק לימוני",linen:"פשתן",magenta:"בורדו",maroon:"חום אדמדם",mediumaquamarine:"כחול בינוני",mediumblue:"תכלת בינוני",mediumorchid:"סחלב בינוני",mediumpurple:"סגול בינוני",mediumseagreen:"ירוק ים בינוני",mediumslateblue:"כחול צפחה בינוני",mediumspringgreen:"ירוק אביב בינוני",mediumturquoise:"טורקיז בינוני",mediumvioletred:"סגול-אדום בינוני",midnightblue:"כחול כהה",mintcream:"קרם מנטה",mistyrose:"ורוד מעורפל",moccasin:"מוקסין",navajowhite:"לבן נוואחו",navy:"כחול כהה",oldlace:"תחרה עתיקה",olive:"זית",olivedrab:"זית עמום",orange:"כתום",orangered:"כתום אדום",orchid:"סחלב",palegoldenrod:"זהוב בהיר",palegreen:"ירוק בהיר",paleturquoise:"טורקיז בהיר",palevioletred:"סגול-אדום בהיר",papayawhip:"פפאיה",peachpuff:"קציפת אפרסק",peru:"פרו",pink:"ורוד",plum:"שזיף",powderblue:"כחול חיוור",purple:"סגול",red:"אדום",rosybrown:"חום ורדרד",royalblue:"כחול מלכותי",saddlebrown:"חום דהוי",salmon:"סלמון",sandybrown:"חום חולי",seagreen:"ירוק ים",seashell:"צדף",sienna:"סיינה",silver:"כסף",skyblue:"כחול שמיים",slateblue:"כחול צפחה",slategray:"אפור צפחה",slategrey:"אפור צפחה",snow:"שלג",springgreen:"ירוק אביב",steelblue:"כחול פלדה",tan:"חום אדמדם",teal:"כחול-ירוק כהה",thistle:"דרדר",tomato:"עגבניה",turquoise:"טורקיז",violet:"סגול",wheat:"חיוט",white:"לבן",whitesmoke:"עשן לבן",yellow:"צהוב",yellowgreen:"ירוק צהוב"})); \ No newline at end of file
+define("dojo/nls/he/colors",({aliceblue:"כחול פלדה",antiquewhite:"לבן עתיק",aqua:"אקווה",aquamarine:"אקוומארין",azure:"תכלת עז",beige:"בז'",bisque:"לבן שקד",black:"שחור",blanchedalmond:"שקד",blue:"כחול",blueviolet:"כחול-סגול",brown:"חום",burlywood:"חום דהוי",cadetblue:"כחול ים",chartreuse:"ירוק-צהוב",chocolate:"שוקולד",coral:"אלמוג",cornflowerblue:"כחול דרדר",cornsilk:"צהבהב",crimson:"ארגמן",cyan:"טורקיז",darkblue:"כחול כהה",darkcyan:"טורקיז כהה",darkgoldenrod:"זהוב כהה",darkgray:"אפור כהה",darkgreen:"ירוק כהה",darkgrey:"אפור כהה",darkkhaki:"חאקי כהה",darkmagenta:"בורדו כהה",darkolivegreen:"ירוק זית כהה",darkorange:"כתום כהה",darkorchid:"סחלב כהה",darkred:"אדום כהה",darksalmon:"סלמון כהה",darkseagreen:"ירוק ים כהה",darkslateblue:"כחול צפחה כהה",darkslategray:"אפור צפחה כהה",darkslategrey:"אפור צפחה כהה",darkturquoise:"טורקיז כהה",darkviolet:"סגול כהה",deeppink:"ורוד עמוק",deepskyblue:"כחול שמיים עמוק",dimgray:"אפור עמום",dimgrey:"אפור עמום",dodgerblue:"כחול",firebrick:"לבנה שרופה",floralwhite:"לבן פרחוני",forestgreen:"ירוק יער",fuchsia:"ורוד בהיר",gainsboro:"גיינסבורו",ghostwhite:"לבן רפאים",gold:"זהב",goldenrod:"זהוב",gray:"אפור",green:"ירוק",greenyellow:"ירוק-צהוב",grey:"אפור",honeydew:"ירקרק",hotpink:"ורוד לוהט",indianred:"אדום דהוי",indigo:"אינדיגו",ivory:"שנהב",khaki:"חאקי",lavender:"לבנדר",lavenderblush:"סומק לבנדר",lawngreen:"ירוק דשא",lemonchiffon:"ירוק לימון",lightblue:"תכלת",lightcoral:"אלמוג בהיר",lightcyan:"טורקיז בהיר",lightgoldenrodyellow:"צהוב בהיר",lightgray:"אפור בהיר",lightgreen:"ירוק בהיר",lightgrey:"אפור בהיר",lightpink:"ורוד בהיר",lightsalmon:"סלמון בהיר",lightseagreen:"ירוק ים בהיר",lightskyblue:"כחול שמיים בהיר",lightslategray:"אפור צפחה בהיר",lightslategrey:"אפור צפחה בהיר",lightsteelblue:"כחול פלדה בהיר",lightyellow:"צהוב בהיר",lime:"לימון",limegreen:"ירוק לימוני",linen:"פשתן",magenta:"בורדו",maroon:"חום אדמדם",mediumaquamarine:"כחול בינוני",mediumblue:"תכלת בינוני",mediumorchid:"סחלב בינוני",mediumpurple:"סגול בינוני",mediumseagreen:"ירוק ים בינוני",mediumslateblue:"כחול צפחה בינוני",mediumspringgreen:"ירוק אביב בינוני",mediumturquoise:"טורקיז בינוני",mediumvioletred:"סגול-אדום בינוני",midnightblue:"כחול כהה",mintcream:"קרם מנטה",mistyrose:"ורוד מעורפל",moccasin:"מוקסין",navajowhite:"לבן נוואחו",navy:"כחול כהה",oldlace:"תחרה עתיקה",olive:"זית",olivedrab:"זית עמום",orange:"כתום",orangered:"כתום אדום",orchid:"סחלב",palegoldenrod:"זהוב בהיר",palegreen:"ירוק בהיר",paleturquoise:"טורקיז בהיר",palevioletred:"סגול-אדום בהיר",papayawhip:"פפאיה",peachpuff:"קציפת אפרסק",peru:"פרו",pink:"ורוד",plum:"שזיף",powderblue:"כחול חיוור",purple:"סגול",red:"אדום",rosybrown:"חום ורדרד",royalblue:"כחול מלכותי",saddlebrown:"חום דהוי",salmon:"סלמון",sandybrown:"חום חולי",seagreen:"ירוק ים",seashell:"צדף",sienna:"סיינה",silver:"כסף",skyblue:"כחול שמיים",slateblue:"כחול צפחה",slategray:"אפור צפחה",slategrey:"אפור צפחה",snow:"שלג",springgreen:"ירוק אביב",steelblue:"כחול פלדה",tan:"חום אדמדם",teal:"כחול-ירוק כהה",thistle:"דרדר",tomato:"עגבניה",transparent:"שקוף",turquoise:"טורקיז",violet:"סגול",wheat:"חיוט",white:"לבן",whitesmoke:"עשן לבן",yellow:"צהוב",yellowgreen:"ירוק צהוב"})); \ No newline at end of file
diff --git a/lib/dojo/nls/hr/colors.js b/lib/dojo/nls/hr/colors.js
index 91b9c6ce4..582699392 100644
--- a/lib/dojo/nls/hr/colors.js
+++ b/lib/dojo/nls/hr/colors.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/hr/colors",({aliceblue:"alice plava",antiquewhite:"antique bijela",aqua:"aqua",aquamarine:"akvamarin",azure:"azurna",beige:"bež",bisque:"svjetlo smeđe ružičasta",black:"crna",blanchedalmond:"slonovača",blue:"plava",blueviolet:"plavo ljubičasta",brown:"smeđa",burlywood:"pješčano smeđa",cadetblue:"plavo siva",chartreuse:"chartreuse",chocolate:"čokoladna",coral:"koraljna",cornflowerblue:"različak plava",cornsilk:"cornsilk",crimson:"rumena",cyan:"cijan",darkblue:"tamno plava",darkcyan:"tamno cijan",darkgoldenrod:"tamno zlatno žuta",darkgray:"tamno siva",darkgreen:"tamno zelena",darkgrey:"tamno siva",darkkhaki:"tamno sivo smeđa",darkmagenta:"tamno grimizna",darkolivegreen:"tamno maslinasto zelena",darkorange:"tamno narančasta",darkorchid:"tamno ružičasta",darkred:"tamno crvena",darksalmon:"tamno žuto ružičasta",darkseagreen:"tamno plavo zelena",darkslateblue:"tamno sivo plava",darkslategray:"tamno plavo siva",darkslategrey:"tamno plavo siva",darkturquoise:"tamno tirkizna",darkviolet:"tamno ljubičasta",deeppink:"intenzivno ružičasta",deepskyblue:"intenzivno nebesko plava",dimgray:"mutno siva",dimgrey:"mutno siva",dodgerblue:"dodger plava",firebrick:"žarko crvena",floralwhite:"cvjetno bijela",forestgreen:"tamno zelena",fuchsia:"fuksija",gainsboro:"gainsboro",ghostwhite:"sivo bijela",gold:"zlatna",goldenrod:"zlatno žuta",gray:"siva",green:"zelena",greenyellow:"zeleno-žuta",grey:"siva",honeydew:"honeydew",hotpink:"žarko ružičasta",indianred:"indijski crveno",indigo:"indigo",ivory:"slonovača",khaki:"sivo smeđa",lavender:"lavanda",lavenderblush:"lavanda",lawngreen:"livadno zelena",lemonchiffon:"nježno žuta",lightblue:"svjetlo plava",lightcoral:"svjetlo koraljna",lightcyan:"svjetlo cijan",lightgoldenrodyellow:"svjetlo zlatno žuta",lightgray:"svjetlo siva",lightgreen:"svjetlo zelena",lightgrey:"svjetlo siva",lightpink:"svjetlo ružičasta",lightsalmon:"svjetlo žuto ružičasta",lightseagreen:"svjetlo plavo zelena",lightskyblue:"svjetlo nebesko plava",lightslategray:"svjetlo plavo siva",lightslategrey:"svjetlo plavo siva",lightsteelblue:"svjetlo čelično plava",lightyellow:"svjetlo žuta",lime:"limeta",limegreen:"limeta zelena",linen:"platno",magenta:"grimizna",maroon:"kestenjasta",mediumaquamarine:"srednje akvamarin",mediumblue:"srednje plava",mediumorchid:"srednje ružičasta",mediumpurple:"srednje purpurna",mediumseagreen:"srednje plavo zelena",mediumslateblue:"srednje sivo plava",mediumspringgreen:"srednje proljetno zelena",mediumturquoise:"srednje tirkizna",mediumvioletred:"srednje ljubičasto-crvena",midnightblue:"ponoćno plava",mintcream:"blijedo zelena",mistyrose:"mutno ružičasta",moccasin:"moccasin",navajowhite:"krem bijela",navy:"mornarsko plava",oldlace:"old lace",olive:"maslinasta",olivedrab:"maslinasta",orange:"narančasta",orangered:"narančasto crvena",orchid:"ružičasta",palegoldenrod:"blijedo zlatno žuta",palegreen:"svjetlo zelena",paleturquoise:"blijedo tirkizna",palevioletred:"blijedo ljubičasto crvena",papayawhip:"blijedo narančasta",peachpuff:"breskva",peru:"peru",pink:"ružičasta",plum:"šljiva",powderblue:"blijedo plava",purple:"purpurna",red:"crvena",rosybrown:"ružičasto smeđa",royalblue:"kraljevski plava",saddlebrown:"srednje smeđa",salmon:"ružičasta",sandybrown:"pješčano smeđa",seagreen:"plavo zelena",seashell:"nježno ružičasta",sienna:"sjena",silver:"srebrna",skyblue:"nebesko plava",slateblue:"sivo plava",slategray:"plavo siva",slategrey:"plavo siva",snow:"snijeg",springgreen:"proljetno zeleno",steelblue:"čelično plava",tan:"ten",teal:"teal",thistle:"čičak",tomato:"rajčica",transparent:"prozirno",turquoise:"tirkizna",violet:"ljubičasta",wheat:"pšenica",white:"bijela",whitesmoke:"bijeli dim",yellow:"žuta",yellowgreen:"žuto zelena"})); \ No newline at end of file
+define("dojo/nls/hr/colors",({aliceblue:"alice plava",antiquewhite:"antique bijela",aqua:"aqua",aquamarine:"akvamarin",azure:"azurna",beige:"bež",bisque:"svjetlo smeđe ružičasta",black:"crna",blanchedalmond:"svjetlo bademasta",blue:"plava",blueviolet:"plavo ljubičasta",brown:"smeđa",burlywood:"tamno smeđa",cadetblue:"kadet plava",chartreuse:"chartreuse",chocolate:"čokoladna",coral:"koraljna",cornflowerblue:"različak plava",cornsilk:"cornsilk",crimson:"rumena",cyan:"cijan",darkblue:"tamno plava",darkcyan:"tamno cijan",darkgoldenrod:"tamno zlatno žuta",darkgray:"tamno siva",darkgreen:"tamno zelena",darkgrey:"tamno siva",darkkhaki:"tamno sivo smeđa",darkmagenta:"tamno grimizna",darkolivegreen:"tamno maslinasto zelena",darkorange:"tamno narančasta",darkorchid:"tamno ružičasta",darkred:"tamno crvena",darksalmon:"tamno žuto ružičasta",darkseagreen:"tamno plavo zelena",darkslateblue:"tamno sivo plava",darkslategray:"tamno plavo siva",darkslategrey:"tamno plavo siva",darkturquoise:"tamno tirkizna",darkviolet:"tamno ljubičasta",deeppink:"intenzivno ružičasta",deepskyblue:"intenzivno nebesko plava",dimgray:"mutno siva",dimgrey:"mutno siva",dodgerblue:"dodger plava",firebrick:"žarko crvena",floralwhite:"cvjetno bijela",forestgreen:"šumsko zelena",fuchsia:"fuksija",gainsboro:"gainsboro",ghostwhite:"sivo bijela",gold:"zlatna",goldenrod:"zlatno žuta",gray:"siva",green:"zelena",greenyellow:"zeleno žuta",grey:"siva",honeydew:"honeydew",hotpink:"žarko ružičasta",indianred:"indijski crveno",indigo:"indigo",ivory:"slonovača",khaki:"sivo smeđa",lavender:"lavanda",lavenderblush:"rumena lavanda",lawngreen:"livadno zelena",lemonchiffon:"nježno žuta",lightblue:"svjetlo plava",lightcoral:"svjetlo koraljna",lightcyan:"svjetlo cijan",lightgoldenrodyellow:"svjetlo zlatno žuta",lightgray:"svjetlo siva",lightgreen:"svjetlo zelena",lightgrey:"svjetlo siva",lightpink:"svjetlo ružičasta",lightsalmon:"svjetlo žuto ružičasta",lightseagreen:"svjetlo plavo zelena",lightskyblue:"svjetlo nebesko plava",lightslategray:"svjetlo plavo siva",lightslategrey:"svjetlo plavo siva",lightsteelblue:"svjetlo čelično plava",lightyellow:"svjetlo žuta",lime:"limeta",limegreen:"limeta zelena",linen:"platno",magenta:"grimizna",maroon:"kestenjasta",mediumaquamarine:"srednje akvamarin",mediumblue:"srednje plava",mediumorchid:"srednje ružičasta",mediumpurple:"srednje purpurna",mediumseagreen:"srednje plavo zelena",mediumslateblue:"srednje sivo plava",mediumspringgreen:"srednje proljetno zelena",mediumturquoise:"srednje tirkizna",mediumvioletred:"srednje ljubičasto crvena",midnightblue:"ponoćno plava",mintcream:"blijedo zelena",mistyrose:"mutno ružičasta",moccasin:"moccasin",navajowhite:"krem bijela",navy:"mornarsko plava",oldlace:"old lace",olive:"maslinasta",olivedrab:"maslinasto siva",orange:"narančasta",orangered:"narančasto crvena",orchid:"ružičasta",palegoldenrod:"blijedo zlatno žuta",palegreen:"blijedo zelena",paleturquoise:"blijedo tirkizna",palevioletred:"blijedo ljubičasto crvena",papayawhip:"blijedo narančasta",peachpuff:"breskva",peru:"peru",pink:"roza",plum:"šljiva",powderblue:"blijedo plava",purple:"purpurna",red:"crvena",rosybrown:"ružičasto smeđa",royalblue:"kraljevski plava",saddlebrown:"srednje smeđa",salmon:"žuto ružičasta",sandybrown:"pješčano smeđa",seagreen:"plavo zelena",seashell:"nježno ružičasta",sienna:"sjena",silver:"srebrna",skyblue:"nebesko plava",slateblue:"sivo plava",slategray:"plavo siva",slategrey:"plavo siva",snow:"snijeg",springgreen:"proljetno zeleno",steelblue:"čelično plava",tan:"ten",teal:"teal",thistle:"čičak",tomato:"rajčica",transparent:"prozirno",turquoise:"tirkizna",violet:"ljubičasta",wheat:"pšenica",white:"bijela",whitesmoke:"bijeli dim",yellow:"žuta",yellowgreen:"žuto zelena"})); \ No newline at end of file
diff --git a/lib/dojo/nls/hu/colors.js b/lib/dojo/nls/hu/colors.js
index 6c4fd09a2..52afdd38e 100644
--- a/lib/dojo/nls/hu/colors.js
+++ b/lib/dojo/nls/hu/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/it/colors.js b/lib/dojo/nls/it/colors.js
index e941c63d5..d6c8d279d 100644
--- a/lib/dojo/nls/it/colors.js
+++ b/lib/dojo/nls/it/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/ja/colors.js b/lib/dojo/nls/ja/colors.js
index 4b5591ea2..792a977ff 100644
--- a/lib/dojo/nls/ja/colors.js
+++ b/lib/dojo/nls/ja/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/kk/colors.js b/lib/dojo/nls/kk/colors.js
index 924da788f..ebcd7f3a7 100644
--- a/lib/dojo/nls/kk/colors.js
+++ b/lib/dojo/nls/kk/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/ko/colors.js b/lib/dojo/nls/ko/colors.js
index 4dba16c5e..2b5d4e216 100644
--- a/lib/dojo/nls/ko/colors.js
+++ b/lib/dojo/nls/ko/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/nb/colors.js b/lib/dojo/nls/nb/colors.js
index eb382badf..eeccd67b8 100644
--- a/lib/dojo/nls/nb/colors.js
+++ b/lib/dojo/nls/nb/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/nl/colors.js b/lib/dojo/nls/nl/colors.js
index 6ce975069..e88fc3280 100644
--- a/lib/dojo/nls/nl/colors.js
+++ b/lib/dojo/nls/nl/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/pl/colors.js b/lib/dojo/nls/pl/colors.js
index f685b4957..5e777b186 100644
--- a/lib/dojo/nls/pl/colors.js
+++ b/lib/dojo/nls/pl/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/pt-pt/colors.js b/lib/dojo/nls/pt-pt/colors.js
index 484fe5b09..9d81a4b71 100644
--- a/lib/dojo/nls/pt-pt/colors.js
+++ b/lib/dojo/nls/pt-pt/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/pt/colors.js b/lib/dojo/nls/pt/colors.js
index 71c34682e..cc9ada678 100644
--- a/lib/dojo/nls/pt/colors.js
+++ b/lib/dojo/nls/pt/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/ro/colors.js b/lib/dojo/nls/ro/colors.js
index 87e6682c0..f2b177c2a 100644
--- a/lib/dojo/nls/ro/colors.js
+++ b/lib/dojo/nls/ro/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/ru/colors.js b/lib/dojo/nls/ru/colors.js
index a0e7ce753..72d0b7c65 100644
--- a/lib/dojo/nls/ru/colors.js
+++ b/lib/dojo/nls/ru/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/sk/colors.js b/lib/dojo/nls/sk/colors.js
index 709aaff3e..73a47f0e8 100644
--- a/lib/dojo/nls/sk/colors.js
+++ b/lib/dojo/nls/sk/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/sl/colors.js b/lib/dojo/nls/sl/colors.js
index 4f2f19e0b..2460d12c5 100644
--- a/lib/dojo/nls/sl/colors.js
+++ b/lib/dojo/nls/sl/colors.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/sl/colors",({aliceblue:"alice blue modra",antiquewhite:"antično bela",aqua:"akva",aquamarine:"akvamarin",azure:"azurno modra",beige:"bež",bisque:"porcelanasta",black:"črna",blanchedalmond:"obledelo mandljeva",blue:"modra",blueviolet:"modro vijolična",brown:"rjava",burlywood:"peščeno sivo-rjava",cadetblue:"kadetsko modra",chartreuse:"chartreuse",chocolate:"čokoladna",coral:"koralna",cornflowerblue:"plavičasto modra",cornsilk:"koruzna",crimson:"karminasta",cyan:"cijan",darkblue:"temno modra",darkcyan:"temno cijan",darkgoldenrod:"temna zlata rozga",darkgray:"temno siva",darkgreen:"temno zelena",darkgrey:"temno siva",darkkhaki:"temno kaki",darkmagenta:"temna magenta",darkolivegreen:"temna olivno zelena",darkorange:"temno oranžna",darkorchid:"temno orhidejasta",darkred:"temno rdeča",darksalmon:"temno lososova",darkseagreen:"temno morsko zelena",darkslateblue:"temno skrilasto modra",darkslategray:"temno skrilasto siva",darkslategrey:"temno skrilasto siva",darkturquoise:"temno turkizna",darkviolet:"temno vijolična",deeppink:"temno rožnata",deepskyblue:"temno nebeško modra",dimgray:"pepelnato siva",dimgrey:"pepelnato siva",dodgerblue:"dodgersko modra",firebrick:"opečnata",floralwhite:"cvetno bela",forestgreen:"gozdno zelena",fuchsia:"fuksija",gainsboro:"gainsboro",ghostwhite:"senčnato bela",gold:"zlata",goldenrod:"zlata rozga",gray:"siva",green:"zelena",greenyellow:"zeleno-rumena",grey:"siva",honeydew:"medena rosa",hotpink:"kričeče rožnata",indianred:"indijansko rdeča",indigo:"indigo",ivory:"slonokoščena",khaki:"kaki",lavender:"sivka",lavenderblush:"rožnato sivka",lawngreen:"travniško zelena",lemonchiffon:"limonast šifon",lightblue:"svetlo modra",lightcoral:"svetlo koralna",lightcyan:"svetlo cijan",lightgoldenrodyellow:"svetlo rumena zlata rozga",lightgray:"svetlo siva",lightgreen:"svetlo zelena",lightgrey:"svetlo siva",lightpink:"svetlo rožnata",lightsalmon:"svetlo lososova",lightseagreen:"svetlo morsko zelena",lightskyblue:"svetlo nebeško modra",lightslategray:"svetlo skrilasto siva",lightslategrey:"svetlo skrilasto siva",lightsteelblue:"svetlo kovinsko modra",lightyellow:"svetlo rumena",lime:"limetasta",limegreen:"apneno zelena",linen:"lanena",magenta:"magenta",maroon:"kostanjeva",mediumaquamarine:"srednji akvamarin",mediumblue:"srednje modra",mediumorchid:"srednje orhidejasta",mediumpurple:"srednje škrlatna",mediumseagreen:"srednje morsko zelena",mediumslateblue:"srednje skrilasto modra",mediumspringgreen:"srednje pomladno zelena",mediumturquoise:"srednje turkizna",mediumvioletred:"srednje vijolično rdeča",midnightblue:"polnočno modra",mintcream:"metina krema",mistyrose:"megleno rožnata",moccasin:"mokasinasta",navajowhite:"navajo bela",navy:"mornarska",oldlace:"stara čipka",olive:"olivna",olivedrab:"umazano olivna",orange:"oranžna",orangered:"oranžno-rdeča",orchid:"orhidejasta",palegoldenrod:"bleda zlata rozga",palegreen:"bledo zelena",paleturquoise:"bledo turkizna",palevioletred:"bledo vijolično-rdeča",papayawhip:"papaja",peachpuff:"breskova",peru:"perujska",pink:"rožnata",plum:"slivova",powderblue:"kobaltovo modra",purple:"škrlatna",red:"rdeča",rosybrown:"rožnato rjava",royalblue:"kraljevsko modra",saddlebrown:"sedlasto rjava",salmon:"lososova",sandybrown:"peščeno rjava",seagreen:"morsko zelena",seashell:"morska lupina",sienna:"sienna",silver:"srebrna",skyblue:"nebeško modra",slateblue:"skrilasto modra",slategray:"skrilasto siva",slategrey:"skrilasto siva",snow:"snežena",springgreen:"pomladno zelena",steelblue:"kovinsko modra",tan:"rumeno-rjava",teal:"modrozelena",thistle:"osatna",tomato:"paradižnikova",transparent:"prosojno",turquoise:"turkizna",violet:"vijolična",wheat:"pšenična",white:"bela",whitesmoke:"megleno bela",yellow:"rumena",yellowgreen:"rumeno-zelena"})); \ No newline at end of file
+define("dojo/nls/sl/colors",({aliceblue:"alice blue modra",antiquewhite:"antično bela",aqua:"svetlo modra",aquamarine:"akvamarin",azure:"azurno modra",beige:"bež",bisque:"porcelanasta",black:"črna",blanchedalmond:"obledelo mandljeva",blue:"modra",blueviolet:"modro vijolična",brown:"rjava",burlywood:"peščeno sivo-rjava",cadetblue:"kadetsko modra",chartreuse:"chartreuse",chocolate:"čokoladna",coral:"koralna",cornflowerblue:"plavičasto modra",cornsilk:"koruzna",crimson:"karminasta",cyan:"cijan",darkblue:"temno modra",darkcyan:"temno cijan",darkgoldenrod:"temna zlata rozga",darkgray:"temno siva",darkgreen:"temno zelena",darkgrey:"temno siva",darkkhaki:"temno kaki",darkmagenta:"temna magenta",darkolivegreen:"temna olivno zelena",darkorange:"temno oranžna",darkorchid:"temno orhidejasta",darkred:"temno rdeča",darksalmon:"temno lososova",darkseagreen:"temno morsko zelena",darkslateblue:"temno skrilasto modra",darkslategray:"temno skrilasto siva",darkslategrey:"temno skrilasto siva",darkturquoise:"temno turkizna",darkviolet:"temno vijolična",deeppink:"temno rožnata",deepskyblue:"temno nebeško modra",dimgray:"pepelnato siva",dimgrey:"pepelnato siva",dodgerblue:"dodgersko modra",firebrick:"opečnata",floralwhite:"cvetno bela",forestgreen:"gozdno zelena",fuchsia:"roza",gainsboro:"gainsboro",ghostwhite:"senčnato bela",gold:"zlata",goldenrod:"zlata rozga",gray:"siva",green:"zelena",greenyellow:"zeleno-rumena",grey:"siva",honeydew:"medena rosa",hotpink:"kričeče rožnata",indianred:"indijansko rdeča",indigo:"indigo",ivory:"slonokoščena",khaki:"kaki",lavender:"sivka",lavenderblush:"rožnato sivka",lawngreen:"travniško zelena",lemonchiffon:"limonast šifon",lightblue:"svetlo modra",lightcoral:"svetlo koralna",lightcyan:"svetlo cijan",lightgoldenrodyellow:"svetlo rumena zlata rozga",lightgray:"svetlo siva",lightgreen:"svetlo zelena",lightgrey:"svetlo siva",lightpink:"svetlo rožnata",lightsalmon:"svetlo lososova",lightseagreen:"svetlo morsko zelena",lightskyblue:"svetlo nebeško modra",lightslategray:"svetlo skrilasto siva",lightslategrey:"svetlo skrilasto siva",lightsteelblue:"svetlo kovinsko modra",lightyellow:"svetlo rumena",lime:"svetlo zelena",limegreen:"apneno zelena",linen:"lanena",magenta:"magenta",maroon:"kostanjeva",mediumaquamarine:"srednji akvamarin",mediumblue:"srednje modra",mediumorchid:"srednje orhidejasta",mediumpurple:"srednje škrlatna",mediumseagreen:"srednje morsko zelena",mediumslateblue:"srednje skrilasto modra",mediumspringgreen:"srednje pomladno zelena",mediumturquoise:"srednje turkizna",mediumvioletred:"srednje vijolično rdeča",midnightblue:"polnočno modra",mintcream:"metina krema",mistyrose:"megleno rožnata",moccasin:"mokasinasta",navajowhite:"navajo bela",navy:"mornarsko modra",oldlace:"stara čipka",olive:"olivno zelena",olivedrab:"umazano olivna",orange:"oranžna",orangered:"oranžno-rdeča",orchid:"orhidejasta",palegoldenrod:"bleda zlata rozga",palegreen:"bledo zelena",paleturquoise:"bledo turkizna",palevioletred:"bledo vijolično-rdeča",papayawhip:"papaja",peachpuff:"breskova",peru:"perujska",pink:"rožnata",plum:"slivova",powderblue:"kobaltovo modra",purple:"škrlatna",red:"rdeča",rosybrown:"rožnato rjava",royalblue:"kraljevsko modra",saddlebrown:"sedlasto rjava",salmon:"lososova",sandybrown:"peščeno rjava",seagreen:"morsko zelena",seashell:"morska lupina",sienna:"sienna",silver:"srebrna",skyblue:"nebeško modra",slateblue:"skrilasto modra",slategray:"skrilasto siva",slategrey:"skrilasto siva",snow:"snežena",springgreen:"pomladno zelena",steelblue:"kovinsko modra",tan:"rumeno-rjava",teal:"modrozelena",thistle:"osatna",tomato:"paradižnikova",transparent:"prosojno",turquoise:"turkizna",violet:"vijolična",wheat:"pšenična",white:"bela",whitesmoke:"megleno bela",yellow:"rumena",yellowgreen:"rumeno-zelena"})); \ No newline at end of file
diff --git a/lib/dojo/nls/sv/colors.js b/lib/dojo/nls/sv/colors.js
index 2269abbd0..6d700cfd0 100644
--- a/lib/dojo/nls/sv/colors.js
+++ b/lib/dojo/nls/sv/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/th/colors.js b/lib/dojo/nls/th/colors.js
index be239a3b2..a0cd64da6 100644
--- a/lib/dojo/nls/th/colors.js
+++ b/lib/dojo/nls/th/colors.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/th/colors",({aliceblue:"alice blue",antiquewhite:"antique white",aqua:"ฟ้าน้ำทะเล",aquamarine:"aquamarine",azure:"น้ำเงินฟ้า",beige:"น้ำตาลเบจ",bisque:"bisque",black:"ดำ",blanchedalmond:"blanched almond",blue:"น้ำเงิน",blueviolet:"น้ำเงินม่วง",brown:"น้ำตาล",burlywood:"burlywood",cadetblue:"cadet blue",chartreuse:"chartreuse",chocolate:"ช็อกโกแลต",coral:"coral",cornflowerblue:"cornflower blue",cornsilk:"cornsilk",crimson:"แดงเลือดหมู",cyan:"เขียวแกมน้ำเงิน",darkblue:"น้ำเงินเข้ม",darkcyan:"เขียวแกมน้ำเงินเข้ม",darkgoldenrod:"dark goldenrod",darkgray:"เทาเข้ม",darkgreen:"เขียวเข้ม",darkgrey:"เทาเข้ม",darkkhaki:"dark khaki",darkmagenta:"แดงแกมม่วงเข้ม",darkolivegreen:"เขียวโอลีฟเข้ม",darkorange:"ส้มเข้ม",darkorchid:"dark orchid",darkred:"แดงเข้ม",darksalmon:"dark salmon",darkseagreen:"dark sea green",darkslateblue:"dark slate blue",darkslategray:"dark slate gray",darkslategrey:"dark slate gray",darkturquoise:"dark turquoise",darkviolet:"ม่วงเข้ม",deeppink:"ชมพูเข้ม",deepskyblue:"deep sky blue",dimgray:"dim gray",dimgrey:"dim gray",dodgerblue:"dodger blue",firebrick:"สีอิฐ",floralwhite:"floral white",forestgreen:"forest green",fuchsia:"fuchsia",gainsboro:"gainsboro",ghostwhite:"ghost white",gold:"ทอง",goldenrod:"goldenrod",gray:"เทา",green:"เขียว",greenyellow:"เขียวแกมเหลือง",grey:"เทา",honeydew:"honeydew",hotpink:"hot pink",indianred:"indian red",indigo:"indigo",ivory:"งาช้าง",khaki:"khaki",lavender:"ม่วงลาเวนเดอร์",lavenderblush:"lavender blush",lawngreen:"lawn green",lemonchiffon:"lemon chiffon",lightblue:"น้ำเงินอ่อน",lightcoral:"light coral",lightcyan:"เขียวแกมน้ำเงินอ่อน",lightgoldenrodyellow:"light goldenrod yellow",lightgray:"เทาอ่อน",lightgreen:"เขียวอ่อน",lightgrey:"เทาอ่อน",lightpink:"ชมพูอ่อน",lightsalmon:"light salmon",lightseagreen:"light sea green",lightskyblue:"ฟ้าอ่อน",lightslategray:"light slate gray",lightslategrey:"light slate gray",lightsteelblue:"light steel blue",lightyellow:"เหลืองอ่อน",lime:"เหลืองมะนาว",limegreen:"เขียวมะนาว",linen:"linen",magenta:"แดงแกมม่วง",maroon:"น้ำตาลแดง",mediumaquamarine:"medium aquamarine",mediumblue:"medium blue",mediumorchid:"medium orchid",mediumpurple:"medium purple",mediumseagreen:"medium sea green",mediumslateblue:"medium slate blue",mediumspringgreen:"medium spring green",mediumturquoise:"medium turquoise",mediumvioletred:"medium violet-red",midnightblue:"midnight blue",mintcream:"mint cream",mistyrose:"misty rose",moccasin:"ม็อคค่า",navajowhite:"navajo white",navy:"น้ำเงินเข้ม",oldlace:"old lace",olive:"โอลีฟ",olivedrab:"olive drab",orange:"ส้ม",orangered:"ส้มแกมแดง",orchid:"orchid",palegoldenrod:"pale goldenrod",palegreen:"pale green",paleturquoise:"pale turquoise",palevioletred:"pale violet-red",papayawhip:"papaya whip",peachpuff:"peach puff",peru:"peru",pink:"ชมพู",plum:"plum",powderblue:"powder blue",purple:"ม่วง",red:"แดง",rosybrown:"rosy brown",royalblue:"royal blue",saddlebrown:"saddle brown",salmon:"salmon",sandybrown:"sandy brown",seagreen:"sea green",seashell:"seashell",sienna:"sienna",silver:"เงิน",skyblue:"sky blue",slateblue:"slate blue",slategray:"slate gray",slategrey:"slate gray",snow:"snow",springgreen:"spring green",steelblue:"steel blue",tan:"tan",teal:"teal",thistle:"thistle",tomato:"tomato",transparent:"สีใส",turquoise:"turquoise",violet:"ม่วง",wheat:"wheat",white:"ขาว",whitesmoke:"ขาวควัน",yellow:"เหลือง",yellowgreen:"เหลืองแกมเขียว"})); \ No newline at end of file
+define("dojo/nls/th/colors",({aliceblue:"ฟ้าจาง",antiquewhite:"สีเนื้อ",aqua:"ฟ้าน้ำทะเล",aquamarine:"อะความารีน",azure:"น้ำเงินฟ้า",beige:"น้ำตาลเบจ",bisque:"ขาวข้าวสาร",black:"ดำ",blanchedalmond:"เนื้ออ่อน",blue:"น้ำเงิน",blueviolet:"น้ำเงินม่วง",brown:"น้ำตาล",burlywood:"น้ำตาลอ่อน",cadetblue:"เขียวน้ำเงินหม่น",chartreuse:"เขียวสะท้อนแสง",chocolate:"ช็อกโกแลต",coral:"แสดเข้มนวล",cornflowerblue:"สีคอร์นฟลาวเวอร์บลู",cornsilk:"cornsilk",crimson:"แดงเลือดหมู",cyan:"เขียวแกมน้ำเงิน",darkblue:"น้ำเงินเข้ม",darkcyan:"เขียวแกมน้ำเงินเข้ม",darkgoldenrod:"ทองเหลืองเข้ม",darkgray:"เทาเข้ม",darkgreen:"เขียวเข้ม",darkgrey:"เทาเข้ม",darkkhaki:"กากีเข้ม",darkmagenta:"แดงแกมม่วงเข้ม",darkolivegreen:"เขียวโอลีฟเข้ม",darkorange:"ส้มเข้ม",darkorchid:"สีม่วงกล้วยไม้เข้ม",darkred:"แดงเข้ม",darksalmon:"ส้มเข้ม",darkseagreen:"เขียวทะเลเข้ม",darkslateblue:"น้ำเงินนวลเข้ม",darkslategray:"เทานวลเข้ม",darkslategrey:"เทานวลเข้ม",darkturquoise:"ฟ้าขี้นกการเวกเข้ม",darkviolet:"ม่วงเข้ม",deeppink:"ชมพูเข้ม",deepskyblue:"ฟ้าสด",dimgray:"เทาทึม",dimgrey:"เทาทึม",dodgerblue:"ฟ้าสะท้อนแสง",firebrick:"สีอิฐ",floralwhite:"ขาวแกมชมพู",forestgreen:"หยก",fuchsia:"บานเย็น",gainsboro:"เทานวล",ghostwhite:"น้ำข้าว",gold:"ทอง",goldenrod:"ทองเหลือง",gray:"เทา",green:"เขียว",greenyellow:"เขียวแกมเหลือง",grey:"เทา",honeydew:"ขาวแกมเขียว",hotpink:"ชมพูจัด",indianred:"แดงอมเหลือง",indigo:"คราม",ivory:"งาช้าง",khaki:"กากี",lavender:"ม่วงลาเวนเดอร์",lavenderblush:"นมเย็น",lawngreen:"เขียวหญ้าอ่อน",lemonchiffon:"lemon chiffon",lightblue:"น้ำเงินอ่อน",lightcoral:"ชมพูอมแดง",lightcyan:"เขียวแกมน้ำเงินอ่อน",lightgoldenrodyellow:"ทองเหลืองอ่อน",lightgray:"เทาอ่อน",lightgreen:"เขียวอ่อน",lightgrey:"เทาอ่อน",lightpink:"ชมพูอ่อน",lightsalmon:"ส้มจาง",lightseagreen:"เขียวทะเลอ่อน",lightskyblue:"ฟ้าอ่อน",lightslategray:"เทานวลอ่อน",lightslategrey:"เทานวลอ่อน",lightsteelblue:"น้ำเงินนวลอ่อน",lightyellow:"เหลืองอ่อน",lime:"เหลืองมะนาว",limegreen:"เขียวมะนาว",linen:"ลินนิน",magenta:"แดงแกมม่วง",maroon:"น้ำตาลแดง",mediumaquamarine:"อะความารีนกลางๆ",mediumblue:"น้ำเงินกลางๆ",mediumorchid:"ม่วงกล้วยไม้กลางๆ",mediumpurple:"ม่วงอัญชัญ",mediumseagreen:" เขียวทะเลกลางๆ",mediumslateblue:"น้ำเงินนวลกลางๆ",mediumspringgreen:"สีเขียวนวลกลางๆ",mediumturquoise:"ฟ้าขี้นกการเวกกลางๆ",mediumvioletred:"แดงอมม่วงกลางๆ",midnightblue:"น้ำเงินทึบ",mintcream:"ขาวกะทิ",mistyrose:"ชมพูหม่น",moccasin:"ม็อคค่า",navajowhite:"ส้มหนังกลับ",navy:"น้ำเงินเข้ม",oldlace:"ขาวนวล",olive:"โอลีฟ",olivedrab:"เขียวมะกอกแก่",orange:"ส้ม",orangered:"ส้มแกมแดง",orchid:"สีกล้วยไม้",palegoldenrod:"ทองเหลืองจาง",palegreen:"เขียวจาง",paleturquoise:"ฟ้าขี้นกการเวกจาง",palevioletred:"แดงอมม่วงจาง",papayawhip:"ชมพูจาง",peachpuff:" สีพีช",peru:"ส้มดินเผา",pink:"ชมพู",plum:"ม่วงอ่อน",powderblue:"ฟ้าหม่น",purple:"ม่วง",red:"แดง",rosybrown:"กะปิ",royalblue:"น้ำเงินเข้ม",saddlebrown:"น้ำตาล",salmon:"ส้มอ่อน",sandybrown:"น้ำตาลลูกรัง",seagreen:"เขียวทะเล",seashell:"สีขาวหอยทะเล",sienna:"น้ำตาลอมแดง",silver:"เงิน",skyblue:"ฟ้า",slateblue:"น้ำเงินนวล",slategray:"เทาอมน้ำเงินนวล",slategrey:"เทาอมน้ำเงินนวล",snow:"ขาวหิมะ",springgreen:"เขียว",steelblue:"น้ำเงินด้าน",tan:"แทน",teal:"เขียวหัวเป็ด",thistle:"ม่วงจาง",tomato:"แสด",transparent:"สีใส",turquoise:"ฟ้าขี้นกการเวก",violet:"ม่วง",wheat:"เหลืองรำข้าว",white:"ขาว",whitesmoke:"ขาวควัน",yellow:"เหลือง",yellowgreen:"เหลืองแกมเขียว"})); \ No newline at end of file
diff --git a/lib/dojo/nls/tr/colors.js b/lib/dojo/nls/tr/colors.js
index 83ec98fda..10af7796e 100644
--- a/lib/dojo/nls/tr/colors.js
+++ b/lib/dojo/nls/tr/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/tt-rss-layer_ROOT.js b/lib/dojo/nls/tt-rss-layer_ROOT.js
index ebad6b976..1c18f11bd 100644
--- a/lib/dojo/nls/tt-rss-layer_ROOT.js
+++ b/lib/dojo/nls/tt-rss-layer_ROOT.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_ROOT",{"dijit/form/nls/validate":{"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."},"dijit/nls/loading":{"loadingState":"Loading...","errorState":"Sorry, an error occurred"},"dojo/nls/colors":{"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","transparent":"transparent","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Previous choices","nextMessage":"More choices"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_ROOT",{"dojo/nls/colors":{"aliceblue":"alice blue","antiquewhite":"antique white","aqua":"aqua","aquamarine":"aquamarine","azure":"azure","beige":"beige","bisque":"bisque","black":"black","blanchedalmond":"blanched almond","blue":"blue","blueviolet":"blue-violet","brown":"brown","burlywood":"burlywood","cadetblue":"cadet blue","chartreuse":"chartreuse","chocolate":"chocolate","coral":"coral","cornflowerblue":"cornflower blue","cornsilk":"cornsilk","crimson":"crimson","cyan":"cyan","darkblue":"dark blue","darkcyan":"dark cyan","darkgoldenrod":"dark goldenrod","darkgray":"dark gray","darkgreen":"dark green","darkgrey":"dark gray","darkkhaki":"dark khaki","darkmagenta":"dark magenta","darkolivegreen":"dark olive green","darkorange":"dark orange","darkorchid":"dark orchid","darkred":"dark red","darksalmon":"dark salmon","darkseagreen":"dark sea green","darkslateblue":"dark slate blue","darkslategray":"dark slate gray","darkslategrey":"dark slate gray","darkturquoise":"dark turquoise","darkviolet":"dark violet","deeppink":"deep pink","deepskyblue":"deep sky blue","dimgray":"dim gray","dimgrey":"dim gray","dodgerblue":"dodger blue","firebrick":"fire brick","floralwhite":"floral white","forestgreen":"forest green","fuchsia":"fuchsia","gainsboro":"gainsboro","ghostwhite":"ghost white","gold":"gold","goldenrod":"goldenrod","gray":"gray","green":"green","greenyellow":"green-yellow","grey":"gray","honeydew":"honeydew","hotpink":"hot pink","indianred":"indian red","indigo":"indigo","ivory":"ivory","khaki":"khaki","lavender":"lavender","lavenderblush":"lavender blush","lawngreen":"lawn green","lemonchiffon":"lemon chiffon","lightblue":"light blue","lightcoral":"light coral","lightcyan":"light cyan","lightgoldenrodyellow":"light goldenrod yellow","lightgray":"light gray","lightgreen":"light green","lightgrey":"light gray","lightpink":"light pink","lightsalmon":"light salmon","lightseagreen":"light sea green","lightskyblue":"light sky blue","lightslategray":"light slate gray","lightslategrey":"light slate gray","lightsteelblue":"light steel blue","lightyellow":"light yellow","lime":"lime","limegreen":"lime green","linen":"linen","magenta":"magenta","maroon":"maroon","mediumaquamarine":"medium aquamarine","mediumblue":"medium blue","mediumorchid":"medium orchid","mediumpurple":"medium purple","mediumseagreen":"medium sea green","mediumslateblue":"medium slate blue","mediumspringgreen":"medium spring green","mediumturquoise":"medium turquoise","mediumvioletred":"medium violet-red","midnightblue":"midnight blue","mintcream":"mint cream","mistyrose":"misty rose","moccasin":"moccasin","navajowhite":"navajo white","navy":"navy","oldlace":"old lace","olive":"olive","olivedrab":"olive drab","orange":"orange","orangered":"orange red","orchid":"orchid","palegoldenrod":"pale goldenrod","palegreen":"pale green","paleturquoise":"pale turquoise","palevioletred":"pale violet-red","papayawhip":"papaya whip","peachpuff":"peach puff","peru":"peru","pink":"pink","plum":"plum","powderblue":"powder blue","purple":"purple","red":"red","rosybrown":"rosy brown","royalblue":"royal blue","saddlebrown":"saddle brown","salmon":"salmon","sandybrown":"sandy brown","seagreen":"sea green","seashell":"seashell","sienna":"sienna","silver":"silver","skyblue":"sky blue","slateblue":"slate blue","slategray":"slate gray","slategrey":"slate gray","snow":"snow","springgreen":"spring green","steelblue":"steel blue","tan":"tan","teal":"teal","thistle":"thistle","tomato":"tomato","transparent":"transparent","turquoise":"turquoise","violet":"violet","wheat":"wheat","white":"white","whitesmoke":"white smoke","yellow":"yellow","yellowgreen":"yellow green"},"dijit/nls/loading":{"loadingState":"Loading...","errorState":"Sorry, an error occurred"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"},"dijit/form/nls/validate":{"invalidMessage":"The value entered is not valid.","missingMessage":"This value is required.","rangeMessage":"This value is out of range."},"dijit/form/nls/ComboBox":{"previousMessage":"Previous choices","nextMessage":"More choices"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤ #,##0.00","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000T","decimalFormat":"#,##0.###","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_ar.js b/lib/dojo/nls/tt-rss-layer_ar.js
index 727ea2bb5..662688065 100644
--- a/lib/dojo/nls/tt-rss-layer_ar.js
+++ b/lib/dojo/nls/tt-rss-layer_ar.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_ar",{"dijit/form/nls/validate":{"rangeMessage":"هذه القيمة ليس بالمدى الصحيح.","invalidMessage":"القيمة التي تم ادخالها غير صحيحة.","missingMessage":"يجب ادخال هذه القيمة."},"dijit/nls/loading":{"loadingState":"جاري التحميل...","errorState":"عفوا، حدث خطأ"},"dojo/nls/colors":{"lightsteelblue":"أزرق معدني فاتح","orangered":"أحمر مائل للبرتقالي","midnightblue":"أزرق بحري","cadetblue":"أزرق ملون بالرمادي","seashell":"أبيض مائل للأصفر فاتح","slategrey":"رمادي اردوازي","coral":"مرجاني","darkturquoise":"تركواز داكن","antiquewhite":"أبيض عتيق","mediumspringgreen":"أخضر ربيعي متوسط","transparent":"شفاف","salmon":"برتقالي وردي شاحب","darkgrey":"رمادي داكن","ivory":"عاجي","greenyellow":"أخضر مائل للأصفر","mistyrose":"وردي","lightsalmon":"فضي فاتح","silver":"فضي","dimgrey":"رمادي شاحب","orange":"برتقالي","white":"أبيض","navajowhite":"أبيض ملاحي","royalblue":"أزرق ملكي","deeppink":"أحمر وردي غامق","lime":"ليموني","oldlace":"برتقالي مائل للأصفر شاحب","chartreuse":"أخضر مائل للصفرة","darkcyan":"أزرق سماوي داكن","yellow":"أصفر","linen":"كتاني","olive":"أخضر زيتوني داكن","gold":"ذهبي","lawngreen":"أخضر بلون العشب","lightyellow":"أصفر فاتح","tan":"خمري","darkviolet":"بنفسجي داكن","lightslategrey":"رمادي اردوازي فاتح","grey":"رمادي","darkkhaki":"كاكي داكن","green":"أخضر","deepskyblue":"أزرق سماوي غامق","aqua":"أزرق مائي","sienna":"بني محروق","mintcream":"أصفر شاحب مائل للأخضر الزرعي","rosybrown":"بني وردي","mediumslateblue":"أزرق اردوازي متوسط","magenta":"أحمر قرمزي","lightseagreen":"أخضر مائل للأزرق فاتح","cyan":"أزرق سماوي","olivedrab":"أسود فاتح","darkgoldenrod":"أصفر ذهبي داكن","slateblue":"أزرق اردوازي","mediumaquamarine":"أزرق مائل للأخضر (زبرجد) متوسط","lavender":"أرجواني شاحب","mediumseagreen":"أخضر مائل للأزرق متوسط","maroon":"أحمر داكن","darkslategray":"رمادي اردوازي داكن","mediumturquoise":"تركواز متوسط","ghostwhite":"أبيض شفاف","darkblue":"أزرق داكن","mediumvioletred":"أحمر-بنفسجي متوسط","brown":"بني","lightgray":"رمادي فاتح","sandybrown":"بني مائل للصفرة","pink":"وردي","firebrick":"أصفر زاهي","indigo":"نيلي","snow":"أبيض ثلجي","darkorchid":"أرجواني داكن","turquoise":"تركواز","chocolate":"بني غامق","springgreen":"أخضر ربيعي","moccasin":"نحاسي أحمر","navy":"أزرق داكن","lemonchiffon":"أصفر شفاف","teal":"بترولي","floralwhite":"أبيض زهري","cornflowerblue":"أزرق عنبري","paleturquoise":"تركواز شاحب","purple":"ارجواني","gainsboro":"رمادي مائل للأزرق فاتح","plum":"أرجواني داكن","red":"أحمر","blue":"أزرق","forestgreen":"أخضر بلون أشجار الغابات","darkgreen":"أخضر داكن","honeydew":"أبيض مائل للأخضر","darkseagreen":"أخضر مائل للأزرق داكن","lightcoral":"مرجاني فاتح","palevioletred":"أحمر-بنفسجي شاحب","mediumpurple":"قرمزي متوسط","saddlebrown":"بني فاتح","darkmagenta":"قرمزي داكن","thistle":"ارجواني شاحب","whitesmoke":"دخان أبيض","wheat":"أخضر قمحي","violet":"بنفسجي","lightskyblue":"أزرق سماوي فاتح","goldenrod":"أصفر ذهبي","mediumblue":"أزرق متوسط","skyblue":"أزرق سماوي","crimson":"قرمزي","darksalmon":"فضي داكن","darkred":"أحمر داكن","darkslategrey":"رمادي اردوازي داكن","peru":"بني جملي","lightgrey":"رمادي فاتح","lightgoldenrodyellow":"أصفر ذهبي فاتح","blanchedalmond":"أخضر مائل للبياض","aliceblue":"أزرق فاتح","bisque":"أصفر برتقالي الى رمادي مصفر","slategray":"رمادي اردوازي","palegoldenrod":"أصفر ذهبي شاحب","darkorange":"برتقالي داكن","aquamarine":"أزرق مائل للأخضر (زبرجد)","lightgreen":"أخضر فاتح","burlywood":"خشبي","dodgerblue":"أزرق عنبري","darkgray":"رمادي داكن","lightcyan":"سماوي فاتح","powderblue":"أزرق مائل للأصفر","blueviolet":"أزرق-بنفسجي","orchid":"أرجواني فاتح","dimgray":"رمادي شاحب","beige":"بيج","fuchsia":"فوشيا","lavenderblush":"أحمر أرجواني","hotpink":"أحمر وردي زاهي","steelblue":"أزرق معدني","tomato":"أحمر مائل للأصفر","lightpink":"وردي فاتح","limegreen":"أخضر ليموني","indianred":"أحمر هندي","papayawhip":"خوخي فاتح","lightslategray":"رمادي اردوازي فاتح","gray":"رمادي","mediumorchid":"أرجواني متوسط","cornsilk":"حريري","black":"أسود","seagreen":"أخضر مائل للأزرق","darkslateblue":"أزرق اردوازي داكن","khaki":"كاكي","lightblue":"أزرق فاتح","palegreen":"أخضر شاحب","azure":"أزرق سماوي","peachpuff":"خوخي مائل للأصفر","darkolivegreen":"أخضر زيتوني داكن","yellowgreen":"أخضر مائل للأصفر"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":"؛","percentSign":"٪","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"ليس رقم","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"؉","group":"٬","percentFormat":"#,##0%","decimalFormat":"#,##0.###;#,##0.###-","decimal":"٫","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"اس"},"dijit/form/nls/ComboBox":{"previousMessage":"الاختيارات السابقة","nextMessage":"مزيد من الاختيارات"},"dijit/nls/common":{"buttonOk":"حسنا","buttonCancel":"الغاء","buttonSave":"حفظ","itemClose":"اغلاق"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_ar",{"dojo/nls/colors":{"aliceblue":"أزرق فاتح","antiquewhite":"أبيض عتيق","aqua":"أزرق مائي","aquamarine":"أزرق مائل للأخضر (زبرجد)","azure":"أزرق سماوي","beige":"بيج","bisque":"أصفر برتقالي الى رمادي مصفر","black":"أسود","blanchedalmond":"أخضر مائل للبياض","blue":"أزرق","blueviolet":"أزرق-بنفسجي","brown":"بني","burlywood":"خشبي","cadetblue":"أزرق ملون بالرمادي","chartreuse":"أخضر مائل للصفرة","chocolate":"بني غامق","coral":"مرجاني","cornflowerblue":"أزرق عنبري","cornsilk":"حريري","crimson":"قرمزي","cyan":"أزرق سماوي","darkblue":"أزرق داكن","darkcyan":"أزرق سماوي داكن","darkgoldenrod":"أصفر ذهبي داكن","darkgray":"رمادي داكن","darkgreen":"أخضر داكن","darkgrey":"رمادي داكن","darkkhaki":"كاكي داكن","darkmagenta":"قرمزي داكن","darkolivegreen":"أخضر زيتوني داكن","darkorange":"برتقالي داكن","darkorchid":"أرجواني داكن","darkred":"أحمر داكن","darksalmon":"فضي داكن","darkseagreen":"أخضر مائل للأزرق داكن","darkslateblue":"أزرق اردوازي داكن","darkslategray":"رمادي اردوازي داكن","darkslategrey":"رمادي اردوازي داكن","darkturquoise":"تركواز داكن","darkviolet":"بنفسجي داكن","deeppink":"أحمر وردي غامق","deepskyblue":"أزرق سماوي غامق","dimgray":"رمادي شاحب","dimgrey":"رمادي شاحب","dodgerblue":"أزرق عنبري","firebrick":"أصفر زاهي","floralwhite":"أبيض زهري","forestgreen":"أخضر بلون أشجار الغابات","fuchsia":"فوشيا","gainsboro":"رمادي مائل للأزرق فاتح","ghostwhite":"أبيض شفاف","gold":"ذهبي","goldenrod":"أصفر ذهبي","gray":"رمادي","green":"أخضر","greenyellow":"أخضر مائل للأصفر","grey":"رمادي","honeydew":"أبيض مائل للأخضر","hotpink":"أحمر وردي زاهي","indianred":"أحمر هندي","indigo":"نيلي","ivory":"عاجي","khaki":"كاكي","lavender":"أرجواني شاحب","lavenderblush":"أحمر أرجواني","lawngreen":"أخضر بلون العشب","lemonchiffon":"أصفر شفاف","lightblue":"أزرق فاتح","lightcoral":"مرجاني فاتح","lightcyan":"سماوي فاتح","lightgoldenrodyellow":"أصفر ذهبي فاتح","lightgray":"رمادي فاتح","lightgreen":"أخضر فاتح","lightgrey":"رمادي فاتح","lightpink":"وردي فاتح","lightsalmon":"فضي فاتح","lightseagreen":"أخضر مائل للأزرق فاتح","lightskyblue":"أزرق سماوي فاتح","lightslategray":"رمادي اردوازي فاتح","lightslategrey":"رمادي اردوازي فاتح","lightsteelblue":"أزرق معدني فاتح","lightyellow":"أصفر فاتح","lime":"ليموني","limegreen":"أخضر ليموني","linen":"كتاني","magenta":"أحمر قرمزي","maroon":"أحمر داكن","mediumaquamarine":"أزرق مائل للأخضر (زبرجد) متوسط","mediumblue":"أزرق متوسط","mediumorchid":"أرجواني متوسط","mediumpurple":"قرمزي متوسط","mediumseagreen":"أخضر مائل للأزرق متوسط","mediumslateblue":"أزرق اردوازي متوسط","mediumspringgreen":"أخضر ربيعي متوسط","mediumturquoise":"تركواز متوسط","mediumvioletred":"أحمر-بنفسجي متوسط","midnightblue":"أزرق بحري","mintcream":"أصفر شاحب مائل للأخضر الزرعي","mistyrose":"وردي","moccasin":"نحاسي أحمر","navajowhite":"أبيض ملاحي","navy":"أزرق داكن","oldlace":"برتقالي مائل للأصفر شاحب","olive":"أخضر زيتوني داكن","olivedrab":"أسود فاتح","orange":"برتقالي","orangered":"أحمر مائل للبرتقالي","orchid":"أرجواني فاتح","palegoldenrod":"أصفر ذهبي شاحب","palegreen":"أخضر شاحب","paleturquoise":"تركواز شاحب","palevioletred":"أحمر-بنفسجي شاحب","papayawhip":"خوخي فاتح","peachpuff":"خوخي مائل للأصفر","peru":"بني جملي","pink":"وردي","plum":"أرجواني داكن","powderblue":"أزرق مائل للأصفر","purple":"ارجواني","red":"أحمر","rosybrown":"بني وردي","royalblue":"أزرق ملكي","saddlebrown":"بني فاتح","salmon":"برتقالي وردي شاحب","sandybrown":"بني مائل للصفرة","seagreen":"أخضر مائل للأزرق","seashell":"أبيض مائل للأصفر فاتح","sienna":"بني محروق","silver":"فضي","skyblue":"أزرق سماوي","slateblue":"أزرق اردوازي","slategray":"رمادي اردوازي","slategrey":"رمادي اردوازي","snow":"أبيض ثلجي","springgreen":"أخضر ربيعي","steelblue":"أزرق معدني","tan":"خمري","teal":"بترولي","thistle":"ارجواني شاحب","tomato":"أحمر مائل للأصفر","transparent":"شفاف","turquoise":"تركواز","violet":"بنفسجي","wheat":"أخضر قمحي","white":"أبيض","whitesmoke":"دخان أبيض","yellow":"أصفر","yellowgreen":"أخضر مائل للأصفر"},"dijit/nls/loading":{"loadingState":"جاري التحميل...","errorState":"عفوا، حدث خطأ"},"dijit/nls/common":{"buttonOk":"حسنا","buttonCancel":"الغاء","buttonSave":"حفظ","itemClose":"اغلاق"},"dijit/form/nls/validate":{"invalidMessage":"القيمة التي تم ادخالها غير صحيحة.","missingMessage":"يجب ادخال هذه القيمة.","rangeMessage":"هذه القيمة ليس بالمدى الصحيح."},"dijit/form/nls/ComboBox":{"previousMessage":"الاختيارات السابقة","nextMessage":"مزيد من الاختيارات"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 ترليو","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000 تريليون","decimalFormat":"#,##0.###;#,##0.###-","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_ca.js b/lib/dojo/nls/tt-rss-layer_ca.js
index 434506914..b5a369d2b 100644
--- a/lib/dojo/nls/tt-rss-layer_ca.js
+++ b/lib/dojo/nls/tt-rss-layer_ca.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_ca",{"dijit/form/nls/validate":{"rangeMessage":"Aquest valor és fora de l'interval","invalidMessage":"El valor introduït no és vàlid","missingMessage":"Aquest valor és necessari"},"dijit/nls/loading":{"loadingState":"S'està carregant...","errorState":"Ens sap greu. S'ha produït un error."},"dojo/nls/colors":{"lightsteelblue":"blau acer clar","orangered":"taronja vermellós","midnightblue":"blau mitjanit","cadetblue":"blau marí","seashell":"petxina marina","slategrey":"gris pissarra","coral":"corall","darkturquoise":"turquesa fosc","antiquewhite":"blanc antic","mediumspringgreen":"verd primavera mitjà","transparent":"transparent","salmon":"salmó","darkgrey":"gris fosc","ivory":"marbre","greenyellow":"verd grogós","mistyrose":"rosa dens","lightsalmon":"salmó clar","silver":"argent","dimgrey":"gris fosc","orange":"taronja","white":"blanc","navajowhite":"blanc Navajo","royalblue":"blau marí intens","deeppink":"rosa profund","lime":"verd llimona","oldlace":"rosa cremós","chartreuse":"Llimona pàl·lid","darkcyan":"cian fosc","yellow":"groc","linen":"lli","olive":"oliva","gold":"daurat","lawngreen":"verd gespa","lightyellow":"groc clar","tan":"tan","darkviolet":"violeta fosc","lightslategrey":"gris pissarra clar","grey":"gris","darkkhaki":"caqui fosc","green":"verd","deepskyblue":"blau cel profund","aqua":"aigua","sienna":"siena","mintcream":"menta pàl·lid","rosybrown":"marró rosat","mediumslateblue":"blau pissarra mitjà","magenta":"magenta","lightseagreen":"verd marí clar","cyan":"cian","olivedrab":"gris oliva","darkgoldenrod":"ocre fosc","slateblue":"blau pissarra","mediumaquamarine":"aiguamarina mitjana","lavender":"lavanda","mediumseagreen":"verd marí mitjà","maroon":"marró vermellós","darkslategray":"gris pissarra fosc","mediumturquoise":"turquesa mitjana","ghostwhite":"blanc fantasma","darkblue":"blau fosc","mediumvioletred":"vermell violeta mitjà","brown":"marró","lightgray":"gris clar","sandybrown":"marró arenós","pink":"rosa","firebrick":"maó refractari","indigo":"índigo","snow":"neu","darkorchid":"orquídia fosc","turquoise":"turquesa","chocolate":"xocolata","springgreen":"verd de primavera","moccasin":"mocassí","navy":"blau marí","lemonchiffon":"groc brisa","teal":"verd blavós","floralwhite":"blanc floral","cornflowerblue":"blau blauet","paleturquoise":"turquesa pàl·lid","purple":"porpra","gainsboro":"gainsboro","plum":"pruna","red":"vermell","blue":"blau","forestgreen":"verd bosc","darkgreen":"verd fosc","honeydew":"rosada de mel","darkseagreen":"verd marí fosc","lightcoral":"corall clar","palevioletred":"vermell porpra pàl·lid","mediumpurple":"porpra mitjana","saddlebrown":"marró mitjà","darkmagenta":"magenta fosc","thistle":"card","whitesmoke":"blanc fumat","wheat":"blat","violet":"violeta","lightskyblue":"blau cel clar","goldenrod":"ocre","mediumblue":"blau mitjà","skyblue":"blau cel","crimson":"carmesí","darksalmon":"salmó fosc","darkred":"vermell fosc","darkslategrey":"gris pissarra fosc","peru":"Perú","lightgrey":"gris clar","lightgoldenrodyellow":"groc ocre clar","blanchedalmond":"ametlla pàl·lid","aliceblue":"blau cian clar","bisque":"crema","slategray":"gris pissarra","palegoldenrod":"ocre pàl·lid","darkorange":"taronja fosc","aquamarine":"aiguamarina","lightgreen":"verd clar","burlywood":"marró arenós","dodgerblue":"blau Dodger","darkgray":"gris fosc","lightcyan":"cian clar","powderblue":"blau grisós","blueviolet":"blau violeta","orchid":"orquídia","dimgray":"gris fosc","beige":"beix","fuchsia":"fúcsia","lavenderblush":"lavanda vermellosa","hotpink":"rosa fúcsia","steelblue":"blau acer","tomato":"tomàquet","lightpink":"rosa clar","limegreen":"verd llimona verda","indianred":"vermell indi","papayawhip":"préssec pastel","lightslategray":"gris pissarra clar","gray":"gris","mediumorchid":"orquídia mitjana","cornsilk":"cru","black":"negre","seagreen":"verd marí","darkslateblue":"blau pissarra fosc","khaki":"caqui","lightblue":"blau clar","palegreen":"verd pàl·lid","azure":"atzur","peachpuff":"préssec","darkolivegreen":"verd oliva fosc","yellowgreen":"verd grogós"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Opcions anteriors","nextMessage":"Més opcions"},"dijit/nls/common":{"buttonOk":"D'acord","buttonCancel":"Cancel·la","buttonSave":"Desa","itemClose":"Tanca"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_ca",{"dojo/nls/colors":{"aliceblue":"blau cian clar","antiquewhite":"blanc antic","aqua":"aigua","aquamarine":"aiguamarina","azure":"atzur","beige":"beix","bisque":"crema","black":"negre","blanchedalmond":"ametlla pàl·lid","blue":"blau","blueviolet":"blau violeta","brown":"marró","burlywood":"marró arenós","cadetblue":"blau marí","chartreuse":"Llimona pàl·lid","chocolate":"xocolata","coral":"corall","cornflowerblue":"blau blauet","cornsilk":"cru","crimson":"carmesí","cyan":"cian","darkblue":"blau fosc","darkcyan":"cian fosc","darkgoldenrod":"ocre fosc","darkgray":"gris fosc","darkgreen":"verd fosc","darkgrey":"gris fosc","darkkhaki":"caqui fosc","darkmagenta":"magenta fosc","darkolivegreen":"verd oliva fosc","darkorange":"taronja fosc","darkorchid":"orquídia fosc","darkred":"vermell fosc","darksalmon":"salmó fosc","darkseagreen":"verd marí fosc","darkslateblue":"blau pissarra fosc","darkslategray":"gris pissarra fosc","darkslategrey":"gris pissarra fosc","darkturquoise":"turquesa fosc","darkviolet":"violeta fosc","deeppink":"rosa profund","deepskyblue":"blau cel profund","dimgray":"gris fosc","dimgrey":"gris fosc","dodgerblue":"blau Dodger","firebrick":"maó refractari","floralwhite":"blanc floral","forestgreen":"verd bosc","fuchsia":"fúcsia","gainsboro":"gainsboro","ghostwhite":"blanc fantasma","gold":"daurat","goldenrod":"ocre","gray":"gris","green":"verd","greenyellow":"verd grogós","grey":"gris","honeydew":"rosada de mel","hotpink":"rosa fúcsia","indianred":"vermell indi","indigo":"índigo","ivory":"marbre","khaki":"caqui","lavender":"lavanda","lavenderblush":"lavanda vermellosa","lawngreen":"verd gespa","lemonchiffon":"groc brisa","lightblue":"blau clar","lightcoral":"corall clar","lightcyan":"cian clar","lightgoldenrodyellow":"groc ocre clar","lightgray":"gris clar","lightgreen":"verd clar","lightgrey":"gris clar","lightpink":"rosa clar","lightsalmon":"salmó clar","lightseagreen":"verd marí clar","lightskyblue":"blau cel clar","lightslategray":"gris pissarra clar","lightslategrey":"gris pissarra clar","lightsteelblue":"blau acer clar","lightyellow":"groc clar","lime":"verd llimona","limegreen":"verd llimona verda","linen":"lli","magenta":"magenta","maroon":"marró vermellós","mediumaquamarine":"aiguamarina mitjana","mediumblue":"blau mitjà","mediumorchid":"orquídia mitjana","mediumpurple":"porpra mitjana","mediumseagreen":"verd marí mitjà","mediumslateblue":"blau pissarra mitjà","mediumspringgreen":"verd primavera mitjà","mediumturquoise":"turquesa mitjana","mediumvioletred":"vermell violeta mitjà","midnightblue":"blau mitjanit","mintcream":"menta pàl·lid","mistyrose":"rosa dens","moccasin":"mocassí","navajowhite":"blanc Navajo","navy":"blau marí","oldlace":"rosa cremós","olive":"oliva","olivedrab":"gris oliva","orange":"taronja","orangered":"taronja vermellós","orchid":"orquídia","palegoldenrod":"ocre pàl·lid","palegreen":"verd pàl·lid","paleturquoise":"turquesa pàl·lid","palevioletred":"vermell porpra pàl·lid","papayawhip":"préssec pastel","peachpuff":"préssec","peru":"Perú","pink":"rosa","plum":"pruna","powderblue":"blau grisós","purple":"porpra","red":"vermell","rosybrown":"marró rosat","royalblue":"blau marí intens","saddlebrown":"marró mitjà","salmon":"salmó","sandybrown":"marró arenós","seagreen":"verd marí","seashell":"petxina marina","sienna":"siena","silver":"argent","skyblue":"blau cel","slateblue":"blau pissarra","slategray":"gris pissarra","slategrey":"gris pissarra","snow":"neu","springgreen":"verd de primavera","steelblue":"blau acer","tan":"tan","teal":"verd blavós","thistle":"card","tomato":"tomàquet","transparent":"transparent","turquoise":"turquesa","violet":"violeta","wheat":"blat","white":"blanc","whitesmoke":"blanc fumat","yellow":"groc","yellowgreen":"verd grogós"},"dijit/nls/loading":{"loadingState":"S'està carregant...","errorState":"Ens sap greu. S'ha produït un error."},"dijit/nls/common":{"buttonOk":"D'acord","buttonCancel":"Cancel·la","buttonSave":"Desa","itemClose":"Tanca"},"dijit/form/nls/validate":{"invalidMessage":"El valor introduït no és vàlid","missingMessage":"Aquest valor és necessari","rangeMessage":"Aquest valor és fora de l'interval"},"dijit/form/nls/ComboBox":{"previousMessage":"Opcions anteriors","nextMessage":"Més opcions"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 B","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤#,##0.00;(¤#,##0.00)","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat-long":"000 bilions","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_cs.js b/lib/dojo/nls/tt-rss-layer_cs.js
index be91c7d70..5e6009bf6 100644
--- a/lib/dojo/nls/tt-rss-layer_cs.js
+++ b/lib/dojo/nls/tt-rss-layer_cs.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_cs",{"dijit/form/nls/validate":{"rangeMessage":"Tato hodnota je mimo rozsah.","invalidMessage":"Zadaná hodnota není platná.","missingMessage":"Tato hodnota je vyžadována."},"dijit/nls/loading":{"loadingState":"Probíhá načítání...","errorState":"Omlouváme se, došlo k chybě"},"dojo/nls/colors":{"lightsteelblue":"světlá ocelová modrá","orangered":"oranžovočervená","midnightblue":"temně modrá","cadetblue":"šedomodrá","seashell":"lasturová","slategrey":"břidlicová šedá","coral":"korálová červená","darkturquoise":"tmavě tyrkysová","antiquewhite":"krémově bílá","mediumspringgreen":"střední jarní zelená","transparent":"průhledná","salmon":"lososová","darkgrey":"tmavě šedá","ivory":"slonovinová","greenyellow":"zelenožlutá","mistyrose":"růžovobílá","lightsalmon":"světle lososová","silver":"stříbrná","dimgrey":"kouřově šedá","orange":"oranžová","white":"bílá","navajowhite":"světle krémová","royalblue":"královská modrá","deeppink":"sytě růžová","lime":"limetková","oldlace":"světle béžová","chartreuse":"chartreuska","darkcyan":"tmavě azurová","yellow":"žlutá","linen":"bledě šedobéžová","olive":"olivová","gold":"zlatá","lawngreen":"jasně zelená","lightyellow":"bledě žlutá","tan":"šedobéžová","darkviolet":"tmavě fialová","lightslategrey":"světlá břidlicová šedá","grey":"šedá","darkkhaki":"pískově hnědá","green":"zelená","deepskyblue":"sytá nebeská modrá","aqua":"azurová","sienna":"siena","mintcream":"mentolová","rosybrown":"růžovohnědá","mediumslateblue":"střední břidlicová modrá","magenta":"purpurová","lightseagreen":"světlá mořská zelená","cyan":"azurová","olivedrab":"khaki","darkgoldenrod":"tmavě béžová","slateblue":"břidlicová modrá","mediumaquamarine":"střední akvamarínová","lavender":"levandulová","mediumseagreen":"střední mořská zelená","maroon":"kaštanová","darkslategray":"tmavá břidlicová šedá","mediumturquoise":"středně tyrkysová","ghostwhite":"modravě bílá","darkblue":"tmavě modrá","mediumvioletred":"středně fialovočervená","brown":"červenohnědá","lightgray":"světle šedá","sandybrown":"oranžovohnědá","pink":"růžová","firebrick":"cihlová","indigo":"indigově modrá","snow":"sněhobílá","darkorchid":"tmavě orchidejová","turquoise":"tyrkysová","chocolate":"hnědobéžová","springgreen":"jarní zelená","moccasin":"bledě krémová","navy":"námořnická modrá","lemonchiffon":"světle citrónová","teal":"šedozelená","floralwhite":"květinově bílá","cornflowerblue":"chrpově modrá","paleturquoise":"bledě tyrkysová","purple":"nachová","gainsboro":"bledě šedá","plum":"švestková","red":"červená","blue":"modrá","forestgreen":"lesní zelená","darkgreen":"tmavě zelená","honeydew":"nazelenalá","darkseagreen":"tmavá mořská zelená","lightcoral":"světle korálová","palevioletred":"bledě fialovočervená","mediumpurple":"středně nachová","saddlebrown":"hnědá","darkmagenta":"tmavě purpurová","thistle":"bodláková","whitesmoke":"kouřově bílá","wheat":"zlatohnědá","violet":"fialová","lightskyblue":"světlá nebeská modrá","goldenrod":"béžová","mediumblue":"středně modrá","skyblue":"nebeská modrá","crimson":"karmínová","darksalmon":"tmavě lososová","darkred":"tmavě červená","darkslategrey":"tmavá břidlicová šedá","peru":"karamelová","lightgrey":"světle šedá","lightgoldenrodyellow":"světle žlutá","blanchedalmond":"mandlová","aliceblue":"modravá","bisque":"bledě oranžová","slategray":"břidlicová šedá","palegoldenrod":"bledě písková","darkorange":"tmavě oranžová","aquamarine":"akvamarínová","lightgreen":"světle zelená","burlywood":"krémová","dodgerblue":"jasně modrá","darkgray":"tmavě šedá","lightcyan":"světle azurová","powderblue":"bledě modrá","blueviolet":"modrofialová","orchid":"orchidejová","dimgray":"kouřově šedá","beige":"bledě béžová","fuchsia":"fuchsiová","lavenderblush":"levandulová růžová","hotpink":"jasně růžová","steelblue":"ocelová modrá","tomato":"tomatová","lightpink":"světle růžová","limegreen":"limetkově zelená","indianred":"indiánská červená","papayawhip":"papájová","lightslategray":"světlá břidlicová šedá","gray":"šedá","mediumorchid":"středně orchidejová","cornsilk":"režná","black":"černá","seagreen":"mořská zelená","darkslateblue":"tmavá břidlicová modrá","khaki":"písková","lightblue":"světle modrá","palegreen":"bledě zelená","azure":"bledě azurová","peachpuff":"broskvová","darkolivegreen":"tmavě olivová","yellowgreen":"žlutozelená"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Předchozí volby","nextMessage":"Další volby"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Storno","buttonSave":"Uložit","itemClose":"Zavřít"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_cs",{"dojo/nls/colors":{"aliceblue":"modravá","antiquewhite":"krémově bílá","aqua":"azurová","aquamarine":"akvamarínová","azure":"bledě azurová","beige":"bledě béžová","bisque":"bledě oranžová","black":"černá","blanchedalmond":"mandlová","blue":"modrá","blueviolet":"modrofialová","brown":"červenohnědá","burlywood":"krémová","cadetblue":"šedomodrá","chartreuse":"chartreuska","chocolate":"hnědobéžová","coral":"korálová červená","cornflowerblue":"chrpově modrá","cornsilk":"režná","crimson":"karmínová","cyan":"azurová","darkblue":"tmavě modrá","darkcyan":"tmavě azurová","darkgoldenrod":"tmavě béžová","darkgray":"tmavě šedá","darkgreen":"tmavě zelená","darkgrey":"tmavě šedá","darkkhaki":"pískově hnědá","darkmagenta":"tmavě purpurová","darkolivegreen":"tmavě olivová","darkorange":"tmavě oranžová","darkorchid":"tmavě orchidejová","darkred":"tmavě červená","darksalmon":"tmavě lososová","darkseagreen":"tmavá mořská zelená","darkslateblue":"tmavá břidlicová modrá","darkslategray":"tmavá břidlicová šedá","darkslategrey":"tmavá břidlicová šedá","darkturquoise":"tmavě tyrkysová","darkviolet":"tmavě fialová","deeppink":"sytě růžová","deepskyblue":"sytá nebeská modrá","dimgray":"kouřově šedá","dimgrey":"kouřově šedá","dodgerblue":"jasně modrá","firebrick":"cihlová","floralwhite":"květinově bílá","forestgreen":"lesní zelená","fuchsia":"fuchsiová","gainsboro":"bledě šedá","ghostwhite":"modravě bílá","gold":"zlatá","goldenrod":"béžová","gray":"šedá","green":"zelená","greenyellow":"zelenožlutá","grey":"šedá","honeydew":"nazelenalá","hotpink":"jasně růžová","indianred":"indiánská červená","indigo":"indigově modrá","ivory":"slonovinová","khaki":"písková","lavender":"levandulová","lavenderblush":"levandulová růžová","lawngreen":"jasně zelená","lemonchiffon":"světle citrónová","lightblue":"světle modrá","lightcoral":"světle korálová","lightcyan":"světle azurová","lightgoldenrodyellow":"světle žlutá","lightgray":"světle šedá","lightgreen":"světle zelená","lightgrey":"světle šedá","lightpink":"světle růžová","lightsalmon":"světle lososová","lightseagreen":"světlá mořská zelená","lightskyblue":"světlá nebeská modrá","lightslategray":"světlá břidlicová šedá","lightslategrey":"světlá břidlicová šedá","lightsteelblue":"světlá ocelová modrá","lightyellow":"bledě žlutá","lime":"limetková","limegreen":"limetkově zelená","linen":"bledě šedobéžová","magenta":"purpurová","maroon":"kaštanová","mediumaquamarine":"střední akvamarínová","mediumblue":"středně modrá","mediumorchid":"středně orchidejová","mediumpurple":"středně nachová","mediumseagreen":"střední mořská zelená","mediumslateblue":"střední břidlicová modrá","mediumspringgreen":"střední jarní zelená","mediumturquoise":"středně tyrkysová","mediumvioletred":"středně fialovočervená","midnightblue":"temně modrá","mintcream":"mentolová","mistyrose":"růžovobílá","moccasin":"bledě krémová","navajowhite":"světle krémová","navy":"námořnická modrá","oldlace":"světle béžová","olive":"olivová","olivedrab":"khaki","orange":"oranžová","orangered":"oranžovočervená","orchid":"orchidejová","palegoldenrod":"bledě písková","palegreen":"bledě zelená","paleturquoise":"bledě tyrkysová","palevioletred":"bledě fialovočervená","papayawhip":"papájová","peachpuff":"broskvová","peru":"karamelová","pink":"růžová","plum":"švestková","powderblue":"bledě modrá","purple":"nachová","red":"červená","rosybrown":"růžovohnědá","royalblue":"královská modrá","saddlebrown":"hnědá","salmon":"lososová","sandybrown":"oranžovohnědá","seagreen":"mořská zelená","seashell":"lasturová","sienna":"siena","silver":"stříbrná","skyblue":"nebeská modrá","slateblue":"břidlicová modrá","slategray":"břidlicová šedá","slategrey":"břidlicová šedá","snow":"sněhobílá","springgreen":"jarní zelená","steelblue":"ocelová modrá","tan":"šedobéžová","teal":"šedozelená","thistle":"bodláková","tomato":"tomatová","transparent":"průhledná","turquoise":"tyrkysová","violet":"fialová","wheat":"zlatohnědá","white":"bílá","whitesmoke":"kouřově bílá","yellow":"žlutá","yellowgreen":"žlutozelená"},"dijit/nls/loading":{"loadingState":"Probíhá načítání...","errorState":"Omlouváme se, došlo k chybě"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Storno","buttonSave":"Uložit","itemClose":"Zavřít"},"dijit/form/nls/validate":{"invalidMessage":"Zadaná hodnota není platná.","missingMessage":"Tato hodnota je vyžadována.","rangeMessage":"Tato hodnota je mimo rozsah."},"dijit/form/nls/ComboBox":{"previousMessage":"Předchozí volby","nextMessage":"Další volby"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 bil'.'","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat-long":"000 bilionů","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_da.js b/lib/dojo/nls/tt-rss-layer_da.js
index 39661f674..486bcbcaf 100644
--- a/lib/dojo/nls/tt-rss-layer_da.js
+++ b/lib/dojo/nls/tt-rss-layer_da.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_da",{"dijit/form/nls/validate":{"rangeMessage":"Værdien er uden for intervallet.","invalidMessage":"Den angivne værdi er ikke gyldig.","missingMessage":"Værdien er påkrævet."},"dijit/nls/loading":{"loadingState":"Indlæser...","errorState":"Der er opstået en fejl"},"dojo/nls/colors":{"lightsteelblue":"lys stålblå","orangered":"orangerød","midnightblue":"midnatsblå","cadetblue":"kadetblå","seashell":"muslingeskal","slategrey":"skifergrå","coral":"koralrød","darkturquoise":"mørk turkis","antiquewhite":"antikhvid","mediumspringgreen":"mellemforårsgrøn","transparent":"transparent","salmon":"laksefarvet","darkgrey":"mørkegrå","ivory":"elfenben","greenyellow":"grøngul","mistyrose":"blegrosa","lightsalmon":"lys laksefarvet","silver":"sølv","dimgrey":"svag grå","orange":"orange","white":"hvid","navajowhite":"navajo-hvid","royalblue":"kongeblå","deeppink":"dyb pink","lime":"lime","oldlace":"kniplingshvid","chartreuse":"chartreuse","darkcyan":"mørk cyan","yellow":"gul","linen":"lærred","olive":"olivengrøn","gold":"guld","lawngreen":"græsgrøn","lightyellow":"lysegul","tan":"tan","darkviolet":"mørkelilla","lightslategrey":"lys skifergrå","grey":"grå","darkkhaki":"mørk khaki","green":"grøn","deepskyblue":"dyb himmelblå","aqua":"akvablå","sienna":"sienna","mintcream":"pebermyntecreme","rosybrown":"rosabrun","mediumslateblue":"mellemskiferblå","magenta":"magenta","lightseagreen":"lys havgrøn","cyan":"cyan","olivedrab":"brungrøn","darkgoldenrod":"mørk gyldenris","slateblue":"skiferblå","mediumaquamarine":"mellem akvamarin","lavender":"lysviolet","mediumseagreen":"mellemhavgrøn","maroon":"rødbrun","darkslategray":"mørk skifergrå","mediumturquoise":"mellemturkis","ghostwhite":"spøgelseshvid","darkblue":"mørkeblå","mediumvioletred":"mellemviolet","brown":"brun","lightgray":"lysegrå","sandybrown":"sandbrun","pink":"pink","firebrick":"chamottesten","indigo":"indigo","snow":"sne","darkorchid":"mørk orkide","turquoise":"turkis","chocolate":"rust","springgreen":"forårsgrøn","moccasin":"fruesko","navy":"marineblå","lemonchiffon":"citronfromage","teal":"blågrøn","floralwhite":"blomsterhvid","cornflowerblue":"kornblomstblå","paleturquoise":"bleg turkis","purple":"lilla","gainsboro":"gainsboro","plum":"blomme","red":"rød","blue":"blå","forestgreen":"skovgrøn","darkgreen":"mørkegrøn","honeydew":"honningdug","darkseagreen":"mørk havgrøn","lightcoral":"lys koralrød","palevioletred":"blegviolet","mediumpurple":"mellemlilla","saddlebrown":"saddelbrun","darkmagenta":"mørk magenta","thistle":"tidsel","whitesmoke":"hvid røg","wheat":"korngul","violet":"lilla","lightskyblue":"lys himmelblå","goldenrod":"gyldenris","mediumblue":"mellemblå","skyblue":"himmelblå","crimson":"blodrød","darksalmon":"mørk laksefarvet","darkred":"mørkerød","darkslategrey":"mørk skifergrå","peru":"peru","lightgrey":"lysegrå","lightgoldenrodyellow":"lys gyldenrisgul","blanchedalmond":"blanceret mandel","aliceblue":"babyblå","bisque":"gulgrå","slategray":"skifergrå","palegoldenrod":"bleg gyldenris","darkorange":"mørk orange","aquamarine":"akvamarin","lightgreen":"lysegrøn","burlywood":"tobak","dodgerblue":"dodgerblå","darkgray":"mørkegrå","lightcyan":"lys cyan","powderblue":"pudderblå","blueviolet":"blåviolet","orchid":"orkide","dimgray":"svag grå","beige":"beige","fuchsia":"lyslilla","lavenderblush":"lavendelrød","hotpink":"mørk rosa","steelblue":"metalblå","tomato":"tomat","lightpink":"lys pink","limegreen":"limegrøn","indianred":"lys rødbrun","papayawhip":"papaya","lightslategray":"lys skifergrå","gray":"grå","mediumorchid":"mellem orkide","cornsilk":"majs","black":"sort","seagreen":"havgrøn","darkslateblue":"mørk skiferblå","khaki":"khaki","lightblue":"lyseblå","palegreen":"bleggrøn","azure":"azurblå","peachpuff":"fersken","darkolivegreen":"mørk olivengrøn","yellowgreen":"gulgrøn"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":",","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":".","percentFormat":"#,##0 %","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Forrige valg","nextMessage":"Flere valg"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Annullér","buttonSave":"Gem","itemClose":"Luk"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_da",{"dojo/nls/colors":{"aliceblue":"babyblå","antiquewhite":"antikhvid","aqua":"akvablå","aquamarine":"akvamarin","azure":"azurblå","beige":"beige","bisque":"gulgrå","black":"sort","blanchedalmond":"blanceret mandel","blue":"blå","blueviolet":"blåviolet","brown":"brun","burlywood":"tobak","cadetblue":"kadetblå","chartreuse":"chartreuse","chocolate":"rust","coral":"koralrød","cornflowerblue":"kornblomstblå","cornsilk":"majs","crimson":"blodrød","cyan":"cyan","darkblue":"mørkeblå","darkcyan":"mørk cyan","darkgoldenrod":"mørk gyldenris","darkgray":"mørkegrå","darkgreen":"mørkegrøn","darkgrey":"mørkegrå","darkkhaki":"mørk khaki","darkmagenta":"mørk magenta","darkolivegreen":"mørk olivengrøn","darkorange":"mørk orange","darkorchid":"mørk orkide","darkred":"mørkerød","darksalmon":"mørk laksefarvet","darkseagreen":"mørk havgrøn","darkslateblue":"mørk skiferblå","darkslategray":"mørk skifergrå","darkslategrey":"mørk skifergrå","darkturquoise":"mørk turkis","darkviolet":"mørkelilla","deeppink":"dyb pink","deepskyblue":"dyb himmelblå","dimgray":"svag grå","dimgrey":"svag grå","dodgerblue":"dodgerblå","firebrick":"chamottesten","floralwhite":"blomsterhvid","forestgreen":"skovgrøn","fuchsia":"lyslilla","gainsboro":"gainsboro","ghostwhite":"spøgelseshvid","gold":"guld","goldenrod":"gyldenris","gray":"grå","green":"grøn","greenyellow":"grøngul","grey":"grå","honeydew":"honningdug","hotpink":"mørk rosa","indianred":"lys rødbrun","indigo":"indigo","ivory":"elfenben","khaki":"khaki","lavender":"lysviolet","lavenderblush":"lavendelrød","lawngreen":"græsgrøn","lemonchiffon":"citronfromage","lightblue":"lyseblå","lightcoral":"lys koralrød","lightcyan":"lys cyan","lightgoldenrodyellow":"lys gyldenrisgul","lightgray":"lysegrå","lightgreen":"lysegrøn","lightgrey":"lysegrå","lightpink":"lys pink","lightsalmon":"lys laksefarvet","lightseagreen":"lys havgrøn","lightskyblue":"lys himmelblå","lightslategray":"lys skifergrå","lightslategrey":"lys skifergrå","lightsteelblue":"lys stålblå","lightyellow":"lysegul","lime":"lime","limegreen":"limegrøn","linen":"lærred","magenta":"magenta","maroon":"rødbrun","mediumaquamarine":"mellem akvamarin","mediumblue":"mellemblå","mediumorchid":"mellem orkide","mediumpurple":"mellemlilla","mediumseagreen":"mellemhavgrøn","mediumslateblue":"mellemskiferblå","mediumspringgreen":"mellemforårsgrøn","mediumturquoise":"mellemturkis","mediumvioletred":"mellemviolet","midnightblue":"midnatsblå","mintcream":"pebermyntecreme","mistyrose":"blegrosa","moccasin":"fruesko","navajowhite":"navajo-hvid","navy":"marineblå","oldlace":"kniplingshvid","olive":"olivengrøn","olivedrab":"brungrøn","orange":"orange","orangered":"orangerød","orchid":"orkide","palegoldenrod":"bleg gyldenris","palegreen":"bleggrøn","paleturquoise":"bleg turkis","palevioletred":"blegviolet","papayawhip":"papaya","peachpuff":"fersken","peru":"peru","pink":"pink","plum":"blomme","powderblue":"pudderblå","purple":"lilla","red":"rød","rosybrown":"rosabrun","royalblue":"kongeblå","saddlebrown":"saddelbrun","salmon":"laksefarvet","sandybrown":"sandbrun","seagreen":"havgrøn","seashell":"muslingeskal","sienna":"sienna","silver":"sølv","skyblue":"himmelblå","slateblue":"skiferblå","slategray":"skifergrå","slategrey":"skifergrå","snow":"sne","springgreen":"forårsgrøn","steelblue":"metalblå","tan":"tan","teal":"blågrøn","thistle":"tidsel","tomato":"tomat","transparent":"transparent","turquoise":"turkis","violet":"lilla","wheat":"korngul","white":"hvid","whitesmoke":"hvid røg","yellow":"gul","yellowgreen":"gulgrøn"},"dijit/nls/loading":{"loadingState":"Indlæser...","errorState":"Der er opstået en fejl"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Annullér","buttonSave":"Gem","itemClose":"Luk"},"dijit/form/nls/validate":{"invalidMessage":"Den angivne værdi er ugyldig.","missingMessage":"Værdien er påkrævet.","rangeMessage":"Værdien er uden for intervallet."},"dijit/form/nls/ComboBox":{"previousMessage":"Forrige valg","nextMessage":"Flere valg"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":",","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 bill","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":".","percentFormat":"#,##0 %","decimalFormat-long":"000 billioner","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_de-de.js b/lib/dojo/nls/tt-rss-layer_de-de.js
deleted file mode 100644
index f29ec7ce4..000000000
--- a/lib/dojo/nls/tt-rss-layer_de-de.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
- Available via Academic Free License >= 2.1 OR the modified BSD license.
- see: http://dojotoolkit.org/license for details
-*/
-
-//>>built
-define("dojo/nls/tt-rss-layer_de-de",{"dijit/form/nls/validate":{"rangeMessage":"Dieser Wert liegt außerhalb des gültigen Bereichs. ","invalidMessage":"Der eingegebene Wert ist ungültig. ","missingMessage":"Dieser Wert ist erforderlich."},"dijit/nls/loading":{"loadingState":"Wird geladen...","errorState":"Es ist ein Fehler aufgetreten."},"dojo/nls/colors":{"lightsteelblue":"Helles Stahlblau","orangered":"Orangerot","midnightblue":"Mitternachtblau","cadetblue":"Kadettenblau","seashell":"Muschelweiß","slategrey":"Schiefergrau","coral":"Koralle","darkturquoise":"Dunkeltürkis","antiquewhite":"Antikweiß","mediumspringgreen":"Mittelfrühlingsgrün","transparent":"Transparent","salmon":"Lachs","darkgrey":"Dunkelgrau","ivory":"Elfenbein","greenyellow":"Grüngelb","mistyrose":"Blassrose","lightsalmon":"Helllachs","silver":"Silbergrau","dimgrey":"Blassgrau","orange":"Orange","white":"Weiß","navajowhite":"Navajo-weiß","royalblue":"Königsblau","deeppink":"Tiefrosa","lime":"Limone","oldlace":"Alte Spitze","chartreuse":"Helles Gelbgrün","darkcyan":"Dunkelzyan","yellow":"Gelb","linen":"Leinen","olive":"Oliv","gold":"Gold","lawngreen":"Grasgrün","lightyellow":"Hellgelb","tan":"Hautfarben","darkviolet":"Dunkelviolett","lightslategrey":"Helles Schiefergrau","grey":"Grau","darkkhaki":"Dunkelkhaki","green":"Grün","deepskyblue":"Dunkles Himmelblau","aqua":"Wasserblau","sienna":"Sienna","mintcream":"Mintcreme","rosybrown":"Rosigbraun","mediumslateblue":"Mittelschieferblau ","magenta":"Magenta","lightseagreen":"Helles Meergrün","cyan":"Zyan","olivedrab":"Olivgrau","darkgoldenrod":"Dunkelgoldgelb","slateblue":"Schieferblau","mediumaquamarine":"Mittelaquamarin","lavender":"Lavendelblau","mediumseagreen":"Mittelmeeresgrün","maroon":"Kastanienbraun","darkslategray":"Dunkelschiefergrau","mediumturquoise":"Mitteltürkis ","ghostwhite":"Geisterweiß","darkblue":"Dunkelblau","mediumvioletred":"Mittelviolettrot ","brown":"Braun","lightgray":"Hellgrau","sandybrown":"Sandbraun","pink":"Rosa","firebrick":"Schamottestein","indigo":"Indigoblau","snow":"Schneeweiß","darkorchid":"Dunkelorchidee","turquoise":"Türkis","chocolate":"Schokoladenbraun","springgreen":"Frühlingsgrün","moccasin":"Mokassin","navy":"Marineblau","lemonchiffon":"Zitronenchiffon","teal":"Smaragdgrün","floralwhite":"Blütenweiß","cornflowerblue":"Kornblumenblau","paleturquoise":"Blasstürkis","purple":"Purpurrot","gainsboro":"Gainsboro","plum":"Pflaume","red":"Rot","blue":"Blau","forestgreen":"Forstgrün","darkgreen":"Dunkelgrün","honeydew":"Honigtau","darkseagreen":"Dunkles Meergrün","lightcoral":"Hellkoralle","palevioletred":"Blassviolettrot ","mediumpurple":"Mittelpurpur","saddlebrown":"Sattelbraun","darkmagenta":"Dunkelmagenta","thistle":"Distel","whitesmoke":"Rauchweiß","wheat":"Weizen","violet":"Violett","lightskyblue":"Helles Himmelblau","goldenrod":"Goldgelb","mediumblue":"Mittelblau","skyblue":"Himmelblau","crimson":"Karmesinrot","darksalmon":"Dunkellachs","darkred":"Dunkelrot","darkslategrey":"Dunkelschiefergrau","peru":"Peru","lightgrey":"Hellgrau","lightgoldenrodyellow":"Hellgoldgelb","blanchedalmond":"Mandelweiß","aliceblue":"Alice-blau","bisque":"Bisquit","slategray":"Schiefergrau","palegoldenrod":"Blassgoldgelb","darkorange":"Dunkelorange","aquamarine":"Aquamarin","lightgreen":"Hellgrün","burlywood":"Burlywood","dodgerblue":"Dodger-blau","darkgray":"Dunkelgrau","lightcyan":"Hellzyan","powderblue":"Pulverblau","blueviolet":"Blauviolett","orchid":"Orchidee","dimgray":"Blassgrau","beige":"Beige","fuchsia":"Fuchsia","lavenderblush":"Lavendelhauch","hotpink":"Knallrosa","steelblue":"Stahlblau","tomato":"Tomatenrot","lightpink":"Hellrosa","limegreen":"Limonengrün","indianred":"Indischrot","papayawhip":"Papayacreme","lightslategray":"Helles Schiefergrau","gray":"Grau","mediumorchid":"Mittelorchidee","cornsilk":"Kornseide","black":"Schwarz","seagreen":"Meeresgrün","darkslateblue":"Dunkelschieferblau","khaki":"Khaki","lightblue":"Hellblau","palegreen":"Blassgrün","azure":"Azur","peachpuff":"Pfirsich","darkolivegreen":"Dunkelolivgrün","yellowgreen":"Gelbgrün"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":".","percentFormat":"#,##0 %","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Vorherige Auswahl","nextMessage":"Weitere Auswahlmöglichkeiten"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Abbrechen","buttonSave":"Speichern","itemClose":"Schließen"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_de.js b/lib/dojo/nls/tt-rss-layer_de.js
new file mode 100644
index 000000000..b39517c73
--- /dev/null
+++ b/lib/dojo/nls/tt-rss-layer_de.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/nls/tt-rss-layer_de",{"dojo/nls/colors":{"aliceblue":"Alice-blau","antiquewhite":"Antikweiß","aqua":"Wasserblau","aquamarine":"Aquamarin","azure":"Azur","beige":"Beige","bisque":"Bisquit","black":"Schwarz","blanchedalmond":"Mandelweiß","blue":"Blau","blueviolet":"Blauviolett","brown":"Braun","burlywood":"Burlywood","cadetblue":"Kadettenblau","chartreuse":"Helles Gelbgrün","chocolate":"Schokoladenbraun","coral":"Koralle","cornflowerblue":"Kornblumenblau","cornsilk":"Kornseide","crimson":"Karmesinrot","cyan":"Zyan","darkblue":"Dunkelblau","darkcyan":"Dunkelzyan","darkgoldenrod":"Dunkelgoldgelb","darkgray":"Dunkelgrau","darkgreen":"Dunkelgrün","darkgrey":"Dunkelgrau","darkkhaki":"Dunkelkhaki","darkmagenta":"Dunkelmagenta","darkolivegreen":"Dunkelolivgrün","darkorange":"Dunkelorange","darkorchid":"Dunkelorchidee","darkred":"Dunkelrot","darksalmon":"Dunkellachs","darkseagreen":"Dunkles Meergrün","darkslateblue":"Dunkelschieferblau","darkslategray":"Dunkelschiefergrau","darkslategrey":"Dunkelschiefergrau","darkturquoise":"Dunkeltürkis","darkviolet":"Dunkelviolett","deeppink":"Tiefrosa","deepskyblue":"Dunkles Himmelblau","dimgray":"Blassgrau","dimgrey":"Blassgrau","dodgerblue":"Dodger-blau","firebrick":"Schamottestein","floralwhite":"Blütenweiß","forestgreen":"Forstgrün","fuchsia":"Fuchsia","gainsboro":"Gainsboro","ghostwhite":"Geisterweiß","gold":"Gold","goldenrod":"Goldgelb","gray":"Grau","green":"Grün","greenyellow":"Grüngelb","grey":"Grau","honeydew":"Honigtau","hotpink":"Knallrosa","indianred":"Indischrot","indigo":"Indigoblau","ivory":"Elfenbein","khaki":"Khaki","lavender":"Lavendelblau","lavenderblush":"Lavendelhauch","lawngreen":"Grasgrün","lemonchiffon":"Zitronenchiffon","lightblue":"Hellblau","lightcoral":"Hellkoralle","lightcyan":"Hellzyan","lightgoldenrodyellow":"Hellgoldgelb","lightgray":"Hellgrau","lightgreen":"Hellgrün","lightgrey":"Hellgrau","lightpink":"Hellrosa","lightsalmon":"Helllachs","lightseagreen":"Helles Meergrün","lightskyblue":"Helles Himmelblau","lightslategray":"Helles Schiefergrau","lightslategrey":"Helles Schiefergrau","lightsteelblue":"Helles Stahlblau","lightyellow":"Hellgelb","lime":"Limone","limegreen":"Limonengrün","linen":"Leinen","magenta":"Magenta","maroon":"Kastanienbraun","mediumaquamarine":"Mittelaquamarin","mediumblue":"Mittelblau","mediumorchid":"Mittelorchidee","mediumpurple":"Mittelpurpur","mediumseagreen":"Mittelmeeresgrün","mediumslateblue":"Mittelschieferblau ","mediumspringgreen":"Mittelfrühlingsgrün","mediumturquoise":"Mitteltürkis ","mediumvioletred":"Mittelviolettrot ","midnightblue":"Mitternachtblau","mintcream":"Mintcreme","mistyrose":"Blassrose","moccasin":"Mokassin","navajowhite":"Navajo-weiß","navy":"Marineblau","oldlace":"Alte Spitze","olive":"Oliv","olivedrab":"Olivgrau","orange":"Orange","orangered":"Orangerot","orchid":"Orchidee","palegoldenrod":"Blassgoldgelb","palegreen":"Blassgrün","paleturquoise":"Blasstürkis","palevioletred":"Blassviolettrot ","papayawhip":"Papayacreme","peachpuff":"Pfirsich","peru":"Peru","pink":"Rosa","plum":"Pflaume","powderblue":"Pulverblau","purple":"Purpurrot","red":"Rot","rosybrown":"Rosigbraun","royalblue":"Königsblau","saddlebrown":"Sattelbraun","salmon":"Lachs","sandybrown":"Sandbraun","seagreen":"Meeresgrün","seashell":"Muschelweiß","sienna":"Sienna","silver":"Silbergrau","skyblue":"Himmelblau","slateblue":"Schieferblau","slategray":"Schiefergrau","slategrey":"Schiefergrau","snow":"Schneeweiß","springgreen":"Frühlingsgrün","steelblue":"Stahlblau","tan":"Hautfarben","teal":"Smaragdgrün","thistle":"Distel","tomato":"Tomatenrot","transparent":"Transparent","turquoise":"Türkis","violet":"Violett","wheat":"Weizen","white":"Weiß","whitesmoke":"Rauchweiß","yellow":"Gelb","yellowgreen":"Gelbgrün"},"dijit/nls/loading":{"loadingState":"Wird geladen...","errorState":"Es ist ein Fehler aufgetreten."},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Abbrechen","buttonSave":"Speichern","itemClose":"Schließen"},"dijit/form/nls/validate":{"invalidMessage":"Der eingegebene Wert ist ungültig. ","missingMessage":"Dieser Wert ist erforderlich.","rangeMessage":"Dieser Wert liegt außerhalb des gültigen Bereichs. "},"dijit/form/nls/ComboBox":{"previousMessage":"Vorherige Auswahl","nextMessage":"Weitere Auswahlmöglichkeiten"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 Bio","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":".","percentFormat":"#,##0 %","decimalFormat-long":"000 Billionen","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_el.js b/lib/dojo/nls/tt-rss-layer_el.js
index 7279885ad..884c48662 100644
--- a/lib/dojo/nls/tt-rss-layer_el.js
+++ b/lib/dojo/nls/tt-rss-layer_el.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_el",{"dijit/form/nls/validate":{"rangeMessage":"Η τιμή αυτή δεν ανήκει στο εύρος έγκυρων τιμών.","invalidMessage":"Η τιμή που καταχωρήσατε δεν είναι έγκυρη.","missingMessage":"Η τιμή αυτή πρέπει απαραίτητα να καθοριστεί."},"dijit/nls/loading":{"loadingState":"Φόρτωση...","errorState":"Σας ζητούμε συγνώμη, παρουσιάστηκε σφάλμα"},"dojo/nls/colors":{"lightsteelblue":"ανοιχτό μπλε ατσαλιού","orangered":"πορτοκαλοκόκκινο","midnightblue":"πολύ σκούρο μπλε","cadetblue":"μπλε του στρατού","seashell":"κοχύλι","slategrey":"μεταλλικό γκρι","coral":"κοραλί","darkturquoise":"σκούρο τυρκουάζ","antiquewhite":"ξεθωριασμένο λευκό","mediumspringgreen":"μεσαίο πράσινο της άνοιξης","transparent":"διαφανές","salmon":"σομόν","darkgrey":"σκούρο γκρι","ivory":"ιβουάρ","greenyellow":"πρασινοκίτρινο","mistyrose":"τριανταφυλλί","lightsalmon":"ανοιχτό σομόν","silver":"ασημί","dimgrey":"αχνό γκρι","orange":"πορτοκαλί","white":"λευκό","navajowhite":"άσπρο Ναβάχο","royalblue":"έντονο μπλε","deeppink":"βαθύ ροζ","lime":"λαχανί","oldlace":"εκρού","chartreuse":"φωτεινό κιτρινοπράσινο","darkcyan":"σκούρο κυανό","yellow":"κίτρινο","linen":"σπαγγί","olive":"πράσινο λαδί","gold":"χρυσαφί","lawngreen":"σκούρο πράσινο","lightyellow":"ανοιχτό κίτρινο","tan":"ώχρα","darkviolet":"σκούρο βιολετί","lightslategrey":"ανοιχτό μεταλλικό γκρι","grey":"γκρι","darkkhaki":"σκούρο χακί","green":"πράσινο","deepskyblue":"βαθύ μπλε το ουρανού","aqua":"γαλάζιο","sienna":"καφεκίτρινο","mintcream":"βεραμάν","rosybrown":"καστανό","mediumslateblue":"μεσαίο μεταλλικό μπλε","magenta":"ματζέντα","lightseagreen":"ανοιχτό πράσινο της θάλασσας","cyan":"κυανό","olivedrab":"λαδί","darkgoldenrod":"σκούρο χρυσοκίτρινο","slateblue":"μεταλλικό μπλε","mediumaquamarine":"μεσαίο γαλαζοπράσινο","lavender":"λίλα","mediumseagreen":"μεσαίο πράσινο της θάλασσας","maroon":"βυσσινί","darkslategray":"σκούρο μεταλλικό γκρι","mediumturquoise":"μεσαίο τυρκουάζ","ghostwhite":"άσπρο","darkblue":"σκούρο μπλε","mediumvioletred":"μεσαίο κόκκινο βιολετί","brown":"καφέ","lightgray":"ανοιχτό γκρι","sandybrown":"μπεζ της άμμου","pink":"ροζ","firebrick":"κεραμιδί","indigo":"λουλακί","snow":"χιονί","darkorchid":"σκούρα ορχιδέα","turquoise":"τυρκουάζ","chocolate":"σοκολατί","springgreen":"πράσινο της άνοιξης","moccasin":"μόκα","navy":"μπλε του ναυτικού","lemonchiffon":"λεμονί","teal":"πετρόλ","floralwhite":"λευκό των ανθών","cornflowerblue":"μεσαίο μπλε","paleturquoise":"αχνό τυρκουάζ","purple":"μωβ","gainsboro":"γκρι σιέλ","plum":"δαμασκηνί","red":"κόκκινο","blue":"μπλε","forestgreen":"πράσινο του δάσους","darkgreen":"σκούρο πράσινο","honeydew":"μελί","darkseagreen":"σκούρο πράσινο της θάλασσας","lightcoral":"ανοιχτό κοραλί","palevioletred":"αχνό κόκκινο βιολετί","mediumpurple":"μεσαίο μωβ","saddlebrown":"βαθύ καφέ","darkmagenta":"σκούρο ματζέντα","thistle":"μωβ βιολετί","whitesmoke":"λευκός καπνός","wheat":"σταρένιο","violet":"βιολετί","lightskyblue":"ανοιχτό μπλε το ουρανού","goldenrod":"χρυσοκίτρινο","mediumblue":"μεσαίο μπλε","skyblue":"μπλε του ουρανού","crimson":"βαθύ κόκκινο","darksalmon":"σκούρο σομόν","darkred":"σκούρο κόκκινο","darkslategrey":"σκούρο μεταλλικό γκρι","peru":"περού","lightgrey":"ανοιχτό γκρι","lightgoldenrodyellow":"ανοιχτό χρυσοκίτρινο","blanchedalmond":"ζαχαρί","aliceblue":"σιέλ","bisque":"σκούρο κρεμ","slategray":"μεταλλικό γκρι","palegoldenrod":"αχνό χρυσοκίτρινο","darkorange":"σκούρο πορτοκαλί","aquamarine":"γαλαζοπράσινο","lightgreen":"ανοιχτό πράσινο","burlywood":"καφέ του ξύλου","dodgerblue":"σκούρο ελεκτρίκ","darkgray":"σκούρο γκρι","lightcyan":"ανοιχτό κυανό","powderblue":"αχνό μπλε","blueviolet":"βιολετί","orchid":"ορχιδέα","dimgray":"αχνό γκρι","beige":"μπεζ","fuchsia":"φούξια","lavenderblush":"μωβ λεβάντας","hotpink":"έντονο ροζ","steelblue":"μπλε ατσαλιού","tomato":"κόκκινο της ντομάτας","lightpink":"ανοιχτό ροζ","limegreen":"πράσινο λαχανί","indianred":"ινδικό κόκκινο","papayawhip":"αχνό ροζ","lightslategray":"ανοιχτό μεταλλικό γκρι","gray":"γκρι","mediumorchid":"μεσαία ορχιδέα","cornsilk":"ασημί του καλαμποκιού","black":"μαύρο","seagreen":"πράσινο της θάλασσας","darkslateblue":"σκούρο μεταλλικό μπλε","khaki":"χακί","lightblue":"ανοιχτό μπλε","palegreen":"αχνό πράσινο","azure":"μπλε του ουρανού","peachpuff":"ροδακινί","darkolivegreen":"σκούρο πράσινο λαδί","yellowgreen":"κιτρινοπράσινο"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":",","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"e"},"dijit/form/nls/ComboBox":{"previousMessage":"Προηγούμενες επιλογές","nextMessage":"Περισσότερες επιλογές"},"dijit/nls/common":{"buttonOk":"ΟΚ","buttonCancel":"Ακύρωση","buttonSave":"Αποθήκευση","itemClose":"Κλείσιμο"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_el",{"dojo/nls/colors":{"aliceblue":"σιέλ","antiquewhite":"ξεθωριασμένο λευκό","aqua":"γαλάζιο","aquamarine":"γαλαζοπράσινο","azure":"μπλε του ουρανού","beige":"μπεζ","bisque":"σκούρο κρεμ","black":"μαύρο","blanchedalmond":"ζαχαρί","blue":"μπλε","blueviolet":"βιολετί","brown":"καφέ","burlywood":"καφέ του ξύλου","cadetblue":"μπλε του στρατού","chartreuse":"φωτεινό κιτρινοπράσινο","chocolate":"σοκολατί","coral":"κοραλί","cornflowerblue":"μεσαίο μπλε","cornsilk":"ασημί του καλαμποκιού","crimson":"βαθύ κόκκινο","cyan":"κυανό","darkblue":"σκούρο μπλε","darkcyan":"σκούρο κυανό","darkgoldenrod":"σκούρο χρυσοκίτρινο","darkgray":"σκούρο γκρι","darkgreen":"σκούρο πράσινο","darkgrey":"σκούρο γκρι","darkkhaki":"σκούρο χακί","darkmagenta":"σκούρο ματζέντα","darkolivegreen":"σκούρο πράσινο λαδί","darkorange":"σκούρο πορτοκαλί","darkorchid":"σκούρα ορχιδέα","darkred":"σκούρο κόκκινο","darksalmon":"σκούρο σομόν","darkseagreen":"σκούρο πράσινο της θάλασσας","darkslateblue":"σκούρο μεταλλικό μπλε","darkslategray":"σκούρο μεταλλικό γκρι","darkslategrey":"σκούρο μεταλλικό γκρι","darkturquoise":"σκούρο τυρκουάζ","darkviolet":"σκούρο βιολετί","deeppink":"βαθύ ροζ","deepskyblue":"βαθύ μπλε το ουρανού","dimgray":"αχνό γκρι","dimgrey":"αχνό γκρι","dodgerblue":"σκούρο ελεκτρίκ","firebrick":"κεραμιδί","floralwhite":"λευκό των ανθών","forestgreen":"πράσινο του δάσους","fuchsia":"φούξια","gainsboro":"γκρι σιέλ","ghostwhite":"άσπρο","gold":"χρυσαφί","goldenrod":"χρυσοκίτρινο","gray":"γκρι","green":"πράσινο","greenyellow":"πρασινοκίτρινο","grey":"γκρι","honeydew":"μελί","hotpink":"έντονο ροζ","indianred":"ινδικό κόκκινο","indigo":"λουλακί","ivory":"ιβουάρ","khaki":"χακί","lavender":"λίλα","lavenderblush":"μωβ λεβάντας","lawngreen":"σκούρο πράσινο","lemonchiffon":"λεμονί","lightblue":"ανοιχτό μπλε","lightcoral":"ανοιχτό κοραλί","lightcyan":"ανοιχτό κυανό","lightgoldenrodyellow":"ανοιχτό χρυσοκίτρινο","lightgray":"ανοιχτό γκρι","lightgreen":"ανοιχτό πράσινο","lightgrey":"ανοιχτό γκρι","lightpink":"ανοιχτό ροζ","lightsalmon":"ανοιχτό σομόν","lightseagreen":"ανοιχτό πράσινο της θάλασσας","lightskyblue":"ανοιχτό μπλε το ουρανού","lightslategray":"ανοιχτό μεταλλικό γκρι","lightslategrey":"ανοιχτό μεταλλικό γκρι","lightsteelblue":"ανοιχτό μπλε ατσαλιού","lightyellow":"ανοιχτό κίτρινο","lime":"λαχανί","limegreen":"πράσινο λαχανί","linen":"σπαγγί","magenta":"ματζέντα","maroon":"βυσσινί","mediumaquamarine":"μεσαίο γαλαζοπράσινο","mediumblue":"μεσαίο μπλε","mediumorchid":"μεσαία ορχιδέα","mediumpurple":"μεσαίο μωβ","mediumseagreen":"μεσαίο πράσινο της θάλασσας","mediumslateblue":"μεσαίο μεταλλικό μπλε","mediumspringgreen":"μεσαίο πράσινο της άνοιξης","mediumturquoise":"μεσαίο τυρκουάζ","mediumvioletred":"μεσαίο κόκκινο βιολετί","midnightblue":"πολύ σκούρο μπλε","mintcream":"βεραμάν","mistyrose":"τριανταφυλλί","moccasin":"μόκα","navajowhite":"άσπρο Ναβάχο","navy":"μπλε του ναυτικού","oldlace":"εκρού","olive":"πράσινο λαδί","olivedrab":"λαδί","orange":"πορτοκαλί","orangered":"πορτοκαλοκόκκινο","orchid":"ορχιδέα","palegoldenrod":"αχνό χρυσοκίτρινο","palegreen":"αχνό πράσινο","paleturquoise":"αχνό τυρκουάζ","palevioletred":"αχνό κόκκινο βιολετί","papayawhip":"αχνό ροζ","peachpuff":"ροδακινί","peru":"περού","pink":"ροζ","plum":"δαμασκηνί","powderblue":"αχνό μπλε","purple":"μωβ","red":"κόκκινο","rosybrown":"καστανό","royalblue":"έντονο μπλε","saddlebrown":"βαθύ καφέ","salmon":"σομόν","sandybrown":"μπεζ της άμμου","seagreen":"πράσινο της θάλασσας","seashell":"κοχύλι","sienna":"καφεκίτρινο","silver":"ασημί","skyblue":"μπλε του ουρανού","slateblue":"μεταλλικό μπλε","slategray":"μεταλλικό γκρι","slategrey":"μεταλλικό γκρι","snow":"χιονί","springgreen":"πράσινο της άνοιξης","steelblue":"μπλε ατσαλιού","tan":"ώχρα","teal":"πετρόλ","thistle":"μωβ βιολετί","tomato":"κόκκινο της ντομάτας","transparent":"διαφανές","turquoise":"τυρκουάζ","violet":"βιολετί","wheat":"σταρένιο","white":"λευκό","whitesmoke":"λευκός καπνός","yellow":"κίτρινο","yellowgreen":"κιτρινοπράσινο"},"dijit/nls/loading":{"loadingState":"Φόρτωση...","errorState":"Σας ζητούμε συγνώμη, παρουσιάστηκε σφάλμα"},"dijit/nls/common":{"buttonOk":"ΟΚ","buttonCancel":"Ακύρωση","buttonSave":"Αποθήκευση","itemClose":"Κλείσιμο"},"dijit/form/nls/validate":{"invalidMessage":"Η τιμή που καταχωρήσατε δεν είναι έγκυρη.","missingMessage":"Η τιμή αυτή πρέπει απαραίτητα να καθοριστεί.","rangeMessage":"Η τιμή αυτή δεν ανήκει στο εύρος έγκυρων τιμών."},"dijit/form/nls/ComboBox":{"previousMessage":"Προηγούμενες επιλογές","nextMessage":"Περισσότερες επιλογές"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":",","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 τρις","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat-long":"000 τρισεκατομμύρια","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"e"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_en-gb.js b/lib/dojo/nls/tt-rss-layer_en-gb.js
index 72844ccc5..66c4639f2 100644
--- a/lib/dojo/nls/tt-rss-layer_en-gb.js
+++ b/lib/dojo/nls/tt-rss-layer_en-gb.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_en-gb",{"dijit/form/nls/validate":{"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."},"dijit/nls/loading":{"loadingState":"Loading...","errorState":"Sorry, an error occurred"},"dojo/nls/colors":{"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","transparent":"transparent","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤#,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Previous choices","nextMessage":"More choices"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_en-gb",{"dojo/nls/colors":{"aliceblue":"alice blue","antiquewhite":"antique white","aqua":"aqua","aquamarine":"aquamarine","azure":"azure","beige":"beige","bisque":"bisque","black":"black","blanchedalmond":"blanched almond","blue":"blue","blueviolet":"blue-violet","brown":"brown","burlywood":"burlywood","cadetblue":"cadet blue","chartreuse":"chartreuse","chocolate":"chocolate","coral":"coral","cornflowerblue":"cornflower blue","cornsilk":"cornsilk","crimson":"crimson","cyan":"cyan","darkblue":"dark blue","darkcyan":"dark cyan","darkgoldenrod":"dark goldenrod","darkgray":"dark gray","darkgreen":"dark green","darkgrey":"dark gray","darkkhaki":"dark khaki","darkmagenta":"dark magenta","darkolivegreen":"dark olive green","darkorange":"dark orange","darkorchid":"dark orchid","darkred":"dark red","darksalmon":"dark salmon","darkseagreen":"dark sea green","darkslateblue":"dark slate blue","darkslategray":"dark slate gray","darkslategrey":"dark slate gray","darkturquoise":"dark turquoise","darkviolet":"dark violet","deeppink":"deep pink","deepskyblue":"deep sky blue","dimgray":"dim gray","dimgrey":"dim gray","dodgerblue":"dodger blue","firebrick":"fire brick","floralwhite":"floral white","forestgreen":"forest green","fuchsia":"fuchsia","gainsboro":"gainsboro","ghostwhite":"ghost white","gold":"gold","goldenrod":"goldenrod","gray":"gray","green":"green","greenyellow":"green-yellow","grey":"gray","honeydew":"honeydew","hotpink":"hot pink","indianred":"indian red","indigo":"indigo","ivory":"ivory","khaki":"khaki","lavender":"lavender","lavenderblush":"lavender blush","lawngreen":"lawn green","lemonchiffon":"lemon chiffon","lightblue":"light blue","lightcoral":"light coral","lightcyan":"light cyan","lightgoldenrodyellow":"light goldenrod yellow","lightgray":"light gray","lightgreen":"light green","lightgrey":"light gray","lightpink":"light pink","lightsalmon":"light salmon","lightseagreen":"light sea green","lightskyblue":"light sky blue","lightslategray":"light slate gray","lightslategrey":"light slate gray","lightsteelblue":"light steel blue","lightyellow":"light yellow","lime":"lime","limegreen":"lime green","linen":"linen","magenta":"magenta","maroon":"maroon","mediumaquamarine":"medium aquamarine","mediumblue":"medium blue","mediumorchid":"medium orchid","mediumpurple":"medium purple","mediumseagreen":"medium sea green","mediumslateblue":"medium slate blue","mediumspringgreen":"medium spring green","mediumturquoise":"medium turquoise","mediumvioletred":"medium violet-red","midnightblue":"midnight blue","mintcream":"mint cream","mistyrose":"misty rose","moccasin":"moccasin","navajowhite":"navajo white","navy":"navy","oldlace":"old lace","olive":"olive","olivedrab":"olive drab","orange":"orange","orangered":"orange red","orchid":"orchid","palegoldenrod":"pale goldenrod","palegreen":"pale green","paleturquoise":"pale turquoise","palevioletred":"pale violet-red","papayawhip":"papaya whip","peachpuff":"peach puff","peru":"peru","pink":"pink","plum":"plum","powderblue":"powder blue","purple":"purple","red":"red","rosybrown":"rosy brown","royalblue":"royal blue","saddlebrown":"saddle brown","salmon":"salmon","sandybrown":"sandy brown","seagreen":"sea green","seashell":"seashell","sienna":"sienna","silver":"silver","skyblue":"sky blue","slateblue":"slate blue","slategray":"slate gray","slategrey":"slate gray","snow":"snow","springgreen":"spring green","steelblue":"steel blue","tan":"tan","teal":"teal","thistle":"thistle","tomato":"tomato","transparent":"transparent","turquoise":"turquoise","violet":"violet","wheat":"wheat","white":"white","whitesmoke":"white smoke","yellow":"yellow","yellowgreen":"yellow green"},"dijit/nls/loading":{"loadingState":"Loading...","errorState":"Sorry, an error occurred"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"},"dijit/form/nls/validate":{"invalidMessage":"The value entered is not valid.","missingMessage":"This value is required.","rangeMessage":"This value is out of range."},"dijit/form/nls/ComboBox":{"previousMessage":"Previous choices","nextMessage":"More choices"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤#,##0.00","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000 trillion","decimalFormat":"#,##0.###","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_en-us.js b/lib/dojo/nls/tt-rss-layer_en-us.js
index 741517bf0..a651ee78e 100644
--- a/lib/dojo/nls/tt-rss-layer_en-us.js
+++ b/lib/dojo/nls/tt-rss-layer_en-us.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_en-us",{"dijit/form/nls/validate":{"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."},"dijit/nls/loading":{"loadingState":"Loading...","errorState":"Sorry, an error occurred"},"dojo/nls/colors":{"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","transparent":"transparent","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤#,##0.00;(¤#,##0.00)","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Previous choices","nextMessage":"More choices"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_en-us",{"dojo/nls/colors":{"aliceblue":"alice blue","antiquewhite":"antique white","aqua":"aqua","aquamarine":"aquamarine","azure":"azure","beige":"beige","bisque":"bisque","black":"black","blanchedalmond":"blanched almond","blue":"blue","blueviolet":"blue-violet","brown":"brown","burlywood":"burlywood","cadetblue":"cadet blue","chartreuse":"chartreuse","chocolate":"chocolate","coral":"coral","cornflowerblue":"cornflower blue","cornsilk":"cornsilk","crimson":"crimson","cyan":"cyan","darkblue":"dark blue","darkcyan":"dark cyan","darkgoldenrod":"dark goldenrod","darkgray":"dark gray","darkgreen":"dark green","darkgrey":"dark gray","darkkhaki":"dark khaki","darkmagenta":"dark magenta","darkolivegreen":"dark olive green","darkorange":"dark orange","darkorchid":"dark orchid","darkred":"dark red","darksalmon":"dark salmon","darkseagreen":"dark sea green","darkslateblue":"dark slate blue","darkslategray":"dark slate gray","darkslategrey":"dark slate gray","darkturquoise":"dark turquoise","darkviolet":"dark violet","deeppink":"deep pink","deepskyblue":"deep sky blue","dimgray":"dim gray","dimgrey":"dim gray","dodgerblue":"dodger blue","firebrick":"fire brick","floralwhite":"floral white","forestgreen":"forest green","fuchsia":"fuchsia","gainsboro":"gainsboro","ghostwhite":"ghost white","gold":"gold","goldenrod":"goldenrod","gray":"gray","green":"green","greenyellow":"green-yellow","grey":"gray","honeydew":"honeydew","hotpink":"hot pink","indianred":"indian red","indigo":"indigo","ivory":"ivory","khaki":"khaki","lavender":"lavender","lavenderblush":"lavender blush","lawngreen":"lawn green","lemonchiffon":"lemon chiffon","lightblue":"light blue","lightcoral":"light coral","lightcyan":"light cyan","lightgoldenrodyellow":"light goldenrod yellow","lightgray":"light gray","lightgreen":"light green","lightgrey":"light gray","lightpink":"light pink","lightsalmon":"light salmon","lightseagreen":"light sea green","lightskyblue":"light sky blue","lightslategray":"light slate gray","lightslategrey":"light slate gray","lightsteelblue":"light steel blue","lightyellow":"light yellow","lime":"lime","limegreen":"lime green","linen":"linen","magenta":"magenta","maroon":"maroon","mediumaquamarine":"medium aquamarine","mediumblue":"medium blue","mediumorchid":"medium orchid","mediumpurple":"medium purple","mediumseagreen":"medium sea green","mediumslateblue":"medium slate blue","mediumspringgreen":"medium spring green","mediumturquoise":"medium turquoise","mediumvioletred":"medium violet-red","midnightblue":"midnight blue","mintcream":"mint cream","mistyrose":"misty rose","moccasin":"moccasin","navajowhite":"navajo white","navy":"navy","oldlace":"old lace","olive":"olive","olivedrab":"olive drab","orange":"orange","orangered":"orange red","orchid":"orchid","palegoldenrod":"pale goldenrod","palegreen":"pale green","paleturquoise":"pale turquoise","palevioletred":"pale violet-red","papayawhip":"papaya whip","peachpuff":"peach puff","peru":"peru","pink":"pink","plum":"plum","powderblue":"powder blue","purple":"purple","red":"red","rosybrown":"rosy brown","royalblue":"royal blue","saddlebrown":"saddle brown","salmon":"salmon","sandybrown":"sandy brown","seagreen":"sea green","seashell":"seashell","sienna":"sienna","silver":"silver","skyblue":"sky blue","slateblue":"slate blue","slategray":"slate gray","slategrey":"slate gray","snow":"snow","springgreen":"spring green","steelblue":"steel blue","tan":"tan","teal":"teal","thistle":"thistle","tomato":"tomato","transparent":"transparent","turquoise":"turquoise","violet":"violet","wheat":"wheat","white":"white","whitesmoke":"white smoke","yellow":"yellow","yellowgreen":"yellow green"},"dijit/nls/loading":{"loadingState":"Loading...","errorState":"Sorry, an error occurred"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"},"dijit/form/nls/validate":{"invalidMessage":"The value entered is not valid.","missingMessage":"This value is required.","rangeMessage":"This value is out of range."},"dijit/form/nls/ComboBox":{"previousMessage":"Previous choices","nextMessage":"More choices"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤#,##0.00;(¤#,##0.00)","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000 trillion","decimalFormat":"#,##0.###","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_es-es.js b/lib/dojo/nls/tt-rss-layer_es-es.js
index df857f927..5ef4c5ea7 100644
--- a/lib/dojo/nls/tt-rss-layer_es-es.js
+++ b/lib/dojo/nls/tt-rss-layer_es-es.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_es-es",{"dijit/form/nls/validate":{"rangeMessage":"Este valor está fuera del intervalo.","invalidMessage":"El valor especificado no es válido.","missingMessage":"Este valor es necesario."},"dijit/nls/loading":{"loadingState":"Cargando...","errorState":"Lo siento, se ha producido un error"},"dojo/nls/colors":{"lightsteelblue":"azul acero claro","orangered":"rojo anaranjado","midnightblue":"azul medianoche","cadetblue":"azul cadete","seashell":"blanco marfil","slategrey":"gris pizarra","coral":"coral","darkturquoise":"turquesa oscuro","antiquewhite":"blanco antiguo","mediumspringgreen":"verde primavera medio","transparent":"transparente","salmon":"salmón","darkgrey":"gris oscuro","ivory":"marfil","greenyellow":"amarillo verdoso","mistyrose":"rosa difuminado","lightsalmon":"salmón claro","silver":"plateado","dimgrey":"gris marengo","orange":"naranja","white":"blanco","navajowhite":"blanco navajo","royalblue":"azul real","deeppink":"rosa fuerte","lime":"lima","oldlace":"encaje antiguo","chartreuse":"verde pálido 2","darkcyan":"cian oscuro","yellow":"amarillo","linen":"blanco arena","olive":"verde oliva","gold":"oro","lawngreen":"verde césped","lightyellow":"amarillo claro","tan":"canela","darkviolet":"violeta oscuro","lightslategrey":"gris pizarra claro","grey":"gris","darkkhaki":"caqui oscuro","green":"verde","deepskyblue":"azul cielo fuerte","aqua":"aguamarina","sienna":"siena","mintcream":"crema menta","rosybrown":"marrón rosáceo","mediumslateblue":"azul pizarra medio","magenta":"magenta","lightseagreen":"verde mar claro","cyan":"cian","olivedrab":"verde oliva pardusco","darkgoldenrod":"ocre oscuro","slateblue":"azul pizarra","mediumaquamarine":"aguamarina medio","lavender":"lavanda","mediumseagreen":"verde mar medio","maroon":"granate","darkslategray":"gris pizarra oscuro","mediumturquoise":"turquesa medio","ghostwhite":"blanco ligero","darkblue":"azul oscuro","mediumvioletred":"rojo violáceo medio","brown":"marrón","lightgray":"gris claro","sandybrown":"marrón arcilla","pink":"rosa","firebrick":"teja","indigo":"añil","snow":"nieve","darkorchid":"orquídea oscuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde fuerte","moccasin":"arena","navy":"azul marino","lemonchiffon":"amarillo pastel","teal":"verde azulado","floralwhite":"blanco manteca","cornflowerblue":"azul aciano","paleturquoise":"turquesa pálido","purple":"púrpura","gainsboro":"azul gainsboro","plum":"ciruela","red":"rojo","blue":"azul","forestgreen":"verde pino","darkgreen":"verde oscuro","honeydew":"flor de rocío","darkseagreen":"verde mar oscuro","lightcoral":"coral claro","palevioletred":"rojo violáceo pálido","mediumpurple":"púrpura medio","saddlebrown":"cuero","darkmagenta":"magenta oscuro","thistle":"cardo","whitesmoke":"blanco ahumado","wheat":"trigo","violet":"violeta","lightskyblue":"azul cielo claro","goldenrod":"ocre","mediumblue":"azul medio","skyblue":"azul cielo","crimson":"carmesí","darksalmon":"salmón oscuro","darkred":"rojo oscuro","darkslategrey":"gris pizarra oscuro","peru":"perú","lightgrey":"gris claro","lightgoldenrodyellow":"ocre claro","blanchedalmond":"almendra pálido","aliceblue":"blanco azulado","bisque":"miel","slategray":"gris pizarra","palegoldenrod":"ocre pálido","darkorange":"naranja oscuro","aquamarine":"aguamarina 2","lightgreen":"verde claro","burlywood":"madera","dodgerblue":"azul fuerte","darkgray":"gris oscuro","lightcyan":"cian claro","powderblue":"azul suave","blueviolet":"azul violáceo","orchid":"orquídea","dimgray":"gris marengo","beige":"beige","fuchsia":"fucsia","lavenderblush":"lavanda rosácea","hotpink":"rosa oscuro","steelblue":"azul acero","tomato":"tomate","lightpink":"rosa claro","limegreen":"lima limón","indianred":"rojo teja","papayawhip":"papaya claro","lightslategray":"gris pizarra claro","gray":"gris","mediumorchid":"orquídea medio","cornsilk":"crudo","black":"negro","seagreen":"verde mar","darkslateblue":"azul pizarra oscuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"blanco cielo","peachpuff":"melocotón","darkolivegreen":"verde oliva oscuro","yellowgreen":"verde amarillento"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Opciones anteriores","nextMessage":"Más opciones"},"dijit/nls/common":{"buttonOk":"Aceptar","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Cerrar"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_es-es",{"dojo/nls/colors":{"aliceblue":"blanco azulado","antiquewhite":"blanco antiguo","aqua":"aguamarina","aquamarine":"aguamarina 2","azure":"blanco cielo","beige":"beige","bisque":"miel","black":"negro","blanchedalmond":"almendra pálido","blue":"azul","blueviolet":"azul violáceo","brown":"marrón","burlywood":"madera","cadetblue":"azul cadete","chartreuse":"verde pálido 2","chocolate":"chocolate","coral":"coral","cornflowerblue":"azul aciano","cornsilk":"crudo","crimson":"carmesí","cyan":"cian","darkblue":"azul oscuro","darkcyan":"cian oscuro","darkgoldenrod":"ocre oscuro","darkgray":"gris oscuro","darkgreen":"verde oscuro","darkgrey":"gris oscuro","darkkhaki":"caqui oscuro","darkmagenta":"magenta oscuro","darkolivegreen":"verde oliva oscuro","darkorange":"naranja oscuro","darkorchid":"orquídea oscuro","darkred":"rojo oscuro","darksalmon":"salmón oscuro","darkseagreen":"verde mar oscuro","darkslateblue":"azul pizarra oscuro","darkslategray":"gris pizarra oscuro","darkslategrey":"gris pizarra oscuro","darkturquoise":"turquesa oscuro","darkviolet":"violeta oscuro","deeppink":"rosa fuerte","deepskyblue":"azul cielo fuerte","dimgray":"gris marengo","dimgrey":"gris marengo","dodgerblue":"azul fuerte","firebrick":"teja","floralwhite":"blanco manteca","forestgreen":"verde pino","fuchsia":"fucsia","gainsboro":"azul gainsboro","ghostwhite":"blanco ligero","gold":"oro","goldenrod":"ocre","gray":"gris","green":"verde","greenyellow":"amarillo verdoso","grey":"gris","honeydew":"flor de rocío","hotpink":"rosa oscuro","indianred":"rojo teja","indigo":"añil","ivory":"marfil","khaki":"caqui","lavender":"lavanda","lavenderblush":"lavanda rosácea","lawngreen":"verde césped","lemonchiffon":"amarillo pastel","lightblue":"azul claro","lightcoral":"coral claro","lightcyan":"cian claro","lightgoldenrodyellow":"ocre claro","lightgray":"gris claro","lightgreen":"verde claro","lightgrey":"gris claro","lightpink":"rosa claro","lightsalmon":"salmón claro","lightseagreen":"verde mar claro","lightskyblue":"azul cielo claro","lightslategray":"gris pizarra claro","lightslategrey":"gris pizarra claro","lightsteelblue":"azul acero claro","lightyellow":"amarillo claro","lime":"lima","limegreen":"lima limón","linen":"blanco arena","magenta":"magenta","maroon":"granate","mediumaquamarine":"aguamarina medio","mediumblue":"azul medio","mediumorchid":"orquídea medio","mediumpurple":"púrpura medio","mediumseagreen":"verde mar medio","mediumslateblue":"azul pizarra medio","mediumspringgreen":"verde primavera medio","mediumturquoise":"turquesa medio","mediumvioletred":"rojo violáceo medio","midnightblue":"azul medianoche","mintcream":"crema menta","mistyrose":"rosa difuminado","moccasin":"arena","navajowhite":"blanco navajo","navy":"azul marino","oldlace":"encaje antiguo","olive":"verde oliva","olivedrab":"verde oliva pardusco","orange":"naranja","orangered":"rojo anaranjado","orchid":"orquídea","palegoldenrod":"ocre pálido","palegreen":"verde pálido","paleturquoise":"turquesa pálido","palevioletred":"rojo violáceo pálido","papayawhip":"papaya claro","peachpuff":"melocotón","peru":"perú","pink":"rosa","plum":"ciruela","powderblue":"azul suave","purple":"púrpura","red":"rojo","rosybrown":"marrón rosáceo","royalblue":"azul real","saddlebrown":"cuero","salmon":"salmón","sandybrown":"marrón arcilla","seagreen":"verde mar","seashell":"blanco marfil","sienna":"siena","silver":"plateado","skyblue":"azul cielo","slateblue":"azul pizarra","slategray":"gris pizarra","slategrey":"gris pizarra","snow":"nieve","springgreen":"verde fuerte","steelblue":"azul acero","tan":"canela","teal":"verde azulado","thistle":"cardo","tomato":"tomate","transparent":"transparente","turquoise":"turquesa","violet":"violeta","wheat":"trigo","white":"blanco","whitesmoke":"blanco ahumado","yellow":"amarillo","yellowgreen":"verde amarillento"},"dijit/nls/loading":{"loadingState":"Cargando...","errorState":"Lo siento, se ha producido un error"},"dijit/nls/common":{"buttonOk":"Aceptar","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Cerrar"},"dijit/form/nls/validate":{"invalidMessage":"El valor especificado no es válido.","missingMessage":"Este valor es necesario.","rangeMessage":"Este valor está fuera del intervalo."},"dijit/form/nls/ComboBox":{"previousMessage":"Opciones anteriores","nextMessage":"Más opciones"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 B","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat-long":"000 billones","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_fi-fi.js b/lib/dojo/nls/tt-rss-layer_fi-fi.js
index c84831892..422ac3404 100644
--- a/lib/dojo/nls/tt-rss-layer_fi-fi.js
+++ b/lib/dojo/nls/tt-rss-layer_fi-fi.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_fi-fi",{"dijit/form/nls/validate":{"rangeMessage":"Tämä arvo on sallitun alueen ulkopuolella.","invalidMessage":"Annettu arvo ei kelpaa.","missingMessage":"Tämä arvo on pakollinen."},"dijit/nls/loading":{"loadingState":"Lataus on meneillään...","errorState":"On ilmennyt virhe."},"dojo/nls/colors":{"lightsteelblue":"vaalea teräksensininen","orangered":"oranssinpunainen","midnightblue":"yönsininen","cadetblue":"meren vihreä","seashell":"simpukankuori","slategrey":"savenharmaa","coral":"koralli","darkturquoise":"tumma turkoosi","antiquewhite":"antiikinvalkoinen","mediumspringgreen":"keskivaalea keväänvihreä","transparent":"läpinäkyvä","salmon":"lohenpunainen","darkgrey":"tummanharmaa","ivory":"norsunluu","greenyellow":"vihreänkeltainen","mistyrose":"utuinen ruusu","lightsalmon":"vaalea lohenpunainen","silver":"hopea","dimgrey":"himmeänharmaa","orange":"oranssi","white":"valkoinen","navajowhite":"navajonvalkoinen","royalblue":"syvänsininen","deeppink":"syvä vaaleanpunainen","lime":"vaaleanvihreä","oldlace":"vanha pitsi","chartreuse":"kellanvihreä","darkcyan":"tumma turkoosi","yellow":"keltainen","linen":"pellavanvaalea","olive":"oliivinvihreä","gold":"kulta","lawngreen":"ruohonvihreä","lightyellow":"vaaleankeltainen","tan":"kellanruskea","darkviolet":"tummanvioletti","lightslategrey":"vaaleanharmaa","grey":"harmaa","darkkhaki":"tumma khaki","green":"vihreä","deepskyblue":"tumma taivaansininen","aqua":"sinivihreä","sienna":"siena","mintcream":"minttukreemi","rosybrown":"punertavanruskea","mediumslateblue":"keskivaalea siniharmaa","magenta":"magenta","lightseagreen":"vaalea merenvihreä","cyan":"syaani","olivedrab":"oliivinruskea","darkgoldenrod":"tumma kultapiisku","slateblue":"savensininen","mediumaquamarine":"keskivaalea vedenvihreä","lavender":"laventeli","mediumseagreen":"keskivaalea merenvihreä","maroon":"kastanjanruskea","darkslategray":"tummanharmaa","mediumturquoise":"keskivaalea turkoosi","ghostwhite":"lakananvalkoinen","darkblue":"tummansininen","mediumvioletred":"keskivaalea lila","brown":"ruskea","lightgray":"vaaleanharmaa","sandybrown":"hiekanruskea","pink":"vaaleanpunainen","firebrick":"poltetun tiilen punainen","indigo":"indigo","snow":"lumivalkoinen","darkorchid":"tumma orkidea","turquoise":"turkoosi","chocolate":"suklaanruskea","springgreen":"keväänvihreä","moccasin":"nahanruskea","navy":"laivastonsininen","lemonchiffon":"sitruunankeltainen","teal":"sinivihreä","floralwhite":"kukanvalkoinen","cornflowerblue":"syvänsininen","paleturquoise":"haalea turkoosi","purple":"violetti","gainsboro":"gainsboro","plum":"luumunpunainen","red":"punainen","blue":"sininen","forestgreen":"metsänvihreä","darkgreen":"tummanvihreä","honeydew":"hunajameloninvihreä","darkseagreen":"tumma merenvihreä","lightcoral":"vaalea koralli","palevioletred":"haalea lila","mediumpurple":"keskivaalea violetti","saddlebrown":"satulanruskea","darkmagenta":"tumma magenta","thistle":"ohdake","whitesmoke":"savunvalkea","wheat":"vehnänkeltainen","violet":"violetti","lightskyblue":"vaalea taivaansininen","goldenrod":"kullanruskea","mediumblue":"keskisininen","skyblue":"taivaansininen","crimson":"karmiininpunainen","darksalmon":"tumma lohenpunainen","darkred":"tummanpunainen","darkslategrey":"tummanharmaa","peru":"peru","lightgrey":"vaaleanharmaa","lightgoldenrodyellow":"vaalea kultapiiskunkeltainen","blanchedalmond":"kuorittu manteli","aliceblue":"vaaleanharmaansininen","bisque":"vaaleanruskea","slategray":"savenharmaa","palegoldenrod":"haalea kultapiisku","darkorange":"tummanoranssi","aquamarine":"vedenvihreä","lightgreen":"vaaleanvihreä","burlywood":"puunruskea","dodgerblue":"Dodger-sininen","darkgray":"tummanharmaa","lightcyan":"vaalea syaani","powderblue":"harmaansininen","blueviolet":"sinivioletti","orchid":"orkidea","dimgray":"himmeänharmaa","beige":"vaaleanruskea","fuchsia":"purppura","lavenderblush":"laventelinpunainen","hotpink":"pinkki","steelblue":"teräksensininen","tomato":"tomaatinpunainen","lightpink":"vaaleanpunainen","limegreen":"limetinvihreä","indianred":"kirkkaanpunainen","papayawhip":"papaijavaahto","lightslategray":"vaaleanharmaa","gray":"harmaa","mediumorchid":"keskivaalea orkidea","cornsilk":"maissinkeltainen","black":"musta","seagreen":"merenvihreä","darkslateblue":"tumma siniharmaa","khaki":"khaki","lightblue":"vaaleansininen","palegreen":"haalea vihreä","azure":"taivaansininen","peachpuff":"persikka","darkolivegreen":"tummanoliivinvihreä","yellowgreen":"kellanvihreä"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"epäluku","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Edelliset valinnat","nextMessage":"Lisää valintoja"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Peruuta","buttonSave":"Tallenna","itemClose":"Sulje"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_fi-fi",{"dojo/nls/colors":{"aliceblue":"vaaleanharmaansininen","antiquewhite":"antiikinvalkoinen","aqua":"sinivihreä","aquamarine":"vedenvihreä","azure":"taivaansininen","beige":"vaaleanruskea","bisque":"vaaleanruskea","black":"musta","blanchedalmond":"kuorittu manteli","blue":"sininen","blueviolet":"sinivioletti","brown":"ruskea","burlywood":"puunruskea","cadetblue":"meren vihreä","chartreuse":"kellanvihreä","chocolate":"suklaanruskea","coral":"koralli","cornflowerblue":"syvänsininen","cornsilk":"maissinkeltainen","crimson":"karmiininpunainen","cyan":"syaani","darkblue":"tummansininen","darkcyan":"tumma turkoosi","darkgoldenrod":"tumma kultapiisku","darkgray":"tummanharmaa","darkgreen":"tummanvihreä","darkgrey":"tummanharmaa","darkkhaki":"tumma khaki","darkmagenta":"tumma magenta","darkolivegreen":"tummanoliivinvihreä","darkorange":"tummanoranssi","darkorchid":"tumma orkidea","darkred":"tummanpunainen","darksalmon":"tumma lohenpunainen","darkseagreen":"tumma merenvihreä","darkslateblue":"tumma siniharmaa","darkslategray":"tummanharmaa","darkslategrey":"tummanharmaa","darkturquoise":"tumma turkoosi","darkviolet":"tummanvioletti","deeppink":"syvä vaaleanpunainen","deepskyblue":"tumma taivaansininen","dimgray":"himmeänharmaa","dimgrey":"himmeänharmaa","dodgerblue":"Dodger-sininen","firebrick":"poltetun tiilen punainen","floralwhite":"kukanvalkoinen","forestgreen":"metsänvihreä","fuchsia":"purppura","gainsboro":"gainsboro","ghostwhite":"lakananvalkoinen","gold":"kulta","goldenrod":"kullanruskea","gray":"harmaa","green":"vihreä","greenyellow":"vihreänkeltainen","grey":"harmaa","honeydew":"hunajameloninvihreä","hotpink":"pinkki","indianred":"kirkkaanpunainen","indigo":"indigo","ivory":"norsunluu","khaki":"khaki","lavender":"laventeli","lavenderblush":"laventelinpunainen","lawngreen":"ruohonvihreä","lemonchiffon":"sitruunankeltainen","lightblue":"vaaleansininen","lightcoral":"vaalea koralli","lightcyan":"vaalea syaani","lightgoldenrodyellow":"vaalea kultapiiskunkeltainen","lightgray":"vaaleanharmaa","lightgreen":"vaaleanvihreä","lightgrey":"vaaleanharmaa","lightpink":"vaaleanpunainen","lightsalmon":"vaalea lohenpunainen","lightseagreen":"vaalea merenvihreä","lightskyblue":"vaalea taivaansininen","lightslategray":"vaaleanharmaa","lightslategrey":"vaaleanharmaa","lightsteelblue":"vaalea teräksensininen","lightyellow":"vaaleankeltainen","lime":"vaaleanvihreä","limegreen":"limetinvihreä","linen":"pellavanvaalea","magenta":"magenta","maroon":"kastanjanruskea","mediumaquamarine":"keskivaalea vedenvihreä","mediumblue":"keskisininen","mediumorchid":"keskivaalea orkidea","mediumpurple":"keskivaalea violetti","mediumseagreen":"keskivaalea merenvihreä","mediumslateblue":"keskivaalea siniharmaa","mediumspringgreen":"keskivaalea keväänvihreä","mediumturquoise":"keskivaalea turkoosi","mediumvioletred":"keskivaalea lila","midnightblue":"yönsininen","mintcream":"minttukreemi","mistyrose":"utuinen ruusu","moccasin":"nahanruskea","navajowhite":"navajonvalkoinen","navy":"laivastonsininen","oldlace":"vanha pitsi","olive":"oliivinvihreä","olivedrab":"oliivinruskea","orange":"oranssi","orangered":"oranssinpunainen","orchid":"orkidea","palegoldenrod":"haalea kultapiisku","palegreen":"haalea vihreä","paleturquoise":"haalea turkoosi","palevioletred":"haalea lila","papayawhip":"papaijavaahto","peachpuff":"persikka","peru":"peru","pink":"vaaleanpunainen","plum":"luumunpunainen","powderblue":"harmaansininen","purple":"violetti","red":"punainen","rosybrown":"punertavanruskea","royalblue":"syvänsininen","saddlebrown":"satulanruskea","salmon":"lohenpunainen","sandybrown":"hiekanruskea","seagreen":"merenvihreä","seashell":"simpukankuori","sienna":"siena","silver":"hopea","skyblue":"taivaansininen","slateblue":"savensininen","slategray":"savenharmaa","slategrey":"savenharmaa","snow":"lumivalkoinen","springgreen":"keväänvihreä","steelblue":"teräksensininen","tan":"kellanruskea","teal":"sinivihreä","thistle":"ohdake","tomato":"tomaatinpunainen","transparent":"läpinäkyvä","turquoise":"turkoosi","violet":"violetti","wheat":"vehnänkeltainen","white":"valkoinen","whitesmoke":"savunvalkea","yellow":"keltainen","yellowgreen":"kellanvihreä"},"dijit/nls/loading":{"loadingState":"Lataus on meneillään...","errorState":"On ilmennyt virhe."},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Peruuta","buttonSave":"Tallenna","itemClose":"Sulje"},"dijit/form/nls/validate":{"invalidMessage":"Annettu arvo ei kelpaa.","missingMessage":"Tämä arvo on pakollinen.","rangeMessage":"Tämä arvo on sallitun alueen ulkopuolella."},"dijit/form/nls/ComboBox":{"previousMessage":"Edelliset valinnat","nextMessage":"Lisää valintoja"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 bilj'.'","currencySpacing-afterCurrency-insertBetween":" ","nan":"epäluku","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat-long":"000 biljoonaa","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_fr-fr.js b/lib/dojo/nls/tt-rss-layer_fr-fr.js
index 44815b56d..8244efb33 100644
--- a/lib/dojo/nls/tt-rss-layer_fr-fr.js
+++ b/lib/dojo/nls/tt-rss-layer_fr-fr.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_fr-fr",{"dijit/form/nls/validate":{"rangeMessage":"Cette valeur n'est pas comprise dans la plage autorisée.","invalidMessage":"La valeur indiquée n'est pas correcte.","missingMessage":"Cette valeur est requise."},"dijit/nls/loading":{"loadingState":"Chargement...","errorState":"Une erreur est survenue"},"dojo/nls/colors":{"lightsteelblue":"bleu acier clair","orangered":"rouge orangé","midnightblue":"bleu nuit","cadetblue":"bleu pétrole","seashell":"coquillage","slategrey":"gris ardoise","coral":"corail","darkturquoise":"turquoise foncé","antiquewhite":"blanc antique","mediumspringgreen":"vert printemps moyen","transparent":"transparent","salmon":"saumon","darkgrey":"gris foncé","ivory":"ivoire","greenyellow":"vert-jaune","mistyrose":"rose pâle","lightsalmon":"saumon clair","silver":"argent","dimgrey":"gris soutenu","orange":"orange","white":"blanc","navajowhite":"chair","royalblue":"bleu roi","deeppink":"rose soutenu","lime":"vert citron","oldlace":"blanc cassé","chartreuse":"vert vif","darkcyan":"cyan foncé","yellow":"jaune","linen":"écru","olive":"olive","gold":"or","lawngreen":"vert prairie","lightyellow":"jaune clair","tan":"grège","darkviolet":"violet foncé","lightslategrey":"gris ardoise clair","grey":"gris","darkkhaki":"kaki foncé","green":"vert","deepskyblue":"bleu ciel soutenu","aqua":"bleu-vert","sienna":"terre de sienne","mintcream":"crème de menthe","rosybrown":"vieux rose","mediumslateblue":"bleu ardoise moyen","magenta":"magenta","lightseagreen":"vert d'eau clair","cyan":"cyan","olivedrab":"brun verdâtre","darkgoldenrod":"jaune paille foncé","slateblue":"bleu ardoise","mediumaquamarine":"aigue-marine moyen","lavender":"lavande","mediumseagreen":"vert d'eau moyen","maroon":"marron","darkslategray":"gris ardoise foncé","mediumturquoise":"turquoise moyen","ghostwhite":"blanc laiteux","darkblue":"bleu foncé","mediumvioletred":"rouge violacé moyen","brown":"brun","lightgray":"gris clair","sandybrown":"sable","pink":"rose","firebrick":"rouge brique","indigo":"indigo","snow":"neige","darkorchid":"lilas foncé","turquoise":"turquoise","chocolate":"chocolat","springgreen":"vert printemps","moccasin":"chamois","navy":"bleu marine","lemonchiffon":"mousse de citron","teal":"sarcelle","floralwhite":"lys","cornflowerblue":"bleuet","paleturquoise":"turquoise pâle","purple":"pourpre","gainsboro":"gris souris","plum":"prune","red":"rouge","blue":"bleu","forestgreen":"vert sapin","darkgreen":"vert foncé","honeydew":"opalin","darkseagreen":"vert d'eau foncé","lightcoral":"corail clair","palevioletred":"rouge violacé pâle","mediumpurple":"pourpre moyen","saddlebrown":"brun cuir","darkmagenta":"magenta foncé","thistle":"chardon","whitesmoke":"blanc cendré","wheat":"blé","violet":"violet","lightskyblue":"bleu ciel clair","goldenrod":"jaune paille","mediumblue":"bleu moyen","skyblue":"bleu ciel","crimson":"cramoisi","darksalmon":"saumon foncé","darkred":"rouge foncé","darkslategrey":"gris ardoise foncé","peru":"caramel","lightgrey":"gris clair","lightgoldenrodyellow":"jaune paille clair","blanchedalmond":"coquille d'œuf","aliceblue":"bleu gris","bisque":"beige rosé","slategray":"gris ardoise","palegoldenrod":"jaune paille pâle","darkorange":"orange foncé","aquamarine":"aigue-marine","lightgreen":"vert clair","burlywood":"bois précieux","dodgerblue":"bleu France","darkgray":"gris foncé","lightcyan":"cyan clair","powderblue":"bleu de smalt","blueviolet":"bleu-violet","orchid":"lilas","dimgray":"gris soutenu","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavandin","hotpink":"rose intense","steelblue":"bleu acier","tomato":"tomate","lightpink":"rose clair","limegreen":"citron vert","indianred":"rose indien","papayawhip":"crème de papaye","lightslategray":"gris ardoise clair","gray":"gris","mediumorchid":"lilas moyen","cornsilk":"vanille","black":"noir","seagreen":"vert d'eau","darkslateblue":"bleu ardoise foncé","khaki":"kaki","lightblue":"bleu clair","palegreen":"vert pâle","azure":"bleu azur","peachpuff":"pêche","darkolivegreen":"olive foncé","yellowgreen":"vert jaunâtre"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Choix précédents","nextMessage":"Plus de choix"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Annuler","buttonSave":"Sauvegarder","itemClose":"Fermer"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_fr-fr",{"dojo/nls/colors":{"aliceblue":"bleu gris","antiquewhite":"blanc antique","aqua":"bleu-vert","aquamarine":"aigue-marine","azure":"bleu azur","beige":"beige","bisque":"beige rosé","black":"noir","blanchedalmond":"coquille d'œuf","blue":"bleu","blueviolet":"bleu-violet","brown":"brun","burlywood":"bois précieux","cadetblue":"bleu pétrole","chartreuse":"vert vif","chocolate":"chocolat","coral":"corail","cornflowerblue":"bleuet","cornsilk":"vanille","crimson":"cramoisi","cyan":"cyan","darkblue":"bleu foncé","darkcyan":"cyan foncé","darkgoldenrod":"jaune paille foncé","darkgray":"gris foncé","darkgreen":"vert foncé","darkgrey":"gris foncé","darkkhaki":"kaki foncé","darkmagenta":"magenta foncé","darkolivegreen":"olive foncé","darkorange":"orange foncé","darkorchid":"lilas foncé","darkred":"rouge foncé","darksalmon":"saumon foncé","darkseagreen":"vert d'eau foncé","darkslateblue":"bleu ardoise foncé","darkslategray":"gris ardoise foncé","darkslategrey":"gris ardoise foncé","darkturquoise":"turquoise foncé","darkviolet":"violet foncé","deeppink":"rose soutenu","deepskyblue":"bleu ciel soutenu","dimgray":"gris soutenu","dimgrey":"gris soutenu","dodgerblue":"bleu France","firebrick":"rouge brique","floralwhite":"lys","forestgreen":"vert sapin","fuchsia":"fuchsia","gainsboro":"gris souris","ghostwhite":"blanc laiteux","gold":"or","goldenrod":"jaune paille","gray":"gris","green":"vert","greenyellow":"vert-jaune","grey":"gris","honeydew":"opalin","hotpink":"rose intense","indianred":"rose indien","indigo":"indigo","ivory":"ivoire","khaki":"kaki","lavender":"lavande","lavenderblush":"lavandin","lawngreen":"vert prairie","lemonchiffon":"mousse de citron","lightblue":"bleu clair","lightcoral":"corail clair","lightcyan":"cyan clair","lightgoldenrodyellow":"jaune paille clair","lightgray":"gris clair","lightgreen":"vert clair","lightgrey":"gris clair","lightpink":"rose clair","lightsalmon":"saumon clair","lightseagreen":"vert d'eau clair","lightskyblue":"bleu ciel clair","lightslategray":"gris ardoise clair","lightslategrey":"gris ardoise clair","lightsteelblue":"bleu acier clair","lightyellow":"jaune clair","lime":"vert citron","limegreen":"citron vert","linen":"écru","magenta":"magenta","maroon":"marron","mediumaquamarine":"aigue-marine moyen","mediumblue":"bleu moyen","mediumorchid":"lilas moyen","mediumpurple":"pourpre moyen","mediumseagreen":"vert d'eau moyen","mediumslateblue":"bleu ardoise moyen","mediumspringgreen":"vert printemps moyen","mediumturquoise":"turquoise moyen","mediumvioletred":"rouge violacé moyen","midnightblue":"bleu nuit","mintcream":"crème de menthe","mistyrose":"rose pâle","moccasin":"chamois","navajowhite":"chair","navy":"bleu marine","oldlace":"blanc cassé","olive":"olive","olivedrab":"brun verdâtre","orange":"orange","orangered":"rouge orangé","orchid":"lilas","palegoldenrod":"jaune paille pâle","palegreen":"vert pâle","paleturquoise":"turquoise pâle","palevioletred":"rouge violacé pâle","papayawhip":"crème de papaye","peachpuff":"pêche","peru":"caramel","pink":"rose","plum":"prune","powderblue":"bleu de smalt","purple":"pourpre","red":"rouge","rosybrown":"vieux rose","royalblue":"bleu roi","saddlebrown":"brun cuir","salmon":"saumon","sandybrown":"sable","seagreen":"vert d'eau","seashell":"coquillage","sienna":"terre de sienne","silver":"argent","skyblue":"bleu ciel","slateblue":"bleu ardoise","slategray":"gris ardoise","slategrey":"gris ardoise","snow":"neige","springgreen":"vert printemps","steelblue":"bleu acier","tan":"grège","teal":"sarcelle","thistle":"chardon","tomato":"tomate","transparent":"transparent","turquoise":"turquoise","violet":"violet","wheat":"blé","white":"blanc","whitesmoke":"blanc cendré","yellow":"jaune","yellowgreen":"vert jaunâtre"},"dijit/nls/loading":{"loadingState":"Chargement...","errorState":"Une erreur est survenue"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Annuler","buttonSave":"Enregistrer","itemClose":"Fermer"},"dijit/form/nls/validate":{"invalidMessage":"La valeur indiquée n'est pas correcte.","missingMessage":"Cette valeur est requise.","rangeMessage":"Cette valeur n'est pas comprise dans la plage autorisée."},"dijit/form/nls/ComboBox":{"previousMessage":"Choix précédents","nextMessage":"Plus de choix"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 Bn","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤;(#,##0.00 ¤)","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat-long":"000 billions","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_he-il.js b/lib/dojo/nls/tt-rss-layer_he-il.js
index f651b8768..26275126e 100644
--- a/lib/dojo/nls/tt-rss-layer_he-il.js
+++ b/lib/dojo/nls/tt-rss-layer_he-il.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_he-il",{"dijit/form/nls/validate":{"rangeMessage":"הערך מחוץ לטווח.","invalidMessage":"הערך שצוין אינו חוקי.","missingMessage":"זהו ערך דרוש."},"dijit/nls/loading":{"loadingState":"טעינה...","errorState":"אירעה שגיאה"},"dojo/nls/colors":{"lightsteelblue":"כחול פלדה בהיר","orangered":"כתום אדום","midnightblue":"כחול כהה","cadetblue":"כחול ים","seashell":"צדף","slategrey":"אפור צפחה","coral":"אלמוג","darkturquoise":"טורקיז כהה","antiquewhite":"לבן עתיק","mediumspringgreen":"ירוק אביב בינוני","transparent":"transparent","salmon":"סלמון","darkgrey":"אפור כהה","ivory":"שנהב","greenyellow":"ירוק-צהוב","mistyrose":"ורוד מעורפל","lightsalmon":"סלמון בהיר","silver":"כסף","dimgrey":"אפור עמום","orange":"כתום","white":"לבן","navajowhite":"לבן נוואחו","royalblue":"כחול מלכותי","deeppink":"ורוד עמוק","lime":"לימון","oldlace":"תחרה עתיקה","chartreuse":"ירוק-צהוב","darkcyan":"טורקיז כהה","yellow":"צהוב","linen":"פשתן","olive":"זית","gold":"זהב","lawngreen":"ירוק דשא","lightyellow":"צהוב בהיר","tan":"חום אדמדם","darkviolet":"סגול כהה","lightslategrey":"אפור צפחה בהיר","grey":"אפור","darkkhaki":"חאקי כהה","green":"ירוק","deepskyblue":"כחול שמיים עמוק","aqua":"אקווה","sienna":"סיינה","mintcream":"קרם מנטה","rosybrown":"חום ורדרד","mediumslateblue":"כחול צפחה בינוני","magenta":"בורדו","lightseagreen":"ירוק ים בהיר","cyan":"טורקיז","olivedrab":"זית עמום","darkgoldenrod":"זהוב כהה","slateblue":"כחול צפחה","mediumaquamarine":"כחול בינוני","lavender":"לבנדר","mediumseagreen":"ירוק ים בינוני","maroon":"חום אדמדם","darkslategray":"אפור צפחה כהה","mediumturquoise":"טורקיז בינוני","ghostwhite":"לבן רפאים","darkblue":"כחול כהה","mediumvioletred":"סגול-אדום בינוני","brown":"חום","lightgray":"אפור בהיר","sandybrown":"חום חולי","pink":"ורוד","firebrick":"לבנה שרופה","indigo":"אינדיגו","snow":"שלג","darkorchid":"סחלב כהה","turquoise":"טורקיז","chocolate":"שוקולד","springgreen":"ירוק אביב","moccasin":"מוקסין","navy":"כחול כהה","lemonchiffon":"ירוק לימון","teal":"כחול-ירוק כהה","floralwhite":"לבן פרחוני","cornflowerblue":"כחול דרדר","paleturquoise":"טורקיז בהיר","purple":"סגול","gainsboro":"גיינסבורו","plum":"שזיף","red":"אדום","blue":"כחול","forestgreen":"ירוק יער","darkgreen":"ירוק כהה","honeydew":"ירקרק","darkseagreen":"ירוק ים כהה","lightcoral":"אלמוג בהיר","palevioletred":"סגול-אדום בהיר","mediumpurple":"סגול בינוני","saddlebrown":"חום דהוי","darkmagenta":"בורדו כהה","thistle":"דרדר","whitesmoke":"עשן לבן","wheat":"חיוט","violet":"סגול","lightskyblue":"כחול שמיים בהיר","goldenrod":"זהוב","mediumblue":"תכלת בינוני","skyblue":"כחול שמיים","crimson":"ארגמן","darksalmon":"סלמון כהה","darkred":"אדום כהה","darkslategrey":"אפור צפחה כהה","peru":"פרו","lightgrey":"אפור בהיר","lightgoldenrodyellow":"צהוב בהיר","blanchedalmond":"שקד","aliceblue":"כחול פלדה","bisque":"לבן שקד","slategray":"אפור צפחה","palegoldenrod":"זהוב בהיר","darkorange":"כתום כהה","aquamarine":"אקוומארין","lightgreen":"ירוק בהיר","burlywood":"חום דהוי","dodgerblue":"כחול","darkgray":"אפור כהה","lightcyan":"טורקיז בהיר","powderblue":"כחול חיוור","blueviolet":"כחול-סגול","orchid":"סחלב","dimgray":"אפור עמום","beige":"בז'","fuchsia":"ורוד בהיר","lavenderblush":"סומק לבנדר","hotpink":"ורוד לוהט","steelblue":"כחול פלדה","tomato":"עגבניה","lightpink":"ורוד בהיר","limegreen":"ירוק לימוני","indianred":"אדום דהוי","papayawhip":"פפאיה","lightslategray":"אפור צפחה בהיר","gray":"אפור","mediumorchid":"סחלב בינוני","cornsilk":"צהבהב","black":"שחור","seagreen":"ירוק ים","darkslateblue":"כחול צפחה כהה","khaki":"חאקי","lightblue":"תכלת","palegreen":"ירוק בהיר","azure":"תכלת עז","peachpuff":"קציפת אפרסק","darkolivegreen":"ירוק זית כהה","yellowgreen":"ירוק צהוב"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"האפשרויות הקודמות","nextMessage":"אפשרויות נוספות"},"dijit/nls/common":{"buttonOk":"אישור","buttonCancel":"ביטול","buttonSave":"שמירה","itemClose":"סגירה"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_he-il",{"dojo/nls/colors":{"aliceblue":"כחול פלדה","antiquewhite":"לבן עתיק","aqua":"אקווה","aquamarine":"אקוומארין","azure":"תכלת עז","beige":"בז'","bisque":"לבן שקד","black":"שחור","blanchedalmond":"שקד","blue":"כחול","blueviolet":"כחול-סגול","brown":"חום","burlywood":"חום דהוי","cadetblue":"כחול ים","chartreuse":"ירוק-צהוב","chocolate":"שוקולד","coral":"אלמוג","cornflowerblue":"כחול דרדר","cornsilk":"צהבהב","crimson":"ארגמן","cyan":"טורקיז","darkblue":"כחול כהה","darkcyan":"טורקיז כהה","darkgoldenrod":"זהוב כהה","darkgray":"אפור כהה","darkgreen":"ירוק כהה","darkgrey":"אפור כהה","darkkhaki":"חאקי כהה","darkmagenta":"בורדו כהה","darkolivegreen":"ירוק זית כהה","darkorange":"כתום כהה","darkorchid":"סחלב כהה","darkred":"אדום כהה","darksalmon":"סלמון כהה","darkseagreen":"ירוק ים כהה","darkslateblue":"כחול צפחה כהה","darkslategray":"אפור צפחה כהה","darkslategrey":"אפור צפחה כהה","darkturquoise":"טורקיז כהה","darkviolet":"סגול כהה","deeppink":"ורוד עמוק","deepskyblue":"כחול שמיים עמוק","dimgray":"אפור עמום","dimgrey":"אפור עמום","dodgerblue":"כחול","firebrick":"לבנה שרופה","floralwhite":"לבן פרחוני","forestgreen":"ירוק יער","fuchsia":"ורוד בהיר","gainsboro":"גיינסבורו","ghostwhite":"לבן רפאים","gold":"זהב","goldenrod":"זהוב","gray":"אפור","green":"ירוק","greenyellow":"ירוק-צהוב","grey":"אפור","honeydew":"ירקרק","hotpink":"ורוד לוהט","indianred":"אדום דהוי","indigo":"אינדיגו","ivory":"שנהב","khaki":"חאקי","lavender":"לבנדר","lavenderblush":"סומק לבנדר","lawngreen":"ירוק דשא","lemonchiffon":"ירוק לימון","lightblue":"תכלת","lightcoral":"אלמוג בהיר","lightcyan":"טורקיז בהיר","lightgoldenrodyellow":"צהוב בהיר","lightgray":"אפור בהיר","lightgreen":"ירוק בהיר","lightgrey":"אפור בהיר","lightpink":"ורוד בהיר","lightsalmon":"סלמון בהיר","lightseagreen":"ירוק ים בהיר","lightskyblue":"כחול שמיים בהיר","lightslategray":"אפור צפחה בהיר","lightslategrey":"אפור צפחה בהיר","lightsteelblue":"כחול פלדה בהיר","lightyellow":"צהוב בהיר","lime":"לימון","limegreen":"ירוק לימוני","linen":"פשתן","magenta":"בורדו","maroon":"חום אדמדם","mediumaquamarine":"כחול בינוני","mediumblue":"תכלת בינוני","mediumorchid":"סחלב בינוני","mediumpurple":"סגול בינוני","mediumseagreen":"ירוק ים בינוני","mediumslateblue":"כחול צפחה בינוני","mediumspringgreen":"ירוק אביב בינוני","mediumturquoise":"טורקיז בינוני","mediumvioletred":"סגול-אדום בינוני","midnightblue":"כחול כהה","mintcream":"קרם מנטה","mistyrose":"ורוד מעורפל","moccasin":"מוקסין","navajowhite":"לבן נוואחו","navy":"כחול כהה","oldlace":"תחרה עתיקה","olive":"זית","olivedrab":"זית עמום","orange":"כתום","orangered":"כתום אדום","orchid":"סחלב","palegoldenrod":"זהוב בהיר","palegreen":"ירוק בהיר","paleturquoise":"טורקיז בהיר","palevioletred":"סגול-אדום בהיר","papayawhip":"פפאיה","peachpuff":"קציפת אפרסק","peru":"פרו","pink":"ורוד","plum":"שזיף","powderblue":"כחול חיוור","purple":"סגול","red":"אדום","rosybrown":"חום ורדרד","royalblue":"כחול מלכותי","saddlebrown":"חום דהוי","salmon":"סלמון","sandybrown":"חום חולי","seagreen":"ירוק ים","seashell":"צדף","sienna":"סיינה","silver":"כסף","skyblue":"כחול שמיים","slateblue":"כחול צפחה","slategray":"אפור צפחה","slategrey":"אפור צפחה","snow":"שלג","springgreen":"ירוק אביב","steelblue":"כחול פלדה","tan":"חום אדמדם","teal":"כחול-ירוק כהה","thistle":"דרדר","tomato":"עגבניה","transparent":"שקוף","turquoise":"טורקיז","violet":"סגול","wheat":"חיוט","white":"לבן","whitesmoke":"עשן לבן","yellow":"צהוב","yellowgreen":"ירוק צהוב"},"dijit/nls/loading":{"loadingState":"טעינה...","errorState":"אירעה שגיאה"},"dijit/nls/common":{"buttonOk":"אישור","buttonCancel":"ביטול","buttonSave":"שמירה","itemClose":"סגירה"},"dijit/form/nls/validate":{"invalidMessage":"הערך שצוין אינו חוקי.","missingMessage":"זהו ערך דרוש.","rangeMessage":"הערך מחוץ לטווח."},"dijit/form/nls/ComboBox":{"previousMessage":"האפשרויות הקודמות","nextMessage":"אפשרויות נוספות"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000 טריליון","decimalFormat":"#,##0.###","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_hu.js b/lib/dojo/nls/tt-rss-layer_hu.js
index ff8685773..2bed72168 100644
--- a/lib/dojo/nls/tt-rss-layer_hu.js
+++ b/lib/dojo/nls/tt-rss-layer_hu.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_hu",{"dijit/form/nls/validate":{"rangeMessage":"Az érték kívül van a megengedett tartományon.","invalidMessage":"A megadott érték érvénytelen.","missingMessage":"Meg kell adni egy értéket."},"dijit/nls/loading":{"loadingState":"Betöltés...","errorState":"Sajnálom, hiba történt"},"dojo/nls/colors":{"lightsteelblue":"világos acélkék","orangered":"narancsvörös","midnightblue":"éjkék","cadetblue":"kadétkék","seashell":"kagyló","slategrey":"palaszürke","coral":"korall","darkturquoise":"sötét türkizkék","antiquewhite":"antik fehér","mediumspringgreen":"közepes tavaszzöld","transparent":"átlátszó","salmon":"lazacszín","darkgrey":"sötétszürke","ivory":"elefántcsont","greenyellow":"zöldessárga","mistyrose":"halvány rózsaszín","lightsalmon":"világos lazacszín","silver":"ezüst","dimgrey":"halványszürke","orange":"narancssárga","white":"fehér","navajowhite":"navajo fehér","royalblue":"királykék","deeppink":"sötétrózsaszín","lime":"lime","oldlace":"régi csipke","chartreuse":"chartreuse","darkcyan":"sötét ciánkék","yellow":"sárga","linen":"vászonfehér","olive":"olajzöld","gold":"arany","lawngreen":"fűzöld","lightyellow":"világossárga","tan":"rozsdabarna","darkviolet":"sötét ibolyaszín","lightslategrey":"világos palaszürke","grey":"szürke","darkkhaki":"sötét khakiszín","green":"zöld","deepskyblue":"sötét égszínkék","aqua":"vízszín","sienna":"vörösesbarna","mintcream":"mentaszósz","rosybrown":"barnásrózsaszín","mediumslateblue":"közepes palakék","magenta":"bíbor","lightseagreen":"világos tengerzöld","cyan":"ciánkék","olivedrab":"olajzöld drapp","darkgoldenrod":"sötét aranyvessző","slateblue":"palakék","mediumaquamarine":"közepes akvamarin","lavender":"levendula","mediumseagreen":"közepes tengerzöld","maroon":"gesztenyebarna","darkslategray":"sötét palaszürke","mediumturquoise":"közepes türkizkék","ghostwhite":"szellemfehér","darkblue":"sötétkék","mediumvioletred":"közepes ibolyavörös","brown":"barna","lightgray":"világosszürke","sandybrown":"homokbarna","pink":"rózsaszín","firebrick":"téglavörös","indigo":"indigó","snow":"hó","darkorchid":"sötét orchidea","turquoise":"türkizkék","chocolate":"csokoládé","springgreen":"tavaszzöld","moccasin":"mokkaszín","navy":"tengerészkék","lemonchiffon":"sárga műselyem","teal":"pávakék","floralwhite":"virágfehér","cornflowerblue":"búzavirágkék","paleturquoise":"halvány türkizkék","purple":"lila","gainsboro":"gainsboro","plum":"szilvakék","red":"vörös","blue":"kék","forestgreen":"erdőzöld","darkgreen":"sötétzöld","honeydew":"mézharmat","darkseagreen":"sötét tengerzöld","lightcoral":"világos korall","palevioletred":"halvány ibolyavörös","mediumpurple":"közepes lila","saddlebrown":"nyeregbarna","darkmagenta":"sötétbíbor","thistle":"bogáncs","whitesmoke":"fehér füst","wheat":"búza","violet":"ibolyaszín","lightskyblue":"világos égszínkék","goldenrod":"aranyvessző","mediumblue":"közepes kék","skyblue":"égszínkék","crimson":"karmazsinvörös","darksalmon":"sötét lazacszín","darkred":"sötétvörös","darkslategrey":"sötét palaszürke","peru":"peru","lightgrey":"világosszürke","lightgoldenrodyellow":"világos aranyvessző sárga","blanchedalmond":"hámozott mandula","aliceblue":"Alice kék","bisque":"porcelán","slategray":"palaszürke","palegoldenrod":"halvány aranyvessző","darkorange":"sötét narancssárga","aquamarine":"akvamarin","lightgreen":"világoszöld","burlywood":"nyersfa","dodgerblue":"dodger kék","darkgray":"sötétszürke","lightcyan":"világos ciánkék","powderblue":"púderkék","blueviolet":"ibolyakék","orchid":"orchidea","dimgray":"halványszürke","beige":"bézs","fuchsia":"fukszia","lavenderblush":"pirosas levendula","hotpink":"meleg rózsaszín","steelblue":"acélkék","tomato":"paradicsom","lightpink":"világos rózsaszín","limegreen":"limezöld","indianred":"indiánvörös","papayawhip":"papayahab","lightslategray":"világos palaszürke","gray":"szürke","mediumorchid":"közepes orchidea","cornsilk":"kukoricahaj","black":"fekete","seagreen":"tengerzöld","darkslateblue":"sötét palakék","khaki":"khakiszín","lightblue":"világoskék","palegreen":"halványzöld","azure":"azúrkék","peachpuff":"barackszín","darkolivegreen":"sötét olajzöld","yellowgreen":"sárgászöld"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":" ","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Előző menüpontok","nextMessage":"További menüpontok"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Mégse","buttonSave":"Mentés","itemClose":"Bezárás"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_hu",{"dojo/nls/colors":{"aliceblue":"Alice kék","antiquewhite":"antik fehér","aqua":"vízszín","aquamarine":"akvamarin","azure":"azúrkék","beige":"bézs","bisque":"porcelán","black":"fekete","blanchedalmond":"hámozott mandula","blue":"kék","blueviolet":"ibolyakék","brown":"barna","burlywood":"nyersfa","cadetblue":"kadétkék","chartreuse":"chartreuse","chocolate":"csokoládé","coral":"korall","cornflowerblue":"búzavirágkék","cornsilk":"kukoricahaj","crimson":"karmazsinvörös","cyan":"ciánkék","darkblue":"sötétkék","darkcyan":"sötét ciánkék","darkgoldenrod":"sötét aranyvessző","darkgray":"sötétszürke","darkgreen":"sötétzöld","darkgrey":"sötétszürke","darkkhaki":"sötét khakiszín","darkmagenta":"sötétbíbor","darkolivegreen":"sötét olajzöld","darkorange":"sötét narancssárga","darkorchid":"sötét orchidea","darkred":"sötétvörös","darksalmon":"sötét lazacszín","darkseagreen":"sötét tengerzöld","darkslateblue":"sötét palakék","darkslategray":"sötét palaszürke","darkslategrey":"sötét palaszürke","darkturquoise":"sötét türkizkék","darkviolet":"sötét ibolyaszín","deeppink":"sötétrózsaszín","deepskyblue":"sötét égszínkék","dimgray":"halványszürke","dimgrey":"halványszürke","dodgerblue":"dodger kék","firebrick":"téglavörös","floralwhite":"virágfehér","forestgreen":"erdőzöld","fuchsia":"fukszia","gainsboro":"gainsboro","ghostwhite":"szellemfehér","gold":"arany","goldenrod":"aranyvessző","gray":"szürke","green":"zöld","greenyellow":"zöldessárga","grey":"szürke","honeydew":"mézharmat","hotpink":"meleg rózsaszín","indianred":"indiánvörös","indigo":"indigó","ivory":"elefántcsont","khaki":"khakiszín","lavender":"levendula","lavenderblush":"pirosas levendula","lawngreen":"fűzöld","lemonchiffon":"sárga műselyem","lightblue":"világoskék","lightcoral":"világos korall","lightcyan":"világos ciánkék","lightgoldenrodyellow":"világos aranyvessző sárga","lightgray":"világosszürke","lightgreen":"világoszöld","lightgrey":"világosszürke","lightpink":"világos rózsaszín","lightsalmon":"világos lazacszín","lightseagreen":"világos tengerzöld","lightskyblue":"világos égszínkék","lightslategray":"világos palaszürke","lightslategrey":"világos palaszürke","lightsteelblue":"világos acélkék","lightyellow":"világossárga","lime":"lime","limegreen":"limezöld","linen":"vászonfehér","magenta":"bíbor","maroon":"gesztenyebarna","mediumaquamarine":"közepes akvamarin","mediumblue":"közepes kék","mediumorchid":"közepes orchidea","mediumpurple":"közepes lila","mediumseagreen":"közepes tengerzöld","mediumslateblue":"közepes palakék","mediumspringgreen":"közepes tavaszzöld","mediumturquoise":"közepes türkizkék","mediumvioletred":"közepes ibolyavörös","midnightblue":"éjkék","mintcream":"mentaszósz","mistyrose":"halvány rózsaszín","moccasin":"mokkaszín","navajowhite":"navajo fehér","navy":"tengerészkék","oldlace":"régi csipke","olive":"olajzöld","olivedrab":"olajzöld drapp","orange":"narancssárga","orangered":"narancsvörös","orchid":"orchidea","palegoldenrod":"halvány aranyvessző","palegreen":"halványzöld","paleturquoise":"halvány türkizkék","palevioletred":"halvány ibolyavörös","papayawhip":"papayahab","peachpuff":"barackszín","peru":"peru","pink":"rózsaszín","plum":"szilvakék","powderblue":"púderkék","purple":"lila","red":"vörös","rosybrown":"barnásrózsaszín","royalblue":"királykék","saddlebrown":"nyeregbarna","salmon":"lazacszín","sandybrown":"homokbarna","seagreen":"tengerzöld","seashell":"kagyló","sienna":"vörösesbarna","silver":"ezüst","skyblue":"égszínkék","slateblue":"palakék","slategray":"palaszürke","slategrey":"palaszürke","snow":"hó","springgreen":"tavaszzöld","steelblue":"acélkék","tan":"rozsdabarna","teal":"pávakék","thistle":"bogáncs","tomato":"paradicsom","transparent":"átlátszó","turquoise":"türkizkék","violet":"ibolyaszín","wheat":"búza","white":"fehér","whitesmoke":"fehér füst","yellow":"sárga","yellowgreen":"sárgászöld"},"dijit/nls/loading":{"loadingState":"Betöltés...","errorState":"Sajnálom, hiba történt"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Mégse","buttonSave":"Mentés","itemClose":"Bezárás"},"dijit/form/nls/validate":{"invalidMessage":"A megadott érték érvénytelen.","missingMessage":"Meg kell adni egy értéket.","rangeMessage":"Az érték kívül van a megengedett tartományon."},"dijit/form/nls/ComboBox":{"previousMessage":"Előző menüpontok","nextMessage":"További menüpontok"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 B","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":" ","percentFormat":"#,##0%","decimalFormat-long":"000 billió","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_it-it.js b/lib/dojo/nls/tt-rss-layer_it-it.js
index 280e60c15..d50b94d55 100644
--- a/lib/dojo/nls/tt-rss-layer_it-it.js
+++ b/lib/dojo/nls/tt-rss-layer_it-it.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_it-it",{"dijit/form/nls/validate":{"rangeMessage":"Questo valore non è compreso nell'intervallo.","invalidMessage":"Il valore immesso non è valido.","missingMessage":"Questo valore è obbligatorio."},"dijit/nls/loading":{"loadingState":"Caricamento in corso...","errorState":"Si è verificato un errore"},"dojo/nls/colors":{"lightsteelblue":"blu acciaio chiaro","orangered":"vermiglio","midnightblue":"blu notte","cadetblue":"verde petrolio","seashell":"sabbia rosa","slategrey":"grigio ardesia","coral":"corallo","darkturquoise":"turchese scuro","antiquewhite":"rosa antico","mediumspringgreen":"verde brillante medio","transparent":"trasparente","salmon":"salmone","darkgrey":"grigio scuro","ivory":"avorio","greenyellow":"verde-giallo","mistyrose":"rosa pallido","lightsalmon":"salmone chiaro","silver":"argento","dimgrey":"grigio tenue","orange":"arancione","white":"bianco","navajowhite":"sabbia","royalblue":"royal blue","deeppink":"ciclamino","lime":"lime","oldlace":"mandorla","chartreuse":"verde brillante","darkcyan":"celeste scuro","yellow":"giallo","linen":"lino","olive":"verde oliva","gold":"oro","lawngreen":"verde brillante chiaro","lightyellow":"giallo chiaro","tan":"tan","darkviolet":"viola scuro","lightslategrey":"grigio ardesia chiaro","grey":"grigio","darkkhaki":"cachi scuro","green":"verde","deepskyblue":"azzurro intenso","aqua":"verde acqua","sienna":"terra di siena","mintcream":"bianco nuvola","rosybrown":"caffè latte","mediumslateblue":"blu ardesia medio","magenta":"magenta","lightseagreen":"verde acqua chiaro","cyan":"ciano","olivedrab":"verde bottiglia","darkgoldenrod":"ocra scuro","slateblue":"blu ardesia","mediumaquamarine":"acquamarina medio","lavender":"lavanda","mediumseagreen":"verde acqua medio","maroon":"Bordeaux","darkslategray":"grigio ardesia scuro","mediumturquoise":"turchese medio","ghostwhite":"bianco gesso","darkblue":"blu scuro","mediumvioletred":"violetto rosso medio","brown":"marrone","lightgray":"grigio chiaro","sandybrown":"argilla","pink":"rosa","firebrick":"mattone","indigo":"indaco","snow":"neve","darkorchid":"orchidea scuro","turquoise":"turchese","chocolate":"cioccolato","springgreen":"verde brillante","moccasin":"mocassino","navy":"blu scuro","lemonchiffon":"lemon chiffon","teal":"verde acqua","floralwhite":"bianco grigio","cornflowerblue":"blu fiordaliso","paleturquoise":"turchese pallido","purple":"viola","gainsboro":"gainsboro","plum":"prugna","red":"rosso","blue":"blu","forestgreen":"verde pino scuro","darkgreen":"verde scuro","honeydew":"miele","darkseagreen":"verde acqua scuro","lightcoral":"corallo chiaro","palevioletred":"violetto rosso pallido","mediumpurple":"viola medio","saddlebrown":"cacao","darkmagenta":"magenta scuro","thistle":"rosa cenere","whitesmoke":"bianco fumo","wheat":"tabacco","violet":"violetto","lightskyblue":"azzurro chiaro","goldenrod":"dorato","mediumblue":"blu medio","skyblue":"azzurro","crimson":"rosso scarlatto","darksalmon":"salmone scuro","darkred":"rosso scuro","darkslategrey":"grigio ardesia scuro","peru":"perù","lightgrey":"grigio chiaro","lightgoldenrodyellow":"giallo dorato chiaro","blanchedalmond":"beige 2","aliceblue":"bianco ghiaccio","bisque":"terracotta","slategray":"grigio ardesia","palegoldenrod":"dorato pallido","darkorange":"arancione scuro","aquamarine":"acquamarina","lightgreen":"verde chiaro","burlywood":"legno massiccio","dodgerblue":"dodger blue","darkgray":"grigio scuro","lightcyan":"ciano chiaro","powderblue":"azzurro polvere","blueviolet":"violetto bluastro","orchid":"orchidea","dimgray":"grigio tenue","beige":"beige","fuchsia":"fucsia","lavenderblush":"lavanda rosa","hotpink":"rosa acceso","steelblue":"blu brillante","tomato":"pomodoro","lightpink":"rosa chiaro","limegreen":"verde lime","indianred":"terra indiana","papayawhip":"papaya","lightslategray":"grigio ardesia chiaro","gray":"grigio","mediumorchid":"orchidea medio","cornsilk":"crema","black":"nero","seagreen":"verde acqua","darkslateblue":"blu ardesia scuro","khaki":"cachi","lightblue":"blu chiaro","palegreen":"verde pallido","azure":"azure","peachpuff":"pesche","darkolivegreen":"verde oliva scuro","yellowgreen":"giallo verde"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Scelte precedenti","nextMessage":"Altre scelte"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Annulla","buttonSave":"Salva","itemClose":"Chiudi"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_it-it",{"dojo/nls/colors":{"aliceblue":"bianco ghiaccio","antiquewhite":"rosa antico","aqua":"verde acqua","aquamarine":"acquamarina","azure":"azure","beige":"beige","bisque":"terracotta","black":"nero","blanchedalmond":"beige 2","blue":"blu","blueviolet":"violetto bluastro","brown":"marrone","burlywood":"legno massiccio","cadetblue":"verde petrolio","chartreuse":"verde brillante","chocolate":"cioccolato","coral":"corallo","cornflowerblue":"blu fiordaliso","cornsilk":"crema","crimson":"rosso scarlatto","cyan":"ciano","darkblue":"blu scuro","darkcyan":"celeste scuro","darkgoldenrod":"ocra scuro","darkgray":"grigio scuro","darkgreen":"verde scuro","darkgrey":"grigio scuro","darkkhaki":"cachi scuro","darkmagenta":"magenta scuro","darkolivegreen":"verde oliva scuro","darkorange":"arancione scuro","darkorchid":"orchidea scuro","darkred":"rosso scuro","darksalmon":"salmone scuro","darkseagreen":"verde acqua scuro","darkslateblue":"blu ardesia scuro","darkslategray":"grigio ardesia scuro","darkslategrey":"grigio ardesia scuro","darkturquoise":"turchese scuro","darkviolet":"viola scuro","deeppink":"ciclamino","deepskyblue":"azzurro intenso","dimgray":"grigio tenue","dimgrey":"grigio tenue","dodgerblue":"dodger blue","firebrick":"mattone","floralwhite":"bianco grigio","forestgreen":"verde pino scuro","fuchsia":"fucsia","gainsboro":"gainsboro","ghostwhite":"bianco gesso","gold":"oro","goldenrod":"dorato","gray":"grigio","green":"verde","greenyellow":"verde-giallo","grey":"grigio","honeydew":"miele","hotpink":"rosa acceso","indianred":"terra indiana","indigo":"indaco","ivory":"avorio","khaki":"cachi","lavender":"lavanda","lavenderblush":"lavanda rosa","lawngreen":"verde brillante chiaro","lemonchiffon":"lemon chiffon","lightblue":"blu chiaro","lightcoral":"corallo chiaro","lightcyan":"ciano chiaro","lightgoldenrodyellow":"giallo dorato chiaro","lightgray":"grigio chiaro","lightgreen":"verde chiaro","lightgrey":"grigio chiaro","lightpink":"rosa chiaro","lightsalmon":"salmone chiaro","lightseagreen":"verde acqua chiaro","lightskyblue":"azzurro chiaro","lightslategray":"grigio ardesia chiaro","lightslategrey":"grigio ardesia chiaro","lightsteelblue":"blu acciaio chiaro","lightyellow":"giallo chiaro","lime":"lime","limegreen":"verde lime","linen":"lino","magenta":"magenta","maroon":"Bordeaux","mediumaquamarine":"acquamarina medio","mediumblue":"blu medio","mediumorchid":"orchidea medio","mediumpurple":"viola medio","mediumseagreen":"verde acqua medio","mediumslateblue":"blu ardesia medio","mediumspringgreen":"verde brillante medio","mediumturquoise":"turchese medio","mediumvioletred":"violetto rosso medio","midnightblue":"blu notte","mintcream":"bianco nuvola","mistyrose":"rosa pallido","moccasin":"mocassino","navajowhite":"sabbia","navy":"blu scuro","oldlace":"mandorla","olive":"verde oliva","olivedrab":"verde bottiglia","orange":"arancione","orangered":"vermiglio","orchid":"orchidea","palegoldenrod":"dorato pallido","palegreen":"verde pallido","paleturquoise":"turchese pallido","palevioletred":"violetto rosso pallido","papayawhip":"papaya","peachpuff":"pesche","peru":"perù","pink":"rosa","plum":"prugna","powderblue":"azzurro polvere","purple":"viola","red":"rosso","rosybrown":"caffè latte","royalblue":"royal blue","saddlebrown":"cacao","salmon":"salmone","sandybrown":"argilla","seagreen":"verde acqua","seashell":"sabbia rosa","sienna":"terra di siena","silver":"argento","skyblue":"azzurro","slateblue":"blu ardesia","slategray":"grigio ardesia","slategrey":"grigio ardesia","snow":"neve","springgreen":"verde brillante","steelblue":"blu brillante","tan":"tan","teal":"verde acqua","thistle":"rosa cenere","tomato":"pomodoro","transparent":"trasparente","turquoise":"turchese","violet":"violetto","wheat":"tabacco","white":"bianco","whitesmoke":"bianco fumo","yellow":"giallo","yellowgreen":"giallo verde"},"dijit/nls/loading":{"loadingState":"Caricamento in corso...","errorState":"Si è verificato un errore"},"dijit/nls/common":{"buttonOk":"Ok","buttonCancel":"Annulla","buttonSave":"Salva","itemClose":"Chiudi"},"dijit/form/nls/validate":{"invalidMessage":"Il valore immesso non è valido.","missingMessage":"Questo valore è obbligatorio.","rangeMessage":"Questo valore è fuori dall'intervallo consentito."},"dijit/form/nls/ComboBox":{"previousMessage":"Scelte precedenti","nextMessage":"Scelte successive"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 B","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤ #,##0.00","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat-long":"000 bilioni","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_ja-jp.js b/lib/dojo/nls/tt-rss-layer_ja-jp.js
index a16c85f20..57734cfc1 100644
--- a/lib/dojo/nls/tt-rss-layer_ja-jp.js
+++ b/lib/dojo/nls/tt-rss-layer_ja-jp.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_ja-jp",{"dijit/form/nls/validate":{"rangeMessage":"この値は範囲外です。","invalidMessage":"入力した値は無効です。","missingMessage":"この値は必須です。"},"dijit/nls/loading":{"loadingState":"ロード中...","errorState":"エラーが発生しました。"},"dojo/nls/colors":{"lightsteelblue":"ライトスチールブルー","orangered":"オレンジレッド","midnightblue":"ミッドナイトブルー","cadetblue":"くすんだ青","seashell":"シーシェル","slategrey":"スレートグレイ","coral":"珊瑚","darkturquoise":"ダークターコイズ","antiquewhite":"アンティークホワイト","mediumspringgreen":"ミディアムスプリンググリーン","transparent":"透明","salmon":"サーモン","darkgrey":"ダークグレイ","ivory":"アイボリー","greenyellow":"緑黄色","mistyrose":"ミスティローズ","lightsalmon":"ライトサーモン","silver":"銀","dimgrey":"くすんだグレイ","orange":"オレンジ","white":"白","navajowhite":"ナバホホワイト","royalblue":"藤色","deeppink":"濃いピンク","lime":"ライム","oldlace":"オールドレイス","chartreuse":"淡黄緑","darkcyan":"ダークシアンブルー","yellow":"黄","linen":"亜麻色","olive":"オリーブ","gold":"金","lawngreen":"ローングリーン","lightyellow":"ライトイエロー","tan":"茶褐色","darkviolet":"ダークバイオレット","lightslategrey":"ライトスレートグレイ","grey":"グレイ","darkkhaki":"ダークカーキ","green":"緑","deepskyblue":"濃い空色","aqua":"アクア","sienna":"黄褐色","mintcream":"ミントクリーム","rosybrown":"ロージーブラウン","mediumslateblue":"ミディアムスレートブルー","magenta":"赤紫","lightseagreen":"ライトシーグリーン","cyan":"シアンブルー","olivedrab":"濃黄緑","darkgoldenrod":"ダークゴールデンロッド","slateblue":"スレートブルー","mediumaquamarine":"ミディアムアクアマリーン","lavender":"ラベンダー","mediumseagreen":"ミディアムシーグリーン","maroon":"えび茶","darkslategray":"ダークスレートグレイ","mediumturquoise":"ミディアムターコイズ","ghostwhite":"ゴーストホワイト","darkblue":"ダークブルー","mediumvioletred":"ミディアムバイオレットレッド","brown":"茶","lightgray":"ライトグレイ","sandybrown":"砂褐色","pink":"ピンク","firebrick":"赤煉瓦色","indigo":"藍色","snow":"雪色","darkorchid":"ダークオーキッド","turquoise":"ターコイズ","chocolate":"チョコレート","springgreen":"スプリンググリーン","moccasin":"モカシン","navy":"濃紺","lemonchiffon":"レモンシフォン","teal":"ティール","floralwhite":"フローラルホワイト","cornflowerblue":"コーンフラワーブルー","paleturquoise":"ペイルターコイズ","purple":"紫","gainsboro":"ゲインズボーロ","plum":"深紫","red":"赤","blue":"青","forestgreen":"フォレストグリーン","darkgreen":"ダークグリーン","honeydew":"ハニーデュー","darkseagreen":"ダークシーグリーン","lightcoral":"ライトコーラル","palevioletred":"ペイルバイオレットレッド","mediumpurple":"ミディアムパープル","saddlebrown":"サドルブラウン","darkmagenta":"ダークマジェンタ","thistle":"シスル","whitesmoke":"ホワイトスモーク","wheat":"小麦色","violet":"すみれ色","lightskyblue":"ライトスカイブルー","goldenrod":"ゴールデンロッド","mediumblue":"ミディアムブルー","skyblue":"スカイブルー","crimson":"深紅","darksalmon":"ダークサーモン","darkred":"ダークレッド","darkslategrey":"ダークスレートグレイ","peru":"ペルー","lightgrey":"ライトグレイ","lightgoldenrodyellow":"ライトゴールデンロッドイエロー","blanchedalmond":"皮なしアーモンド","aliceblue":"アリスブルー","bisque":"ビスク","slategray":"スレートグレイ","palegoldenrod":"ペイルゴールデンロッド","darkorange":"ダークオレンジ","aquamarine":"碧緑","lightgreen":"ライトグリーン","burlywood":"バーリーウッド","dodgerblue":"ドッジャーブルー","darkgray":"ダークグレイ","lightcyan":"ライトシアン","powderblue":"淡青","blueviolet":"青紫","orchid":"薄紫","dimgray":"くすんだグレイ","beige":"ベージュ","fuchsia":"紫紅色","lavenderblush":"ラベンダーブラッシ","hotpink":"ホットピンク","steelblue":"鋼色","tomato":"トマト色","lightpink":"ライトピンク","limegreen":"ライムグリーン","indianred":"インディアンレッド","papayawhip":"パパイアホイップ","lightslategray":"ライトスレートグレイ","gray":"グレイ","mediumorchid":"ミディアムオーキッド","cornsilk":"コーンシルク","black":"黒","seagreen":"シーグリーン","darkslateblue":"ダークスレートブルー","khaki":"カーキ","lightblue":"ライトブルー","palegreen":"ペイルグリーン","azure":"薄い空色","peachpuff":"ピーチパフ","darkolivegreen":"ダークオリーブグリーン","yellowgreen":"黄緑"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤#,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"以前の選択項目","nextMessage":"追加の選択項目"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"キャンセル","buttonSave":"保存","itemClose":"閉じる"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_ja-jp",{"dojo/nls/colors":{"aliceblue":"アリスブルー","antiquewhite":"アンティークホワイト","aqua":"アクア","aquamarine":"碧緑","azure":"薄い空色","beige":"ベージュ","bisque":"ビスク","black":"黒","blanchedalmond":"皮なしアーモンド","blue":"青","blueviolet":"青紫","brown":"茶","burlywood":"バーリーウッド","cadetblue":"くすんだ青","chartreuse":"淡黄緑","chocolate":"チョコレート","coral":"珊瑚","cornflowerblue":"コーンフラワーブルー","cornsilk":"コーンシルク","crimson":"深紅","cyan":"シアンブルー","darkblue":"ダークブルー","darkcyan":"ダークシアンブルー","darkgoldenrod":"ダークゴールデンロッド","darkgray":"ダークグレイ","darkgreen":"ダークグリーン","darkgrey":"ダークグレイ","darkkhaki":"ダークカーキ","darkmagenta":"ダークマジェンタ","darkolivegreen":"ダークオリーブグリーン","darkorange":"ダークオレンジ","darkorchid":"ダークオーキッド","darkred":"ダークレッド","darksalmon":"ダークサーモン","darkseagreen":"ダークシーグリーン","darkslateblue":"ダークスレートブルー","darkslategray":"ダークスレートグレイ","darkslategrey":"ダークスレートグレイ","darkturquoise":"ダークターコイズ","darkviolet":"ダークバイオレット","deeppink":"濃いピンク","deepskyblue":"濃い空色","dimgray":"くすんだグレイ","dimgrey":"くすんだグレイ","dodgerblue":"ドッジャーブルー","firebrick":"赤煉瓦色","floralwhite":"フローラルホワイト","forestgreen":"フォレストグリーン","fuchsia":"紫紅色","gainsboro":"ゲインズボーロ","ghostwhite":"ゴーストホワイト","gold":"金","goldenrod":"ゴールデンロッド","gray":"グレイ","green":"緑","greenyellow":"緑黄色","grey":"グレイ","honeydew":"ハニーデュー","hotpink":"ホットピンク","indianred":"インディアンレッド","indigo":"藍色","ivory":"アイボリー","khaki":"カーキ","lavender":"ラベンダー","lavenderblush":"ラベンダーブラッシ","lawngreen":"ローングリーン","lemonchiffon":"レモンシフォン","lightblue":"ライトブルー","lightcoral":"ライトコーラル","lightcyan":"ライトシアン","lightgoldenrodyellow":"ライトゴールデンロッドイエロー","lightgray":"ライトグレイ","lightgreen":"ライトグリーン","lightgrey":"ライトグレイ","lightpink":"ライトピンク","lightsalmon":"ライトサーモン","lightseagreen":"ライトシーグリーン","lightskyblue":"ライトスカイブルー","lightslategray":"ライトスレートグレイ","lightslategrey":"ライトスレートグレイ","lightsteelblue":"ライトスチールブルー","lightyellow":"ライトイエロー","lime":"ライム","limegreen":"ライムグリーン","linen":"亜麻色","magenta":"赤紫","maroon":"えび茶","mediumaquamarine":"ミディアムアクアマリーン","mediumblue":"ミディアムブルー","mediumorchid":"ミディアムオーキッド","mediumpurple":"ミディアムパープル","mediumseagreen":"ミディアムシーグリーン","mediumslateblue":"ミディアムスレートブルー","mediumspringgreen":"ミディアムスプリンググリーン","mediumturquoise":"ミディアムターコイズ","mediumvioletred":"ミディアムバイオレットレッド","midnightblue":"ミッドナイトブルー","mintcream":"ミントクリーム","mistyrose":"ミスティローズ","moccasin":"モカシン","navajowhite":"ナバホホワイト","navy":"濃紺","oldlace":"オールドレイス","olive":"オリーブ","olivedrab":"濃黄緑","orange":"オレンジ","orangered":"オレンジレッド","orchid":"薄紫","palegoldenrod":"ペイルゴールデンロッド","palegreen":"ペイルグリーン","paleturquoise":"ペイルターコイズ","palevioletred":"ペイルバイオレットレッド","papayawhip":"パパイアホイップ","peachpuff":"ピーチパフ","peru":"ペルー","pink":"ピンク","plum":"深紫","powderblue":"淡青","purple":"紫","red":"赤","rosybrown":"ロージーブラウン","royalblue":"藤色","saddlebrown":"サドルブラウン","salmon":"サーモン","sandybrown":"砂褐色","seagreen":"シーグリーン","seashell":"シーシェル","sienna":"黄褐色","silver":"銀","skyblue":"スカイブルー","slateblue":"スレートブルー","slategray":"スレートグレイ","slategrey":"スレートグレイ","snow":"雪色","springgreen":"スプリンググリーン","steelblue":"鋼色","tan":"茶褐色","teal":"ティール","thistle":"シスル","tomato":"トマト色","transparent":"透明","turquoise":"ターコイズ","violet":"すみれ色","wheat":"小麦色","white":"白","whitesmoke":"ホワイトスモーク","yellow":"黄","yellowgreen":"黄緑"},"dijit/nls/loading":{"loadingState":"ロード中...","errorState":"エラーが発生しました。"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"キャンセル","buttonSave":"保存","itemClose":"閉じる"},"dijit/form/nls/validate":{"invalidMessage":"入力した値は無効です。","missingMessage":"この値は必須です。","rangeMessage":"この値は範囲外です。"},"dijit/form/nls/ComboBox":{"previousMessage":"以前の選択項目","nextMessage":"追加の選択項目"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000兆","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤#,##0.00","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000兆","decimalFormat":"#,##0.###","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_ko-kr.js b/lib/dojo/nls/tt-rss-layer_ko-kr.js
index 80f3f6b60..42533c15e 100644
--- a/lib/dojo/nls/tt-rss-layer_ko-kr.js
+++ b/lib/dojo/nls/tt-rss-layer_ko-kr.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_ko-kr",{"dijit/form/nls/validate":{"rangeMessage":"이 값은 범위를 벗어납니다.","invalidMessage":"입력된 값이 올바르지 않습니다.","missingMessage":"이 값은 필수입니다."},"dijit/nls/loading":{"loadingState":"로드 중...","errorState":"죄송합니다. 오류가 발생했습니다."},"dojo/nls/colors":{"lightsteelblue":"라이트 스틸 블루(light steel blue)","orangered":"오렌지 레드(orange red)","midnightblue":"미드나잇 블루(midnight blue)","cadetblue":"카뎃 블루(cadet blue)","seashell":"씨쉘(seashell)","slategrey":"슬레이트 그레이(slate gray)","coral":"코랄(coral)","darkturquoise":"다크 터콰즈(dark turquoise)","antiquewhite":"앤틱 화이트(antique white)","mediumspringgreen":"미디엄 스프링 그린(medium spring green)","transparent":"투명(transparent)","salmon":"샐몬(salmon)","darkgrey":"다크 그레이(dark gray)","ivory":"아이보리(ivory)","greenyellow":"그린 옐로우(green-yellow)","mistyrose":"미스티 로즈(misty rose)","lightsalmon":"라이트 샐몬(light salmon)","silver":"실버(silver)","dimgrey":"딤 그레이(dim gray)","orange":"오렌지(orange)","white":"화이트(white)","navajowhite":"나바호 화이트(navajo white)","royalblue":"로얄 블루(royal blue)","deeppink":"딥 핑크(deep pink)","lime":"라임(lime)","oldlace":"올드 레이스(old lace)","chartreuse":"샤르트뢰즈(chartreuse)","darkcyan":"다크 시안(dark cyan)","yellow":"옐로우(yellow)","linen":"리넨(linen)","olive":"올리브(olive)","gold":"골드(gold)","lawngreen":"론 그린(lawn green)","lightyellow":"라이트 옐로우(light yellow)","tan":"탠(tan)","darkviolet":"다크 바이올렛(dark violet)","lightslategrey":"라이트 슬레이트 그레이(light slate gray)","grey":"그레이(gray)","darkkhaki":"다크 카키(dark khaki)","green":"그린(green)","deepskyblue":"딥 스카이 블루(deep sky blue)","aqua":"아쿠아(aqua)","sienna":"시에나(sienna)","mintcream":"민트 크림(mint cream)","rosybrown":"로지 브라운(rosy brown)","mediumslateblue":"미디엄 슬레이트 블루(medium slate blue)","magenta":"마젠타(magenta)","lightseagreen":"라이트 씨 그린(light sea green)","cyan":"시안(cyan)","olivedrab":"올리브 드랩(olive drab)","darkgoldenrod":"다크 골든로드(dark goldenrod)","slateblue":"슬레이트 블루(slate blue)","mediumaquamarine":"미디엄 아쿠아마린(medium aquamarine)","lavender":"라벤더(lavender)","mediumseagreen":"미디엄 씨 그린(medium sea green)","maroon":"마룬(maroon)","darkslategray":"다크 슬레이트 그레이(dark slate gray)","mediumturquoise":"미디엄 터콰즈(medium turquoise)","ghostwhite":"고스트 화이트(ghost white)","darkblue":"다크 블루(dark blue)","mediumvioletred":"미디엄 바이올렛 레드(medium violet-red)","brown":"브라운(brown)","lightgray":"라이트 그레이(light gray)","sandybrown":"샌디 브라운(sandy brown)","pink":"핑크(pink)","firebrick":"파이어 브릭(fire brick)","indigo":"인디고(indigo)","snow":"스노우(snow)","darkorchid":"다크 오키드(dark orchid)","turquoise":"터콰즈(turquoise)","chocolate":"초콜렛(chocolate)","springgreen":"스프링 그린(spring green)","moccasin":"모카신(moccasin)","navy":"네이비(navy)","lemonchiffon":"레몬 쉬폰(lemon chiffon)","teal":"틸(teal)","floralwhite":"플로랄 화이트(floral white)","cornflowerblue":"콘플라워 블루(cornflower blue)","paleturquoise":"페일 터콰즈(pale turquoise)","purple":"퍼플(purple)","gainsboro":"게인스브로(gainsboro)","plum":"플럼(plum)","red":"레드(red)","blue":"블루(blue)","forestgreen":"포레스트 그린(forest green)","darkgreen":"다크 그린(dark green)","honeydew":"허니듀(honeydew)","darkseagreen":"다크 씨 그린(dark sea green)","lightcoral":"라이트 코랄(light coral)","palevioletred":"페일 바이올렛 레드(pale violet-red)","mediumpurple":"미디엄 퍼플(medium purple)","saddlebrown":"새들 브라운(saddle brown)","darkmagenta":"다크 마젠타(dark magenta)","thistle":"시슬(thistle)","whitesmoke":"화이트 스모크(white smoke)","wheat":"휘트(wheat)","violet":"바이올렛(violet)","lightskyblue":"라이트 스카이 블루(light sky blue)","goldenrod":"골든로드(goldenrod)","mediumblue":"미디엄 블루(medium blue)","skyblue":"스카이 블루(sky blue)","crimson":"크림슨(crimson)","darksalmon":"다크 샐몬(dark salmon)","darkred":"다크 레드(dark red)","darkslategrey":"다크 슬레이트 그레이(dark slate gray)","peru":"페루(peru)","lightgrey":"라이트 그레이(light gray)","lightgoldenrodyellow":"라이트 골든로드 옐로우(light goldenrod yellow)","blanchedalmond":"블랜치 아몬드(blanched almond)","aliceblue":"앨리스 블루(alice blue)","bisque":"비스크(bisque)","slategray":"슬레이트 그레이(slate gray)","palegoldenrod":"페일 골든로드(pale goldenrod)","darkorange":"다크 오렌지(dark orange)","aquamarine":"아쿠아마린(aquamarine)","lightgreen":"라이트 그린(light green)","burlywood":"벌리우드(burlywood)","dodgerblue":"다저 블루(dodger blue)","darkgray":"다크 그레이(dark gray)","lightcyan":"라이트 시안(light cyan)","powderblue":"파우더 블루(powder blue)","blueviolet":"블루 바이올렛(blue-violet)","orchid":"오키드(orchid)","dimgray":"딤 그레이(dim gray)","beige":"베이지(beige)","fuchsia":"후크샤(fuchsia)","lavenderblush":"라벤더 블러쉬(lavender blush)","hotpink":"핫 핑크(hot pink)","steelblue":"스틸 블루(steel blue)","tomato":"토마토(tomato)","lightpink":"라이트 핑크(light pink)","limegreen":"라임 그린(lime green)","indianred":"인디안 레드(indian red)","papayawhip":"파파야 휩(papaya whip)","lightslategray":"라이트 슬레이트 그레이(light slate gray)","gray":"그레이(gray)","mediumorchid":"미디엄 오키드(medium orchid)","cornsilk":"콘실크(cornsilk)","black":"블랙(black)","seagreen":"씨 그린(sea green)","darkslateblue":"다크 슬레이트 블루(dark slate blue)","khaki":"카키(khaki)","lightblue":"라이트 블루(light blue)","palegreen":"페일 그린(pale green)","azure":"애쥬어(azure)","peachpuff":"피치 퍼프(peach puff)","darkolivegreen":"다크 올리브 그린(dark olive green)","yellowgreen":"옐로우 그린(yellow green)"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤#,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"이전 선택사항","nextMessage":"기타 선택사항"},"dijit/nls/common":{"buttonOk":"확인","buttonCancel":"취소","buttonSave":"저장","itemClose":"닫기"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_ko-kr",{"dojo/nls/colors":{"aliceblue":"앨리스 블루(alice blue)","antiquewhite":"앤틱 화이트(antique white)","aqua":"아쿠아(aqua)","aquamarine":"아쿠아마린(aquamarine)","azure":"애쥬어(azure)","beige":"베이지(beige)","bisque":"비스크(bisque)","black":"블랙(black)","blanchedalmond":"블랜치 아몬드(blanched almond)","blue":"블루(blue)","blueviolet":"블루 바이올렛(blue-violet)","brown":"브라운(brown)","burlywood":"벌리우드(burlywood)","cadetblue":"카뎃 블루(cadet blue)","chartreuse":"샤르트뢰즈(chartreuse)","chocolate":"초콜렛(chocolate)","coral":"코랄(coral)","cornflowerblue":"콘플라워 블루(cornflower blue)","cornsilk":"콘실크(cornsilk)","crimson":"크림슨(crimson)","cyan":"시안(cyan)","darkblue":"다크 블루(dark blue)","darkcyan":"다크 시안(dark cyan)","darkgoldenrod":"다크 골든로드(dark goldenrod)","darkgray":"다크 그레이(dark gray)","darkgreen":"다크 그린(dark green)","darkgrey":"다크 그레이(dark gray)","darkkhaki":"다크 카키(dark khaki)","darkmagenta":"다크 마젠타(dark magenta)","darkolivegreen":"다크 올리브 그린(dark olive green)","darkorange":"다크 오렌지(dark orange)","darkorchid":"다크 오키드(dark orchid)","darkred":"다크 레드(dark red)","darksalmon":"다크 샐몬(dark salmon)","darkseagreen":"다크 씨 그린(dark sea green)","darkslateblue":"다크 슬레이트 블루(dark slate blue)","darkslategray":"다크 슬레이트 그레이(dark slate gray)","darkslategrey":"다크 슬레이트 그레이(dark slate gray)","darkturquoise":"다크 터콰즈(dark turquoise)","darkviolet":"다크 바이올렛(dark violet)","deeppink":"딥 핑크(deep pink)","deepskyblue":"딥 스카이 블루(deep sky blue)","dimgray":"딤 그레이(dim gray)","dimgrey":"딤 그레이(dim gray)","dodgerblue":"다저 블루(dodger blue)","firebrick":"파이어 브릭(fire brick)","floralwhite":"플로랄 화이트(floral white)","forestgreen":"포레스트 그린(forest green)","fuchsia":"후크샤(fuchsia)","gainsboro":"게인스브로(gainsboro)","ghostwhite":"고스트 화이트(ghost white)","gold":"골드(gold)","goldenrod":"골든로드(goldenrod)","gray":"그레이(gray)","green":"그린(green)","greenyellow":"그린 옐로우(green-yellow)","grey":"그레이(gray)","honeydew":"허니듀(honeydew)","hotpink":"핫 핑크(hot pink)","indianred":"인디안 레드(indian red)","indigo":"인디고(indigo)","ivory":"아이보리(ivory)","khaki":"카키(khaki)","lavender":"라벤더(lavender)","lavenderblush":"라벤더 블러쉬(lavender blush)","lawngreen":"론 그린(lawn green)","lemonchiffon":"레몬 쉬폰(lemon chiffon)","lightblue":"라이트 블루(light blue)","lightcoral":"라이트 코랄(light coral)","lightcyan":"라이트 시안(light cyan)","lightgoldenrodyellow":"라이트 골든로드 옐로우(light goldenrod yellow)","lightgray":"라이트 그레이(light gray)","lightgreen":"라이트 그린(light green)","lightgrey":"라이트 그레이(light gray)","lightpink":"라이트 핑크(light pink)","lightsalmon":"라이트 샐몬(light salmon)","lightseagreen":"라이트 씨 그린(light sea green)","lightskyblue":"라이트 스카이 블루(light sky blue)","lightslategray":"라이트 슬레이트 그레이(light slate gray)","lightslategrey":"라이트 슬레이트 그레이(light slate gray)","lightsteelblue":"라이트 스틸 블루(light steel blue)","lightyellow":"라이트 옐로우(light yellow)","lime":"라임(lime)","limegreen":"라임 그린(lime green)","linen":"리넨(linen)","magenta":"마젠타(magenta)","maroon":"마룬(maroon)","mediumaquamarine":"미디엄 아쿠아마린(medium aquamarine)","mediumblue":"미디엄 블루(medium blue)","mediumorchid":"미디엄 오키드(medium orchid)","mediumpurple":"미디엄 퍼플(medium purple)","mediumseagreen":"미디엄 씨 그린(medium sea green)","mediumslateblue":"미디엄 슬레이트 블루(medium slate blue)","mediumspringgreen":"미디엄 스프링 그린(medium spring green)","mediumturquoise":"미디엄 터콰즈(medium turquoise)","mediumvioletred":"미디엄 바이올렛 레드(medium violet-red)","midnightblue":"미드나잇 블루(midnight blue)","mintcream":"민트 크림(mint cream)","mistyrose":"미스티 로즈(misty rose)","moccasin":"모카신(moccasin)","navajowhite":"나바호 화이트(navajo white)","navy":"네이비(navy)","oldlace":"올드 레이스(old lace)","olive":"올리브(olive)","olivedrab":"올리브 드랩(olive drab)","orange":"오렌지(orange)","orangered":"오렌지 레드(orange red)","orchid":"오키드(orchid)","palegoldenrod":"페일 골든로드(pale goldenrod)","palegreen":"페일 그린(pale green)","paleturquoise":"페일 터콰즈(pale turquoise)","palevioletred":"페일 바이올렛 레드(pale violet-red)","papayawhip":"파파야 휩(papaya whip)","peachpuff":"피치 퍼프(peach puff)","peru":"페루(peru)","pink":"핑크(pink)","plum":"플럼(plum)","powderblue":"파우더 블루(powder blue)","purple":"퍼플(purple)","red":"레드(red)","rosybrown":"로지 브라운(rosy brown)","royalblue":"로얄 블루(royal blue)","saddlebrown":"새들 브라운(saddle brown)","salmon":"샐몬(salmon)","sandybrown":"샌디 브라운(sandy brown)","seagreen":"씨 그린(sea green)","seashell":"씨쉘(seashell)","sienna":"시에나(sienna)","silver":"실버(silver)","skyblue":"스카이 블루(sky blue)","slateblue":"슬레이트 블루(slate blue)","slategray":"슬레이트 그레이(slate gray)","slategrey":"슬레이트 그레이(slate gray)","snow":"스노우(snow)","springgreen":"스프링 그린(spring green)","steelblue":"스틸 블루(steel blue)","tan":"탠(tan)","teal":"틸(teal)","thistle":"시슬(thistle)","tomato":"토마토(tomato)","transparent":"투명(transparent)","turquoise":"터콰즈(turquoise)","violet":"바이올렛(violet)","wheat":"휘트(wheat)","white":"화이트(white)","whitesmoke":"화이트 스모크(white smoke)","yellow":"옐로우(yellow)","yellowgreen":"옐로우 그린(yellow green)"},"dijit/nls/loading":{"loadingState":"로드 중...","errorState":"죄송합니다. 오류가 발생했습니다."},"dijit/nls/common":{"buttonOk":"확인","buttonCancel":"취소","buttonSave":"저장","itemClose":"닫기"},"dijit/form/nls/validate":{"invalidMessage":"입력된 값이 올바르지 않습니다.","missingMessage":"이 값은 필수입니다.","rangeMessage":"이 값은 범위를 벗어납니다."},"dijit/form/nls/ComboBox":{"previousMessage":"이전 선택사항","nextMessage":"기타 선택사항"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000조","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤#,##0.00;(¤#,##0.00)","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000조","decimalFormat":"#,##0.###","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_nb.js b/lib/dojo/nls/tt-rss-layer_nb.js
index 5d8576d72..16d347c80 100644
--- a/lib/dojo/nls/tt-rss-layer_nb.js
+++ b/lib/dojo/nls/tt-rss-layer_nb.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_nb",{"dijit/form/nls/validate":{"rangeMessage":"Denne verdien er utenfor gyldig område.","invalidMessage":"Den angitte verdien er ikke gyldig.","missingMessage":"Denne verdien er obligatorisk."},"dijit/nls/loading":{"loadingState":"Laster inn...","errorState":"Det oppsto en feil"},"dojo/nls/colors":{"lightsteelblue":"lys stålblå","orangered":"rødoransje","midnightblue":"midnattsblå","cadetblue":"mørk grønnblå","seashell":"skjellhvit","slategrey":"skifergrå","coral":"korall","darkturquoise":"mørk turkis","antiquewhite":"antikk hvit","mediumspringgreen":"middels vårgrønn","transparent":"gjennomsiktig","salmon":"lakserosa","darkgrey":"mørk grå","ivory":"elfenbenshvit","greenyellow":"gulgrønn","mistyrose":"lys rosenrød","lightsalmon":"lys lakserosa","silver":"sølvfarget","dimgrey":"mørk mørkegrå","orange":"oransje","white":"hvit","navajowhite":"gulbrun","royalblue":"kongeblå","deeppink":"dyp rosa","lime":"lime","oldlace":"kniplingshvit","chartreuse":"løvgrønn","darkcyan":"mørk cyan","yellow":"gul","linen":"lin","olive":"oliven","gold":"gull","lawngreen":"plengrønn","lightyellow":"lys gul","tan":"matt mellombrun","darkviolet":"mørk fiolett","lightslategrey":"lys skifergrå","grey":"grå","darkkhaki":"mørk khaki","green":"grønn","deepskyblue":"dyp himmelblå","aqua":"akva","sienna":"nøttebrun","mintcream":"mintkrem","rosybrown":"brunlilla","mediumslateblue":"middels skiferblå","magenta":"magenta","lightseagreen":"lys sjøgrønn","cyan":"cyan","olivedrab":"middels olivengrønn","darkgoldenrod":"mørk gyldenris","slateblue":"skiferblå","mediumaquamarine":"middels akvamarin","lavender":"lavendel","mediumseagreen":"middels sjøgrønn","maroon":"rødbrun","darkslategray":"mørk skifergrå","mediumturquoise":"middels turkis","ghostwhite":"egghvit","darkblue":"mørk blå","mediumvioletred":"middels fiolettrød","brown":"brun","lightgray":"lys grå","sandybrown":"sandbrun","pink":"rosa","firebrick":"mursteinsrød","indigo":"indigo","snow":"snøhvit","darkorchid":"mørk orkide","turquoise":"turkis","chocolate":"sjokolade","springgreen":"vårgrønn","moccasin":"lys gulbrun","navy":"marineblå","lemonchiffon":"ferskenfarget","teal":"mørk grønnblå","floralwhite":"blomsterhvit","cornflowerblue":"kornblå","paleturquoise":"svak turkis","purple":"purpur","gainsboro":"lys lys grå","plum":"plommefarget","red":"rød","blue":"blå","forestgreen":"skoggrønn","darkgreen":"mørk grønn","honeydew":"grønnhvit","darkseagreen":"mørk sjøgrønn","lightcoral":"lys korall","palevioletred":"svak fiolettrød","mediumpurple":"middels purpur","saddlebrown":"mørk nøttebrun","darkmagenta":"mørk magenta","thistle":"lys grålilla","whitesmoke":"røykhvit","wheat":"varm sienna","violet":"fiolett","lightskyblue":"lys himmelblå","goldenrod":"gyldenris","mediumblue":"mellomblå","skyblue":"himmelblå","crimson":"karmosinrødt","darksalmon":"mørk lakserosa","darkred":"mørk rød","darkslategrey":"mørk skifergrå","peru":"lys nøttebrun","lightgrey":"lys grå","lightgoldenrodyellow":"lys gyldenrisgul","blanchedalmond":"lys mandel","aliceblue":"blåhvit","bisque":"gulrosa","slategray":"skifergrå","palegoldenrod":"svak gyldenris","darkorange":"mørk oransje","aquamarine":"akvamarin","lightgreen":"lys grønn","burlywood":"matt mellombrun","dodgerblue":"lys havblå","darkgray":"mørk grå","lightcyan":"lys cyan","powderblue":"lys grønnblå","blueviolet":"blåfiolett","orchid":"orkide","dimgray":"mørk mørkegrå","beige":"beige","fuchsia":"fuksia","lavenderblush":"lillahvit","hotpink":"halvmørk rosa","steelblue":"stålblå","tomato":"tomatrød","lightpink":"lys rosa","limegreen":"limegrønn","indianred":"rustrød","papayawhip":"lys papaya","lightslategray":"lys skifergrå","gray":"grå","mediumorchid":"middels orkide","cornsilk":"cornsilk","black":"svart","seagreen":"sjøgrønn","darkslateblue":"mørk skiferblå","khaki":"khaki","lightblue":"lys blå","palegreen":"svak grønn","azure":"asur","peachpuff":"brunrosa","darkolivegreen":"mørk olivengrønn","yellowgreen":"gulgrønn"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Tidligere valg","nextMessage":"Flere valg"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Lagre","itemClose":"Lukk"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_nb",{"dojo/nls/colors":{"aliceblue":"blåhvit","antiquewhite":"antikk hvit","aqua":"akva","aquamarine":"akvamarin","azure":"asur","beige":"beige","bisque":"gulrosa","black":"svart","blanchedalmond":"lys mandel","blue":"blå","blueviolet":"blåfiolett","brown":"brun","burlywood":"matt mellombrun","cadetblue":"mørk grønnblå","chartreuse":"løvgrønn","chocolate":"sjokolade","coral":"korall","cornflowerblue":"kornblå","cornsilk":"cornsilk","crimson":"karmosinrødt","cyan":"cyan","darkblue":"mørk blå","darkcyan":"mørk cyan","darkgoldenrod":"mørk gyldenris","darkgray":"mørk grå","darkgreen":"mørk grønn","darkgrey":"mørk grå","darkkhaki":"mørk khaki","darkmagenta":"mørk magenta","darkolivegreen":"mørk olivengrønn","darkorange":"mørk oransje","darkorchid":"mørk orkide","darkred":"mørk rød","darksalmon":"mørk lakserosa","darkseagreen":"mørk sjøgrønn","darkslateblue":"mørk skiferblå","darkslategray":"mørk skifergrå","darkslategrey":"mørk skifergrå","darkturquoise":"mørk turkis","darkviolet":"mørk fiolett","deeppink":"dyp rosa","deepskyblue":"dyp himmelblå","dimgray":"mørk mørkegrå","dimgrey":"mørk mørkegrå","dodgerblue":"lys havblå","firebrick":"mursteinsrød","floralwhite":"blomsterhvit","forestgreen":"skoggrønn","fuchsia":"fuksia","gainsboro":"lys lys grå","ghostwhite":"egghvit","gold":"gull","goldenrod":"gyldenris","gray":"grå","green":"grønn","greenyellow":"gulgrønn","grey":"grå","honeydew":"grønnhvit","hotpink":"halvmørk rosa","indianred":"rustrød","indigo":"indigo","ivory":"elfenbenshvit","khaki":"khaki","lavender":"lavendel","lavenderblush":"lillahvit","lawngreen":"plengrønn","lemonchiffon":"ferskenfarget","lightblue":"lys blå","lightcoral":"lys korall","lightcyan":"lys cyan","lightgoldenrodyellow":"lys gyldenrisgul","lightgray":"lys grå","lightgreen":"lys grønn","lightgrey":"lys grå","lightpink":"lys rosa","lightsalmon":"lys lakserosa","lightseagreen":"lys sjøgrønn","lightskyblue":"lys himmelblå","lightslategray":"lys skifergrå","lightslategrey":"lys skifergrå","lightsteelblue":"lys stålblå","lightyellow":"lys gul","lime":"lime","limegreen":"limegrønn","linen":"lin","magenta":"magenta","maroon":"rødbrun","mediumaquamarine":"middels akvamarin","mediumblue":"mellomblå","mediumorchid":"middels orkide","mediumpurple":"middels purpur","mediumseagreen":"middels sjøgrønn","mediumslateblue":"middels skiferblå","mediumspringgreen":"middels vårgrønn","mediumturquoise":"middels turkis","mediumvioletred":"middels fiolettrød","midnightblue":"midnattsblå","mintcream":"mintkrem","mistyrose":"lys rosenrød","moccasin":"lys gulbrun","navajowhite":"gulbrun","navy":"marineblå","oldlace":"kniplingshvit","olive":"oliven","olivedrab":"middels olivengrønn","orange":"oransje","orangered":"rødoransje","orchid":"orkide","palegoldenrod":"svak gyldenris","palegreen":"svak grønn","paleturquoise":"svak turkis","palevioletred":"svak fiolettrød","papayawhip":"lys papaya","peachpuff":"brunrosa","peru":"lys nøttebrun","pink":"rosa","plum":"plommefarget","powderblue":"lys grønnblå","purple":"purpur","red":"rød","rosybrown":"brunlilla","royalblue":"kongeblå","saddlebrown":"mørk nøttebrun","salmon":"lakserosa","sandybrown":"sandbrun","seagreen":"sjøgrønn","seashell":"skjellhvit","sienna":"nøttebrun","silver":"sølvfarget","skyblue":"himmelblå","slateblue":"skiferblå","slategray":"skifergrå","slategrey":"skifergrå","snow":"snøhvit","springgreen":"vårgrønn","steelblue":"stålblå","tan":"matt mellombrun","teal":"mørk grønnblå","thistle":"lys grålilla","tomato":"tomatrød","transparent":"gjennomsiktig","turquoise":"turkis","violet":"fiolett","wheat":"varm sienna","white":"hvit","whitesmoke":"røykhvit","yellow":"gul","yellowgreen":"gulgrønn"},"dijit/nls/loading":{"loadingState":"Laster inn...","errorState":"Det oppsto en feil"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Lagre","itemClose":"Lukk"},"dijit/form/nls/validate":{"invalidMessage":"Den angitte verdien er ikke gyldig.","missingMessage":"Denne verdien er obligatorisk.","rangeMessage":"Denne verdien er utenfor gyldig område."},"dijit/form/nls/ComboBox":{"previousMessage":"Tidligere valg","nextMessage":"Flere valg"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 bill","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤ #,##0.00","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat-long":"000 billioner","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_nl-nl.js b/lib/dojo/nls/tt-rss-layer_nl-nl.js
index 723b200cc..37f81f5db 100644
--- a/lib/dojo/nls/tt-rss-layer_nl-nl.js
+++ b/lib/dojo/nls/tt-rss-layer_nl-nl.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_nl-nl",{"dijit/form/nls/validate":{"rangeMessage":"Deze waarde is niet toegestaan.","invalidMessage":"De opgegeven waarde is ongeldig.","missingMessage":"Deze waarde is verplicht."},"dijit/nls/loading":{"loadingState":"Bezig met laden...","errorState":"Er is een fout opgetreden"},"dojo/nls/colors":{"lightsteelblue":"lichtstaalblauw","orangered":"oranjerood","midnightblue":"nachtblauw","cadetblue":"donkerstaalblauw","seashell":"schelp","slategrey":"leigrijs","coral":"koraalrood","darkturquoise":"donkerturquoise","antiquewhite":"antiekwit","mediumspringgreen":"midlentegroen","transparent":"transparant","salmon":"zalm","darkgrey":"donkergrijs","ivory":"ivoorwit","greenyellow":"groengeel","mistyrose":"matroze","lightsalmon":"lichtzalm","silver":"zilvergrijs","dimgrey":"dofgrijs","orange":"oranje","white":"wit","navajowhite":"navajowit","royalblue":"koningsblauw","deeppink":"donkerroze","lime":"limoen","oldlace":"kant","chartreuse":"groengeel","darkcyan":"donkercyaan","yellow":"geel","linen":"linnen","olive":"olijfgroen","gold":"goud","lawngreen":"grasgroen","lightyellow":"lichtgeel","tan":"geelbruin","darkviolet":"donkerviolet","lightslategrey":"lichtblauwgrijs","grey":"grijs","darkkhaki":"donkerkaki","green":"groen","deepskyblue":"diephemelblauw","aqua":"aqua","sienna":"sienna","mintcream":"mintroomgeel","rosybrown":"roodbruin","mediumslateblue":"midgrijsblauw","magenta":"magenta","lightseagreen":"lichtzeegroen","cyan":"cyaan","olivedrab":"grijsbruin","darkgoldenrod":"donkergoud","slateblue":"leiblauw","mediumaquamarine":"midaquamarijn","lavender":"lavendelblauw","mediumseagreen":"midzeegroen","maroon":"kastanjebruin","darkslategray":"donkerblauwgrijs","mediumturquoise":"midturquoise","ghostwhite":"spierwit","darkblue":"donkerblauw","mediumvioletred":"midvioletrood","brown":"bruin","lightgray":"lichtgrijs","sandybrown":"zandbruin","pink":"roze","firebrick":"vuursteenrood","indigo":"indigo","snow":"sneeuwwit","darkorchid":"donkerorchidee","turquoise":"turquoise","chocolate":"chocoladebruin","springgreen":"lentegroen","moccasin":"moccasin","navy":"marineblauw","lemonchiffon":"citroengeel","teal":"grijsblauw","floralwhite":"rozewit","cornflowerblue":"korenbloemblauw","paleturquoise":"bleekturquoise","purple":"purper","gainsboro":"lichtblauwgrijs","plum":"pruim","red":"rood","blue":"blauw","forestgreen":"bosgroen","darkgreen":"donkergroen","honeydew":"meloen","darkseagreen":"donkerzeegroen","lightcoral":"lichtkoraal","palevioletred":"bleekvioletrood","mediumpurple":"midpurper","saddlebrown":"leerbruin","darkmagenta":"donkermagenta","thistle":"distel","whitesmoke":"rookwit","wheat":"tarwebruin","violet":"violet","lightskyblue":"lichthemelsblauw","goldenrod":"goudbruin","mediumblue":"midblauw","skyblue":"hemelsblauw","crimson":"karmozijnrood","darksalmon":"donkerzalm","darkred":"donkerrood","darkslategrey":"donkerblauwgrijs","peru":"bruin","lightgrey":"lichtgrijs","lightgoldenrodyellow":"lichtgoudgeel","blanchedalmond":"amandel","aliceblue":"lichtblauw","bisque":"oranjegeel","slategray":"leigrijs","palegoldenrod":"bleekgeel","darkorange":"donkeroranje","aquamarine":"aquamarijn","lightgreen":"lichtgroen","burlywood":"lichtbruin","dodgerblue":"helderblauw","darkgray":"donkergrijs","lightcyan":"lichtcyaan","powderblue":"lichtblauw-wit","blueviolet":"violet","orchid":"orchidee","dimgray":"dofgrijs","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelblos","hotpink":"acaciaroze","steelblue":"staalblauw","tomato":"tomaat","lightpink":"lichtroze","limegreen":"limoengroen","indianred":"indisch rood","papayawhip":"papajaroze","lightslategray":"lichtblauwgrijs","gray":"grijs","mediumorchid":"midorchidee","cornsilk":"maïsgeel","black":"zwart","seagreen":"zeegroen","darkslateblue":"donkergrijsblauw","khaki":"kaki","lightblue":"lichtblauw","palegreen":"bleekgroen","azure":"azuur","peachpuff":"perzikroze","darkolivegreen":"donkerolijfgroen","yellowgreen":"geelgroen"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Eerdere opties","nextMessage":"Meer opties"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Annuleren","buttonSave":"Opslaan","itemClose":"Sluiten"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_nl-nl",{"dojo/nls/colors":{"aliceblue":"lichtblauw","antiquewhite":"antiekwit","aqua":"aqua","aquamarine":"aquamarijn","azure":"azuur","beige":"beige","bisque":"oranjegeel","black":"zwart","blanchedalmond":"amandel","blue":"blauw","blueviolet":"violet","brown":"bruin","burlywood":"lichtbruin","cadetblue":"donkerstaalblauw","chartreuse":"groengeel","chocolate":"chocoladebruin","coral":"koraalrood","cornflowerblue":"korenbloemblauw","cornsilk":"maïsgeel","crimson":"karmozijnrood","cyan":"cyaan","darkblue":"donkerblauw","darkcyan":"donkercyaan","darkgoldenrod":"donkergoud","darkgray":"donkergrijs","darkgreen":"donkergroen","darkgrey":"donkergrijs","darkkhaki":"donkerkaki","darkmagenta":"donkermagenta","darkolivegreen":"donkerolijfgroen","darkorange":"donkeroranje","darkorchid":"donkerorchidee","darkred":"donkerrood","darksalmon":"donkerzalm","darkseagreen":"donkerzeegroen","darkslateblue":"donkergrijsblauw","darkslategray":"donkerblauwgrijs","darkslategrey":"donkerblauwgrijs","darkturquoise":"donkerturquoise","darkviolet":"donkerviolet","deeppink":"donkerroze","deepskyblue":"diephemelblauw","dimgray":"dofgrijs","dimgrey":"dofgrijs","dodgerblue":"helderblauw","firebrick":"vuursteenrood","floralwhite":"rozewit","forestgreen":"bosgroen","fuchsia":"fuchsia","gainsboro":"lichtblauwgrijs","ghostwhite":"spierwit","gold":"goud","goldenrod":"goudbruin","gray":"grijs","green":"groen","greenyellow":"groengeel","grey":"grijs","honeydew":"meloen","hotpink":"acaciaroze","indianred":"indisch rood","indigo":"indigo","ivory":"ivoorwit","khaki":"kaki","lavender":"lavendelblauw","lavenderblush":"lavendelblos","lawngreen":"grasgroen","lemonchiffon":"citroengeel","lightblue":"lichtblauw","lightcoral":"lichtkoraal","lightcyan":"lichtcyaan","lightgoldenrodyellow":"lichtgoudgeel","lightgray":"lichtgrijs","lightgreen":"lichtgroen","lightgrey":"lichtgrijs","lightpink":"lichtroze","lightsalmon":"lichtzalm","lightseagreen":"lichtzeegroen","lightskyblue":"lichthemelsblauw","lightslategray":"lichtblauwgrijs","lightslategrey":"lichtblauwgrijs","lightsteelblue":"lichtstaalblauw","lightyellow":"lichtgeel","lime":"limoen","limegreen":"limoengroen","linen":"linnen","magenta":"magenta","maroon":"kastanjebruin","mediumaquamarine":"midaquamarijn","mediumblue":"midblauw","mediumorchid":"midorchidee","mediumpurple":"midpurper","mediumseagreen":"midzeegroen","mediumslateblue":"midgrijsblauw","mediumspringgreen":"midlentegroen","mediumturquoise":"midturquoise","mediumvioletred":"midvioletrood","midnightblue":"nachtblauw","mintcream":"mintroomgeel","mistyrose":"matroze","moccasin":"moccasin","navajowhite":"navajowit","navy":"marineblauw","oldlace":"kant","olive":"olijfgroen","olivedrab":"grijsbruin","orange":"oranje","orangered":"oranjerood","orchid":"orchidee","palegoldenrod":"bleekgeel","palegreen":"bleekgroen","paleturquoise":"bleekturquoise","palevioletred":"bleekvioletrood","papayawhip":"papajaroze","peachpuff":"perzikroze","peru":"bruin","pink":"roze","plum":"pruim","powderblue":"lichtblauw-wit","purple":"purper","red":"rood","rosybrown":"roodbruin","royalblue":"koningsblauw","saddlebrown":"leerbruin","salmon":"zalm","sandybrown":"zandbruin","seagreen":"zeegroen","seashell":"schelp","sienna":"sienna","silver":"zilvergrijs","skyblue":"hemelsblauw","slateblue":"leiblauw","slategray":"leigrijs","slategrey":"leigrijs","snow":"sneeuwwit","springgreen":"lentegroen","steelblue":"staalblauw","tan":"geelbruin","teal":"grijsblauw","thistle":"distel","tomato":"tomaat","transparent":"transparant","turquoise":"turquoise","violet":"violet","wheat":"tarwebruin","white":"wit","whitesmoke":"rookwit","yellow":"geel","yellowgreen":"geelgroen"},"dijit/nls/loading":{"loadingState":"Bezig met laden...","errorState":"Er is een fout opgetreden"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Annuleren","buttonSave":"Opslaan","itemClose":"Sluiten"},"dijit/form/nls/validate":{"invalidMessage":"De opgegeven waarde is ongeldig.","missingMessage":"Deze waarde is verplicht.","rangeMessage":"Deze waarde is niet toegestaan."},"dijit/form/nls/ComboBox":{"previousMessage":"Eerdere opties","nextMessage":"Meer opties"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 bln'.'","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat-long":"000 biljoen","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_pl.js b/lib/dojo/nls/tt-rss-layer_pl.js
index 8de2ed118..ffa581ce9 100644
--- a/lib/dojo/nls/tt-rss-layer_pl.js
+++ b/lib/dojo/nls/tt-rss-layer_pl.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_pl",{"dijit/form/nls/validate":{"rangeMessage":"Ta wartość jest spoza zakresu.","invalidMessage":"Wprowadzona wartość jest niepoprawna.","missingMessage":"Ta wartość jest wymagana."},"dijit/nls/loading":{"loadingState":"Ładowanie...","errorState":"Niestety, wystąpił błąd"},"dojo/nls/colors":{"lightsteelblue":"jasnostalowoniebieski","orangered":"czerwona pomarańcza","midnightblue":"atramentowoniebieski","cadetblue":"szaroniebieski","seashell":"matowoliliowy","slategrey":"mysi","coral":"koralowy","darkturquoise":"ciemnoturkusowy","antiquewhite":"biel antyczna","mediumspringgreen":"średnia wiosenna zieleń","transparent":"przezroczysty","salmon":"łososiowy","darkgrey":"ciemnoszary","ivory":"kość słoniowa","greenyellow":"zielonożółty","mistyrose":"mglistoróżany","lightsalmon":"jasnołososiowy","silver":"srebrny","dimgrey":"przyciemniony szary","orange":"pomarańczowy","white":"biały","navajowhite":"biel Nawaho","royalblue":"królewska purpura","deeppink":"głęboki róż","lime":"limonkowy","oldlace":"ecru","chartreuse":"żółtooliwkowy","darkcyan":"ciemnoniebieskozielony","yellow":"żółty","linen":"lniany","olive":"oliwkowy","gold":"złoty","lawngreen":"trawiasty","lightyellow":"jasnożółty","tan":"śniady","darkviolet":"ciemnofiołkowy","lightslategrey":"jasny mysi","grey":"szary","darkkhaki":"ciemny khaki","green":"zielony","deepskyblue":"intensywny błękit nieba","aqua":"morski","sienna":"sjena","mintcream":"miętowokremowy","rosybrown":"różanobrązowy","mediumslateblue":"średni gołębi","magenta":"amarantowy","lightseagreen":"jasna zieleń morska","cyan":"niebieskozielony","olivedrab":"oliwkowozielony","darkgoldenrod":"ciemne stare złoto","slateblue":"gołębi","mediumaquamarine":"średnia akwamaryna","lavender":"lawendowy","mediumseagreen":"średnia zieleń morska","maroon":"rdzawoczerwony","darkslategray":"ciemny mysi","mediumturquoise":"średni turkusowy","ghostwhite":"sina biel","darkblue":"ciemnoniebieski","mediumvioletred":"średni fiołkowowoczerwony","brown":"brązowy","lightgray":"jasnoszary","sandybrown":"piaskowobrązowy","pink":"różowy","firebrick":"podpalana cegła","indigo":"indygo","snow":"śnieżny","darkorchid":"ciemna orchidea","turquoise":"turkusowy","chocolate":"czekoladowy","springgreen":"wiosenna zieleń","moccasin":"mokasynowy","navy":"granatowy","lemonchiffon":"babka cytrynowa","teal":"zielonomodry","floralwhite":"złamana biel","cornflowerblue":"niebieskochabrowy","paleturquoise":"bladoturkusowy","purple":"fioletowy","gainsboro":"jasnoniebieskawoszary","plum":"śliwkowy","red":"czerwony","blue":"niebieski","forestgreen":"leśna zieleń","darkgreen":"ciemnozielony","honeydew":"miodowy","darkseagreen":"ciemna zieleń morska","lightcoral":"jasnokoralowy","palevioletred":"bladofiołkowoczerwony","mediumpurple":"średni fioletowy","saddlebrown":"brąz skórzany","darkmagenta":"ciemnoamarantowy","thistle":"kwiat ostu","whitesmoke":"siwy","wheat":"pszeniczny","violet":"fiołkowy","lightskyblue":"jasny błękit nieba","goldenrod":"stare złoto","mediumblue":"średni niebieski","skyblue":"błękit nieba","crimson":"karmazynowy","darksalmon":"ciemnołososiowy","darkred":"ciemnoczerwony","darkslategrey":"ciemny mysi","peru":"palona glina","lightgrey":"jasnoszary","lightgoldenrodyellow":"jasne stare złoto","blanchedalmond":"obrany migdał","aliceblue":"bladoniebieski","bisque":"cielistobeżowy","slategray":"mysi","palegoldenrod":"blade stare złoto","darkorange":"ciemnopomarańczowy","aquamarine":"akwamaryna","lightgreen":"jasnozielony","burlywood":"piaskowobeżowy","dodgerblue":"niebieski Dodgersów","darkgray":"ciemnoszary","lightcyan":"jasnoniebieskozielony","powderblue":"jasnobladobłękitny","blueviolet":"błękitnofiołkowy","orchid":"orchidea","dimgray":"przyciemniony szary","beige":"beżowy","fuchsia":"fuksjowy","lavenderblush":"lawendoworóżowy","hotpink":"odblaskoworóżowy","steelblue":"stalowoniebieski","tomato":"pomidorowy","lightpink":"jasnoróżowy","limegreen":"limonkowozielony","indianred":"kasztanowy","papayawhip":"kremowa papaja","lightslategray":"jasny mysi","gray":"szary","mediumorchid":"średnia orchidea","cornsilk":"białożółty","black":"czarny","seagreen":"zieleń morska","darkslateblue":"ciemny gołębi","khaki":"khaki","lightblue":"jasnoniebieski","palegreen":"bladozielony","azure":"lazurowy","peachpuff":"cielisty brzoskwiniowy","darkolivegreen":"ciemnooliwkowozielony","yellowgreen":"żółtozielony"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":" ","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Poprzednie wybory","nextMessage":"Więcej wyborów"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Anuluj","buttonSave":"Zapisz","itemClose":"Zamknij"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_pl",{"dojo/nls/colors":{"aliceblue":"bladoniebieski","antiquewhite":"biel antyczna","aqua":"morski","aquamarine":"akwamaryna","azure":"lazurowy","beige":"beżowy","bisque":"cielistobeżowy","black":"czarny","blanchedalmond":"obrany migdał","blue":"niebieski","blueviolet":"błękitnofiołkowy","brown":"brązowy","burlywood":"piaskowobeżowy","cadetblue":"szaroniebieski","chartreuse":"żółtooliwkowy","chocolate":"czekoladowy","coral":"koralowy","cornflowerblue":"niebieskochabrowy","cornsilk":"białożółty","crimson":"karmazynowy","cyan":"niebieskozielony","darkblue":"ciemnoniebieski","darkcyan":"ciemnoniebieskozielony","darkgoldenrod":"ciemne stare złoto","darkgray":"ciemnoszary","darkgreen":"ciemnozielony","darkgrey":"ciemnoszary","darkkhaki":"ciemny khaki","darkmagenta":"ciemnoamarantowy","darkolivegreen":"ciemnooliwkowozielony","darkorange":"ciemnopomarańczowy","darkorchid":"ciemna orchidea","darkred":"ciemnoczerwony","darksalmon":"ciemnołososiowy","darkseagreen":"ciemna zieleń morska","darkslateblue":"ciemny gołębi","darkslategray":"ciemny mysi","darkslategrey":"ciemny mysi","darkturquoise":"ciemnoturkusowy","darkviolet":"ciemnofiołkowy","deeppink":"głęboki róż","deepskyblue":"intensywny błękit nieba","dimgray":"przyciemniony szary","dimgrey":"przyciemniony szary","dodgerblue":"niebieski Dodgersów","firebrick":"podpalana cegła","floralwhite":"złamana biel","forestgreen":"leśna zieleń","fuchsia":"fuksjowy","gainsboro":"jasnoniebieskawoszary","ghostwhite":"sina biel","gold":"złoty","goldenrod":"stare złoto","gray":"szary","green":"zielony","greenyellow":"zielonożółty","grey":"szary","honeydew":"miodowy","hotpink":"odblaskoworóżowy","indianred":"kasztanowy","indigo":"indygo","ivory":"kość słoniowa","khaki":"khaki","lavender":"lawendowy","lavenderblush":"lawendoworóżowy","lawngreen":"trawiasty","lemonchiffon":"babka cytrynowa","lightblue":"jasnoniebieski","lightcoral":"jasnokoralowy","lightcyan":"jasnoniebieskozielony","lightgoldenrodyellow":"jasne stare złoto","lightgray":"jasnoszary","lightgreen":"jasnozielony","lightgrey":"jasnoszary","lightpink":"jasnoróżowy","lightsalmon":"jasnołososiowy","lightseagreen":"jasna zieleń morska","lightskyblue":"jasny błękit nieba","lightslategray":"jasny mysi","lightslategrey":"jasny mysi","lightsteelblue":"jasnostalowoniebieski","lightyellow":"jasnożółty","lime":"limonkowy","limegreen":"limonkowozielony","linen":"lniany","magenta":"amarantowy","maroon":"rdzawoczerwony","mediumaquamarine":"średnia akwamaryna","mediumblue":"średni niebieski","mediumorchid":"średnia orchidea","mediumpurple":"średni fioletowy","mediumseagreen":"średnia zieleń morska","mediumslateblue":"średni gołębi","mediumspringgreen":"średnia wiosenna zieleń","mediumturquoise":"średni turkusowy","mediumvioletred":"średni fiołkowowoczerwony","midnightblue":"atramentowoniebieski","mintcream":"miętowokremowy","mistyrose":"mglistoróżany","moccasin":"mokasynowy","navajowhite":"biel Nawaho","navy":"granatowy","oldlace":"ecru","olive":"oliwkowy","olivedrab":"oliwkowozielony","orange":"pomarańczowy","orangered":"czerwona pomarańcza","orchid":"orchidea","palegoldenrod":"blade stare złoto","palegreen":"bladozielony","paleturquoise":"bladoturkusowy","palevioletred":"bladofiołkowoczerwony","papayawhip":"kremowa papaja","peachpuff":"cielisty brzoskwiniowy","peru":"palona glina","pink":"różowy","plum":"śliwkowy","powderblue":"jasnobladobłękitny","purple":"fioletowy","red":"czerwony","rosybrown":"różanobrązowy","royalblue":"królewska purpura","saddlebrown":"brąz skórzany","salmon":"łososiowy","sandybrown":"piaskowobrązowy","seagreen":"zieleń morska","seashell":"matowoliliowy","sienna":"sjena","silver":"srebrny","skyblue":"błękit nieba","slateblue":"gołębi","slategray":"mysi","slategrey":"mysi","snow":"śnieżny","springgreen":"wiosenna zieleń","steelblue":"stalowoniebieski","tan":"śniady","teal":"zielonomodry","thistle":"kwiat ostu","tomato":"pomidorowy","transparent":"przezroczysty","turquoise":"turkusowy","violet":"fiołkowy","wheat":"pszeniczny","white":"biały","whitesmoke":"siwy","yellow":"żółty","yellowgreen":"żółtozielony"},"dijit/nls/loading":{"loadingState":"Ładowanie...","errorState":"Niestety, wystąpił błąd"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Anuluj","buttonSave":"Zapisz","itemClose":"Zamknij"},"dijit/form/nls/validate":{"invalidMessage":"Wprowadzona wartość jest nieprawidłowa.","missingMessage":"Ta wartość jest wymagana.","rangeMessage":"Ta wartość jest spoza zakresu."},"dijit/form/nls/ComboBox":{"previousMessage":"Poprzednie wybory","nextMessage":"Więcej wyborów"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 bln","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤;(#,##0.00 ¤)","perMille":"‰","group":" ","percentFormat":"#,##0%","decimalFormat-long":"000 biliona","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_pt-br.js b/lib/dojo/nls/tt-rss-layer_pt-br.js
index 9a279f3b3..1b0d43ffa 100644
--- a/lib/dojo/nls/tt-rss-layer_pt-br.js
+++ b/lib/dojo/nls/tt-rss-layer_pt-br.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_pt-br",{"dijit/form/nls/validate":{"rangeMessage":"Este valor está fora do intervalo. ","invalidMessage":"O valor inserido não é válido.","missingMessage":"Este valor é necessário."},"dijit/nls/loading":{"loadingState":"Carregando...","errorState":"Desculpe, ocorreu um erro"},"dojo/nls/colors":{"lightsteelblue":"azul aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadet","seashell":"seashell","slategrey":"cinza ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde primavera médio","transparent":"transparente","salmon":"salmão","darkgrey":"cinza escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa enevoado","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinza turvo","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul royal","deeppink":"rosa profundo","lime":"lima","oldlace":"cadarço velho","chartreuse":"chartreuse","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"oliva","gold":"dourado","lawngreen":"verde grama","lightyellow":"amarelo claro","tan":"tan","darkviolet":"violeta escuro","lightslategrey":"cinza ardósia claro","grey":"cinza","darkkhaki":"cáqui escuro","green":"verde","deepskyblue":"azul céu intenso","aqua":"aqua","sienna":"sienna","mintcream":"creme de menta","rosybrown":"marrom rosado","mediumslateblue":"azul ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"verde oliva","darkgoldenrod":"goldenrod escuro","slateblue":"azul ardósia","mediumaquamarine":"água marinha médio","lavender":"lavanda","mediumseagreen":"verde marinho médio","maroon":"castanho","darkslategray":"cinza ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco ghost","darkblue":"azul escuro","mediumvioletred":"vermelho violeta médio","brown":"marrom","lightgray":"cinza claro","sandybrown":"marrom cor de areia","pink":"rosa","firebrick":"firebrick","indigo":"índigo","snow":"branco neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"moccasin","navy":"marinho","lemonchiffon":"limão chiffon","teal":"azul esverdeado","floralwhite":"branco floral","cornflowerblue":"azul centaurea","paleturquoise":"turquesa esbranquiçado","purple":"roxo","gainsboro":"gainsboro","plum":"ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"honeydew","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"vermelho violeta esbranquiçado","mediumpurple":"roxo médio","saddlebrown":"marrom saddle","darkmagenta":"magenta escuro","thistle":"thistle","whitesmoke":"fumaça branca","wheat":"trigo","violet":"violeta","lightskyblue":"azul céu claro","goldenrod":"goldenrod","mediumblue":"azul médio","skyblue":"azul céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinza ardósia escuro","peru":"peru","lightgrey":"cinza claro","lightgoldenrodyellow":"amarelo goldenrod claro","blanchedalmond":"amêndoa pelada","aliceblue":"azul alice","bisque":"bisque","slategray":"cinza ardósia","palegoldenrod":"goldenrod esbranquiçado","darkorange":"laranja escuro","aquamarine":"água marinha","lightgreen":"verde claro","burlywood":"burlywood","dodgerblue":"azul dodger","darkgray":"cinza escuro","lightcyan":"ciano claro","powderblue":"azul talco","blueviolet":"azul violeta","orchid":"orquídea","dimgray":"cinza turvo","beige":"bege","fuchsia":"fúcsia","lavenderblush":"lavanda avermelhada","hotpink":"rosa quente","steelblue":"azul aço","tomato":"tomate","lightpink":"rosa claro","limegreen":"verde lima","indianred":"vermelho indiano","papayawhip":"creme de papaya","lightslategray":"cinza ardósia claro","gray":"cinza","mediumorchid":"orquídea médio","cornsilk":"cornsilk","black":"preto","seagreen":"verde marinho","darkslateblue":"azul ardósia escuro","khaki":"cáqui","lightblue":"azul claro","palegreen":"verde esbranquiçado","azure":"azul celeste","peachpuff":"peach puff","darkolivegreen":"verde oliva escuro","yellowgreen":"verde amarelado"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤#,##0.00;(¤#,##0.00)","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Opções anteriores","nextMessage":"Mais opções"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Salvar","itemClose":"Fechar"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_pt-br",{"dojo/nls/colors":{"aliceblue":"azul alice","antiquewhite":"branco antigo","aqua":"aqua","aquamarine":"água marinha","azure":"azul celeste","beige":"bege","bisque":"bisque","black":"preto","blanchedalmond":"amêndoa pelada","blue":"azul","blueviolet":"azul violeta","brown":"marrom","burlywood":"burlywood","cadetblue":"azul cadet","chartreuse":"chartreuse","chocolate":"chocolate","coral":"coral","cornflowerblue":"azul centaurea","cornsilk":"cornsilk","crimson":"carmesim","cyan":"ciano","darkblue":"azul escuro","darkcyan":"ciano escuro","darkgoldenrod":"goldenrod escuro","darkgray":"cinza escuro","darkgreen":"verde escuro","darkgrey":"cinza escuro","darkkhaki":"cáqui escuro","darkmagenta":"magenta escuro","darkolivegreen":"verde oliva escuro","darkorange":"laranja escuro","darkorchid":"orquídea escuro","darkred":"vermelho escuro","darksalmon":"salmão escuro","darkseagreen":"verde marinho escuro","darkslateblue":"azul ardósia escuro","darkslategray":"cinza ardósia escuro","darkslategrey":"cinza ardósia escuro","darkturquoise":"turquesa escuro","darkviolet":"violeta escuro","deeppink":"rosa profundo","deepskyblue":"azul céu intenso","dimgray":"cinza turvo","dimgrey":"cinza turvo","dodgerblue":"azul dodger","firebrick":"firebrick","floralwhite":"branco floral","forestgreen":"verde floresta","fuchsia":"fúcsia","gainsboro":"gainsboro","ghostwhite":"branco ghost","gold":"dourado","goldenrod":"goldenrod","gray":"cinza","green":"verde","greenyellow":"amarelo esverdeado","grey":"cinza","honeydew":"honeydew","hotpink":"rosa quente","indianred":"vermelho indiano","indigo":"índigo","ivory":"marfim","khaki":"cáqui","lavender":"lavanda","lavenderblush":"lavanda avermelhada","lawngreen":"verde grama","lemonchiffon":"limão chiffon","lightblue":"azul claro","lightcoral":"coral claro","lightcyan":"ciano claro","lightgoldenrodyellow":"amarelo goldenrod claro","lightgray":"cinza claro","lightgreen":"verde claro","lightgrey":"cinza claro","lightpink":"rosa claro","lightsalmon":"salmão claro","lightseagreen":"verde marinho claro","lightskyblue":"azul céu claro","lightslategray":"cinza ardósia claro","lightslategrey":"cinza ardósia claro","lightsteelblue":"azul aço claro","lightyellow":"amarelo claro","lime":"lima","limegreen":"verde lima","linen":"linho","magenta":"magenta","maroon":"castanho","mediumaquamarine":"água marinha médio","mediumblue":"azul médio","mediumorchid":"orquídea médio","mediumpurple":"roxo médio","mediumseagreen":"verde marinho médio","mediumslateblue":"azul ardósia médio","mediumspringgreen":"verde primavera médio","mediumturquoise":"turquesa médio","mediumvioletred":"vermelho violeta médio","midnightblue":"azul meia-noite","mintcream":"creme de menta","mistyrose":"rosa enevoado","moccasin":"moccasin","navajowhite":"branco navajo","navy":"marinho","oldlace":"cadarço velho","olive":"oliva","olivedrab":"verde oliva","orange":"laranja","orangered":"vermelho alaranjado","orchid":"orquídea","palegoldenrod":"goldenrod esbranquiçado","palegreen":"verde esbranquiçado","paleturquoise":"turquesa esbranquiçado","palevioletred":"vermelho violeta esbranquiçado","papayawhip":"creme de papaya","peachpuff":"peach puff","peru":"peru","pink":"rosa","plum":"ameixa","powderblue":"azul talco","purple":"roxo","red":"vermelho","rosybrown":"marrom rosado","royalblue":"azul royal","saddlebrown":"marrom saddle","salmon":"salmão","sandybrown":"marrom cor de areia","seagreen":"verde marinho","seashell":"seashell","sienna":"sienna","silver":"prateado","skyblue":"azul céu","slateblue":"azul ardósia","slategray":"cinza ardósia","slategrey":"cinza ardósia","snow":"branco neve","springgreen":"verde primavera","steelblue":"azul aço","tan":"tan","teal":"azul esverdeado","thistle":"thistle","tomato":"tomate","transparent":"transparente","turquoise":"turquesa","violet":"violeta","wheat":"trigo","white":"branco","whitesmoke":"fumaça branca","yellow":"amarelo","yellowgreen":"verde amarelado"},"dijit/nls/loading":{"loadingState":"Carregando...","errorState":"Desculpe, ocorreu um erro"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Salvar","itemClose":"Fechar"},"dijit/form/nls/validate":{"invalidMessage":"O valor inserido não é válido.","missingMessage":"Este valor é necessário.","rangeMessage":"Este valor está fora do intervalo. "},"dijit/form/nls/ComboBox":{"previousMessage":"Opções anteriores","nextMessage":"Mais opções"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 tri","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤#,##0.00;(¤#,##0.00)","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat-long":"000 trilhões","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_pt-pt.js b/lib/dojo/nls/tt-rss-layer_pt-pt.js
index 63440b1cd..86d041af7 100644
--- a/lib/dojo/nls/tt-rss-layer_pt-pt.js
+++ b/lib/dojo/nls/tt-rss-layer_pt-pt.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_pt-pt",{"dijit/form/nls/validate":{"rangeMessage":"Este valor encontra-se fora do intervalo.","invalidMessage":"O valor introduzido não é válido.","missingMessage":"Este valor é requerido."},"dijit/nls/loading":{"loadingState":"A carregar...","errorState":"Lamentamos, mas ocorreu um erro"},"dojo/nls/colors":{"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadete","seashell":"concha","slategrey":"cinzento ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde primavera médio","transparent":"transparente","salmon":"salmão","darkgrey":"cinzento escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa pálido","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinzento esbatido","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul real","deeppink":"rosa profundo","lime":"lima","oldlace":"renda antiga","chartreuse":"amarelo esverdeado","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"azeitona","gold":"dourado","lawngreen":"verde relva","lightyellow":"amarelo claro","tan":"castanho claro","darkviolet":"violeta escuro","lightslategrey":"cinzento ardósia claro","grey":"cinzento","darkkhaki":"caqui escuro","green":"verde","deepskyblue":"azul céu profundo","aqua":"verde-água","sienna":"castanho-avermelhado","mintcream":"creme de menta","rosybrown":"castanho rosado","mediumslateblue":"azul ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"azeitona claro","darkgoldenrod":"ouro velho escuro","slateblue":"azul ardósia","mediumaquamarine":"verde-azulado médio","lavender":"alfazema","mediumseagreen":"verde marinho médio","maroon":"bordeaux","darkslategray":"cinzento ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco sombreado","darkblue":"azul escuro","mediumvioletred":"violeta avermelhado médio","brown":"castanho","lightgray":"cinzento claro","sandybrown":"castanho areia","pink":"rosa","firebrick":"tijolo fogo","indigo":"índigo","snow":"branco-neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"mocassim","navy":"azul marinho","lemonchiffon":"limão chiffon","teal":"verde-azulado","floralwhite":"branco floral","cornflowerblue":"azul-violáceo","paleturquoise":"turquesa pálido","purple":"roxo","gainsboro":"cinzento azulado claro","plum":"cor-de-ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"mel","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"violeta avermelhado pálido","mediumpurple":"roxo médio","saddlebrown":"castanho sela","darkmagenta":"magenta escuro","thistle":"cardo","whitesmoke":"fumo branco","wheat":"trigo","violet":"violeta","lightskyblue":"azul céu claro","goldenrod":"ouro velho","mediumblue":"azul médio","skyblue":"azul céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinzento ardósia escuro","peru":"peru","lightgrey":"cinzento claro","lightgoldenrodyellow":"ouro velho amarelado claro","blanchedalmond":"amêndoa claro","aliceblue":"azul alice","bisque":"rosa-velho","slategray":"cinzento ardósia","palegoldenrod":"ouro velho pálido","darkorange":"laranja escuro","aquamarine":"verde-azulado","lightgreen":"verde claro","burlywood":"castanho pinho","dodgerblue":"azul furtivo","darkgray":"cinzento escuro","lightcyan":"ciano claro","powderblue":"azul de esmalte","blueviolet":"azul violeta","orchid":"orquídea","dimgray":"cinzento esbatido","beige":"bege","fuchsia":"fúcsia","lavenderblush":"alfazema rosado","hotpink":"rosa forte","steelblue":"azul-aço","tomato":"vermelho tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"almagre","papayawhip":"creme de papaia","lightslategray":"cinzento ardósia claro","gray":"cinzento","mediumorchid":"orquídea médio","cornsilk":"branco seda","black":"preto","seagreen":"verde marinho","darkslateblue":"azul ardósia escuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"azul-celeste","peachpuff":"pêssego","darkolivegreen":"verde-azeitona escuro","yellowgreen":"verde amarelado"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":" ","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Opções anteriores","nextMessage":"Mais opções"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Fechar"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_pt-pt",{"dojo/nls/colors":{"aliceblue":"azul alice","antiquewhite":"branco antigo","aqua":"verde-água","aquamarine":"verde-azulado","azure":"azul-celeste","beige":"bege","bisque":"rosa-velho","black":"preto","blanchedalmond":"amêndoa claro","blue":"azul","blueviolet":"azul violeta","brown":"castanho","burlywood":"castanho pinho","cadetblue":"azul cadete","chartreuse":"amarelo esverdeado","chocolate":"chocolate","coral":"coral","cornflowerblue":"azul-violáceo","cornsilk":"branco seda","crimson":"carmesim","cyan":"ciano","darkblue":"azul escuro","darkcyan":"ciano escuro","darkgoldenrod":"ouro velho escuro","darkgray":"cinzento escuro","darkgreen":"verde escuro","darkgrey":"cinzento escuro","darkkhaki":"caqui escuro","darkmagenta":"magenta escuro","darkolivegreen":"verde-azeitona escuro","darkorange":"laranja escuro","darkorchid":"orquídea escuro","darkred":"vermelho escuro","darksalmon":"salmão escuro","darkseagreen":"verde marinho escuro","darkslateblue":"azul ardósia escuro","darkslategray":"cinzento ardósia escuro","darkslategrey":"cinzento ardósia escuro","darkturquoise":"turquesa escuro","darkviolet":"violeta escuro","deeppink":"rosa profundo","deepskyblue":"azul céu profundo","dimgray":"cinzento esbatido","dimgrey":"cinzento esbatido","dodgerblue":"azul furtivo","firebrick":"tijolo fogo","floralwhite":"branco floral","forestgreen":"verde floresta","fuchsia":"fúcsia","gainsboro":"cinzento azulado claro","ghostwhite":"branco sombreado","gold":"dourado","goldenrod":"ouro velho","gray":"cinzento","green":"verde","greenyellow":"amarelo esverdeado","grey":"cinzento","honeydew":"mel","hotpink":"rosa forte","indianred":"almagre","indigo":"índigo","ivory":"marfim","khaki":"caqui","lavender":"alfazema","lavenderblush":"alfazema rosado","lawngreen":"verde relva","lemonchiffon":"limão chiffon","lightblue":"azul claro","lightcoral":"coral claro","lightcyan":"ciano claro","lightgoldenrodyellow":"ouro velho amarelado claro","lightgray":"cinzento claro","lightgreen":"verde claro","lightgrey":"cinzento claro","lightpink":"rosa claro","lightsalmon":"salmão claro","lightseagreen":"verde marinho claro","lightskyblue":"azul céu claro","lightslategray":"cinzento ardósia claro","lightslategrey":"cinzento ardósia claro","lightsteelblue":"azul-aço claro","lightyellow":"amarelo claro","lime":"lima","limegreen":"verde-lima","linen":"linho","magenta":"magenta","maroon":"bordeaux","mediumaquamarine":"verde-azulado médio","mediumblue":"azul médio","mediumorchid":"orquídea médio","mediumpurple":"roxo médio","mediumseagreen":"verde marinho médio","mediumslateblue":"azul ardósia médio","mediumspringgreen":"verde primavera médio","mediumturquoise":"turquesa médio","mediumvioletred":"violeta avermelhado médio","midnightblue":"azul meia-noite","mintcream":"creme de menta","mistyrose":"rosa pálido","moccasin":"mocassim","navajowhite":"branco navajo","navy":"azul marinho","oldlace":"renda antiga","olive":"azeitona","olivedrab":"azeitona claro","orange":"laranja","orangered":"vermelho alaranjado","orchid":"orquídea","palegoldenrod":"ouro velho pálido","palegreen":"verde pálido","paleturquoise":"turquesa pálido","palevioletred":"violeta avermelhado pálido","papayawhip":"creme de papaia","peachpuff":"pêssego","peru":"peru","pink":"rosa","plum":"cor-de-ameixa","powderblue":"azul de esmalte","purple":"roxo","red":"vermelho","rosybrown":"castanho rosado","royalblue":"azul real","saddlebrown":"castanho sela","salmon":"salmão","sandybrown":"castanho areia","seagreen":"verde marinho","seashell":"concha","sienna":"castanho-avermelhado","silver":"prateado","skyblue":"azul céu","slateblue":"azul ardósia","slategray":"cinzento ardósia","slategrey":"cinzento ardósia","snow":"branco-neve","springgreen":"verde primavera","steelblue":"azul-aço","tan":"castanho claro","teal":"verde-azulado","thistle":"cardo","tomato":"vermelho tomate","transparent":"transparente","turquoise":"turquesa","violet":"violeta","wheat":"trigo","white":"branco","whitesmoke":"fumo branco","yellow":"amarelo","yellowgreen":"verde amarelado"},"dijit/nls/loading":{"loadingState":"A carregar...","errorState":"Lamentamos, mas ocorreu um erro"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Fechar"},"dijit/form/nls/validate":{"invalidMessage":"O valor introduzido não é válido.","missingMessage":"Este valor é requerido.","rangeMessage":"Este valor encontra-se fora do intervalo."},"dijit/form/nls/ComboBox":{"previousMessage":"Opções anteriores","nextMessage":"Mais opções"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 Bi","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":" ","percentFormat":"#,##0%","decimalFormat-long":"000 biliões","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_ru.js b/lib/dojo/nls/tt-rss-layer_ru.js
index d2fe70754..a397e1e3e 100644
--- a/lib/dojo/nls/tt-rss-layer_ru.js
+++ b/lib/dojo/nls/tt-rss-layer_ru.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_ru",{"dijit/form/nls/validate":{"rangeMessage":"Это значение вне диапазона.","invalidMessage":"Указано недопустимое значение.","missingMessage":"Это обязательное значение."},"dijit/nls/loading":{"loadingState":"Загрузка...","errorState":"Извините, возникла ошибка"},"dojo/nls/colors":{"lightsteelblue":"светлый стальной","orangered":"оранжево-красный","midnightblue":"полуночно-синий","cadetblue":"серо-синий","seashell":"морская раковина","slategrey":"грифельно-серый","coral":"коралловый","darkturquoise":"темный бирюзовый","antiquewhite":"белый антик","mediumspringgreen":"нейтральный весенне-зеленый","transparent":"прозрачный","salmon":"лососевый","darkgrey":"темно-серый","ivory":"слоновой кости","greenyellow":"зелено-желтый","mistyrose":"блекло-розовый","lightsalmon":"светло-лососевый","silver":"серебристый","dimgrey":"тускло-серый","orange":"оранжевый","white":"белый","navajowhite":"белый навахо","royalblue":"королевский голубой","deeppink":"темно-розовый","lime":"лайм","oldlace":"матово-белый","chartreuse":"желто-салатный","darkcyan":"темный циан","yellow":"желтый","linen":"хлопковый","olive":"оливковый","gold":"золотой","lawngreen":"зеленая лужайка","lightyellow":"светло-желтый","tan":"рыжевато-коричневый","darkviolet":"темно-фиолетовый","lightslategrey":"светлый грифельно-серый","grey":"серый","darkkhaki":"темный хаки","green":"зеленый","deepskyblue":"темный небесно-голубой","aqua":"зеленовато-голубой","sienna":"охра","mintcream":"мятно-кремовый","rosybrown":"розово-коричневый","mediumslateblue":"нейтральный грифельно-синий","magenta":"пурпурный","lightseagreen":"светлый морской волны","cyan":"циан","olivedrab":"желтовато-серый","darkgoldenrod":"темно-золотистый","slateblue":"грифельно-синий","mediumaquamarine":"нейтральный аквамарин","lavender":"бледно-лиловый","mediumseagreen":"нейтральный морской волны","maroon":"темно-бордовый","darkslategray":"темный грифельно-серый","mediumturquoise":"нейтральный бирюзовый","ghostwhite":"призрачно-белый","darkblue":"темно-синий","mediumvioletred":"нейтральный фиолетово-красный","brown":"коричневый","lightgray":"светло-серый","sandybrown":"коричнево-песчаный","pink":"розовый","firebrick":"кирпичный","indigo":"индиго","snow":"белоснежный","darkorchid":"темный орсель","turquoise":"бирюзовый","chocolate":"шоколадный","springgreen":"весенний зеленый","moccasin":"мокасин","navy":"темно-синий","lemonchiffon":"бледно-лимонный","teal":"чирок","floralwhite":"цветочно-белый","cornflowerblue":"фиолетово-синий","paleturquoise":"бледно-бирюзовый","purple":"фиолетовый","gainsboro":"бледно-серый","plum":"сливовый","red":"красный","blue":"синий","forestgreen":"зеленый лесной","darkgreen":"темно-зеленый","honeydew":"медовый","darkseagreen":"темный морской волны","lightcoral":"светло-коралловый","palevioletred":"бледный фиолетово-красный","mediumpurple":"нейтральный фиолетовый","saddlebrown":"кожано-коричневый","darkmagenta":"темно-пурпурный","thistle":"чертополох","whitesmoke":"дымчато-белый","wheat":"пшеница","violet":"фиолетовый","lightskyblue":"светлый небесно-голубой","goldenrod":"золотистый","mediumblue":"нейтральный синий","skyblue":"небесно-голубой","crimson":"малиновый","darksalmon":"темно-лососевый","darkred":"темно-красный","darkslategrey":"темный грифельно-серый","peru":"перу","lightgrey":"светло-серый","lightgoldenrodyellow":"светло-золотистый","blanchedalmond":"светло-миндальный","aliceblue":"серо-голубой","bisque":"бисквитный","slategray":"грифельно-серый","palegoldenrod":"бледно-золотистый","darkorange":"темно-оранжевый","aquamarine":"аквамарин","lightgreen":"светло-зеленый","burlywood":"светло-коричневый","dodgerblue":"бледно-синий","darkgray":"темно-серый","lightcyan":"светлый циан","powderblue":"пороховой","blueviolet":"сине-фиолетовый","orchid":"орсель","dimgray":"тускло-серый","beige":"бежевый","fuchsia":"фуксин","lavenderblush":"розовато-лиловый","hotpink":"красно-розовый","steelblue":"стальной","tomato":"помидор","lightpink":"светло-розовый","limegreen":"зеленый лайм","indianred":"индийский красный","papayawhip":"черенок папайи","lightslategray":"светлый грифельно-серый","gray":"серый","mediumorchid":"нейтральный орсель","cornsilk":"шелковый оттенок","black":"черный","seagreen":"морской волны","darkslateblue":"темный грифельно-синий","khaki":"хаки","lightblue":"светло-синий","palegreen":"бледно-зеленый","azure":"лазурный","peachpuff":"персиковый","darkolivegreen":"темно-оливковый","yellowgreen":"желто-зеленый"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Предыдущие варианты","nextMessage":"Следующие варианты"},"dijit/nls/common":{"buttonOk":"ОК","buttonCancel":"Отмена","buttonSave":"Сохранить","itemClose":"Закрыть"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_ru",{"dojo/nls/colors":{"aliceblue":"серо-голубой","antiquewhite":"белый антик","aqua":"зеленовато-голубой","aquamarine":"аквамарин","azure":"лазурный","beige":"бежевый","bisque":"бисквитный","black":"черный","blanchedalmond":"светло-миндальный","blue":"синий","blueviolet":"сине-фиолетовый","brown":"коричневый","burlywood":"светло-коричневый","cadetblue":"серо-синий","chartreuse":"желто-салатный","chocolate":"шоколадный","coral":"коралловый","cornflowerblue":"фиолетово-синий","cornsilk":"шелковый оттенок","crimson":"малиновый","cyan":"циан","darkblue":"темно-синий","darkcyan":"темный циан","darkgoldenrod":"темно-золотистый","darkgray":"темно-серый","darkgreen":"темно-зеленый","darkgrey":"темно-серый","darkkhaki":"темный хаки","darkmagenta":"темно-пурпурный","darkolivegreen":"темно-оливковый","darkorange":"темно-оранжевый","darkorchid":"темный орсель","darkred":"темно-красный","darksalmon":"темно-лососевый","darkseagreen":"темный морской волны","darkslateblue":"темный грифельно-синий","darkslategray":"темный грифельно-серый","darkslategrey":"темный грифельно-серый","darkturquoise":"темный бирюзовый","darkviolet":"темно-фиолетовый","deeppink":"темно-розовый","deepskyblue":"темный небесно-голубой","dimgray":"тускло-серый","dimgrey":"тускло-серый","dodgerblue":"бледно-синий","firebrick":"кирпичный","floralwhite":"цветочно-белый","forestgreen":"зеленый лесной","fuchsia":"фуксин","gainsboro":"бледно-серый","ghostwhite":"призрачно-белый","gold":"золотой","goldenrod":"золотистый","gray":"серый","green":"зеленый","greenyellow":"зелено-желтый","grey":"серый","honeydew":"медовый","hotpink":"красно-розовый","indianred":"индийский красный","indigo":"индиго","ivory":"слоновой кости","khaki":"хаки","lavender":"бледно-лиловый","lavenderblush":"розовато-лиловый","lawngreen":"зеленая лужайка","lemonchiffon":"бледно-лимонный","lightblue":"светло-синий","lightcoral":"светло-коралловый","lightcyan":"светлый циан","lightgoldenrodyellow":"светло-золотистый","lightgray":"светло-серый","lightgreen":"светло-зеленый","lightgrey":"светло-серый","lightpink":"светло-розовый","lightsalmon":"светло-лососевый","lightseagreen":"светлый морской волны","lightskyblue":"светлый небесно-голубой","lightslategray":"светлый грифельно-серый","lightslategrey":"светлый грифельно-серый","lightsteelblue":"светлый стальной","lightyellow":"светло-желтый","lime":"лайм","limegreen":"зеленый лайм","linen":"хлопковый","magenta":"пурпурный","maroon":"темно-бордовый","mediumaquamarine":"нейтральный аквамарин","mediumblue":"нейтральный синий","mediumorchid":"нейтральный орсель","mediumpurple":"нейтральный фиолетовый","mediumseagreen":"нейтральный морской волны","mediumslateblue":"нейтральный грифельно-синий","mediumspringgreen":"нейтральный весенне-зеленый","mediumturquoise":"нейтральный бирюзовый","mediumvioletred":"нейтральный фиолетово-красный","midnightblue":"полуночно-синий","mintcream":"мятно-кремовый","mistyrose":"блекло-розовый","moccasin":"мокасин","navajowhite":"белый навахо","navy":"темно-синий","oldlace":"матово-белый","olive":"оливковый","olivedrab":"желтовато-серый","orange":"оранжевый","orangered":"оранжево-красный","orchid":"орсель","palegoldenrod":"бледно-золотистый","palegreen":"бледно-зеленый","paleturquoise":"бледно-бирюзовый","palevioletred":"бледный фиолетово-красный","papayawhip":"черенок папайи","peachpuff":"персиковый","peru":"перу","pink":"розовый","plum":"сливовый","powderblue":"пороховой","purple":"фиолетовый","red":"красный","rosybrown":"розово-коричневый","royalblue":"королевский голубой","saddlebrown":"кожано-коричневый","salmon":"лососевый","sandybrown":"коричнево-песчаный","seagreen":"морской волны","seashell":"морская раковина","sienna":"охра","silver":"серебристый","skyblue":"небесно-голубой","slateblue":"грифельно-синий","slategray":"грифельно-серый","slategrey":"грифельно-серый","snow":"белоснежный","springgreen":"весенний зеленый","steelblue":"стальной","tan":"рыжевато-коричневый","teal":"чирок","thistle":"чертополох","tomato":"помидор","transparent":"прозрачный","turquoise":"бирюзовый","violet":"фиолетовый","wheat":"пшеница","white":"белый","whitesmoke":"дымчато-белый","yellow":"желтый","yellowgreen":"желто-зеленый"},"dijit/nls/loading":{"loadingState":"Загрузка...","errorState":"Извините, возникла ошибка"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Отмена","buttonSave":"Сохранить","itemClose":"Закрыть"},"dijit/form/nls/validate":{"invalidMessage":"Указано недопустимое значение.","missingMessage":"Это обязательное значение.","rangeMessage":"Это значение вне диапазона."},"dijit/form/nls/ComboBox":{"previousMessage":"Предыдущие варианты","nextMessage":"Следующие варианты"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 трлн","currencySpacing-afterCurrency-insertBetween":" ","nan":"не число","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat-long":"000 триллиона","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_sk.js b/lib/dojo/nls/tt-rss-layer_sk.js
index 3f99f0144..c7254732e 100644
--- a/lib/dojo/nls/tt-rss-layer_sk.js
+++ b/lib/dojo/nls/tt-rss-layer_sk.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_sk",{"dijit/form/nls/validate":{"rangeMessage":"Táto hodnota je mimo rozsah.","invalidMessage":"Zadaná hodnota nie je platná.","missingMessage":"Táto hodnota je vyžadovaná."},"dijit/nls/loading":{"loadingState":"Zavádzanie...","errorState":"Nastala chyba"},"dojo/nls/colors":{"lightsteelblue":"svetlá oceľovomodrá","orangered":"oranžovo červená","midnightblue":"polnočná modrá","cadetblue":"červeno modrá","seashell":"lastúrová","slategrey":"bridlicová sivá","coral":"koralová","darkturquoise":"tmavá tyrkysová","antiquewhite":"antická biela","mediumspringgreen":"stredná jarná zelená","transparent":"priesvitná","salmon":"lososová","darkgrey":"tmavosivá","ivory":"slonovina","greenyellow":"zelenožltá","mistyrose":"zahmlená ruža","lightsalmon":"svetlá lososová","silver":"strieborná","dimgrey":"matná sivá","orange":"oranžová","white":"biela","navajowhite":"navajská biela","royalblue":"kráľovská modrá","deeppink":"hlboká ružová","lime":"limetková","oldlace":"stará čipka","chartreuse":"kartúzska","darkcyan":"tmavá zelenomodrá","yellow":"žltá","linen":"ľan","olive":"olivová","gold":"zlatá","lawngreen":"trávová zelená","lightyellow":"svetložltá","tan":"žltohnedá","darkviolet":"tmavofialová","lightslategrey":"svetlá bridlicová sivá","grey":"sivá","darkkhaki":"tmavá žltohnedá","green":"zelená","deepskyblue":"hlboká modrá obloha","aqua":"vodová","sienna":"sienská","mintcream":"mätová krémová","rosybrown":"ružovo hnedá","mediumslateblue":"stredná bridlicová modrá","magenta":"purpurová","lightseagreen":"svetlá morská zelená","cyan":"zelenomodrá","olivedrab":"fádna olivová","darkgoldenrod":"tmavá zlatobyľ","slateblue":"bridlicová modrá","mediumaquamarine":"stredná akvamarínová","lavender":"levanduľa","mediumseagreen":"stredná morská zelená","maroon":"gaštanová hnedá","darkslategray":"tmavá bridlicová sivá","mediumturquoise":"stredná tyrkysová","ghostwhite":"biela (ghost white)","darkblue":"tmavomodrá","mediumvioletred":"stredná fialovočervená","brown":"hnedá","lightgray":"svetlosivá","sandybrown":"piesková hnedá","pink":"ružová","firebrick":"pálená tehla","indigo":"indigo","snow":"snehová","darkorchid":"tmavá orchidea","turquoise":"tyrkysová","chocolate":"čokoládová","springgreen":"jarná zelená","moccasin":"mokasínová","navy":"námornícka","lemonchiffon":"citrónový šifón","teal":"zelenomodrá","floralwhite":"biely kvet","cornflowerblue":"nevädzová modrá","paleturquoise":"bledá tyrkysová","purple":"purpurová","gainsboro":"sivá - gainsboro","plum":"slivková","red":"červená","blue":"modrá","forestgreen":"lesná zelená","darkgreen":"tmavozelená","honeydew":"ambrózia","darkseagreen":"tmavá morská zelená","lightcoral":"svetlá koralová","palevioletred":"bledá fialovo červená","mediumpurple":"stredná purpurová","saddlebrown":"sedlová hnedá","darkmagenta":"tmavá purpurová","thistle":"bodliaková","whitesmoke":"biely dym","wheat":"pšeničná","violet":"fialová","lightskyblue":"svetlá modrá obloha","goldenrod":"zlatobyľ","mediumblue":"stredná modrá","skyblue":"modré nebo","crimson":"karmínová","darksalmon":"tmavá lososová","darkred":"tmavočervená","darkslategrey":"tmavá bridlicová sivá","peru":"peru","lightgrey":"svetlosivá","lightgoldenrodyellow":"svetlá zlatobyľová žltá","blanchedalmond":"bledá mandľová","aliceblue":"modrá (alice)","bisque":"porcelánová","slategray":"bridlicová sivá","palegoldenrod":"bledá zlatobyľová","darkorange":"tmavá oranžová","aquamarine":"akvamarínová","lightgreen":"svetlozelená","burlywood":"drevená hnedá","dodgerblue":"modrá (dodger)","darkgray":"tmavosivá","lightcyan":"svetlá zelenomodrá","powderblue":"prášková modrá","blueviolet":"modro-fialová","orchid":"orchideová","dimgray":"matná sivá","beige":"béžová","fuchsia":"fuchsia","lavenderblush":"rumencová levanduľa","hotpink":"horúca ružová","steelblue":"oceľovomodrá","tomato":"paradajková","lightpink":"svetloružová","limegreen":"limetková zelená","indianred":"indiánska červená","papayawhip":"papájový krém","lightslategray":"svetlá bridlicová sivá","gray":"sivá","mediumorchid":"stredná orchideová","cornsilk":"ôstie kukurice","black":"čierna","seagreen":"morská zelená","darkslateblue":"tmavá bridlicová modrá","khaki":"kaki","lightblue":"svetlomodrá","palegreen":"bledá zelená","azure":"azúrová","peachpuff":"broskyňový nádych","darkolivegreen":"tmavá olivovo zelená","yellowgreen":"žltozelená"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":" ","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Predchádzajúce voľby","nextMessage":"Ďalšie voľby"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Zrušiť","buttonSave":"Uložiť","itemClose":"Zatvoriť"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_sk",{"dojo/nls/colors":{"aliceblue":"modrá (alice)","antiquewhite":"antická biela","aqua":"vodová","aquamarine":"akvamarínová","azure":"azúrová","beige":"béžová","bisque":"porcelánová","black":"čierna","blanchedalmond":"bledá mandľová","blue":"modrá","blueviolet":"modro-fialová","brown":"hnedá","burlywood":"drevená hnedá","cadetblue":"červeno modrá","chartreuse":"kartúzska","chocolate":"čokoládová","coral":"koralová","cornflowerblue":"nevädzová modrá","cornsilk":"ôstie kukurice","crimson":"karmínová","cyan":"zelenomodrá","darkblue":"tmavomodrá","darkcyan":"tmavá zelenomodrá","darkgoldenrod":"tmavá zlatobyľ","darkgray":"tmavosivá","darkgreen":"tmavozelená","darkgrey":"tmavosivá","darkkhaki":"tmavá žltohnedá","darkmagenta":"tmavá purpurová","darkolivegreen":"tmavá olivovo zelená","darkorange":"tmavá oranžová","darkorchid":"tmavá orchidea","darkred":"tmavočervená","darksalmon":"tmavá lososová","darkseagreen":"tmavá morská zelená","darkslateblue":"tmavá bridlicová modrá","darkslategray":"tmavá bridlicová sivá","darkslategrey":"tmavá bridlicová sivá","darkturquoise":"tmavá tyrkysová","darkviolet":"tmavofialová","deeppink":"hlboká ružová","deepskyblue":"hlboká modrá obloha","dimgray":"matná sivá","dimgrey":"matná sivá","dodgerblue":"modrá (dodger)","firebrick":"pálená tehla","floralwhite":"biely kvet","forestgreen":"lesná zelená","fuchsia":"fuchsia","gainsboro":"sivá - gainsboro","ghostwhite":"biela (ghost white)","gold":"zlatá","goldenrod":"zlatobyľ","gray":"sivá","green":"zelená","greenyellow":"zelenožltá","grey":"sivá","honeydew":"ambrózia","hotpink":"horúca ružová","indianred":"indiánska červená","indigo":"indigo","ivory":"slonovina","khaki":"kaki","lavender":"levanduľa","lavenderblush":"rumencová levanduľa","lawngreen":"trávová zelená","lemonchiffon":"citrónový šifón","lightblue":"svetlomodrá","lightcoral":"svetlá koralová","lightcyan":"svetlá zelenomodrá","lightgoldenrodyellow":"svetlá zlatobyľová žltá","lightgray":"svetlosivá","lightgreen":"svetlozelená","lightgrey":"svetlosivá","lightpink":"svetloružová","lightsalmon":"svetlá lososová","lightseagreen":"svetlá morská zelená","lightskyblue":"svetlá modrá obloha","lightslategray":"svetlá bridlicová sivá","lightslategrey":"svetlá bridlicová sivá","lightsteelblue":"svetlá oceľovomodrá","lightyellow":"svetložltá","lime":"limetková","limegreen":"limetková zelená","linen":"ľan","magenta":"purpurová","maroon":"gaštanová hnedá","mediumaquamarine":"stredná akvamarínová","mediumblue":"stredná modrá","mediumorchid":"stredná orchideová","mediumpurple":"stredná purpurová","mediumseagreen":"stredná morská zelená","mediumslateblue":"stredná bridlicová modrá","mediumspringgreen":"stredná jarná zelená","mediumturquoise":"stredná tyrkysová","mediumvioletred":"stredná fialovočervená","midnightblue":"polnočná modrá","mintcream":"mätová krémová","mistyrose":"zahmlená ruža","moccasin":"mokasínová","navajowhite":"navajská biela","navy":"námornícka","oldlace":"stará čipka","olive":"olivová","olivedrab":"fádna olivová","orange":"oranžová","orangered":"oranžovo červená","orchid":"orchideová","palegoldenrod":"bledá zlatobyľová","palegreen":"bledá zelená","paleturquoise":"bledá tyrkysová","palevioletred":"bledá fialovo červená","papayawhip":"papájový krém","peachpuff":"broskyňový nádych","peru":"peru","pink":"ružová","plum":"slivková","powderblue":"prášková modrá","purple":"purpurová","red":"červená","rosybrown":"ružovo hnedá","royalblue":"kráľovská modrá","saddlebrown":"sedlová hnedá","salmon":"lososová","sandybrown":"piesková hnedá","seagreen":"morská zelená","seashell":"lastúrová","sienna":"sienská","silver":"strieborná","skyblue":"modré nebo","slateblue":"bridlicová modrá","slategray":"bridlicová sivá","slategrey":"bridlicová sivá","snow":"snehová","springgreen":"jarná zelená","steelblue":"oceľovomodrá","tan":"žltohnedá","teal":"zelenomodrá","thistle":"bodliaková","tomato":"paradajková","transparent":"priesvitná","turquoise":"tyrkysová","violet":"fialová","wheat":"pšeničná","white":"biela","whitesmoke":"biely dym","yellow":"žltá","yellowgreen":"žltozelená"},"dijit/nls/loading":{"loadingState":"Zavádza sa...","errorState":"Ľutujeme, ale vyskytla sa chyba"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Zrušiť","buttonSave":"Uložiť","itemClose":"Zatvoriť"},"dijit/form/nls/validate":{"invalidMessage":"Zadaná hodnota nie je platná.","missingMessage":"Táto hodnota je povinná.","rangeMessage":"Táto hodnota je mimo rozsah."},"dijit/form/nls/ComboBox":{"previousMessage":"Predchádzajúce možnosti","nextMessage":"Viac možností"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 bil'.'","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat-long":"000 biliónov","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_sl.js b/lib/dojo/nls/tt-rss-layer_sl.js
index afc0d4e07..3f23d6440 100644
--- a/lib/dojo/nls/tt-rss-layer_sl.js
+++ b/lib/dojo/nls/tt-rss-layer_sl.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_sl",{"dijit/form/nls/validate":{"rangeMessage":"Ta vrednost je izven območja.","invalidMessage":"Vnesena vrednost ni veljavna.","missingMessage":"Ta vrednost je zahtevana."},"dijit/nls/loading":{"loadingState":"Nalaganje ...","errorState":"Oprostite, prišlo je do napake."},"dojo/nls/colors":{"lightsteelblue":"svetlo kovinsko modra","orangered":"oranžno-rdeča","midnightblue":"polnočno modra","cadetblue":"kadetsko modra","seashell":"morska lupina","slategrey":"skrilasto siva","coral":"koralna","darkturquoise":"temno turkizna","antiquewhite":"antično bela","mediumspringgreen":"srednje pomladno zelena","transparent":"prosojno","salmon":"lososova","darkgrey":"temno siva","ivory":"slonokoščena","greenyellow":"zeleno-rumena","mistyrose":"megleno rožnata","lightsalmon":"svetlo lososova","silver":"srebrna","dimgrey":"pepelnato siva","orange":"oranžna","white":"bela","navajowhite":"navajo bela","royalblue":"kraljevsko modra","deeppink":"temno rožnata","lime":"limetasta","oldlace":"stara čipka","chartreuse":"chartreuse","darkcyan":"temno cijan","yellow":"rumena","linen":"lanena","olive":"olivna","gold":"zlata","lawngreen":"travniško zelena","lightyellow":"svetlo rumena","tan":"rumeno-rjava","darkviolet":"temno vijolična","lightslategrey":"svetlo skrilasto siva","grey":"siva","darkkhaki":"temno kaki","green":"zelena","deepskyblue":"temno nebeško modra","aqua":"akva","sienna":"sienna","mintcream":"metina krema","rosybrown":"rožnato rjava","mediumslateblue":"srednje skrilasto modra","magenta":"magenta","lightseagreen":"svetlo morsko zelena","cyan":"cijan","olivedrab":"umazano olivna","darkgoldenrod":"temna zlata rozga","slateblue":"skrilasto modra","mediumaquamarine":"srednji akvamarin","lavender":"sivka","mediumseagreen":"srednje morsko zelena","maroon":"kostanjeva","darkslategray":"temno skrilasto siva","mediumturquoise":"srednje turkizna","ghostwhite":"senčnato bela","darkblue":"temno modra","mediumvioletred":"srednje vijolično rdeča","brown":"rjava","lightgray":"svetlo siva","sandybrown":"peščeno rjava","pink":"rožnata","firebrick":"opečnata","indigo":"indigo","snow":"snežena","darkorchid":"temno orhidejasta","turquoise":"turkizna","chocolate":"čokoladna","springgreen":"pomladno zelena","moccasin":"mokasinasta","navy":"mornarska","lemonchiffon":"limonast šifon","teal":"modrozelena","floralwhite":"cvetno bela","cornflowerblue":"plavičasto modra","paleturquoise":"bledo turkizna","purple":"škrlatna","gainsboro":"gainsboro","plum":"slivova","red":"rdeča","blue":"modra","forestgreen":"gozdno zelena","darkgreen":"temno zelena","honeydew":"medena rosa","darkseagreen":"temno morsko zelena","lightcoral":"svetlo koralna","palevioletred":"bledo vijolično-rdeča","mediumpurple":"srednje škrlatna","saddlebrown":"sedlasto rjava","darkmagenta":"temna magenta","thistle":"osatna","whitesmoke":"megleno bela","wheat":"pšenična","violet":"vijolična","lightskyblue":"svetlo nebeško modra","goldenrod":"zlata rozga","mediumblue":"srednje modra","skyblue":"nebeško modra","crimson":"karminasta","darksalmon":"temno lososova","darkred":"temno rdeča","darkslategrey":"temno skrilasto siva","peru":"perujska","lightgrey":"svetlo siva","lightgoldenrodyellow":"svetlo rumena zlata rozga","blanchedalmond":"obledelo mandljeva","aliceblue":"alice blue modra","bisque":"porcelanasta","slategray":"skrilasto siva","palegoldenrod":"bleda zlata rozga","darkorange":"temno oranžna","aquamarine":"akvamarin","lightgreen":"svetlo zelena","burlywood":"peščeno sivo-rjava","dodgerblue":"dodgersko modra","darkgray":"temno siva","lightcyan":"svetlo cijan","powderblue":"kobaltovo modra","blueviolet":"modro vijolična","orchid":"orhidejasta","dimgray":"pepelnato siva","beige":"bež","fuchsia":"fuksija","lavenderblush":"rožnato sivka","hotpink":"kričeče rožnata","steelblue":"kovinsko modra","tomato":"paradižnikova","lightpink":"svetlo rožnata","limegreen":"apneno zelena","indianred":"indijansko rdeča","papayawhip":"papaja","lightslategray":"svetlo skrilasto siva","gray":"siva","mediumorchid":"srednje orhidejasta","cornsilk":"koruzna","black":"črna","seagreen":"morsko zelena","darkslateblue":"temno skrilasto modra","khaki":"kaki","lightblue":"svetlo modra","palegreen":"bledo zelena","azure":"azurno modra","peachpuff":"breskova","darkolivegreen":"temna olivno zelena","yellowgreen":"rumeno-zelena"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"e"},"dijit/form/nls/ComboBox":{"previousMessage":"Prejšnje izbire","nextMessage":"Dodatne izbire"},"dijit/nls/common":{"buttonOk":"V redu","buttonCancel":"Prekliči","buttonSave":"Shrani","itemClose":"Zapri"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_sl",{"dojo/nls/colors":{"aliceblue":"alice blue modra","antiquewhite":"antično bela","aqua":"svetlo modra","aquamarine":"akvamarin","azure":"azurno modra","beige":"bež","bisque":"porcelanasta","black":"črna","blanchedalmond":"obledelo mandljeva","blue":"modra","blueviolet":"modro vijolična","brown":"rjava","burlywood":"peščeno sivo-rjava","cadetblue":"kadetsko modra","chartreuse":"chartreuse","chocolate":"čokoladna","coral":"koralna","cornflowerblue":"plavičasto modra","cornsilk":"koruzna","crimson":"karminasta","cyan":"cijan","darkblue":"temno modra","darkcyan":"temno cijan","darkgoldenrod":"temna zlata rozga","darkgray":"temno siva","darkgreen":"temno zelena","darkgrey":"temno siva","darkkhaki":"temno kaki","darkmagenta":"temna magenta","darkolivegreen":"temna olivno zelena","darkorange":"temno oranžna","darkorchid":"temno orhidejasta","darkred":"temno rdeča","darksalmon":"temno lososova","darkseagreen":"temno morsko zelena","darkslateblue":"temno skrilasto modra","darkslategray":"temno skrilasto siva","darkslategrey":"temno skrilasto siva","darkturquoise":"temno turkizna","darkviolet":"temno vijolična","deeppink":"temno rožnata","deepskyblue":"temno nebeško modra","dimgray":"pepelnato siva","dimgrey":"pepelnato siva","dodgerblue":"dodgersko modra","firebrick":"opečnata","floralwhite":"cvetno bela","forestgreen":"gozdno zelena","fuchsia":"roza","gainsboro":"gainsboro","ghostwhite":"senčnato bela","gold":"zlata","goldenrod":"zlata rozga","gray":"siva","green":"zelena","greenyellow":"zeleno-rumena","grey":"siva","honeydew":"medena rosa","hotpink":"kričeče rožnata","indianred":"indijansko rdeča","indigo":"indigo","ivory":"slonokoščena","khaki":"kaki","lavender":"sivka","lavenderblush":"rožnato sivka","lawngreen":"travniško zelena","lemonchiffon":"limonast šifon","lightblue":"svetlo modra","lightcoral":"svetlo koralna","lightcyan":"svetlo cijan","lightgoldenrodyellow":"svetlo rumena zlata rozga","lightgray":"svetlo siva","lightgreen":"svetlo zelena","lightgrey":"svetlo siva","lightpink":"svetlo rožnata","lightsalmon":"svetlo lososova","lightseagreen":"svetlo morsko zelena","lightskyblue":"svetlo nebeško modra","lightslategray":"svetlo skrilasto siva","lightslategrey":"svetlo skrilasto siva","lightsteelblue":"svetlo kovinsko modra","lightyellow":"svetlo rumena","lime":"svetlo zelena","limegreen":"apneno zelena","linen":"lanena","magenta":"magenta","maroon":"kostanjeva","mediumaquamarine":"srednji akvamarin","mediumblue":"srednje modra","mediumorchid":"srednje orhidejasta","mediumpurple":"srednje škrlatna","mediumseagreen":"srednje morsko zelena","mediumslateblue":"srednje skrilasto modra","mediumspringgreen":"srednje pomladno zelena","mediumturquoise":"srednje turkizna","mediumvioletred":"srednje vijolično rdeča","midnightblue":"polnočno modra","mintcream":"metina krema","mistyrose":"megleno rožnata","moccasin":"mokasinasta","navajowhite":"navajo bela","navy":"mornarsko modra","oldlace":"stara čipka","olive":"olivno zelena","olivedrab":"umazano olivna","orange":"oranžna","orangered":"oranžno-rdeča","orchid":"orhidejasta","palegoldenrod":"bleda zlata rozga","palegreen":"bledo zelena","paleturquoise":"bledo turkizna","palevioletred":"bledo vijolično-rdeča","papayawhip":"papaja","peachpuff":"breskova","peru":"perujska","pink":"rožnata","plum":"slivova","powderblue":"kobaltovo modra","purple":"škrlatna","red":"rdeča","rosybrown":"rožnato rjava","royalblue":"kraljevsko modra","saddlebrown":"sedlasto rjava","salmon":"lososova","sandybrown":"peščeno rjava","seagreen":"morsko zelena","seashell":"morska lupina","sienna":"sienna","silver":"srebrna","skyblue":"nebeško modra","slateblue":"skrilasto modra","slategray":"skrilasto siva","slategrey":"skrilasto siva","snow":"snežena","springgreen":"pomladno zelena","steelblue":"kovinsko modra","tan":"rumeno-rjava","teal":"modrozelena","thistle":"osatna","tomato":"paradižnikova","transparent":"prosojno","turquoise":"turkizna","violet":"vijolična","wheat":"pšenična","white":"bela","whitesmoke":"megleno bela","yellow":"rumena","yellowgreen":"rumeno-zelena"},"dijit/nls/loading":{"loadingState":"Nalaganje ...","errorState":"Oprostite, prišlo je do napake."},"dijit/nls/common":{"buttonOk":"V redu","buttonCancel":"Prekliči","buttonSave":"Shrani","itemClose":"Zapri"},"dijit/form/nls/validate":{"invalidMessage":"Vnesena vrednost ni veljavna.","missingMessage":"Ta vrednost je zahtevana.","rangeMessage":"Ta vrednost je izven območja."},"dijit/form/nls/ComboBox":{"previousMessage":"Prejšnje izbire","nextMessage":"Dodatne izbire"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 bil'.'","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤#,##0.00;(¤#,##0.00)","perMille":"‰","group":".","percentFormat":"#,##0%","decimalFormat-long":"000 bilijona","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"e"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_sv.js b/lib/dojo/nls/tt-rss-layer_sv.js
index 551c6496a..abee028f8 100644
--- a/lib/dojo/nls/tt-rss-layer_sv.js
+++ b/lib/dojo/nls/tt-rss-layer_sv.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_sv",{"dijit/form/nls/validate":{"rangeMessage":"Värdet är utanför intervallet.","invalidMessage":"Det angivna värdet är ogiltigt.","missingMessage":"Värdet är obligatoriskt."},"dijit/nls/loading":{"loadingState":"Läser in...","errorState":"Det uppstod ett fel."},"dojo/nls/colors":{"lightsteelblue":"ljust stålblått","orangered":"orangerött","midnightblue":"midnattsblått","cadetblue":"kadettblått","seashell":"snäckskal","slategrey":"skiffergrått","coral":"korall","darkturquoise":"mörkturkost","antiquewhite":"antikvitt","mediumspringgreen":"mellanvårgrönt","transparent":"transparent","salmon":"laxfärgat","darkgrey":"mörkgrått","ivory":"elfenbensvitt","greenyellow":"gröngult","mistyrose":"dunkelrosa","lightsalmon":"ljust laxfärgat","silver":"silver","dimgrey":"smutsgrått","orange":"orange","white":"vitt","navajowhite":"navajovitt","royalblue":"kungligt blått","deeppink":"djuprosa","lime":"lime","oldlace":"spetsvitt","chartreuse":"chartreuse","darkcyan":"mörkt cyan","yellow":"gult","linen":"linne","olive":"olivfärgat","gold":"guld","lawngreen":"gräsmattegrönt","lightyellow":"ljusgult","tan":"mellanbrunt","darkviolet":"mörkviolett","lightslategrey":"ljust skiffergrått","grey":"grått","darkkhaki":"mörkt kaki","green":"grönt","deepskyblue":"mörkt himmelsblått","aqua":"akvamarin","sienna":"sienna","mintcream":"mintgrädde","rosybrown":"rosenbrunt","mediumslateblue":"mellanskifferblått","magenta":"magenta","lightseagreen":"ljust havsgrönt","cyan":"cyan","olivedrab":"olivsmutsgult","darkgoldenrod":"mörkt gullris","slateblue":"skifferblått","mediumaquamarine":"mellanakvamarin","lavender":"lavendel","mediumseagreen":"mellanhavsgrönt","maroon":"rödbrunt","darkslategray":"mörkt skiffergrått","mediumturquoise":"mellanturkost","ghostwhite":"spökvitt","darkblue":"mörkblått","mediumvioletred":"mellanviolettrött","brown":"brunt","lightgray":"ljusgrått","sandybrown":"sandbrunt","pink":"rosa","firebrick":"tegelstensrött","indigo":"indigo","snow":"snö","darkorchid":"mörkt orkidé","turquoise":"turkost","chocolate":"choklad","springgreen":"vårgrönt","moccasin":"mockasin","navy":"marinblått","lemonchiffon":"citronchiffong","teal":"blågrönt","floralwhite":"blomvitt","cornflowerblue":"kornblått","paleturquoise":"blekturkost","purple":"lila","gainsboro":"gainsboro","plum":"plommon","red":"rött","blue":"blått","forestgreen":"skogsgrönt","darkgreen":"mörkgrönt","honeydew":"honungsdagg","darkseagreen":"mörkt havsgrönt","lightcoral":"ljuskorall","palevioletred":"blekviolettrött","mediumpurple":"mellanlila","saddlebrown":"sadelbrunt","darkmagenta":"mörk magenta","thistle":"tistel","whitesmoke":"vit rök","wheat":"vete","violet":"violett","lightskyblue":"ljust himmelsblått","goldenrod":"gullris","mediumblue":"mellanblått","skyblue":"himmelsblått","crimson":"karmosinrött","darksalmon":"mörkt laxfärgat","darkred":"mörkrött","darkslategrey":"mörkt skiffergrått","peru":"peru","lightgrey":"ljusgrått","lightgoldenrodyellow":"ljust gullrisgult","blanchedalmond":"skållad mandel","aliceblue":"aliceblå","bisque":"biskvi","slategray":"skiffergrått","palegoldenrod":"blekt gullris","darkorange":"mörkorange","aquamarine":"akvamarin","lightgreen":"ljusgrönt","burlywood":"träfärgat","dodgerblue":"dodgerblått","darkgray":"mörkgrått","lightcyan":"ljust cyan","powderblue":"pulverblått","blueviolet":"blåviolett","orchid":"orkidé","dimgray":"smutsgrått","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelskimrande","hotpink":"varmrosa","steelblue":"stålblått","tomato":"tomatrött","lightpink":"ljusrosa","limegreen":"limegrönt","indianred":"indianrött","papayawhip":"papayaröra","lightslategray":"ljust skiffergrått","gray":"grått","mediumorchid":"mellanorkidé","cornsilk":"gulvitt","black":"svart","seagreen":"havsgrönt","darkslateblue":"mörkt skifferblått","khaki":"kaki","lightblue":"ljusblått","palegreen":"blekgrönt","azure":"azurblått","peachpuff":"persika","darkolivegreen":"mörkt olivgrönt","yellowgreen":"gulgrönt"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"−","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"¤¤¤","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"×10^"},"dijit/form/nls/ComboBox":{"previousMessage":"Föregående alternativ","nextMessage":"Fler alternativ"},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Spara","itemClose":"Stäng"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_sv",{"dojo/nls/colors":{"aliceblue":"aliceblå","antiquewhite":"antikvitt","aqua":"akvamarin","aquamarine":"akvamarin","azure":"azurblått","beige":"beige","bisque":"biskvi","black":"svart","blanchedalmond":"skållad mandel","blue":"blått","blueviolet":"blåviolett","brown":"brunt","burlywood":"träfärgat","cadetblue":"kadettblått","chartreuse":"chartreuse","chocolate":"choklad","coral":"korall","cornflowerblue":"kornblått","cornsilk":"gulvitt","crimson":"karmosinrött","cyan":"cyan","darkblue":"mörkblått","darkcyan":"mörkt cyan","darkgoldenrod":"mörkt gullris","darkgray":"mörkgrått","darkgreen":"mörkgrönt","darkgrey":"mörkgrått","darkkhaki":"mörkt kaki","darkmagenta":"mörk magenta","darkolivegreen":"mörkt olivgrönt","darkorange":"mörkorange","darkorchid":"mörkt orkidé","darkred":"mörkrött","darksalmon":"mörkt laxfärgat","darkseagreen":"mörkt havsgrönt","darkslateblue":"mörkt skifferblått","darkslategray":"mörkt skiffergrått","darkslategrey":"mörkt skiffergrått","darkturquoise":"mörkturkost","darkviolet":"mörkviolett","deeppink":"djuprosa","deepskyblue":"mörkt himmelsblått","dimgray":"smutsgrått","dimgrey":"smutsgrått","dodgerblue":"dodgerblått","firebrick":"tegelstensrött","floralwhite":"blomvitt","forestgreen":"skogsgrönt","fuchsia":"fuchsia","gainsboro":"gainsboro","ghostwhite":"spökvitt","gold":"guld","goldenrod":"gullris","gray":"grått","green":"grönt","greenyellow":"gröngult","grey":"grått","honeydew":"honungsdagg","hotpink":"varmrosa","indianred":"indianrött","indigo":"indigo","ivory":"elfenbensvitt","khaki":"kaki","lavender":"lavendel","lavenderblush":"lavendelskimrande","lawngreen":"gräsmattegrönt","lemonchiffon":"citronchiffong","lightblue":"ljusblått","lightcoral":"ljuskorall","lightcyan":"ljust cyan","lightgoldenrodyellow":"ljust gullrisgult","lightgray":"ljusgrått","lightgreen":"ljusgrönt","lightgrey":"ljusgrått","lightpink":"ljusrosa","lightsalmon":"ljust laxfärgat","lightseagreen":"ljust havsgrönt","lightskyblue":"ljust himmelsblått","lightslategray":"ljust skiffergrått","lightslategrey":"ljust skiffergrått","lightsteelblue":"ljust stålblått","lightyellow":"ljusgult","lime":"lime","limegreen":"limegrönt","linen":"linne","magenta":"magenta","maroon":"rödbrunt","mediumaquamarine":"mellanakvamarin","mediumblue":"mellanblått","mediumorchid":"mellanorkidé","mediumpurple":"mellanlila","mediumseagreen":"mellanhavsgrönt","mediumslateblue":"mellanskifferblått","mediumspringgreen":"mellanvårgrönt","mediumturquoise":"mellanturkost","mediumvioletred":"mellanviolettrött","midnightblue":"midnattsblått","mintcream":"mintgrädde","mistyrose":"dunkelrosa","moccasin":"mockasin","navajowhite":"navajovitt","navy":"marinblått","oldlace":"spetsvitt","olive":"olivfärgat","olivedrab":"olivsmutsgult","orange":"orange","orangered":"orangerött","orchid":"orkidé","palegoldenrod":"blekt gullris","palegreen":"blekgrönt","paleturquoise":"blekturkost","palevioletred":"blekviolettrött","papayawhip":"papayaröra","peachpuff":"persika","peru":"peru","pink":"rosa","plum":"plommon","powderblue":"pulverblått","purple":"lila","red":"rött","rosybrown":"rosenbrunt","royalblue":"kungligt blått","saddlebrown":"sadelbrunt","salmon":"laxfärgat","sandybrown":"sandbrunt","seagreen":"havsgrönt","seashell":"snäckskal","sienna":"sienna","silver":"silver","skyblue":"himmelsblått","slateblue":"skifferblått","slategray":"skiffergrått","slategrey":"skiffergrått","snow":"snö","springgreen":"vårgrönt","steelblue":"stålblått","tan":"mellanbrunt","teal":"blågrönt","thistle":"tistel","tomato":"tomatrött","transparent":"transparent","turquoise":"turkost","violet":"violett","wheat":"vete","white":"vitt","whitesmoke":"vit rök","yellow":"gult","yellowgreen":"gulgrönt"},"dijit/nls/loading":{"loadingState":"Läser in...","errorState":"Det har inträffat ett fel."},"dijit/nls/common":{"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Spara","itemClose":"Stäng"},"dijit/form/nls/validate":{"invalidMessage":"Angivet värde är inte giltigt.","missingMessage":"Värdet krävs.","rangeMessage":"Värdet ligger utanför intervallet."},"dijit/form/nls/ComboBox":{"previousMessage":"Tidigare val","nextMessage":"Fler val"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"−","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 bn","currencySpacing-afterCurrency-insertBetween":" ","nan":"¤¤¤","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":" ","percentFormat":"#,##0 %","decimalFormat-long":"000 biljoner","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"×10^","currencyDecimal":":","currencyGroup":"."}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_th.js b/lib/dojo/nls/tt-rss-layer_th.js
index b1f871bd5..f6b8f46a8 100644
--- a/lib/dojo/nls/tt-rss-layer_th.js
+++ b/lib/dojo/nls/tt-rss-layer_th.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_th",{"dijit/form/nls/validate":{"rangeMessage":"ค่านี้เกินช่วง","invalidMessage":"ค่าที่ป้อนไม่ถูกต้อง","missingMessage":"จำเป็นต้องมีค่านี้"},"dijit/nls/loading":{"loadingState":"กำลังโหลด...","errorState":"ขออภัย เกิดข้อผิดพลาด"},"dojo/nls/colors":{"lightsteelblue":"light steel blue","orangered":"ส้มแกมแดง","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","transparent":"สีใส","salmon":"salmon","darkgrey":"เทาเข้ม","ivory":"งาช้าง","greenyellow":"เขียวแกมเหลือง","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"เงิน","dimgrey":"dim gray","orange":"ส้ม","white":"ขาว","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"ชมพูเข้ม","lime":"เหลืองมะนาว","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"เขียวแกมน้ำเงินเข้ม","yellow":"เหลือง","linen":"linen","olive":"โอลีฟ","gold":"ทอง","lawngreen":"lawn green","lightyellow":"เหลืองอ่อน","tan":"tan","darkviolet":"ม่วงเข้ม","lightslategrey":"light slate gray","grey":"เทา","darkkhaki":"dark khaki","green":"เขียว","deepskyblue":"deep sky blue","aqua":"ฟ้าน้ำทะเล","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"แดงแกมม่วง","lightseagreen":"light sea green","cyan":"เขียวแกมน้ำเงิน","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"ม่วงลาเวนเดอร์","mediumseagreen":"medium sea green","maroon":"น้ำตาลแดง","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"น้ำเงินเข้ม","mediumvioletred":"medium violet-red","brown":"น้ำตาล","lightgray":"เทาอ่อน","sandybrown":"sandy brown","pink":"ชมพู","firebrick":"สีอิฐ","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"ช็อกโกแลต","springgreen":"spring green","moccasin":"ม็อคค่า","navy":"น้ำเงินเข้ม","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"ม่วง","gainsboro":"gainsboro","plum":"plum","red":"แดง","blue":"น้ำเงิน","forestgreen":"forest green","darkgreen":"เขียวเข้ม","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"แดงแกมม่วงเข้ม","thistle":"thistle","whitesmoke":"ขาวควัน","wheat":"wheat","violet":"ม่วง","lightskyblue":"ฟ้าอ่อน","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"แดงเลือดหมู","darksalmon":"dark salmon","darkred":"แดงเข้ม","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"เทาอ่อน","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"ส้มเข้ม","aquamarine":"aquamarine","lightgreen":"เขียวอ่อน","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"เทาเข้ม","lightcyan":"เขียวแกมน้ำเงินอ่อน","powderblue":"powder blue","blueviolet":"น้ำเงินม่วง","orchid":"orchid","dimgray":"dim gray","beige":"น้ำตาลเบจ","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"ชมพูอ่อน","limegreen":"เขียวมะนาว","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"เทา","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"ดำ","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"น้ำเงินอ่อน","palegreen":"pale green","azure":"น้ำเงินฟ้า","peachpuff":"peach puff","darkolivegreen":"เขียวโอลีฟเข้ม","yellowgreen":"เหลืองแกมเขียว"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤#,##0.00;¤-#,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"การเลือกก่อนหน้า","nextMessage":"การเลือกเพิ่มเติม"},"dijit/nls/common":{"buttonOk":"ตกลง","buttonCancel":"ยกเลิก","buttonSave":"บันทึก","itemClose":"ปิด"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_th",{"dojo/nls/colors":{"aliceblue":"ฟ้าจาง","antiquewhite":"สีเนื้อ","aqua":"ฟ้าน้ำทะเล","aquamarine":"อะความารีน","azure":"น้ำเงินฟ้า","beige":"น้ำตาลเบจ","bisque":"ขาวข้าวสาร","black":"ดำ","blanchedalmond":"เนื้ออ่อน","blue":"น้ำเงิน","blueviolet":"น้ำเงินม่วง","brown":"น้ำตาล","burlywood":"น้ำตาลอ่อน","cadetblue":"เขียวน้ำเงินหม่น","chartreuse":"เขียวสะท้อนแสง","chocolate":"ช็อกโกแลต","coral":"แสดเข้มนวล","cornflowerblue":"สีคอร์นฟลาวเวอร์บลู","cornsilk":"cornsilk","crimson":"แดงเลือดหมู","cyan":"เขียวแกมน้ำเงิน","darkblue":"น้ำเงินเข้ม","darkcyan":"เขียวแกมน้ำเงินเข้ม","darkgoldenrod":"ทองเหลืองเข้ม","darkgray":"เทาเข้ม","darkgreen":"เขียวเข้ม","darkgrey":"เทาเข้ม","darkkhaki":"กากีเข้ม","darkmagenta":"แดงแกมม่วงเข้ม","darkolivegreen":"เขียวโอลีฟเข้ม","darkorange":"ส้มเข้ม","darkorchid":"สีม่วงกล้วยไม้เข้ม","darkred":"แดงเข้ม","darksalmon":"ส้มเข้ม","darkseagreen":"เขียวทะเลเข้ม","darkslateblue":"น้ำเงินนวลเข้ม","darkslategray":"เทานวลเข้ม","darkslategrey":"เทานวลเข้ม","darkturquoise":"ฟ้าขี้นกการเวกเข้ม","darkviolet":"ม่วงเข้ม","deeppink":"ชมพูเข้ม","deepskyblue":"ฟ้าสด","dimgray":"เทาทึม","dimgrey":"เทาทึม","dodgerblue":"ฟ้าสะท้อนแสง","firebrick":"สีอิฐ","floralwhite":"ขาวแกมชมพู","forestgreen":"หยก","fuchsia":"บานเย็น","gainsboro":"เทานวล","ghostwhite":"น้ำข้าว","gold":"ทอง","goldenrod":"ทองเหลือง","gray":"เทา","green":"เขียว","greenyellow":"เขียวแกมเหลือง","grey":"เทา","honeydew":"ขาวแกมเขียว","hotpink":"ชมพูจัด","indianred":"แดงอมเหลือง","indigo":"คราม","ivory":"งาช้าง","khaki":"กากี","lavender":"ม่วงลาเวนเดอร์","lavenderblush":"นมเย็น","lawngreen":"เขียวหญ้าอ่อน","lemonchiffon":"lemon chiffon","lightblue":"น้ำเงินอ่อน","lightcoral":"ชมพูอมแดง","lightcyan":"เขียวแกมน้ำเงินอ่อน","lightgoldenrodyellow":"ทองเหลืองอ่อน","lightgray":"เทาอ่อน","lightgreen":"เขียวอ่อน","lightgrey":"เทาอ่อน","lightpink":"ชมพูอ่อน","lightsalmon":"ส้มจาง","lightseagreen":"เขียวทะเลอ่อน","lightskyblue":"ฟ้าอ่อน","lightslategray":"เทานวลอ่อน","lightslategrey":"เทานวลอ่อน","lightsteelblue":"น้ำเงินนวลอ่อน","lightyellow":"เหลืองอ่อน","lime":"เหลืองมะนาว","limegreen":"เขียวมะนาว","linen":"ลินนิน","magenta":"แดงแกมม่วง","maroon":"น้ำตาลแดง","mediumaquamarine":"อะความารีนกลางๆ","mediumblue":"น้ำเงินกลางๆ","mediumorchid":"ม่วงกล้วยไม้กลางๆ","mediumpurple":"ม่วงอัญชัญ","mediumseagreen":" เขียวทะเลกลางๆ","mediumslateblue":"น้ำเงินนวลกลางๆ","mediumspringgreen":"สีเขียวนวลกลางๆ","mediumturquoise":"ฟ้าขี้นกการเวกกลางๆ","mediumvioletred":"แดงอมม่วงกลางๆ","midnightblue":"น้ำเงินทึบ","mintcream":"ขาวกะทิ","mistyrose":"ชมพูหม่น","moccasin":"ม็อคค่า","navajowhite":"ส้มหนังกลับ","navy":"น้ำเงินเข้ม","oldlace":"ขาวนวล","olive":"โอลีฟ","olivedrab":"เขียวมะกอกแก่","orange":"ส้ม","orangered":"ส้มแกมแดง","orchid":"สีกล้วยไม้","palegoldenrod":"ทองเหลืองจาง","palegreen":"เขียวจาง","paleturquoise":"ฟ้าขี้นกการเวกจาง","palevioletred":"แดงอมม่วงจาง","papayawhip":"ชมพูจาง","peachpuff":" สีพีช","peru":"ส้มดินเผา","pink":"ชมพู","plum":"ม่วงอ่อน","powderblue":"ฟ้าหม่น","purple":"ม่วง","red":"แดง","rosybrown":"กะปิ","royalblue":"น้ำเงินเข้ม","saddlebrown":"น้ำตาล","salmon":"ส้มอ่อน","sandybrown":"น้ำตาลลูกรัง","seagreen":"เขียวทะเล","seashell":"สีขาวหอยทะเล","sienna":"น้ำตาลอมแดง","silver":"เงิน","skyblue":"ฟ้า","slateblue":"น้ำเงินนวล","slategray":"เทาอมน้ำเงินนวล","slategrey":"เทาอมน้ำเงินนวล","snow":"ขาวหิมะ","springgreen":"เขียว","steelblue":"น้ำเงินด้าน","tan":"แทน","teal":"เขียวหัวเป็ด","thistle":"ม่วงจาง","tomato":"แสด","transparent":"สีใส","turquoise":"ฟ้าขี้นกการเวก","violet":"ม่วง","wheat":"เหลืองรำข้าว","white":"ขาว","whitesmoke":"ขาวควัน","yellow":"เหลือง","yellowgreen":"เหลืองแกมเขียว"},"dijit/nls/loading":{"loadingState":"กำลังโหลด...","errorState":"ขออภัย เกิดข้อผิดพลาด"},"dijit/nls/common":{"buttonOk":"ตกลง","buttonCancel":"ยกเลิก","buttonSave":"บันทึก","itemClose":"ปิด"},"dijit/form/nls/validate":{"invalidMessage":"ค่าที่ป้อนไม่ถูกต้อง","missingMessage":"จำเป็นต้องมีค่านี้","rangeMessage":"ค่านี้เกินช่วง"},"dijit/form/nls/ComboBox":{"previousMessage":"การเลือกก่อนหน้า","nextMessage":"การเลือกเพิ่มเติม"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 ล'.'ล'.'","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤#,##0.00;(¤#,##0.00)","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000 ล้านล้าน","decimalFormat":"#,##0.###","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_tr.js b/lib/dojo/nls/tt-rss-layer_tr.js
index 30e824e05..3f41399a2 100644
--- a/lib/dojo/nls/tt-rss-layer_tr.js
+++ b/lib/dojo/nls/tt-rss-layer_tr.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_tr",{"dijit/form/nls/validate":{"rangeMessage":"Bu değer aralık dışında.","invalidMessage":"Girilen değer geçersiz.","missingMessage":"Bu değer gerekli."},"dijit/nls/loading":{"loadingState":"Yükleniyor...","errorState":"Üzgünüz, bir hata oluştu"},"dojo/nls/colors":{"lightsteelblue":"açık metalik mavi","orangered":"turuncu kırmızı","midnightblue":"gece mavisi","cadetblue":"denizci mavisi","seashell":"deniz kabuğu","slategrey":"arduvaz grisi","coral":"mercan","darkturquoise":"koyu turkuaz","antiquewhite":"antik beyaz","mediumspringgreen":"orta bahar yeşili","transparent":"saydam","salmon":"somon","darkgrey":"koyu gri","ivory":"fildişi","greenyellow":"yeşil-sarı","mistyrose":"gülkurusu","lightsalmon":"açık somon","silver":"gümüş","dimgrey":"soluk gri","orange":"turuncu","white":"beyaz","navajowhite":"navajo beyazı","royalblue":"parlak koyu mavi","deeppink":"koyu pembe","lime":"limon yeşili","oldlace":"eski dantel","chartreuse":"chartreuse","darkcyan":"koyu camgöbeği","yellow":"sarı","linen":"keten","olive":"zeytin","gold":"altın","lawngreen":"çimen yeşili","lightyellow":"açık sarı","tan":"güneş yanığı","darkviolet":"koyu eflatun","lightslategrey":"açık arduvaz grisi","grey":"gri","darkkhaki":"koyu haki","green":"yeşil","deepskyblue":"koyu gök mavisi","aqua":"deniz mavisi","sienna":"koyu kahve","mintcream":"naneli krem","rosybrown":"pembemsi kahverengi","mediumslateblue":"orta arduvaz mavisi","magenta":"macenta","lightseagreen":"açık deniz yeşili","cyan":"camgöbeği","olivedrab":"asker yeşili","darkgoldenrod":"koyu sarı","slateblue":"arduvaz mavisi","mediumaquamarine":"orta akuamarin","lavender":"lavanta","mediumseagreen":"orta deniz yeşili","maroon":"kestane","darkslategray":"koyu arduvaz grisi","mediumturquoise":"orta turkuaz","ghostwhite":"silik beyaz","darkblue":"koyu mavi","mediumvioletred":"orta menekşe kırmızısı","brown":"kahverengi","lightgray":"açık gri","sandybrown":"kum rengi","pink":"pembe","firebrick":"canlı kiremit","indigo":"çivit mavisi","snow":"kar","darkorchid":"koyu orkide","turquoise":"turkuaz","chocolate":"çikolata","springgreen":"bahar yeşili","moccasin":"mokosen","navy":"lacivert","lemonchiffon":"limoni","teal":"Teal mavi","floralwhite":"çiçek beyazı","cornflowerblue":"peygamber çiçeği mavisi","paleturquoise":"soluk turkuaz","purple":"mor","gainsboro":"gainsboro","plum":"erik","red":"kırmızı","blue":"mavi","forestgreen":"koyu deniz yeşili","darkgreen":"koyu yeşil","honeydew":"çam sakızı","darkseagreen":"koyu deniz yeşili","lightcoral":"açık mercan","palevioletred":"soluk menekşe kırmızısı","mediumpurple":"orta mor","saddlebrown":"açık kahve","darkmagenta":"koyu mor","thistle":"devedikeni","whitesmoke":"beyaz duman","wheat":"buğday","violet":"eflatun","lightskyblue":"açık gök mavisi","goldenrod":"sarısabır","mediumblue":"orta mavi","skyblue":"gök mavisi","crimson":"crimson","darksalmon":"koyu somon","darkred":"koyu kırmızı","darkslategrey":"koyu arduvaz grisi","peru":"peru","lightgrey":"açık gri","lightgoldenrodyellow":"açık sarısabır","blanchedalmond":"soluk badem","aliceblue":"alice mavisi","bisque":"bisküvi","slategray":"arduvaz grisi","palegoldenrod":"soluk sarısabır","darkorange":"koyu turuncu","aquamarine":"akuamarin","lightgreen":"açık yeşil","burlywood":"sarımsı kahverengi","dodgerblue":"toz mavisi","darkgray":"koyu gri","lightcyan":"açık camgöbeği","powderblue":"pudra mavisi","blueviolet":"mavi-mor","orchid":"orkide","dimgray":"soluk gri","beige":"bej","fuchsia":"fuşya","lavenderblush":"lavanta pembesi","hotpink":"sıcak pembe","steelblue":"metalik mavi","tomato":"domates","lightpink":"açık pembe","limegreen":"küf yeşili","indianred":"kızılderili kırmızısı","papayawhip":"papaya sapı","lightslategray":"açık arduvaz grisi","gray":"gri","mediumorchid":"orta orkide","cornsilk":"mısır rengi","black":"siyah","seagreen":"deniz yeşili","darkslateblue":"koyu arduvaz mavisi","khaki":"haki","lightblue":"açık mavi","palegreen":"soluk yeşil","azure":"azur mavisi","peachpuff":"açık şeftali","darkolivegreen":"koyu zeytin yeşili","yellowgreen":"sarı yeşil"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"#,##0.00 ¤","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":".","percentFormat":"% #,##0","decimalFormat":"#,##0.###","decimal":",","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"Önceki seçenekler","nextMessage":"Diğer seçenekler"},"dijit/nls/common":{"buttonOk":"Tamam","buttonCancel":"İptal","buttonSave":"Kaydet","itemClose":"Kapat"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_tr",{"dojo/nls/colors":{"aliceblue":"alice mavisi","antiquewhite":"antik beyaz","aqua":"deniz mavisi","aquamarine":"akuamarin","azure":"azur mavisi","beige":"bej","bisque":"bisküvi","black":"siyah","blanchedalmond":"soluk badem","blue":"mavi","blueviolet":"mavi-mor","brown":"kahverengi","burlywood":"sarımsı kahverengi","cadetblue":"denizci mavisi","chartreuse":"chartreuse","chocolate":"çikolata","coral":"mercan","cornflowerblue":"peygamber çiçeği mavisi","cornsilk":"mısır rengi","crimson":"crimson","cyan":"camgöbeği","darkblue":"koyu mavi","darkcyan":"koyu camgöbeği","darkgoldenrod":"koyu sarı","darkgray":"koyu gri","darkgreen":"koyu yeşil","darkgrey":"koyu gri","darkkhaki":"koyu haki","darkmagenta":"koyu mor","darkolivegreen":"koyu zeytin yeşili","darkorange":"koyu turuncu","darkorchid":"koyu orkide","darkred":"koyu kırmızı","darksalmon":"koyu somon","darkseagreen":"koyu deniz yeşili","darkslateblue":"koyu arduvaz mavisi","darkslategray":"koyu arduvaz grisi","darkslategrey":"koyu arduvaz grisi","darkturquoise":"koyu turkuaz","darkviolet":"koyu eflatun","deeppink":"koyu pembe","deepskyblue":"koyu gök mavisi","dimgray":"soluk gri","dimgrey":"soluk gri","dodgerblue":"toz mavisi","firebrick":"canlı kiremit","floralwhite":"çiçek beyazı","forestgreen":"koyu deniz yeşili","fuchsia":"fuşya","gainsboro":"gainsboro","ghostwhite":"silik beyaz","gold":"altın","goldenrod":"sarısabır","gray":"gri","green":"yeşil","greenyellow":"yeşil-sarı","grey":"gri","honeydew":"çam sakızı","hotpink":"sıcak pembe","indianred":"kızılderili kırmızısı","indigo":"çivit mavisi","ivory":"fildişi","khaki":"haki","lavender":"lavanta","lavenderblush":"lavanta pembesi","lawngreen":"çimen yeşili","lemonchiffon":"limoni","lightblue":"açık mavi","lightcoral":"açık mercan","lightcyan":"açık camgöbeği","lightgoldenrodyellow":"açık sarısabır","lightgray":"açık gri","lightgreen":"açık yeşil","lightgrey":"açık gri","lightpink":"açık pembe","lightsalmon":"açık somon","lightseagreen":"açık deniz yeşili","lightskyblue":"açık gök mavisi","lightslategray":"açık arduvaz grisi","lightslategrey":"açık arduvaz grisi","lightsteelblue":"açık metalik mavi","lightyellow":"açık sarı","lime":"limon yeşili","limegreen":"küf yeşili","linen":"keten","magenta":"macenta","maroon":"kestane","mediumaquamarine":"orta akuamarin","mediumblue":"orta mavi","mediumorchid":"orta orkide","mediumpurple":"orta mor","mediumseagreen":"orta deniz yeşili","mediumslateblue":"orta arduvaz mavisi","mediumspringgreen":"orta bahar yeşili","mediumturquoise":"orta turkuaz","mediumvioletred":"orta menekşe kırmızısı","midnightblue":"gece mavisi","mintcream":"naneli krem","mistyrose":"gülkurusu","moccasin":"mokosen","navajowhite":"navajo beyazı","navy":"lacivert","oldlace":"eski dantel","olive":"zeytin","olivedrab":"asker yeşili","orange":"turuncu","orangered":"turuncu kırmızı","orchid":"orkide","palegoldenrod":"soluk sarısabır","palegreen":"soluk yeşil","paleturquoise":"soluk turkuaz","palevioletred":"soluk menekşe kırmızısı","papayawhip":"papaya sapı","peachpuff":"açık şeftali","peru":"peru","pink":"pembe","plum":"erik","powderblue":"pudra mavisi","purple":"mor","red":"kırmızı","rosybrown":"pembemsi kahverengi","royalblue":"parlak koyu mavi","saddlebrown":"açık kahve","salmon":"somon","sandybrown":"kum rengi","seagreen":"deniz yeşili","seashell":"deniz kabuğu","sienna":"koyu kahve","silver":"gümüş","skyblue":"gök mavisi","slateblue":"arduvaz mavisi","slategray":"arduvaz grisi","slategrey":"arduvaz grisi","snow":"kar","springgreen":"bahar yeşili","steelblue":"metalik mavi","tan":"güneş yanığı","teal":"Teal mavi","thistle":"devedikeni","tomato":"domates","transparent":"saydam","turquoise":"turkuaz","violet":"eflatun","wheat":"buğday","white":"beyaz","whitesmoke":"beyaz duman","yellow":"sarı","yellowgreen":"sarı yeşil"},"dijit/nls/loading":{"loadingState":"Yükleniyor...","errorState":"Üzgünüz, bir hata oluştu"},"dijit/nls/common":{"buttonOk":"Tamam","buttonCancel":"İptal","buttonSave":"Kaydet","itemClose":"Kapat"},"dijit/form/nls/validate":{"invalidMessage":"Girilen değer geçersiz.","missingMessage":"Bu değer gerekli.","rangeMessage":"Bu değer aralık dışında."},"dijit/form/nls/ComboBox":{"previousMessage":"Önceki seçenekler","nextMessage":"Diğer seçenekler"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000 T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"#,##0.00 ¤","perMille":"‰","group":".","percentFormat":"%#,##0","decimalFormat-long":"000 trilyon","decimalFormat":"#,##0.###","decimal":",","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_zh-cn.js b/lib/dojo/nls/tt-rss-layer_zh-cn.js
index b1ad719cb..b247269d7 100644
--- a/lib/dojo/nls/tt-rss-layer_zh-cn.js
+++ b/lib/dojo/nls/tt-rss-layer_zh-cn.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_zh-cn",{"dijit/form/nls/validate":{"rangeMessage":"此值超出范围。","invalidMessage":"输入的值无效。","missingMessage":"此值是必需值。"},"dijit/nls/loading":{"loadingState":"正在加载...","errorState":"对不起,发生了错误"},"dojo/nls/colors":{"lightsteelblue":"浅钢蓝色","orangered":"橙红色","midnightblue":"深蓝色","cadetblue":"灰蓝色","seashell":"海贝色","slategrey":"灰石色","coral":"珊瑚色","darkturquoise":"深粉蓝","antiquewhite":"古董白","mediumspringgreen":"间春绿色","transparent":"透明的","salmon":"橙红","darkgrey":"深灰色","ivory":"象牙色","greenyellow":"绿黄色","mistyrose":"浅玫瑰色","lightsalmon":"淡橙色","silver":"银白色","dimgrey":"暗灰色","orange":"橙色","white":"白色","navajowhite":"纳瓦白","royalblue":"品蓝","deeppink":"深粉红色","lime":"淡黄绿色","oldlace":"老白色","chartreuse":"黄绿色","darkcyan":"深青绿","yellow":"黄色","linen":"亚麻色","olive":"橄榄绿","gold":"金黄色","lawngreen":"草绿色","lightyellow":"浅黄色","tan":"棕褐色","darkviolet":"深紫色","lightslategrey":"浅青灰","grey":"灰色","darkkhaki":"深卡其色","green":"绿色","deepskyblue":"深天蓝色","aqua":"浅绿色","sienna":"赭色","mintcream":"薄荷色","rosybrown":"褐玫瑰红","mediumslateblue":"间暗蓝色","magenta":"洋红色","lightseagreen":"浅海藻绿","cyan":"青蓝色","olivedrab":"草绿色","darkgoldenrod":"深金黄","slateblue":"石蓝色","mediumaquamarine":"间绿色","lavender":"淡紫色","mediumseagreen":"间海蓝色","maroon":"栗色","darkslategray":"深青灰","mediumturquoise":"间绿宝石色","ghostwhite":"苍白","darkblue":"深蓝","mediumvioletred":"间紫罗兰色","brown":"棕色","lightgray":"浅灰色","sandybrown":"沙褐色","pink":"粉红色","firebrick":"砖红","indigo":"靛青","snow":"雪白色","darkorchid":"深紫色","turquoise":"绿宝石色","chocolate":"巧克力色","springgreen":"春绿色","moccasin":"鹿皮色","navy":"藏青色","lemonchiffon":"柠檬绸色","teal":"水鸭色","floralwhite":"花白色","cornflowerblue":"浅蓝色","paleturquoise":"苍绿色","purple":"紫色","gainsboro":"淡灰色","plum":"杨李色","red":"红色","blue":"蓝色","forestgreen":"森林绿","darkgreen":"深绿色","honeydew":"蜜汁色","darkseagreen":"深海藻绿","lightcoral":"浅珊瑚色","palevioletred":"苍紫罗兰色","mediumpurple":"间紫色","saddlebrown":"重褐色","darkmagenta":"深洋红色","thistle":"蓟色","whitesmoke":"烟白色","wheat":"浅黄色","violet":"紫色","lightskyblue":"浅天蓝色","goldenrod":"金麒麟色","mediumblue":"间蓝色","skyblue":"天蓝色","crimson":"绯红色","darksalmon":"深橙红","darkred":"深红色","darkslategrey":"深青灰","peru":"秘鲁色","lightgrey":"浅灰色","lightgoldenrodyellow":"浅金黄色","blanchedalmond":"白杏色","aliceblue":"爱丽丝蓝","bisque":"桔黄色","slategray":"灰石色","palegoldenrod":"淡金黄色","darkorange":"深橙色","aquamarine":"碧绿色","lightgreen":"浅绿色","burlywood":"实木色","dodgerblue":"闪蓝色","darkgray":"深灰色","lightcyan":"浅青色","powderblue":"铁蓝","blueviolet":"蓝紫色","orchid":"紫色","dimgray":"暗灰色","beige":"米色","fuchsia":"紫红色","lavenderblush":"淡紫红","hotpink":"深粉红","steelblue":"钢蓝色","tomato":"西红柿色","lightpink":"浅粉红色","limegreen":"橙绿色","indianred":"印度红","papayawhip":"木瓜色","lightslategray":"浅青灰","gray":"灰色","mediumorchid":"间紫色","cornsilk":"米绸色","black":"黑色","seagreen":"海绿色","darkslateblue":"深青蓝","khaki":"卡其色","lightblue":"淡蓝色","palegreen":"淡绿色","azure":"天蓝色","peachpuff":"桃色","darkolivegreen":"深橄榄绿","yellowgreen":"黄绿色"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤#,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"先前选项","nextMessage":"更多选项"},"dijit/nls/common":{"buttonOk":"确定","buttonCancel":"取消","buttonSave":"保存","itemClose":"关闭"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_zh-cn",{"dojo/nls/colors":{"aliceblue":"爱丽丝蓝","antiquewhite":"古董白","aqua":"浅绿色","aquamarine":"碧绿色","azure":"天蓝色","beige":"米色","bisque":"桔黄色","black":"黑色","blanchedalmond":"白杏色","blue":"蓝色","blueviolet":"蓝紫色","brown":"棕色","burlywood":"实木色","cadetblue":"灰蓝色","chartreuse":"黄绿色","chocolate":"巧克力色","coral":"珊瑚色","cornflowerblue":"浅蓝色","cornsilk":"米绸色","crimson":"绯红色","cyan":"青蓝色","darkblue":"深蓝","darkcyan":"深青绿","darkgoldenrod":"深金黄","darkgray":"深灰色","darkgreen":"深绿色","darkgrey":"深灰色","darkkhaki":"深卡其色","darkmagenta":"深洋红色","darkolivegreen":"深橄榄绿","darkorange":"深橙色","darkorchid":"深紫色","darkred":"深红色","darksalmon":"深橙红","darkseagreen":"深海藻绿","darkslateblue":"深青蓝","darkslategray":"深青灰","darkslategrey":"深青灰","darkturquoise":"深粉蓝","darkviolet":"深紫色","deeppink":"深粉红色","deepskyblue":"深天蓝色","dimgray":"暗灰色","dimgrey":"暗灰色","dodgerblue":"闪蓝色","firebrick":"砖红","floralwhite":"花白色","forestgreen":"森林绿","fuchsia":"紫红色","gainsboro":"淡灰色","ghostwhite":"苍白","gold":"金黄色","goldenrod":"金麒麟色","gray":"灰色","green":"绿色","greenyellow":"绿黄色","grey":"灰色","honeydew":"蜜汁色","hotpink":"深粉红","indianred":"印度红","indigo":"靛青","ivory":"象牙色","khaki":"卡其色","lavender":"淡紫色","lavenderblush":"淡紫红","lawngreen":"草绿色","lemonchiffon":"柠檬绸色","lightblue":"淡蓝色","lightcoral":"浅珊瑚色","lightcyan":"浅青色","lightgoldenrodyellow":"浅金黄色","lightgray":"浅灰色","lightgreen":"浅绿色","lightgrey":"浅灰色","lightpink":"浅粉红色","lightsalmon":"淡橙色","lightseagreen":"浅海藻绿","lightskyblue":"浅天蓝色","lightslategray":"浅青灰","lightslategrey":"浅青灰","lightsteelblue":"浅钢蓝色","lightyellow":"浅黄色","lime":"淡黄绿色","limegreen":"橙绿色","linen":"亚麻色","magenta":"洋红色","maroon":"栗色","mediumaquamarine":"间绿色","mediumblue":"间蓝色","mediumorchid":"间紫色","mediumpurple":"间紫色","mediumseagreen":"间海蓝色","mediumslateblue":"间暗蓝色","mediumspringgreen":"间春绿色","mediumturquoise":"间绿宝石色","mediumvioletred":"间紫罗兰色","midnightblue":"深蓝色","mintcream":"薄荷色","mistyrose":"浅玫瑰色","moccasin":"鹿皮色","navajowhite":"纳瓦白","navy":"藏青色","oldlace":"老白色","olive":"橄榄绿","olivedrab":"草绿色","orange":"橙色","orangered":"橙红色","orchid":"紫色","palegoldenrod":"淡金黄色","palegreen":"淡绿色","paleturquoise":"苍绿色","palevioletred":"苍紫罗兰色","papayawhip":"木瓜色","peachpuff":"桃色","peru":"秘鲁色","pink":"粉红色","plum":"杨李色","powderblue":"铁蓝","purple":"紫色","red":"红色","rosybrown":"褐玫瑰红","royalblue":"品蓝","saddlebrown":"重褐色","salmon":"橙红","sandybrown":"沙褐色","seagreen":"海绿色","seashell":"海贝色","sienna":"赭色","silver":"银白色","skyblue":"天蓝色","slateblue":"石蓝色","slategray":"灰石色","slategrey":"灰石色","snow":"雪白色","springgreen":"春绿色","steelblue":"钢蓝色","tan":"棕褐色","teal":"水鸭色","thistle":"蓟色","tomato":"西红柿色","transparent":"透明的","turquoise":"绿宝石色","violet":"紫色","wheat":"浅黄色","white":"白色","whitesmoke":"烟白色","yellow":"黄色","yellowgreen":"黄绿色"},"dijit/nls/loading":{"loadingState":"正在加载...","errorState":"对不起,发生了错误"},"dijit/nls/common":{"buttonOk":"确定","buttonCancel":"取消","buttonSave":"保存","itemClose":"关闭"},"dijit/form/nls/validate":{"invalidMessage":"输入的值无效。","missingMessage":"该值是必需的。","rangeMessage":"此值超出范围。"},"dijit/form/nls/ComboBox":{"previousMessage":"先前选项","nextMessage":"更多选项"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000兆","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤#,##0.00;(¤#,##0.00)","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000兆","decimalFormat":"#,##0.###","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/tt-rss-layer_zh-tw.js b/lib/dojo/nls/tt-rss-layer_zh-tw.js
index 99244ded2..1b4d7263c 100644
--- a/lib/dojo/nls/tt-rss-layer_zh-tw.js
+++ b/lib/dojo/nls/tt-rss-layer_zh-tw.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/nls/tt-rss-layer_zh-tw",{"dijit/form/nls/validate":{"rangeMessage":"此值超出範圍。","invalidMessage":"輸入的值無效。","missingMessage":"必須提供此值。"},"dijit/nls/loading":{"loadingState":"載入中...","errorState":"抱歉,發生錯誤"},"dojo/nls/colors":{"lightsteelblue":"淡鐵藍色","orangered":"橙紅色","midnightblue":"午夜藍","cadetblue":"軍服藍","seashell":"海貝色","slategrey":"岩灰色","coral":"珊瑚紅","darkturquoise":"暗松石綠","antiquewhite":"米白色","mediumspringgreen":"中春綠色","transparent":"透明","salmon":"鮭紅色","darkgrey":"暗灰色","ivory":"象牙色","greenyellow":"綠黃色","mistyrose":"霧玫瑰色","lightsalmon":"淡鮭紅","silver":"銀色","dimgrey":"昏灰色","orange":"橙色","white":"白色","navajowhite":"印地安黃色","royalblue":"品藍色","deeppink":"深粉紅色","lime":"檸檬色","oldlace":"舊蕾絲色","chartreuse":"淡黃綠色","darkcyan":"暗青色","yellow":"黃色","linen":"亞麻色","olive":"橄欖色","gold":"金色","lawngreen":"草綠色","lightyellow":"淡黃色","tan":"皮革色","darkviolet":"暗紫羅蘭色","lightslategrey":"淡岩灰色","grey":"灰色","darkkhaki":"暗卡其色","green":"綠色","deepskyblue":"深天藍色","aqua":"水色","sienna":"黃土赭色","mintcream":"薄荷乳白色","rosybrown":"玫瑰褐","mediumslateblue":"中岩藍色","magenta":"紫紅色","lightseagreen":"淡海綠色","cyan":"青色","olivedrab":"橄欖綠","darkgoldenrod":"暗金菊色","slateblue":"岩藍色","mediumaquamarine":"中碧綠色","lavender":"薰衣草紫","mediumseagreen":"中海綠色","maroon":"栗色","darkslategray":"暗岩灰色","mediumturquoise":"中松石綠","ghostwhite":"幽靈色","darkblue":"暗藍色","mediumvioletred":"中紫羅蘭紅","brown":"褐色","lightgray":"淡灰色","sandybrown":"沙褐色","pink":"粉紅色","firebrick":"紅磚色","indigo":"靛藍色","snow":"雪白色","darkorchid":"暗蘭花色","turquoise":"松石綠","chocolate":"巧克力色","springgreen":"春綠色","moccasin":"鹿皮黃色","navy":"海軍藍","lemonchiffon":"奶油黃","teal":"深藍綠色","floralwhite":"花卉白","cornflowerblue":"矢車菊藍","paleturquoise":"灰松石綠","purple":"紫色","gainsboro":"石板灰","plum":"李紫色","red":"紅色","blue":"藍色","forestgreen":"森綠色","darkgreen":"暗綠色","honeydew":"密瓜色","darkseagreen":"暗海綠色","lightcoral":"淡珊瑚紅","palevioletred":"灰紫羅蘭紅","mediumpurple":"中紫色","saddlebrown":"鞍褐色","darkmagenta":"暗紫紅色","thistle":"薊色","whitesmoke":"白煙色","wheat":"小麥色","violet":"紫羅蘭色","lightskyblue":"淡天藍色","goldenrod":"金菊色","mediumblue":"中藍色","skyblue":"天藍色","crimson":"暗深紅色","darksalmon":"暗鮭紅","darkred":"暗紅色","darkslategrey":"暗岩灰色","peru":"祕魯色","lightgrey":"淡灰色","lightgoldenrodyellow":"淡金菊黃","blanchedalmond":"杏仁白","aliceblue":"愛麗絲藍","bisque":"橘黃色","slategray":"岩灰色","palegoldenrod":"灰金菊色","darkorange":"暗橙色","aquamarine":"碧綠色","lightgreen":"淡綠色","burlywood":"實木色","dodgerblue":"道奇藍","darkgray":"暗灰色","lightcyan":"淡青色","powderblue":"粉藍色","blueviolet":"藍紫色","orchid":"蘭花色","dimgray":"昏灰色","beige":"灰棕色","fuchsia":"海棠紅","lavenderblush":"薰衣草紫紅","hotpink":"暖粉紅色","steelblue":"鐵藍色","tomato":"蕃茄紅","lightpink":"淡粉紅色","limegreen":"檸檬綠","indianred":"印度紅","papayawhip":"番木瓜色","lightslategray":"淡岩灰色","gray":"灰色","mediumorchid":"中蘭紫色","cornsilk":"玉米黃","black":"黑色","seagreen":"海綠色","darkslateblue":"暗岩藍色","khaki":"卡其色","lightblue":"淡藍色","palegreen":"灰綠色","azure":"天藍色","peachpuff":"粉撲桃色","darkolivegreen":"暗橄欖綠","yellowgreen":"黃綠色"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤#,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"},"dijit/form/nls/ComboBox":{"previousMessage":"前一個選擇項","nextMessage":"其他選擇項"},"dijit/nls/common":{"buttonOk":"確定","buttonCancel":"取消","buttonSave":"儲存","itemClose":"關閉"}}); \ No newline at end of file
+define("dojo/nls/tt-rss-layer_zh-tw",{"dojo/nls/colors":{"aliceblue":"愛麗絲藍","antiquewhite":"米白色","aqua":"水色","aquamarine":"碧綠色","azure":"天藍色","beige":"灰棕色","bisque":"橘黃色","black":"黑色","blanchedalmond":"杏仁白","blue":"藍色","blueviolet":"藍紫色","brown":"褐色","burlywood":"實木色","cadetblue":"軍服藍","chartreuse":"淡黃綠色","chocolate":"巧克力色","coral":"珊瑚紅","cornflowerblue":"矢車菊藍","cornsilk":"玉米黃","crimson":"暗深紅色","cyan":"青色","darkblue":"暗藍色","darkcyan":"暗青色","darkgoldenrod":"暗金菊色","darkgray":"暗灰色","darkgreen":"暗綠色","darkgrey":"暗灰色","darkkhaki":"暗卡其色","darkmagenta":"暗紫紅色","darkolivegreen":"暗橄欖綠","darkorange":"暗橙色","darkorchid":"暗蘭花色","darkred":"暗紅色","darksalmon":"暗鮭紅","darkseagreen":"暗海綠色","darkslateblue":"暗岩藍色","darkslategray":"暗岩灰色","darkslategrey":"暗岩灰色","darkturquoise":"暗松石綠","darkviolet":"暗紫羅蘭色","deeppink":"深粉紅色","deepskyblue":"深天藍色","dimgray":"昏灰色","dimgrey":"昏灰色","dodgerblue":"道奇藍","firebrick":"紅磚色","floralwhite":"花卉白","forestgreen":"森綠色","fuchsia":"海棠紅","gainsboro":"石板灰","ghostwhite":"幽靈色","gold":"金色","goldenrod":"金菊色","gray":"灰色","green":"綠色","greenyellow":"綠黃色","grey":"灰色","honeydew":"密瓜色","hotpink":"暖粉紅色","indianred":"印度紅","indigo":"靛藍色","ivory":"象牙色","khaki":"卡其色","lavender":"薰衣草紫","lavenderblush":"薰衣草紫紅","lawngreen":"草綠色","lemonchiffon":"奶油黃","lightblue":"淡藍色","lightcoral":"淡珊瑚紅","lightcyan":"淡青色","lightgoldenrodyellow":"淡金菊黃","lightgray":"淡灰色","lightgreen":"淡綠色","lightgrey":"淡灰色","lightpink":"淡粉紅色","lightsalmon":"淡鮭紅","lightseagreen":"淡海綠色","lightskyblue":"淡天藍色","lightslategray":"淡岩灰色","lightslategrey":"淡岩灰色","lightsteelblue":"淡鐵藍色","lightyellow":"淡黃色","lime":"檸檬色","limegreen":"檸檬綠","linen":"亞麻色","magenta":"紫紅色","maroon":"栗色","mediumaquamarine":"中碧綠色","mediumblue":"中藍色","mediumorchid":"中蘭紫色","mediumpurple":"中紫色","mediumseagreen":"中海綠色","mediumslateblue":"中岩藍色","mediumspringgreen":"中春綠色","mediumturquoise":"中松石綠","mediumvioletred":"中紫羅蘭紅","midnightblue":"午夜藍","mintcream":"薄荷乳白色","mistyrose":"霧玫瑰色","moccasin":"鹿皮黃色","navajowhite":"印地安黃色","navy":"海軍藍","oldlace":"舊蕾絲色","olive":"橄欖色","olivedrab":"橄欖綠","orange":"橙色","orangered":"橙紅色","orchid":"蘭花色","palegoldenrod":"灰金菊色","palegreen":"灰綠色","paleturquoise":"灰松石綠","palevioletred":"灰紫羅蘭紅","papayawhip":"番木瓜色","peachpuff":"粉撲桃色","peru":"祕魯色","pink":"粉紅色","plum":"李紫色","powderblue":"粉藍色","purple":"紫色","red":"紅色","rosybrown":"玫瑰褐","royalblue":"品藍色","saddlebrown":"鞍褐色","salmon":"鮭紅色","sandybrown":"沙褐色","seagreen":"海綠色","seashell":"海貝色","sienna":"黃土赭色","silver":"銀色","skyblue":"天藍色","slateblue":"岩藍色","slategray":"岩灰色","slategrey":"岩灰色","snow":"雪白色","springgreen":"春綠色","steelblue":"鐵藍色","tan":"皮革色","teal":"深藍綠色","thistle":"薊色","tomato":"蕃茄紅","transparent":"透明","turquoise":"松石綠","violet":"紫羅蘭色","wheat":"小麥色","white":"白色","whitesmoke":"白煙色","yellow":"黃色","yellowgreen":"黃綠色"},"dijit/nls/loading":{"loadingState":"載入中...","errorState":"抱歉,發生錯誤"},"dijit/nls/common":{"buttonOk":"確定","buttonCancel":"取消","buttonSave":"儲存","itemClose":"關閉"},"dijit/form/nls/validate":{"invalidMessage":"輸入的值無效。","missingMessage":"必須提供此值。","rangeMessage":"此值超出範圍。"},"dijit/form/nls/ComboBox":{"previousMessage":"前一個選擇項","nextMessage":"其他選擇項"},"dojo/cldr/nls/number":{"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"非數值","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencyFormat":"¤#,##0.00","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat-long":"000兆","decimalFormat":"#,##0.###","decimal":".","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}}); \ No newline at end of file
diff --git a/lib/dojo/nls/zh-tw/colors.js b/lib/dojo/nls/zh-tw/colors.js
index e3e36634b..822e8ac93 100644
--- a/lib/dojo/nls/zh-tw/colors.js
+++ b/lib/dojo/nls/zh-tw/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/nls/zh/colors.js b/lib/dojo/nls/zh/colors.js
index b8596ea2f..5792e8188 100644
--- a/lib/dojo/nls/zh/colors.js
+++ b/lib/dojo/nls/zh/colors.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/node.js b/lib/dojo/node.js
new file mode 100644
index 000000000..df9a2bcfc
--- /dev/null
+++ b/lib/dojo/node.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/node",["dojo/has"],function(_1){if(!0){throw new Error("node plugin failed to load because environment is not Node.js");}return {load:function(id,_2,_3){if(!_2.nodeRequire){throw new Error("Cannot find native require function");}_3(_2.nodeRequire(id));}};}); \ No newline at end of file
diff --git a/lib/dojo/number.js b/lib/dojo/number.js
index 3473c11fe..b01775097 100644
--- a/lib/dojo/number.js
+++ b/lib/dojo/number.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/number",["./_base/kernel","./_base/lang","./i18n","./i18n!./cldr/nls/number","./string","./regexp"],function(_1,_2,_3,_4,_5,_6){_2.getObject("number",true,_1);_1.number.format=function(_7,_8){_8=_2.mixin({},_8||{});var _9=_3.normalizeLocale(_8.locale),_a=_3.getLocalization("dojo.cldr","number",_9);_8.customs=_a;var _b=_8.pattern||_a[(_8.type||"decimal")+"Format"];if(isNaN(_7)||Math.abs(_7)==Infinity){return null;}return _1.number._applyPattern(_7,_b,_8);};_1.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;_1.number._applyPattern=function(_c,_d,_e){_e=_e||{};var _f=_e.customs.group,_10=_e.customs.decimal,_11=_d.split(";"),_12=_11[0];_d=_11[(_c<0)?1:0]||("-"+_12);if(_d.indexOf("%")!=-1){_c*=100;}else{if(_d.indexOf("‰")!=-1){_c*=1000;}else{if(_d.indexOf("¤")!=-1){_f=_e.customs.currencyGroup||_f;_10=_e.customs.currencyDecimal||_10;_d=_d.replace(/\u00a4{1,3}/,function(_13){var _14=["symbol","currency","displayName"][_13.length-1];return _e[_14]||_e.currency||"";});}else{if(_d.indexOf("E")!=-1){throw new Error("exponential notation not supported");}}}}var _15=_1.number._numberPatternRE;var _16=_12.match(_15);if(!_16){throw new Error("unable to find a number expression in pattern: "+_d);}if(_e.fractional===false){_e.places=0;}return _d.replace(_15,_1.number._formatAbsolute(_c,_16[0],{decimal:_10,group:_f,places:_e.places,round:_e.round}));};_1.number.round=function(_17,_18,_19){var _1a=10/(_19||10);return (_1a*+_17).toFixed(_18)/_1a;};if((0.9).toFixed()==0){var _1b=_1.number.round;_1.number.round=function(v,p,m){var d=Math.pow(10,-p||0),a=Math.abs(v);if(!v||a>=d||a*Math.pow(10,p+1)<5){d=0;}return _1b(v,p,m)+(v>0?d:-d);};}_1.number._formatAbsolute=function(_1c,_1d,_1e){_1e=_1e||{};if(_1e.places===true){_1e.places=0;}if(_1e.places===Infinity){_1e.places=6;}var _1f=_1d.split("."),_20=typeof _1e.places=="string"&&_1e.places.indexOf(","),_21=_1e.places;if(_20){_21=_1e.places.substring(_20+1);}else{if(!(_21>=0)){_21=(_1f[1]||[]).length;}}if(!(_1e.round<0)){_1c=_1.number.round(_1c,_21,_1e.round);}var _22=String(Math.abs(_1c)).split("."),_23=_22[1]||"";if(_1f[1]||_1e.places){if(_20){_1e.places=_1e.places.substring(0,_20);}var pad=_1e.places!==undefined?_1e.places:(_1f[1]&&_1f[1].lastIndexOf("0")+1);if(pad>_23.length){_22[1]=_5.pad(_23,pad,"0",true);}if(_21<_23.length){_22[1]=_23.substr(0,_21);}}else{if(_22[1]){_22.pop();}}var _24=_1f[0].replace(",","");pad=_24.indexOf("0");if(pad!=-1){pad=_24.length-pad;if(pad>_22[0].length){_22[0]=_5.pad(_22[0],pad);}if(_24.indexOf("#")==-1){_22[0]=_22[0].substr(_22[0].length-pad);}}var _25=_1f[0].lastIndexOf(","),_26,_27;if(_25!=-1){_26=_1f[0].length-_25-1;var _28=_1f[0].substr(0,_25);_25=_28.lastIndexOf(",");if(_25!=-1){_27=_28.length-_25-1;}}var _29=[];for(var _2a=_22[0];_2a;){var off=_2a.length-_26;_29.push((off>0)?_2a.substr(off):_2a);_2a=(off>0)?_2a.slice(0,off):"";if(_27){_26=_27;delete _27;}}_22[0]=_29.reverse().join(_1e.group||",");return _22.join(_1e.decimal||".");};_1.number.regexp=function(_2b){return _1.number._parseInfo(_2b).regexp;};_1.number._parseInfo=function(_2c){_2c=_2c||{};var _2d=_3.normalizeLocale(_2c.locale),_2e=_3.getLocalization("dojo.cldr","number",_2d),_2f=_2c.pattern||_2e[(_2c.type||"decimal")+"Format"],_30=_2e.group,_31=_2e.decimal,_32=1;if(_2f.indexOf("%")!=-1){_32/=100;}else{if(_2f.indexOf("‰")!=-1){_32/=1000;}else{var _33=_2f.indexOf("¤")!=-1;if(_33){_30=_2e.currencyGroup||_30;_31=_2e.currencyDecimal||_31;}}}var _34=_2f.split(";");if(_34.length==1){_34.push("-"+_34[0]);}var re=_6.buildGroupRE(_34,function(_35){_35="(?:"+_6.escapeString(_35,".")+")";return _35.replace(_1.number._numberPatternRE,function(_36){var _37={signed:false,separator:_2c.strict?_30:[_30,""],fractional:_2c.fractional,decimal:_31,exponent:false},_38=_36.split("."),_39=_2c.places;if(_38.length==1&&_32!=1){_38[1]="###";}if(_38.length==1||_39===0){_37.fractional=false;}else{if(_39===undefined){_39=_2c.pattern?_38[1].lastIndexOf("0")+1:Infinity;}if(_39&&_2c.fractional==undefined){_37.fractional=true;}if(!_2c.places&&(_39<_38[1].length)){_39+=","+_38[1].length;}_37.places=_39;}var _3a=_38[0].split(",");if(_3a.length>1){_37.groupSize=_3a.pop().length;if(_3a.length>1){_37.groupSize2=_3a.pop().length;}}return "("+_1.number._realNumberRegexp(_37)+")";});},true);if(_33){re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(_3b,_3c,_3d,_3e){var _3f=["symbol","currency","displayName"][_3d.length-1],_40=_6.escapeString(_2c[_3f]||_2c.currency||"");_3c=_3c?"[\\s\\xa0]":"";_3e=_3e?"[\\s\\xa0]":"";if(!_2c.strict){if(_3c){_3c+="*";}if(_3e){_3e+="*";}return "(?:"+_3c+_40+_3e+")?";}return _3c+_40+_3e;});}return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_30,decimal:_31,factor:_32};};_1.number.parse=function(_41,_42){var _43=_1.number._parseInfo(_42),_44=(new RegExp("^"+_43.regexp+"$")).exec(_41);if(!_44){return NaN;}var _45=_44[1];if(!_44[1]){if(!_44[2]){return NaN;}_45=_44[2];_43.factor*=-1;}_45=_45.replace(new RegExp("["+_43.group+"\\s\\xa0"+"]","g"),"").replace(_43.decimal,".");return _45*_43.factor;};_1.number._realNumberRegexp=function(_46){_46=_46||{};if(!("places" in _46)){_46.places=Infinity;}if(typeof _46.decimal!="string"){_46.decimal=".";}if(!("fractional" in _46)||/^0/.test(_46.places)){_46.fractional=[true,false];}if(!("exponent" in _46)){_46.exponent=[true,false];}if(!("eSigned" in _46)){_46.eSigned=[true,false];}var _47=_1.number._integerRegexp(_46),_48=_6.buildGroupRE(_46.fractional,function(q){var re="";if(q&&(_46.places!==0)){re="\\"+_46.decimal;if(_46.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+_46.places+"}";}}return re;},true);var _49=_6.buildGroupRE(_46.exponent,function(q){if(q){return "([eE]"+_1.number._integerRegexp({signed:_46.eSigned})+")";}return "";});var _4a=_47+_48;if(_48){_4a="(?:(?:"+_4a+")|(?:"+_48+"))";}return _4a+_49;};_1.number._integerRegexp=function(_4b){_4b=_4b||{};if(!("signed" in _4b)){_4b.signed=[true,false];}if(!("separator" in _4b)){_4b.separator="";}else{if(!("groupSize" in _4b)){_4b.groupSize=3;}}var _4c=_6.buildGroupRE(_4b.signed,function(q){return q?"[-+]":"";},true);var _4d=_6.buildGroupRE(_4b.separator,function(sep){if(!sep){return "(?:\\d+)";}sep=_6.escapeString(sep);if(sep==" "){sep="\\s";}else{if(sep==" "){sep="\\s\\xa0";}}var grp=_4b.groupSize,_4e=_4b.groupSize2;if(_4e){var _4f="(?:0|[1-9]\\d{0,"+(_4e-1)+"}(?:["+sep+"]\\d{"+_4e+"})*["+sep+"]\\d{"+grp+"})";return ((grp-_4e)>0)?"(?:"+_4f+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_4f;}return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return _4c+_4d;};return _1.number;}); \ No newline at end of file
+define("dojo/number",["./_base/lang","./i18n","./i18n!./cldr/nls/number","./string","./regexp"],function(_1,_2,_3,_4,_5){var _6={};_1.setObject("dojo.number",_6);_6.format=function(_7,_8){_8=_1.mixin({},_8||{});var _9=_2.normalizeLocale(_8.locale),_a=_2.getLocalization("dojo.cldr","number",_9);_8.customs=_a;var _b=_8.pattern||_a[(_8.type||"decimal")+"Format"];if(isNaN(_7)||Math.abs(_7)==Infinity){return null;}return _6._applyPattern(_7,_b,_8);};_6._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;_6._applyPattern=function(_c,_d,_e){_e=_e||{};var _f=_e.customs.group,_10=_e.customs.decimal,_11=_d.split(";"),_12=_11[0];_d=_11[(_c<0)?1:0]||("-"+_12);if(_d.indexOf("%")!=-1){_c*=100;}else{if(_d.indexOf("‰")!=-1){_c*=1000;}else{if(_d.indexOf("¤")!=-1){_f=_e.customs.currencyGroup||_f;_10=_e.customs.currencyDecimal||_10;_d=_d.replace(/\u00a4{1,3}/,function(_13){var _14=["symbol","currency","displayName"][_13.length-1];return _e[_14]||_e.currency||"";});}else{if(_d.indexOf("E")!=-1){throw new Error("exponential notation not supported");}}}}var _15=_6._numberPatternRE;var _16=_12.match(_15);if(!_16){throw new Error("unable to find a number expression in pattern: "+_d);}if(_e.fractional===false){_e.places=0;}return _d.replace(_15,_6._formatAbsolute(_c,_16[0],{decimal:_10,group:_f,places:_e.places,round:_e.round}));};_6.round=function(_17,_18,_19){var _1a=10/(_19||10);return (_1a*+_17).toFixed(_18)/_1a;};if((0.9).toFixed()==0){var _1b=_6.round;_6.round=function(v,p,m){var d=Math.pow(10,-p||0),a=Math.abs(v);if(!v||a>=d){d=0;}else{a/=d;if(a<0.5||a>=0.95){d=0;}}return _1b(v,p,m)+(v>0?d:-d);};}_6._formatAbsolute=function(_1c,_1d,_1e){_1e=_1e||{};if(_1e.places===true){_1e.places=0;}if(_1e.places===Infinity){_1e.places=6;}var _1f=_1d.split("."),_20=typeof _1e.places=="string"&&_1e.places.indexOf(","),_21=_1e.places;if(_20){_21=_1e.places.substring(_20+1);}else{if(!(_21>=0)){_21=(_1f[1]||[]).length;}}if(!(_1e.round<0)){_1c=_6.round(_1c,_21,_1e.round);}var _22=String(Math.abs(_1c)).split("."),_23=_22[1]||"";if(_1f[1]||_1e.places){if(_20){_1e.places=_1e.places.substring(0,_20);}var pad=_1e.places!==undefined?_1e.places:(_1f[1]&&_1f[1].lastIndexOf("0")+1);if(pad>_23.length){_22[1]=_4.pad(_23,pad,"0",true);}if(_21<_23.length){_22[1]=_23.substr(0,_21);}}else{if(_22[1]){_22.pop();}}var _24=_1f[0].replace(",","");pad=_24.indexOf("0");if(pad!=-1){pad=_24.length-pad;if(pad>_22[0].length){_22[0]=_4.pad(_22[0],pad);}if(_24.indexOf("#")==-1){_22[0]=_22[0].substr(_22[0].length-pad);}}var _25=_1f[0].lastIndexOf(","),_26,_27;if(_25!=-1){_26=_1f[0].length-_25-1;var _28=_1f[0].substr(0,_25);_25=_28.lastIndexOf(",");if(_25!=-1){_27=_28.length-_25-1;}}var _29=[];for(var _2a=_22[0];_2a;){var off=_2a.length-_26;_29.push((off>0)?_2a.substr(off):_2a);_2a=(off>0)?_2a.slice(0,off):"";if(_27){_26=_27;delete _27;}}_22[0]=_29.reverse().join(_1e.group||",");return _22.join(_1e.decimal||".");};_6.regexp=function(_2b){return _6._parseInfo(_2b).regexp;};_6._parseInfo=function(_2c){_2c=_2c||{};var _2d=_2.normalizeLocale(_2c.locale),_2e=_2.getLocalization("dojo.cldr","number",_2d),_2f=_2c.pattern||_2e[(_2c.type||"decimal")+"Format"],_30=_2e.group,_31=_2e.decimal,_32=1;if(_2f.indexOf("%")!=-1){_32/=100;}else{if(_2f.indexOf("‰")!=-1){_32/=1000;}else{var _33=_2f.indexOf("¤")!=-1;if(_33){_30=_2e.currencyGroup||_30;_31=_2e.currencyDecimal||_31;}}}var _34=_2f.split(";");if(_34.length==1){_34.push("-"+_34[0]);}var re=_5.buildGroupRE(_34,function(_35){_35="(?:"+_5.escapeString(_35,".")+")";return _35.replace(_6._numberPatternRE,function(_36){var _37={signed:false,separator:_2c.strict?_30:[_30,""],fractional:_2c.fractional,decimal:_31,exponent:false},_38=_36.split("."),_39=_2c.places;if(_38.length==1&&_32!=1){_38[1]="###";}if(_38.length==1||_39===0){_37.fractional=false;}else{if(_39===undefined){_39=_2c.pattern?_38[1].lastIndexOf("0")+1:Infinity;}if(_39&&_2c.fractional==undefined){_37.fractional=true;}if(!_2c.places&&(_39<_38[1].length)){_39+=","+_38[1].length;}_37.places=_39;}var _3a=_38[0].split(",");if(_3a.length>1){_37.groupSize=_3a.pop().length;if(_3a.length>1){_37.groupSize2=_3a.pop().length;}}return "("+_6._realNumberRegexp(_37)+")";});},true);if(_33){re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(_3b,_3c,_3d,_3e){var _3f=["symbol","currency","displayName"][_3d.length-1],_40=_5.escapeString(_2c[_3f]||_2c.currency||"");_3c=_3c?"[\\s\\xa0]":"";_3e=_3e?"[\\s\\xa0]":"";if(!_2c.strict){if(_3c){_3c+="*";}if(_3e){_3e+="*";}return "(?:"+_3c+_40+_3e+")?";}return _3c+_40+_3e;});}return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_30,decimal:_31,factor:_32};};_6.parse=function(_41,_42){var _43=_6._parseInfo(_42),_44=(new RegExp("^"+_43.regexp+"$")).exec(_41);if(!_44){return NaN;}var _45=_44[1];if(!_44[1]){if(!_44[2]){return NaN;}_45=_44[2];_43.factor*=-1;}_45=_45.replace(new RegExp("["+_43.group+"\\s\\xa0"+"]","g"),"").replace(_43.decimal,".");return _45*_43.factor;};_6._realNumberRegexp=function(_46){_46=_46||{};if(!("places" in _46)){_46.places=Infinity;}if(typeof _46.decimal!="string"){_46.decimal=".";}if(!("fractional" in _46)||/^0/.test(_46.places)){_46.fractional=[true,false];}if(!("exponent" in _46)){_46.exponent=[true,false];}if(!("eSigned" in _46)){_46.eSigned=[true,false];}var _47=_6._integerRegexp(_46),_48=_5.buildGroupRE(_46.fractional,function(q){var re="";if(q&&(_46.places!==0)){re="\\"+_46.decimal;if(_46.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+_46.places+"}";}}return re;},true);var _49=_5.buildGroupRE(_46.exponent,function(q){if(q){return "([eE]"+_6._integerRegexp({signed:_46.eSigned})+")";}return "";});var _4a=_47+_48;if(_48){_4a="(?:(?:"+_4a+")|(?:"+_48+"))";}return _4a+_49;};_6._integerRegexp=function(_4b){_4b=_4b||{};if(!("signed" in _4b)){_4b.signed=[true,false];}if(!("separator" in _4b)){_4b.separator="";}else{if(!("groupSize" in _4b)){_4b.groupSize=3;}}var _4c=_5.buildGroupRE(_4b.signed,function(q){return q?"[-+]":"";},true);var _4d=_5.buildGroupRE(_4b.separator,function(sep){if(!sep){return "(?:\\d+)";}sep=_5.escapeString(sep);if(sep==" "){sep="\\s";}else{if(sep==" "){sep="\\s\\xa0";}}var grp=_4b.groupSize,_4e=_4b.groupSize2;if(_4e){var _4f="(?:0|[1-9]\\d{0,"+(_4e-1)+"}(?:["+sep+"]\\d{"+_4e+"})*["+sep+"]\\d{"+grp+"})";return ((grp-_4e)>0)?"(?:"+_4f+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_4f;}return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return _4c+_4d;};return _6;}); \ No newline at end of file
diff --git a/lib/dojo/on.js b/lib/dojo/on.js
index c9b473460..a5ccc9c94 100644
--- a/lib/dojo/on.js
+++ b/lib/dojo/on.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/on",["./has!dom-addeventlistener?:./aspect","./_base/kernel","./has"],function(_1,_2,_3){"use strict";if(1){var _4=window.ScriptEngineMajorVersion;_3.add("jscript",_4&&(_4()+ScriptEngineMinorVersion()/10));_3.add("event-orientationchange",_3("touch")&&!_3("android"));}var on=function(_5,_6,_7,_8){if(_5.on){return _5.on(_6,_7);}return on.parse(_5,_6,_7,_9,_8,this);};on.pausable=function(_a,_b,_c,_d){var _e;var _f=on(_a,_b,function(){if(!_e){return _c.apply(this,arguments);}},_d);_f.pause=function(){_e=true;};_f.resume=function(){_e=false;};return _f;};on.once=function(_10,_11,_12,_13){var _14=on(_10,_11,function(){_14.remove();return _12.apply(this,arguments);});return _14;};on.parse=function(_15,_16,_17,_18,_19,_1a){if(_16.call){return _16.call(_1a,_15,_17);}if(_16.indexOf(",")>-1){var _1b=_16.split(/\s*,\s*/);var _1c=[];var i=0;var _1d;while(_1d=_1b[i++]){_1c.push(_18(_15,_1d,_17,_19,_1a));}_1c.remove=function(){for(var i=0;i<_1c.length;i++){_1c[i].remove();}};return _1c;}return _18(_15,_16,_17,_19,_1a);};var _1e=/^touch/;function _9(_1f,_20,_21,_22,_23){var _24=_20.match(/(.*):(.*)/);if(_24){_20=_24[2];_24=_24[1];return on.selector(_24,_20).call(_23,_1f,_21);}if(_3("touch")){if(_1e.test(_20)){_21=_25(_21);}if(!_3("event-orientationchange")&&(_20=="orientationchange")){_20="resize";_1f=window;_21=_25(_21);}}if(_1f.addEventListener){var _26=_20 in _27;_1f.addEventListener(_26?_27[_20]:_20,_21,_26);return {remove:function(){_1f.removeEventListener(_20,_21,_26);}};}_20="on"+_20;if(_28&&_1f.attachEvent){return _28(_1f,_20,_21);}throw new Error("Target must be an event emitter");};on.selector=function(_29,_2a,_2b){return function(_2c,_2d){var _2e=this;var _2f=_2a.bubble;if(_2f){_2a=_2f;}else{if(_2b!==false){_2b=true;}}return on(_2c,_2a,function(_30){var _31=_30.target;_2e=_2e&&_2e.matches?_2e:_2.query;while(!_2e.matches(_31,_29,_2c)){if(_31==_2c||!_2b||!(_31=_31.parentNode)){return;}}return _2d.call(_31,_30);});};};function _32(){this.cancelable=false;};function _33(){this.bubbles=false;};var _34=[].slice,_35=on.emit=function(_36,_37,_38){var _39=_34.call(arguments,2);var _3a="on"+_37;if("parentNode" in _36){var _3b=_39[0]={};for(var i in _38){_3b[i]=_38[i];}_3b.preventDefault=_32;_3b.stopPropagation=_33;_3b.target=_36;_3b.type=_37;_38=_3b;}do{_36[_3a]&&_36[_3a].apply(_36,_39);}while(_38&&_38.bubbles&&(_36=_36.parentNode));return _38&&_38.cancelable&&_38;};var _27={};if(_3("dom-addeventlistener")){_27={focusin:"focus",focusout:"blur"};if(_3("opera")){_27.keydown="keypress";}on.emit=function(_3c,_3d,_3e){if(_3c.dispatchEvent&&document.createEvent){var _3f=document.createEvent("HTMLEvents");_3f.initEvent(_3d,!!_3e.bubbles,!!_3e.cancelable);for(var i in _3e){var _40=_3e[i];if(!(i in _3f)){_3f[i]=_3e[i];}}return _3c.dispatchEvent(_3f)&&_3f;}return _35.apply(on,arguments);};}else{on._fixEvent=function(evt,_41){if(!evt){var w=_41&&(_41.ownerDocument||_41.document||_41).parentWindow||window;evt=w.event;}if(!evt){return (evt);}if(!evt.target){evt.target=evt.srcElement;evt.currentTarget=(_41||evt.srcElement);if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}if(!evt.stopPropagation){evt.stopPropagation=_42;evt.preventDefault=_43;}switch(evt.type){case "keypress":var c=("charCode" in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;_44(evt);break;}}return evt;};var _45=function(_46){this.handle=_46;};_45.prototype.remove=function(){delete _dojoIEListeners_[this.handle];};var _47=function(_48){return function(evt){evt=on._fixEvent(evt,this);return _48.call(this,evt);};};var _28=function(_49,_4a,_4b){_4b=_47(_4b);if(((_49.ownerDocument?_49.ownerDocument.parentWindow:_49.parentWindow||_49.window||window)!=top||_3("jscript")<5.8)&&!_3("config-_allow_leaks")){if(typeof _dojoIEListeners_=="undefined"){_dojoIEListeners_=[];}var _4c=_49[_4a];if(!_4c||!_4c.listeners){var _4d=_4c;_49[_4a]=_4c=Function("event","var callee = arguments.callee; for(var i = 0; i<callee.listeners.length; i++){var listener = _dojoIEListeners_[callee.listeners[i]]; if(listener){listener.call(this,event);}}");_4c.listeners=[];_4c.global=this;if(_4d){_4c.listeners.push(_dojoIEListeners_.push(_4d)-1);}}var _4e;_4c.listeners.push(_4e=(_4c.global._dojoIEListeners_.push(_4b)-1));return new _45(_4e);}return _1.after(_49,_4a,_4b,true);};var _44=function(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;};var _42=function(){this.cancelBubble=true;};var _43=on._preventDefault=function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){try{this.keyCode=0;}catch(e){}}this.returnValue=false;};}if(_3("touch")){var _4f=function(){};var _50=window.orientation;var _25=function(_51){return function(_52){var _53=_52.corrected;if(!_53){var _54=_52.type;try{delete _52.type;}catch(e){}if(_52.type){_4f.prototype=_52;var _53=new _4f;_53.preventDefault=function(){_52.preventDefault();};_53.stopPropagation=function(){_52.stopPropagation();};}else{_53=_52;_53.type=_54;}_52.corrected=_53;if(_54=="resize"){if(_50==window.orientation){return null;}_50=window.orientation;_53.type="orientationchange";return _51.call(this,_53);}if(!("rotation" in _53)){_53.rotation=0;_53.scale=1;}var _55=_53.changedTouches[0];for(var i in _55){delete _53[i];_53[i]=_55[i];}}return _51.call(this,_53);};};}return on;}); \ No newline at end of file
+define("dojo/on",["./has!dom-addeventlistener?:./aspect","./_base/kernel","./has"],function(_1,_2,_3){"use strict";if(1){var _4=window.ScriptEngineMajorVersion;_3.add("jscript",_4&&(_4()+ScriptEngineMinorVersion()/10));_3.add("event-orientationchange",_3("touch")&&!_3("android"));_3.add("event-stopimmediatepropagation",window.Event&&!!window.Event.prototype&&!!window.Event.prototype.stopImmediatePropagation);}var on=function(_5,_6,_7,_8){if(typeof _5.on=="function"&&typeof _6!="function"){return _5.on(_6,_7);}return on.parse(_5,_6,_7,_9,_8,this);};on.pausable=function(_a,_b,_c,_d){var _e;var _f=on(_a,_b,function(){if(!_e){return _c.apply(this,arguments);}},_d);_f.pause=function(){_e=true;};_f.resume=function(){_e=false;};return _f;};on.once=function(_10,_11,_12,_13){var _14=on(_10,_11,function(){_14.remove();return _12.apply(this,arguments);});return _14;};on.parse=function(_15,_16,_17,_18,_19,_1a){if(_16.call){return _16.call(_1a,_15,_17);}if(_16.indexOf(",")>-1){var _1b=_16.split(/\s*,\s*/);var _1c=[];var i=0;var _1d;while(_1d=_1b[i++]){_1c.push(_18(_15,_1d,_17,_19,_1a));}_1c.remove=function(){for(var i=0;i<_1c.length;i++){_1c[i].remove();}};return _1c;}return _18(_15,_16,_17,_19,_1a);};var _1e=/^touch/;function _9(_1f,_20,_21,_22,_23){var _24=_20.match(/(.*):(.*)/);if(_24){_20=_24[2];_24=_24[1];return on.selector(_24,_20).call(_23,_1f,_21);}if(_3("touch")){if(_1e.test(_20)){_21=_25(_21);}if(!_3("event-orientationchange")&&(_20=="orientationchange")){_20="resize";_1f=window;_21=_25(_21);}}if(_26){_21=_26(_21);}if(_1f.addEventListener){var _27=_20 in _28,_29=_27?_28[_20]:_20;_1f.addEventListener(_29,_21,_27);return {remove:function(){_1f.removeEventListener(_29,_21,_27);}};}_20="on"+_20;if(_2a&&_1f.attachEvent){return _2a(_1f,_20,_21);}throw new Error("Target must be an event emitter");};on.selector=function(_2b,_2c,_2d){return function(_2e,_2f){var _30=typeof _2b=="function"?{matches:_2b}:this,_31=_2c.bubble;function _32(_33){_30=_30&&_30.matches?_30:_2.query;while(!_30.matches(_33,_2b,_2e)){if(_33==_2e||_2d===false||!(_33=_33.parentNode)||_33.nodeType!=1){return;}}return _33;};if(_31){return on(_2e,_31(_32),_2f);}return on(_2e,_2c,function(_34){var _35=_32(_34.target);return _35&&_2f.call(_35,_34);});};};function _36(){this.cancelable=false;};function _37(){this.bubbles=false;};var _38=[].slice,_39=on.emit=function(_3a,_3b,_3c){var _3d=_38.call(arguments,2);var _3e="on"+_3b;if("parentNode" in _3a){var _3f=_3d[0]={};for(var i in _3c){_3f[i]=_3c[i];}_3f.preventDefault=_36;_3f.stopPropagation=_37;_3f.target=_3a;_3f.type=_3b;_3c=_3f;}do{_3a[_3e]&&_3a[_3e].apply(_3a,_3d);}while(_3c&&_3c.bubbles&&(_3a=_3a.parentNode));return _3c&&_3c.cancelable&&_3c;};var _28={};if(!_3("event-stopimmediatepropagation")){var _40=function(){this.immediatelyStopped=true;this.modified=true;};var _26=function(_41){return function(_42){if(!_42.immediatelyStopped){_42.stopImmediatePropagation=_40;return _41.apply(this,arguments);}};};}if(_3("dom-addeventlistener")){_28={focusin:"focus",focusout:"blur"};on.emit=function(_43,_44,_45){if(_43.dispatchEvent&&document.createEvent){var _46=_43.ownerDocument.createEvent("HTMLEvents");_46.initEvent(_44,!!_45.bubbles,!!_45.cancelable);for(var i in _45){var _47=_45[i];if(!(i in _46)){_46[i]=_45[i];}}return _43.dispatchEvent(_46)&&_46;}return _39.apply(on,arguments);};}else{on._fixEvent=function(evt,_48){if(!evt){var w=_48&&(_48.ownerDocument||_48.document||_48).parentWindow||window;evt=w.event;}if(!evt){return evt;}if(_49&&evt.type==_49.type){evt=_49;}if(!evt.target){evt.target=evt.srcElement;evt.currentTarget=(_48||evt.srcElement);if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}if(!evt.stopPropagation){evt.stopPropagation=_4a;evt.preventDefault=_4b;}switch(evt.type){case "keypress":var c=("charCode" in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;_4c(evt);break;}}return evt;};var _49,_4d=function(_4e){this.handle=_4e;};_4d.prototype.remove=function(){delete _dojoIEListeners_[this.handle];};var _4f=function(_50){return function(evt){evt=on._fixEvent(evt,this);var _51=_50.call(this,evt);if(evt.modified){if(!_49){setTimeout(function(){_49=null;});}_49=evt;}return _51;};};var _2a=function(_52,_53,_54){_54=_4f(_54);if(((_52.ownerDocument?_52.ownerDocument.parentWindow:_52.parentWindow||_52.window||window)!=top||_3("jscript")<5.8)&&!_3("config-_allow_leaks")){if(typeof _dojoIEListeners_=="undefined"){_dojoIEListeners_=[];}var _55=_52[_53];if(!_55||!_55.listeners){var _56=_55;_55=Function("event","var callee = arguments.callee; for(var i = 0; i<callee.listeners.length; i++){var listener = _dojoIEListeners_[callee.listeners[i]]; if(listener){listener.call(this,event);}}");_55.listeners=[];_52[_53]=_55;_55.global=this;if(_56){_55.listeners.push(_dojoIEListeners_.push(_56)-1);}}var _57;_55.listeners.push(_57=(_55.global._dojoIEListeners_.push(_54)-1));return new _4d(_57);}return _1.after(_52,_53,_54,true);};var _4c=function(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;};var _4a=function(){this.cancelBubble=true;};var _4b=on._preventDefault=function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){try{this.keyCode=0;}catch(e){}}this.defaultPrevented=true;this.returnValue=false;};}if(_3("touch")){var _58=function(){};var _59=window.orientation;var _25=function(_5a){return function(_5b){var _5c=_5b.corrected;if(!_5c){var _5d=_5b.type;try{delete _5b.type;}catch(e){}if(_5b.type){_58.prototype=_5b;var _5c=new _58;_5c.preventDefault=function(){_5b.preventDefault();};_5c.stopPropagation=function(){_5b.stopPropagation();};}else{_5c=_5b;_5c.type=_5d;}_5b.corrected=_5c;if(_5d=="resize"){if(_59==window.orientation){return null;}_59=window.orientation;_5c.type="orientationchange";return _5a.call(this,_5c);}if(!("rotation" in _5c)){_5c.rotation=0;_5c.scale=1;}var _5e=_5c.changedTouches[0];for(var i in _5e){delete _5c[i];_5c[i]=_5e[i];}}return _5a.call(this,_5c);};};}return on;}); \ No newline at end of file
diff --git a/lib/dojo/package.json b/lib/dojo/package.json
index 88c2a655d..9cbcedcd3 100644
--- a/lib/dojo/package.json
+++ b/lib/dojo/package.json
@@ -1,6 +1,6 @@
{
"name": "dojo",
- "version":"1.7.3",
+ "version":"1.8.3",
"directories": {
"lib": "."
},
diff --git a/lib/dojo/parser.js b/lib/dojo/parser.js
index a8c5428ba..347b24a8b 100644
--- a/lib/dojo/parser.js
+++ b/lib/dojo/parser.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/parser",["./_base/kernel","./_base/lang","./_base/array","./_base/html","./_base/window","./_base/url","./_base/json","./aspect","./date/stamp","./query","./on","./ready"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){new Date("X");var _c={"dom-attributes-explicit":document.createElement("div").attributes.length<40};function _d(_e){return _c[_e];};_1.parser=new function(){var _f={};function _10(_11){var map={};for(var _12 in _11){if(_12.charAt(0)=="_"){continue;}map[_12.toLowerCase()]=_12;}return map;};_8.after(_2,"extend",function(){_f={};},true);var _13={};this._functionFromScript=function(_14,_15){var _16="";var _17="";var _18=(_14.getAttribute(_15+"args")||_14.getAttribute("args"));if(_18){_3.forEach(_18.split(/\s*,\s*/),function(_19,idx){_16+="var "+_19+" = arguments["+idx+"]; ";});}var _1a=_14.getAttribute("with");if(_1a&&_1a.length){_3.forEach(_1a.split(/\s*,\s*/),function(_1b){_16+="with("+_1b+"){";_17+="}";});}return new Function(_16+_14.innerHTML+_17);};this.instantiate=function(_1c,_1d,_1e){var _1f=[],_1d=_1d||{};_1e=_1e||{};var _20=(_1e.scope||_1._scopeName)+"Type",_21="data-"+(_1e.scope||_1._scopeName)+"-",_22=_21+"type",_23=_21+"props",_24=_21+"attach-point",_25=_21+"attach-event",_26=_21+"id";var _27={};_3.forEach([_23,_22,_20,_26,"jsId",_24,_25,"dojoAttachPoint","dojoAttachEvent","class","style"],function(_28){_27[_28.toLowerCase()]=_28.replace(_1e.scope,"dojo");});_3.forEach(_1c,function(obj){if(!obj){return;}var _29=obj.node||obj,_2a=_20 in _1d?_1d[_20]:obj.node?obj.type:(_29.getAttribute(_22)||_29.getAttribute(_20)),_2b=_13[_2a]||(_13[_2a]=_2.getObject(_2a)),_2c=_2b&&_2b.prototype;if(!_2b){throw new Error("Could not load class '"+_2a);}var _2d={};if(_1e.defaults){_2.mixin(_2d,_1e.defaults);}if(obj.inherited){_2.mixin(_2d,obj.inherited);}var _2e;if(_d("dom-attributes-explicit")){_2e=_29.attributes;}else{var _2f=/^input$|^img$/i.test(_29.nodeName)?_29:_29.cloneNode(false),_30=_2f.outerHTML.replace(/=[^\s"']+|="[^"]*"|='[^']*'/g,"").replace(/^\s*<[a-zA-Z0-9]*/,"").replace(/>.*$/,"");_2e=_3.map(_30.split(/\s+/),function(_31){var _32=_31.toLowerCase();return {name:_31,value:(_29.nodeName=="LI"&&_31=="value")||_32=="enctype"?_29.getAttribute(_32):_29.getAttributeNode(_32).value,specified:true};});}var i=0,_33;while(_33=_2e[i++]){if(!_33||!_33.specified){continue;}var _34=_33.name,_35=_34.toLowerCase(),_36=_33.value;if(_35 in _27){switch(_27[_35]){case "data-dojo-props":var _37=_36;break;case "data-dojo-id":case "jsId":var _38=_36;break;case "data-dojo-attach-point":case "dojoAttachPoint":_2d.dojoAttachPoint=_36;break;case "data-dojo-attach-event":case "dojoAttachEvent":_2d.dojoAttachEvent=_36;break;case "class":_2d["class"]=_29.className;break;case "style":_2d["style"]=_29.style&&_29.style.cssText;break;}}else{if(!(_34 in _2c)){var map=(_f[_2a]||(_f[_2a]=_10(_2c)));_34=map[_35]||_34;}if(_34 in _2c){switch(typeof _2c[_34]){case "string":_2d[_34]=_36;break;case "number":_2d[_34]=_36.length?Number(_36):NaN;break;case "boolean":_2d[_34]=_36.toLowerCase()!="false";break;case "function":if(_36===""||_36.search(/[^\w\.]+/i)!=-1){_2d[_34]=new Function(_36);}else{_2d[_34]=_2.getObject(_36,false)||new Function(_36);}break;default:var _39=_2c[_34];_2d[_34]=(_39&&"length" in _39)?(_36?_36.split(/\s*,\s*/):[]):(_39 instanceof Date)?(_36==""?new Date(""):_36=="now"?new Date():_9.fromISOString(_36)):(_39 instanceof _1._Url)?(_1.baseUrl+_36):_7.fromJson(_36);}}else{_2d[_34]=_36;}}}if(_37){try{_37=_7.fromJson.call(_1e.propsThis,"{"+_37+"}");_2.mixin(_2d,_37);}catch(e){throw new Error(e.toString()+" in data-dojo-props='"+_37+"'");}}_2.mixin(_2d,_1d);var _3a=obj.node?obj.scripts:(_2b&&(_2b._noScript||_2c._noScript)?[]:_a("> script[type^='dojo/']",_29));var _3b=[],_3c=[],_3d=[],on=[];if(_3a){for(i=0;i<_3a.length;i++){var _3e=_3a[i];_29.removeChild(_3e);var _3f=(_3e.getAttribute(_21+"event")||_3e.getAttribute("event")),_40=_3e.getAttribute(_21+"prop"),_2a=_3e.getAttribute("type"),nf=this._functionFromScript(_3e,_21);if(_3f){if(_2a=="dojo/connect"){_3b.push({event:_3f,func:nf});}else{if(_2a=="dojo/on"){on.push({event:_3f,func:nf});}else{_2d[_3f]=nf;}}}else{if(_2a=="dojo/watch"){_3d.push({prop:_40,func:nf});}else{_3c.push(nf);}}}}var _41=_2b.markupFactory||_2c.markupFactory;var _42=_41?_41(_2d,_29,_2b):new _2b(_2d,_29);_1f.push(_42);if(_38){_2.setObject(_38,_42);}for(i=0;i<_3b.length;i++){_8.after(_42,_3b[i].event,_1.hitch(_42,_3b[i].func),true);}for(i=0;i<_3c.length;i++){_3c[i].call(_42);}for(i=0;i<_3d.length;i++){_42.watch(_3d[i].prop,_3d[i].func);}for(i=0;i<on.length;i++){_b(_42,on[i].event,on[i].func);}},this);if(!_1d._started){_3.forEach(_1f,function(_43){if(!_1e.noStart&&_43&&_2.isFunction(_43.startup)&&!_43._started){_43.startup();}});}return _1f;};this.parse=function(_44,_45){var _46;if(!_45&&_44&&_44.rootNode){_45=_44;_46=_45.rootNode;}else{_46=_44;}_46=_46?_4.byId(_46):_5.body();_45=_45||{};var _47=(_45.scope||_1._scopeName)+"Type",_48="data-"+(_45.scope||_1._scopeName)+"-",_49=_48+"type",_4a=_48+"textdir";var _4b=[];var _4c=_46.firstChild;var _4d=_45&&_45.inherited;if(!_4d){function _4e(_4f,_50){return (_4f.getAttribute&&_4f.getAttribute(_50))||(_4f!==_5.doc&&_4f!==_5.doc.documentElement&&_4f.parentNode?_4e(_4f.parentNode,_50):null);};_4d={dir:_4e(_46,"dir"),lang:_4e(_46,"lang"),textDir:_4e(_46,_4a)};for(var key in _4d){if(!_4d[key]){delete _4d[key];}}}var _51={inherited:_4d};var _52;var _53;function _54(_55){if(!_55.inherited){_55.inherited={};var _56=_55.node,_57=_54(_55.parent);var _58={dir:_56.getAttribute("dir")||_57.dir,lang:_56.getAttribute("lang")||_57.lang,textDir:_56.getAttribute(_4a)||_57.textDir};for(var key in _58){if(_58[key]){_55.inherited[key]=_58[key];}}}return _55.inherited;};while(true){if(!_4c){if(!_51||!_51.node){break;}_4c=_51.node.nextSibling;_52=_51.scripts;_53=false;_51=_51.parent;continue;}if(_4c.nodeType!=1){_4c=_4c.nextSibling;continue;}if(_52&&_4c.nodeName.toLowerCase()=="script"){_59=_4c.getAttribute("type");if(_59&&/^dojo\/\w/i.test(_59)){_52.push(_4c);}_4c=_4c.nextSibling;continue;}if(_53){_4c=_4c.nextSibling;continue;}var _59=_4c.getAttribute(_49)||_4c.getAttribute(_47);var _5a=_4c.firstChild;if(!_59&&(!_5a||(_5a.nodeType==3&&!_5a.nextSibling))){_4c=_4c.nextSibling;continue;}var _5b={node:_4c,scripts:_52,parent:_51};var _5c=_59&&(_13[_59]||(_13[_59]=_2.getObject(_59))),_5d=_5c&&!_5c.prototype._noScript?[]:null;if(_59){_4b.push({"type":_59,node:_4c,scripts:_5d,inherited:_54(_5b)});}_4c=_5a;_52=_5d;_53=_5c&&_5c.prototype.stopParser&&!(_45&&_45.template);_51=_5b;}var _5e=_45&&_45.template?{template:true}:null;return this.instantiate(_4b,_5e,_45);};}();if(_1.config.parseOnLoad){_1.ready(100,_1.parser,"parse");}return _1.parser;}); \ No newline at end of file
+define("dojo/parser",["require","./_base/kernel","./_base/lang","./_base/array","./_base/config","./_base/html","./_base/window","./_base/url","./_base/json","./aspect","./date/stamp","./Deferred","./has","./query","./on","./ready"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10){new Date("X");var _11=0;_a.after(_3,"extend",function(){_11++;},true);function _12(_13){var map=_13._nameCaseMap,_14=_13.prototype;if(!map||map._extendCnt<_11){map=_13._nameCaseMap={};for(var _15 in _14){if(_15.charAt(0)==="_"){continue;}map[_15.toLowerCase()]=_15;}map._extendCnt=_11;}return map;};var _16={};function _17(_18){var ts=_18.join();if(!_16[ts]){var _19=[];for(var i=0,l=_18.length;i<l;i++){var t=_18[i];_19[_19.length]=(_16[t]=_16[t]||(_3.getObject(t)||(~t.indexOf("/")&&_1(t))));}var _1a=_19.shift();_16[ts]=_19.length?(_1a.createSubclass?_1a.createSubclass(_19):_1a.extend.apply(_1a,_19)):_1a;}return _16[ts];};var _1b={_clearCache:function(){_11++;_16={};},_functionFromScript:function(_1c,_1d){var _1e="",_1f="",_20=(_1c.getAttribute(_1d+"args")||_1c.getAttribute("args")),_21=_1c.getAttribute("with");var _22=(_20||"").split(/\s*,\s*/);if(_21&&_21.length){_4.forEach(_21.split(/\s*,\s*/),function(_23){_1e+="with("+_23+"){";_1f+="}";});}return new Function(_22,_1e+_1c.innerHTML+_1f);},instantiate:function(_24,_25,_26){_25=_25||{};_26=_26||{};var _27=(_26.scope||_2._scopeName)+"Type",_28="data-"+(_26.scope||_2._scopeName)+"-",_29=_28+"type",_2a=_28+"mixins";var _2b=[];_4.forEach(_24,function(_2c){var _2d=_27 in _25?_25[_27]:_2c.getAttribute(_29)||_2c.getAttribute(_27);if(_2d){var _2e=_2c.getAttribute(_2a),_2f=_2e?[_2d].concat(_2e.split(/\s*,\s*/)):[_2d];_2b.push({node:_2c,types:_2f});}});return this._instantiate(_2b,_25,_26);},_instantiate:function(_30,_31,_32){var _33=_4.map(_30,function(obj){var _34=obj.ctor||_17(obj.types);if(!_34){throw new Error("Unable to resolve constructor for: '"+obj.types.join()+"'");}return this.construct(_34,obj.node,_31,_32,obj.scripts,obj.inherited);},this);if(!_31._started&&!_32.noStart){_4.forEach(_33,function(_35){if(typeof _35.startup==="function"&&!_35._started){_35.startup();}});}return _33;},construct:function(_36,_37,_38,_39,_3a,_3b){var _3c=_36&&_36.prototype;_39=_39||{};var _3d={};if(_39.defaults){_3.mixin(_3d,_39.defaults);}if(_3b){_3.mixin(_3d,_3b);}var _3e;if(_d("dom-attributes-explicit")){_3e=_37.attributes;}else{if(_d("dom-attributes-specified-flag")){_3e=_4.filter(_37.attributes,function(a){return a.specified;});}else{var _3f=/^input$|^img$/i.test(_37.nodeName)?_37:_37.cloneNode(false),_40=_3f.outerHTML.replace(/=[^\s"']+|="[^"]*"|='[^']*'/g,"").replace(/^\s*<[a-zA-Z0-9]*\s*/,"").replace(/\s*>.*$/,"");_3e=_4.map(_40.split(/\s+/),function(_41){var _42=_41.toLowerCase();return {name:_41,value:(_37.nodeName=="LI"&&_41=="value")||_42=="enctype"?_37.getAttribute(_42):_37.getAttributeNode(_42).value};});}}var _43=_39.scope||_2._scopeName,_44="data-"+_43+"-",_45={};if(_43!=="dojo"){_45[_44+"props"]="data-dojo-props";_45[_44+"type"]="data-dojo-type";_45[_44+"mixins"]="data-dojo-mixins";_45[_43+"type"]="dojoType";_45[_44+"id"]="data-dojo-id";}var i=0,_46,_47=[],_48,_49;while(_46=_3e[i++]){var _4a=_46.name,_4b=_4a.toLowerCase(),_4c=_46.value;switch(_45[_4b]||_4b){case "data-dojo-type":case "dojotype":case "data-dojo-mixins":break;case "data-dojo-props":_49=_4c;break;case "data-dojo-id":case "jsid":_48=_4c;break;case "data-dojo-attach-point":case "dojoattachpoint":_3d.dojoAttachPoint=_4c;break;case "data-dojo-attach-event":case "dojoattachevent":_3d.dojoAttachEvent=_4c;break;case "class":_3d["class"]=_37.className;break;case "style":_3d["style"]=_37.style&&_37.style.cssText;break;default:if(!(_4a in _3c)){var map=_12(_36);_4a=map[_4b]||_4a;}if(_4a in _3c){switch(typeof _3c[_4a]){case "string":_3d[_4a]=_4c;break;case "number":_3d[_4a]=_4c.length?Number(_4c):NaN;break;case "boolean":_3d[_4a]=_4c.toLowerCase()!="false";break;case "function":if(_4c===""||_4c.search(/[^\w\.]+/i)!=-1){_3d[_4a]=new Function(_4c);}else{_3d[_4a]=_3.getObject(_4c,false)||new Function(_4c);}_47.push(_4a);break;default:var _4d=_3c[_4a];_3d[_4a]=(_4d&&"length" in _4d)?(_4c?_4c.split(/\s*,\s*/):[]):(_4d instanceof Date)?(_4c==""?new Date(""):_4c=="now"?new Date():_b.fromISOString(_4c)):(_4d instanceof _8)?(_2.baseUrl+_4c):_9.fromJson(_4c);}}else{_3d[_4a]=_4c;}}}for(var j=0;j<_47.length;j++){var _4e=_47[j].toLowerCase();_37.removeAttribute(_4e);_37[_4e]=null;}if(_49){try{_49=_9.fromJson.call(_39.propsThis,"{"+_49+"}");_3.mixin(_3d,_49);}catch(e){throw new Error(e.toString()+" in data-dojo-props='"+_49+"'");}}_3.mixin(_3d,_38);if(!_3a){_3a=(_36&&(_36._noScript||_3c._noScript)?[]:_e("> script[type^='dojo/']",_37));}var _4f=[],_50=[],_51=[],ons=[];if(_3a){for(i=0;i<_3a.length;i++){var _52=_3a[i];_37.removeChild(_52);var _53=(_52.getAttribute(_44+"event")||_52.getAttribute("event")),_54=_52.getAttribute(_44+"prop"),_55=_52.getAttribute(_44+"method"),_56=_52.getAttribute(_44+"advice"),_57=_52.getAttribute("type"),nf=this._functionFromScript(_52,_44);if(_53){if(_57=="dojo/connect"){_4f.push({method:_53,func:nf});}else{if(_57=="dojo/on"){ons.push({event:_53,func:nf});}else{_3d[_53]=nf;}}}else{if(_57=="dojo/aspect"){_4f.push({method:_55,advice:_56,func:nf});}else{if(_57=="dojo/watch"){_51.push({prop:_54,func:nf});}else{_50.push(nf);}}}}}var _58=_36.markupFactory||_3c.markupFactory;var _59=_58?_58(_3d,_37,_36):new _36(_3d,_37);if(_48){_3.setObject(_48,_59);}for(i=0;i<_4f.length;i++){_a[_4f[i].advice||"after"](_59,_4f[i].method,_3.hitch(_59,_4f[i].func),true);}for(i=0;i<_50.length;i++){_50[i].call(_59);}for(i=0;i<_51.length;i++){_59.watch(_51[i].prop,_51[i].func);}for(i=0;i<ons.length;i++){_f(_59,ons[i].event,ons[i].func);}return _59;},scan:function(_5a,_5b){var _5c=[],_5d=[],_5e={};var _5f=(_5b.scope||_2._scopeName)+"Type",_60="data-"+(_5b.scope||_2._scopeName)+"-",_61=_60+"type",_62=_60+"textdir",_63=_60+"mixins";var _64=_5a.firstChild;var _65=_5b.inherited;if(!_65){function _66(_67,_68){return (_67.getAttribute&&_67.getAttribute(_68))||(_67.parentNode&&_66(_67.parentNode,_68));};_65={dir:_66(_5a,"dir"),lang:_66(_5a,"lang"),textDir:_66(_5a,_62)};for(var key in _65){if(!_65[key]){delete _65[key];}}}var _69={inherited:_65};var _6a;var _6b;function _6c(_6d){if(!_6d.inherited){_6d.inherited={};var _6e=_6d.node,_6f=_6c(_6d.parent);var _70={dir:_6e.getAttribute("dir")||_6f.dir,lang:_6e.getAttribute("lang")||_6f.lang,textDir:_6e.getAttribute(_62)||_6f.textDir};for(var key in _70){if(_70[key]){_6d.inherited[key]=_70[key];}}}return _6d.inherited;};while(true){if(!_64){if(!_69||!_69.node){break;}_64=_69.node.nextSibling;_6b=false;_69=_69.parent;_6a=_69.scripts;continue;}if(_64.nodeType!=1){_64=_64.nextSibling;continue;}if(_6a&&_64.nodeName.toLowerCase()=="script"){_71=_64.getAttribute("type");if(_71&&/^dojo\/\w/i.test(_71)){_6a.push(_64);}_64=_64.nextSibling;continue;}if(_6b){_64=_64.nextSibling;continue;}var _71=_64.getAttribute(_61)||_64.getAttribute(_5f);var _72=_64.firstChild;if(!_71&&(!_72||(_72.nodeType==3&&!_72.nextSibling))){_64=_64.nextSibling;continue;}var _73;var _74=null;if(_71){var _75=_64.getAttribute(_63),_76=_75?[_71].concat(_75.split(/\s*,\s*/)):[_71];try{_74=_17(_76);}catch(e){}if(!_74){_4.forEach(_76,function(t){if(~t.indexOf("/")&&!_5e[t]){_5e[t]=true;_5d[_5d.length]=t;}});}var _77=_74&&!_74.prototype._noScript?[]:null;_73={types:_76,ctor:_74,parent:_69,node:_64,scripts:_77};_73.inherited=_6c(_73);_5c.push(_73);}else{_73={node:_64,scripts:_6a,parent:_69};}_64=_72;_6a=_77;_6b=_74&&_74.prototype.stopParser&&!(_5b.template);_69=_73;}var d=new _c();if(_5d.length){if(_d("dojo-debug-messages")){console.warn("WARNING: Modules being Auto-Required: "+_5d.join(", "));}_1(_5d,function(){d.resolve(_4.filter(_5c,function(_78){if(!_78.ctor){try{_78.ctor=_17(_78.types);}catch(e){}}var _79=_78.parent;while(_79&&!_79.types){_79=_79.parent;}var _7a=_78.ctor&&_78.ctor.prototype;_78.instantiateChildren=!(_7a&&_7a.stopParser&&!(_5b.template));_78.instantiate=!_79||(_79.instantiate&&_79.instantiateChildren);return _78.instantiate;}));});}else{d.resolve(_5c);}return d.promise;},_require:function(_7b){var _7c=_9.fromJson("{"+_7b.innerHTML+"}"),_7d=[],_7e=[],d=new _c();for(var _7f in _7c){_7d.push(_7f);_7e.push(_7c[_7f]);}_1(_7e,function(){for(var i=0;i<_7d.length;i++){_3.setObject(_7d[i],arguments[i]);}d.resolve(arguments);});return d.promise;},_scanAmd:function(_80){var _81=new _c(),_82=_81.promise;_81.resolve(true);var _83=this;_e("script[type='dojo/require']",_80).forEach(function(_84){_82=_82.then(function(){return _83._require(_84);});_84.parentNode.removeChild(_84);});return _82;},parse:function(_85,_86){var _87;if(!_86&&_85&&_85.rootNode){_86=_85;_87=_86.rootNode;}else{if(_85&&_3.isObject(_85)&&!("nodeType" in _85)){_86=_85;}else{_87=_85;}}_87=_87?_6.byId(_87):_7.body();_86=_86||{};var _88=_86.template?{template:true}:{},_89=[],_8a=this;var p=this._scanAmd(_87,_86).then(function(){return _8a.scan(_87,_86);}).then(function(_8b){return _89=_89.concat(_8a._instantiate(_8b,_88,_86));}).otherwise(function(e){console.error("dojo/parser::parse() error",e);throw e;});_3.mixin(_89,p);return _89;}};if(1){_2.parser=_1b;}if(_5.parseOnLoad){_10(100,_1b,"parse");}return _1b;}); \ No newline at end of file
diff --git a/lib/dojo/promise/Promise.js b/lib/dojo/promise/Promise.js
new file mode 100644
index 000000000..b29fef360
--- /dev/null
+++ b/lib/dojo/promise/Promise.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/promise/Promise",["../_base/lang"],function(_1){"use strict";function _2(){throw new TypeError("abstract");};return _1.extend(function Promise(){},{then:function(_3,_4,_5){_2();},cancel:function(_6,_7){_2();},isResolved:function(){_2();},isRejected:function(){_2();},isFulfilled:function(){_2();},isCanceled:function(){_2();},always:function(_8){return this.then(_8,_8);},otherwise:function(_9){return this.then(null,_9);},trace:function(){return this;},traceRejected:function(){return this;},toString:function(){return "[object Promise]";}});}); \ No newline at end of file
diff --git a/lib/dojo/promise/all.js b/lib/dojo/promise/all.js
new file mode 100644
index 000000000..928c63bec
--- /dev/null
+++ b/lib/dojo/promise/all.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/promise/all",["../_base/array","../Deferred","../when"],function(_1,_2,_3){"use strict";var _4=_1.some;return function all(_5){var _6,_1;if(_5 instanceof Array){_1=_5;}else{if(_5&&typeof _5==="object"){_6=_5;}}var _7;var _8=[];if(_6){_1=[];for(var _9 in _6){if(Object.hasOwnProperty.call(_6,_9)){_8.push(_9);_1.push(_6[_9]);}}_7={};}else{if(_1){_7=[];}}if(!_1||!_1.length){return new _2().resolve(_7);}var _a=new _2();_a.promise.always(function(){_7=_8=null;});var _b=_1.length;_4(_1,function(_c,_d){if(!_6){_8.push(_d);}_3(_c,function(_e){if(!_a.isFulfilled()){_7[_8[_d]]=_e;if(--_b===0){_a.resolve(_7);}}},_a.reject);return _a.isFulfilled();});return _a.promise;};}); \ No newline at end of file
diff --git a/lib/dojo/promise/first.js b/lib/dojo/promise/first.js
new file mode 100644
index 000000000..9a06ac2fc
--- /dev/null
+++ b/lib/dojo/promise/first.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/promise/first",["../_base/array","../Deferred","../when"],function(_1,_2,_3){"use strict";var _4=_1.forEach;return function first(_5){var _6;if(_5 instanceof Array){_6=_5;}else{if(_5&&typeof _5==="object"){_6=[];for(var _7 in _5){if(Object.hasOwnProperty.call(_5,_7)){_6.push(_5[_7]);}}}}if(!_6||!_6.length){return new _2().resolve();}var _8=new _2();_4(_6,function(_9){_3(_9,_8.resolve,_8.reject);});return _8.promise;};}); \ No newline at end of file
diff --git a/lib/dojo/promise/instrumentation.js b/lib/dojo/promise/instrumentation.js
new file mode 100644
index 000000000..086b49a25
--- /dev/null
+++ b/lib/dojo/promise/instrumentation.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/promise/instrumentation",["./tracer","../has","../_base/lang","../_base/array"],function(_1,_2,_3,_4){function _5(_6,_7,_8){var _9="";if(_6&&_6.stack){_9+=_6.stack;}if(_7&&_7.stack){_9+="\n ----------------------------------------\n rejected"+_7.stack.split("\n").slice(1).join("\n").replace(/^\s+/," ");}if(_8&&_8.stack){_9+="\n ----------------------------------------\n"+_8.stack;}console.error(_6,_9);};function _a(_b,_c,_d,_e){if(!_c){_5(_b,_d,_e);}};var _f=[];var _10=false;var _11=1000;function _12(_13,_14,_15,_16){if(_14){_4.some(_f,function(obj,ix){if(obj.error===_13){_f.splice(ix,1);return true;}});}else{if(!_4.some(_f,function(obj){return obj.error===_13;})){_f.push({error:_13,rejection:_15,deferred:_16,timestamp:new Date().getTime()});}}if(!_10){_10=setTimeout(_17,_11);}};function _17(){var now=new Date().getTime();var _18=now-_11;_f=_4.filter(_f,function(obj){if(obj.timestamp<_18){_5(obj.error,obj.rejection,obj.deferred);return false;}return true;});if(_f.length){_10=setTimeout(_17,_f[0].timestamp+_11-now);}else{_10=false;}};return function(_19){var _1a=_2("config-useDeferredInstrumentation");if(_1a){_1.on("resolved",_3.hitch(console,"log","resolved"));_1.on("rejected",_3.hitch(console,"log","rejected"));_1.on("progress",_3.hitch(console,"log","progress"));var _1b=[];if(typeof _1a==="string"){_1b=_1a.split(",");_1a=_1b.shift();}if(_1a==="report-rejections"){_19.instrumentRejected=_a;}else{if(_1a==="report-unhandled-rejections"||_1a===true||_1a===1){_19.instrumentRejected=_12;_11=parseInt(_1b[0],10)||_11;}else{throw new Error("Unsupported instrumentation usage <"+_1a+">");}}}};}); \ No newline at end of file
diff --git a/lib/dojo/promise/tracer.js b/lib/dojo/promise/tracer.js
new file mode 100644
index 000000000..906b9452d
--- /dev/null
+++ b/lib/dojo/promise/tracer.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/promise/tracer",["../_base/lang","./Promise","../Evented"],function(_1,_2,_3){"use strict";var _4=new _3;var _5=_4.emit;_4.emit=null;function _6(_7){setTimeout(function(){_5.apply(_4,_7);},0);};_2.prototype.trace=function(){var _8=_1._toArray(arguments);this.then(function(_9){_6(["resolved",_9].concat(_8));},function(_a){_6(["rejected",_a].concat(_8));},function(_b){_6(["progress",_b].concat(_8));});return this;};_2.prototype.traceRejected=function(){var _c=_1._toArray(arguments);this.otherwise(function(_d){_6(["rejected",_d].concat(_c));});return this;};return _4;}); \ No newline at end of file
diff --git a/lib/dojo/query.js b/lib/dojo/query.js
index 33245dbac..8af939929 100644
--- a/lib/dojo/query.js
+++ b/lib/dojo/query.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/query",["./_base/kernel","./has","./dom","./on","./_base/array","./_base/lang","./selector/_loader","./selector/_loader!default"],function(_1,_2,_3,on,_4,_5,_6,_7){"use strict";_2.add("array-extensible",function(){return _5.delegate([],{length:1}).length==1&&!_2("bug-for-in-skips-shadowed");});var ap=Array.prototype,_8=ap.slice,_9=ap.concat,_a=_4.forEach;var _b=function(a,_c,_d){var _e=new (_d||this._NodeListCtor||nl)(a);return _c?_e._stash(_c):_e;};var _f=function(f,a,o){a=[0].concat(_8.call(a,0));o=o||_1.global;return function(_10){a[0]=_10;return f.apply(o,a);};};var _11=function(f,o){return function(){this.forEach(_f(f,arguments,o));return this;};};var _12=function(f,o){return function(){return this.map(_f(f,arguments,o));};};var _13=function(f,o){return function(){return this.filter(_f(f,arguments,o));};};var _14=function(f,g,o){return function(){var a=arguments,_15=_f(f,a,o);if(g.call(o||_1.global,a)){return this.map(_15);}this.forEach(_15);return this;};};var _16=function(_17){var _18=this instanceof nl&&_2("array-extensible");if(typeof _17=="number"){_17=Array(_17);}var _19=(_17&&"length" in _17)?_17:arguments;if(_18||!_19.sort){var _1a=_18?this:[],l=_1a.length=_19.length;for(var i=0;i<l;i++){_1a[i]=_19[i];}if(_18){return _1a;}_19=_1a;}_5._mixin(_19,nlp);_19._NodeListCtor=function(_1b){return nl(_1b);};return _19;};var nl=_16,nlp=nl.prototype=_2("array-extensible")?[]:{};nl._wrap=nlp._wrap=_b;nl._adaptAsMap=_12;nl._adaptAsForEach=_11;nl._adaptAsFilter=_13;nl._adaptWithCondition=_14;_a(["slice","splice"],function(_1c){var f=ap[_1c];nlp[_1c]=function(){return this._wrap(f.apply(this,arguments),_1c=="slice"?this:null);};});_a(["indexOf","lastIndexOf","every","some"],function(_1d){var f=_4[_1d];nlp[_1d]=function(){return f.apply(_1,[this].concat(_8.call(arguments,0)));};});_5.extend(_16,{constructor:nl,_NodeListCtor:nl,toString:function(){return this.join(",");},_stash:function(_1e){this._parent=_1e;return this;},on:function(_1f,_20){var _21=this.map(function(_22){return on(_22,_1f,_20);});_21.remove=function(){for(var i=0;i<_21.length;i++){_21[i].remove();}};return _21;},end:function(){if(this._parent){return this._parent;}else{return new this._NodeListCtor(0);}},concat:function(_23){var t=_5.isArray(this)?this:_8.call(this,0),m=_4.map(arguments,function(a){return a&&!_5.isArray(a)&&(typeof _16!="undefined"&&a.constructor===_16||a.constructor===this._NodeListCtor)?_8.call(a,0):a;});return this._wrap(_9.apply(t,m),this);},map:function(_24,obj){return this._wrap(_4.map(this,_24,obj),this);},forEach:function(_25,_26){_a(this,_25,_26);return this;},filter:function(_27){var a=arguments,_28=this,_29=0;if(typeof _27=="string"){_28=_2a._filterResult(this,a[0]);if(a.length==1){return _28._stash(this);}_29=1;}return this._wrap(_4.filter(_28,a[_29],a[_29+1]),this);},instantiate:function(_2b,_2c){var c=_5.isFunction(_2b)?_2b:_5.getObject(_2b);_2c=_2c||{};return this.forEach(function(_2d){new c(_2c,_2d);});},at:function(){var t=new this._NodeListCtor(0);_a(arguments,function(i){if(i<0){i=this.length+i;}if(this[i]){t.push(this[i]);}},this);return t._stash(this);}});function _2e(_2f,_30){var _31=function(_32,_33){if(typeof _33=="string"){_33=_3.byId(_33);if(!_33){return new _30([]);}}var _34=typeof _32=="string"?_2f(_32,_33):_32.orphan?_32:[_32];if(_34.orphan){return _34;}return new _30(_34);};_31.matches=_2f.match||function(_35,_36,_37){return _31.filter([_35],_36,_37).length>0;};_31.filter=_2f.filter||function(_38,_39,_3a){return _31(_39,_3a).filter(function(_3b){return _4.indexOf(_38,_3b)>-1;});};if(typeof _2f!="function"){var _3c=_2f.search;_2f=function(_3d,_3e){return _3c(_3e||document,_3d);};}return _31;};var _2a=_2e(_7,_16);_1.query=_2e(_7,function(_3f){return _16(_3f);});_2a.load=function(id,_40,_41,_42){_6.load(id,_40,function(_43){_41(_2e(_43,_16));});};_1._filterQueryResult=_2a._filterResult=function(_44,_45,_46){return new _16(_2a.filter(_44,_45,_46));};_1.NodeList=_2a.NodeList=_16;return _2a;}); \ No newline at end of file
+define("dojo/query",["./_base/kernel","./has","./dom","./on","./_base/array","./_base/lang","./selector/_loader","./selector/_loader!default"],function(_1,_2,_3,on,_4,_5,_6,_7){"use strict";_2.add("array-extensible",function(){return _5.delegate([],{length:1}).length==1&&!_2("bug-for-in-skips-shadowed");});var ap=Array.prototype,_8=ap.slice,_9=ap.concat,_a=_4.forEach;var _b=function(a,_c,_d){var _e=new (_d||this._NodeListCtor||nl)(a);return _c?_e._stash(_c):_e;};var _f=function(f,a,o){a=[0].concat(_8.call(a,0));o=o||_1.global;return function(_10){a[0]=_10;return f.apply(o,a);};};var _11=function(f,o){return function(){this.forEach(_f(f,arguments,o));return this;};};var _12=function(f,o){return function(){return this.map(_f(f,arguments,o));};};var _13=function(f,o){return function(){return this.filter(_f(f,arguments,o));};};var _14=function(f,g,o){return function(){var a=arguments,_15=_f(f,a,o);if(g.call(o||_1.global,a)){return this.map(_15);}this.forEach(_15);return this;};};var _16=function(_17){var _18=this instanceof nl&&_2("array-extensible");if(typeof _17=="number"){_17=Array(_17);}var _19=(_17&&"length" in _17)?_17:arguments;if(_18||!_19.sort){var _1a=_18?this:[],l=_1a.length=_19.length;for(var i=0;i<l;i++){_1a[i]=_19[i];}if(_18){return _1a;}_19=_1a;}_5._mixin(_19,nlp);_19._NodeListCtor=function(_1b){return nl(_1b);};return _19;};var nl=_16,nlp=nl.prototype=_2("array-extensible")?[]:{};nl._wrap=nlp._wrap=_b;nl._adaptAsMap=_12;nl._adaptAsForEach=_11;nl._adaptAsFilter=_13;nl._adaptWithCondition=_14;_a(["slice","splice"],function(_1c){var f=ap[_1c];nlp[_1c]=function(){return this._wrap(f.apply(this,arguments),_1c=="slice"?this:null);};});_a(["indexOf","lastIndexOf","every","some"],function(_1d){var f=_4[_1d];nlp[_1d]=function(){return f.apply(_1,[this].concat(_8.call(arguments,0)));};});_5.extend(_16,{constructor:nl,_NodeListCtor:nl,toString:function(){return this.join(",");},_stash:function(_1e){this._parent=_1e;return this;},on:function(_1f,_20){var _21=this.map(function(_22){return on(_22,_1f,_20);});_21.remove=function(){for(var i=0;i<_21.length;i++){_21[i].remove();}};return _21;},end:function(){if(this._parent){return this._parent;}else{return new this._NodeListCtor(0);}},concat:function(_23){var t=_8.call(this,0),m=_4.map(arguments,function(a){return _8.call(a,0);});return this._wrap(_9.apply(t,m),this);},map:function(_24,obj){return this._wrap(_4.map(this,_24,obj),this);},forEach:function(_25,_26){_a(this,_25,_26);return this;},filter:function(_27){var a=arguments,_28=this,_29=0;if(typeof _27=="string"){_28=_2a._filterResult(this,a[0]);if(a.length==1){return _28._stash(this);}_29=1;}return this._wrap(_4.filter(_28,a[_29],a[_29+1]),this);},instantiate:function(_2b,_2c){var c=_5.isFunction(_2b)?_2b:_5.getObject(_2b);_2c=_2c||{};return this.forEach(function(_2d){new c(_2c,_2d);});},at:function(){var t=new this._NodeListCtor(0);_a(arguments,function(i){if(i<0){i=this.length+i;}if(this[i]){t.push(this[i]);}},this);return t._stash(this);}});function _2e(_2f,_30){var _31=function(_32,_33){if(typeof _33=="string"){_33=_3.byId(_33);if(!_33){return new _30([]);}}var _34=typeof _32=="string"?_2f(_32,_33):_32?_32.orphan?_32:[_32]:[];if(_34.orphan){return _34;}return new _30(_34);};_31.matches=_2f.match||function(_35,_36,_37){return _31.filter([_35],_36,_37).length>0;};_31.filter=_2f.filter||function(_38,_39,_3a){return _31(_39,_3a).filter(function(_3b){return _4.indexOf(_38,_3b)>-1;});};if(typeof _2f!="function"){var _3c=_2f.search;_2f=function(_3d,_3e){return _3c(_3e||document,_3d);};}return _31;};var _2a=_2e(_7,_16);_1.query=_2e(_7,function(_3f){return _16(_3f);});_2a.load=function(id,_40,_41){_6.load(id,_40,function(_42){_41(_2e(_42,_16));});};_1._filterQueryResult=_2a._filterResult=function(_43,_44,_45){return new _16(_2a.filter(_43,_44,_45));};_1.NodeList=_2a.NodeList=_16;return _2a;}); \ No newline at end of file
diff --git a/lib/dojo/ready.js b/lib/dojo/ready.js
index cb2e38ace..e627d9f76 100644
--- a/lib/dojo/ready.js
+++ b/lib/dojo/ready.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/ready",["./_base/kernel","./has","require","./domReady","./_base/lang"],function(_1,_2,_3,_4,_5){var _6=0,_7,_8=[],_9=0,_a=function(){_6=1;_1._postLoad=_1.config.afterOnLoad=true;if(_8.length){_7(_b);}},_b=function(){if(_6&&!_9&&_8.length){_9=1;var f=_8.shift();try{f();}finally{_9=0;}_9=0;if(_8.length){_7(_b);}}};if(1){_3.on("idle",_b);_7=function(){if(_3.idle()){_b();}};}else{_7=function(){_3.ready(_b);};}var _c=_1.ready=_1.addOnLoad=function(_d,_e,_f){var _10=_5._toArray(arguments);if(typeof _d!="number"){_f=_e;_e=_d;_d=1000;}else{_10.shift();}_f=_f?_5.hitch.apply(_1,_10):function(){_e();};_f.priority=_d;for(var i=0;i<_8.length&&_d>=_8[i].priority;i++){}_8.splice(i,0,_f);_7();};true||_2.add("dojo-config-addOnLoad",1);if(1){var dca=_1.config.addOnLoad;if(dca){_c[(_5.isArray(dca)?"apply":"call")](_1,dca);}}if(1&&_1.config.parseOnLoad&&!_1.isAsync){_c(99,function(){if(!_1.parser){_1.deprecated("Add explicit require(['dojo/parser']);","","2.0");_3(["dojo/parser"]);}});}if(1){_4(_a);}else{_a();}return _c;}); \ No newline at end of file
+define("dojo/ready",["./_base/kernel","./has","require","./domReady","./_base/lang"],function(_1,_2,_3,_4,_5){var _6=0,_7,_8=[],_9=0,_a=function(){_6=1;_1._postLoad=_1.config.afterOnLoad=true;if(_8.length){_7(_b);}},_b=function(){if(_6&&!_9&&_8.length){_9=1;var f=_8.shift();try{f();}finally{_9=0;}_9=0;if(_8.length){_7(_b);}}};_3.on("idle",_b);_7=function(){if(_3.idle()){_b();}};var _c=_1.ready=_1.addOnLoad=function(_d,_e,_f){var _10=_5._toArray(arguments);if(typeof _d!="number"){_f=_e;_e=_d;_d=1000;}else{_10.shift();}_f=_f?_5.hitch.apply(_1,_10):function(){_e();};_f.priority=_d;for(var i=0;i<_8.length&&_d>=_8[i].priority;i++){}_8.splice(i,0,_f);_7();};1||_2.add("dojo-config-addOnLoad",1);if(1){var dca=_1.config.addOnLoad;if(dca){_c[(_5.isArray(dca)?"apply":"call")](_1,dca);}}if(1&&_1.config.parseOnLoad&&!_1.isAsync){_c(99,function(){if(!_1.parser){_1.deprecated("Add explicit require(['dojo/parser']);","","2.0");_3(["dojo/parser"]);}});}if(1){_4(_a);}else{_a();}return _c;}); \ No newline at end of file
diff --git a/lib/dojo/regexp.js b/lib/dojo/regexp.js
index 65b7c3a00..e46f70fec 100644
--- a/lib/dojo/regexp.js
+++ b/lib/dojo/regexp.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/regexp",["./_base/kernel","./_base/lang"],function(_1,_2){_2.getObject("regexp",true,_1);_1.regexp.escapeString=function(_3,_4){return _3.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){if(_4&&_4.indexOf(ch)!=-1){return ch;}return "\\"+ch;});};_1.regexp.buildGroupRE=function(_5,re,_6){if(!(_5 instanceof Array)){return re(_5);}var b=[];for(var i=0;i<_5.length;i++){b.push(re(_5[i]));}return _1.regexp.group(b.join("|"),_6);};_1.regexp.group=function(_7,_8){return "("+(_8?"?:":"")+_7+")";};return _1.regexp;}); \ No newline at end of file
+define("dojo/regexp",["./_base/kernel","./_base/lang"],function(_1,_2){var _3={};_2.setObject("dojo.regexp",_3);_3.escapeString=function(_4,_5){return _4.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){if(_5&&_5.indexOf(ch)!=-1){return ch;}return "\\"+ch;});};_3.buildGroupRE=function(_6,re,_7){if(!(_6 instanceof Array)){return re(_6);}var b=[];for(var i=0;i<_6.length;i++){b.push(re(_6[i]));}return _3.group(b.join("|"),_7);};_3.group=function(_8,_9){return "("+(_9?"?:":"")+_8+")";};return _3;}); \ No newline at end of file
diff --git a/lib/dojo/request.js b/lib/dojo/request.js
new file mode 100644
index 000000000..d6b3be0fc
--- /dev/null
+++ b/lib/dojo/request.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request",["./request/default!"],function(_1){return _1;}); \ No newline at end of file
diff --git a/lib/dojo/request/default.js b/lib/dojo/request/default.js
new file mode 100644
index 000000000..ee379608a
--- /dev/null
+++ b/lib/dojo/request/default.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request/default",["exports","require","../has"],function(_1,_2,_3){var _4=_3("config-requestProvider"),_5;if(1){_5="./xhr";}else{if(0){_5="./node";}}if(!_4){_4=_5;}_1.getPlatformDefaultId=function(){return _5;};_1.load=function(id,_6,_7,_8){_2([id=="platform"?_5:_4],function(_9){_7(_9);});};}); \ No newline at end of file
diff --git a/lib/dojo/request/handlers.js b/lib/dojo/request/handlers.js
new file mode 100644
index 000000000..6718c461b
--- /dev/null
+++ b/lib/dojo/request/handlers.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request/handlers",["../json","../_base/kernel","../_base/array","../has"],function(_1,_2,_3,_4){_4.add("activex",typeof ActiveXObject!=="undefined");var _5;if(_4("activex")){var dp=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML.DOMDocument"];_5=function(_6){var _7=_6.data;if(!_7||!_7.documentElement){var _8=_6.text;_3.some(dp,function(p){try{var _9=new ActiveXObject(p);_9.async=false;_9.loadXML(_8);_7=_9;}catch(e){return false;}return true;});}return _7;};}var _a={"javascript":function(_b){return _2.eval(_b.text||"");},"json":function(_c){return _1.parse(_c.text||null);},"xml":_5};function _d(_e){var _f=_a[_e.options.handleAs];_e.data=_f?_f(_e):(_e.data||_e.text);return _e;};_d.register=function(_10,_11){_a[_10]=_11;};return _d;}); \ No newline at end of file
diff --git a/lib/dojo/request/iframe.js b/lib/dojo/request/iframe.js
new file mode 100644
index 000000000..875b311c4
--- /dev/null
+++ b/lib/dojo/request/iframe.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request/iframe",["module","require","./watch","./util","./handlers","../_base/lang","../io-query","../query","../has","../dom","../dom-construct","../_base/window"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){var _d=_1.id.replace(/[\/\.\-]/g,"_"),_e=_d+"_onload";if(!_c.global[_e]){_c.global[_e]=function(){var _f=_10._currentDfd;if(!_f){_10._fireNextRequest();return;}var _11=_f.response,_12=_11.options,_13=_a.byId(_12.form)||_f._tmpForm;if(_13){var _14=_f._contentToClean;for(var i=0;i<_14.length;i++){var key=_14[i];for(var j=0;j<_13.childNodes.length;j++){var _15=_13.childNodes[j];if(_15.name===key){_b.destroy(_15);break;}}}_f._originalAction&&_13.setAttribute("action",_f._originalAction);if(_f._originalMethod){_13.setAttribute("method",_f._originalMethod);_13.method=_f._originalMethod;}if(_f._originalTarget){_13.setAttribute("target",_f._originalTarget);_13.target=_f._originalTarget;}}if(_f._tmpForm){_b.destroy(_f._tmpForm);delete _f._tmpForm;}_f._finished=true;};}function _16(_17,_18,uri){if(_c.global[_17]){return _c.global[_17];}if(_c.global.frames[_17]){return _c.global.frames[_17];}if(!uri){if(_9("config-useXDomain")&&!_9("config-dojoBlankHtmlUrl")){console.warn("dojo/request/iframe: When using cross-domain Dojo builds,"+" please save dojo/resources/blank.html to your domain and set dojoConfig.dojoBlankHtmlUrl"+" to the path on your domain to blank.html");}uri=(_9("config-dojoBlankHtmlUrl")||_2.toUrl("dojo/resources/blank.html"));}var _19=_b.place("<iframe id=\""+_17+"\" name=\""+_17+"\" src=\""+uri+"\" onload=\""+_18+"\" style=\"position: absolute; left: 1px; top: 1px; height: 1px; width: 1px; visibility: hidden\">",_c.body());_c.global[_17]=_19;return _19;};function _1a(_1b,src,_1c){var _1d=_c.global.frames[_1b.name];if(_1d.contentWindow){_1d=_1d.contentWindow;}try{if(!_1c){_1d.location=src;}else{_1d.location.replace(src);}}catch(e){}};function doc(_1e){if(_1e.contentDocument){return _1e.contentDocument;}var _1f=_1e.name;if(_1f){var _20=_c.doc.getElementsByTagName("iframe");if(_1e.document&&_20[_1f].contentWindow&&_20[_1f].contentWindow.document){return _20[_1f].contentWindow.document;}else{if(_c.doc.frames[_1f]&&_c.doc.frames[_1f].document){return _c.doc.frames[_1f].document;}}}return null;};function _21(){return _b.create("form",{name:_d+"_form",style:{position:"absolute",top:"-1000px",left:"-1000px"}},_c.body());};function _22(){var dfd;try{if(_10._currentDfd||!_10._dfdQueue.length){return;}do{dfd=_10._currentDfd=_10._dfdQueue.shift();}while(dfd&&(dfd.canceled||(dfd.isCanceled&&dfd.isCanceled()))&&_10._dfdQueue.length);if(!dfd||dfd.canceled||(dfd.isCanceled&&dfd.isCanceled())){_10._currentDfd=null;return;}var _23=dfd.response,_24=_23.options,c2c=dfd._contentToClean=[],_25=_a.byId(_24.form),_26=_4.notify,_27=_24.data||null,_28;if(!dfd._legacy&&_24.method==="POST"&&!_25){_25=dfd._tmpForm=_21();}else{if(_24.method==="GET"&&_25&&_23.url.indexOf("?")>-1){_28=_23.url.slice(_23.url.indexOf("?")+1);_27=_6.mixin(_7.queryToObject(_28),_27);}}if(_25){if(!dfd._legacy){var _29=_25;do{_29=_29.parentNode;}while(_29!==_c.doc.documentElement);if(!_29){_25.style.position="absolute";_25.style.left="-1000px";_25.style.top="-1000px";_c.body().appendChild(_25);}if(!_25.name){_25.name=_d+"_form";}}if(_27){var _2a=function(_2b,_2c){_b.create("input",{type:"hidden",name:_2b,value:_2c},_25);c2c.push(_2b);};for(var x in _27){var val=_27[x];if(_6.isArray(val)&&val.length>1){for(var i=0;i<val.length;i++){_2a(x,val[i]);}}else{if(!_25[x]){_2a(x,val);}else{_25[x].value=val;}}}}var _2d=_25.getAttributeNode("action"),_2e=_25.getAttributeNode("method"),_2f=_25.getAttributeNode("target");if(_23.url){dfd._originalAction=_2d?_2d.value:null;if(_2d){_2d.value=_23.url;}else{_25.setAttribute("action",_23.url);}}if(!dfd._legacy){dfd._originalMethod=_2e?_2e.value:null;if(_2e){_2e.value=_24.method;}else{_25.setAttribute("method",_24.method);}}else{if(!_2e||!_2e.value){if(mthdNode){mthdNode.value=_24.method;}else{fn.setAttribute("method",_24.method);}}}dfd._originalTarget=_2f?_2f.value:null;if(_2f){_2f.value=_10._iframeName;}else{_25.setAttribute("target",_10._iframeName);}_25.target=_10._iframeName;_26&&_26.emit("send",_23,dfd.promise.cancel);_10._notifyStart(_23);_25.submit();}else{var _30="";if(_23.options.data){_30=_23.options.data;if(typeof _30!=="string"){_30=_7.objectToQuery(_30);}}var _31=_23.url+(_23.url.indexOf("?")>-1?"&":"?")+_30;_26&&_26.emit("send",_23,dfd.promise.cancel);_10._notifyStart(_23);_10.setSrc(_10._frame,_31,true);}}catch(e){dfd.reject(e);}};function _32(_33){return !this.isFulfilled();};function _34(_35){return !!this._finished;};function _36(_37,_38){if(!_38){try{var _39=_37.options,doc=_10.doc(_10._frame),_3a=_39.handleAs;if(_3a!=="html"){if(_3a==="xml"){if(doc.documentElement.tagName.toLowerCase()==="html"){_8("a",doc.documentElement).orphan();var _3b=doc.documentElement.innerText;_3b=_3b.replace(/>\s+</g,"><");_37.text=_6.trim(_3b);}else{_37.data=doc;}}else{_37.text=doc.getElementsByTagName("textarea")[0].value;}_5(_37);}else{_37.data=doc;}}catch(e){_38=e;}}if(_38){this.reject(_38);}else{if(this._finished){this.resolve(_37);}else{this.reject(new Error("Invalid dojo/request/iframe request state"));}}};function _3c(_3d){this._callNext();};var _3e={method:"POST"};function _10(url,_3f,_40){var _41=_4.parseArgs(url,_4.deepCreate(_3e,_3f),true);url=_41.url;_3f=_41.options;if(_3f.method!=="GET"&&_3f.method!=="POST"){throw new Error(_3f.method+" not supported by dojo/request/iframe");}if(!_10._frame){_10._frame=_10.create(_10._iframeName,_e+"();");}var dfd=_4.deferred(_41,null,_32,_34,_36,_3c);dfd._callNext=function(){if(!this._calledNext){this._calledNext=true;_10._currentDfd=null;_10._fireNextRequest();}};dfd._legacy=_40;_10._dfdQueue.push(dfd);_10._fireNextRequest();_3(dfd);return _40?dfd:dfd.promise;};_10.create=_16;_10.doc=doc;_10.setSrc=_1a;_10._iframeName=_d+"_IoIframe";_10._notifyStart=function(){};_10._dfdQueue=[];_10._currentDfd=null;_10._fireNextRequest=_22;_4.addCommonMethods(_10,["GET","POST"]);return _10;}); \ No newline at end of file
diff --git a/lib/dojo/request/node.js b/lib/dojo/request/node.js
new file mode 100644
index 000000000..8ef5426fb
--- /dev/null
+++ b/lib/dojo/request/node.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request/node",["require","./util","./handlers","../errors/RequestTimeoutError","../node!http","../node!https","../node!url","../node!stream"],function(_1,_2,_3,_4,_5,_6,_7,_8){var _9=_8.Stream,_a;var _b={method:"GET",query:null,data:_a,headers:{}};function _c(_d,_e){var _f=_2.parseArgs(_d,_2.deepCreate(_b,_e),_e&&_e.data instanceof _9);_d=_f.url;_e=_f.options;var def=_2.deferred(_f,function(dfd,_10){_10.clientRequest.abort();});_d=_7.parse(_d);var _11=_f.requestOptions={hostname:_d.hostname,port:_d.port,socketPath:_e.socketPath,method:_e.method,headers:_e.headers,agent:_e.agent,pfx:_e.pfx,key:_e.key,passphrase:_e.passphrase,cert:_e.cert,ca:_e.ca,ciphers:_e.ciphers,rejectUnauthorized:_e.rejectUnauthorized===false?false:true};if(_d.path){_11.path=_d.path;}if(_e.user||_e.password){_11.auth=(_e.user||"")+":"+(_e.password||"");}var req=_f.clientRequest=(_d.protocol==="https:"?_6:_5).request(_11);if(_e.socketOptions){if("timeout" in _e.socketOptions){req.setTimeout(_e.socketOptions.timeout);}if("noDelay" in _e.socketOptions){req.setNoDelay(_e.socketOptions.noDelay);}if("keepAlive" in _e.socketOptions){var _12=_e.socketOptions.keepAlive;req.setKeepAlive(_12>=0,_12||0);}}req.on("socket",function(){_f.hasSocket=true;def.progress(_f);});req.on("response",function(_13){_f.clientResponse=_13;_f.status=_13.statusCode;_f.getHeader=function(_14){return _13.headers[_14.toLowerCase()]||null;};var _15=[];_13.on("data",function(_16){_15.push(_16);});_13.on("end",function(){if(_17){clearTimeout(_17);}_f.text=_15.join("");_3(_f);def.resolve(_f);});});req.on("error",def.reject);if(_e.data){if(typeof _e.data==="string"){req.end(_e.data);}else{_e.data.pipe(req);}}else{req.end();}if(_e.timeout){var _17=setTimeout(function(){def.cancel(new _4(_f));},_e.timeout);}return def.promise;};_2.addCommonMethods(_c);return _c;}); \ No newline at end of file
diff --git a/lib/dojo/request/notify.js b/lib/dojo/request/notify.js
new file mode 100644
index 000000000..b16d79d56
--- /dev/null
+++ b/lib/dojo/request/notify.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request/notify",["../Evented","../_base/lang","./util"],function(_1,_2,_3){var _4=0,_5=[].slice;var _6=_2.mixin(new _1,{onsend:function(_7){if(!_4){this.emit("start");}_4++;},_onload:function(_8){this.emit("done",_8);},_onerror:function(_9){this.emit("done",_9);},_ondone:function(_a){if(--_4<=0){_4=0;this.emit("stop");}},emit:function(_b,_c){var _d=_1.prototype.emit.apply(this,arguments);if(this["_on"+_b]){this["_on"+_b].apply(this,_5.call(arguments,1));}return _d;}});function _e(_f,_10){return _6.on(_f,_10);};_e.emit=function(_11,_12,_13){return _6.emit(_11,_12,_13);};return _3.notify=_e;}); \ No newline at end of file
diff --git a/lib/dojo/request/registry.js b/lib/dojo/request/registry.js
new file mode 100644
index 000000000..b72d1d996
--- /dev/null
+++ b/lib/dojo/request/registry.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request/registry",["require","../_base/array","./default!platform","./util"],function(_1,_2,_3,_4){var _5=[];function _6(_7,_8){var _9=_5.slice(0),i=0,_a;while(_a=_9[i++]){if(_a(_7,_8)){return _a.request.call(null,_7,_8);}}return _3.apply(null,arguments);};function _b(_c,_d){var _e;if(_d){if(_c.test){_e=function(_f){return _c.test(_f);};}else{if(_c.apply&&_c.call){_e=function(){return _c.apply(null,arguments);};}else{_e=function(url){return url===_c;};}}_e.request=_d;}else{_e=function(){return true;};_e.request=_c;}return _e;};_6.register=function(url,_10,_11){var _12=_b(url,_10);_5[(_11?"unshift":"push")](_12);return {remove:function(){var idx;if(~(idx=_2.indexOf(_5,_12))){_5.splice(idx,1);}}};};_6.load=function(id,_13,_14,_15){if(id){_1([id],function(_16){_3=_16;_14(_6);});}else{_14(_6);}};_4.addCommonMethods(_6);return _6;}); \ No newline at end of file
diff --git a/lib/dojo/request/script.js b/lib/dojo/request/script.js
new file mode 100644
index 000000000..5f182dc75
--- /dev/null
+++ b/lib/dojo/request/script.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request/script",["module","./watch","./util","../_base/array","../_base/lang","../on","../dom","../dom-construct","../has","../_base/window"],function(_1,_2,_3,_4,_5,on,_6,_7,_8,_9){_8.add("script-readystatechange",function(_a,_b){var _c=_b.createElement("script");return typeof _c["onreadystatechange"]!=="undefined"&&(typeof _a["opera"]==="undefined"||_a["opera"].toString()!=="[object Opera]");});var _d=_1.id.replace(/[\/\.\-]/g,"_"),_e=0,_f=_8("script-readystatechange")?"readystatechange":"load",_10=/complete|loaded/,_11=this[_d+"_callbacks"]={},_12=[];function _13(id,url,_14){var doc=(_14||_9.doc),_15=doc.createElement("script");_15.type="text/javascript";_15.src=url;_15.id=id;_15.async=true;_15.charset="utf-8";return doc.getElementsByTagName("head")[0].appendChild(_15);};function _16(id,_17,_18){_7.destroy(_6.byId(id,_17));if(_11[id]){if(_18){_11[id]=function(){delete _11[id];};}else{delete _11[id];}}};function _19(dfd){var _1a=dfd.response.options,_1b=_1a.ioArgs?_1a.ioArgs.frameDoc:_1a.frameDoc;_12.push({id:dfd.id,frameDoc:_1b});if(_1a.ioArgs){_1a.ioArgs.frameDoc=null;}_1a.frameDoc=null;};function _1c(dfd,_1d){if(dfd.canDelete){_1e._remove(dfd.id,_1d.options.frameDoc,true);}};function _1f(_20){if(_12&&_12.length){_4.forEach(_12,function(_21){_1e._remove(_21.id,_21.frameDoc);_21.frameDoc=null;});_12=[];}return _20.options.jsonp?!_20.data:true;};function _22(_23){return !!this.scriptLoaded;};function _24(_25){var _26=_25.options.checkString;return _26&&eval("typeof("+_26+") !== \"undefined\"");};function _27(_28,_29){if(this.canDelete){_19(this);}if(_29){this.reject(_29);}else{this.resolve(_28);}};function _1e(url,_2a,_2b){var _2c=_3.parseArgs(url,_3.deepCopy({},_2a));url=_2c.url;_2a=_2c.options;var dfd=_3.deferred(_2c,_1c,_1f,_2a.jsonp?null:(_2a.checkString?_24:_22),_27);_5.mixin(dfd,{id:_d+(_e++),canDelete:false});if(_2a.jsonp){var _2d=new RegExp("[?&]"+_2a.jsonp+"=");if(!_2d.test(url)){url+=_2d+(_2a.frameDoc?"parent.":"")+_d+"_callbacks."+dfd.id;}dfd.canDelete=true;_11[dfd.id]=function(_2e){_2c.data=_2e;dfd.handleResponse(_2c);};}if(_3.notify){_3.notify.emit("send",_2c,dfd.promise.cancel);}if(!_2a.canAttach||_2a.canAttach(dfd)){var _2f=_1e._attach(dfd.id,url,_2a.frameDoc);if(!_2a.jsonp&&!_2a.checkString){var _30=on(_2f,_f,function(evt){if(evt.type==="load"||_10.test(_2f.readyState)){_30.remove();dfd.scriptLoaded=evt;}});}}_2(dfd);return _2b?dfd:dfd.promise;};_1e.get=_1e;_1e._attach=_13;_1e._remove=_16;_1e._callbacksProperty=_d+"_callbacks";return _1e;}); \ No newline at end of file
diff --git a/lib/dojo/request/util.js b/lib/dojo/request/util.js
new file mode 100644
index 000000000..a1dcf8321
--- /dev/null
+++ b/lib/dojo/request/util.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request/util",["exports","../errors/RequestError","../errors/CancelError","../Deferred","../io-query","../_base/array","../_base/lang"],function(_1,_2,_3,_4,_5,_6,_7){_1.deepCopy=function deepCopy(_8,_9){for(var _a in _9){var _b=_8[_a],_c=_9[_a];if(_b!==_c){if(_b&&typeof _b==="object"&&_c&&typeof _c==="object"){_1.deepCopy(_b,_c);}else{_8[_a]=_c;}}}return _8;};_1.deepCreate=function deepCreate(_d,_e){_e=_e||{};var _f=_7.delegate(_d),_10,_11;for(_10 in _d){_11=_d[_10];if(_11&&typeof _11==="object"){_f[_10]=_1.deepCreate(_11,_e[_10]);}}return _1.deepCopy(_f,_e);};var _12=Object.freeze||function(obj){return obj;};function _13(_14){return _12(_14);};_1.deferred=function deferred(_15,_16,_17,_18,_19,_1a){var def=new _4(function(_1b){_16&&_16(def,_15);if(!_1b||!(_1b instanceof _2)&&!(_1b instanceof _3)){return new _3("Request canceled",_15);}return _1b;});def.response=_15;def.isValid=_17;def.isReady=_18;def.handleResponse=_19;function _1c(_1d){_1d.response=_15;throw _1d;};var _1e=def.then(_13).otherwise(_1c);if(_1.notify){_1e.then(_7.hitch(_1.notify,"emit","load"),_7.hitch(_1.notify,"emit","error"));}var _1f=_1e.then(function(_20){return _20.data||_20.text;});var _21=_12(_7.delegate(_1f,{response:_1e}));if(_1a){def.then(function(_22){_1a.call(def,_22);},function(_23){_1a.call(def,_15,_23);});}def.promise=_21;def.then=_21.then;return def;};_1.addCommonMethods=function addCommonMethods(_24,_25){_6.forEach(_25||["GET","POST","PUT","DELETE"],function(_26){_24[(_26==="DELETE"?"DEL":_26).toLowerCase()]=function(url,_27){_27=_7.delegate(_27||{});_27.method=_26;return _24(url,_27);};});};_1.parseArgs=function parseArgs(url,_28,_29){var _2a=_28.data,_2b=_28.query;if(_2a&&!_29){if(typeof _2a==="object"){_28.data=_5.objectToQuery(_2a);}}if(_2b){if(typeof _2b==="object"){_2b=_5.objectToQuery(_2b);}if(_28.preventCache){_2b+=(_2b?"&":"")+"request.preventCache="+(+(new Date));}}else{if(_28.preventCache){_2b="request.preventCache="+(+(new Date));}}if(url&&_2b){url+=(~url.indexOf("?")?"&":"?")+_2b;}return {url:url,options:_28,getHeader:function(_2c){return null;}};};_1.checkStatus=function(_2d){_2d=_2d||0;return (_2d>=200&&_2d<300)||_2d===304||_2d===1223||!_2d;};}); \ No newline at end of file
diff --git a/lib/dojo/request/watch.js b/lib/dojo/request/watch.js
new file mode 100644
index 000000000..b38b4a6f4
--- /dev/null
+++ b/lib/dojo/request/watch.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request/watch",["./util","../errors/RequestTimeoutError","../errors/CancelError","../_base/array","../_base/window","../has!host-browser?dom-addeventlistener?:../on:"],function(_1,_2,_3,_4,_5,on){var _6=null,_7=[];function _8(){var _9=+(new Date);for(var i=0,_a;i<_7.length&&(_a=_7[i]);i++){var _b=_a.response,_c=_b.options;if((_a.isCanceled&&_a.isCanceled())||(_a.isValid&&!_a.isValid(_b))){_7.splice(i--,1);_d._onAction&&_d._onAction();}else{if(_a.isReady&&_a.isReady(_b)){_7.splice(i--,1);_a.handleResponse(_b);_d._onAction&&_d._onAction();}else{if(_a.startTime){if(_a.startTime+(_c.timeout||0)<_9){_7.splice(i--,1);_a.cancel(new _2("Timeout exceeded",_b));_d._onAction&&_d._onAction();}}}}}_d._onInFlight&&_d._onInFlight(_a);if(!_7.length){clearInterval(_6);_6=null;}};function _d(_e){if(_e.response.options.timeout){_e.startTime=+(new Date);}if(_e.isFulfilled()){return;}_7.push(_e);if(!_6){_6=setInterval(_8,50);}if(_e.response.options.sync){_8();}};_d.cancelAll=function cancelAll(){try{_4.forEach(_7,function(_f){try{_f.cancel(new _3("All requests canceled."));}catch(e){}});}catch(e){}};if(_5&&on&&_5.doc.attachEvent){on(_5.global,"unload",function(){_d.cancelAll();});}return _d;}); \ No newline at end of file
diff --git a/lib/dojo/request/xhr.js b/lib/dojo/request/xhr.js
new file mode 100644
index 000000000..ea63b4fe6
--- /dev/null
+++ b/lib/dojo/request/xhr.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/request/xhr",["../errors/RequestError","./watch","./handlers","./util","../has"],function(_1,_2,_3,_4,_5){_5.add("native-xhr",function(){return typeof XMLHttpRequest!=="undefined";});_5.add("dojo-force-activex-xhr",function(){return _5("activex")&&!document.addEventListener&&window.location.protocol==="file:";});_5.add("native-xhr2",function(){if(!_5("native-xhr")){return;}var x=new XMLHttpRequest();return typeof x["addEventListener"]!=="undefined"&&(typeof opera==="undefined"||typeof x["upload"]!=="undefined");});_5.add("native-formdata",function(){return typeof FormData==="function";});function _6(_7,_8){var _9=_7.xhr;_7.status=_7.xhr.status;_7.text=_9.responseText;if(_7.options.handleAs==="xml"){_7.data=_9.responseXML;}if(!_8){try{_3(_7);}catch(e){_8=e;}}if(_8){this.reject(_8);}else{if(_4.checkStatus(_9.status)){this.resolve(_7);}else{_8=new _1("Unable to load "+_7.url+" status: "+_9.status,_7);this.reject(_8);}}};var _a,_b,_c,_d;if(_5("native-xhr2")){_a=function(_e){return !this.isFulfilled();};_d=function(_f,_10){_10.xhr.abort();};_c=function(_11,dfd,_12){function _13(evt){dfd.handleResponse(_12);};function _14(evt){var _15=evt.target;var _16=new _1("Unable to load "+_12.url+" status: "+_15.status,_12);dfd.handleResponse(_12,_16);};function _17(evt){if(evt.lengthComputable){_12.loaded=evt.loaded;_12.total=evt.total;dfd.progress(_12);}};_11.addEventListener("load",_13,false);_11.addEventListener("error",_14,false);_11.addEventListener("progress",_17,false);return function(){_11.removeEventListener("load",_13,false);_11.removeEventListener("error",_14,false);_11.removeEventListener("progress",_17,false);};};}else{_a=function(_18){return _18.xhr.readyState;};_b=function(_19){return 4===_19.xhr.readyState;};_d=function(dfd,_1a){var xhr=_1a.xhr;var _1b=typeof xhr.abort;if(_1b==="function"||_1b==="object"||_1b==="unknown"){xhr.abort();}};}var _1c,_1d={data:null,query:null,sync:false,method:"GET",headers:{"Content-Type":"application/x-www-form-urlencoded"}};function xhr(url,_1e,_1f){var _20=_4.parseArgs(url,_4.deepCreate(_1d,_1e),_5("native-formdata")&&_1e&&_1e.data&&_1e.data instanceof FormData);url=_20.url;_1e=_20.options;var _21,_22=function(){_21&&_21();};var dfd=_4.deferred(_20,_d,_a,_b,_6,_22);var _23=_20.xhr=xhr._create();if(!_23){dfd.cancel(new _1("XHR was not created"));return _1f?dfd:dfd.promise;}_20.getHeader=function(_24){return this.xhr.getResponseHeader(_24);};if(_c){_21=_c(_23,dfd,_20);}var _25=_1e.data,_26=!_1e.sync,_27=_1e.method;try{_23.open(_27,url,_26,_1e.user||_1c,_1e.password||_1c);if(_1e.withCredentials){_23.withCredentials=_1e.withCredentials;}var _28=_1e.headers,_29;if(_28){for(var hdr in _28){if(hdr.toLowerCase()==="content-type"){_29=_28[hdr];}else{if(_28[hdr]){_23.setRequestHeader(hdr,_28[hdr]);}}}}if(_29&&_29!==false){_23.setRequestHeader("Content-Type",_29);}if(!_28||!("X-Requested-With" in _28)){_23.setRequestHeader("X-Requested-With","XMLHttpRequest");}if(_4.notify){_4.notify.emit("send",_20,dfd.promise.cancel);}_23.send(_25);}catch(e){dfd.reject(e);}_2(dfd);_23=null;return _1f?dfd:dfd.promise;};xhr._create=function(){throw new Error("XMLHTTP not available");};if(_5("native-xhr")&&!_5("dojo-force-activex-xhr")){xhr._create=function(){return new XMLHttpRequest();};}else{if(_5("activex")){try{new ActiveXObject("Msxml2.XMLHTTP");xhr._create=function(){return new ActiveXObject("Msxml2.XMLHTTP");};}catch(e){try{new ActiveXObject("Microsoft.XMLHTTP");xhr._create=function(){return new ActiveXObject("Microsoft.XMLHTTP");};}catch(e){}}}}_4.addCommonMethods(xhr);return xhr;}); \ No newline at end of file
diff --git a/lib/dojo/require.js b/lib/dojo/require.js
index 40160e179..d87a29d29 100644
--- a/lib/dojo/require.js
+++ b/lib/dojo/require.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/resources/_modules.js b/lib/dojo/resources/_modules.js
deleted file mode 100644
index e093a58f3..000000000
--- a/lib/dojo/resources/_modules.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*=====
-// Supplemental summaries for those hard-to-doc places your conventional doc parser can't reach.
-// Where possible, these summaries should appear inline in the code.
-//
-// this is "package level documentation"
-
-dojo.cldr = {
- // summary: transformation of relevant pieces of the Unicode.org Common Locale Data Repository
- // (see http://unicode.org/cldr) to JSON from the original XML with associated utility classes
-};
-
-dojo.data = {
- // summary: A uniform data access layer
-};
-
-dojo.dnd = {
- // summary: Drag and Drop resources
-};
-
-dojo.io = {
- // summary: Additional I/O transports (Ajax)
-};
-
-dojo.rpc = {
- // summary: Dojo remote-procedure-call resources
-};
-
-// "variables"
-
-dojo.baseUrl = {
- // summary: The root relative path to dojo.js (as a string)
- // example:
- // if(typeof dojo != "undefined"){ console.log(dojo.baseUrl); }
-};
-
-=====*/
diff --git a/lib/dojo/resources/dnd.css b/lib/dojo/resources/dnd.css
index fb0611856..2080f7fb0 100644
--- a/lib/dojo/resources/dnd.css
+++ b/lib/dojo/resources/dnd.css
@@ -1,16 +1 @@
-/* DnD avatar-specific settings */
-.dojoDndAvatar {font-size: 75%; color: black;}
-.dojoDndAvatarHeader td {padding-left: 20px; padding-right: 4px; height: 16px;}
-.dojoDndAvatarHeader {background: #ccc;}
-.dojoDndAvatarItem {background: #eee;}
-.dojoDndMove .dojoDndAvatarHeader {background-image: url(images/dndNoMove.png); background-repeat: no-repeat;}
-.dojoDndCopy .dojoDndAvatarHeader {background-image: url(images/dndNoCopy.png); background-repeat: no-repeat;}
-.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-image: url(images/dndMove.png); background-repeat: no-repeat;}
-.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-image: url(images/dndCopy.png); background-repeat: no-repeat;}
-
-.dojoDndHandle {cursor: move;}
-.dojoDndIgnore {cursor: default;}
-
-.dijit_a11y .dojoDndAvatar { font-size: 1em; font-weight:bold;}
-.dijit_a11y .dojoDndAvatarHeader td {padding-left:2px !important;}
-.dijit_a11y .dojoDndAvatarHeader td span {padding-right: 5px;}
+.dojoDndAvatar {font-size: 75%; color: black;}.dojoDndAvatarHeader td {padding-left: 20px; padding-right: 4px; height: 16px;}.dojoDndAvatarHeader {background: #ccc;}.dojoDndAvatarItem {background: #eee;}.dojoDndMove .dojoDndAvatarHeader {background-image: url(images/dndNoMove.png); background-repeat: no-repeat;}.dojoDndCopy .dojoDndAvatarHeader {background-image: url(images/dndNoCopy.png); background-repeat: no-repeat;}.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-image: url(images/dndMove.png); background-repeat: no-repeat;}.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-image: url(images/dndCopy.png); background-repeat: no-repeat;}.dojoDndHandle {cursor: move;}.dojoDndIgnore {cursor: default;}.dj_a11y .dojoDndAvatar {font-size: 1em; font-weight:bold;}.dj_a11y .dojoDndAvatarHeader td {padding-left:2px !important;}.dj_a11y .dojoDndAvatarHeader td span {padding-right: 5px;} \ No newline at end of file
diff --git a/lib/dojo/resources/dojo.css b/lib/dojo/resources/dojo.css
index fdaa84223..ac90e0caf 100644
--- a/lib/dojo/resources/dojo.css
+++ b/lib/dojo/resources/dojo.css
@@ -1,196 +1 @@
-/*
- dojo.css
- Baseline CSS file for general usage.
-
- This file is intended to be a "quick and dirty" stylesheet you can use to give
- a straight-up web page some basic styling without having to do the dirty work
- yourself. It includes a modified version of YUI's reset.css (we pulled some
- of the list reset definitions, among other things), and then provides some very
- basic style rules to be applied to general HTML elements.
-
- This stylesheet is NOT intended to serve as the foundation for more complex things--
- including the use of a TABLE for layout purposes. The table definitions in this
- file make the assumption that you will be using tables for thier declared purpose:
- displaying tabular data.
-
- If you are looking for a baseline stylesheet using tables for grid layout, you will
- need to supply your own layout rules to override the ones in this stylesheet.
-
- Applications using Dojo will function correctly without including this
- file, but it should provide sane defaults for many common things that page
- authors often need to set up manually.
-
- The Dojo Core uses this stylesheet to quickly style HTML-based tests and demos. Feel
- free to use it as you will.
-*/
-
-/*****************************************************************************************/
-
-/*
- The below are borrowed from YUI's reset style sheets for pages and fonts.
- We've verified w/ the YUI development team that these are entirely
- copyright Yahoo, written entirely by Nate Koechley and Matt Sweeney without
- external contributions.
-
- Copyright (c) 2007, Yahoo! Inc. All rights reserved.
- Code licensed under the BSD License:
- http://developer.yahoo.net/yui/license.txt
- version: 2.2.1
-*/
-
-body, div, dl, dt, dd, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
- margin: 0;
- padding: 0;
-}
-
-fieldset, img {
- border: 0 none;
-}
-
-address, caption, cite, code, dfn, th, var {
- font-style: normal;
- font-weight: normal;
-}
-
-caption, th {
- text-align: left;
-}
-
-q:before, q:after {
- content:"";
-}
-
-abbr, acronym {
- border:0;
-}
-/* End YUI imported code. */
-
-/*****************************************************************************************/
-
-/*
- Begin Dojo additions.
-
- Style definitions, based loosely on the Dijit Tundra theme.
- Relative unit calculations based on "Compose to a Vertical Rhythm",
- by Richard Rutter (http://24ways.org/2006/compose-to-a-vertical-rhythm)
-
- If changing the font size, make sure you do it in both
- percent and px (% for IE, px for everything else).
- % value based on default size of 16px (in most browsers).
- So if you want the default size to be 14px, set the
- % to 87% (14 / 16 = 0.875).
-
- Typical values:
- 10px: 62.5%
- 11px: 69% (68.75)
- 12px: 75%
- 13px: 81.25%
- 14px: 87.5%
- 16px: 100%
-
- Default: 12px
-*/
-body {
- font: 12px Myriad,Helvetica,Tahoma,Arial,clean,sans-serif;
- *font-size: 75%;
-}
-
-/* Headings */
-h1 {
- font-size: 1.5em;
- font-weight: normal;
- line-height: 1em;
- margin-top: 1em;
- margin-bottom:0;
-}
-
-h2 {
- font-size: 1.1667em;
- font-weight: bold;
- line-height: 1.286em;
- margin-top: 1.929em;
- margin-bottom:0.643em;
-}
-
-h3, h4, h5, h6 {
- font-size: 1em;
- font-weight: bold;
- line-height: 1.5em;
- margin-top: 1.5em;
- margin-bottom: 0;
-}
-
-/* paragraphs, quotes and lists */
-p {
- font-size: 1em;
- margin-top: 1.5em;
- margin-bottom: 1.5em;
- line-height: 1.5em;
-}
-
-blockquote {
- font-size: 0.916em;
- margin-top: 3.272em;
- margin-bottom: 3.272em;
- line-height: 1.636em;
- padding: 1.636em;
- border-top: 1px solid #ccc;
- border-bottom: 1px solid #ccc;
-}
-
-ol li, ul li {
- font-size: 1em;
- line-height: 1.5em;
- margin: 0;
-}
-
-/* pre and code */
-pre, code {
- font-size:115%;
- *font-size:100%;
- font-family: Courier, "Courier New";
- background-color: #efefef;
- border: 1px solid #ccc;
-}
-
-pre {
- border-width: 1px 0;
- padding: 1.5em;
-}
-
-/*
- Tables
-
- Note that these table definitions make the assumption that you are using tables
- to display tabular data, and NOT using tables as layout mechanisms. If you are
- using tables for layout, you will probably want to override these rules with
- more specific ones.
-
- These definitions make tabular data look presentable, particularly when presented
- inline with paragraphs.
-*/
-table { font-size:100%; }
-
-.dojoTabular {
- border-collapse: collapse;
- border-spacing: 0;
- border: 1px solid #ccc;
- margin: 0 1.5em;
-}
-
-.dojoTabular th {
- text-align: center;
- font-weight: bold;
-}
-
-.dojoTabular thead,
-.dojoTabular tfoot {
- background-color: #efefef;
- border: 1px solid #ccc;
- border-width: 1px 0;
-}
-
-.dojoTabular th,
-.dojoTabular td {
- padding: 0.25em 0.5em;
-}
+body, div, dl, dt, dd, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {margin: 0; padding: 0;}fieldset, img {border: 0 none;}address, caption, cite, code, dfn, th, var {font-style: normal; font-weight: normal;}caption, th {text-align: left;}q:before, q:after {content:"";}abbr, acronym {border:0;}body {font: 12px Myriad,Helvetica,Tahoma,Arial,clean,sans-serif; *font-size: 75%;}h1 {font-size: 1.5em; font-weight: normal; line-height: 1em; margin-top: 1em; margin-bottom:0;}h2 {font-size: 1.1667em; font-weight: bold; line-height: 1.286em; margin-top: 1.929em; margin-bottom:0.643em;}h3, h4, h5, h6 {font-size: 1em; font-weight: bold; line-height: 1.5em; margin-top: 1.5em; margin-bottom: 0;}p {font-size: 1em; margin-top: 1.5em; margin-bottom: 1.5em; line-height: 1.5em;}blockquote {font-size: 0.916em; margin-top: 3.272em; margin-bottom: 3.272em; line-height: 1.636em; padding: 1.636em; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc;}ol li, ul li {font-size: 1em; line-height: 1.5em; margin: 0;}pre, code {font-size:115%; *font-size:100%; font-family: Courier, "Courier New"; background-color: #efefef; border: 1px solid #ccc;}pre {border-width: 1px 0; padding: 1.5em;}table {font-size:100%;}.dojoTabular {border-collapse: collapse; border-spacing: 0; border: 1px solid #ccc; margin: 0 1.5em;}.dojoTabular th {text-align: center; font-weight: bold;}.dojoTabular thead,.dojoTabular tfoot {background-color: #efefef; border: 1px solid #ccc; border-width: 1px 0;}.dojoTabular th,.dojoTabular td {padding: 0.25em 0.5em;} \ No newline at end of file
diff --git a/lib/dojo/router.js b/lib/dojo/router.js
new file mode 100644
index 000000000..dc14f695a
--- /dev/null
+++ b/lib/dojo/router.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/router",["./router/RouterBase"],function(_1){return new _1({});}); \ No newline at end of file
diff --git a/lib/dojo/router/RouterBase.js b/lib/dojo/router/RouterBase.js
new file mode 100644
index 000000000..3862884a2
--- /dev/null
+++ b/lib/dojo/router/RouterBase.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/router/RouterBase",["dojo/_base/declare","dojo/hash","dojo/topic"],function(_1,_2,_3){var _4;if(String.prototype.trim){_4=function(_5){return _5.trim();};}else{_4=function(_6){return _6.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};}function _7(_8,_9,_a){var _b,_c,_d,_e,i,l;_b=this.callbackQueue;_c=false;_d=false;_e={stopImmediatePropagation:function(){_c=true;},preventDefault:function(){_d=true;},oldPath:_9,newPath:_a,params:_8};for(i=0,l=_b.length;i<l;++i){if(!_c){_b[i](_e);}}return !_d;};var _f=_1(null,{_routes:null,_routeIndex:null,_started:false,_currentPath:"",idMatch:/:(\w[\w\d]*)/g,idReplacement:"([^\\/]+)",globMatch:/\*(\w[\w\d]*)/,globReplacement:"(.+)",constructor:function(_10){this._routes=[];this._routeIndex={};for(var i in _10){if(_10.hasOwnProperty(i)){this[i]=_10[i];}}},register:function(_11,_12){return this._registerRoute(_11,_12);},registerBefore:function(_13,_14){return this._registerRoute(_13,_14,true);},go:function(_15,_16){var _17;_15=_4(_15);_17=this._handlePathChange(_15);if(_17){_2(_15,_16);}return _17;},startup:function(){if(this._started){return;}var _18=this;this._started=true;this._handlePathChange(_2());_3.subscribe("/dojo/hashchange",function(){_18._handlePathChange.apply(_18,arguments);});},_handlePathChange:function(_19){var i,j,li,lj,_1a,_1b,_1c,_1d,_1e,_1f=this._routes,_20=this._currentPath;if(!this._started||_19===_20){return _1c;}_1c=true;for(i=0,li=_1f.length;i<li;++i){_1a=_1f[i];_1b=_1a.route.exec(_19);if(_1b){if(_1a.parameterNames){_1d=_1a.parameterNames;_1e={};for(j=0,lj=_1d.length;j<lj;++j){_1e[_1d[j]]=_1b[j+1];}}else{_1e=_1b.slice(1);}_1c=_1a.fire(_1e,_20,_19);}}if(_1c){this._currentPath=_19;}return _1c;},_convertRouteToRegExp:function(_21){_21=_21.replace(this.idMatch,this.idReplacement);_21=_21.replace(this.globMatch,this.globReplacement);_21="^"+_21+"$";return new RegExp(_21);},_getParameterNames:function(_22){var _23=this.idMatch,_24=this.globMatch,_25=[],_26;_23.lastIndex=0;while((_26=_23.exec(_22))!==null){_25.push(_26[1]);}if((_26=_24.exec(_22))!==null){_25.push(_26[1]);}return _25.length>0?_25:null;},_indexRoutes:function(){var i,l,_27,_28,_29=this._routes;_28=this._routeIndex={};for(i=0,l=_29.length;i<l;++i){_27=_29[i];_28[_27.route]=i;}},_registerRoute:function(_2a,_2b,_2c){var _2d,_2e,_2f,_30,_31,_32=this,_33=this._routes,_34=this._routeIndex;_2d=this._routeIndex[_2a];_2e=typeof _2d!=="undefined";if(_2e){_2f=_33[_2d];}if(!_2f){_2f={route:_2a,callbackQueue:[],fire:_7};}_30=_2f.callbackQueue;if(typeof _2a=="string"){_2f.parameterNames=this._getParameterNames(_2a);_2f.route=this._convertRouteToRegExp(_2a);}if(_2c){_30.unshift(_2b);}else{_30.push(_2b);}if(!_2e){_2d=_33.length;_34[_2a]=_2d;_33.push(_2f);}_31=false;return {remove:function(){var i,l;if(_31){return;}for(i=0,l=_30.length;i<l;++i){if(_30[i]===_2b){_30.splice(i,1);}}if(_30.length===0){_33.splice(_2d,1);_32._indexRoutes();}_31=true;},register:function(_35,_36){return _32.register(_2a,_35,_36);}};}});return _f;}); \ No newline at end of file
diff --git a/lib/dojo/rpc/JsonService.js b/lib/dojo/rpc/JsonService.js
index 5a755252f..a8bd416a1 100644
--- a/lib/dojo/rpc/JsonService.js
+++ b/lib/dojo/rpc/JsonService.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/rpc/JsonService",["../main","./RpcService"],function(_1){_1.declare("dojo.rpc.JsonService",_1.rpc.RpcService,{bustCache:false,contentType:"application/json-rpc",lastSubmissionId:0,callRemote:function(_2,_3){var _4=new _1.Deferred();this.bind(_2,_3,_4);return _4;},bind:function(_5,_6,_7,_8){var _9=_1.rawXhrPost({url:_8||this.serviceUrl,postData:this.createRequest(_5,_6),contentType:this.contentType,timeout:this.timeout,handleAs:"json-comment-optional"});_9.addCallbacks(this.resultCallback(_7),this.errorCallback(_7));},createRequest:function(_a,_b){var _c={"params":_b,"method":_a,"id":++this.lastSubmissionId};return _1.toJson(_c);},parseResults:function(_d){if(_1.isObject(_d)){if("result" in _d){return _d.result;}if("Result" in _d){return _d.Result;}if("ResultSet" in _d){return _d.ResultSet;}}return _d;}});return _1.rpc.JsonService;}); \ No newline at end of file
+define("dojo/rpc/JsonService",["../_base/declare","../_base/Deferred","../_base/json","../_base/lang","../_base/xhr","./RpcService"],function(_1,_2,_3,_4,_5,_6){return _1("dojo.rpc.JsonService",_6,{bustCache:false,contentType:"application/json-rpc",lastSubmissionId:0,callRemote:function(_7,_8){var _9=new _2();this.bind(_7,_8,_9);return _9;},bind:function(_a,_b,_c,_d){var _e=_5.post({url:_d||this.serviceUrl,postData:this.createRequest(_a,_b),contentType:this.contentType,timeout:this.timeout,handleAs:"json-comment-optional"});_e.addCallbacks(this.resultCallback(_c),this.errorCallback(_c));},createRequest:function(_f,_10){var req={"params":_10,"method":_f,"id":++this.lastSubmissionId};return _3.toJson(req);},parseResults:function(obj){if(_4.isObject(obj)){if("result" in obj){return obj.result;}if("Result" in obj){return obj.Result;}if("ResultSet" in obj){return obj.ResultSet;}}return obj;}});}); \ No newline at end of file
diff --git a/lib/dojo/rpc/JsonpService.js b/lib/dojo/rpc/JsonpService.js
index 7bb74e07c..e6b16ceef 100644
--- a/lib/dojo/rpc/JsonpService.js
+++ b/lib/dojo/rpc/JsonpService.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/rpc/JsonpService",["../main","./RpcService","../io/script"],function(_1){_1.declare("dojo.rpc.JsonpService",_1.rpc.RpcService,{constructor:function(_2,_3){if(this.required){if(_3){_1.mixin(this.required,_3);}_1.forEach(this.required,function(_4){if(_4==""||_4==undefined){throw new Error("Required Service Argument not found: "+_4);}});}},strictArgChecks:false,bind:function(_5,_6,_7,_8){var _9=_1.io.script.get({url:_8||this.serviceUrl,callbackParamName:this.callbackParamName||"callback",content:this.createRequest(_6),timeout:this.timeout,handleAs:"json",preventCache:true});_9.addCallbacks(this.resultCallback(_7),this.errorCallback(_7));},createRequest:function(_a){var _b=(_1.isArrayLike(_a)&&_a.length==1)?_a[0]:{};_1.mixin(_b,this.required);return _b;}});return _1.rpc.JsonpService;}); \ No newline at end of file
+define("dojo/rpc/JsonpService",["../_base/array","../_base/declare","../_base/lang","./RpcService","../io/script"],function(_1,_2,_3,_4,_5){return _2("dojo.rpc.JsonpService",_4,{constructor:function(_6,_7){if(this.required){if(_7){_3.mixin(this.required,_7);}_1.forEach(this.required,function(_8){if(_8==""||_8==undefined){throw new Error("Required Service Argument not found: "+_8);}});}},strictArgChecks:false,bind:function(_9,_a,_b,_c){var _d=_5.get({url:_c||this.serviceUrl,callbackParamName:this.callbackParamName||"callback",content:this.createRequest(_a),timeout:this.timeout,handleAs:"json",preventCache:true});_d.addCallbacks(this.resultCallback(_b),this.errorCallback(_b));},createRequest:function(_e){var _f=(_3.isArrayLike(_e)&&_e.length==1)?_e[0]:{};_3.mixin(_f,this.required);return _f;}});}); \ No newline at end of file
diff --git a/lib/dojo/rpc/RpcService.js b/lib/dojo/rpc/RpcService.js
index e504818be..6b1d9dc06 100644
--- a/lib/dojo/rpc/RpcService.js
+++ b/lib/dojo/rpc/RpcService.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/rpc/RpcService",["../main","../_base/url"],function(_1){_1.declare("dojo.rpc.RpcService",null,{constructor:function(_2){if(_2){if((_1.isString(_2))||(_2 instanceof _1._Url)){if(_2 instanceof _1._Url){var _3=_2+"";}else{_3=_2;}var _4=_1.xhrGet({url:_3,handleAs:"json-comment-optional",sync:true});_4.addCallback(this,"processSmd");_4.addErrback(function(){throw new Error("Unable to load SMD from "+_2);});}else{if(_2.smdStr){this.processSmd(_1.eval("("+_2.smdStr+")"));}else{if(_2.serviceUrl){this.serviceUrl=_2.serviceUrl;}this.timeout=_2.timeout||3000;if("strictArgChecks" in _2){this.strictArgChecks=_2.strictArgChecks;}this.processSmd(_2);}}}},strictArgChecks:true,serviceUrl:"",parseResults:function(_5){return _5;},errorCallback:function(_6){return function(_7){_6.errback(_7.message);};},resultCallback:function(_8){return _1.hitch(this,function(_9){if(_9.error!=null){var _a;if(typeof _9.error=="object"){_a=new Error(_9.error.message);_a.code=_9.error.code;_a.error=_9.error.error;}else{_a=new Error(_9.error);}_a.id=_9.id;_a.errorObject=_9;_8.errback(_a);}else{_8.callback(this.parseResults(_9));}});},generateMethod:function(_b,_c,_d){return _1.hitch(this,function(){var _e=new _1.Deferred();if((this.strictArgChecks)&&(_c!=null)&&(arguments.length!=_c.length)){throw new Error("Invalid number of parameters for remote method.");}else{this.bind(_b,_1._toArray(arguments),_e,_d);}return _e;});},processSmd:function(_f){if(_f.methods){_1.forEach(_f.methods,function(m){if(m&&m.name){this[m.name]=this.generateMethod(m.name,m.parameters,m.url||m.serviceUrl||m.serviceURL);if(!_1.isFunction(this[m.name])){throw new Error("RpcService: Failed to create"+m.name+"()");}}},this);}this.serviceUrl=_f.serviceUrl||_f.serviceURL;this.required=_f.required;this.smd=_f;}});return _1.rpc.RpcService;}); \ No newline at end of file
+define("dojo/rpc/RpcService",["../_base/array","../_base/declare","../_base/Deferred","../_base/kernel","../_base/lang","../_base/url","../_base/xhr"],function(_1,_2,_3,_4,_5,_6,_7){return _2("dojo.rpc.RpcService",null,{constructor:function(_8){if(_8){if((_5.isString(_8))||(_8 instanceof _6)){if(_8 instanceof _6){var _9=_8+"";}else{_9=_8;}var _a=_7.get({url:_9,handleAs:"json-comment-optional",sync:true});_a.addCallback(this,"processSmd");_a.addErrback(function(){throw new Error("Unable to load SMD from "+_8);});}else{if(_8.smdStr){this.processSmd(_4.eval("("+_8.smdStr+")"));}else{if(_8.serviceUrl){this.serviceUrl=_8.serviceUrl;}this.timeout=_8.timeout||3000;if("strictArgChecks" in _8){this.strictArgChecks=_8.strictArgChecks;}this.processSmd(_8);}}}},strictArgChecks:true,serviceUrl:"",parseResults:function(_b){return _b;},errorCallback:function(_c){return function(_d){_c.errback(_d.message);};},resultCallback:function(_e){return _5.hitch(this,function(_f){if(_f.error!=null){var err;if(typeof _f.error=="object"){err=new Error(_f.error.message);err.code=_f.error.code;err.error=_f.error.error;}else{err=new Error(_f.error);}err.id=_f.id;err.errorObject=_f;_e.errback(err);}else{_e.callback(this.parseResults(_f));}});},generateMethod:function(_10,_11,url){return _5.hitch(this,function(){var _12=new _3();if((this.strictArgChecks)&&(_11!=null)&&(arguments.length!=_11.length)){throw new Error("Invalid number of parameters for remote method.");}else{this.bind(_10,_5._toArray(arguments),_12,url);}return _12;});},processSmd:function(_13){if(_13.methods){_1.forEach(_13.methods,function(m){if(m&&m.name){this[m.name]=this.generateMethod(m.name,m.parameters,m.url||m.serviceUrl||m.serviceURL);if(!_5.isFunction(this[m.name])){throw new Error("RpcService: Failed to create"+m.name+"()");}}},this);}this.serviceUrl=_13.serviceUrl||_13.serviceURL;this.required=_13.required;this.smd=_13;}});}); \ No newline at end of file
diff --git a/lib/dojo/selector/_loader.js b/lib/dojo/selector/_loader.js
index 68db99f00..94472f0b8 100644
--- a/lib/dojo/selector/_loader.js
+++ b/lib/dojo/selector/_loader.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/selector/acme.js b/lib/dojo/selector/acme.js
index e75fbf0f4..baebc93f5 100644
--- a/lib/dojo/selector/acme.js
+++ b/lib/dojo/selector/acme.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/selector/acme",["../_base/kernel","../has","../dom","../_base/sniff","../_base/array","../_base/lang","../_base/window"],function(_1,_2,_3){var _4=_1.trim;var _5=_1.forEach;var _6=function(){return _1.doc;};var _7=((_1.isWebKit||_1.isMozilla)&&((_6().compatMode)=="BackCompat"));var _8=">~+";var _9=false;var _a=function(){return true;};var _b=function(_c){if(_8.indexOf(_c.slice(-1))>=0){_c+=" * ";}else{_c+=" ";}var ts=function(s,e){return _4(_c.slice(s,e));};var _d=[];var _e=-1,_f=-1,_10=-1,_11=-1,_12=-1,_13=-1,_14=-1,lc="",cc="",_15;var x=0,ql=_c.length,_16=null,_17=null;var _18=function(){if(_14>=0){var tv=(_14==x)?null:ts(_14,x);_16[(_8.indexOf(tv)<0)?"tag":"oper"]=tv;_14=-1;}};var _19=function(){if(_13>=0){_16.id=ts(_13,x).replace(/\\/g,"");_13=-1;}};var _1a=function(){if(_12>=0){_16.classes.push(ts(_12+1,x).replace(/\\/g,""));_12=-1;}};var _1b=function(){_19();_18();_1a();};var _1c=function(){_1b();if(_11>=0){_16.pseudos.push({name:ts(_11+1,x)});}_16.loops=(_16.pseudos.length||_16.attrs.length||_16.classes.length);_16.oquery=_16.query=ts(_15,x);_16.otag=_16.tag=(_16["oper"])?null:(_16.tag||"*");if(_16.tag){_16.tag=_16.tag.toUpperCase();}if(_d.length&&(_d[_d.length-1].oper)){_16.infixOper=_d.pop();_16.query=_16.infixOper.query+" "+_16.query;}_d.push(_16);_16=null;};for(;lc=cc,cc=_c.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_16){_15=x;_16={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return (_9)?this.otag:this.tag;}};_14=x;}if(_e>=0){if(cc=="]"){if(!_17.attr){_17.attr=ts(_e+1,x);}else{_17.matchFor=ts((_10||_e+1),x);}var cmf=_17.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_17.matchFor=cmf.slice(1,-1);}}_16.attrs.push(_17);_17=null;_e=_10=-1;}else{if(cc=="="){var _1d=("|~^$*".indexOf(lc)>=0)?lc:"";_17.type=_1d+cc;_17.attr=ts(_e+1,x-_1d.length);_10=x+1;}}}else{if(_f>=0){if(cc==")"){if(_11>=0){_17.value=ts(_f+1,x);}_11=_f=-1;}}else{if(cc=="#"){_1b();_13=x+1;}else{if(cc=="."){_1b();_12=x;}else{if(cc==":"){_1b();_11=x;}else{if(cc=="["){_1b();_e=x;_17={};}else{if(cc=="("){if(_11>=0){_17={name:ts(_11+1,x),value:null};_16.pseudos.push(_17);}_f=x;}else{if((cc==" ")&&(lc!=cc)){_1c();}}}}}}}}}return _d;};var _1e=function(_1f,_20){if(!_1f){return _20;}if(!_20){return _1f;}return function(){return _1f.apply(window,arguments)&&_20.apply(window,arguments);};};var _21=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _22=function(n){return (1==n.nodeType);};var _23="";var _24=function(_25,_26){if(!_25){return _23;}if(_26=="class"){return _25.className||_23;}if(_26=="for"){return _25.htmlFor||_23;}if(_26=="style"){return _25.style.cssText||_23;}return (_9?_25.getAttribute(_26):_25.getAttribute(_26,2))||_23;};var _27={"*=":function(_28,_29){return function(_2a){return (_24(_2a,_28).indexOf(_29)>=0);};},"^=":function(_2b,_2c){return function(_2d){return (_24(_2d,_2b).indexOf(_2c)==0);};},"$=":function(_2e,_2f){return function(_30){var ea=" "+_24(_30,_2e);return (ea.lastIndexOf(_2f)==(ea.length-_2f.length));};},"~=":function(_31,_32){var _33=" "+_32+" ";return function(_34){var ea=" "+_24(_34,_31)+" ";return (ea.indexOf(_33)>=0);};},"|=":function(_35,_36){var _37=_36+"-";return function(_38){var ea=_24(_38,_35);return ((ea==_36)||(ea.indexOf(_37)==0));};},"=":function(_39,_3a){return function(_3b){return (_24(_3b,_39)==_3a);};}};var _3c=(typeof _6().firstChild.nextElementSibling=="undefined");var _3d=!_3c?"nextElementSibling":"nextSibling";var _3e=!_3c?"previousElementSibling":"previousSibling";var _3f=(_3c?_22:_a);var _40=function(_41){while(_41=_41[_3e]){if(_3f(_41)){return false;}}return true;};var _42=function(_43){while(_43=_43[_3d]){if(_3f(_43)){return false;}}return true;};var _44=function(_45){var _46=_45.parentNode;var i=0,_47=_46.children||_46.childNodes,ci=(_45["_i"]||-1),cl=(_46["_l"]||-1);if(!_47){return -1;}var l=_47.length;if(cl==l&&ci>=0&&cl>=0){return ci;}_46["_l"]=l;ci=-1;for(var te=_46["firstElementChild"]||_46["firstChild"];te;te=te[_3d]){if(_3f(te)){te["_i"]=++i;if(_45===te){ci=i;}}}return ci;};var _48=function(_49){return !((_44(_49))%2);};var _4a=function(_4b){return ((_44(_4b))%2);};var _4c={"checked":function(_4d,_4e){return function(_4f){return !!("checked" in _4f?_4f.checked:_4f.selected);};},"first-child":function(){return _40;},"last-child":function(){return _42;},"only-child":function(_50,_51){return function(_52){return _40(_52)&&_42(_52);};},"empty":function(_53,_54){return function(_55){var cn=_55.childNodes;var cnl=_55.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(_56,_57){var cz=_57.charAt(0);if(cz=="\""||cz=="'"){_57=_57.slice(1,-1);}return function(_58){return (_58.innerHTML.indexOf(_57)>=0);};},"not":function(_59,_5a){var p=_b(_5a)[0];var _5b={el:1};if(p.tag!="*"){_5b.tag=1;}if(!p.classes.length){_5b.classes=1;}var ntf=_5c(p,_5b);return function(_5d){return (!ntf(_5d));};},"nth-child":function(_5e,_5f){var pi=parseInt;if(_5f=="odd"){return _4a;}else{if(_5f=="even"){return _48;}}if(_5f.indexOf("n")!=-1){var _60=_5f.split("n",2);var _61=_60[0]?((_60[0]=="-")?-1:pi(_60[0])):1;var idx=_60[1]?pi(_60[1]):0;var lb=0,ub=-1;if(_61>0){if(idx<0){idx=(idx%_61)&&(_61+(idx%_61));}else{if(idx>0){if(idx>=_61){lb=idx-idx%_61;}idx=idx%_61;}}}else{if(_61<0){_61*=-1;if(idx>0){ub=idx;idx=idx%_61;}}}if(_61>0){return function(_62){var i=_44(_62);return (i>=lb)&&(ub<0||i<=ub)&&((i%_61)==idx);};}else{_5f=idx;}}var _63=pi(_5f);return function(_64){return (_44(_64)==_63);};}};var _65=(_1.isIE&&(_1.isIE<9||_1.isQuirks))?function(_66){var clc=_66.toLowerCase();if(clc=="class"){_66="className";}return function(_67){return (_9?_67.getAttribute(_66):_67[_66]||_67[clc]);};}:function(_68){return function(_69){return (_69&&_69.getAttribute&&_69.hasAttribute(_68));};};var _5c=function(_6a,_6b){if(!_6a){return _a;}_6b=_6b||{};var ff=null;if(!("el" in _6b)){ff=_1e(ff,_22);}if(!("tag" in _6b)){if(_6a.tag!="*"){ff=_1e(ff,function(_6c){return (_6c&&(_6c.tagName==_6a.getTag()));});}}if(!("classes" in _6b)){_5(_6a.classes,function(_6d,idx,arr){var re=new RegExp("(?:^|\\s)"+_6d+"(?:\\s|$)");ff=_1e(ff,function(_6e){return re.test(_6e.className);});ff.count=idx;});}if(!("pseudos" in _6b)){_5(_6a.pseudos,function(_6f){var pn=_6f.name;if(_4c[pn]){ff=_1e(ff,_4c[pn](pn,_6f.value));}});}if(!("attrs" in _6b)){_5(_6a.attrs,function(_70){var _71;var a=_70.attr;if(_70.type&&_27[_70.type]){_71=_27[_70.type](a,_70.matchFor);}else{if(a.length){_71=_65(a);}}if(_71){ff=_1e(ff,_71);}});}if(!("id" in _6b)){if(_6a.id){ff=_1e(ff,function(_72){return (!!_72&&(_72.id==_6a.id));});}}if(!ff){if(!("default" in _6b)){ff=_a;}}return ff;};var _73=function(_74){return function(_75,ret,bag){while(_75=_75[_3d]){if(_3c&&(!_22(_75))){continue;}if((!bag||_76(_75,bag))&&_74(_75)){ret.push(_75);}break;}return ret;};};var _77=function(_78){return function(_79,ret,bag){var te=_79[_3d];while(te){if(_3f(te)){if(bag&&!_76(te,bag)){break;}if(_78(te)){ret.push(te);}}te=te[_3d];}return ret;};};var _7a=function(_7b){_7b=_7b||_a;return function(_7c,ret,bag){var te,x=0,_7d=_7c.children||_7c.childNodes;while(te=_7d[x++]){if(_3f(te)&&(!bag||_76(te,bag))&&(_7b(te,x))){ret.push(te);}}return ret;};};var _7e=function(_7f,_80){var pn=_7f.parentNode;while(pn){if(pn==_80){break;}pn=pn.parentNode;}return !!pn;};var _81={};var _82=function(_83){var _84=_81[_83.query];if(_84){return _84;}var io=_83.infixOper;var _85=(io?io.oper:"");var _86=_5c(_83,{el:1});var qt=_83.tag;var _87=("*"==qt);var ecs=_6()["getElementsByClassName"];if(!_85){if(_83.id){_86=(!_83.loops&&_87)?_a:_5c(_83,{el:1,id:1});_84=function(_88,arr){var te=_3.byId(_83.id,(_88.ownerDocument||_88));if(!te||!_86(te)){return;}if(9==_88.nodeType){return _21(te,arr);}else{if(_7e(te,_88)){return _21(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_83.classes.length&&!_7){_86=_5c(_83,{el:1,classes:1,id:1});var _89=_83.classes.join(" ");_84=function(_8a,arr,bag){var ret=_21(0,arr),te,x=0;var _8b=_8a.getElementsByClassName(_89);while((te=_8b[x++])){if(_86(te,_8a)&&_76(te,bag)){ret.push(te);}}return ret;};}else{if(!_87&&!_83.loops){_84=function(_8c,arr,bag){var ret=_21(0,arr),te,x=0;var _8d=_8c.getElementsByTagName(_83.getTag());while((te=_8d[x++])){if(_76(te,bag)){ret.push(te);}}return ret;};}else{_86=_5c(_83,{el:1,tag:1,id:1});_84=function(_8e,arr,bag){var ret=_21(0,arr),te,x=0;var _8f=_8e.getElementsByTagName(_83.getTag());while((te=_8f[x++])){if(_86(te,_8e)&&_76(te,bag)){ret.push(te);}}return ret;};}}}}else{var _90={el:1};if(_87){_90.tag=1;}_86=_5c(_83,_90);if("+"==_85){_84=_73(_86);}else{if("~"==_85){_84=_77(_86);}else{if(">"==_85){_84=_7a(_86);}}}}return _81[_83.query]=_84;};var _91=function(_92,_93){var _94=_21(_92),qp,x,te,qpl=_93.length,bag,ret;for(var i=0;i<qpl;i++){ret=[];qp=_93[i];x=_94.length-1;if(x>0){bag={};ret.nozip=true;}var gef=_82(qp);for(var j=0;(te=_94[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_94=ret;}return ret;};var _95={},_96={};var _97=function(_98){var _99=_b(_4(_98));if(_99.length==1){var tef=_82(_99[0]);return function(_9a){var r=tef(_9a,[]);if(r){r.nozip=true;}return r;};}return function(_9b){return _91(_9b,_99);};};var nua=navigator.userAgent;var wk="WebKit/";var _9c=(_1.isWebKit&&(nua.indexOf(wk)>0)&&(parseFloat(nua.split(wk)[1])>528));var _9d=_1.isIE?"commentStrip":"nozip";var qsa="querySelectorAll";var _9e=(!!_6()[qsa]&&(!_1.isSafari||(_1.isSafari>3.1)||_9c));var _9f=/n\+\d|([^ ])?([>~+])([^ =])?/g;var _a0=function(_a1,pre,ch,_a2){return ch?(pre?pre+" ":"")+ch+(_a2?" "+_a2:""):_a1;};var _a3=function(_a4,_a5){_a4=_a4.replace(_9f,_a0);if(_9e){var _a6=_96[_a4];if(_a6&&!_a5){return _a6;}}var _a7=_95[_a4];if(_a7){return _a7;}var qcz=_a4.charAt(0);var _a8=(-1==_a4.indexOf(" "));if((_a4.indexOf("#")>=0)&&(_a8)){_a5=true;}var _a9=(_9e&&(!_a5)&&(_8.indexOf(qcz)==-1)&&(!_1.isIE||(_a4.indexOf(":")==-1))&&(!(_7&&(_a4.indexOf(".")>=0)))&&(_a4.indexOf(":contains")==-1)&&(_a4.indexOf(":checked")==-1)&&(_a4.indexOf("|=")==-1));if(_a9){var tq=(_8.indexOf(_a4.charAt(_a4.length-1))>=0)?(_a4+" *"):_a4;return _96[_a4]=function(_aa){try{if(!((9==_aa.nodeType)||_a8)){throw "";}var r=_aa[qsa](tq);r[_9d]=true;return r;}catch(e){return _a3(_a4,true)(_aa);}};}else{var _ab=_a4.split(/\s*,\s*/);return _95[_a4]=((_ab.length<2)?_97(_a4):function(_ac){var _ad=0,ret=[],tp;while((tp=_ab[_ad++])){ret=ret.concat(_97(tp)(_ac));}return ret;});}};var _ae=0;var _af=_1.isIE?function(_b0){if(_9){return (_b0.getAttribute("_uid")||_b0.setAttribute("_uid",++_ae)||_ae);}else{return _b0.uniqueID;}}:function(_b1){return (_b1._uid||(_b1._uid=++_ae));};var _76=function(_b2,bag){if(!bag){return 1;}var id=_af(_b2);if(!bag[id]){return bag[id]=1;}return 0;};var _b3="_zipIdx";var _b4=function(arr){if(arr&&arr.nozip){return arr;}var ret=[];if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_ae++;if(_1.isIE&&_9){var _b5=_ae+"";arr[0].setAttribute(_b3,_b5);for(var x=1,te;te=arr[x];x++){if(arr[x].getAttribute(_b3)!=_b5){ret.push(te);}te.setAttribute(_b3,_b5);}}else{if(_1.isIE&&arr.commentStrip){try{for(var x=1,te;te=arr[x];x++){if(_22(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_b3]=_ae;}for(var x=1,te;te=arr[x];x++){if(arr[x][_b3]!=_ae){ret.push(te);}te[_b3]=_ae;}}}return ret;};var _b6=function(_b7,_b8){_b8=_b8||_6();var od=_b8.ownerDocument||_b8.documentElement;_9=(_b8.contentType&&_b8.contentType=="application/xml")||(_1.isOpera&&(_b8.doctype||od.toString()=="[object XMLDocument]"))||(!!od)&&(_1.isIE?od.xml:(_b8.xmlVersion||od.xmlVersion));var r=_a3(_b7)(_b8);if(r&&r.nozip){return r;}return _b4(r);};_b6.filter=function(_b9,_ba,_bb){var _bc=[],_bd=_b(_ba),_be=(_bd.length==1&&!/[^\w#\.]/.test(_ba))?_5c(_bd[0]):function(_bf){return _1.query(_ba,_bb).indexOf(_bf)!=-1;};for(var x=0,te;te=_b9[x];x++){if(_be(te)){_bc.push(te);}}return _bc;};return _b6;}); \ No newline at end of file
+define("dojo/selector/acme",["../dom","../sniff","../_base/array","../_base/lang","../_base/window"],function(_1,_2,_3,_4,_5){var _6=_4.trim;var _7=_3.forEach;var _8=function(){return _5.doc;};var _9=(_8().compatMode)=="BackCompat";var _a=">~+";var _b=false;var _c=function(){return true;};var _d=function(_e){if(_a.indexOf(_e.slice(-1))>=0){_e+=" * ";}else{_e+=" ";}var ts=function(s,e){return _6(_e.slice(s,e));};var _f=[];var _10=-1,_11=-1,_12=-1,_13=-1,_14=-1,_15=-1,_16=-1,_17,lc="",cc="",_18;var x=0,ql=_e.length,_19=null,_1a=null;var _1b=function(){if(_16>=0){var tv=(_16==x)?null:ts(_16,x);_19[(_a.indexOf(tv)<0)?"tag":"oper"]=tv;_16=-1;}};var _1c=function(){if(_15>=0){_19.id=ts(_15,x).replace(/\\/g,"");_15=-1;}};var _1d=function(){if(_14>=0){_19.classes.push(ts(_14+1,x).replace(/\\/g,""));_14=-1;}};var _1e=function(){_1c();_1b();_1d();};var _1f=function(){_1e();if(_13>=0){_19.pseudos.push({name:ts(_13+1,x)});}_19.loops=(_19.pseudos.length||_19.attrs.length||_19.classes.length);_19.oquery=_19.query=ts(_18,x);_19.otag=_19.tag=(_19["oper"])?null:(_19.tag||"*");if(_19.tag){_19.tag=_19.tag.toUpperCase();}if(_f.length&&(_f[_f.length-1].oper)){_19.infixOper=_f.pop();_19.query=_19.infixOper.query+" "+_19.query;}_f.push(_19);_19=null;};for(;lc=cc,cc=_e.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_19){_18=x;_19={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return _b?this.otag:this.tag;}};_16=x;}if(_17){if(cc==_17){_17=null;}continue;}else{if(cc=="'"||cc=="\""){_17=cc;continue;}}if(_10>=0){if(cc=="]"){if(!_1a.attr){_1a.attr=ts(_10+1,x);}else{_1a.matchFor=ts((_12||_10+1),x);}var cmf=_1a.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_1a.matchFor=cmf.slice(1,-1);}}if(_1a.matchFor){_1a.matchFor=_1a.matchFor.replace(/\\/g,"");}_19.attrs.push(_1a);_1a=null;_10=_12=-1;}else{if(cc=="="){var _20=("|~^$*".indexOf(lc)>=0)?lc:"";_1a.type=_20+cc;_1a.attr=ts(_10+1,x-_20.length);_12=x+1;}}}else{if(_11>=0){if(cc==")"){if(_13>=0){_1a.value=ts(_11+1,x);}_13=_11=-1;}}else{if(cc=="#"){_1e();_15=x+1;}else{if(cc=="."){_1e();_14=x;}else{if(cc==":"){_1e();_13=x;}else{if(cc=="["){_1e();_10=x;_1a={};}else{if(cc=="("){if(_13>=0){_1a={name:ts(_13+1,x),value:null};_19.pseudos.push(_1a);}_11=x;}else{if((cc==" ")&&(lc!=cc)){_1f();}}}}}}}}}return _f;};var _21=function(_22,_23){if(!_22){return _23;}if(!_23){return _22;}return function(){return _22.apply(window,arguments)&&_23.apply(window,arguments);};};var _24=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _25=function(n){return (1==n.nodeType);};var _26="";var _27=function(_28,_29){if(!_28){return _26;}if(_29=="class"){return _28.className||_26;}if(_29=="for"){return _28.htmlFor||_26;}if(_29=="style"){return _28.style.cssText||_26;}return (_b?_28.getAttribute(_29):_28.getAttribute(_29,2))||_26;};var _2a={"*=":function(_2b,_2c){return function(_2d){return (_27(_2d,_2b).indexOf(_2c)>=0);};},"^=":function(_2e,_2f){return function(_30){return (_27(_30,_2e).indexOf(_2f)==0);};},"$=":function(_31,_32){return function(_33){var ea=" "+_27(_33,_31);var _34=ea.lastIndexOf(_32);return _34>-1&&(_34==(ea.length-_32.length));};},"~=":function(_35,_36){var _37=" "+_36+" ";return function(_38){var ea=" "+_27(_38,_35)+" ";return (ea.indexOf(_37)>=0);};},"|=":function(_39,_3a){var _3b=_3a+"-";return function(_3c){var ea=_27(_3c,_39);return ((ea==_3a)||(ea.indexOf(_3b)==0));};},"=":function(_3d,_3e){return function(_3f){return (_27(_3f,_3d)==_3e);};}};var _40=(typeof _8().firstChild.nextElementSibling=="undefined");var _41=!_40?"nextElementSibling":"nextSibling";var _42=!_40?"previousElementSibling":"previousSibling";var _43=(_40?_25:_c);var _44=function(_45){while(_45=_45[_42]){if(_43(_45)){return false;}}return true;};var _46=function(_47){while(_47=_47[_41]){if(_43(_47)){return false;}}return true;};var _48=function(_49){var _4a=_49.parentNode;_4a=_4a.nodeType!=7?_4a:_4a.nextSibling;var i=0,_4b=_4a.children||_4a.childNodes,ci=(_49["_i"]||_49.getAttribute("_i")||-1),cl=(_4a["_l"]||(typeof _4a.getAttribute!=="undefined"?_4a.getAttribute("_l"):-1));if(!_4b){return -1;}var l=_4b.length;if(cl==l&&ci>=0&&cl>=0){return ci;}if(_2("ie")&&typeof _4a.setAttribute!=="undefined"){_4a.setAttribute("_l",l);}else{_4a["_l"]=l;}ci=-1;for(var te=_4a["firstElementChild"]||_4a["firstChild"];te;te=te[_41]){if(_43(te)){if(_2("ie")){te.setAttribute("_i",++i);}else{te["_i"]=++i;}if(_49===te){ci=i;}}}return ci;};var _4c=function(_4d){return !((_48(_4d))%2);};var _4e=function(_4f){return ((_48(_4f))%2);};var _50={"checked":function(_51,_52){return function(_53){return !!("checked" in _53?_53.checked:_53.selected);};},"disabled":function(_54,_55){return function(_56){return _56.disabled;};},"enabled":function(_57,_58){return function(_59){return !_59.disabled;};},"first-child":function(){return _44;},"last-child":function(){return _46;},"only-child":function(_5a,_5b){return function(_5c){return _44(_5c)&&_46(_5c);};},"empty":function(_5d,_5e){return function(_5f){var cn=_5f.childNodes;var cnl=_5f.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(_60,_61){var cz=_61.charAt(0);if(cz=="\""||cz=="'"){_61=_61.slice(1,-1);}return function(_62){return (_62.innerHTML.indexOf(_61)>=0);};},"not":function(_63,_64){var p=_d(_64)[0];var _65={el:1};if(p.tag!="*"){_65.tag=1;}if(!p.classes.length){_65.classes=1;}var ntf=_66(p,_65);return function(_67){return (!ntf(_67));};},"nth-child":function(_68,_69){var pi=parseInt;if(_69=="odd"){return _4e;}else{if(_69=="even"){return _4c;}}if(_69.indexOf("n")!=-1){var _6a=_69.split("n",2);var _6b=_6a[0]?((_6a[0]=="-")?-1:pi(_6a[0])):1;var idx=_6a[1]?pi(_6a[1]):0;var lb=0,ub=-1;if(_6b>0){if(idx<0){idx=(idx%_6b)&&(_6b+(idx%_6b));}else{if(idx>0){if(idx>=_6b){lb=idx-idx%_6b;}idx=idx%_6b;}}}else{if(_6b<0){_6b*=-1;if(idx>0){ub=idx;idx=idx%_6b;}}}if(_6b>0){return function(_6c){var i=_48(_6c);return (i>=lb)&&(ub<0||i<=ub)&&((i%_6b)==idx);};}else{_69=idx;}}var _6d=pi(_69);return function(_6e){return (_48(_6e)==_6d);};}};var _6f=(_2("ie")<9||_2("ie")==9&&_2("quirks"))?function(_70){var clc=_70.toLowerCase();if(clc=="class"){_70="className";}return function(_71){return (_b?_71.getAttribute(_70):_71[_70]||_71[clc]);};}:function(_72){return function(_73){return (_73&&_73.getAttribute&&_73.hasAttribute(_72));};};var _66=function(_74,_75){if(!_74){return _c;}_75=_75||{};var ff=null;if(!("el" in _75)){ff=_21(ff,_25);}if(!("tag" in _75)){if(_74.tag!="*"){ff=_21(ff,function(_76){return (_76&&((_b?_76.tagName:_76.tagName.toUpperCase())==_74.getTag()));});}}if(!("classes" in _75)){_7(_74.classes,function(_77,idx,arr){var re=new RegExp("(?:^|\\s)"+_77+"(?:\\s|$)");ff=_21(ff,function(_78){return re.test(_78.className);});ff.count=idx;});}if(!("pseudos" in _75)){_7(_74.pseudos,function(_79){var pn=_79.name;if(_50[pn]){ff=_21(ff,_50[pn](pn,_79.value));}});}if(!("attrs" in _75)){_7(_74.attrs,function(_7a){var _7b;var a=_7a.attr;if(_7a.type&&_2a[_7a.type]){_7b=_2a[_7a.type](a,_7a.matchFor);}else{if(a.length){_7b=_6f(a);}}if(_7b){ff=_21(ff,_7b);}});}if(!("id" in _75)){if(_74.id){ff=_21(ff,function(_7c){return (!!_7c&&(_7c.id==_74.id));});}}if(!ff){if(!("default" in _75)){ff=_c;}}return ff;};var _7d=function(_7e){return function(_7f,ret,bag){while(_7f=_7f[_41]){if(_40&&(!_25(_7f))){continue;}if((!bag||_80(_7f,bag))&&_7e(_7f)){ret.push(_7f);}break;}return ret;};};var _81=function(_82){return function(_83,ret,bag){var te=_83[_41];while(te){if(_43(te)){if(bag&&!_80(te,bag)){break;}if(_82(te)){ret.push(te);}}te=te[_41];}return ret;};};var _84=function(_85){_85=_85||_c;return function(_86,ret,bag){var te,x=0,_87=_86.children||_86.childNodes;while(te=_87[x++]){if(_43(te)&&(!bag||_80(te,bag))&&(_85(te,x))){ret.push(te);}}return ret;};};var _88=function(_89,_8a){var pn=_89.parentNode;while(pn){if(pn==_8a){break;}pn=pn.parentNode;}return !!pn;};var _8b={};var _8c=function(_8d){var _8e=_8b[_8d.query];if(_8e){return _8e;}var io=_8d.infixOper;var _8f=(io?io.oper:"");var _90=_66(_8d,{el:1});var qt=_8d.tag;var _91=("*"==qt);var ecs=_8()["getElementsByClassName"];if(!_8f){if(_8d.id){_90=(!_8d.loops&&_91)?_c:_66(_8d,{el:1,id:1});_8e=function(_92,arr){var te=_1.byId(_8d.id,(_92.ownerDocument||_92));if(!te||!_90(te)){return;}if(9==_92.nodeType){return _24(te,arr);}else{if(_88(te,_92)){return _24(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_8d.classes.length&&!_9){_90=_66(_8d,{el:1,classes:1,id:1});var _93=_8d.classes.join(" ");_8e=function(_94,arr,bag){var ret=_24(0,arr),te,x=0;var _95=_94.getElementsByClassName(_93);while((te=_95[x++])){if(_90(te,_94)&&_80(te,bag)){ret.push(te);}}return ret;};}else{if(!_91&&!_8d.loops){_8e=function(_96,arr,bag){var ret=_24(0,arr),te,x=0;var tag=_8d.getTag(),_97=tag?_96.getElementsByTagName(tag):[];while((te=_97[x++])){if(_80(te,bag)){ret.push(te);}}return ret;};}else{_90=_66(_8d,{el:1,tag:1,id:1});_8e=function(_98,arr,bag){var ret=_24(0,arr),te,x=0;var tag=_8d.getTag(),_99=tag?_98.getElementsByTagName(tag):[];while((te=_99[x++])){if(_90(te,_98)&&_80(te,bag)){ret.push(te);}}return ret;};}}}}else{var _9a={el:1};if(_91){_9a.tag=1;}_90=_66(_8d,_9a);if("+"==_8f){_8e=_7d(_90);}else{if("~"==_8f){_8e=_81(_90);}else{if(">"==_8f){_8e=_84(_90);}}}}return _8b[_8d.query]=_8e;};var _9b=function(_9c,_9d){var _9e=_24(_9c),qp,x,te,qpl=_9d.length,bag,ret;for(var i=0;i<qpl;i++){ret=[];qp=_9d[i];x=_9e.length-1;if(x>0){bag={};ret.nozip=true;}var gef=_8c(qp);for(var j=0;(te=_9e[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_9e=ret;}return ret;};var _9f={},_a0={};var _a1=function(_a2){var _a3=_d(_6(_a2));if(_a3.length==1){var tef=_8c(_a3[0]);return function(_a4){var r=tef(_a4,[]);if(r){r.nozip=true;}return r;};}return function(_a5){return _9b(_a5,_a3);};};var _a6=_2("ie")?"commentStrip":"nozip";var qsa="querySelectorAll";var _a7=!!_8()[qsa];var _a8=/\\[>~+]|n\+\d|([^ \\])?([>~+])([^ =])?/g;var _a9=function(_aa,pre,ch,_ab){return ch?(pre?pre+" ":"")+ch+(_ab?" "+_ab:""):_aa;};var _ac=/([^[]*)([^\]]*])?/g;var _ad=function(_ae,_af,att){return _af.replace(_a8,_a9)+(att||"");};var _b0=function(_b1,_b2){_b1=_b1.replace(_ac,_ad);if(_a7){var _b3=_a0[_b1];if(_b3&&!_b2){return _b3;}}var _b4=_9f[_b1];if(_b4){return _b4;}var qcz=_b1.charAt(0);var _b5=(-1==_b1.indexOf(" "));if((_b1.indexOf("#")>=0)&&(_b5)){_b2=true;}var _b6=(_a7&&(!_b2)&&(_a.indexOf(qcz)==-1)&&(!_2("ie")||(_b1.indexOf(":")==-1))&&(!(_9&&(_b1.indexOf(".")>=0)))&&(_b1.indexOf(":contains")==-1)&&(_b1.indexOf(":checked")==-1)&&(_b1.indexOf("|=")==-1));if(_b6){var tq=(_a.indexOf(_b1.charAt(_b1.length-1))>=0)?(_b1+" *"):_b1;return _a0[_b1]=function(_b7){try{if(!((9==_b7.nodeType)||_b5)){throw "";}var r=_b7[qsa](tq);r[_a6]=true;return r;}catch(e){return _b0(_b1,true)(_b7);}};}else{var _b8=_b1.match(/([^\s,](?:"(?:\\.|[^"])+"|'(?:\\.|[^'])+'|[^,])*)/g);return _9f[_b1]=((_b8.length<2)?_a1(_b1):function(_b9){var _ba=0,ret=[],tp;while((tp=_b8[_ba++])){ret=ret.concat(_a1(tp)(_b9));}return ret;});}};var _bb=0;var _bc=_2("ie")?function(_bd){if(_b){return (_bd.getAttribute("_uid")||_bd.setAttribute("_uid",++_bb)||_bb);}else{return _bd.uniqueID;}}:function(_be){return (_be._uid||(_be._uid=++_bb));};var _80=function(_bf,bag){if(!bag){return 1;}var id=_bc(_bf);if(!bag[id]){return bag[id]=1;}return 0;};var _c0="_zipIdx";var _c1=function(arr){if(arr&&arr.nozip){return arr;}var ret=[];if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_bb++;var x,te;if(_2("ie")&&_b){var _c2=_bb+"";arr[0].setAttribute(_c0,_c2);for(x=1;te=arr[x];x++){if(arr[x].getAttribute(_c0)!=_c2){ret.push(te);}te.setAttribute(_c0,_c2);}}else{if(_2("ie")&&arr.commentStrip){try{for(x=1;te=arr[x];x++){if(_25(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_c0]=_bb;}for(x=1;te=arr[x];x++){if(arr[x][_c0]!=_bb){ret.push(te);}te[_c0]=_bb;}}}return ret;};var _c3=function(_c4,_c5){_c5=_c5||_8();var od=_c5.ownerDocument||_c5;_b=(od.createElement("div").tagName==="div");var r=_b0(_c4)(_c5);if(r&&r.nozip){return r;}return _c1(r);};_c3.filter=function(_c6,_c7,_c8){var _c9=[],_ca=_d(_c7),_cb=(_ca.length==1&&!/[^\w#\.]/.test(_c7))?_66(_ca[0]):function(_cc){return _3.indexOf(_c3(_c7,_1.byId(_c8)),_cc)!=-1;};for(var x=0,te;te=_c6[x];x++){if(_cb(te)){_c9.push(te);}}return _c9;};return _c3;}); \ No newline at end of file
diff --git a/lib/dojo/selector/lite.js b/lib/dojo/selector/lite.js
index c20fe724b..881c64ed2 100644
--- a/lib/dojo/selector/lite.js
+++ b/lib/dojo/selector/lite.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/selector/lite",["../has","../_base/kernel"],function(_1,_2){"use strict";var _3=document.createElement("div");var _4=_3.matchesSelector||_3.webkitMatchesSelector||_3.mozMatchesSelector||_3.msMatchesSelector||_3.oMatchesSelector;var _5=_3.querySelectorAll;_1.add("dom-matches-selector",!!_4);_1.add("dom-qsa",!!_5);var _6=function(_7,_8){if(_9&&_7.indexOf(",")>-1){return _9(_7,_8);}var _a=(_5?/^([\w]*)#([\w\-]+$)|^(\.)([\w\-\*]+$)|^(\w+$)/:/^([\w]*)#([\w\-]+)(?:\s+(.*))?$|(?:^|(>|.+\s+))([\w\-\*]+)(\S*$)/).exec(_7);_8=_8||document;if(_a){if(_a[2]){var _b=_2.byId?_2.byId(_a[2]):document.getElementById(_a[2]);if(!_b||(_a[1]&&_a[1]!=_b.tagName.toLowerCase())){return [];}if(_8!=document){var _c=_b;while(_c!=_8){_c=_c.parentNode;if(!_c){return [];}}}return _a[3]?_6(_a[3],_b):[_b];}if(_a[3]&&_8.getElementsByClassName){return _8.getElementsByClassName(_a[4]);}var _b;if(_a[5]){_b=_8.getElementsByTagName(_a[5]);if(_a[4]||_a[6]){_7=(_a[4]||"")+_a[6];}else{return _b;}}}if(_5){if(_8.nodeType===1&&_8.nodeName.toLowerCase()!=="object"){return _d(_8,_7,_8.querySelectorAll);}else{return _8.querySelectorAll(_7);}}else{if(!_b){_b=_8.getElementsByTagName("*");}}var _e=[];for(var i=0,l=_b.length;i<l;i++){var _f=_b[i];if(_f.nodeType==1&&_10(_f,_7,_8)){_e.push(_f);}}return _e;};var _d=function(_11,_12,_13){var _14=_11,old=_11.getAttribute("id"),nid=old||"__dojo__",_15=_11.parentNode,_16=/^\s*[+~]/.test(_12);if(_16&&!_15){return [];}if(!old){_11.setAttribute("id",nid);}else{nid=nid.replace(/'/g,"\\$&");}if(_16&&_15){_11=_11.parentNode;}try{return _13.call(_11,"[id='"+nid+"'] "+_12);}finally{if(!old){_14.removeAttribute("id");}}};if(!_1("dom-matches-selector")){var _10=(function(){var _17=_3.tagName=="div"?"toLowerCase":"toUpperCase";function tag(_18){_18=_18[_17]();return function(_19){return _19.tagName==_18;};};function _1a(_1b){var _1c=" "+_1b+" ";return function(_1d){return _1d.className.indexOf(_1b)>-1&&(" "+_1d.className+" ").indexOf(_1c)>-1;};};var _1e={"^=":function(_1f,_20){return _1f.indexOf(_20)==0;},"*=":function(_21,_22){return _21.indexOf(_22)>-1;},"$=":function(_23,_24){return _23.substring(_23.length-_24.length,_23.length)==_24;},"~=":function(_25,_26){return (" "+_25+" ").indexOf(" "+_26+" ")>-1;},"|=":function(_27,_28){return (_27+"-").indexOf(_28+"-")==0;},"=":function(_29,_2a){return _29==_2a;},"":function(_2b,_2c){return true;}};function _2d(_2e,_2f,_30){if(_2f.match(/['"]/)){_2f=eval(_2f);}var _31=_1e[_30||""];return function(_32){var _33=_32.getAttribute(_2e);return _33&&_31(_33,_2f);};};function _34(_35){return function(_36,_37){while((_36=_36.parentNode)!=_37){if(_35(_36,_37)){return true;}}};};function _38(_39){return function(_3a,_3b){_3a=_3a.parentNode;return _39?_3a!=_3b&&_39(_3a,_3b):_3a==_3b;};};var _3c={};function and(_3d,_3e){return _3d?function(_3f,_40){return _3e(_3f)&&_3d(_3f,_40);}:_3e;};return function(_41,_42,_43){var _44=_3c[_42];if(!_44){if(_42.replace(/(?:\s*([> ])\s*)|(\.)?([\w-]+)|\[([\w-]+)\s*(.?=)?\s*([^\]]*)\]/g,function(t,_45,_46,_47,_48,_49,_4a){if(_47){if(_46=="."){_44=and(_44,_1a(_47));}else{_44=and(_44,tag(_47));}}else{if(_45){_44=(_45==" "?_34:_38)(_44);}else{if(_48){_44=and(_44,_2d(_48,_4a,_49));}}}return "";})){throw new Error("Syntax error in query");}if(!_44){return true;}_3c[_42]=_44;}return _44(_41,_43);};})();}if(!_1("dom-qsa")){var _9=function(_4b,_4c){_4b=_4b.split(/\s*,\s*/);var _4d=[];for(var i=0;i<_4b.length;i++){var _4e=_6(_4b[i],_4c);for(var j=0,l=_4e.length;j<l;j++){var _4f=_4e[j];_4d[_4f.sourceIndex]=_4f;}}var _50=[];for(i in _4d){_50.push(_4d[i]);}return _50;};}_6.match=_4?function(_51,_52,_53){if(_53){return _d(_53,_52,function(_54){return _4.call(_51,_54);});}return _4.call(_51,_52);}:_10;return _6;}); \ No newline at end of file
+define("dojo/selector/lite",["../has","../_base/kernel"],function(_1,_2){"use strict";var _3=document.createElement("div");var _4=_3.matchesSelector||_3.webkitMatchesSelector||_3.mozMatchesSelector||_3.msMatchesSelector||_3.oMatchesSelector;var _5=_3.querySelectorAll;var _6=/([^\s,](?:"(?:\\.|[^"])+"|'(?:\\.|[^'])+'|[^,])*)/g;_1.add("dom-matches-selector",!!_4);_1.add("dom-qsa",!!_5);var _7=function(_8,_9){if(_a&&_8.indexOf(",")>-1){return _a(_8,_9);}var _b=_9?_9.ownerDocument||_9:_2.doc||document,_c=(_5?/^([\w]*)#([\w\-]+$)|^(\.)([\w\-\*]+$)|^(\w+$)/:/^([\w]*)#([\w\-]+)(?:\s+(.*))?$|(?:^|(>|.+\s+))([\w\-\*]+)(\S*$)/).exec(_8);_9=_9||_b;if(_c){if(_c[2]){var _d=_2.byId?_2.byId(_c[2]):_b.getElementById(_c[2]);if(!_d||(_c[1]&&_c[1]!=_d.tagName.toLowerCase())){return [];}if(_9!=_b){var _e=_d;while(_e!=_9){_e=_e.parentNode;if(!_e){return [];}}}return _c[3]?_7(_c[3],_d):[_d];}if(_c[3]&&_9.getElementsByClassName){return _9.getElementsByClassName(_c[4]);}var _d;if(_c[5]){_d=_9.getElementsByTagName(_c[5]);if(_c[4]||_c[6]){_8=(_c[4]||"")+_c[6];}else{return _d;}}}if(_5){if(_9.nodeType===1&&_9.nodeName.toLowerCase()!=="object"){return _f(_9,_8,_9.querySelectorAll);}else{return _9.querySelectorAll(_8);}}else{if(!_d){_d=_9.getElementsByTagName("*");}}var _10=[];for(var i=0,l=_d.length;i<l;i++){var _11=_d[i];if(_11.nodeType==1&&_12(_11,_8,_9)){_10.push(_11);}}return _10;};var _f=function(_13,_14,_15){var _16=_13,old=_13.getAttribute("id"),nid=old||"__dojo__",_17=_13.parentNode,_18=/^\s*[+~]/.test(_14);if(_18&&!_17){return [];}if(!old){_13.setAttribute("id",nid);}else{nid=nid.replace(/'/g,"\\$&");}if(_18&&_17){_13=_13.parentNode;}var _19=_14.match(_6);for(var i=0;i<_19.length;i++){_19[i]="[id='"+nid+"'] "+_19[i];}_14=_19.join(",");try{return _15.call(_13,_14);}finally{if(!old){_16.removeAttribute("id");}}};if(!_1("dom-matches-selector")){var _12=(function(){var _1a=_3.tagName=="div"?"toLowerCase":"toUpperCase";var _1b={"":function(_1c){_1c=_1c[_1a]();return function(_1d){return _1d.tagName==_1c;};},".":function(_1e){var _1f=" "+_1e+" ";return function(_20){return _20.className.indexOf(_1e)>-1&&(" "+_20.className+" ").indexOf(_1f)>-1;};},"#":function(id){return function(_21){return _21.id==id;};}};var _22={"^=":function(_23,_24){return _23.indexOf(_24)==0;},"*=":function(_25,_26){return _25.indexOf(_26)>-1;},"$=":function(_27,_28){return _27.substring(_27.length-_28.length,_27.length)==_28;},"~=":function(_29,_2a){return (" "+_29+" ").indexOf(" "+_2a+" ")>-1;},"|=":function(_2b,_2c){return (_2b+"-").indexOf(_2c+"-")==0;},"=":function(_2d,_2e){return _2d==_2e;},"":function(_2f,_30){return true;}};function _31(_32,_33,_34){var _35=_33.charAt(0);if(_35=="\""||_35=="'"){_33=_33.slice(1,-1);}_33=_33.replace(/\\/g,"");var _36=_22[_34||""];return function(_37){var _38=_37.getAttribute(_32);return _38&&_36(_38,_33);};};function _39(_3a){return function(_3b,_3c){while((_3b=_3b.parentNode)!=_3c){if(_3a(_3b,_3c)){return true;}}};};function _3d(_3e){return function(_3f,_40){_3f=_3f.parentNode;return _3e?_3f!=_40&&_3e(_3f,_40):_3f==_40;};};var _41={};function and(_42,_43){return _42?function(_44,_45){return _43(_44)&&_42(_44,_45);}:_43;};return function(_46,_47,_48){var _49=_41[_47];if(!_49){if(_47.replace(/(?:\s*([> ])\s*)|(#|\.)?((?:\\.|[\w-])+)|\[\s*([\w-]+)\s*(.?=)?\s*("(?:\\.|[^"])+"|'(?:\\.|[^'])+'|(?:\\.|[^\]])*)\s*\]/g,function(t,_4a,_4b,_4c,_4d,_4e,_4f){if(_4c){_49=and(_49,_1b[_4b||""](_4c.replace(/\\/g,"")));}else{if(_4a){_49=(_4a==" "?_39:_3d)(_49);}else{if(_4d){_49=and(_49,_31(_4d,_4f,_4e));}}}return "";})){throw new Error("Syntax error in query");}if(!_49){return true;}_41[_47]=_49;}return _49(_46,_48);};})();}if(!_1("dom-qsa")){var _a=function(_50,_51){var _52=_50.match(_6);var _53=[];for(var i=0;i<_52.length;i++){_50=new String(_52[i].replace(/\s*$/,""));_50.indexOf=escape;var _54=_7(_50,_51);for(var j=0,l=_54.length;j<l;j++){var _55=_54[j];_53[_55.sourceIndex]=_55;}}var _56=[];for(i in _53){_56.push(_53[i]);}return _56;};}_7.match=_4?function(_57,_58,_59){if(_59&&_59.nodeType!=9){return _f(_59,_58,function(_5a){return _4.call(_57,_5a);});}return _4.call(_57,_58);}:_12;return _7;}); \ No newline at end of file
diff --git a/lib/dojo/sniff.js b/lib/dojo/sniff.js
new file mode 100644
index 000000000..c9986546f
--- /dev/null
+++ b/lib/dojo/sniff.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/sniff",["./has"],function(_1){if(1){var n=navigator,_2=n.userAgent,_3=n.appVersion,tv=parseFloat(_3);_1.add("air",_2.indexOf("AdobeAIR")>=0),_1.add("khtml",_3.indexOf("Konqueror")>=0?tv:undefined);_1.add("webkit",parseFloat(_2.split("WebKit/")[1])||undefined);_1.add("chrome",parseFloat(_2.split("Chrome/")[1])||undefined);_1.add("safari",_3.indexOf("Safari")>=0&&!_1("chrome")?parseFloat(_3.split("Version/")[1]):undefined);_1.add("mac",_3.indexOf("Macintosh")>=0);_1.add("quirks",document.compatMode=="BackCompat");_1.add("ios",/iPhone|iPod|iPad/.test(_2));_1.add("android",parseFloat(_2.split("Android ")[1])||undefined);if(!_1("webkit")){if(_2.indexOf("Opera")>=0){_1.add("opera",tv>=9.8?parseFloat(_2.split("Version/")[1])||tv:tv);}if(_2.indexOf("Gecko")>=0&&!_1("khtml")&&!_1("webkit")){_1.add("mozilla",tv);}if(_1("mozilla")){_1.add("ff",parseFloat(_2.split("Firefox/")[1]||_2.split("Minefield/")[1])||undefined);}if(document.all&&!_1("opera")){var _4=parseFloat(_3.split("MSIE ")[1])||undefined;var _5=document.documentMode;if(_5&&_5!=5&&Math.floor(_4)!=_5){_4=_5;}_1.add("ie",_4);}_1.add("wii",typeof opera!="undefined"&&opera.wiiremote);}}return _1;}); \ No newline at end of file
diff --git a/lib/dojo/store/Cache.js b/lib/dojo/store/Cache.js
index 3ca7e050e..c01876ba3 100644
--- a/lib/dojo/store/Cache.js
+++ b/lib/dojo/store/Cache.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/store/Cache",["../_base/lang","../_base/Deferred"],function(_1,_2){var _3=_1.getObject("dojo.store",true);_3.Cache=function(_4,_5,_6){_6=_6||{};return _1.delegate(_4,{query:function(_7,_8){var _9=_4.query(_7,_8);_9.forEach(function(_a){if(!_6.isLoaded||_6.isLoaded(_a)){_5.put(_a);}});return _9;},queryEngine:_4.queryEngine||_5.queryEngine,get:function(id,_b){return _2.when(_5.get(id),function(_c){return _c||_2.when(_4.get(id,_b),function(_d){if(_d){_5.put(_d,{id:id});}return _d;});});},add:function(_e,_f){return _2.when(_4.add(_e,_f),function(_10){return _5.add(typeof _10=="object"?_10:_e,_f);});},put:function(_11,_12){_5.remove((_12&&_12.id)||this.getIdentity(_11));return _2.when(_4.put(_11,_12),function(_13){return _5.put(typeof _13=="object"?_13:_11,_12);});},remove:function(id,_14){return _2.when(_4.remove(id,_14),function(_15){return _5.remove(id,_14);});},evict:function(id){return _5.remove(id);}});};return _3.Cache;}); \ No newline at end of file
+define("dojo/store/Cache",["../_base/lang","../_base/Deferred"],function(_1,_2){var _3=function(_4,_5,_6){_6=_6||{};return _1.delegate(_4,{query:function(_7,_8){var _9=_4.query(_7,_8);_9.forEach(function(_a){if(!_6.isLoaded||_6.isLoaded(_a)){_5.put(_a);}});return _9;},queryEngine:_4.queryEngine||_5.queryEngine,get:function(id,_b){return _2.when(_5.get(id),function(_c){return _c||_2.when(_4.get(id,_b),function(_d){if(_d){_5.put(_d,{id:id});}return _d;});});},add:function(_e,_f){return _2.when(_4.add(_e,_f),function(_10){_5.add(typeof _10=="object"?_10:_e,_f);return _10;});},put:function(_11,_12){_5.remove((_12&&_12.id)||this.getIdentity(_11));return _2.when(_4.put(_11,_12),function(_13){_5.put(typeof _13=="object"?_13:_11,_12);return _13;});},remove:function(id,_14){return _2.when(_4.remove(id,_14),function(_15){return _5.remove(id,_14);});},evict:function(id){return _5.remove(id);}});};_1.setObject("dojo.store.Cache",_3);return _3;}); \ No newline at end of file
diff --git a/lib/dojo/store/DataStore.js b/lib/dojo/store/DataStore.js
index e65eb0e60..4014c604d 100644
--- a/lib/dojo/store/DataStore.js
+++ b/lib/dojo/store/DataStore.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/store/DataStore",["../_base/lang","../_base/declare","../_base/Deferred","../_base/array","./util/QueryResults"],function(_1,_2,_3,_4,_5){return _2("dojo.store.DataStore",null,{target:"",constructor:function(_6){_1.mixin(this,_6);if(!"idProperty" in _6){var _7;try{_7=this.store.getIdentityAttributes();}catch(e){}this.idProperty=(!_7||!idAttributes[0])||this.idProperty;}var _8=this.store.getFeatures();if(!_8["dojo.data.api.Read"]){this.get=null;}if(!_8["dojo.data.api.Identity"]){this.getIdentity=null;}if(!_8["dojo.data.api.Write"]){this.put=this.add=null;}},idProperty:"id",store:null,_objectConverter:function(_9){var _a=this.store;var _b=this.idProperty;return function(_c){var _d={};var _e=_a.getAttributes(_c);for(var i=0;i<_e.length;i++){_d[_e[i]]=_a.getValue(_c,_e[i]);}if(!(_b in _d)){_d[_b]=_a.getIdentity(_c);}return _9(_d);};},get:function(id,_f){var _10,_11;var _12=new _3();this.store.fetchItemByIdentity({identity:id,onItem:this._objectConverter(function(_13){_12.resolve(_10=_13);}),onError:function(_14){_12.reject(_11=_14);}});if(_10){return _10;}if(_11){throw _11;}return _12.promise;},put:function(_15,_16){var id=_16&&typeof _16.id!="undefined"||this.getIdentity(_15);var _17=this.store;var _18=this.idProperty;if(typeof id=="undefined"){_17.newItem(_15);}else{_17.fetchItemByIdentity({identity:id,onItem:function(_19){if(_19){for(var i in _15){if(i!=_18&&_17.getValue(_19,i)!=_15[i]){_17.setValue(_19,i,_15[i]);}}}else{_17.newItem(_15);}}});}},remove:function(id){var _1a=this.store;this.store.fetchItemByIdentity({identity:id,onItem:function(_1b){_1a.deleteItem(_1b);}});},query:function(_1c,_1d){var _1e;var _1f=new _3(function(){_1e.abort&&_1e.abort();});_1f.total=new _3();var _20=this._objectConverter(function(_21){return _21;});_1e=this.store.fetch(_1.mixin({query:_1c,onBegin:function(_22){_1f.total.resolve(_22);},onComplete:function(_23){_1f.resolve(_4.map(_23,_20));},onError:function(_24){_1f.reject(_24);}},_1d));return _5(_1f);},getIdentity:function(_25){return _25[this.idProperty];}});}); \ No newline at end of file
+define("dojo/store/DataStore",["../_base/lang","../_base/declare","../_base/Deferred","../_base/array","./util/QueryResults","./util/SimpleQueryEngine"],function(_1,_2,_3,_4,_5,_6){var _7=null;return _2("dojo.store.DataStore",_7,{target:"",constructor:function(_8){_1.mixin(this,_8);if(!"idProperty" in _8){var _9;try{_9=this.store.getIdentityAttributes();}catch(e){}this.idProperty=(!_9||!idAttributes[0])||this.idProperty;}var _a=this.store.getFeatures();if(!_a["dojo.data.api.Read"]){this.get=null;}if(!_a["dojo.data.api.Identity"]){this.getIdentity=null;}if(!_a["dojo.data.api.Write"]){this.put=this.add=null;}},idProperty:"id",store:null,queryEngine:_6,_objectConverter:function(_b){var _c=this.store;var _d=this.idProperty;function _e(_f){var _10={};var _11=_c.getAttributes(_f);for(var i=0;i<_11.length;i++){var _12=_11[i];var _13=_c.getValues(_f,_12);if(_13.length>1){for(var j=0;j<_13.length;j++){var _14=_13[j];if(typeof _14=="object"&&_c.isItem(_14)){_13[j]=_e(_14);}}_14=_13;}else{var _14=_c.getValue(_f,_12);if(typeof _14=="object"&&_c.isItem(_14)){_14=_e(_14);}}_10[_11[i]]=_14;}if(!(_d in _10)&&_c.getIdentity){_10[_d]=_c.getIdentity(_f);}return _10;};return function(_15){return _b(_e(_15));};},get:function(id,_16){var _17,_18;var _19=new _3();this.store.fetchItemByIdentity({identity:id,onItem:this._objectConverter(function(_1a){_19.resolve(_17=_1a);}),onError:function(_1b){_19.reject(_18=_1b);}});if(_17){return _17;}if(_18){throw _18;}return _19.promise;},put:function(_1c,_1d){var id=_1d&&typeof _1d.id!="undefined"||this.getIdentity(_1c);var _1e=this.store;var _1f=this.idProperty;if(typeof id=="undefined"){_1e.newItem(_1c);_1e.save();}else{_1e.fetchItemByIdentity({identity:id,onItem:function(_20){if(_20){for(var i in _1c){if(i!=_1f&&_1e.getValue(_20,i)!=_1c[i]){_1e.setValue(_20,i,_1c[i]);}}}else{_1e.newItem(_1c);}_1e.save();}});}},remove:function(id){var _21=this.store;this.store.fetchItemByIdentity({identity:id,onItem:function(_22){_21.deleteItem(_22);_21.save();}});},query:function(_23,_24){var _25;var _26=new _3(function(){_25.abort&&_25.abort();});_26.total=new _3();var _27=this._objectConverter(function(_28){return _28;});_25=this.store.fetch(_1.mixin({query:_23,onBegin:function(_29){_26.total.resolve(_29);},onComplete:function(_2a){_26.resolve(_4.map(_2a,_27));},onError:function(_2b){_26.reject(_2b);}},_24));return _5(_26);},getIdentity:function(_2c){return _2c[this.idProperty];}});}); \ No newline at end of file
diff --git a/lib/dojo/store/JsonRest.js b/lib/dojo/store/JsonRest.js
index dc00d973f..7048e2c71 100644
--- a/lib/dojo/store/JsonRest.js
+++ b/lib/dojo/store/JsonRest.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/store/JsonRest",["../_base/xhr","../json","../_base/declare","./util/QueryResults"],function(_1,_2,_3,_4){return _3("dojo.store.JsonRest",null,{constructor:function(_5){_3.safeMixin(this,_5);},target:"",idProperty:"id",get:function(id,_6){var _7=_6||{};_7.Accept=this.accepts;return _1("GET",{url:this.target+id,handleAs:"json",headers:_7});},accepts:"application/javascript, application/json",getIdentity:function(_8){return _8[this.idProperty];},put:function(_9,_a){_a=_a||{};var id=("id" in _a)?_a.id:this.getIdentity(_9);var _b=typeof id!="undefined";return _1(_b&&!_a.incremental?"PUT":"POST",{url:_b?this.target+id:this.target,postData:_2.stringify(_9),handleAs:"json",headers:{"Content-Type":"application/json",Accept:this.accepts,"If-Match":_a.overwrite===true?"*":null,"If-None-Match":_a.overwrite===false?"*":null}});},add:function(_c,_d){_d=_d||{};_d.overwrite=false;return this.put(_c,_d);},remove:function(id){return _1("DELETE",{url:this.target+id});},query:function(_e,_f){var _10={Accept:this.accepts};_f=_f||{};if(_f.start>=0||_f.count>=0){_10.Range="items="+(_f.start||"0")+"-"+(("count" in _f&&_f.count!=Infinity)?(_f.count+(_f.start||0)-1):"");}if(_e&&typeof _e=="object"){_e=_1.objectToQuery(_e);_e=_e?"?"+_e:"";}if(_f&&_f.sort){var _11=this.sortParam;_e+=(_e?"&":"?")+(_11?_11+"=":"sort(");for(var i=0;i<_f.sort.length;i++){var _12=_f.sort[i];_e+=(i>0?",":"")+(_12.descending?"-":"+")+encodeURIComponent(_12.attribute);}if(!_11){_e+=")";}}var _13=_1("GET",{url:this.target+(_e||""),handleAs:"json",headers:_10});_13.total=_13.then(function(){var _14=_13.ioArgs.xhr.getResponseHeader("Content-Range");return _14&&(_14=_14.match(/\/(.*)/))&&+_14[1];});return _4(_13);}});}); \ No newline at end of file
+define("dojo/store/JsonRest",["../_base/xhr","../_base/lang","../json","../_base/declare","./util/QueryResults"],function(_1,_2,_3,_4,_5){var _6=null;return _4("dojo.store.JsonRest",_6,{constructor:function(_7){this.headers={};_4.safeMixin(this,_7);},headers:{},target:"",idProperty:"id",get:function(id,_8){_8=_8||{};var _9=_2.mixin({Accept:this.accepts},this.headers,_8.headers||_8);return _1("GET",{url:this.target+id,handleAs:"json",headers:_9});},accepts:"application/javascript, application/json",getIdentity:function(_a){return _a[this.idProperty];},put:function(_b,_c){_c=_c||{};var id=("id" in _c)?_c.id:this.getIdentity(_b);var _d=typeof id!="undefined";return _1(_d&&!_c.incremental?"PUT":"POST",{url:_d?this.target+id:this.target,postData:_3.stringify(_b),handleAs:"json",headers:_2.mixin({"Content-Type":"application/json",Accept:this.accepts,"If-Match":_c.overwrite===true?"*":null,"If-None-Match":_c.overwrite===false?"*":null},this.headers,_c.headers)});},add:function(_e,_f){_f=_f||{};_f.overwrite=false;return this.put(_e,_f);},remove:function(id,_10){_10=_10||{};return _1("DELETE",{url:this.target+id,headers:_2.mixin({},this.headers,_10.headers)});},query:function(_11,_12){_12=_12||{};var _13=_2.mixin({Accept:this.accepts},this.headers,_12.headers);if(_12.start>=0||_12.count>=0){_13.Range=_13["X-Range"]="items="+(_12.start||"0")+"-"+(("count" in _12&&_12.count!=Infinity)?(_12.count+(_12.start||0)-1):"");}var _14=this.target.indexOf("?")>-1;if(_11&&typeof _11=="object"){_11=_1.objectToQuery(_11);_11=_11?(_14?"&":"?")+_11:"";}if(_12&&_12.sort){var _15=this.sortParam;_11+=(_11||_14?"&":"?")+(_15?_15+"=":"sort(");for(var i=0;i<_12.sort.length;i++){var _16=_12.sort[i];_11+=(i>0?",":"")+(_16.descending?"-":"+")+encodeURIComponent(_16.attribute);}if(!_15){_11+=")";}}var _17=_1("GET",{url:this.target+(_11||""),handleAs:"json",headers:_13});_17.total=_17.then(function(){var _18=_17.ioArgs.xhr.getResponseHeader("Content-Range");return _18&&(_18=_18.match(/\/(.*)/))&&+_18[1];});return _5(_17);}});}); \ No newline at end of file
diff --git a/lib/dojo/store/Memory.js b/lib/dojo/store/Memory.js
index 9d1b17a98..d63d5bc64 100644
--- a/lib/dojo/store/Memory.js
+++ b/lib/dojo/store/Memory.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/store/Memory",["../_base/declare","./util/QueryResults","./util/SimpleQueryEngine"],function(_1,_2,_3){return _1("dojo.store.Memory",null,{constructor:function(_4){for(var i in _4){this[i]=_4[i];}this.setData(this.data||[]);},data:null,idProperty:"id",index:null,queryEngine:_3,get:function(id){return this.data[this.index[id]];},getIdentity:function(_5){return _5[this.idProperty];},put:function(_6,_7){var _8=this.data,_9=this.index,_a=this.idProperty;var id=(_7&&"id" in _7)?_7.id:_a in _6?_6[_a]:Math.random();if(id in _9){if(_7&&_7.overwrite===false){throw new Error("Object already exists");}_8[_9[id]]=_6;}else{_9[id]=_8.push(_6)-1;}return id;},add:function(_b,_c){(_c=_c||{}).overwrite=false;return this.put(_b,_c);},remove:function(id){var _d=this.index;var _e=this.data;if(id in _d){_e.splice(_d[id],1);this.setData(_e);return true;}},query:function(_f,_10){return _2(this.queryEngine(_f,_10)(this.data));},setData:function(_11){if(_11.items){this.idProperty=_11.identifier;_11=this.data=_11.items;}else{this.data=_11;}this.index={};for(var i=0,l=_11.length;i<l;i++){this.index[_11[i][this.idProperty]]=i;}}});}); \ No newline at end of file
+define("dojo/store/Memory",["../_base/declare","./util/QueryResults","./util/SimpleQueryEngine"],function(_1,_2,_3){var _4=null;return _1("dojo.store.Memory",_4,{constructor:function(_5){for(var i in _5){this[i]=_5[i];}this.setData(this.data||[]);},data:null,idProperty:"id",index:null,queryEngine:_3,get:function(id){return this.data[this.index[id]];},getIdentity:function(_6){return _6[this.idProperty];},put:function(_7,_8){var _9=this.data,_a=this.index,_b=this.idProperty;var id=_7[_b]=(_8&&"id" in _8)?_8.id:_b in _7?_7[_b]:Math.random();if(id in _a){if(_8&&_8.overwrite===false){throw new Error("Object already exists");}_9[_a[id]]=_7;}else{_a[id]=_9.push(_7)-1;}return id;},add:function(_c,_d){(_d=_d||{}).overwrite=false;return this.put(_c,_d);},remove:function(id){var _e=this.index;var _f=this.data;if(id in _e){_f.splice(_e[id],1);this.setData(_f);return true;}},query:function(_10,_11){return _2(this.queryEngine(_10,_11)(this.data));},setData:function(_12){if(_12.items){this.idProperty=_12.identifier;_12=this.data=_12.items;}else{this.data=_12;}this.index={};for(var i=0,l=_12.length;i<l;i++){this.index[_12[i][this.idProperty]]=i;}}});}); \ No newline at end of file
diff --git a/lib/dojo/store/Observable.js b/lib/dojo/store/Observable.js
index a1d47cc57..211522807 100644
--- a/lib/dojo/store/Observable.js
+++ b/lib/dojo/store/Observable.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/store/Observable",["../_base/kernel","../_base/lang","../_base/Deferred","../_base/array"],function(_1,_2,_3,_4){var ds=_2.getObject("dojo.store",true);return ds.Observable=function(_5){var _6,_7=[],_8=0;_5.notify=function(_9,_a){_8++;var _b=_7.slice();for(var i=0,l=_b.length;i<l;i++){_b[i](_9,_a);}};var _c=_5.query;_5.query=function(_d,_e){_e=_e||{};var _f=_c.apply(this,arguments);if(_f&&_f.forEach){var _10=_2.mixin({},_e);delete _10.start;delete _10.count;var _11=_5.queryEngine&&_5.queryEngine(_d,_10);var _12=_8;var _13=[],_14;_f.observe=function(_15,_16){if(_13.push(_15)==1){_7.push(_14=function(_17,_18){_3.when(_f,function(_19){var _1a=_19.length!=_e.count;var i,l,_15;if(++_12!=_8){throw new Error("Query is out of date, you must observe() the query prior to any data modifications");}var _1b,_1c=-1,_1d=-1;if(_18!==_6){for(i=0,l=_19.length;i<l;i++){var _1e=_19[i];if(_5.getIdentity(_1e)==_18){_1b=_1e;_1c=i;if(_11||!_17){_19.splice(i,1);}break;}}}if(_11){if(_17&&(_11.matches?_11.matches(_17):_11([_17]).length)){var _1f=_1c>-1?_1c:_19.length;_19.splice(_1f,0,_17);_1d=_4.indexOf(_11(_19),_17);_19.splice(_1f,1);if((_e.start&&_1d==0)||(!_1a&&_1d==_19.length)){_1d=-1;}else{_19.splice(_1d,0,_17);}}}else{if(_17&&!_e.start){_1d=_1c>=0?_1c:(_5.defaultIndex||0);}}if((_1c>-1||_1d>-1)&&(_16||!_11||(_1c!=_1d))){var _20=_13.slice();for(i=0;_15=_20[i];i++){_15(_17||_1b,_1c,_1d);}}});});}return {cancel:function(){var _21=_4.indexOf(_13,_15);if(_21>-1){_13.splice(_21,1);if(!_13.length){_7.splice(_4.indexOf(_7,_14),1);}}}};};}return _f;};var _22;function _23(_24,_25){var _26=_5[_24];if(_26){_5[_24]=function(_27){if(_22){return _26.apply(this,arguments);}_22=true;try{var _28=_26.apply(this,arguments);_3.when(_28,function(_29){_25((typeof _29=="object"&&_29)||_27);});return _28;}finally{_22=false;}};}};_23("put",function(_2a){_5.notify(_2a,_5.getIdentity(_2a));});_23("add",function(_2b){_5.notify(_2b);});_23("remove",function(id){_5.notify(undefined,id);});return _5;};}); \ No newline at end of file
+define("dojo/store/Observable",["../_base/kernel","../_base/lang","../_base/Deferred","../_base/array"],function(_1,_2,_3,_4){var _5=function(_6){var _7,_8=[],_9=0;_6=_2.delegate(_6);_6.notify=function(_a,_b){_9++;var _c=_8.slice();for(var i=0,l=_c.length;i<l;i++){_c[i](_a,_b);}};var _d=_6.query;_6.query=function(_e,_f){_f=_f||{};var _10=_d.apply(this,arguments);if(_10&&_10.forEach){var _11=_2.mixin({},_f);delete _11.start;delete _11.count;var _12=_6.queryEngine&&_6.queryEngine(_e,_11);var _13=_9;var _14=[],_15;_10.observe=function(_16,_17){if(_14.push(_16)==1){_8.push(_15=function(_18,_19){_3.when(_10,function(_1a){var _1b=_1a.length!=_f.count;var i,l,_16;if(++_13!=_9){throw new Error("Query is out of date, you must observe() the query prior to any data modifications");}var _1c,_1d=-1,_1e=-1;if(_19!==_7){for(i=0,l=_1a.length;i<l;i++){var _1f=_1a[i];if(_6.getIdentity(_1f)==_19){_1c=_1f;_1d=i;if(_12||!_18){_1a.splice(i,1);}break;}}}if(_12){if(_18&&(_12.matches?_12.matches(_18):_12([_18]).length)){var _20=_1d>-1?_1d:_1a.length;_1a.splice(_20,0,_18);_1e=_4.indexOf(_12(_1a),_18);_1a.splice(_20,1);if((_f.start&&_1e==0)||(!_1b&&_1e==_1a.length)){_1e=-1;}else{_1a.splice(_1e,0,_18);}}}else{if(_18){if(_19!==_7){_1e=_1d;}else{if(!_f.start){_1e=_6.defaultIndex||0;_1a.splice(_1e,0,_18);}}}}if((_1d>-1||_1e>-1)&&(_17||!_12||(_1d!=_1e))){var _21=_14.slice();for(i=0;_16=_21[i];i++){_16(_18||_1c,_1d,_1e);}}});});}var _22={};_22.remove=_22.cancel=function(){var _23=_4.indexOf(_14,_16);if(_23>-1){_14.splice(_23,1);if(!_14.length){_8.splice(_4.indexOf(_8,_15),1);}}};return _22;};}return _10;};var _24;function _25(_26,_27){var _28=_6[_26];if(_28){_6[_26]=function(_29){if(_24){return _28.apply(this,arguments);}_24=true;try{var _2a=_28.apply(this,arguments);_3.when(_2a,function(_2b){_27((typeof _2b=="object"&&_2b)||_29);});return _2a;}finally{_24=false;}};}};_25("put",function(_2c){_6.notify(_2c,_6.getIdentity(_2c));});_25("add",function(_2d){_6.notify(_2d);});_25("remove",function(id){_6.notify(undefined,id);});return _6;};_2.setObject("dojo.store.Observable",_5);return _5;}); \ No newline at end of file
diff --git a/lib/dojo/store/README b/lib/dojo/store/README
index cb33da077..4fb5ac724 100644
--- a/lib/dojo/store/README
+++ b/lib/dojo/store/README
@@ -1,10 +1,6 @@
-This folder contains the stores and utilities implementing the proposed new Dojo Object Store API,
+This folder contains the stores and utilities implementing the Dojo Object Store API,
a successor and unifier to Dojo Data, Dojo Storage, and potentially Dojo Model. These
-stores are brand new, and designed to provide simple lightweight implementations
-providing core functionality for typical applications. These modules are under active
-development, and exist here at this time to provide maximum visibility to the
-efforts to design and develop this new API and set of base stores. The goal is
-to have these stores ready for Dojo 1.6. In the meantime, these stores are likely to
-have API changes, may be missing some functionality, tests, and/or documentation.
-If these modules are not deemed suitably stable by the 1.6 release, this directory (or
-individual modules) will be removed and be given a later release target. \ No newline at end of file
+stores are designed to provide simple lightweight implementations
+providing core functionality for typical applications.
+
+See http://dojotoolkit.org/features/1.6/object-store for more information \ No newline at end of file
diff --git a/lib/dojo/store/api/Store.js b/lib/dojo/store/api/Store.js
index d4f4b0b90..4e1ee93dc 100644
--- a/lib/dojo/store/api/Store.js
+++ b/lib/dojo/store/api/Store.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/store/api/Store",["dojo/_base/declare"],function(_1){var _2=_1("dojo.store.api.Store",null,{idProperty:"id",queryEngine:null,get:function(id){},getIdentity:function(_3){},put:function(_4,_5){},add:function(_6,_7){},remove:function(id){delete this.index[id];var _8=this.data,_9=this.idProperty;for(var i=0,l=_8.length;i<l;i++){if(_8[i][_9]==id){_8.splice(i,1);return;}}},query:function(_a,_b){},transaction:function(){},getChildren:function(_c,_d){},getMetadata:function(_e){}});_2.PutDirectives=function(id,_f,_10,_11){this.id=id;this.before=_f;this.parent=_10;this.overwrite=_11;};_2.SortInformation=function(_12,_13){this.attribute=_12;this.descending=_13;};_2.QueryOptions=function(_14,_15,_16){this.sort=_14;this.start=_15;this.count=_16;};_1("dojo.store.api.Store.QueryResults",null,{forEach:function(_17,_18){},filter:function(_19,_1a){},map:function(_1b,_1c){},then:function(_1d,_1e){},observe:function(_1f,_20){},total:0});_1("dojo.store.api.Store.Transaction",null,{commit:function(){},abort:function(_21,_22){}});return _2;}); \ No newline at end of file
+define("dojo/store/api/Store",["../../_base/declare"],function(_1){var _2=_1(null,{idProperty:"id",queryEngine:null,get:function(id){},getIdentity:function(_3){},put:function(_4,_5){},add:function(_6,_7){},remove:function(id){delete this.index[id];var _8=this.data,_9=this.idProperty;for(var i=0,l=_8.length;i<l;i++){if(_8[i][_9]==id){_8.splice(i,1);return;}}},query:function(_a,_b){},transaction:function(){},getChildren:function(_c,_d){},getMetadata:function(_e){}});_2.PutDirectives=_1(null,{});_2.SortInformation=_1(null,{});_2.QueryOptions=_1(null,{});_2.QueryResults=_1(null,{forEach:function(_f,_10){},filter:function(_11,_12){},map:function(_13,_14){},then:function(_15,_16){},observe:function(_17,_18){},total:0});_2.Transaction=_1(null,{commit:function(){},abort:function(_19,_1a){}});return _2;}); \ No newline at end of file
diff --git a/lib/dojo/store/util/QueryResults.js b/lib/dojo/store/util/QueryResults.js
index fc164ec6b..9d4a92818 100644
--- a/lib/dojo/store/util/QueryResults.js
+++ b/lib/dojo/store/util/QueryResults.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/store/util/QueryResults",["../../_base/array","../../_base/lang","../../_base/Deferred"],function(_1,_2,_3){var _4=_2.getObject("dojo.store.util",true);_4.QueryResults=function(_5){if(!_5){return _5;}if(_5.then){_5=_2.delegate(_5);}function _6(_7){if(!_5[_7]){_5[_7]=function(){var _8=arguments;return _3.when(_5,function(_9){Array.prototype.unshift.call(_8,_9);return _4.QueryResults(_1[_7].apply(_1,_8));});};}};_6("forEach");_6("filter");_6("map");if(!_5.total){_5.total=_3.when(_5,function(_a){return _a.length;});}return _5;};return _4.QueryResults;}); \ No newline at end of file
+define("dojo/store/util/QueryResults",["../../_base/array","../../_base/lang","../../_base/Deferred"],function(_1,_2,_3){var _4=function(_5){if(!_5){return _5;}if(_5.then){_5=_2.delegate(_5);}function _6(_7){if(!_5[_7]){_5[_7]=function(){var _8=arguments;return _3.when(_5,function(_9){Array.prototype.unshift.call(_8,_9);return _4(_1[_7].apply(_1,_8));});};}};_6("forEach");_6("filter");_6("map");if(!_5.total){_5.total=_3.when(_5,function(_a){return _a.length;});}return _5;};_2.setObject("dojo.store.util.QueryResults",_4);return _4;}); \ No newline at end of file
diff --git a/lib/dojo/store/util/SimpleQueryEngine.js b/lib/dojo/store/util/SimpleQueryEngine.js
index aa398f6e7..1d5a5d690 100644
--- a/lib/dojo/store/util/SimpleQueryEngine.js
+++ b/lib/dojo/store/util/SimpleQueryEngine.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/store/util/SimpleQueryEngine",["../../_base/array"],function(_1){return function(_2,_3){switch(typeof _2){default:throw new Error("Can not query with a "+typeof _2);case "object":case "undefined":var _4=_2;_2=function(_5){for(var _6 in _4){var _7=_4[_6];if(_7&&_7.test){if(!_7.test(_5[_6])){return false;}}else{if(_7!=_5[_6]){return false;}}}return true;};break;case "string":if(!this[_2]){throw new Error("No filter function "+_2+" was found in store");}_2=this[_2];case "function":}function _8(_9){var _a=_1.filter(_9,_2);if(_3&&_3.sort){_a.sort(function(a,b){for(var _b,i=0;_b=_3.sort[i];i++){var _c=a[_b.attribute];var _d=b[_b.attribute];if(_c!=_d){return !!_b.descending==_c>_d?-1:1;}}return 0;});}if(_3&&(_3.start||_3.count)){var _e=_a.length;_a=_a.slice(_3.start||0,(_3.start||0)+(_3.count||Infinity));_a.total=_e;}return _a;};_8.matches=_2;return _8;};}); \ No newline at end of file
+define("dojo/store/util/SimpleQueryEngine",["../../_base/array"],function(_1){return function(_2,_3){switch(typeof _2){default:throw new Error("Can not query with a "+typeof _2);case "object":case "undefined":var _4=_2;_2=function(_5){for(var _6 in _4){var _7=_4[_6];if(_7&&_7.test){if(!_7.test(_5[_6],_5)){return false;}}else{if(_7!=_5[_6]){return false;}}}return true;};break;case "string":if(!this[_2]){throw new Error("No filter function "+_2+" was found in store");}_2=this[_2];case "function":}function _8(_9){var _a=_1.filter(_9,_2);var _b=_3&&_3.sort;if(_b){_a.sort(typeof _b=="function"?_b:function(a,b){for(var _c,i=0;_c=_b[i];i++){var _d=a[_c.attribute];var _e=b[_c.attribute];if(_d!=_e){return !!_c.descending==(_d==null||_d>_e)?-1:1;}}return 0;});}if(_3&&(_3.start||_3.count)){var _f=_a.length;_a=_a.slice(_3.start||0,(_3.start||0)+(_3.count||Infinity));_a.total=_f;}return _a;};_8.matches=_2;return _8;};}); \ No newline at end of file
diff --git a/lib/dojo/string.js b/lib/dojo/string.js
index 0b8ce6f4c..e3ba622a8 100644
--- a/lib/dojo/string.js
+++ b/lib/dojo/string.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/string",["./_base/kernel","./_base/lang"],function(_1,_2){_2.getObject("string",true,_1);_1.string.rep=function(_3,_4){if(_4<=0||!_3){return "";}var _5=[];for(;;){if(_4&1){_5.push(_3);}if(!(_4>>=1)){break;}_3+=_3;}return _5.join("");};_1.string.pad=function(_6,_7,ch,_8){if(!ch){ch="0";}var _9=String(_6),_a=_1.string.rep(ch,Math.ceil((_7-_9.length)/ch.length));return _8?_9+_a:_a+_9;};_1.string.substitute=function(_b,_c,_d,_e){_e=_e||_1.global;_d=_d?_2.hitch(_e,_d):function(v){return v;};return _b.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_f,key,_10){var _11=_2.getObject(key,false,_c);if(_10){_11=_2.getObject(_10,false,_e).call(_e,_11,key);}return _d(_11,key).toString();});};_1.string.trim=String.prototype.trim?_2.trim:function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;};return _1.string;}); \ No newline at end of file
+define("dojo/string",["./_base/kernel","./_base/lang"],function(_1,_2){var _3={};_2.setObject("dojo.string",_3);_3.rep=function(_4,_5){if(_5<=0||!_4){return "";}var _6=[];for(;;){if(_5&1){_6.push(_4);}if(!(_5>>=1)){break;}_4+=_4;}return _6.join("");};_3.pad=function(_7,_8,ch,_9){if(!ch){ch="0";}var _a=String(_7),_b=_3.rep(ch,Math.ceil((_8-_a.length)/ch.length));return _9?_a+_b:_b+_a;};_3.substitute=function(_c,_d,_e,_f){_f=_f||_1.global;_e=_e?_2.hitch(_f,_e):function(v){return v;};return _c.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_10,key,_11){var _12=_2.getObject(key,false,_d);if(_11){_12=_2.getObject(_11,false,_f).call(_f,_12,key);}return _e(_12,key).toString();});};_3.trim=String.prototype.trim?_2.trim:function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;};return _3;}); \ No newline at end of file
diff --git a/lib/dojo/text.js b/lib/dojo/text.js
index 3d067ef57..d239a8dd5 100644
--- a/lib/dojo/text.js
+++ b/lib/dojo/text.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/text",["./_base/kernel","require","./has","./_base/xhr"],function(_1,_2,_3,_4){var _5;if(1){_5=function(_6,_7,_8){_4("GET",{url:_6,sync:!!_7,load:_8});};}else{if(_2.getText){_5=_2.getText;}else{console.error("dojo/text plugin failed to load because loader does not support getText");}}var _9={},_a=function(_b){if(_b){_b=_b.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _c=_b.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_c){_b=_c[1];}}else{_b="";}return _b;},_d={},_e={},_f={dynamic:true,normalize:function(id,_10){var _11=id.split("!"),url=_11[0];return (/^\./.test(url)?_10(url):url)+(_11[1]?"!"+_11[1]:"");},load:function(id,_12,_13){var _14=id.split("!"),_15=_14.length>1,_16=_14[0],url=_12.toUrl(_14[0]),_17=_d,_18=function(_19){_13(_15?_a(_19):_19);};if(_16 in _9){_17=_9[_16];}else{if(url in _12.cache){_17=_12.cache[url];}else{if(url in _9){_17=_9[url];}}}if(_17===_d){if(_e[url]){_e[url].push(_18);}else{var _1a=_e[url]=[_18];_5(url,!_12.async,function(_1b){_9[_16]=_9[url]=_1b;for(var i=0;i<_1a.length;){_1a[i++](_1b);}delete _e[url];});}}else{_18(_17);}}};_1.cache=function(_1c,url,_1d){var key;if(typeof _1c=="string"){if(/\//.test(_1c)){key=_1c;_1d=url;}else{key=_2.toUrl(_1c.replace(/\./g,"/")+(url?("/"+url):""));}}else{key=_1c+"";_1d=url;}var val=(_1d!=undefined&&typeof _1d!="string")?_1d.value:_1d,_1e=_1d&&_1d.sanitize;if(typeof val=="string"){_9[key]=val;return _1e?_a(val):val;}else{if(val===null){delete _9[key];return null;}else{if(!(key in _9)){_5(key,true,function(_1f){_9[key]=_1f;});}return _1e?_a(_9[key]):_9[key];}}};return _f;}); \ No newline at end of file
+define("dojo/text",["./_base/kernel","require","./has","./_base/xhr"],function(_1,_2,_3,_4){var _5;if(1){_5=function(_6,_7,_8){_4("GET",{url:_6,sync:!!_7,load:_8,headers:_1.config.textPluginHeaders||{}});};}else{if(_2.getText){_5=_2.getText;}else{console.error("dojo/text plugin failed to load because loader does not support getText");}}var _9={},_a=function(_b){if(_b){_b=_b.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _c=_b.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_c){_b=_c[1];}}else{_b="";}return _b;},_d={},_e={};_1.cache=function(_f,url,_10){var key;if(typeof _f=="string"){if(/\//.test(_f)){key=_f;_10=url;}else{key=_2.toUrl(_f.replace(/\./g,"/")+(url?("/"+url):""));}}else{key=_f+"";_10=url;}var val=(_10!=undefined&&typeof _10!="string")?_10.value:_10,_11=_10&&_10.sanitize;if(typeof val=="string"){_9[key]=val;return _11?_a(val):val;}else{if(val===null){delete _9[key];return null;}else{if(!(key in _9)){_5(key,true,function(_12){_9[key]=_12;});}return _11?_a(_9[key]):_9[key];}}};return {dynamic:true,normalize:function(id,_13){var _14=id.split("!"),url=_14[0];return (/^\./.test(url)?_13(url):url)+(_14[1]?"!"+_14[1]:"");},load:function(id,_15,_16){var _17=id.split("!"),_18=_17.length>1,_19=_17[0],url=_15.toUrl(_17[0]),_1a="url:"+url,_1b=_d,_1c=function(_1d){_16(_18?_a(_1d):_1d);};if(_19 in _9){_1b=_9[_19];}else{if(_1a in _15.cache){_1b=_15.cache[_1a];}else{if(url in _9){_1b=_9[url];}}}if(_1b===_d){if(_e[url]){_e[url].push(_1c);}else{var _1e=_e[url]=[_1c];_5(url,!_15.async,function(_1f){_9[_19]=_9[url]=_1f;for(var i=0;i<_1e.length;){_1e[i++](_1f);}delete _e[url];});}}else{_1c(_1b);}}};}); \ No newline at end of file
diff --git a/lib/dojo/topic.js b/lib/dojo/topic.js
index 2a73d29ba..285bd293a 100644
--- a/lib/dojo/topic.js
+++ b/lib/dojo/topic.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
diff --git a/lib/dojo/touch.js b/lib/dojo/touch.js
index db903de59..4d8be6524 100644
--- a/lib/dojo/touch.js
+++ b/lib/dojo/touch.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/touch",["./_base/kernel","./on","./has","./mouse"],function(_1,on,_2,_3){function _4(_5){return function(_6,_7){return on(_6,_5,_7);};};var _8=_2("touch");_1.touch={press:_4(_8?"touchstart":"mousedown"),move:_4(_8?"touchmove":"mousemove"),release:_4(_8?"touchend":"mouseup"),cancel:_8?_4("touchcancel"):_3.leave};return _1.touch;}); \ No newline at end of file
+define("dojo/touch",["./_base/kernel","./aspect","./dom","./on","./has","./mouse","./ready","./_base/window"],function(_1,_2,_3,on,_4,_5,_6,_7){var _8=_4("touch");var _9=false;if(_4("ios")){var ua=navigator.userAgent;var v=ua.match(/OS ([\d_]+)/)?RegExp.$1:"1";var os=parseFloat(v.replace(/_/,".").replace(/_/g,""));_9=os<5;}var _a,_b;if(_8){_6(function(){_b=_7.body();_7.doc.addEventListener("touchstart",function(_c){var _d=_b;_b=_c.target;on.emit(_d,"dojotouchout",{target:_d,relatedTarget:_b,bubbles:true});on.emit(_b,"dojotouchover",{target:_b,relatedTarget:_d,bubbles:true});},true);on(_7.doc,"touchmove",function(_e){var _f=_7.doc.elementFromPoint(_e.pageX-(_9?0:_7.global.pageXOffset),_e.pageY-(_9?0:_7.global.pageYOffset));if(_f&&_b!==_f){on.emit(_b,"dojotouchout",{target:_b,relatedTarget:_f,bubbles:true});on.emit(_f,"dojotouchover",{target:_f,relatedTarget:_b,bubbles:true});_b=_f;}});});_a=function(_10,_11){return on(_7.doc,"touchmove",function(evt){if(_10===_7.doc||_3.isDescendant(_b,_10)){evt.target=_b;_11.call(this,evt);}});};}function _12(_13){return function(_14,_15){return on(_14,_13,_15);};};var _16={press:_12(_8?"touchstart":"mousedown"),move:_8?_a:_12("mousemove"),release:_12(_8?"touchend":"mouseup"),cancel:_8?_12("touchcancel"):_5.leave,over:_12(_8?"dojotouchover":"mouseover"),out:_12(_8?"dojotouchout":"mouseout"),enter:_5._eventHandler(_8?"dojotouchover":"mouseover"),leave:_5._eventHandler(_8?"dojotouchout":"mouseout")};1&&(_1.touch=_16);return _16;}); \ No newline at end of file
diff --git a/lib/dojo/tt-rss-layer.js b/lib/dojo/tt-rss-layer.js
index 24a099d9a..12d80915e 100644
--- a/lib/dojo/tt-rss-layer.js
+++ b/lib/dojo/tt-rss-layer.js
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
@@ -12,4 +12,4 @@
*/
//>>built
-require({cache:{"dijit/form/TextBox":function(){require({cache:{"url:dijit/form/templates/TextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"}});define("dijit/form/TextBox",["dojo/_base/declare","dojo/dom-construct","dojo/dom-style","dojo/_base/kernel","dojo/_base/lang","dojo/_base/sniff","dojo/_base/window","./_FormValueWidget","./_TextBoxMixin","dojo/text!./templates/TextBox.html",".."],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){var _c=_1([_8,_9],{templateString:_a,_singleNodeTemplate:"<input class=\"dijit dijitReset dijitLeft dijitInputField\" data-dojo-attach-point=\"textbox,focusNode\" autocomplete=\"off\" type=\"${type}\" ${!nameAttrSetting} />",_buttonInputDisabled:_6("ie")?"disabled":"",baseClass:"dijitTextBox",postMixInProperties:function(){var _d=this.type.toLowerCase();if(this.templateString&&this.templateString.toLowerCase()=="input"||((_d=="hidden"||_d=="file")&&this.templateString==this.constructor.prototype.templateString)){this.templateString=this._singleNodeTemplate;}this.inherited(arguments);},_onInput:function(e){this.inherited(arguments);if(this.intermediateChanges){var _e=this;setTimeout(function(){_e._handleOnChange(_e.get("value"),false);},0);}},_setPlaceHolderAttr:function(v){this._set("placeHolder",v);if(!this._phspan){this._attachPoints.push("_phspan");this._phspan=_2.create("span",{className:"dijitPlaceHolder dijitInputField"},this.textbox,"after");}this._phspan.innerHTML="";this._phspan.appendChild(document.createTextNode(v));this._updatePlaceHolder();},_updatePlaceHolder:function(){if(this._phspan){this._phspan.style.display=(this.placeHolder&&!this.focused&&!this.textbox.value)?"":"none";}},_setValueAttr:function(_f,_10,_11){this.inherited(arguments);this._updatePlaceHolder();},getDisplayedValue:function(){_4.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use set('displayedValue') instead.","","2.0");return this.get("displayedValue");},setDisplayedValue:function(_12){_4.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.","","2.0");this.set("displayedValue",_12);},_onBlur:function(e){if(this.disabled){return;}this.inherited(arguments);this._updatePlaceHolder();},_onFocus:function(by){if(this.disabled||this.readOnly){return;}this.inherited(arguments);this._updatePlaceHolder();}});if(_6("ie")){_c=_1(_c,{declaredClass:"dijit.form.TextBox",_isTextSelected:function(){var _13=_7.doc.selection.createRange();var _14=_13.parentElement();return _14==this.textbox&&_13.text.length==0;},postCreate:function(){this.inherited(arguments);setTimeout(_5.hitch(this,function(){try{var s=_3.getComputedStyle(this.domNode);if(s){var ff=s.fontFamily;if(ff){var _15=this.domNode.getElementsByTagName("INPUT");if(_15){for(var i=0;i<_15.length;i++){_15[i].style.fontFamily=ff;}}}}}catch(e){}}),0);}});_b._setSelectionRange=_9._setSelectionRange=function(_16,_17,_18){if(_16.createTextRange){var r=_16.createTextRange();r.collapse(true);r.moveStart("character",-99999);r.moveStart("character",_17);r.moveEnd("character",_18-_17);r.select();}};}else{if(_6("mozilla")){_c=_1(_c,{declaredClass:"dijit.form.TextBox",_onBlur:function(e){this.inherited(arguments);if(this.selectOnClick){this.textbox.selectionStart=this.textbox.selectionEnd=undefined;}}});}else{_c.prototype.declaredClass="dijit.form.TextBox";}}_5.setObject("dijit.form.TextBox",_c);return _c;});},"dijit/_base/scroll":function(){define("dijit/_base/scroll",["dojo/window",".."],function(_19,_1a){_1a.scrollIntoView=function(_1b,pos){_19.scrollIntoView(_1b,pos);};});},"dijit/_TemplatedMixin":function(){define("dijit/_TemplatedMixin",["dojo/_base/lang","dojo/touch","./_WidgetBase","dojo/string","dojo/cache","dojo/_base/array","dojo/_base/declare","dojo/dom-construct","dojo/_base/sniff","dojo/_base/unload","dojo/_base/window"],function(_1c,_1d,_1e,_1f,_20,_21,_22,_23,has,_24,win){var _25=_22("dijit._TemplatedMixin",null,{templateString:null,templatePath:null,_skipNodeCache:false,_earlyTemplatedStartup:false,constructor:function(){this._attachPoints=[];this._attachEvents=[];},_stringRepl:function(_26){var _27=this.declaredClass,_28=this;return _1f.substitute(_26,this,function(_29,key){if(key.charAt(0)=="!"){_29=_1c.getObject(key.substr(1),false,_28);}if(typeof _29=="undefined"){throw new Error(_27+" template:"+key);}if(_29==null){return "";}return key.charAt(0)=="!"?_29:_29.toString().replace(/"/g,"&quot;");},this);},buildRendering:function(){if(!this.templateString){this.templateString=_20(this.templatePath,{sanitize:true});}var _2a=_25.getCachedTemplate(this.templateString,this._skipNodeCache);var _2b;if(_1c.isString(_2a)){_2b=_23.toDom(this._stringRepl(_2a));if(_2b.nodeType!=1){throw new Error("Invalid template: "+_2a);}}else{_2b=_2a.cloneNode(true);}this.domNode=_2b;this.inherited(arguments);this._attachTemplateNodes(_2b,function(n,p){return n.getAttribute(p);});this._beforeFillContent();this._fillContent(this.srcNodeRef);},_beforeFillContent:function(){},_fillContent:function(_2c){var _2d=this.containerNode;if(_2c&&_2d){while(_2c.hasChildNodes()){_2d.appendChild(_2c.firstChild);}}},_attachTemplateNodes:function(_2e,_2f){var _30=_1c.isArray(_2e)?_2e:(_2e.all||_2e.getElementsByTagName("*"));var x=_1c.isArray(_2e)?0:-1;for(;x<_30.length;x++){var _31=(x==-1)?_2e:_30[x];if(this.widgetsInTemplate&&(_2f(_31,"dojoType")||_2f(_31,"data-dojo-type"))){continue;}var _32=_2f(_31,"dojoAttachPoint")||_2f(_31,"data-dojo-attach-point");if(_32){var _33,_34=_32.split(/\s*,\s*/);while((_33=_34.shift())){if(_1c.isArray(this[_33])){this[_33].push(_31);}else{this[_33]=_31;}this._attachPoints.push(_33);}}var _35=_2f(_31,"dojoAttachEvent")||_2f(_31,"data-dojo-attach-event");if(_35){var _36,_37=_35.split(/\s*,\s*/);var _38=_1c.trim;while((_36=_37.shift())){if(_36){var _39=null;if(_36.indexOf(":")!=-1){var _3a=_36.split(":");_36=_38(_3a[0]);_39=_38(_3a[1]);}else{_36=_38(_36);}if(!_39){_39=_36;}this._attachEvents.push(this.connect(_31,_1d[_36]||_36,_39));}}}}},destroyRendering:function(){_21.forEach(this._attachPoints,function(_3b){delete this[_3b];},this);this._attachPoints=[];_21.forEach(this._attachEvents,this.disconnect,this);this._attachEvents=[];this.inherited(arguments);}});_25._templateCache={};_25.getCachedTemplate=function(_3c,_3d){var _3e=_25._templateCache;var key=_3c;var _3f=_3e[key];if(_3f){try{if(!_3f.ownerDocument||_3f.ownerDocument==win.doc){return _3f;}}catch(e){}_23.destroy(_3f);}_3c=_1f.trim(_3c);if(_3d||_3c.match(/\$\{([^\}]+)\}/g)){return (_3e[key]=_3c);}else{var _40=_23.toDom(_3c);if(_40.nodeType!=1){throw new Error("Invalid template: "+_3c);}return (_3e[key]=_40);}};if(has("ie")){_24.addOnWindowUnload(function(){var _41=_25._templateCache;for(var key in _41){var _42=_41[key];if(typeof _42=="object"){_23.destroy(_42);}delete _41[key];}});}_1c.extend(_1e,{dojoAttachEvent:"",dojoAttachPoint:""});return _25;});},"dijit/_CssStateMixin":function(){define("dijit/_CssStateMixin",["dojo/touch","dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/_base/lang","dojo/_base/window"],function(_43,_44,_45,_46,_47,win){return _45("dijit._CssStateMixin",[],{cssStateNodes:{},hovering:false,active:false,_applyAttributes:function(){this.inherited(arguments);_44.forEach(["onmouseenter","onmouseleave",_43.press],function(e){this.connect(this.domNode,e,"_cssMouseEvent");},this);_44.forEach(["disabled","readOnly","checked","selected","focused","state","hovering","active"],function(_48){this.watch(_48,_47.hitch(this,"_setStateClass"));},this);for(var ap in this.cssStateNodes){this._trackMouseState(this[ap],this.cssStateNodes[ap]);}this._setStateClass();},_cssMouseEvent:function(_49){if(!this.disabled){switch(_49.type){case "mouseenter":case "mouseover":this._set("hovering",true);this._set("active",this._mouseDown);break;case "mouseleave":case "mouseout":this._set("hovering",false);this._set("active",false);break;case "mousedown":case "touchpress":this._set("active",true);this._mouseDown=true;var _4a=this.connect(win.body(),_43.release,function(){this._mouseDown=false;this._set("active",false);this.disconnect(_4a);});break;}}},_setStateClass:function(){var _4b=this.baseClass.split(" ");function _4c(_4d){_4b=_4b.concat(_44.map(_4b,function(c){return c+_4d;}),"dijit"+_4d);};if(!this.isLeftToRight()){_4c("Rtl");}var _4e=this.checked=="mixed"?"Mixed":(this.checked?"Checked":"");if(this.checked){_4c(_4e);}if(this.state){_4c(this.state);}if(this.selected){_4c("Selected");}if(this.disabled){_4c("Disabled");}else{if(this.readOnly){_4c("ReadOnly");}else{if(this.active){_4c("Active");}else{if(this.hovering){_4c("Hover");}}}}if(this.focused){_4c("Focused");}var tn=this.stateNode||this.domNode,_4f={};_44.forEach(tn.className.split(" "),function(c){_4f[c]=true;});if("_stateClasses" in this){_44.forEach(this._stateClasses,function(c){delete _4f[c];});}_44.forEach(_4b,function(c){_4f[c]=true;});var _50=[];for(var c in _4f){_50.push(c);}tn.className=_50.join(" ");this._stateClasses=_4b;},_trackMouseState:function(_51,_52){var _53=false,_54=false,_55=false;var _56=this,cn=_47.hitch(this,"connect",_51);function _57(){var _58=("disabled" in _56&&_56.disabled)||("readonly" in _56&&_56.readonly);_46.toggle(_51,_52+"Hover",_53&&!_54&&!_58);_46.toggle(_51,_52+"Active",_54&&!_58);_46.toggle(_51,_52+"Focused",_55&&!_58);};cn("onmouseenter",function(){_53=true;_57();});cn("onmouseleave",function(){_53=false;_54=false;_57();});cn(_43.press,function(){_54=true;_57();});cn(_43.release,function(){_54=false;_57();});cn("onfocus",function(){_55=true;_57();});cn("onblur",function(){_55=false;_57();});this.watch("disabled",_57);this.watch("readOnly",_57);}});});},"dijit/DialogUnderlay":function(){define("dijit/DialogUnderlay",["dojo/_base/declare","dojo/dom-attr","dojo/_base/window","dojo/window","./_Widget","./_TemplatedMixin","./BackgroundIframe"],function(_59,_5a,win,_5b,_5c,_5d,_5e){return _59("dijit.DialogUnderlay",[_5c,_5d],{templateString:"<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' data-dojo-attach-point='node'></div></div>",dialogId:"","class":"",_setDialogIdAttr:function(id){_5a.set(this.node,"id",id+"_underlay");this._set("dialogId",id);},_setClassAttr:function(_5f){this.node.className="dijitDialogUnderlay "+_5f;this._set("class",_5f);},postCreate:function(){win.body().appendChild(this.domNode);},layout:function(){var is=this.node.style,os=this.domNode.style;os.display="none";var _60=_5b.getBox();os.top=_60.t+"px";os.left=_60.l+"px";is.width=_60.w+"px";is.height=_60.h+"px";os.display="block";},show:function(){this.domNode.style.display="block";this.layout();this.bgIframe=new _5e(this.domNode);},hide:function(){this.bgIframe.destroy();delete this.bgIframe;this.domNode.style.display="none";}});});},"dijit/layout/ScrollingTabController":function(){require({cache:{"url:dijit/layout/templates/ScrollingTabController.html":"<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerMenuButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\"\n\t\t\tdata-dojo-props=\"containerId: '${containerId}', iconClass: 'dijitTabStripMenuIcon',\n\t\t\t\t\tdropDownPosition: ['below-alt', 'above-alt']\"\n\t\t\tdata-dojo-attach-point=\"_menuBtn\" showLabel=\"false\" title=\"\">&#9660;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideLeftIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_leftBtn\" data-dojo-attach-event=\"onClick: doSlideLeft\">&#9664;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideRightIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_rightBtn\" data-dojo-attach-event=\"onClick: doSlideRight\">&#9654;</div>\n\t<div class='dijitTabListWrapper' data-dojo-attach-point='tablistWrapper'>\n\t\t<div role='tablist' data-dojo-attach-event='onkeypress:onkeypress'\n\t\t\t\tdata-dojo-attach-point='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>","url:dijit/layout/templates/_ScrollingTabControllerButton.html":"<div data-dojo-attach-event=\"onclick:_onClick\">\n\t<div role=\"presentation\" class=\"dijitTabInnerDiv\" data-dojo-attach-point=\"innerDiv,focusNode\">\n\t\t<div role=\"presentation\" class=\"dijitTabContent dijitButtonContents\" data-dojo-attach-point=\"tabContent\">\n\t\t\t<img role=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t\t\t<span data-dojo-attach-point=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n\t\t</div>\n\t</div>\n</div>"}});define("dijit/layout/ScrollingTabController",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/fx","dojo/_base/lang","dojo/query","dojo/_base/sniff","../registry","dojo/text!./templates/ScrollingTabController.html","dojo/text!./templates/_ScrollingTabControllerButton.html","./TabController","./utils","../_WidgetsInTemplateMixin","../Menu","../MenuItem","../form/Button","../_HasDropDown","dojo/NodeList-dom"],function(_61,_62,_63,_64,_65,fx,_66,_67,has,_68,_69,_6a,_6b,_6c,_6d,_6e,_6f,_70,_71){var _72=_62("dijit.layout.ScrollingTabController",[_6b,_6d],{baseClass:"dijitTabController dijitScrollingTabController",templateString:_69,useMenu:true,useSlider:true,tabStripClass:"",widgetsInTemplate:true,_minScroll:5,_setClassAttr:{node:"containerNode",type:"class"},buildRendering:function(){this.inherited(arguments);var n=this.domNode;this.scrollNode=this.tablistWrapper;this._initButtons();if(!this.tabStripClass){this.tabStripClass="dijitTabContainer"+this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"")+"None";_63.add(n,"tabStrip-disabled");}_63.add(this.tablistWrapper,this.tabStripClass);},onStartup:function(){this.inherited(arguments);_65.set(this.domNode,"visibility","");this._postStartup=true;},onAddChild:function(_73,_74){this.inherited(arguments);_61.forEach(["label","iconClass"],function(_75){this.pane2watches[_73.id].push(this.pane2button[_73.id].watch(_75,_66.hitch(this,function(){if(this._postStartup&&this._dim){this.resize(this._dim);}})));},this);_65.set(this.containerNode,"width",(_65.get(this.containerNode,"width")+200)+"px");},onRemoveChild:function(_76,_77){var _78=this.pane2button[_76.id];if(this._selectedTab===_78.domNode){this._selectedTab=null;}this.inherited(arguments);},_initButtons:function(){this._btnWidth=0;this._buttons=_67("> .tabStripButton",this.domNode).filter(function(btn){if((this.useMenu&&btn==this._menuBtn.domNode)||(this.useSlider&&(btn==this._rightBtn.domNode||btn==this._leftBtn.domNode))){this._btnWidth+=_64.getMarginSize(btn).w;return true;}else{_65.set(btn,"display","none");return false;}},this);},_getTabsWidth:function(){var _79=this.getChildren();if(_79.length){var _7a=_79[this.isLeftToRight()?0:_79.length-1].domNode,_7b=_79[this.isLeftToRight()?_79.length-1:0].domNode;return _7b.offsetLeft+_65.get(_7b,"width")-_7a.offsetLeft;}else{return 0;}},_enableBtn:function(_7c){var _7d=this._getTabsWidth();_7c=_7c||_65.get(this.scrollNode,"width");return _7d>0&&_7c<_7d;},resize:function(dim){this._dim=dim;this.scrollNode.style.height="auto";var cb=this._contentBox=_6c.marginBox2contentBox(this.domNode,{h:0,w:dim.w});cb.h=this.scrollNode.offsetHeight;_64.setContentSize(this.domNode,cb);var _7e=this._enableBtn(this._contentBox.w);this._buttons.style("display",_7e?"":"none");this._leftBtn.layoutAlign="left";this._rightBtn.layoutAlign="right";this._menuBtn.layoutAlign=this.isLeftToRight()?"right":"left";_6c.layoutChildren(this.domNode,this._contentBox,[this._menuBtn,this._leftBtn,this._rightBtn,{domNode:this.scrollNode,layoutAlign:"client"}]);if(this._selectedTab){if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}this.scrollNode.scrollLeft=this._convertToScrollLeft(this._getScrollForSelectedTab());}this._setButtonClass(this._getScroll());this._postResize=true;return {h:this._contentBox.h,w:dim.w};},_getScroll:function(){return (this.isLeftToRight()||has("ie")<8||(has("ie")&&has("quirks"))||has("webkit"))?this.scrollNode.scrollLeft:_65.get(this.containerNode,"width")-_65.get(this.scrollNode,"width")+(has("ie")==8?-1:1)*this.scrollNode.scrollLeft;},_convertToScrollLeft:function(val){if(this.isLeftToRight()||has("ie")<8||(has("ie")&&has("quirks"))||has("webkit")){return val;}else{var _7f=_65.get(this.containerNode,"width")-_65.get(this.scrollNode,"width");return (has("ie")==8?-1:1)*(val-_7f);}},onSelectChild:function(_80){var tab=this.pane2button[_80.id];if(!tab||!_80){return;}var _81=tab.domNode;if(_81!=this._selectedTab){this._selectedTab=_81;if(this._postResize){var sl=this._getScroll();if(sl>_81.offsetLeft||sl+_65.get(this.scrollNode,"width")<_81.offsetLeft+_65.get(_81,"width")){this.createSmoothScroll().play();}}}this.inherited(arguments);},_getScrollBounds:function(){var _82=this.getChildren(),_83=_65.get(this.scrollNode,"width"),_84=_65.get(this.containerNode,"width"),_85=_84-_83,_86=this._getTabsWidth();if(_82.length&&_86>_83){return {min:this.isLeftToRight()?0:_82[_82.length-1].domNode.offsetLeft,max:this.isLeftToRight()?(_82[_82.length-1].domNode.offsetLeft+_65.get(_82[_82.length-1].domNode,"width"))-_83:_85};}else{var _87=this.isLeftToRight()?0:_85;return {min:_87,max:_87};}},_getScrollForSelectedTab:function(){var w=this.scrollNode,n=this._selectedTab,_88=_65.get(this.scrollNode,"width"),_89=this._getScrollBounds();var pos=(n.offsetLeft+_65.get(n,"width")/2)-_88/2;pos=Math.min(Math.max(pos,_89.min),_89.max);return pos;},createSmoothScroll:function(x){if(arguments.length>0){var _8a=this._getScrollBounds();x=Math.min(Math.max(x,_8a.min),_8a.max);}else{x=this._getScrollForSelectedTab();}if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}var _8b=this,w=this.scrollNode,_8c=new fx.Animation({beforeBegin:function(){if(this.curve){delete this.curve;}var _8d=w.scrollLeft,_8e=_8b._convertToScrollLeft(x);_8c.curve=new fx._Line(_8d,_8e);},onAnimate:function(val){w.scrollLeft=val;}});this._anim=_8c;this._setButtonClass(x);return _8c;},_getBtnNode:function(e){var n=e.target;while(n&&!_63.contains(n,"tabStripButton")){n=n.parentNode;}return n;},doSlideRight:function(e){this.doSlide(1,this._getBtnNode(e));},doSlideLeft:function(e){this.doSlide(-1,this._getBtnNode(e));},doSlide:function(_8f,_90){if(_90&&_63.contains(_90,"dijitTabDisabled")){return;}var _91=_65.get(this.scrollNode,"width");var d=(_91*0.75)*_8f;var to=this._getScroll()+d;this._setButtonClass(to);this.createSmoothScroll(to).play();},_setButtonClass:function(_92){var _93=this._getScrollBounds();this._leftBtn.set("disabled",_92<=_93.min);this._rightBtn.set("disabled",_92>=_93.max);}});var _94=_62("dijit.layout._ScrollingTabControllerButtonMixin",null,{baseClass:"dijitTab tabStripButton",templateString:_6a,tabIndex:"",isFocusable:function(){return false;}});_62("dijit.layout._ScrollingTabControllerButton",[_70,_94]);_62("dijit.layout._ScrollingTabControllerMenuButton",[_70,_71,_94],{containerId:"",tabIndex:"-1",isLoaded:function(){return false;},loadDropDown:function(_95){this.dropDown=new _6e({id:this.containerId+"_menu",dir:this.dir,lang:this.lang,textDir:this.textDir});var _96=_68.byId(this.containerId);_61.forEach(_96.getChildren(),function(_97){var _98=new _6f({id:_97.id+"_stcMi",label:_97.title,iconClass:_97.iconClass,dir:_97.dir,lang:_97.lang,textDir:_97.textDir,onClick:function(){_96.selectChild(_97);}});this.dropDown.addChild(_98);},this);_95();},closeDropDown:function(_99){this.inherited(arguments);if(this.dropDown){this.dropDown.destroyRecursive();delete this.dropDown;}}});return _72;});},"dijit/place":function(){define("dijit/place",["dojo/_base/array","dojo/dom-geometry","dojo/dom-style","dojo/_base/kernel","dojo/_base/window","dojo/window","."],function(_9a,_9b,_9c,_9d,win,_9e,_9f){function _a0(_a1,_a2,_a3,_a4){var _a5=_9e.getBox();if(!_a1.parentNode||String(_a1.parentNode.tagName).toLowerCase()!="body"){win.body().appendChild(_a1);}var _a6=null;_9a.some(_a2,function(_a7){var _a8=_a7.corner;var pos=_a7.pos;var _a9=0;var _aa={w:{"L":_a5.l+_a5.w-pos.x,"R":pos.x-_a5.l,"M":_a5.w}[_a8.charAt(1)],h:{"T":_a5.t+_a5.h-pos.y,"B":pos.y-_a5.t,"M":_a5.h}[_a8.charAt(0)]};if(_a3){var res=_a3(_a1,_a7.aroundCorner,_a8,_aa,_a4);_a9=typeof res=="undefined"?0:res;}var _ab=_a1.style;var _ac=_ab.display;var _ad=_ab.visibility;if(_ab.display=="none"){_ab.visibility="hidden";_ab.display="";}var mb=_9b.getMarginBox(_a1);_ab.display=_ac;_ab.visibility=_ad;var _ae={"L":pos.x,"R":pos.x-mb.w,"M":Math.max(_a5.l,Math.min(_a5.l+_a5.w,pos.x+(mb.w>>1))-mb.w)}[_a8.charAt(1)],_af={"T":pos.y,"B":pos.y-mb.h,"M":Math.max(_a5.t,Math.min(_a5.t+_a5.h,pos.y+(mb.h>>1))-mb.h)}[_a8.charAt(0)],_b0=Math.max(_a5.l,_ae),_b1=Math.max(_a5.t,_af),_b2=Math.min(_a5.l+_a5.w,_ae+mb.w),_b3=Math.min(_a5.t+_a5.h,_af+mb.h),_b4=_b2-_b0,_b5=_b3-_b1;_a9+=(mb.w-_b4)+(mb.h-_b5);if(_a6==null||_a9<_a6.overflow){_a6={corner:_a8,aroundCorner:_a7.aroundCorner,x:_b0,y:_b1,w:_b4,h:_b5,overflow:_a9,spaceAvailable:_aa};}return !_a9;});if(_a6.overflow&&_a3){_a3(_a1,_a6.aroundCorner,_a6.corner,_a6.spaceAvailable,_a4);}var l=_9b.isBodyLtr(),s=_a1.style;s.top=_a6.y+"px";s[l?"left":"right"]=(l?_a6.x:_a5.w-_a6.x-_a6.w)+"px";s[l?"right":"left"]="auto";return _a6;};return (_9f.place={at:function(_b6,pos,_b7,_b8){var _b9=_9a.map(_b7,function(_ba){var c={corner:_ba,pos:{x:pos.x,y:pos.y}};if(_b8){c.pos.x+=_ba.charAt(1)=="L"?_b8.x:-_b8.x;c.pos.y+=_ba.charAt(0)=="T"?_b8.y:-_b8.y;}return c;});return _a0(_b6,_b9);},around:function(_bb,_bc,_bd,_be,_bf){var _c0=(typeof _bc=="string"||"offsetWidth" in _bc)?_9b.position(_bc,true):_bc;if(_bc.parentNode){var _c1=_bc.parentNode;while(_c1&&_c1.nodeType==1&&_c1.nodeName!="BODY"){var _c2=_9b.position(_c1,true);var _c3=_9c.getComputedStyle(_c1).overflow;if(_c3=="hidden"||_c3=="auto"||_c3=="scroll"){var _c4=Math.min(_c0.y+_c0.h,_c2.y+_c2.h);var _c5=Math.min(_c0.x+_c0.w,_c2.x+_c2.w);_c0.x=Math.max(_c0.x,_c2.x);_c0.y=Math.max(_c0.y,_c2.y);_c0.h=_c4-_c0.y;_c0.w=_c5-_c0.x;}_c1=_c1.parentNode;}}var x=_c0.x,y=_c0.y,_c6="w" in _c0?_c0.w:(_c0.w=_c0.width),_c7="h" in _c0?_c0.h:(_9d.deprecated("place.around: dijit.place.__Rectangle: { x:"+x+", y:"+y+", height:"+_c0.height+", width:"+_c6+" } has been deprecated. Please use { x:"+x+", y:"+y+", h:"+_c0.height+", w:"+_c6+" }","","2.0"),_c0.h=_c0.height);var _c8=[];function _c9(_ca,_cb){_c8.push({aroundCorner:_ca,corner:_cb,pos:{x:{"L":x,"R":x+_c6,"M":x+(_c6>>1)}[_ca.charAt(1)],y:{"T":y,"B":y+_c7,"M":y+(_c7>>1)}[_ca.charAt(0)]}});};_9a.forEach(_bd,function(pos){var ltr=_be;switch(pos){case "above-centered":_c9("TM","BM");break;case "below-centered":_c9("BM","TM");break;case "after-centered":ltr=!ltr;case "before-centered":_c9(ltr?"ML":"MR",ltr?"MR":"ML");break;case "after":ltr=!ltr;case "before":_c9(ltr?"TL":"TR",ltr?"TR":"TL");_c9(ltr?"BL":"BR",ltr?"BR":"BL");break;case "below-alt":ltr=!ltr;case "below":_c9(ltr?"BL":"BR",ltr?"TL":"TR");_c9(ltr?"BR":"BL",ltr?"TR":"TL");break;case "above-alt":ltr=!ltr;case "above":_c9(ltr?"TL":"TR",ltr?"BL":"BR");_c9(ltr?"TR":"TL",ltr?"BR":"BL");break;default:_c9(pos.aroundCorner,pos.corner);}});var _cc=_a0(_bb,_c8,_bf,{w:_c6,h:_c7});_cc.aroundNodePos=_c0;return _cc;}});});},"dijit/_HasDropDown":function(){define("dijit/_HasDropDown",["dojo/_base/declare","dojo/_base/Deferred","dojo/_base/event","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/keys","dojo/_base/lang","dojo/touch","dojo/_base/window","dojo/window","./registry","./focus","./popup","./_FocusMixin"],function(_cd,_ce,_cf,dom,_d0,_d1,_d2,_d3,has,_d4,_d5,_d6,win,_d7,_d8,_d9,_da,_db){return _cd("dijit._HasDropDown",_db,{_buttonNode:null,_arrowWrapperNode:null,_popupStateNode:null,_aroundNode:null,dropDown:null,autoWidth:true,forceWidth:false,maxHeight:0,dropDownPosition:["below","above"],_stopClickEvents:true,_onDropDownMouseDown:function(e){if(this.disabled||this.readOnly){return;}e.preventDefault();this._docHandler=this.connect(win.doc,_d6.release,"_onDropDownMouseUp");this.toggleDropDown();},_onDropDownMouseUp:function(e){if(e&&this._docHandler){this.disconnect(this._docHandler);}var _dc=this.dropDown,_dd=false;if(e&&this._opened){var c=_d2.position(this._buttonNode,true);if(!(e.pageX>=c.x&&e.pageX<=c.x+c.w)||!(e.pageY>=c.y&&e.pageY<=c.y+c.h)){var t=e.target;while(t&&!_dd){if(_d1.contains(t,"dijitPopup")){_dd=true;}else{t=t.parentNode;}}if(_dd){t=e.target;if(_dc.onItemClick){var _de;while(t&&!(_de=_d8.byNode(t))){t=t.parentNode;}if(_de&&_de.onClick&&_de.getParent){_de.getParent().onItemClick(_de,e);}}return;}}}if(this._opened){if(_dc.focus&&_dc.autoFocus!==false){window.setTimeout(_d5.hitch(_dc,"focus"),1);}}else{setTimeout(_d5.hitch(this,"focus"),0);}if(has("ios")){this._justGotMouseUp=true;setTimeout(_d5.hitch(this,function(){this._justGotMouseUp=false;}),0);}},_onDropDownClick:function(e){if(has("ios")&&!this._justGotMouseUp){this._onDropDownMouseDown(e);this._onDropDownMouseUp(e);}if(this._stopClickEvents){_cf.stop(e);}},buildRendering:function(){this.inherited(arguments);this._buttonNode=this._buttonNode||this.focusNode||this.domNode;this._popupStateNode=this._popupStateNode||this.focusNode||this._buttonNode;var _df={"after":this.isLeftToRight()?"Right":"Left","before":this.isLeftToRight()?"Left":"Right","above":"Up","below":"Down","left":"Left","right":"Right"}[this.dropDownPosition[0]]||this.dropDownPosition[0]||"Down";_d1.add(this._arrowWrapperNode||this._buttonNode,"dijit"+_df+"ArrowButton");},postCreate:function(){this.inherited(arguments);this.connect(this._buttonNode,_d6.press,"_onDropDownMouseDown");this.connect(this._buttonNode,"onclick","_onDropDownClick");this.connect(this.focusNode,"onkeypress","_onKey");this.connect(this.focusNode,"onkeyup","_onKeyUp");},destroy:function(){if(this.dropDown){if(!this.dropDown._destroyed){this.dropDown.destroyRecursive();}delete this.dropDown;}this.inherited(arguments);},_onKey:function(e){if(this.disabled||this.readOnly){return;}var d=this.dropDown,_e0=e.target;if(d&&this._opened&&d.handleKey){if(d.handleKey(e)===false){_cf.stop(e);return;}}if(d&&this._opened&&e.charOrCode==_d4.ESCAPE){this.closeDropDown();_cf.stop(e);}else{if(!this._opened&&(e.charOrCode==_d4.DOWN_ARROW||((e.charOrCode==_d4.ENTER||e.charOrCode==" ")&&((_e0.tagName||"").toLowerCase()!=="input"||(_e0.type&&_e0.type.toLowerCase()!=="text"))))){this._toggleOnKeyUp=true;_cf.stop(e);}}},_onKeyUp:function(){if(this._toggleOnKeyUp){delete this._toggleOnKeyUp;this.toggleDropDown();var d=this.dropDown;if(d&&d.focus){setTimeout(_d5.hitch(d,"focus"),1);}}},_onBlur:function(){var _e1=_d9.curNode&&this.dropDown&&dom.isDescendant(_d9.curNode,this.dropDown.domNode);this.closeDropDown(_e1);this.inherited(arguments);},isLoaded:function(){return true;},loadDropDown:function(_e2){_e2();},loadAndOpenDropDown:function(){var d=new _ce(),_e3=_d5.hitch(this,function(){this.openDropDown();d.resolve(this.dropDown);});if(!this.isLoaded()){this.loadDropDown(_e3);}else{_e3();}return d;},toggleDropDown:function(){if(this.disabled||this.readOnly){return;}if(!this._opened){this.loadAndOpenDropDown();}else{this.closeDropDown();}},openDropDown:function(){var _e4=this.dropDown,_e5=_e4.domNode,_e6=this._aroundNode||this.domNode,_e7=this;if(!this._preparedNode){this._preparedNode=true;if(_e5.style.width){this._explicitDDWidth=true;}if(_e5.style.height){this._explicitDDHeight=true;}}if(this.maxHeight||this.forceWidth||this.autoWidth){var _e8={display:"",visibility:"hidden"};if(!this._explicitDDWidth){_e8.width="";}if(!this._explicitDDHeight){_e8.height="";}_d3.set(_e5,_e8);var _e9=this.maxHeight;if(_e9==-1){var _ea=_d7.getBox(),_eb=_d2.position(_e6,false);_e9=Math.floor(Math.max(_eb.y,_ea.h-(_eb.y+_eb.h)));}_da.moveOffScreen(_e4);if(_e4.startup&&!_e4._started){_e4.startup();}var mb=_d2.getMarginSize(_e5);var _ec=(_e9&&mb.h>_e9);_d3.set(_e5,{overflowX:"hidden",overflowY:_ec?"auto":"hidden"});if(_ec){mb.h=_e9;if("w" in mb){mb.w+=16;}}else{delete mb.h;}if(this.forceWidth){mb.w=_e6.offsetWidth;}else{if(this.autoWidth){mb.w=Math.max(mb.w,_e6.offsetWidth);}else{delete mb.w;}}if(_d5.isFunction(_e4.resize)){_e4.resize(mb);}else{_d2.setMarginBox(_e5,mb);}}var _ed=_da.open({parent:this,popup:_e4,around:_e6,orient:this.dropDownPosition,onExecute:function(){_e7.closeDropDown(true);},onCancel:function(){_e7.closeDropDown(true);},onClose:function(){_d0.set(_e7._popupStateNode,"popupActive",false);_d1.remove(_e7._popupStateNode,"dijitHasDropDownOpen");_e7._opened=false;}});_d0.set(this._popupStateNode,"popupActive","true");_d1.add(_e7._popupStateNode,"dijitHasDropDownOpen");this._opened=true;return _ed;},closeDropDown:function(_ee){if(this._opened){if(_ee){this.focus();}_da.close(this.dropDown);this._opened=false;}}});});},"dijit/tree/TreeStoreModel":function(){define("dijit/tree/TreeStoreModel",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/_base/json","dojo/_base/lang"],function(_ef,_f0,_f1,_f2,_f3){return _f1("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(_f4){_f3.mixin(this,_f4);this.connects=[];var _f5=this.store;if(!_f5.getFeatures()["dojo.data.api.Identity"]){throw new Error("dijit.Tree: store must support dojo.data.Identity");}if(_f5.getFeatures()["dojo.data.api.Notification"]){this.connects=this.connects.concat([_f0.after(_f5,"onNew",_f3.hitch(this,"onNewItem"),true),_f0.after(_f5,"onDelete",_f3.hitch(this,"onDeleteItem"),true),_f0.after(_f5,"onSet",_f3.hitch(this,"onSetItem"),true)]);}},destroy:function(){var h;while(h=this.connects.pop()){h.remove();}},getRoot:function(_f6,_f7){if(this.root){_f6(this.root);}else{this.store.fetch({query:this.query,onComplete:_f3.hitch(this,function(_f8){if(_f8.length!=1){throw new Error(this.declaredClass+": query "+_f2.stringify(this.query)+" returned "+_f8.length+" items, but must return exactly one item");}this.root=_f8[0];_f6(this.root);}),onError:_f7});}},mayHaveChildren:function(_f9){return _ef.some(this.childrenAttrs,function(_fa){return this.store.hasAttribute(_f9,_fa);},this);},getChildren:function(_fb,_fc,_fd){var _fe=this.store;if(!_fe.isItemLoaded(_fb)){var _ff=_f3.hitch(this,arguments.callee);_fe.loadItem({item:_fb,onItem:function(_100){_ff(_100,_fc,_fd);},onError:_fd});return;}var _101=[];for(var i=0;i<this.childrenAttrs.length;i++){var vals=_fe.getValues(_fb,this.childrenAttrs[i]);_101=_101.concat(vals);}var _102=0;if(!this.deferItemLoadingUntilExpand){_ef.forEach(_101,function(item){if(!_fe.isItemLoaded(item)){_102++;}});}if(_102==0){_fc(_101);}else{_ef.forEach(_101,function(item,idx){if(!_fe.isItemLoaded(item)){_fe.loadItem({item:item,onItem:function(item){_101[idx]=item;if(--_102==0){_fc(_101);}},onError:_fd});}});}},isItem:function(_103){return this.store.isItem(_103);},fetchItemByIdentity:function(_104){this.store.fetchItemByIdentity(_104);},getIdentity:function(item){return this.store.getIdentity(item);},getLabel:function(item){if(this.labelAttr){return this.store.getValue(item,this.labelAttr);}else{return this.store.getLabel(item);}},newItem:function(args,_105,_106){var _107={parent:_105,attribute:this.childrenAttrs[0]},_108;if(this.newItemIdAttr&&args[this.newItemIdAttr]){this.fetchItemByIdentity({identity:args[this.newItemIdAttr],scope:this,onItem:function(item){if(item){this.pasteItem(item,null,_105,true,_106);}else{_108=this.store.newItem(args,_107);if(_108&&(_106!=undefined)){this.pasteItem(_108,_105,_105,false,_106);}}}});}else{_108=this.store.newItem(args,_107);if(_108&&(_106!=undefined)){this.pasteItem(_108,_105,_105,false,_106);}}},pasteItem:function(_109,_10a,_10b,_10c,_10d){var _10e=this.store,_10f=this.childrenAttrs[0];if(_10a){_ef.forEach(this.childrenAttrs,function(attr){if(_10e.containsValue(_10a,attr,_109)){if(!_10c){var _110=_ef.filter(_10e.getValues(_10a,attr),function(x){return x!=_109;});_10e.setValues(_10a,attr,_110);}_10f=attr;}});}if(_10b){if(typeof _10d=="number"){var _111=_10e.getValues(_10b,_10f).slice();_111.splice(_10d,0,_109);_10e.setValues(_10b,_10f,_111);}else{_10e.setValues(_10b,_10f,_10e.getValues(_10b,_10f).concat(_109));}}},onChange:function(){},onChildrenChange:function(){},onDelete:function(){},onNewItem:function(item,_112){if(!_112){return;}this.getChildren(_112.item,_f3.hitch(this,function(_113){this.onChildrenChange(_112.item,_113);}));},onDeleteItem:function(item){this.onDelete(item);},onSetItem:function(item,_114){if(_ef.indexOf(this.childrenAttrs,_114)!=-1){this.getChildren(item,_f3.hitch(this,function(_115){this.onChildrenChange(item,_115);}));}else{this.onChange(item);}}});});},"dijit/_MenuBase":function(){define("dijit/_MenuBase",["./popup","dojo/window","./_Widget","./_KeyNavContainer","./_TemplatedMixin","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/lang","dojo/_base/array"],function(pm,_116,_117,_118,_119,_11a,dom,_11b,_11c,lang,_11d){return _11a("dijit._MenuBase",[_117,_119,_118],{parentMenu:null,popupDelay:500,onExecute:function(){},onCancel:function(){},_moveToPopup:function(evt){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.focusedChild._onClick(evt);}else{var _11e=this._getTopMenu();if(_11e&&_11e._isMenuBar){_11e.focusNext();}}},_onPopupHover:function(){if(this.currentPopup&&this.currentPopup._pendingClose_timer){var _11f=this.currentPopup.parentMenu;if(_11f.focusedChild){_11f.focusedChild._setSelected(false);}_11f.focusedChild=this.currentPopup.from_item;_11f.focusedChild._setSelected(true);this._stopPendingCloseTimer(this.currentPopup);}},onItemHover:function(item){if(this.isActive){this.focusChild(item);if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){this.hover_timer=setTimeout(lang.hitch(this,"_openPopup"),this.popupDelay);}}if(this.focusedChild){this.focusChild(item);}this._hoveredChild=item;},_onChildBlur:function(item){this._stopPopupTimer();item._setSelected(false);var _120=item.popup;if(_120){this._stopPendingCloseTimer(_120);_120._pendingClose_timer=setTimeout(function(){_120._pendingClose_timer=null;if(_120.parentMenu){_120.parentMenu.currentPopup=null;}pm.close(_120);},this.popupDelay);}},onItemUnhover:function(item){if(this.isActive){this._stopPopupTimer();}if(this._hoveredChild==item){this._hoveredChild=null;}},_stopPopupTimer:function(){if(this.hover_timer){clearTimeout(this.hover_timer);this.hover_timer=null;}},_stopPendingCloseTimer:function(_121){if(_121._pendingClose_timer){clearTimeout(_121._pendingClose_timer);_121._pendingClose_timer=null;}},_stopFocusTimer:function(){if(this._focus_timer){clearTimeout(this._focus_timer);this._focus_timer=null;}},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu){}return top;},onItemClick:function(item,evt){if(typeof this.isShowingNow=="undefined"){this._markActive();}this.focusChild(item);if(item.disabled){return false;}if(item.popup){this._openPopup();}else{this.onExecute();item.onClick(evt);}},_openPopup:function(){this._stopPopupTimer();var _122=this.focusedChild;if(!_122){return;}var _123=_122.popup;if(_123.isShowingNow){return;}if(this.currentPopup){this._stopPendingCloseTimer(this.currentPopup);pm.close(this.currentPopup);}_123.parentMenu=this;_123.from_item=_122;var self=this;pm.open({parent:this,popup:_123,around:_122.domNode,orient:this._orient||["after","before"],onCancel:function(){self.focusChild(_122);self._cleanUp();_122._setSelected(true);self.focusedChild=_122;},onExecute:lang.hitch(this,"_cleanUp")});this.currentPopup=_123;_123.connect(_123.domNode,"onmouseenter",lang.hitch(self,"_onPopupHover"));if(_123.focus){_123._focus_timer=setTimeout(lang.hitch(_123,function(){this._focus_timer=null;this.focus();}),0);}},_markActive:function(){this.isActive=true;_11c.replace(this.domNode,"dijitMenuActive","dijitMenuPassive");},onOpen:function(){this.isShowingNow=true;this._markActive();},_markInactive:function(){this.isActive=false;_11c.replace(this.domNode,"dijitMenuPassive","dijitMenuActive");},onClose:function(){this._stopFocusTimer();this._markInactive();this.isShowingNow=false;this.parentMenu=null;},_closeChild:function(){this._stopPopupTimer();if(this.currentPopup){if(_11d.indexOf(this._focusManager.activeStack,this.id)>=0){_11b.set(this.focusedChild.focusNode,"tabIndex",this.tabIndex);this.focusedChild.focusNode.focus();}pm.close(this.currentPopup);this.currentPopup=null;}if(this.focusedChild){this.focusedChild._setSelected(false);this.focusedChild._onUnhover();this.focusedChild=null;}},_onItemFocus:function(item){if(this._hoveredChild&&this._hoveredChild!=item){this._hoveredChild._onUnhover();}},_onBlur:function(){this._cleanUp();this.inherited(arguments);},_cleanUp:function(){this._closeChild();if(typeof this.isShowingNow=="undefined"){this._markInactive();}}});});},"dijit/focus":function(){define("dijit/focus",["dojo/aspect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/Evented","dojo/_base/lang","dojo/on","dojo/ready","dojo/_base/sniff","dojo/Stateful","dojo/_base/unload","dojo/_base/window","dojo/window","./a11y","./registry","."],function(_124,_125,dom,_126,_127,_128,lang,on,_129,has,_12a,_12b,win,_12c,a11y,_12d,_12e){var _12f=_125([_12a,_128],{curNode:null,activeStack:[],constructor:function(){var _130=lang.hitch(this,function(node){if(dom.isDescendant(this.curNode,node)){this.set("curNode",null);}if(dom.isDescendant(this.prevNode,node)){this.set("prevNode",null);}});_124.before(_127,"empty",_130);_124.before(_127,"destroy",_130);},registerIframe:function(_131){return this.registerWin(_131.contentWindow,_131);},registerWin:function(_132,_133){var _134=this;var _135=function(evt){_134._justMouseDowned=true;setTimeout(function(){_134._justMouseDowned=false;},0);if(has("ie")&&evt&&evt.srcElement&&evt.srcElement.parentNode==null){return;}_134._onTouchNode(_133||evt.target||evt.srcElement,"mouse");};var doc=has("ie")?_132.document.documentElement:_132.document;if(doc){if(has("ie")){_132.document.body.attachEvent("onmousedown",_135);var _136=function(evt){var tag=evt.srcElement.tagName.toLowerCase();if(tag=="#document"||tag=="body"){return;}if(a11y.isTabNavigable(evt.srcElement)){_134._onFocusNode(_133||evt.srcElement);}else{_134._onTouchNode(_133||evt.srcElement);}};doc.attachEvent("onactivate",_136);var _137=function(evt){_134._onBlurNode(_133||evt.srcElement);};doc.attachEvent("ondeactivate",_137);return {remove:function(){_132.document.detachEvent("onmousedown",_135);doc.detachEvent("onactivate",_136);doc.detachEvent("ondeactivate",_137);doc=null;}};}else{doc.body.addEventListener("mousedown",_135,true);doc.body.addEventListener("touchstart",_135,true);var _138=function(evt){_134._onFocusNode(_133||evt.target);};doc.addEventListener("focus",_138,true);var _139=function(evt){_134._onBlurNode(_133||evt.target);};doc.addEventListener("blur",_139,true);return {remove:function(){doc.body.removeEventListener("mousedown",_135,true);doc.body.removeEventListener("touchstart",_135,true);doc.removeEventListener("focus",_138,true);doc.removeEventListener("blur",_139,true);doc=null;}};}}},_onBlurNode:function(){this.set("prevNode",this.curNode);this.set("curNode",null);if(this._justMouseDowned){return;}if(this._clearActiveWidgetsTimer){clearTimeout(this._clearActiveWidgetsTimer);}this._clearActiveWidgetsTimer=setTimeout(lang.hitch(this,function(){delete this._clearActiveWidgetsTimer;this._setStack([]);this.prevNode=null;}),100);},_onTouchNode:function(node,by){if(this._clearActiveWidgetsTimer){clearTimeout(this._clearActiveWidgetsTimer);delete this._clearActiveWidgetsTimer;}var _13a=[];try{while(node){var _13b=_126.get(node,"dijitPopupParent");if(_13b){node=_12d.byId(_13b).domNode;}else{if(node.tagName&&node.tagName.toLowerCase()=="body"){if(node===win.body()){break;}node=_12c.get(node.ownerDocument).frameElement;}else{var id=node.getAttribute&&node.getAttribute("widgetId"),_13c=id&&_12d.byId(id);if(_13c&&!(by=="mouse"&&_13c.get("disabled"))){_13a.unshift(id);}node=node.parentNode;}}}}catch(e){}this._setStack(_13a,by);},_onFocusNode:function(node){if(!node){return;}if(node.nodeType==9){return;}this._onTouchNode(node);if(node==this.curNode){return;}this.set("curNode",node);},_setStack:function(_13d,by){var _13e=this.activeStack;this.set("activeStack",_13d);for(var _13f=0;_13f<Math.min(_13e.length,_13d.length);_13f++){if(_13e[_13f]!=_13d[_13f]){break;}}var _140;for(var i=_13e.length-1;i>=_13f;i--){_140=_12d.byId(_13e[i]);if(_140){_140._hasBeenBlurred=true;_140.set("focused",false);if(_140._focusManager==this){_140._onBlur(by);}this.emit("widget-blur",_140,by);}}for(i=_13f;i<_13d.length;i++){_140=_12d.byId(_13d[i]);if(_140){_140.set("focused",true);if(_140._focusManager==this){_140._onFocus(by);}this.emit("widget-focus",_140,by);}}},focus:function(node){if(node){try{node.focus();}catch(e){}}}});var _141=new _12f();_129(function(){var _142=_141.registerWin(win.doc.parentWindow||win.doc.defaultView);if(has("ie")){_12b.addOnWindowUnload(function(){_142.remove();_142=null;});}});_12e.focus=function(node){_141.focus(node);};for(var attr in _141){if(!/^_/.test(attr)){_12e.focus[attr]=typeof _141[attr]=="function"?lang.hitch(_141,attr):_141[attr];}}_141.watch(function(attr,_143,_144){_12e.focus[attr]=_144;});return _141;});},"dojo/i18n":function(){define("dojo/i18n",["./_base/kernel","require","./has","./_base/array","./_base/config","./_base/lang","./_base/xhr","./json"],function(dojo,_145,has,_146,_147,lang,xhr,json){has.add("dojo-preload-i18n-Api",1);true||has.add("dojo-v1x-i18n-Api",1);var _148=dojo.i18n={},_149=/(^.*(^|\/)nls)(\/|$)([^\/]*)\/?([^\/]*)/,_14a=function(root,_14b,_14c,_14d){for(var _14e=[_14c+_14d],_14f=_14b.split("-"),_150="",i=0;i<_14f.length;i++){_150+=(_150?"-":"")+_14f[i];if(!root||root[_150]){_14e.push(_14c+_150+"/"+_14d);}}return _14e;},_151={},_152=dojo.getL10nName=function(_153,_154,_155){_155=_155?_155.toLowerCase():dojo.locale;_153="dojo/i18n!"+_153.replace(/\./g,"/");_154=_154.replace(/\./g,"/");return (/root/i.test(_155))?(_153+"/nls/"+_154):(_153+"/nls/"+_155+"/"+_154);},_156=function(_157,_158,_159,_15a,_15b,load){_157([_158],function(root){var _15c=lang.clone(root.root),_15d=_14a(!root._v1x&&root,_15b,_159,_15a);_157(_15d,function(){for(var i=1;i<_15d.length;i++){_15c=lang.mixin(lang.clone(_15c),arguments[i]);}var _15e=_158+"/"+_15b;_151[_15e]=_15c;load();});});},_15f=function(id,_160){return /^\./.test(id)?_160(id):id;},_161=function(_162){var list=_147.extraLocale||[];list=lang.isArray(list)?list:[list];list.push(_162);return list;},load=function(id,_163,load){if(has("dojo-preload-i18n-Api")){var _164=id.split("*"),_165=_164[1]=="preload";if(_165){if(!_151[id]){_151[id]=1;_166(_164[2],json.parse(_164[3]),1);}load(1);}if(_165||_167(id,_163,load)){return;}}var _168=_149.exec(id),_169=_168[1]+"/",_16a=_168[5]||_168[4],_16b=_169+_16a,_16c=(_168[5]&&_168[4]),_16d=_16c||dojo.locale,_16e=_16b+"/"+_16d,_16f=_16c?[_16d]:_161(_16d),_170=_16f.length,_171=function(){if(!--_170){load(lang.delegate(_151[_16e]));}};_146.forEach(_16f,function(_172){var _173=_16b+"/"+_172;if(has("dojo-preload-i18n-Api")){_174(_173);}if(!_151[_173]){_156(_163,_16b,_169,_16a,_172,_171);}else{_171();}});};if(has("dojo-unit-tests")){var _175=_148.unitTests=[];}if(has("dojo-preload-i18n-Api")||1){var _176=_148.normalizeLocale=function(_177){var _178=_177?_177.toLowerCase():dojo.locale;return _178=="root"?"ROOT":_178;},isXd=function(mid){return (1&&1)?_145.isXdUrl(_145.toUrl(mid+".js")):true;},_179=0,_17a=[],_166=_148._preloadLocalizations=function(_17b,_17c,_17d){function _17e(_17f,func){var _180=_17f.split("-");while(_180.length){if(func(_180.join("-"))){return true;}_180.pop();}return func("ROOT");};function _181(_182){_182=_176(_182);_17e(_182,function(loc){if(_146.indexOf(_17c,loc)>=0){var mid=_17b.replace(/\./g,"/")+"_"+loc;_179++;(isXd(mid)||_17d?_145:_186)([mid],function(_183){for(var p in _183){_151[p+"/"+_182]=_183[p];}--_179;while(!_179&&_17a.length){load.apply(null,_17a.shift());}});return true;}return false;});};_181();_146.forEach(dojo.config.extraLocale,_181);},_167=function(id,_184,load){if(_179){_17a.push([id,_184,load]);}return _179;};}if(1){var _185=new Function("__bundle","__checkForLegacyModules","__mid","var define = function(){define.called = 1;},"+" require = function(){define.called = 1;};"+"try{"+"define.called = 0;"+"eval(__bundle);"+"if(define.called==1)"+"return 1;"+"if((__checkForLegacyModules = __checkForLegacyModules(__mid)))"+"return __checkForLegacyModules;"+"}catch(e){}"+"try{"+"return eval('('+__bundle+')');"+"}catch(e){"+"return e;"+"}"),_186=function(deps,_187){var _188=[];_146.forEach(deps,function(mid){var url=_145.toUrl(mid+".js");function load(text){var _189=_185(text,_174,mid);if(_189===1){_145([mid],function(_18a){_188.push(_151[url]=_18a);});}else{if(_189 instanceof Error){console.error("failed to evaluate i18n bundle; url="+url,_189);_189={};}_188.push(_151[url]=(/nls\/[^\/]+\/[^\/]+$/.test(url)?_189:{root:_189,_v1x:1}));}};if(_151[url]){_188.push(_151[url]);}else{var _18b=_145.syncLoadNls(mid);if(_18b){_188.push(_18b);}else{if(!xhr){try{_145.getText(url,true,load);}catch(e){_188.push(_151[url]={});}}else{xhr.get({url:url,sync:true,load:load,error:function(){_188.push(_151[url]={});}});}}}});_187&&_187.apply(null,_188);},_174=function(_18c){for(var _18d,_18e=_18c.split("/"),_18f=dojo.global[_18e[0]],i=1;_18f&&i<_18e.length-1;_18f=_18f[_18e[i++]]){}if(_18f){_18d=_18f[_18e[i]];if(!_18d){_18d=_18f[_18e[i].replace(/-/g,"_")];}if(_18d){_151[_18c]=_18d;}}return _18d;};_148.getLocalization=function(_190,_191,_192){var _193,_194=_152(_190,_191,_192).substring(10);load(_194,(!isXd(_194)?_186:_145),function(_195){_193=_195;});return _193;};if(has("dojo-unit-tests")){_175.push(function(doh){doh.register("tests.i18n.unit",function(t){var _196;_196=_185("{prop:1}");t.is({prop:1},_196);t.is(undefined,_196[1]);_196=_185("({prop:1})");t.is({prop:1},_196);t.is(undefined,_196[1]);_196=_185("{'prop-x':1}");t.is({"prop-x":1},_196);t.is(undefined,_196[1]);_196=_185("({'prop-x':1})");t.is({"prop-x":1},_196);t.is(undefined,_196[1]);_196=_185("define({'prop-x':1})");t.is(1,_196);_196=_185("this is total nonsense and should throw an error");t.is(_196 instanceof Error,true);});});}}return lang.mixin(_148,{dynamic:true,normalize:_15f,load:load,cache:_151});});},"dijit/hccss":function(){define("dijit/hccss",["require","dojo/_base/config","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/ready","dojo/_base/sniff","dojo/_base/window"],function(_197,_198,_199,_19a,_19b,_19c,has,win){if(has("ie")||has("mozilla")){_19c(90,function(){var div=_19a.create("div",{id:"a11yTestNode",style:{cssText:"border: 1px solid;"+"border-color:red green;"+"position: absolute;"+"height: 5px;"+"top: -999px;"+"background-image: url(\""+(_198.blankGif||_197.toUrl("dojo/resources/blank.gif"))+"\");"}},win.body());var cs=_19b.getComputedStyle(div);if(cs){var _19d=cs.backgroundImage;var _19e=(cs.borderTopColor==cs.borderRightColor)||(_19d!=null&&(_19d=="none"||_19d=="url(invalid-url:)"));if(_19e){_199.add(win.body(),"dijit_a11y");}if(has("ie")){div.outerHTML="";}else{win.body().removeChild(div);}}});}});},"dijit/tree/ForestStoreModel":function(){define("dijit/tree/ForestStoreModel",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/_base/window","./TreeStoreModel"],function(_19f,_1a0,lang,win,_1a1){return _1a0("dijit.tree.ForestStoreModel",_1a1,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(_1a2){this.root={store:this,root:true,id:_1a2.rootId,label:_1a2.rootLabel,children:_1a2.rootChildren};},mayHaveChildren:function(item){return item===this.root||this.inherited(arguments);},getChildren:function(_1a3,_1a4,_1a5){if(_1a3===this.root){if(this.root.children){_1a4(this.root.children);}else{this.store.fetch({query:this.query,onComplete:lang.hitch(this,function(_1a6){this.root.children=_1a6;_1a4(_1a6);}),onError:_1a5});}}else{this.inherited(arguments);}},isItem:function(_1a7){return (_1a7===this.root)?true:this.inherited(arguments);},fetchItemByIdentity:function(_1a8){if(_1a8.identity==this.root.id){var _1a9=_1a8.scope?_1a8.scope:win.global;if(_1a8.onItem){_1a8.onItem.call(_1a9,this.root);}}else{this.inherited(arguments);}},getIdentity:function(item){return (item===this.root)?this.root.id:this.inherited(arguments);},getLabel:function(item){return (item===this.root)?this.root.label:this.inherited(arguments);},newItem:function(args,_1aa,_1ab){if(_1aa===this.root){this.onNewRootItem(args);return this.store.newItem(args);}else{return this.inherited(arguments);}},onNewRootItem:function(){},pasteItem:function(_1ac,_1ad,_1ae,_1af,_1b0){if(_1ad===this.root){if(!_1af){this.onLeaveRoot(_1ac);}}this.inherited(arguments,[_1ac,_1ad===this.root?null:_1ad,_1ae===this.root?null:_1ae,_1af,_1b0]);if(_1ae===this.root){this.onAddToRoot(_1ac);}},onAddToRoot:function(item){},onLeaveRoot:function(item){},_requeryTop:function(){var _1b1=this.root.children||[];this.store.fetch({query:this.query,onComplete:lang.hitch(this,function(_1b2){this.root.children=_1b2;if(_1b1.length!=_1b2.length||_19f.some(_1b1,function(item,idx){return _1b2[idx]!=item;})){this.onChildrenChange(this.root,_1b2);}})});},onNewItem:function(item,_1b3){this._requeryTop();this.inherited(arguments);},onDeleteItem:function(item){if(_19f.indexOf(this.root.children,item)!=-1){this._requeryTop();}this.inherited(arguments);},onSetItem:function(item,_1b4,_1b5,_1b6){this._requeryTop();this.inherited(arguments);}});});},"url:dijit/layout/templates/AccordionButton.html":"<div data-dojo-attach-event='onclick:_onTitleClick' class='dijitAccordionTitle' role=\"presentation\">\n\t<div data-dojo-attach-point='titleNode,focusNode' data-dojo-attach-event='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' role=\"tab\" aria-expanded=\"false\"\n\t\t><span class='dijitInline dijitAccordionArrow' role=\"presentation\"></span\n\t\t><span class='arrowTextUp' role=\"presentation\">+</span\n\t\t><span class='arrowTextDown' role=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" data-dojo-attach-point='iconNode' style=\"vertical-align: middle\" role=\"presentation\"/>\n\t\t<span role=\"presentation\" data-dojo-attach-point='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n","dijit/form/_ComboBoxMenuMixin":function(){define("dijit/form/_ComboBoxMenuMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/i18n","dojo/_base/window","dojo/i18n!./nls/ComboBox"],function(_1b7,_1b8,_1b9,i18n,win){return _1b8("dijit.form._ComboBoxMenuMixin",null,{_messages:null,postMixInProperties:function(){this.inherited(arguments);this._messages=i18n.getLocalization("dijit.form","ComboBox",this.lang);},buildRendering:function(){this.inherited(arguments);this.previousButton.innerHTML=this._messages["previousMessage"];this.nextButton.innerHTML=this._messages["nextMessage"];},_setValueAttr:function(_1ba){this.value=_1ba;this.onChange(_1ba);},onClick:function(node){if(node==this.previousButton){this._setSelectedAttr(null);this.onPage(-1);}else{if(node==this.nextButton){this._setSelectedAttr(null);this.onPage(1);}else{this.onChange(node);}}},onChange:function(){},onPage:function(){},onClose:function(){this._setSelectedAttr(null);},_createOption:function(item,_1bb){var _1bc=this._createMenuItem();var _1bd=_1bb(item);if(_1bd.html){_1bc.innerHTML=_1bd.label;}else{_1bc.appendChild(win.doc.createTextNode(_1bd.label));}if(_1bc.innerHTML==""){_1bc.innerHTML="&#160;";}this.applyTextDir(_1bc,(_1bc.innerText||_1bc.textContent||""));_1bc.item=item;return _1bc;},createOptions:function(_1be,_1bf,_1c0){this.previousButton.style.display=(_1bf.start==0)?"none":"";_1b9.set(this.previousButton,"id",this.id+"_prev");_1b7.forEach(_1be,function(item,i){var _1c1=this._createOption(item,_1c0);_1b9.set(_1c1,"id",this.id+i);this.nextButton.parentNode.insertBefore(_1c1,this.nextButton);},this);var _1c2=false;if(_1be.total&&!_1be.total.then&&_1be.total!=-1){if((_1bf.start+_1bf.count)<_1be.total){_1c2=true;}else{if((_1bf.start+_1bf.count)>_1be.total&&_1bf.count==_1be.length){_1c2=true;}}}else{if(_1bf.count==_1be.length){_1c2=true;}}this.nextButton.style.display=_1c2?"":"none";_1b9.set(this.nextButton,"id",this.id+"_next");return this.containerNode.childNodes;},clearResultList:function(){var _1c3=this.containerNode;while(_1c3.childNodes.length>2){_1c3.removeChild(_1c3.childNodes[_1c3.childNodes.length-2]);}this._setSelectedAttr(null);},highlightFirstOption:function(){this.selectFirstNode();},highlightLastOption:function(){this.selectLastNode();},selectFirstNode:function(){this.inherited(arguments);if(this.getHighlightedOption()==this.previousButton){this.selectNextNode();}},selectLastNode:function(){this.inherited(arguments);if(this.getHighlightedOption()==this.nextButton){this.selectPreviousNode();}},getHighlightedOption:function(){return this._getSelectedAttr();}});});},"dojo/parser":function(){define("dojo/parser",["./_base/kernel","./_base/lang","./_base/array","./_base/html","./_base/window","./_base/url","./_base/json","./aspect","./date/stamp","./query","./on","./ready"],function(dojo,_1c4,_1c5,_1c6,_1c7,_1c8,_1c9,_1ca,_1cb,_1cc,don){new Date("X");var _1cd={"dom-attributes-explicit":document.createElement("div").attributes.length<40};function has(_1ce){return _1cd[_1ce];};dojo.parser=new function(){var _1cf={};function _1d0(_1d1){var map={};for(var name in _1d1){if(name.charAt(0)=="_"){continue;}map[name.toLowerCase()]=name;}return map;};_1ca.after(_1c4,"extend",function(){_1cf={};},true);var _1d2={};this._functionFromScript=function(_1d3,_1d4){var _1d5="";var _1d6="";var _1d7=(_1d3.getAttribute(_1d4+"args")||_1d3.getAttribute("args"));if(_1d7){_1c5.forEach(_1d7.split(/\s*,\s*/),function(part,idx){_1d5+="var "+part+" = arguments["+idx+"]; ";});}var _1d8=_1d3.getAttribute("with");if(_1d8&&_1d8.length){_1c5.forEach(_1d8.split(/\s*,\s*/),function(part){_1d5+="with("+part+"){";_1d6+="}";});}return new Function(_1d5+_1d3.innerHTML+_1d6);};this.instantiate=function(_1d9,_1da,args){var _1db=[],_1da=_1da||{};args=args||{};var _1dc=(args.scope||dojo._scopeName)+"Type",_1dd="data-"+(args.scope||dojo._scopeName)+"-",_1de=_1dd+"type",_1df=_1dd+"props",_1e0=_1dd+"attach-point",_1e1=_1dd+"attach-event",_1e2=_1dd+"id";var _1e3={};_1c5.forEach([_1df,_1de,_1dc,_1e2,"jsId",_1e0,_1e1,"dojoAttachPoint","dojoAttachEvent","class","style"],function(name){_1e3[name.toLowerCase()]=name.replace(args.scope,"dojo");});_1c5.forEach(_1d9,function(obj){if(!obj){return;}var node=obj.node||obj,type=_1dc in _1da?_1da[_1dc]:obj.node?obj.type:(node.getAttribute(_1de)||node.getAttribute(_1dc)),ctor=_1d2[type]||(_1d2[type]=_1c4.getObject(type)),_1e4=ctor&&ctor.prototype;if(!ctor){throw new Error("Could not load class '"+type);}var _1e5={};if(args.defaults){_1c4.mixin(_1e5,args.defaults);}if(obj.inherited){_1c4.mixin(_1e5,obj.inherited);}var _1e6;if(has("dom-attributes-explicit")){_1e6=node.attributes;}else{var _1e7=/^input$|^img$/i.test(node.nodeName)?node:node.cloneNode(false),_1e8=_1e7.outerHTML.replace(/=[^\s"']+|="[^"]*"|='[^']*'/g,"").replace(/^\s*<[a-zA-Z0-9]*/,"").replace(/>.*$/,"");_1e6=_1c5.map(_1e8.split(/\s+/),function(name){var _1e9=name.toLowerCase();return {name:name,value:(node.nodeName=="LI"&&name=="value")||_1e9=="enctype"?node.getAttribute(_1e9):node.getAttributeNode(_1e9).value,specified:true};});}var i=0,item;while(item=_1e6[i++]){if(!item||!item.specified){continue;}var name=item.name,_1ea=name.toLowerCase(),_1eb=item.value;if(_1ea in _1e3){switch(_1e3[_1ea]){case "data-dojo-props":var _1ec=_1eb;break;case "data-dojo-id":case "jsId":var _1ed=_1eb;break;case "data-dojo-attach-point":case "dojoAttachPoint":_1e5.dojoAttachPoint=_1eb;break;case "data-dojo-attach-event":case "dojoAttachEvent":_1e5.dojoAttachEvent=_1eb;break;case "class":_1e5["class"]=node.className;break;case "style":_1e5["style"]=node.style&&node.style.cssText;break;}}else{if(!(name in _1e4)){var map=(_1cf[type]||(_1cf[type]=_1d0(_1e4)));name=map[_1ea]||name;}if(name in _1e4){switch(typeof _1e4[name]){case "string":_1e5[name]=_1eb;break;case "number":_1e5[name]=_1eb.length?Number(_1eb):NaN;break;case "boolean":_1e5[name]=_1eb.toLowerCase()!="false";break;case "function":if(_1eb===""||_1eb.search(/[^\w\.]+/i)!=-1){_1e5[name]=new Function(_1eb);}else{_1e5[name]=_1c4.getObject(_1eb,false)||new Function(_1eb);}break;default:var pVal=_1e4[name];_1e5[name]=(pVal&&"length" in pVal)?(_1eb?_1eb.split(/\s*,\s*/):[]):(pVal instanceof Date)?(_1eb==""?new Date(""):_1eb=="now"?new Date():_1cb.fromISOString(_1eb)):(pVal instanceof dojo._Url)?(dojo.baseUrl+_1eb):_1c9.fromJson(_1eb);}}else{_1e5[name]=_1eb;}}}if(_1ec){try{_1ec=_1c9.fromJson.call(args.propsThis,"{"+_1ec+"}");_1c4.mixin(_1e5,_1ec);}catch(e){throw new Error(e.toString()+" in data-dojo-props='"+_1ec+"'");}}_1c4.mixin(_1e5,_1da);var _1ee=obj.node?obj.scripts:(ctor&&(ctor._noScript||_1e4._noScript)?[]:_1cc("> script[type^='dojo/']",node));var _1ef=[],_1f0=[],_1f1=[],on=[];if(_1ee){for(i=0;i<_1ee.length;i++){var _1f2=_1ee[i];node.removeChild(_1f2);var _1f3=(_1f2.getAttribute(_1dd+"event")||_1f2.getAttribute("event")),prop=_1f2.getAttribute(_1dd+"prop"),type=_1f2.getAttribute("type"),nf=this._functionFromScript(_1f2,_1dd);if(_1f3){if(type=="dojo/connect"){_1ef.push({event:_1f3,func:nf});}else{if(type=="dojo/on"){on.push({event:_1f3,func:nf});}else{_1e5[_1f3]=nf;}}}else{if(type=="dojo/watch"){_1f1.push({prop:prop,func:nf});}else{_1f0.push(nf);}}}}var _1f4=ctor.markupFactory||_1e4.markupFactory;var _1f5=_1f4?_1f4(_1e5,node,ctor):new ctor(_1e5,node);_1db.push(_1f5);if(_1ed){_1c4.setObject(_1ed,_1f5);}for(i=0;i<_1ef.length;i++){_1ca.after(_1f5,_1ef[i].event,dojo.hitch(_1f5,_1ef[i].func),true);}for(i=0;i<_1f0.length;i++){_1f0[i].call(_1f5);}for(i=0;i<_1f1.length;i++){_1f5.watch(_1f1[i].prop,_1f1[i].func);}for(i=0;i<on.length;i++){don(_1f5,on[i].event,on[i].func);}},this);if(!_1da._started){_1c5.forEach(_1db,function(_1f6){if(!args.noStart&&_1f6&&_1c4.isFunction(_1f6.startup)&&!_1f6._started){_1f6.startup();}});}return _1db;};this.parse=function(_1f7,args){var root;if(!args&&_1f7&&_1f7.rootNode){args=_1f7;root=args.rootNode;}else{root=_1f7;}root=root?_1c6.byId(root):_1c7.body();args=args||{};var _1f8=(args.scope||dojo._scopeName)+"Type",_1f9="data-"+(args.scope||dojo._scopeName)+"-",_1fa=_1f9+"type",_1fb=_1f9+"textdir";var list=[];var node=root.firstChild;var _1fc=args&&args.inherited;if(!_1fc){function _1fd(node,attr){return (node.getAttribute&&node.getAttribute(attr))||(node!==_1c7.doc&&node!==_1c7.doc.documentElement&&node.parentNode?_1fd(node.parentNode,attr):null);};_1fc={dir:_1fd(root,"dir"),lang:_1fd(root,"lang"),textDir:_1fd(root,_1fb)};for(var key in _1fc){if(!_1fc[key]){delete _1fc[key];}}}var _1fe={inherited:_1fc};var _1ff;var _200;function _201(_202){if(!_202.inherited){_202.inherited={};var node=_202.node,_203=_201(_202.parent);var _204={dir:node.getAttribute("dir")||_203.dir,lang:node.getAttribute("lang")||_203.lang,textDir:node.getAttribute(_1fb)||_203.textDir};for(var key in _204){if(_204[key]){_202.inherited[key]=_204[key];}}}return _202.inherited;};while(true){if(!node){if(!_1fe||!_1fe.node){break;}node=_1fe.node.nextSibling;_1ff=_1fe.scripts;_200=false;_1fe=_1fe.parent;continue;}if(node.nodeType!=1){node=node.nextSibling;continue;}if(_1ff&&node.nodeName.toLowerCase()=="script"){type=node.getAttribute("type");if(type&&/^dojo\/\w/i.test(type)){_1ff.push(node);}node=node.nextSibling;continue;}if(_200){node=node.nextSibling;continue;}var type=node.getAttribute(_1fa)||node.getAttribute(_1f8);var _205=node.firstChild;if(!type&&(!_205||(_205.nodeType==3&&!_205.nextSibling))){node=node.nextSibling;continue;}var _206={node:node,scripts:_1ff,parent:_1fe};var ctor=type&&(_1d2[type]||(_1d2[type]=_1c4.getObject(type))),_207=ctor&&!ctor.prototype._noScript?[]:null;if(type){list.push({"type":type,node:node,scripts:_207,inherited:_201(_206)});}node=_205;_1ff=_207;_200=ctor&&ctor.prototype.stopParser&&!(args&&args.template);_1fe=_206;}var _208=args&&args.template?{template:true}:null;return this.instantiate(list,_208,args);};}();if(dojo.config.parseOnLoad){dojo.ready(100,dojo.parser,"parse");}return dojo.parser;});},"url:dijit/form/templates/DropDownButton.html":"<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" data-dojo-attach-point=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\trole=\"button\" aria-haspopup=\"true\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdata-dojo-attach-point=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">&#9660;</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-point=\"valueNode\"\n/></span>\n","dojo/dnd/Manager":function(){define("dojo/dnd/Manager",["../main","../Evented","./common","./autoscroll","./Avatar"],function(dojo,_209){var _20a=dojo.declare("dojo.dnd.Manager",[_209],{constructor:function(){this.avatar=null;this.source=null;this.nodes=[];this.copy=true;this.target=null;this.canDropFlag=false;this.events=[];},OFFSET_X:16,OFFSET_Y:16,overSource:function(_20b){if(this.avatar){this.target=(_20b&&_20b.targetState!="Disabled")?_20b:null;this.canDropFlag=Boolean(this.target);this.avatar.update();}dojo.publish("/dnd/source/over",[_20b]);},outSource:function(_20c){if(this.avatar){if(this.target==_20c){this.target=null;this.canDropFlag=false;this.avatar.update();dojo.publish("/dnd/source/over",[null]);}}else{dojo.publish("/dnd/source/over",[null]);}},startDrag:function(_20d,_20e,copy){this.source=_20d;this.nodes=_20e;this.copy=Boolean(copy);this.avatar=this.makeAvatar();dojo.body().appendChild(this.avatar.node);dojo.publish("/dnd/start",[_20d,_20e,this.copy]);this.events=[dojo.connect(dojo.doc,"onmousemove",this,"onMouseMove"),dojo.connect(dojo.doc,"onmouseup",this,"onMouseUp"),dojo.connect(dojo.doc,"onkeydown",this,"onKeyDown"),dojo.connect(dojo.doc,"onkeyup",this,"onKeyUp"),dojo.connect(dojo.doc,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent)];var c="dojoDnd"+(copy?"Copy":"Move");dojo.addClass(dojo.body(),c);},canDrop:function(flag){var _20f=Boolean(this.target&&flag);if(this.canDropFlag!=_20f){this.canDropFlag=_20f;this.avatar.update();}},stopDrag:function(){dojo.removeClass(dojo.body(),["dojoDndCopy","dojoDndMove"]);dojo.forEach(this.events,dojo.disconnect);this.events=[];this.avatar.destroy();this.avatar=null;this.source=this.target=null;this.nodes=[];},makeAvatar:function(){return new dojo.dnd.Avatar(this);},updateAvatar:function(){this.avatar.update();},onMouseMove:function(e){var a=this.avatar;if(a){dojo.dnd.autoScrollNodes(e);var s=a.node.style;s.left=(e.pageX+this.OFFSET_X)+"px";s.top=(e.pageY+this.OFFSET_Y)+"px";var copy=Boolean(this.source.copyState(dojo.isCopyKey(e)));if(this.copy!=copy){this._setCopyStatus(copy);}}},onMouseUp:function(e){if(this.avatar){if(this.target&&this.canDropFlag){var copy=Boolean(this.source.copyState(dojo.isCopyKey(e))),_210=[this.source,this.nodes,copy,this.target,e];dojo.publish("/dnd/drop/before",_210);dojo.publish("/dnd/drop",_210);}else{dojo.publish("/dnd/cancel");}this.stopDrag();}},onKeyDown:function(e){if(this.avatar){switch(e.keyCode){case dojo.keys.CTRL:var copy=Boolean(this.source.copyState(true));if(this.copy!=copy){this._setCopyStatus(copy);}break;case dojo.keys.ESCAPE:dojo.publish("/dnd/cancel");this.stopDrag();break;}}},onKeyUp:function(e){if(this.avatar&&e.keyCode==dojo.keys.CTRL){var copy=Boolean(this.source.copyState(false));if(this.copy!=copy){this._setCopyStatus(copy);}}},_setCopyStatus:function(copy){this.copy=copy;this.source._markDndStatus(this.copy);this.updateAvatar();dojo.replaceClass(dojo.body(),"dojoDnd"+(this.copy?"Copy":"Move"),"dojoDnd"+(this.copy?"Move":"Copy"));}});dojo.dnd._manager=null;_20a.manager=dojo.dnd.manager=function(){if(!dojo.dnd._manager){dojo.dnd._manager=new dojo.dnd.Manager();}return dojo.dnd._manager;};return _20a;});},"dijit/form/ToggleButton":function(){define("dijit/form/ToggleButton",["dojo/_base/declare","dojo/_base/kernel","./Button","./_ToggleButtonMixin"],function(_211,_212,_213,_214){return _211("dijit.form.ToggleButton",[_213,_214],{baseClass:"dijitToggleButton",setChecked:function(_215){_212.deprecated("setChecked("+_215+") is deprecated. Use set('checked',"+_215+") instead.","","2.0");this.set("checked",_215);}});});},"dojo/date/stamp":function(){define("dojo/date/stamp",["../_base/kernel","../_base/lang","../_base/array"],function(dojo,lang,_216){lang.getObject("date.stamp",true,dojo);dojo.date.stamp.fromISOString=function(_217,_218){if(!dojo.date.stamp._isoRegExp){dojo.date.stamp._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;}var _219=dojo.date.stamp._isoRegExp.exec(_217),_21a=null;if(_219){_219.shift();if(_219[1]){_219[1]--;}if(_219[6]){_219[6]*=1000;}if(_218){_218=new Date(_218);_216.forEach(_216.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(prop){return _218["get"+prop]();}),function(_21b,_21c){_219[_21c]=_219[_21c]||_21b;});}_21a=new Date(_219[0]||1970,_219[1]||0,_219[2]||1,_219[3]||0,_219[4]||0,_219[5]||0,_219[6]||0);if(_219[0]<100){_21a.setFullYear(_219[0]||1970);}var _21d=0,_21e=_219[7]&&_219[7].charAt(0);if(_21e!="Z"){_21d=((_219[8]||0)*60)+(Number(_219[9])||0);if(_21e!="-"){_21d*=-1;}}if(_21e){_21d-=_21a.getTimezoneOffset();}if(_21d){_21a.setTime(_21a.getTime()+_21d*60000);}}return _21a;};dojo.date.stamp.toISOString=function(_21f,_220){var _221=function(n){return (n<10)?"0"+n:n;};_220=_220||{};var _222=[],_223=_220.zulu?"getUTC":"get",date="";if(_220.selector!="time"){var year=_21f[_223+"FullYear"]();date=["0000".substr((year+"").length)+year,_221(_21f[_223+"Month"]()+1),_221(_21f[_223+"Date"]())].join("-");}_222.push(date);if(_220.selector!="date"){var time=[_221(_21f[_223+"Hours"]()),_221(_21f[_223+"Minutes"]()),_221(_21f[_223+"Seconds"]())].join(":");var _224=_21f[_223+"Milliseconds"]();if(_220.milliseconds){time+="."+(_224<100?"0":"")+_221(_224);}if(_220.zulu){time+="Z";}else{if(_220.selector!="time"){var _225=_21f.getTimezoneOffset();var _226=Math.abs(_225);time+=(_225>0?"-":"+")+_221(Math.floor(_226/60))+":"+_221(_226%60);}}_222.push(time);}return _222.join("T");};return dojo.date.stamp;});},"dojo/Stateful":function(){define("dojo/Stateful",["./_base/kernel","./_base/declare","./_base/lang","./_base/array"],function(dojo,_227,lang,_228){return dojo.declare("dojo.Stateful",null,{postscript:function(_229){if(_229){lang.mixin(this,_229);}},get:function(name){return this[name];},set:function(name,_22a){if(typeof name==="object"){for(var x in name){this.set(x,name[x]);}return this;}var _22b=this[name];this[name]=_22a;if(this._watchCallbacks){this._watchCallbacks(name,_22b,_22a);}return this;},watch:function(name,_22c){var _22d=this._watchCallbacks;if(!_22d){var self=this;_22d=this._watchCallbacks=function(name,_22e,_22f,_230){var _231=function(_232){if(_232){_232=_232.slice();for(var i=0,l=_232.length;i<l;i++){try{_232[i].call(self,name,_22e,_22f);}catch(e){console.error(e);}}}};_231(_22d["_"+name]);if(!_230){_231(_22d["*"]);}};}if(!_22c&&typeof name==="function"){_22c=name;name="*";}else{name="_"+name;}var _233=_22d[name];if(typeof _233!=="object"){_233=_22d[name]=[];}_233.push(_22c);return {unwatch:function(){_233.splice(_228.indexOf(_233,_22c),1);}};}});});},"dijit/layout/AccordionContainer":function(){require({cache:{"url:dijit/layout/templates/AccordionButton.html":"<div data-dojo-attach-event='onclick:_onTitleClick' class='dijitAccordionTitle' role=\"presentation\">\n\t<div data-dojo-attach-point='titleNode,focusNode' data-dojo-attach-event='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' role=\"tab\" aria-expanded=\"false\"\n\t\t><span class='dijitInline dijitAccordionArrow' role=\"presentation\"></span\n\t\t><span class='arrowTextUp' role=\"presentation\">+</span\n\t\t><span class='arrowTextDown' role=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" data-dojo-attach-point='iconNode' style=\"vertical-align: middle\" role=\"presentation\"/>\n\t\t<span role=\"presentation\" data-dojo-attach-point='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"}});define("dijit/layout/AccordionContainer",["require","dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/_base/fx","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/_base/sniff","dojo/topic","../focus","../_base/manager","dojo/ready","../_Widget","../_Container","../_TemplatedMixin","../_CssStateMixin","./StackContainer","./ContentPane","dojo/text!./templates/AccordionButton.html"],function(_234,_235,_236,_237,fx,dom,_238,_239,_23a,_23b,_23c,keys,lang,has,_23d,_23e,_23f,_240,_241,_242,_243,_244,_245,_246,_247){var _248=_236("dijit.layout._AccordionButton",[_241,_243,_244],{templateString:_247,label:"",_setLabelAttr:{node:"titleTextNode",type:"innerHTML"},title:"",_setTitleAttr:{node:"titleTextNode",type:"attribute",attribute:"title"},iconClassAttr:"",_setIconClassAttr:{node:"iconNode",type:"class"},baseClass:"dijitAccordionTitle",getParent:function(){return this.parent;},buildRendering:function(){this.inherited(arguments);var _249=this.id.replace(" ","_");_238.set(this.titleTextNode,"id",_249+"_title");this.focusNode.setAttribute("aria-labelledby",_238.get(this.titleTextNode,"id"));dom.setSelectable(this.domNode,false);},getTitleHeight:function(){return _23b.getMarginSize(this.domNode).h;},_onTitleClick:function(){var _24a=this.getParent();_24a.selectChild(this.contentWidget,true);_23e.focus(this.focusNode);},_onTitleKeyPress:function(evt){return this.getParent()._onKeyPress(evt,this.contentWidget);},_setSelectedAttr:function(_24b){this._set("selected",_24b);this.focusNode.setAttribute("aria-expanded",_24b);this.focusNode.setAttribute("aria-selected",_24b);this.focusNode.setAttribute("tabIndex",_24b?"0":"-1");}});var _24c=_236("dijit.layout._AccordionInnerContainer",[_241,_244],{baseClass:"dijitAccordionInnerContainer",isLayoutContainer:true,buildRendering:function(){this.domNode=_23a.place("<div class='"+this.baseClass+"' role='presentation'>",this.contentWidget.domNode,"after");var _24d=this.contentWidget,cls=lang.isString(this.buttonWidget)?lang.getObject(this.buttonWidget):this.buttonWidget;this.button=_24d._buttonWidget=(new cls({contentWidget:_24d,label:_24d.title,title:_24d.tooltip,dir:_24d.dir,lang:_24d.lang,textDir:_24d.textDir,iconClass:_24d.iconClass,id:_24d.id+"_button",parent:this.parent})).placeAt(this.domNode);this.containerNode=_23a.place("<div class='dijitAccordionChildWrapper' style='display:none'>",this.domNode);_23a.place(this.contentWidget.domNode,this.containerNode);},postCreate:function(){this.inherited(arguments);var _24e=this.button;this._contentWidgetWatches=[this.contentWidget.watch("title",lang.hitch(this,function(name,_24f,_250){_24e.set("label",_250);})),this.contentWidget.watch("tooltip",lang.hitch(this,function(name,_251,_252){_24e.set("title",_252);})),this.contentWidget.watch("iconClass",lang.hitch(this,function(name,_253,_254){_24e.set("iconClass",_254);}))];},_setSelectedAttr:function(_255){this._set("selected",_255);this.button.set("selected",_255);if(_255){var cw=this.contentWidget;if(cw.onSelected){cw.onSelected();}}},startup:function(){this.contentWidget.startup();},destroy:function(){this.button.destroyRecursive();_235.forEach(this._contentWidgetWatches||[],function(w){w.unwatch();});delete this.contentWidget._buttonWidget;delete this.contentWidget._wrapperWidget;this.inherited(arguments);},destroyDescendants:function(_256){this.contentWidget.destroyRecursive(_256);}});var _257=_236("dijit.layout.AccordionContainer",_245,{duration:_23f.defaultDuration,buttonWidget:_248,baseClass:"dijitAccordionContainer",buildRendering:function(){this.inherited(arguments);this.domNode.style.overflow="hidden";this.domNode.setAttribute("role","tablist");},startup:function(){if(this._started){return;}this.inherited(arguments);if(this.selectedChildWidget){var _258=this.selectedChildWidget.containerNode.style;_258.display="";_258.overflow="auto";this.selectedChildWidget._wrapperWidget.set("selected",true);}},layout:function(){var _259=this.selectedChildWidget;if(!_259){return;}var _25a=_259._wrapperWidget.domNode,_25b=_23b.getMarginExtents(_25a),_25c=_23b.getPadBorderExtents(_25a),_25d=_259._wrapperWidget.containerNode,_25e=_23b.getMarginExtents(_25d),_25f=_23b.getPadBorderExtents(_25d),_260=this._contentBox;var _261=0;_235.forEach(this.getChildren(),function(_262){if(_262!=_259){_261+=_23b.getMarginSize(_262._wrapperWidget.domNode).h;}});this._verticalSpace=_260.h-_261-_25b.h-_25c.h-_25e.h-_25f.h-_259._buttonWidget.getTitleHeight();this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-_25b.w-_25c.w-_25e.w-_25f.w};if(_259){_259.resize(this._containerContentBox);}},_setupChild:function(_263){_263._wrapperWidget=_24c({contentWidget:_263,buttonWidget:this.buttonWidget,id:_263.id+"_wrapper",dir:_263.dir,lang:_263.lang,textDir:_263.textDir,parent:this});this.inherited(arguments);},addChild:function(_264,_265){if(this._started){var _266=this.containerNode;if(_265&&typeof _265=="number"){var _267=_241.prototype.getChildren.call(this);if(_267&&_267.length>=_265){_266=_267[_265-1].domNode;_265="after";}}_23a.place(_264.domNode,_266,_265);if(!_264._started){_264.startup();}this._setupChild(_264);_23d.publish(this.id+"-addChild",_264,_265);this.layout();if(!this.selectedChildWidget){this.selectChild(_264);}}else{this.inherited(arguments);}},removeChild:function(_268){if(_268._wrapperWidget){_23a.place(_268.domNode,_268._wrapperWidget.domNode,"after");_268._wrapperWidget.destroy();delete _268._wrapperWidget;}_239.remove(_268.domNode,"dijitHidden");this.inherited(arguments);},getChildren:function(){return _235.map(this.inherited(arguments),function(_269){return _269.declaredClass=="dijit.layout._AccordionInnerContainer"?_269.contentWidget:_269;},this);},destroy:function(){if(this._animation){this._animation.stop();}_235.forEach(this.getChildren(),function(_26a){if(_26a._wrapperWidget){_26a._wrapperWidget.destroy();}else{_26a.destroyRecursive();}});this.inherited(arguments);},_showChild:function(_26b){_26b._wrapperWidget.containerNode.style.display="block";return this.inherited(arguments);},_hideChild:function(_26c){_26c._wrapperWidget.containerNode.style.display="none";this.inherited(arguments);},_transition:function(_26d,_26e,_26f){if(has("ie")<8){_26f=false;}if(this._animation){this._animation.stop(true);delete this._animation;}var self=this;if(_26d){_26d._wrapperWidget.set("selected",true);var d=this._showChild(_26d);if(this.doLayout&&_26d.resize){_26d.resize(this._containerContentBox);}}if(_26e){_26e._wrapperWidget.set("selected",false);if(!_26f){this._hideChild(_26e);}}if(_26f){var _270=_26d._wrapperWidget.containerNode,_271=_26e._wrapperWidget.containerNode;var _272=_26d._wrapperWidget.containerNode,_273=_23b.getMarginExtents(_272),_274=_23b.getPadBorderExtents(_272),_275=_273.h+_274.h;_271.style.height=(self._verticalSpace-_275)+"px";this._animation=new fx.Animation({node:_270,duration:this.duration,curve:[1,this._verticalSpace-_275-1],onAnimate:function(_276){_276=Math.floor(_276);_270.style.height=_276+"px";_271.style.height=(self._verticalSpace-_275-_276)+"px";},onEnd:function(){delete self._animation;_270.style.height="auto";_26e._wrapperWidget.containerNode.style.display="none";_271.style.height="auto";self._hideChild(_26e);}});this._animation.onStop=this._animation.onEnd;this._animation.play();}return d;},_onKeyPress:function(e,_277){if(this.disabled||e.altKey||!(_277||e.ctrlKey)){return;}var c=e.charOrCode;if((_277&&(c==keys.LEFT_ARROW||c==keys.UP_ARROW))||(e.ctrlKey&&c==keys.PAGE_UP)){this._adjacent(false)._buttonWidget._onTitleClick();_237.stop(e);}else{if((_277&&(c==keys.RIGHT_ARROW||c==keys.DOWN_ARROW))||(e.ctrlKey&&(c==keys.PAGE_DOWN||c==keys.TAB))){this._adjacent(true)._buttonWidget._onTitleClick();_237.stop(e);}}}});if(!_23c.isAsync){_240(0,function(){var _278=["dijit/layout/AccordionPane"];_234(_278);});}_257._InnerContainer=_24c;_257._Button=_248;return _257;});},"dijit/form/_AutoCompleterMixin":function(){define("dijit/form/_AutoCompleterMixin",["dojo/_base/connect","dojo/data/util/filter","dojo/_base/declare","dojo/_base/Deferred","dojo/dom-attr","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/query","dojo/regexp","dojo/_base/sniff","dojo/string","dojo/_base/window","./DataList","../registry","./_TextBoxMixin"],function(_279,_27a,_27b,_27c,_27d,_27e,keys,lang,_27f,_280,has,_281,win,_282,_283,_284){return _27b("dijit.form._AutoCompleterMixin",null,{item:null,pageSize:Infinity,store:null,fetchProperties:{},query:{},autoComplete:true,highlightMatch:"first",searchDelay:100,searchAttr:"name",labelAttr:"",labelType:"text",queryExpr:"${0}*",ignoreCase:true,maxHeight:-1,_stopClickEvents:false,_getCaretPos:function(_285){var pos=0;if(typeof (_285.selectionStart)=="number"){pos=_285.selectionStart;}else{if(has("ie")){var tr=win.doc.selection.createRange().duplicate();var ntr=_285.createTextRange();tr.move("character",0);ntr.move("character",0);try{ntr.setEndPoint("EndToEnd",tr);pos=String(ntr.text).replace(/\r/g,"").length;}catch(e){}}}return pos;},_setCaretPos:function(_286,_287){_287=parseInt(_287);_284.selectInputText(_286,_287,_287);},_setDisabledAttr:function(_288){this.inherited(arguments);this.domNode.setAttribute("aria-disabled",_288);},_abortQuery:function(){if(this.searchTimer){clearTimeout(this.searchTimer);this.searchTimer=null;}if(this._fetchHandle){if(this._fetchHandle.cancel){this._cancelingQuery=true;this._fetchHandle.cancel();this._cancelingQuery=false;}this._fetchHandle=null;}},_onInput:function(evt){this.inherited(arguments);if(evt.charOrCode==229){this._onKey(evt);}},_onKey:function(evt){if(this.disabled||this.readOnly){return;}var key=evt.charOrCode;if(evt.altKey||((evt.ctrlKey||evt.metaKey)&&(key!="x"&&key!="v"))||key==keys.SHIFT){return;}var _289=false;var pw=this.dropDown;var _28a=null;this._prev_key_backspace=false;this._abortQuery();this.inherited(arguments);if(this._opened){_28a=pw.getHighlightedOption();}switch(key){case keys.PAGE_DOWN:case keys.DOWN_ARROW:case keys.PAGE_UP:case keys.UP_ARROW:if(this._opened){this._announceOption(_28a);}_27e.stop(evt);break;case keys.ENTER:if(_28a){if(_28a==pw.nextButton){this._nextSearch(1);_27e.stop(evt);break;}else{if(_28a==pw.previousButton){this._nextSearch(-1);_27e.stop(evt);break;}}}else{this._setBlurValue();this._setCaretPos(this.focusNode,this.focusNode.value.length);}if(this._opened||this._fetchHandle){_27e.stop(evt);}case keys.TAB:var _28b=this.get("displayedValue");if(pw&&(_28b==pw._messages["previousMessage"]||_28b==pw._messages["nextMessage"])){break;}if(_28a){this._selectOption(_28a);}case keys.ESCAPE:if(this._opened){this._lastQuery=null;this.closeDropDown();}break;case " ":if(_28a){_27e.stop(evt);this._selectOption(_28a);this.closeDropDown();}else{_289=true;}break;case keys.DELETE:case keys.BACKSPACE:this._prev_key_backspace=true;_289=true;break;default:_289=typeof key=="string"||key==229;}if(_289){this.item=undefined;this.searchTimer=setTimeout(lang.hitch(this,"_startSearchFromInput"),1);}},_autoCompleteText:function(text){var fn=this.focusNode;_284.selectInputText(fn,fn.value.length);var _28c=this.ignoreCase?"toLowerCase":"substr";if(text[_28c](0).indexOf(this.focusNode.value[_28c](0))==0){var cpos=this.autoComplete?this._getCaretPos(fn):fn.value.length;if((cpos+1)>fn.value.length){fn.value=text;_284.selectInputText(fn,cpos);}}else{fn.value=text;_284.selectInputText(fn);}},_openResultList:function(_28d,_28e,_28f){this._fetchHandle=null;if(this.disabled||this.readOnly||(_28e[this.searchAttr]!==this._lastQuery)){return;}var _290=this.dropDown.getHighlightedOption();this.dropDown.clearResultList();if(!_28d.length&&_28f.start==0){this.closeDropDown();return;}var _291=this.dropDown.createOptions(_28d,_28f,lang.hitch(this,"_getMenuLabelFromItem"));this._showResultList();if(_28f.direction){if(1==_28f.direction){this.dropDown.highlightFirstOption();}else{if(-1==_28f.direction){this.dropDown.highlightLastOption();}}if(_290){this._announceOption(this.dropDown.getHighlightedOption());}}else{if(this.autoComplete&&!this._prev_key_backspace&&!/^[*]+$/.test(_28e[this.searchAttr].toString())){this._announceOption(_291[1]);}}},_showResultList:function(){this.closeDropDown(true);this.openDropDown();this.domNode.setAttribute("aria-expanded","true");},loadDropDown:function(){this._startSearchAll();},isLoaded:function(){return false;},closeDropDown:function(){this._abortQuery();if(this._opened){this.inherited(arguments);this.domNode.setAttribute("aria-expanded","false");this.focusNode.removeAttribute("aria-activedescendant");}},_setBlurValue:function(){var _292=this.get("displayedValue");var pw=this.dropDown;if(pw&&(_292==pw._messages["previousMessage"]||_292==pw._messages["nextMessage"])){this._setValueAttr(this._lastValueReported,true);}else{if(typeof this.item=="undefined"){this.item=null;this.set("displayedValue",_292);}else{if(this.value!=this._lastValueReported){this._handleOnChange(this.value,true);}this._refreshState();}}},_setItemAttr:function(item,_293,_294){var _295="";if(item){if(!_294){_294=this.store._oldAPI?this.store.getValue(item,this.searchAttr):item[this.searchAttr];}_295=this._getValueField()!=this.searchAttr?this.store.getIdentity(item):_294;}this.set("value",_295,_293,_294,item);},_announceOption:function(node){if(!node){return;}var _296;if(node==this.dropDown.nextButton||node==this.dropDown.previousButton){_296=node.innerHTML;this.item=undefined;this.value="";}else{_296=(this.store._oldAPI?this.store.getValue(node.item,this.searchAttr):node.item[this.searchAttr]).toString();this.set("item",node.item,false,_296);}this.focusNode.value=this.focusNode.value.substring(0,this._lastInput.length);this.focusNode.setAttribute("aria-activedescendant",_27d.get(node,"id"));this._autoCompleteText(_296);},_selectOption:function(_297){this.closeDropDown();if(_297){this._announceOption(_297);}this._setCaretPos(this.focusNode,this.focusNode.value.length);this._handleOnChange(this.value,true);},_startSearchAll:function(){this._startSearch("");},_startSearchFromInput:function(){this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g,"\\$1"));},_getQueryString:function(text){return _281.substitute(this.queryExpr,[text]);},_startSearch:function(key){if(!this.dropDown){var _298=this.id+"_popup",_299=lang.isString(this.dropDownClass)?lang.getObject(this.dropDownClass,false):this.dropDownClass;this.dropDown=new _299({onChange:lang.hitch(this,this._selectOption),id:_298,dir:this.dir,textDir:this.textDir});this.focusNode.removeAttribute("aria-activedescendant");this.textbox.setAttribute("aria-owns",_298);}this._lastInput=key;var _29a=lang.clone(this.query);var _29b={start:0,count:this.pageSize,queryOptions:{ignoreCase:this.ignoreCase,deep:true}};lang.mixin(_29b,this.fetchProperties);var qs=this._getQueryString(key),q;if(this.store._oldAPI){q=qs;}else{q=_27a.patternToRegExp(qs,this.ignoreCase);q.toString=function(){return qs;};}this._lastQuery=_29a[this.searchAttr]=q;var _29c=this,_29d=function(){var _29e=_29c._fetchHandle=_29c.store.query(_29a,_29b);_27c.when(_29e,function(res){_29c._fetchHandle=null;res.total=_29e.total;_29c._openResultList(res,_29a,_29b);},function(err){_29c._fetchHandle=null;if(!_29c._cancelingQuery){console.error(_29c.declaredClass+" "+err.toString());_29c.closeDropDown();}});};this.searchTimer=setTimeout(lang.hitch(this,function(_29f,_2a0){this.searchTimer=null;_29d();this._nextSearch=this.dropDown.onPage=function(_2a1){_29b.start+=_29b.count*_2a1;_29b.direction=_2a1;_29d();_2a0.focus();};},_29a,this),this.searchDelay);},_getValueField:function(){return this.searchAttr;},constructor:function(){this.query={};this.fetchProperties={};},postMixInProperties:function(){if(!this.store){var _2a2=this.srcNodeRef;var list=this.list;if(list){this.store=_283.byId(list);}else{this.store=new _282({},_2a2);}if(!("value" in this.params)){var item=(this.item=this.store.fetchSelectedItem());if(item){var _2a3=this._getValueField();this.value=this.store._oldAPI?this.store.getValue(item,_2a3):item[_2a3];}}}this.inherited(arguments);},postCreate:function(){var _2a4=_27f("label[for=\""+this.id+"\"]");if(_2a4.length){_2a4[0].id=(this.id+"_label");this.domNode.setAttribute("aria-labelledby",_2a4[0].id);}this.inherited(arguments);},_getMenuLabelFromItem:function(item){var _2a5=this.labelFunc(item,this.store),_2a6=this.labelType;if(this.highlightMatch!="none"&&this.labelType=="text"&&this._lastInput){_2a5=this.doHighlight(_2a5,this._escapeHtml(this._lastInput));_2a6="html";}return {html:_2a6=="html",label:_2a5};},doHighlight:function(_2a7,find){var _2a8=(this.ignoreCase?"i":"")+(this.highlightMatch=="all"?"g":""),i=this.queryExpr.indexOf("${0}");find=_280.escapeString(find);return this._escapeHtml(_2a7).replace(new RegExp((i==0?"^":"")+"("+find+")"+(i==(this.queryExpr.length-4)?"$":""),_2a8),"<span class=\"dijitComboBoxHighlightMatch\">$1</span>");},_escapeHtml:function(str){str=String(str).replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;");return str;},reset:function(){this.item=null;this.inherited(arguments);},labelFunc:function(item,_2a9){return (_2a9._oldAPI?_2a9.getValue(item,this.labelAttr||this.searchAttr):item[this.labelAttr||this.searchAttr]).toString();},_setValueAttr:function(_2aa,_2ab,_2ac,item){this._set("item",item||null);if(!_2aa){_2aa="";}this.inherited(arguments);},_setTextDirAttr:function(_2ad){this.inherited(arguments);if(this.dropDown){this.dropDown._set("textDir",_2ad);}}});});},"url:dijit/templates/ColorPalette.html":"<div class=\"dijitInline dijitColorPalette\">\n\t<table dojoAttachPoint=\"paletteTableNode\" class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\" role=\"grid\">\n\t\t<tbody data-dojo-attach-point=\"gridNode\"></tbody>\n\t</table>\n</div>\n","url:dijit/layout/templates/_ScrollingTabControllerButton.html":"<div data-dojo-attach-event=\"onclick:_onClick\">\n\t<div role=\"presentation\" class=\"dijitTabInnerDiv\" data-dojo-attach-point=\"innerDiv,focusNode\">\n\t\t<div role=\"presentation\" class=\"dijitTabContent dijitButtonContents\" data-dojo-attach-point=\"tabContent\">\n\t\t\t<img role=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t\t\t<span data-dojo-attach-point=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n\t\t</div>\n\t</div>\n</div>","dijit/form/MappedTextBox":function(){define("dijit/form/MappedTextBox",["dojo/_base/declare","dojo/dom-construct","./ValidationTextBox"],function(_2ae,_2af,_2b0){return _2ae("dijit.form.MappedTextBox",_2b0,{postMixInProperties:function(){this.inherited(arguments);this.nameAttrSetting="";},_setNameAttr:null,serialize:function(val){return val.toString?val.toString():"";},toString:function(){var val=this.filter(this.get("value"));return val!=null?(typeof val=="string"?val:this.serialize(val,this.constraints)):"";},validate:function(){this.valueNode.value=this.toString();return this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);this.valueNode=_2af.place("<input type='hidden'"+(this.name?" name='"+this.name.replace(/'/g,"&quot;")+"'":"")+"/>",this.textbox,"after");},reset:function(){this.valueNode.value="";this.inherited(arguments);}});});},"dijit/form/ComboBoxMixin":function(){require({cache:{"url:dijit/form/templates/DropDownBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdata-dojo-attach-point=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdata-dojo-attach-point=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n"}});define("dijit/form/ComboBoxMixin",["dojo/_base/declare","dojo/_base/Deferred","dojo/_base/kernel","dojo/_base/lang","dojo/store/util/QueryResults","./_AutoCompleterMixin","./_ComboBoxMenu","../_HasDropDown","dojo/text!./templates/DropDownBox.html"],function(_2b1,_2b2,_2b3,lang,_2b4,_2b5,_2b6,_2b7,_2b8){return _2b1("dijit.form.ComboBoxMixin",[_2b7,_2b5],{dropDownClass:_2b6,hasDownArrow:true,templateString:_2b8,baseClass:"dijitTextBox dijitComboBox",cssStateNodes:{"_buttonNode":"dijitDownArrowButton"},_setHasDownArrowAttr:function(val){this._set("hasDownArrow",val);this._buttonNode.style.display=val?"":"none";},_showResultList:function(){this.displayMessage("");this.inherited(arguments);},_setStoreAttr:function(_2b9){if(!_2b9.get){lang.mixin(_2b9,{_oldAPI:true,get:function(id){var _2ba=new _2b2();this.fetchItemByIdentity({identity:id,onItem:function(_2bb){_2ba.resolve(_2bb);},onError:function(_2bc){_2ba.reject(_2bc);}});return _2ba.promise;},query:function(_2bd,_2be){var _2bf=new _2b2(function(){_2c0.abort&&_2c0.abort();});var _2c0=this.fetch(lang.mixin({query:_2bd,onBegin:function(_2c1){_2bf.total=_2c1;},onComplete:function(_2c2){_2bf.resolve(_2c2);},onError:function(_2c3){_2bf.reject(_2c3);}},_2be));return _2b4(_2bf);}});}this._set("store",_2b9);},postMixInProperties:function(){if(this.params.store){this._setStoreAttr(this.params.store);}this.inherited(arguments);if(!this.params.store){var _2c4=this.declaredClass;lang.mixin(this.store,{getValue:function(item,attr){_2b3.deprecated(_2c4+".store.getValue(item, attr) is deprecated for builtin store. Use item.attr directly","","2.0");return item[attr];},getLabel:function(item){_2b3.deprecated(_2c4+".store.getLabel(item) is deprecated for builtin store. Use item.label directly","","2.0");return item.name;},fetch:function(args){_2b3.deprecated(_2c4+".store.fetch() is deprecated for builtin store.","Use store.query()","2.0");var shim=["dojo/data/ObjectStore"];require(shim,lang.hitch(this,function(_2c5){new _2c5({objectStore:this}).fetch(args);}));}});}}});});},"dijit/form/_TextBoxMixin":function(){define("dijit/form/_TextBoxMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/_base/event","dojo/keys","dojo/_base/lang",".."],function(_2c6,_2c7,dom,_2c8,keys,lang,_2c9){var _2ca=_2c7("dijit.form._TextBoxMixin",null,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",selectOnClick:false,placeHolder:"",_getValueAttr:function(){return this.parse(this.get("displayedValue"),this.constraints);},_setValueAttr:function(_2cb,_2cc,_2cd){var _2ce;if(_2cb!==undefined){_2ce=this.filter(_2cb);if(typeof _2cd!="string"){if(_2ce!==null&&((typeof _2ce!="number")||!isNaN(_2ce))){_2cd=this.filter(this.format(_2ce,this.constraints));}else{_2cd="";}}}if(_2cd!=null&&_2cd!=undefined&&((typeof _2cd)!="number"||!isNaN(_2cd))&&this.textbox.value!=_2cd){this.textbox.value=_2cd;this._set("displayedValue",this.get("displayedValue"));}if(this.textDir=="auto"){this.applyTextDir(this.focusNode,_2cd);}this.inherited(arguments,[_2ce,_2cc]);},displayedValue:"",_getDisplayedValueAttr:function(){return this.filter(this.textbox.value);},_setDisplayedValueAttr:function(_2cf){if(_2cf===null||_2cf===undefined){_2cf="";}else{if(typeof _2cf!="string"){_2cf=String(_2cf);}}this.textbox.value=_2cf;this._setValueAttr(this.get("value"),undefined);this._set("displayedValue",this.get("displayedValue"));if(this.textDir=="auto"){this.applyTextDir(this.focusNode,_2cf);}},format:function(_2d0){return ((_2d0==null||_2d0==undefined)?"":(_2d0.toString?_2d0.toString():_2d0));},parse:function(_2d1){return _2d1;},_refreshState:function(){},onInput:function(){},__skipInputEvent:false,_onInput:function(){if(this.textDir=="auto"){this.applyTextDir(this.focusNode,this.focusNode.value);}this._refreshState();this._set("displayedValue",this.get("displayedValue"));},postCreate:function(){this.textbox.setAttribute("value",this.textbox.value);this.inherited(arguments);var _2d2=function(e){var _2d3=e.charOrCode||e.keyCode||229;if(e.type=="keydown"){switch(_2d3){case keys.SHIFT:case keys.ALT:case keys.CTRL:case keys.META:case keys.CAPS_LOCK:return;default:if(_2d3>=65&&_2d3<=90){return;}}}if(e.type=="keypress"&&typeof _2d3!="string"){return;}if(e.type=="input"){if(this.__skipInputEvent){this.__skipInputEvent=false;return;}}else{this.__skipInputEvent=true;}var faux=lang.mixin({},e,{charOrCode:_2d3,wasConsumed:false,preventDefault:function(){faux.wasConsumed=true;e.preventDefault();},stopPropagation:function(){e.stopPropagation();}});if(this.onInput(faux)===false){_2c8.stop(faux);}if(faux.wasConsumed){return;}setTimeout(lang.hitch(this,"_onInput",faux),0);};_2c6.forEach(["onkeydown","onkeypress","onpaste","oncut","oninput","oncompositionend"],function(_2d4){this.connect(this.textbox,_2d4,_2d2);},this);},_blankValue:"",filter:function(val){if(val===null){return this._blankValue;}if(typeof val!="string"){return val;}if(this.trim){val=lang.trim(val);}if(this.uppercase){val=val.toUpperCase();}if(this.lowercase){val=val.toLowerCase();}if(this.propercase){val=val.replace(/[^\s]+/g,function(word){return word.substring(0,1).toUpperCase()+word.substring(1);});}return val;},_setBlurValue:function(){this._setValueAttr(this.get("value"),true);},_onBlur:function(e){if(this.disabled){return;}this._setBlurValue();this.inherited(arguments);if(this._selectOnClickHandle){this.disconnect(this._selectOnClickHandle);}},_isTextSelected:function(){return this.textbox.selectionStart==this.textbox.selectionEnd;},_onFocus:function(by){if(this.disabled||this.readOnly){return;}if(this.selectOnClick&&by=="mouse"){this._selectOnClickHandle=this.connect(this.domNode,"onmouseup",function(){this.disconnect(this._selectOnClickHandle);if(this._isTextSelected()){_2ca.selectInputText(this.textbox);}});}this.inherited(arguments);this._refreshState();},reset:function(){this.textbox.value="";this.inherited(arguments);},_setTextDirAttr:function(_2d5){if(!this._created||this.textDir!=_2d5){this._set("textDir",_2d5);this.applyTextDir(this.focusNode,this.focusNode.value);}}});_2ca._setSelectionRange=_2c9._setSelectionRange=function(_2d6,_2d7,stop){if(_2d6.setSelectionRange){_2d6.setSelectionRange(_2d7,stop);}};_2ca.selectInputText=_2c9.selectInputText=function(_2d8,_2d9,stop){_2d8=dom.byId(_2d8);if(isNaN(_2d9)){_2d9=0;}if(isNaN(stop)){stop=_2d8.value?_2d8.value.length:0;}try{_2d8.focus();_2ca._setSelectionRange(_2d8,_2d9,stop);}catch(e){}};return _2ca;});},"dijit/form/SimpleTextarea":function(){define("dijit/form/SimpleTextarea",["dojo/_base/declare","dojo/dom-class","dojo/_base/sniff","dojo/_base/window","./TextBox"],function(_2da,_2db,has,win,_2dc){return _2da("dijit.form.SimpleTextarea",_2dc,{baseClass:"dijitTextBox dijitTextArea",rows:"3",cols:"20",templateString:"<textarea ${!nameAttrSetting} data-dojo-attach-point='focusNode,containerNode,textbox' autocomplete='off'></textarea>",postMixInProperties:function(){if(!this.value&&this.srcNodeRef){this.value=this.srcNodeRef.value;}this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);if(has("ie")&&this.cols){_2db.add(this.textbox,"dijitTextAreaCols");}},filter:function(_2dd){if(_2dd){_2dd=_2dd.replace(/\r/g,"");}return this.inherited(arguments);},_onInput:function(e){if(this.maxLength){var _2de=parseInt(this.maxLength);var _2df=this.textbox.value.replace(/\r/g,"");var _2e0=_2df.length-_2de;if(_2e0>0){var _2e1=this.textbox;if(_2e1.selectionStart){var pos=_2e1.selectionStart;var cr=0;if(has("opera")){cr=(this.textbox.value.substring(0,pos).match(/\r/g)||[]).length;}this.textbox.value=_2df.substring(0,pos-_2e0-cr)+_2df.substring(pos-cr);_2e1.setSelectionRange(pos-_2e0,pos-_2e0);}else{if(win.doc.selection){_2e1.focus();var _2e2=win.doc.selection.createRange();_2e2.moveStart("character",-_2e0);_2e2.text="";_2e2.select();}}}}this.inherited(arguments);}});});},"url:dijit/layout/templates/_TabButton.html":"<div role=\"presentation\" data-dojo-attach-point=\"titleNode\" data-dojo-attach-event='onclick:onClick'>\n <div role=\"presentation\" class='dijitTabInnerDiv' data-dojo-attach-point='innerDiv'>\n <div role=\"presentation\" class='dijitTabContent' data-dojo-attach-point='tabContent'>\n \t<div role=\"presentation\" data-dojo-attach-point='focusNode'>\n\t\t <img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitTabButtonIcon\" data-dojo-attach-point='iconNode' />\n\t\t <span data-dojo-attach-point='containerNode' class='tabLabel'></span>\n\t\t <span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" data-dojo-attach-point='closeNode'\n\t\t \t\tdata-dojo-attach-event='onclick: onClickCloseButton' role=\"presentation\">\n\t\t <span data-dojo-attach-point='closeText' class='dijitTabCloseText'>[x]</span\n\t\t ></span>\n\t\t\t</div>\n </div>\n </div>\n</div>\n","dijit/_base/window":function(){define("dijit/_base/window",["dojo/window",".."],function(_2e3,_2e4){_2e4.getDocumentWindow=function(doc){return _2e3.get(doc);};});},"dijit/form/RadioButton":function(){define("dijit/form/RadioButton",["dojo/_base/declare","./CheckBox","./_RadioButtonMixin"],function(_2e5,_2e6,_2e7){return _2e5("dijit.form.RadioButton",[_2e6,_2e7],{baseClass:"dijitRadio"});});},"dijit/main":function(){define("dijit/main",["dojo/_base/kernel"],function(dojo){return dojo.dijit;});},"dijit/_OnDijitClickMixin":function(){define("dijit/_OnDijitClickMixin",["dojo/on","dojo/_base/array","dojo/keys","dojo/_base/declare","dojo/_base/sniff","dojo/_base/unload","dojo/_base/window"],function(on,_2e8,keys,_2e9,has,_2ea,win){var _2eb=null;if(has("ie")){(function(){var _2ec=function(evt){_2eb=evt.srcElement;};win.doc.attachEvent("onkeydown",_2ec);_2ea.addOnWindowUnload(function(){win.doc.detachEvent("onkeydown",_2ec);});})();}else{win.doc.addEventListener("keydown",function(evt){_2eb=evt.target;},true);}var _2ed=function(node,_2ee){if(/input|button/i.test(node.nodeName)){return on(node,"click",_2ee);}else{function _2ef(e){return (e.keyCode==keys.ENTER||e.keyCode==keys.SPACE)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey;};var _2f0=[on(node,"keypress",function(e){if(_2ef(e)){_2eb=e.target;e.preventDefault();}}),on(node,"keyup",function(e){if(_2ef(e)&&e.target==_2eb){_2eb=null;_2ee.call(this,e);}}),on(node,"click",function(e){_2ee.call(this,e);})];return {remove:function(){_2e8.forEach(_2f0,function(h){h.remove();});}};}};return _2e9("dijit._OnDijitClickMixin",null,{connect:function(obj,_2f1,_2f2){return this.inherited(arguments,[obj,_2f1=="ondijitclick"?_2ed:_2f1,_2f2]);}});});},"dijit/InlineEditBox":function(){require({cache:{"url:dijit/templates/InlineEditBox.html":"<span data-dojo-attach-point=\"editNode\" role=\"presentation\" style=\"position: absolute; visibility:hidden\" class=\"dijitReset dijitInline\"\n\tdata-dojo-attach-event=\"onkeypress: _onKeyPress\"\n\t><span data-dojo-attach-point=\"editorPlaceholder\"></span\n\t><span data-dojo-attach-point=\"buttonContainer\"\n\t\t><button data-dojo-type=\"dijit.form.Button\" data-dojo-props=\"label: '${buttonSave}', 'class': 'saveButton'\"\n\t\t\tdata-dojo-attach-point=\"saveButton\" data-dojo-attach-event=\"onClick:save\"></button\n\t\t><button data-dojo-type=\"dijit.form.Button\" data-dojo-props=\"label: '${buttonCancel}', 'class': 'cancelButton'\"\n\t\t\tdata-dojo-attach-point=\"cancelButton\" data-dojo-attach-event=\"onClick:cancel\"></button\n\t></span\n></span>\n"}});define("dijit/InlineEditBox",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/_base/event","dojo/i18n","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/_base/sniff","./focus","./_Widget","./_TemplatedMixin","./_WidgetsInTemplateMixin","./_Container","./form/Button","./form/_TextBoxMixin","./form/TextBox","dojo/text!./templates/InlineEditBox.html","dojo/i18n!./nls/common"],function(_2f3,_2f4,_2f5,_2f6,_2f7,_2f8,_2f9,i18n,_2fa,keys,lang,has,fm,_2fb,_2fc,_2fd,_2fe,_2ff,_300,_301,_302){var _303=_2f4("dijit._InlineEditor",[_2fb,_2fc,_2fd],{templateString:_302,postMixInProperties:function(){this.inherited(arguments);this.messages=i18n.getLocalization("dijit","common",this.lang);_2f3.forEach(["buttonSave","buttonCancel"],function(prop){if(!this[prop]){this[prop]=this.messages[prop];}},this);},buildRendering:function(){this.inherited(arguments);var cls=typeof this.editor=="string"?lang.getObject(this.editor):this.editor;var _304=this.sourceStyle,_305="line-height:"+_304.lineHeight+";",_306=_2f8.getComputedStyle(this.domNode);_2f3.forEach(["Weight","Family","Size","Style"],function(prop){var _307=_304["font"+prop],_308=_306["font"+prop];if(_308!=_307){_305+="font-"+prop+":"+_304["font"+prop]+";";}},this);_2f3.forEach(["marginTop","marginBottom","marginLeft","marginRight"],function(prop){this.domNode.style[prop]=_304[prop];},this);var _309=this.inlineEditBox.width;if(_309=="100%"){_305+="width:100%;";this.domNode.style.display="block";}else{_305+="width:"+(_309+(Number(_309)==_309?"px":""))+";";}var _30a=lang.delegate(this.inlineEditBox.editorParams,{style:_305,dir:this.dir,lang:this.lang,textDir:this.textDir});_30a["displayedValue" in cls.prototype?"displayedValue":"value"]=this.value;this.editWidget=new cls(_30a,this.editorPlaceholder);if(this.inlineEditBox.autoSave){_2f7.destroy(this.buttonContainer);}},postCreate:function(){this.inherited(arguments);var ew=this.editWidget;if(this.inlineEditBox.autoSave){this.connect(ew,"onChange","_onChange");this.connect(ew,"onKeyPress","_onKeyPress");}else{if("intermediateChanges" in ew){ew.set("intermediateChanges",true);this.connect(ew,"onChange","_onIntermediateChange");this.saveButton.set("disabled",true);}}},_onIntermediateChange:function(){this.saveButton.set("disabled",(this.getValue()==this._resetValue)||!this.enableSave());},destroy:function(){this.editWidget.destroy(true);this.inherited(arguments);},getValue:function(){var ew=this.editWidget;return String(ew.get("displayedValue" in ew?"displayedValue":"value"));},_onKeyPress:function(e){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(e.altKey||e.ctrlKey){return;}if(e.charOrCode==keys.ESCAPE){_2f9.stop(e);this.cancel(true);}else{if(e.charOrCode==keys.ENTER&&e.target.tagName=="INPUT"){_2f9.stop(e);this._onChange();}}}},_onBlur:function(){this.inherited(arguments);if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(this.getValue()==this._resetValue){this.cancel(false);}else{if(this.enableSave()){this.save(false);}}}},_onChange:function(){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing&&this.enableSave()){fm.focus(this.inlineEditBox.displayNode);}},enableSave:function(){return (this.editWidget.isValid?this.editWidget.isValid():true);},focus:function(){this.editWidget.focus();setTimeout(lang.hitch(this,function(){if(this.editWidget.focusNode&&this.editWidget.focusNode.tagName=="INPUT"){_300.selectInputText(this.editWidget.focusNode);}}),0);}});var _30b=_2f4("dijit.InlineEditBox",_2fb,{editing:false,autoSave:true,buttonSave:"",buttonCancel:"",renderAsHtml:false,editor:_301,editorWrapper:_303,editorParams:{},disabled:false,onChange:function(){},onCancel:function(){},width:"100%",value:"",noValueIndicator:has("ie")<=6?"<span style='font-family: wingdings; text-decoration: underline;'>&#160;&#160;&#160;&#160;&#x270d;&#160;&#160;&#160;&#160;</span>":"<span style='text-decoration: underline;'>&#160;&#160;&#160;&#160;&#x270d;&#160;&#160;&#160;&#160;</span>",constructor:function(){this.editorParams={};},postMixInProperties:function(){this.inherited(arguments);this.displayNode=this.srcNodeRef;var _30c={ondijitclick:"_onClick",onmouseover:"_onMouseOver",onmouseout:"_onMouseOut",onfocus:"_onMouseOver",onblur:"_onMouseOut"};for(var name in _30c){this.connect(this.displayNode,name,_30c[name]);}this.displayNode.setAttribute("role","button");if(!this.displayNode.getAttribute("tabIndex")){this.displayNode.setAttribute("tabIndex",0);}if(!this.value&&!("value" in this.params)){this.value=lang.trim(this.renderAsHtml?this.displayNode.innerHTML:(this.displayNode.innerText||this.displayNode.textContent||""));}if(!this.value){this.displayNode.innerHTML=this.noValueIndicator;}_2f6.add(this.displayNode,"dijitInlineEditBoxDisplayMode");},setDisabled:function(_30d){_2fa.deprecated("dijit.InlineEditBox.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_30d);},_setDisabledAttr:function(_30e){this.domNode.setAttribute("aria-disabled",_30e);if(_30e){this.displayNode.removeAttribute("tabIndex");}else{this.displayNode.setAttribute("tabIndex",0);}_2f6.toggle(this.displayNode,"dijitInlineEditBoxDisplayModeDisabled",_30e);this._set("disabled",_30e);},_onMouseOver:function(){if(!this.disabled){_2f6.add(this.displayNode,"dijitInlineEditBoxDisplayModeHover");}},_onMouseOut:function(){_2f6.remove(this.displayNode,"dijitInlineEditBoxDisplayModeHover");},_onClick:function(e){if(this.disabled){return;}if(e){_2f9.stop(e);}this._onMouseOut();setTimeout(lang.hitch(this,"edit"),0);},edit:function(){if(this.disabled||this.editing){return;}this._set("editing",true);this._savedPosition=_2f8.get(this.displayNode,"position")||"static";this._savedOpacity=_2f8.get(this.displayNode,"opacity")||"1";this._savedTabIndex=_2f5.get(this.displayNode,"tabIndex")||"0";if(this.wrapperWidget){var ew=this.wrapperWidget.editWidget;ew.set("displayedValue" in ew?"displayedValue":"value",this.value);}else{var _30f=_2f7.create("span",null,this.domNode,"before");var ewc=typeof this.editorWrapper=="string"?lang.getObject(this.editorWrapper):this.editorWrapper;this.wrapperWidget=new ewc({value:this.value,buttonSave:this.buttonSave,buttonCancel:this.buttonCancel,dir:this.dir,lang:this.lang,tabIndex:this._savedTabIndex,editor:this.editor,inlineEditBox:this,sourceStyle:_2f8.getComputedStyle(this.displayNode),save:lang.hitch(this,"save"),cancel:lang.hitch(this,"cancel"),textDir:this.textDir},_30f);if(!this._started){this.startup();}}var ww=this.wrapperWidget;_2f8.set(this.displayNode,{position:"absolute",opacity:"0"});_2f8.set(ww.domNode,{position:this._savedPosition,visibility:"visible",opacity:"1"});_2f5.set(this.displayNode,"tabIndex","-1");setTimeout(lang.hitch(ww,function(){this.focus();this._resetValue=this.getValue();}),0);},_onBlur:function(){this.inherited(arguments);if(!this.editing){}},destroy:function(){if(this.wrapperWidget&&!this.wrapperWidget._destroyed){this.wrapperWidget.destroy();delete this.wrapperWidget;}this.inherited(arguments);},_showText:function(_310){var ww=this.wrapperWidget;_2f8.set(ww.domNode,{position:"absolute",visibility:"hidden",opacity:"0"});_2f8.set(this.displayNode,{position:this._savedPosition,opacity:this._savedOpacity});_2f5.set(this.displayNode,"tabIndex",this._savedTabIndex);if(_310){fm.focus(this.displayNode);}},save:function(_311){if(this.disabled||!this.editing){return;}this._set("editing",false);var ww=this.wrapperWidget;var _312=ww.getValue();this.set("value",_312);this._showText(_311);},setValue:function(val){_2fa.deprecated("dijit.InlineEditBox.setValue() is deprecated. Use set('value', ...) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(val){val=lang.trim(val);var _313=this.renderAsHtml?val:val.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;").replace(/\n/g,"<br>");this.displayNode.innerHTML=_313||this.noValueIndicator;this._set("value",val);if(this._started){setTimeout(lang.hitch(this,"onChange",val),0);}if(this.textDir=="auto"){this.applyTextDir(this.displayNode,this.displayNode.innerText);}},getValue:function(){_2fa.deprecated("dijit.InlineEditBox.getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},cancel:function(_314){if(this.disabled||!this.editing){return;}this._set("editing",false);setTimeout(lang.hitch(this,"onCancel"),0);this._showText(_314);},_setTextDirAttr:function(_315){if(!this._created||this.textDir!=_315){this._set("textDir",_315);this.applyTextDir(this.displayNode,this.displayNode.innerText);this.displayNode.align=this.dir=="rtl"?"right":"left";}}});_30b._InlineEditor=_303;return _30b;});},"dojo/selector/acme":function(){define("dojo/selector/acme",["../_base/kernel","../has","../dom","../_base/sniff","../_base/array","../_base/lang","../_base/window"],function(dojo,has,dom){var trim=dojo.trim;var each=dojo.forEach;var _316=function(){return dojo.doc;};var _317=((dojo.isWebKit||dojo.isMozilla)&&((_316().compatMode)=="BackCompat"));var _318=">~+";var _319=false;var _31a=function(){return true;};var _31b=function(_31c){if(_318.indexOf(_31c.slice(-1))>=0){_31c+=" * ";}else{_31c+=" ";}var ts=function(s,e){return trim(_31c.slice(s,e));};var _31d=[];var _31e=-1,_31f=-1,_320=-1,_321=-1,_322=-1,inId=-1,_323=-1,lc="",cc="",_324;var x=0,ql=_31c.length,_325=null,_326=null;var _327=function(){if(_323>=0){var tv=(_323==x)?null:ts(_323,x);_325[(_318.indexOf(tv)<0)?"tag":"oper"]=tv;_323=-1;}};var _328=function(){if(inId>=0){_325.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var _329=function(){if(_322>=0){_325.classes.push(ts(_322+1,x).replace(/\\/g,""));_322=-1;}};var _32a=function(){_328();_327();_329();};var _32b=function(){_32a();if(_321>=0){_325.pseudos.push({name:ts(_321+1,x)});}_325.loops=(_325.pseudos.length||_325.attrs.length||_325.classes.length);_325.oquery=_325.query=ts(_324,x);_325.otag=_325.tag=(_325["oper"])?null:(_325.tag||"*");if(_325.tag){_325.tag=_325.tag.toUpperCase();}if(_31d.length&&(_31d[_31d.length-1].oper)){_325.infixOper=_31d.pop();_325.query=_325.infixOper.query+" "+_325.query;}_31d.push(_325);_325=null;};for(;lc=cc,cc=_31c.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_325){_324=x;_325={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return (_319)?this.otag:this.tag;}};_323=x;}if(_31e>=0){if(cc=="]"){if(!_326.attr){_326.attr=ts(_31e+1,x);}else{_326.matchFor=ts((_320||_31e+1),x);}var cmf=_326.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_326.matchFor=cmf.slice(1,-1);}}_325.attrs.push(_326);_326=null;_31e=_320=-1;}else{if(cc=="="){var _32c=("|~^$*".indexOf(lc)>=0)?lc:"";_326.type=_32c+cc;_326.attr=ts(_31e+1,x-_32c.length);_320=x+1;}}}else{if(_31f>=0){if(cc==")"){if(_321>=0){_326.value=ts(_31f+1,x);}_321=_31f=-1;}}else{if(cc=="#"){_32a();inId=x+1;}else{if(cc=="."){_32a();_322=x;}else{if(cc==":"){_32a();_321=x;}else{if(cc=="["){_32a();_31e=x;_326={};}else{if(cc=="("){if(_321>=0){_326={name:ts(_321+1,x),value:null};_325.pseudos.push(_326);}_31f=x;}else{if((cc==" ")&&(lc!=cc)){_32b();}}}}}}}}}return _31d;};var _32d=function(_32e,_32f){if(!_32e){return _32f;}if(!_32f){return _32e;}return function(){return _32e.apply(window,arguments)&&_32f.apply(window,arguments);};};var _330=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _331=function(n){return (1==n.nodeType);};var _332="";var _333=function(elem,attr){if(!elem){return _332;}if(attr=="class"){return elem.className||_332;}if(attr=="for"){return elem.htmlFor||_332;}if(attr=="style"){return elem.style.cssText||_332;}return (_319?elem.getAttribute(attr):elem.getAttribute(attr,2))||_332;};var _334={"*=":function(attr,_335){return function(elem){return (_333(elem,attr).indexOf(_335)>=0);};},"^=":function(attr,_336){return function(elem){return (_333(elem,attr).indexOf(_336)==0);};},"$=":function(attr,_337){return function(elem){var ea=" "+_333(elem,attr);return (ea.lastIndexOf(_337)==(ea.length-_337.length));};},"~=":function(attr,_338){var tval=" "+_338+" ";return function(elem){var ea=" "+_333(elem,attr)+" ";return (ea.indexOf(tval)>=0);};},"|=":function(attr,_339){var _33a=_339+"-";return function(elem){var ea=_333(elem,attr);return ((ea==_339)||(ea.indexOf(_33a)==0));};},"=":function(attr,_33b){return function(elem){return (_333(elem,attr)==_33b);};}};var _33c=(typeof _316().firstChild.nextElementSibling=="undefined");var _33d=!_33c?"nextElementSibling":"nextSibling";var _33e=!_33c?"previousElementSibling":"previousSibling";var _33f=(_33c?_331:_31a);var _340=function(node){while(node=node[_33e]){if(_33f(node)){return false;}}return true;};var _341=function(node){while(node=node[_33d]){if(_33f(node)){return false;}}return true;};var _342=function(node){var root=node.parentNode;var i=0,tret=root.children||root.childNodes,ci=(node["_i"]||-1),cl=(root["_l"]||-1);if(!tret){return -1;}var l=tret.length;if(cl==l&&ci>=0&&cl>=0){return ci;}root["_l"]=l;ci=-1;for(var te=root["firstElementChild"]||root["firstChild"];te;te=te[_33d]){if(_33f(te)){te["_i"]=++i;if(node===te){ci=i;}}}return ci;};var _343=function(elem){return !((_342(elem))%2);};var _344=function(elem){return ((_342(elem))%2);};var _345={"checked":function(name,_346){return function(elem){return !!("checked" in elem?elem.checked:elem.selected);};},"first-child":function(){return _340;},"last-child":function(){return _341;},"only-child":function(name,_347){return function(node){return _340(node)&&_341(node);};},"empty":function(name,_348){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(name,_349){var cz=_349.charAt(0);if(cz=="\""||cz=="'"){_349=_349.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_349)>=0);};},"not":function(name,_34a){var p=_31b(_34a)[0];var _34b={el:1};if(p.tag!="*"){_34b.tag=1;}if(!p.classes.length){_34b.classes=1;}var ntf=_34c(p,_34b);return function(elem){return (!ntf(elem));};},"nth-child":function(name,_34d){var pi=parseInt;if(_34d=="odd"){return _344;}else{if(_34d=="even"){return _343;}}if(_34d.indexOf("n")!=-1){var _34e=_34d.split("n",2);var pred=_34e[0]?((_34e[0]=="-")?-1:pi(_34e[0])):1;var idx=_34e[1]?pi(_34e[1]):0;var lb=0,ub=-1;if(pred>0){if(idx<0){idx=(idx%pred)&&(pred+(idx%pred));}else{if(idx>0){if(idx>=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred<0){pred*=-1;if(idx>0){ub=idx;idx=idx%pred;}}}if(pred>0){return function(elem){var i=_342(elem);return (i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_34d=idx;}}var _34f=pi(_34d);return function(elem){return (_342(elem)==_34f);};}};var _350=(dojo.isIE&&(dojo.isIE<9||dojo.isQuirks))?function(cond){var clc=cond.toLowerCase();if(clc=="class"){cond="className";}return function(elem){return (_319?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var _34c=function(_351,_352){if(!_351){return _31a;}_352=_352||{};var ff=null;if(!("el" in _352)){ff=_32d(ff,_331);}if(!("tag" in _352)){if(_351.tag!="*"){ff=_32d(ff,function(elem){return (elem&&(elem.tagName==_351.getTag()));});}}if(!("classes" in _352)){each(_351.classes,function(_353,idx,arr){var re=new RegExp("(?:^|\\s)"+_353+"(?:\\s|$)");ff=_32d(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in _352)){each(_351.pseudos,function(_354){var pn=_354.name;if(_345[pn]){ff=_32d(ff,_345[pn](pn,_354.value));}});}if(!("attrs" in _352)){each(_351.attrs,function(attr){var _355;var a=attr.attr;if(attr.type&&_334[attr.type]){_355=_334[attr.type](a,attr.matchFor);}else{if(a.length){_355=_350(a);}}if(_355){ff=_32d(ff,_355);}});}if(!("id" in _352)){if(_351.id){ff=_32d(ff,function(elem){return (!!elem&&(elem.id==_351.id));});}}if(!ff){if(!("default" in _352)){ff=_31a;}}return ff;};var _356=function(_357){return function(node,ret,bag){while(node=node[_33d]){if(_33c&&(!_331(node))){continue;}if((!bag||_358(node,bag))&&_357(node)){ret.push(node);}break;}return ret;};};var _359=function(_35a){return function(root,ret,bag){var te=root[_33d];while(te){if(_33f(te)){if(bag&&!_358(te,bag)){break;}if(_35a(te)){ret.push(te);}}te=te[_33d];}return ret;};};var _35b=function(_35c){_35c=_35c||_31a;return function(root,ret,bag){var te,x=0,tret=root.children||root.childNodes;while(te=tret[x++]){if(_33f(te)&&(!bag||_358(te,bag))&&(_35c(te,x))){ret.push(te);}}return ret;};};var _35d=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _35e={};var _35f=function(_360){var _361=_35e[_360.query];if(_361){return _361;}var io=_360.infixOper;var oper=(io?io.oper:"");var _362=_34c(_360,{el:1});var qt=_360.tag;var _363=("*"==qt);var ecs=_316()["getElementsByClassName"];if(!oper){if(_360.id){_362=(!_360.loops&&_363)?_31a:_34c(_360,{el:1,id:1});_361=function(root,arr){var te=dom.byId(_360.id,(root.ownerDocument||root));if(!te||!_362(te)){return;}if(9==root.nodeType){return _330(te,arr);}else{if(_35d(te,root)){return _330(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_360.classes.length&&!_317){_362=_34c(_360,{el:1,classes:1,id:1});var _364=_360.classes.join(" ");_361=function(root,arr,bag){var ret=_330(0,arr),te,x=0;var tret=root.getElementsByClassName(_364);while((te=tret[x++])){if(_362(te,root)&&_358(te,bag)){ret.push(te);}}return ret;};}else{if(!_363&&!_360.loops){_361=function(root,arr,bag){var ret=_330(0,arr),te,x=0;var tret=root.getElementsByTagName(_360.getTag());while((te=tret[x++])){if(_358(te,bag)){ret.push(te);}}return ret;};}else{_362=_34c(_360,{el:1,tag:1,id:1});_361=function(root,arr,bag){var ret=_330(0,arr),te,x=0;var tret=root.getElementsByTagName(_360.getTag());while((te=tret[x++])){if(_362(te,root)&&_358(te,bag)){ret.push(te);}}return ret;};}}}}else{var _365={el:1};if(_363){_365.tag=1;}_362=_34c(_360,_365);if("+"==oper){_361=_356(_362);}else{if("~"==oper){_361=_359(_362);}else{if(">"==oper){_361=_35b(_362);}}}}return _35e[_360.query]=_361;};var _366=function(root,_367){var _368=_330(root),qp,x,te,qpl=_367.length,bag,ret;for(var i=0;i<qpl;i++){ret=[];qp=_367[i];x=_368.length-1;if(x>0){bag={};ret.nozip=true;}var gef=_35f(qp);for(var j=0;(te=_368[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_368=ret;}return ret;};var _369={},_36a={};var _36b=function(_36c){var _36d=_31b(trim(_36c));if(_36d.length==1){var tef=_35f(_36d[0]);return function(root){var r=tef(root,[]);if(r){r.nozip=true;}return r;};}return function(root){return _366(root,_36d);};};var nua=navigator.userAgent;var wk="WebKit/";var _36e=(dojo.isWebKit&&(nua.indexOf(wk)>0)&&(parseFloat(nua.split(wk)[1])>528));var _36f=dojo.isIE?"commentStrip":"nozip";var qsa="querySelectorAll";var _370=(!!_316()[qsa]&&(!dojo.isSafari||(dojo.isSafari>3.1)||_36e));var _371=/n\+\d|([^ ])?([>~+])([^ =])?/g;var _372=function(_373,pre,ch,post){return ch?(pre?pre+" ":"")+ch+(post?" "+post:""):_373;};var _374=function(_375,_376){_375=_375.replace(_371,_372);if(_370){var _377=_36a[_375];if(_377&&!_376){return _377;}}var _378=_369[_375];if(_378){return _378;}var qcz=_375.charAt(0);var _379=(-1==_375.indexOf(" "));if((_375.indexOf("#")>=0)&&(_379)){_376=true;}var _37a=(_370&&(!_376)&&(_318.indexOf(qcz)==-1)&&(!dojo.isIE||(_375.indexOf(":")==-1))&&(!(_317&&(_375.indexOf(".")>=0)))&&(_375.indexOf(":contains")==-1)&&(_375.indexOf(":checked")==-1)&&(_375.indexOf("|=")==-1));if(_37a){var tq=(_318.indexOf(_375.charAt(_375.length-1))>=0)?(_375+" *"):_375;return _36a[_375]=function(root){try{if(!((9==root.nodeType)||_379)){throw "";}var r=root[qsa](tq);r[_36f]=true;return r;}catch(e){return _374(_375,true)(root);}};}else{var _37b=_375.split(/\s*,\s*/);return _369[_375]=((_37b.length<2)?_36b(_375):function(root){var _37c=0,ret=[],tp;while((tp=_37b[_37c++])){ret=ret.concat(_36b(tp)(root));}return ret;});}};var _37d=0;var _37e=dojo.isIE?function(node){if(_319){return (node.getAttribute("_uid")||node.setAttribute("_uid",++_37d)||_37d);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_37d));};var _358=function(node,bag){if(!bag){return 1;}var id=_37e(node);if(!bag[id]){return bag[id]=1;}return 0;};var _37f="_zipIdx";var _380=function(arr){if(arr&&arr.nozip){return arr;}var ret=[];if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_37d++;if(dojo.isIE&&_319){var _381=_37d+"";arr[0].setAttribute(_37f,_381);for(var x=1,te;te=arr[x];x++){if(arr[x].getAttribute(_37f)!=_381){ret.push(te);}te.setAttribute(_37f,_381);}}else{if(dojo.isIE&&arr.commentStrip){try{for(var x=1,te;te=arr[x];x++){if(_331(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_37f]=_37d;}for(var x=1,te;te=arr[x];x++){if(arr[x][_37f]!=_37d){ret.push(te);}te[_37f]=_37d;}}}return ret;};var _382=function(_383,root){root=root||_316();var od=root.ownerDocument||root.documentElement;_319=(root.contentType&&root.contentType=="application/xml")||(dojo.isOpera&&(root.doctype||od.toString()=="[object XMLDocument]"))||(!!od)&&(dojo.isIE?od.xml:(root.xmlVersion||od.xmlVersion));var r=_374(_383)(root);if(r&&r.nozip){return r;}return _380(r);};_382.filter=function(_384,_385,root){var _386=[],_387=_31b(_385),_388=(_387.length==1&&!/[^\w#\.]/.test(_385))?_34c(_387[0]):function(node){return dojo.query(_385,root).indexOf(node)!=-1;};for(var x=0,te;te=_384[x];x++){if(_388(te)){_386.push(te);}}return _386;};return _382;});},"dojo/dnd/autoscroll":function(){define("dojo/dnd/autoscroll",["../main","../window"],function(dojo){dojo.getObject("dnd",true,dojo);dojo.dnd.getViewport=dojo.window.getBox;dojo.dnd.V_TRIGGER_AUTOSCROLL=32;dojo.dnd.H_TRIGGER_AUTOSCROLL=32;dojo.dnd.V_AUTOSCROLL_VALUE=16;dojo.dnd.H_AUTOSCROLL_VALUE=16;dojo.dnd.autoScroll=function(e){var v=dojo.window.getBox(),dx=0,dy=0;if(e.clientX<dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=-dojo.dnd.H_AUTOSCROLL_VALUE;}else{if(e.clientX>v.w-dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=dojo.dnd.H_AUTOSCROLL_VALUE;}}if(e.clientY<dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=-dojo.dnd.V_AUTOSCROLL_VALUE;}else{if(e.clientY>v.h-dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=dojo.dnd.V_AUTOSCROLL_VALUE;}}window.scrollBy(dx,dy);};dojo.dnd._validNodes={"div":1,"p":1,"td":1};dojo.dnd._validOverflow={"auto":1,"scroll":1};dojo.dnd.autoScrollNodes=function(e){var b,t,w,h,rx,ry,dx=0,dy=0,_389,_38a;for(var n=e.target;n;){if(n.nodeType==1&&(n.tagName.toLowerCase() in dojo.dnd._validNodes)){var s=dojo.getComputedStyle(n),_38b=(s.overflow.toLowerCase() in dojo.dnd._validOverflow),_38c=(s.overflowX.toLowerCase() in dojo.dnd._validOverflow),_38d=(s.overflowY.toLowerCase() in dojo.dnd._validOverflow);if(_38b||_38c||_38d){b=dojo._getContentBox(n,s);t=dojo.position(n,true);}if(_38b||_38c){w=Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL,b.w/2);rx=e.pageX-t.x;if(dojo.isWebKit||dojo.isOpera){rx+=dojo.body().scrollLeft;}dx=0;if(rx>0&&rx<b.w){if(rx<w){dx=-w;}else{if(rx>b.w-w){dx=w;}}_389=n.scrollLeft;n.scrollLeft=n.scrollLeft+dx;}}if(_38b||_38d){h=Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL,b.h/2);ry=e.pageY-t.y;if(dojo.isWebKit||dojo.isOpera){ry+=dojo.body().scrollTop;}dy=0;if(ry>0&&ry<b.h){if(ry<h){dy=-h;}else{if(ry>b.h-h){dy=h;}}_38a=n.scrollTop;n.scrollTop=n.scrollTop+dy;}}if(dx||dy){return;}}try{n=n.parentNode;}catch(x){n=null;}}dojo.dnd.autoScroll(e);};return dojo.dnd;});},"dojo/data/ItemFileWriteStore":function(){define("dojo/data/ItemFileWriteStore",["../_base/lang","../_base/declare","../_base/array","../_base/json","../_base/window","./ItemFileReadStore","../date/stamp"],function(lang,_38e,_38f,_390,_391,_392,_393){return _38e("dojo.data.ItemFileWriteStore",_392,{constructor:function(_394){this._features["dojo.data.api.Write"]=true;this._features["dojo.data.api.Notification"]=true;this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};if(!this._datatypeMap["Date"].serialize){this._datatypeMap["Date"].serialize=function(obj){return _393.toISOString(obj,{zulu:true});};}if(_394&&(_394.referenceIntegrity===false)){this.referenceIntegrity=false;}this._saveInProgress=false;},referenceIntegrity:true,_assert:function(_395){if(!_395){throw new Error("assertion failed in ItemFileWriteStore");}},_getIdentifierAttribute:function(){return this.getFeatures()["dojo.data.api.Identity"];},newItem:function(_396,_397){this._assert(!this._saveInProgress);if(!this._loadFinished){this._forceLoad();}if(typeof _396!="object"&&typeof _396!="undefined"){throw new Error("newItem() was passed something other than an object");}var _398=null;var _399=this._getIdentifierAttribute();if(_399===Number){_398=this._arrayOfAllItems.length;}else{_398=_396[_399];if(typeof _398==="undefined"){throw new Error("newItem() was not passed an identity for the new item");}if(lang.isArray(_398)){throw new Error("newItem() was not passed an single-valued identity");}}if(this._itemsByIdentity){this._assert(typeof this._itemsByIdentity[_398]==="undefined");}this._assert(typeof this._pending._newItems[_398]==="undefined");this._assert(typeof this._pending._deletedItems[_398]==="undefined");var _39a={};_39a[this._storeRefPropName]=this;_39a[this._itemNumPropName]=this._arrayOfAllItems.length;if(this._itemsByIdentity){this._itemsByIdentity[_398]=_39a;_39a[_399]=[_398];}this._arrayOfAllItems.push(_39a);var _39b=null;if(_397&&_397.parent&&_397.attribute){_39b={item:_397.parent,attribute:_397.attribute,oldValue:undefined};var _39c=this.getValues(_397.parent,_397.attribute);if(_39c&&_39c.length>0){var _39d=_39c.slice(0,_39c.length);if(_39c.length===1){_39b.oldValue=_39c[0];}else{_39b.oldValue=_39c.slice(0,_39c.length);}_39d.push(_39a);this._setValueOrValues(_397.parent,_397.attribute,_39d,false);_39b.newValue=this.getValues(_397.parent,_397.attribute);}else{this._setValueOrValues(_397.parent,_397.attribute,_39a,false);_39b.newValue=_39a;}}else{_39a[this._rootItemPropName]=true;this._arrayOfTopLevelItems.push(_39a);}this._pending._newItems[_398]=_39a;for(var key in _396){if(key===this._storeRefPropName||key===this._itemNumPropName){throw new Error("encountered bug in ItemFileWriteStore.newItem");}var _39e=_396[key];if(!lang.isArray(_39e)){_39e=[_39e];}_39a[key]=_39e;if(this.referenceIntegrity){for(var i=0;i<_39e.length;i++){var val=_39e[i];if(this.isItem(val)){this._addReferenceToMap(val,_39a,key);}}}}this.onNew(_39a,_39b);return _39a;},_removeArrayElement:function(_39f,_3a0){var _3a1=_38f.indexOf(_39f,_3a0);if(_3a1!=-1){_39f.splice(_3a1,1);return true;}return false;},deleteItem:function(item){this._assert(!this._saveInProgress);this._assertIsItem(item);var _3a2=item[this._itemNumPropName];var _3a3=this.getIdentity(item);if(this.referenceIntegrity){var _3a4=this.getAttributes(item);if(item[this._reverseRefMap]){item["backup_"+this._reverseRefMap]=lang.clone(item[this._reverseRefMap]);}_38f.forEach(_3a4,function(_3a5){_38f.forEach(this.getValues(item,_3a5),function(_3a6){if(this.isItem(_3a6)){if(!item["backupRefs_"+this._reverseRefMap]){item["backupRefs_"+this._reverseRefMap]=[];}item["backupRefs_"+this._reverseRefMap].push({id:this.getIdentity(_3a6),attr:_3a5});this._removeReferenceFromMap(_3a6,item,_3a5);}},this);},this);var _3a7=item[this._reverseRefMap];if(_3a7){for(var _3a8 in _3a7){var _3a9=null;if(this._itemsByIdentity){_3a9=this._itemsByIdentity[_3a8];}else{_3a9=this._arrayOfAllItems[_3a8];}if(_3a9){for(var _3aa in _3a7[_3a8]){var _3ab=this.getValues(_3a9,_3aa)||[];var _3ac=_38f.filter(_3ab,function(_3ad){return !(this.isItem(_3ad)&&this.getIdentity(_3ad)==_3a3);},this);this._removeReferenceFromMap(item,_3a9,_3aa);if(_3ac.length<_3ab.length){this._setValueOrValues(_3a9,_3aa,_3ac,true);}}}}}}this._arrayOfAllItems[_3a2]=null;item[this._storeRefPropName]=null;if(this._itemsByIdentity){delete this._itemsByIdentity[_3a3];}this._pending._deletedItems[_3a3]=item;if(item[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,item);}this.onDelete(item);return true;},setValue:function(item,_3ae,_3af){return this._setValueOrValues(item,_3ae,_3af,true);},setValues:function(item,_3b0,_3b1){return this._setValueOrValues(item,_3b0,_3b1,true);},unsetAttribute:function(item,_3b2){return this._setValueOrValues(item,_3b2,[],true);},_setValueOrValues:function(item,_3b3,_3b4,_3b5){this._assert(!this._saveInProgress);this._assertIsItem(item);this._assert(lang.isString(_3b3));this._assert(typeof _3b4!=="undefined");var _3b6=this._getIdentifierAttribute();if(_3b3==_3b6){throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier.");}var _3b7=this._getValueOrValues(item,_3b3);var _3b8=this.getIdentity(item);if(!this._pending._modifiedItems[_3b8]){var _3b9={};for(var key in item){if((key===this._storeRefPropName)||(key===this._itemNumPropName)||(key===this._rootItemPropName)){_3b9[key]=item[key];}else{if(key===this._reverseRefMap){_3b9[key]=lang.clone(item[key]);}else{_3b9[key]=item[key].slice(0,item[key].length);}}}this._pending._modifiedItems[_3b8]=_3b9;}var _3ba=false;if(lang.isArray(_3b4)&&_3b4.length===0){_3ba=delete item[_3b3];_3b4=undefined;if(this.referenceIntegrity&&_3b7){var _3bb=_3b7;if(!lang.isArray(_3bb)){_3bb=[_3bb];}for(var i=0;i<_3bb.length;i++){var _3bc=_3bb[i];if(this.isItem(_3bc)){this._removeReferenceFromMap(_3bc,item,_3b3);}}}}else{var _3bd;if(lang.isArray(_3b4)){_3bd=_3b4.slice(0,_3b4.length);}else{_3bd=[_3b4];}if(this.referenceIntegrity){if(_3b7){var _3bb=_3b7;if(!lang.isArray(_3bb)){_3bb=[_3bb];}var map={};_38f.forEach(_3bb,function(_3be){if(this.isItem(_3be)){var id=this.getIdentity(_3be);map[id.toString()]=true;}},this);_38f.forEach(_3bd,function(_3bf){if(this.isItem(_3bf)){var id=this.getIdentity(_3bf);if(map[id.toString()]){delete map[id.toString()];}else{this._addReferenceToMap(_3bf,item,_3b3);}}},this);for(var rId in map){var _3c0;if(this._itemsByIdentity){_3c0=this._itemsByIdentity[rId];}else{_3c0=this._arrayOfAllItems[rId];}this._removeReferenceFromMap(_3c0,item,_3b3);}}else{for(var i=0;i<_3bd.length;i++){var _3bc=_3bd[i];if(this.isItem(_3bc)){this._addReferenceToMap(_3bc,item,_3b3);}}}}item[_3b3]=_3bd;_3ba=true;}if(_3b5){this.onSet(item,_3b3,_3b7,_3b4);}return _3ba;},_addReferenceToMap:function(_3c1,_3c2,_3c3){var _3c4=this.getIdentity(_3c2);var _3c5=_3c1[this._reverseRefMap];if(!_3c5){_3c5=_3c1[this._reverseRefMap]={};}var _3c6=_3c5[_3c4];if(!_3c6){_3c6=_3c5[_3c4]={};}_3c6[_3c3]=true;},_removeReferenceFromMap:function(_3c7,_3c8,_3c9){var _3ca=this.getIdentity(_3c8);var _3cb=_3c7[this._reverseRefMap];var _3cc;if(_3cb){for(_3cc in _3cb){if(_3cc==_3ca){delete _3cb[_3cc][_3c9];if(this._isEmpty(_3cb[_3cc])){delete _3cb[_3cc];}}}if(this._isEmpty(_3cb)){delete _3c7[this._reverseRefMap];}}},_dumpReferenceMap:function(){var i;for(i=0;i<this._arrayOfAllItems.length;i++){var item=this._arrayOfAllItems[i];if(item&&item[this._reverseRefMap]){}}},_getValueOrValues:function(item,_3cd){var _3ce=undefined;if(this.hasAttribute(item,_3cd)){var _3cf=this.getValues(item,_3cd);if(_3cf.length==1){_3ce=_3cf[0];}else{_3ce=_3cf;}}return _3ce;},_flatten:function(_3d0){if(this.isItem(_3d0)){return {_reference:this.getIdentity(_3d0)};}else{if(typeof _3d0==="object"){for(var type in this._datatypeMap){var _3d1=this._datatypeMap[type];if(lang.isObject(_3d1)&&!lang.isFunction(_3d1)){if(_3d0 instanceof _3d1.type){if(!_3d1.serialize){throw new Error("ItemFileWriteStore: No serializer defined for type mapping: ["+type+"]");}return {_type:type,_value:_3d1.serialize(_3d0)};}}else{if(_3d0 instanceof _3d1){return {_type:type,_value:_3d0.toString()};}}}}return _3d0;}},_getNewFileContentString:function(){var _3d2={};var _3d3=this._getIdentifierAttribute();if(_3d3!==Number){_3d2.identifier=_3d3;}if(this._labelAttr){_3d2.label=this._labelAttr;}_3d2.items=[];for(var i=0;i<this._arrayOfAllItems.length;++i){var item=this._arrayOfAllItems[i];if(item!==null){var _3d4={};for(var key in item){if(key!==this._storeRefPropName&&key!==this._itemNumPropName&&key!==this._reverseRefMap&&key!==this._rootItemPropName){var _3d5=this.getValues(item,key);if(_3d5.length==1){_3d4[key]=this._flatten(_3d5[0]);}else{var _3d6=[];for(var j=0;j<_3d5.length;++j){_3d6.push(this._flatten(_3d5[j]));_3d4[key]=_3d6;}}}}_3d2.items.push(_3d4);}}var _3d7=true;return _390.toJson(_3d2,_3d7);},_isEmpty:function(_3d8){var _3d9=true;if(lang.isObject(_3d8)){var i;for(i in _3d8){_3d9=false;break;}}else{if(lang.isArray(_3d8)){if(_3d8.length>0){_3d9=false;}}}return _3d9;},save:function(_3da){this._assert(!this._saveInProgress);this._saveInProgress=true;var self=this;var _3db=function(){self._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};self._saveInProgress=false;if(_3da&&_3da.onComplete){var _3dc=_3da.scope||_391.global;_3da.onComplete.call(_3dc);}};var _3dd=function(err){self._saveInProgress=false;if(_3da&&_3da.onError){var _3de=_3da.scope||_391.global;_3da.onError.call(_3de,err);}};if(this._saveEverything){var _3df=this._getNewFileContentString();this._saveEverything(_3db,_3dd,_3df);}if(this._saveCustom){this._saveCustom(_3db,_3dd);}if(!this._saveEverything&&!this._saveCustom){_3db();}},revert:function(){this._assert(!this._saveInProgress);var _3e0;for(_3e0 in this._pending._modifiedItems){var _3e1=this._pending._modifiedItems[_3e0];var _3e2=null;if(this._itemsByIdentity){_3e2=this._itemsByIdentity[_3e0];}else{_3e2=this._arrayOfAllItems[_3e0];}_3e1[this._storeRefPropName]=this;for(var key in _3e2){delete _3e2[key];}lang.mixin(_3e2,_3e1);}var _3e3;for(_3e0 in this._pending._deletedItems){_3e3=this._pending._deletedItems[_3e0];_3e3[this._storeRefPropName]=this;var _3e4=_3e3[this._itemNumPropName];if(_3e3["backup_"+this._reverseRefMap]){_3e3[this._reverseRefMap]=_3e3["backup_"+this._reverseRefMap];delete _3e3["backup_"+this._reverseRefMap];}this._arrayOfAllItems[_3e4]=_3e3;if(this._itemsByIdentity){this._itemsByIdentity[_3e0]=_3e3;}if(_3e3[this._rootItemPropName]){this._arrayOfTopLevelItems.push(_3e3);}}for(_3e0 in this._pending._deletedItems){_3e3=this._pending._deletedItems[_3e0];if(_3e3["backupRefs_"+this._reverseRefMap]){_38f.forEach(_3e3["backupRefs_"+this._reverseRefMap],function(_3e5){var _3e6;if(this._itemsByIdentity){_3e6=this._itemsByIdentity[_3e5.id];}else{_3e6=this._arrayOfAllItems[_3e5.id];}this._addReferenceToMap(_3e6,_3e3,_3e5.attr);},this);delete _3e3["backupRefs_"+this._reverseRefMap];}}for(_3e0 in this._pending._newItems){var _3e7=this._pending._newItems[_3e0];_3e7[this._storeRefPropName]=null;this._arrayOfAllItems[_3e7[this._itemNumPropName]]=null;if(_3e7[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,_3e7);}if(this._itemsByIdentity){delete this._itemsByIdentity[_3e0];}}this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};return true;},isDirty:function(item){if(item){var _3e8=this.getIdentity(item);return new Boolean(this._pending._newItems[_3e8]||this._pending._modifiedItems[_3e8]||this._pending._deletedItems[_3e8]).valueOf();}else{return !this._isEmpty(this._pending._newItems)||!this._isEmpty(this._pending._modifiedItems)||!this._isEmpty(this._pending._deletedItems);}},onSet:function(item,_3e9,_3ea,_3eb){},onNew:function(_3ec,_3ed){},onDelete:function(_3ee){},close:function(_3ef){if(this.clearOnClose){if(!this.isDirty()){this.inherited(arguments);}else{throw new Error("dojo.data.ItemFileWriteStore: There are unsaved changes present in the store. Please save or revert the changes before invoking close.");}}}});});},"dijit/form/_RadioButtonMixin":function(){define("dijit/form/_RadioButtonMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/_base/event","dojo/_base/lang","dojo/query","dojo/_base/window","../registry"],function(_3f0,_3f1,_3f2,_3f3,lang,_3f4,win,_3f5){return _3f1("dijit.form._RadioButtonMixin",null,{type:"radio",_getRelatedWidgets:function(){var ary=[];_3f4("input[type=radio]",this.focusNode.form||win.doc).forEach(lang.hitch(this,function(_3f6){if(_3f6.name==this.name&&_3f6.form==this.focusNode.form){var _3f7=_3f5.getEnclosingWidget(_3f6);if(_3f7){ary.push(_3f7);}}}));return ary;},_setCheckedAttr:function(_3f8){this.inherited(arguments);if(!this._created){return;}if(_3f8){_3f0.forEach(this._getRelatedWidgets(),lang.hitch(this,function(_3f9){if(_3f9!=this&&_3f9.checked){_3f9.set("checked",false);}}));}},_onClick:function(e){if(this.checked||this.disabled){_3f3.stop(e);return false;}if(this.readOnly){_3f3.stop(e);_3f0.forEach(this._getRelatedWidgets(),lang.hitch(this,function(_3fa){_3f2.set(this.focusNode||this.domNode,"checked",_3fa.checked);}));return false;}return this.inherited(arguments);}});});},"url:dijit/templates/TreeNode.html":"<div class=\"dijitTreeNode\" role=\"presentation\"\n\t><div data-dojo-attach-point=\"rowNode\" class=\"dijitTreeRow\" role=\"presentation\" data-dojo-attach-event=\"onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick\"\n\t\t><img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"expandoNode\" class=\"dijitTreeExpando\" role=\"presentation\"\n\t\t/><span data-dojo-attach-point=\"expandoNodeText\" class=\"dijitExpandoText\" role=\"presentation\"\n\t\t></span\n\t\t><span data-dojo-attach-point=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" role=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" role=\"presentation\"\n\t\t\t/><span data-dojo-attach-point=\"labelNode\" class=\"dijitTreeLabel\" role=\"treeitem\" tabindex=\"-1\" aria-selected=\"false\" data-dojo-attach-event=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitTreeContainer\" role=\"presentation\" style=\"display: none;\"></div>\n</div>\n","dojo/dnd/TimedMoveable":function(){define("dojo/dnd/TimedMoveable",["../main","./Moveable"],function(dojo){var _3fb=dojo.dnd.Moveable.prototype.onMove;dojo.declare("dojo.dnd.TimedMoveable",dojo.dnd.Moveable,{timeout:40,constructor:function(node,_3fc){if(!_3fc){_3fc={};}if(_3fc.timeout&&typeof _3fc.timeout=="number"&&_3fc.timeout>=0){this.timeout=_3fc.timeout;}},onMoveStop:function(_3fd){if(_3fd._timer){clearTimeout(_3fd._timer);_3fb.call(this,_3fd,_3fd._leftTop);}dojo.dnd.Moveable.prototype.onMoveStop.apply(this,arguments);},onMove:function(_3fe,_3ff){_3fe._leftTop=_3ff;if(!_3fe._timer){var _400=this;_3fe._timer=setTimeout(function(){_3fe._timer=null;_3fb.call(_400,_3fe,_3fe._leftTop);},this.timeout);}}});return dojo.dnd.TimedMoveable;});},"dojo/NodeList-fx":function(){define("dojo/NodeList-fx",["dojo/_base/NodeList","./_base/lang","./_base/connect","./_base/fx","./fx"],function(_401,lang,_402,_403,_404){lang.extend(_401,{_anim:function(obj,_405,args){args=args||{};var a=_404.combine(this.map(function(item){var _406={node:item};lang.mixin(_406,args);return obj[_405](_406);}));return args.auto?a.play()&&this:a;},wipeIn:function(args){return this._anim(_404,"wipeIn",args);},wipeOut:function(args){return this._anim(_404,"wipeOut",args);},slideTo:function(args){return this._anim(_404,"slideTo",args);},fadeIn:function(args){return this._anim(_403,"fadeIn",args);},fadeOut:function(args){return this._anim(_403,"fadeOut",args);},animateProperty:function(args){return this._anim(_403,"animateProperty",args);},anim:function(_407,_408,_409,_40a,_40b){var _40c=_404.combine(this.map(function(item){return _403.animateProperty({node:item,properties:_407,duration:_408||350,easing:_409});}));if(_40a){_402.connect(_40c,"onEnd",_40a);}return _40c.play(_40b||0);}});return _401;});},"dijit/form/_ListMouseMixin":function(){define("dijit/form/_ListMouseMixin",["dojo/_base/declare","dojo/_base/event","dojo/touch","./_ListBase"],function(_40d,_40e,_40f,_410){return _40d("dijit.form._ListMouseMixin",_410,{postCreate:function(){this.inherited(arguments);this.connect(this.domNode,_40f.press,"_onMouseDown");this.connect(this.domNode,_40f.release,"_onMouseUp");this.connect(this.domNode,"onmouseover","_onMouseOver");this.connect(this.domNode,"onmouseout","_onMouseOut");},_onMouseDown:function(evt){_40e.stop(evt);if(this._hoveredNode){this.onUnhover(this._hoveredNode);this._hoveredNode=null;}this._isDragging=true;this._setSelectedAttr(this._getTarget(evt));},_onMouseUp:function(evt){_40e.stop(evt);this._isDragging=false;var _411=this._getSelectedAttr();var _412=this._getTarget(evt);var _413=this._hoveredNode;if(_411&&_412==_411){this.onClick(_411);}else{if(_413&&_412==_413){this._setSelectedAttr(_413);this.onClick(_413);}}},_onMouseOut:function(){if(this._hoveredNode){this.onUnhover(this._hoveredNode);if(this._getSelectedAttr()==this._hoveredNode){this.onSelect(this._hoveredNode);}this._hoveredNode=null;}if(this._isDragging){this._cancelDrag=(new Date()).getTime()+1000;}},_onMouseOver:function(evt){if(this._cancelDrag){var time=(new Date()).getTime();if(time>this._cancelDrag){this._isDragging=false;}this._cancelDrag=null;}var node=this._getTarget(evt);if(!node){return;}if(this._hoveredNode!=node){if(this._hoveredNode){this._onMouseOut({target:this._hoveredNode});}if(node&&node.parentNode==this.containerNode){if(this._isDragging){this._setSelectedAttr(node);}else{this._hoveredNode=node;this.onHover(node);}}}}});});},"url:dijit/templates/Tree.html":"<div class=\"dijitTree dijitTreeContainer\" role=\"tree\"\n\tdata-dojo-attach-event=\"onkeypress:_onKeyPress\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" data-dojo-attach-point=\"indentDetector\"></div>\n</div>\n","dojo/cookie":function(){define("dojo/cookie",["./_base/kernel","./regexp"],function(dojo,_414){dojo.cookie=function(name,_415,_416){var c=document.cookie,ret;if(arguments.length==1){var _417=c.match(new RegExp("(?:^|; )"+_414.escapeString(name)+"=([^;]*)"));ret=_417?decodeURIComponent(_417[1]):undefined;}else{_416=_416||{};var exp=_416.expires;if(typeof exp=="number"){var d=new Date();d.setTime(d.getTime()+exp*24*60*60*1000);exp=_416.expires=d;}if(exp&&exp.toUTCString){_416.expires=exp.toUTCString();}_415=encodeURIComponent(_415);var _418=name+"="+_415,_419;for(_419 in _416){_418+="; "+_419;var _41a=_416[_419];if(_41a!==true){_418+="="+_41a;}}document.cookie=_418;}return ret;};dojo.cookie.isSupported=function(){if(!("cookieEnabled" in navigator)){this("__djCookieTest__","CookiesAllowed");navigator.cookieEnabled=this("__djCookieTest__")=="CookiesAllowed";if(navigator.cookieEnabled){this("__djCookieTest__","",{expires:-1});}}return navigator.cookieEnabled;};return dojo.cookie;});},"dojo/cache":function(){define("dojo/cache",["./_base/kernel","./text"],function(dojo,text){return dojo.cache;});},"url:dijit/form/templates/DropDownBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdata-dojo-attach-point=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdata-dojo-attach-point=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n","dijit/ProgressBar":function(){require({cache:{"url:dijit/templates/ProgressBar.html":"<div class=\"dijitProgressBar dijitProgressBarEmpty\" role=\"progressbar\"\n\t><div data-dojo-attach-point=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\" role=\"presentation\"></div\n\t\t><span style=\"visibility:hidden\">&#160;</span\n\t></div\n\t><div data-dojo-attach-point=\"labelNode\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"></div\n\t><img data-dojo-attach-point=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"}});define("dijit/ProgressBar",["require","dojo/_base/declare","dojo/dom-class","dojo/_base/lang","dojo/number","./_Widget","./_TemplatedMixin","dojo/text!./templates/ProgressBar.html"],function(_41b,_41c,_41d,lang,_41e,_41f,_420,_421){return _41c("dijit.ProgressBar",[_41f,_420],{progress:"0",value:"",maximum:100,places:0,indeterminate:false,label:"",name:"",templateString:_421,_indeterminateHighContrastImagePath:_41b.toUrl("./themes/a11y/indeterminate_progress.gif"),postMixInProperties:function(){this.inherited(arguments);if(!("value" in this.params)){this.value=this.indeterminate?Infinity:this.progress;}},buildRendering:function(){this.inherited(arguments);this.indeterminateHighContrastImage.setAttribute("src",this._indeterminateHighContrastImagePath.toString());this.update();},update:function(_422){lang.mixin(this,_422||{});var tip=this.internalProgress,ap=this.domNode;var _423=1;if(this.indeterminate){ap.removeAttribute("aria-valuenow");ap.removeAttribute("aria-valuemin");ap.removeAttribute("aria-valuemax");}else{if(String(this.progress).indexOf("%")!=-1){_423=Math.min(parseFloat(this.progress)/100,1);this.progress=_423*this.maximum;}else{this.progress=Math.min(this.progress,this.maximum);_423=this.maximum?this.progress/this.maximum:0;}ap.setAttribute("aria-describedby",this.labelNode.id);ap.setAttribute("aria-valuenow",this.progress);ap.setAttribute("aria-valuemin",0);ap.setAttribute("aria-valuemax",this.maximum);}this.labelNode.innerHTML=this.report(_423);_41d.toggle(this.domNode,"dijitProgressBarIndeterminate",this.indeterminate);tip.style.width=(_423*100)+"%";this.onChange();},_setValueAttr:function(v){this._set("value",v);if(v==Infinity){this.update({indeterminate:true});}else{this.update({indeterminate:false,progress:v});}},_setLabelAttr:function(_424){this._set("label",_424);this.update();},_setIndeterminateAttr:function(_425){this.indeterminate=_425;this.update();},report:function(_426){return this.label?this.label:(this.indeterminate?"&#160;":_41e.format(_426,{type:"percent",places:this.places,locale:this.lang}));},onChange:function(){}});});},"dijit/_base/popup":function(){define("dijit/_base/popup",["dojo/dom-class","../popup","../BackgroundIframe"],function(_427,_428){var _429=_428._createWrapper;_428._createWrapper=function(_42a){if(!_42a.declaredClass){_42a={_popupWrapper:(_42a.parentNode&&_427.contains(_42a.parentNode,"dijitPopup"))?_42a.parentNode:null,domNode:_42a,destroy:function(){}};}return _429.call(this,_42a);};var _42b=_428.open;_428.open=function(args){if(args.orient&&typeof args.orient!="string"&&!("length" in args.orient)){var ary=[];for(var key in args.orient){ary.push({aroundCorner:key,corner:args.orient[key]});}args.orient=ary;}return _42b.call(this,args);};return _428;});},"dijit/ColorPalette":function(){require({cache:{"url:dijit/templates/ColorPalette.html":"<div class=\"dijitInline dijitColorPalette\">\n\t<table dojoAttachPoint=\"paletteTableNode\" class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\" role=\"grid\">\n\t\t<tbody data-dojo-attach-point=\"gridNode\"></tbody>\n\t</table>\n</div>\n"}});define("dijit/ColorPalette",["require","dojo/text!./templates/ColorPalette.html","./_Widget","./_TemplatedMixin","./_PaletteMixin","dojo/i18n","dojo/_base/Color","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/_base/window","dojo/string","dojo/i18n!dojo/nls/colors","dojo/colors"],function(_42c,_42d,_42e,_42f,_430,i18n,_431,_432,_433,_434,win,_435){var _436=_432("dijit.ColorPalette",[_42e,_42f,_430],{palette:"7x10",_palettes:{"7x10":[["white","seashell","cornsilk","lemonchiffon","lightyellow","palegreen","paleturquoise","lightcyan","lavender","plum"],["lightgray","pink","bisque","moccasin","khaki","lightgreen","lightseagreen","lightskyblue","cornflowerblue","violet"],["silver","lightcoral","sandybrown","orange","palegoldenrod","chartreuse","mediumturquoise","skyblue","mediumslateblue","orchid"],["gray","red","orangered","darkorange","yellow","limegreen","darkseagreen","royalblue","slateblue","mediumorchid"],["dimgray","crimson","chocolate","coral","gold","forestgreen","seagreen","blue","blueviolet","darkorchid"],["darkslategray","firebrick","saddlebrown","sienna","olive","green","darkcyan","mediumblue","darkslateblue","darkmagenta"],["black","darkred","maroon","brown","darkolivegreen","darkgreen","midnightblue","navy","indigo","purple"]],"3x4":[["white","lime","green","blue"],["silver","yellow","fuchsia","navy"],["gray","red","purple","black"]]},templateString:_42d,baseClass:"dijitColorPalette",_dyeFactory:function(_437,row,col){return new this._dyeClass(_437,row,col);},buildRendering:function(){this.inherited(arguments);this._dyeClass=_432(_436._Color,{hc:_433.contains(win.body(),"dijit_a11y"),palette:this.palette});this._preparePalette(this._palettes[this.palette],i18n.getLocalization("dojo","colors",this.lang));}});_436._Color=_432("dijit._Color",_431,{template:"<span class='dijitInline dijitPaletteImg'>"+"<img src='${blankGif}' alt='${alt}' class='dijitColorPaletteSwatch' style='background-color: ${color}'/>"+"</span>",hcTemplate:"<span class='dijitInline dijitPaletteImg' style='position: relative; overflow: hidden; height: 12px; width: 14px;'>"+"<img src='${image}' alt='${alt}' style='position: absolute; left: ${left}px; top: ${top}px; ${size}'/>"+"</span>",_imagePaths:{"7x10":_42c.toUrl("./themes/a11y/colors7x10.png"),"3x4":_42c.toUrl("./themes/a11y/colors3x4.png")},constructor:function(_438,row,col){this._alias=_438;this._row=row;this._col=col;this.setColor(_431.named[_438]);},getValue:function(){return this.toHex();},fillCell:function(cell,_439){var html=_435.substitute(this.hc?this.hcTemplate:this.template,{color:this.toHex(),blankGif:_439,alt:this._alias,image:this._imagePaths[this.palette].toString(),left:this._col*-20-5,top:this._row*-20-5,size:this.palette=="7x10"?"height: 145px; width: 206px":"height: 64px; width: 86px"});_434.place(html,cell);}});return _436;});},"url:dijit/form/templates/Button.html":"<span class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" role=\"presentation\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode,focusNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#x25CF;</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\ttabIndex=\"-1\" role=\"presentation\" data-dojo-attach-point=\"valueNode\"\n/></span>\n","dojo/_base/url":function(){define("dojo/_base/url",["./kernel"],function(dojo){var ore=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),ire=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"),_43a=function(){var n=null,_43b=arguments,uri=[_43b[0]];for(var i=1;i<_43b.length;i++){if(!_43b[i]){continue;}var _43c=new _43a(_43b[i]+""),_43d=new _43a(uri[0]+"");if(_43c.path==""&&!_43c.scheme&&!_43c.authority&&!_43c.query){if(_43c.fragment!=n){_43d.fragment=_43c.fragment;}_43c=_43d;}else{if(!_43c.scheme){_43c.scheme=_43d.scheme;if(!_43c.authority){_43c.authority=_43d.authority;if(_43c.path.charAt(0)!="/"){var path=_43d.path.substring(0,_43d.path.lastIndexOf("/")+1)+_43c.path;var segs=path.split("/");for(var j=0;j<segs.length;j++){if(segs[j]=="."){if(j==segs.length-1){segs[j]="";}else{segs.splice(j,1);j--;}}else{if(j>0&&!(j==1&&segs[0]=="")&&segs[j]==".."&&segs[j-1]!=".."){if(j==(segs.length-1)){segs.splice(j,1);segs[j-1]="";}else{segs.splice(j-1,2);j-=2;}}}}_43c.path=segs.join("/");}}}}uri=[];if(_43c.scheme){uri.push(_43c.scheme,":");}if(_43c.authority){uri.push("//",_43c.authority);}uri.push(_43c.path);if(_43c.query){uri.push("?",_43c.query);}if(_43c.fragment){uri.push("#",_43c.fragment);}}this.uri=uri.join("");var r=this.uri.match(ore);this.scheme=r[2]||(r[1]?"":n);this.authority=r[4]||(r[3]?"":n);this.path=r[5];this.query=r[7]||(r[6]?"":n);this.fragment=r[9]||(r[8]?"":n);if(this.authority!=n){r=this.authority.match(ire);this.user=r[3]||n;this.password=r[4]||n;this.host=r[6]||r[7];this.port=r[9]||n;}};_43a.prototype.toString=function(){return this.uri;};return dojo._Url=_43a;});},"dojo/text":function(){define("dojo/text",["./_base/kernel","require","./has","./_base/xhr"],function(dojo,_43e,has,xhr){var _43f;if(1){_43f=function(url,sync,load){xhr("GET",{url:url,sync:!!sync,load:load});};}else{if(_43e.getText){_43f=_43e.getText;}else{console.error("dojo/text plugin failed to load because loader does not support getText");}}var _440={},_441=function(text){if(text){text=text.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _442=text.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_442){text=_442[1];}}else{text="";}return text;},_443={},_444={},_445={dynamic:true,normalize:function(id,_446){var _447=id.split("!"),url=_447[0];return (/^\./.test(url)?_446(url):url)+(_447[1]?"!"+_447[1]:"");},load:function(id,_448,load){var _449=id.split("!"),_44a=_449.length>1,_44b=_449[0],url=_448.toUrl(_449[0]),text=_443,_44c=function(text){load(_44a?_441(text):text);};if(_44b in _440){text=_440[_44b];}else{if(url in _448.cache){text=_448.cache[url];}else{if(url in _440){text=_440[url];}}}if(text===_443){if(_444[url]){_444[url].push(_44c);}else{var _44d=_444[url]=[_44c];_43f(url,!_448.async,function(text){_440[_44b]=_440[url]=text;for(var i=0;i<_44d.length;){_44d[i++](text);}delete _444[url];});}}else{_44c(text);}}};dojo.cache=function(_44e,url,_44f){var key;if(typeof _44e=="string"){if(/\//.test(_44e)){key=_44e;_44f=url;}else{key=_43e.toUrl(_44e.replace(/\./g,"/")+(url?("/"+url):""));}}else{key=_44e+"";_44f=url;}var val=(_44f!=undefined&&typeof _44f!="string")?_44f.value:_44f,_450=_44f&&_44f.sanitize;if(typeof val=="string"){_440[key]=val;return _450?_441(val):val;}else{if(val===null){delete _440[key];return null;}else{if(!(key in _440)){_43f(key,true,function(text){_440[key]=text;});}return _450?_441(_440[key]):_440[key];}}};return _445;});},"url:dijit/templates/MenuItem.html":"<tr class=\"dijitReset dijitMenuItem\" data-dojo-attach-point=\"focusNode\" role=\"menuitem\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-event=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">\n\t\t<div data-dojo-attach-point=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n","url:dijit/form/templates/CheckBox.html":"<div class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdata-dojo-attach-point=\"focusNode\"\n\t \tdata-dojo-attach-event=\"onclick:_onClick\"\n/></div>\n","dojo/uacss":function(){define("dojo/uacss",["./dom-geometry","./_base/lang","./ready","./_base/sniff","./_base/window"],function(_451,lang,_452,has,_453){var html=_453.doc.documentElement,ie=has("ie"),_454=has("opera"),maj=Math.floor,ff=has("ff"),_455=_451.boxModel.replace(/-/,""),_456={"dj_ie":ie,"dj_ie6":maj(ie)==6,"dj_ie7":maj(ie)==7,"dj_ie8":maj(ie)==8,"dj_ie9":maj(ie)==9,"dj_quirks":has("quirks"),"dj_iequirks":ie&&has("quirks"),"dj_opera":_454,"dj_khtml":has("khtml"),"dj_webkit":has("webkit"),"dj_safari":has("safari"),"dj_chrome":has("chrome"),"dj_gecko":has("mozilla"),"dj_ff3":maj(ff)==3};_456["dj_"+_455]=true;var _457="";for(var clz in _456){if(_456[clz]){_457+=clz+" ";}}html.className=lang.trim(html.className+" "+_457);_452(90,function(){if(!_451.isBodyLtr()){var _458="dj_rtl dijitRtl "+_457.replace(/ /g,"-rtl ");html.className=lang.trim(html.className+" "+_458+"dj_rtl dijitRtl "+_457.replace(/ /g,"-rtl "));}});return has;});},"dijit/Tooltip":function(){require({cache:{"url:dijit/templates/Tooltip.html":"<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\"\n\t><div class=\"dijitTooltipContainer dijitTooltipContents\" data-dojo-attach-point=\"containerNode\" role='alert'></div\n\t><div class=\"dijitTooltipConnector\" data-dojo-attach-point=\"connectorNode\"></div\n></div>\n"}});define("dijit/Tooltip",["dojo/_base/array","dojo/_base/declare","dojo/_base/fx","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang","dojo/_base/sniff","dojo/_base/window","./_base/manager","./place","./_Widget","./_TemplatedMixin","./BackgroundIframe","dojo/text!./templates/Tooltip.html","."],function(_459,_45a,fx,dom,_45b,_45c,_45d,lang,has,win,_45e,_45f,_460,_461,_462,_463,_464){var _465=_45a("dijit._MasterTooltip",[_460,_461],{duration:_45e.defaultDuration,templateString:_463,postCreate:function(){win.body().appendChild(this.domNode);this.bgIframe=new _462(this.domNode);this.fadeIn=fx.fadeIn({node:this.domNode,duration:this.duration,onEnd:lang.hitch(this,"_onShow")});this.fadeOut=fx.fadeOut({node:this.domNode,duration:this.duration,onEnd:lang.hitch(this,"_onHide")});},show:function(_466,_467,_468,rtl,_469){if(this.aroundNode&&this.aroundNode===_467&&this.containerNode.innerHTML==_466){return;}this.domNode.width="auto";if(this.fadeOut.status()=="playing"){this._onDeck=arguments;return;}this.containerNode.innerHTML=_466;this.set("textDir",_469);this.containerNode.align=rtl?"right":"left";var pos=_45f.around(this.domNode,_467,_468&&_468.length?_468:_46a.defaultPosition,!rtl,lang.hitch(this,"orient"));var _46b=pos.aroundNodePos;if(pos.corner.charAt(0)=="M"&&pos.aroundCorner.charAt(0)=="M"){this.connectorNode.style.top=_46b.y+((_46b.h-this.connectorNode.offsetHeight)>>1)-pos.y+"px";this.connectorNode.style.left="";}else{if(pos.corner.charAt(1)=="M"&&pos.aroundCorner.charAt(1)=="M"){this.connectorNode.style.left=_46b.x+((_46b.w-this.connectorNode.offsetWidth)>>1)-pos.x+"px";}}_45d.set(this.domNode,"opacity",0);this.fadeIn.play();this.isShowingNow=true;this.aroundNode=_467;},orient:function(node,_46c,_46d,_46e,_46f){this.connectorNode.style.top="";var _470=_46e.w-this.connectorNode.offsetWidth;node.className="dijitTooltip "+{"MR-ML":"dijitTooltipRight","ML-MR":"dijitTooltipLeft","TM-BM":"dijitTooltipAbove","BM-TM":"dijitTooltipBelow","BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_46c+"-"+_46d];this.domNode.style.width="auto";var size=_45c.getContentBox(this.domNode);var _471=Math.min((Math.max(_470,1)),size.w);var _472=_471<size.w;this.domNode.style.width=_471+"px";if(_472){this.containerNode.style.overflow="auto";var _473=this.containerNode.scrollWidth;this.containerNode.style.overflow="visible";if(_473>_471){_473=_473+_45d.get(this.domNode,"paddingLeft")+_45d.get(this.domNode,"paddingRight");this.domNode.style.width=_473+"px";}}if(_46d.charAt(0)=="B"&&_46c.charAt(0)=="B"){var mb=_45c.getMarginBox(node);var _474=this.connectorNode.offsetHeight;if(mb.h>_46e.h){var _475=_46e.h-((_46f.h+_474)>>1);this.connectorNode.style.top=_475+"px";this.connectorNode.style.bottom="";}else{this.connectorNode.style.bottom=Math.min(Math.max(_46f.h/2-_474/2,0),mb.h-_474)+"px";this.connectorNode.style.top="";}}else{this.connectorNode.style.top="";this.connectorNode.style.bottom="";}return Math.max(0,size.w-_470);},_onShow:function(){if(has("ie")){this.domNode.style.filter="";}},hide:function(_476){if(this._onDeck&&this._onDeck[1]==_476){this._onDeck=null;}else{if(this.aroundNode===_476){this.fadeIn.stop();this.isShowingNow=false;this.aroundNode=null;this.fadeOut.play();}else{}}},_onHide:function(){this.domNode.style.cssText="";this.containerNode.innerHTML="";if(this._onDeck){this.show.apply(this,this._onDeck);this._onDeck=null;}},_setAutoTextDir:function(node){this.applyTextDir(node,has("ie")?node.outerText:node.textContent);_459.forEach(node.children,function(_477){this._setAutoTextDir(_477);},this);},_setTextDirAttr:function(_478){this._set("textDir",typeof _478!="undefined"?_478:"");if(_478=="auto"){this._setAutoTextDir(this.containerNode);}else{this.containerNode.dir=this.textDir;}}});_464.showTooltip=function(_479,_47a,_47b,rtl,_47c){if(_47b){_47b=_459.map(_47b,function(val){return {after:"after-centered",before:"before-centered"}[val]||val;});}if(!_46a._masterTT){_464._masterTT=_46a._masterTT=new _465();}return _46a._masterTT.show(_479,_47a,_47b,rtl,_47c);};_464.hideTooltip=function(_47d){return _46a._masterTT&&_46a._masterTT.hide(_47d);};var _46a=_45a("dijit.Tooltip",_460,{label:"",showDelay:400,connectId:[],position:[],_setConnectIdAttr:function(_47e){_459.forEach(this._connections||[],function(_47f){_459.forEach(_47f,lang.hitch(this,"disconnect"));},this);this._connectIds=_459.filter(lang.isArrayLike(_47e)?_47e:(_47e?[_47e]:[]),function(id){return dom.byId(id);});this._connections=_459.map(this._connectIds,function(id){var node=dom.byId(id);return [this.connect(node,"onmouseenter","_onHover"),this.connect(node,"onmouseleave","_onUnHover"),this.connect(node,"onfocus","_onHover"),this.connect(node,"onblur","_onUnHover")];},this);this._set("connectId",_47e);},addTarget:function(node){var id=node.id||node;if(_459.indexOf(this._connectIds,id)==-1){this.set("connectId",this._connectIds.concat(id));}},removeTarget:function(node){var id=node.id||node,idx=_459.indexOf(this._connectIds,id);if(idx>=0){this._connectIds.splice(idx,1);this.set("connectId",this._connectIds);}},buildRendering:function(){this.inherited(arguments);_45b.add(this.domNode,"dijitTooltipData");},startup:function(){this.inherited(arguments);var ids=this.connectId;_459.forEach(lang.isArrayLike(ids)?ids:[ids],this.addTarget,this);},_onHover:function(e){if(!this._showTimer){var _480=e.target;this._showTimer=setTimeout(lang.hitch(this,function(){this.open(_480);}),this.showDelay);}},_onUnHover:function(){if(this._focus){return;}if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}this.close();},open:function(_481){if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}_46a.show(this.label||this.domNode.innerHTML,_481,this.position,!this.isLeftToRight(),this.textDir);this._connectNode=_481;this.onShow(_481,this.position);},close:function(){if(this._connectNode){_46a.hide(this._connectNode);delete this._connectNode;this.onHide();}if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}},onShow:function(){},onHide:function(){},uninitialize:function(){this.close();this.inherited(arguments);}});_46a._MasterTooltip=_465;_46a.show=_464.showTooltip;_46a.hide=_464.hideTooltip;_46a.defaultPosition=["after-centered","before-centered"];return _46a;});},"dojo/string":function(){define("dojo/string",["./_base/kernel","./_base/lang"],function(dojo,lang){lang.getObject("string",true,dojo);dojo.string.rep=function(str,num){if(num<=0||!str){return "";}var buf=[];for(;;){if(num&1){buf.push(str);}if(!(num>>=1)){break;}str+=str;}return buf.join("");};dojo.string.pad=function(text,size,ch,end){if(!ch){ch="0";}var out=String(text),pad=dojo.string.rep(ch,Math.ceil((size-out.length)/ch.length));return end?out+pad:pad+out;};dojo.string.substitute=function(_482,map,_483,_484){_484=_484||dojo.global;_483=_483?lang.hitch(_484,_483):function(v){return v;};return _482.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_485,key,_486){var _487=lang.getObject(key,false,map);if(_486){_487=lang.getObject(_486,false,_484).call(_484,_487,key);}return _483(_487,key).toString();});};dojo.string.trim=String.prototype.trim?lang.trim:function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;};return dojo.string;});},"url:dijit/templates/MenuSeparator.html":"<tr class=\"dijitMenuSeparator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>","dijit/dijit":function(){define("dijit/dijit",[".","./_base","dojo/parser","./_Widget","./_TemplatedMixin","./_Container","./layout/_LayoutWidget","./form/_FormWidget","./form/_FormValueWidget"],function(_488){return _488;});},"dijit/form/DropDownButton":function(){require({cache:{"url:dijit/form/templates/DropDownButton.html":"<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" data-dojo-attach-point=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\trole=\"button\" aria-haspopup=\"true\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdata-dojo-attach-point=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">&#9660;</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-point=\"valueNode\"\n/></span>\n"}});define("dijit/form/DropDownButton",["dojo/_base/declare","dojo/_base/lang","dojo/query","../registry","../popup","./Button","../_Container","../_HasDropDown","dojo/text!./templates/DropDownButton.html"],function(_489,lang,_48a,_48b,_48c,_48d,_48e,_48f,_490){return _489("dijit.form.DropDownButton",[_48d,_48e,_48f],{baseClass:"dijitDropDownButton",templateString:_490,_fillContent:function(){if(this.srcNodeRef){var _491=_48a("*",this.srcNodeRef);this.inherited(arguments,[_491[0]]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}if(!this.dropDown&&this.dropDownContainer){var _492=_48a("[widgetId]",this.dropDownContainer)[0];this.dropDown=_48b.byNode(_492);delete this.dropDownContainer;}if(this.dropDown){_48c.hide(this.dropDown);}this.inherited(arguments);},isLoaded:function(){var _493=this.dropDown;return (!!_493&&(!_493.href||_493.isLoaded));},loadDropDown:function(_494){var _495=this.dropDown;var _496=_495.on("load",lang.hitch(this,function(){_496.remove();_494();}));_495.refresh();},isFocusable:function(){return this.inherited(arguments)&&!this._mouseDown;}});});},"dijit/form/_FormValueMixin":function(){define("dijit/form/_FormValueMixin",["dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/_base/sniff","./_FormWidgetMixin"],function(_497,_498,keys,has,_499){return _497("dijit.form._FormValueMixin",_499,{readOnly:false,_setReadOnlyAttr:function(_49a){_498.set(this.focusNode,"readOnly",_49a);this.focusNode.setAttribute("aria-readonly",_49a);this._set("readOnly",_49a);},postCreate:function(){this.inherited(arguments);if(has("ie")){this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown);}if(this._resetValue===undefined){this._lastValueReported=this._resetValue=this.value;}},_setValueAttr:function(_49b,_49c){this._handleOnChange(_49b,_49c);},_handleOnChange:function(_49d,_49e){this._set("value",_49d);this.inherited(arguments);},undo:function(){this._setValueAttr(this._lastValueReported,false);},reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true);},_onKeyDown:function(e){if(e.keyCode==keys.ESCAPE&&!(e.ctrlKey||e.altKey||e.metaKey)){var te;if(has("ie")<9||(has("ie")&&has("quirks"))){e.preventDefault();te=document.createEventObject();te.keyCode=keys.ESCAPE;te.shiftKey=e.shiftKey;e.srcElement.fireEvent("onkeypress",te);}}}});});},"dijit/form/_FormWidgetMixin":function(){define("dijit/form/_FormWidgetMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-style","dojo/_base/lang","dojo/mouse","dojo/_base/sniff","dojo/_base/window","dojo/window","../a11y"],function(_49f,_4a0,_4a1,_4a2,lang,_4a3,has,win,_4a4,a11y){return _4a0("dijit.form._FormWidgetMixin",null,{name:"",alt:"",value:"",type:"text",tabIndex:"0",_setTabIndexAttr:"focusNode",disabled:false,intermediateChanges:false,scrollOnFocus:true,_setIdAttr:"focusNode",_setDisabledAttr:function(_4a5){this._set("disabled",_4a5);_4a1.set(this.focusNode,"disabled",_4a5);if(this.valueNode){_4a1.set(this.valueNode,"disabled",_4a5);}this.focusNode.setAttribute("aria-disabled",_4a5?"true":"false");if(_4a5){this._set("hovering",false);this._set("active",false);var _4a6="tabIndex" in this.attributeMap?this.attributeMap.tabIndex:("_setTabIndexAttr" in this)?this._setTabIndexAttr:"focusNode";_49f.forEach(lang.isArray(_4a6)?_4a6:[_4a6],function(_4a7){var node=this[_4a7];if(has("webkit")||a11y.hasDefaultTabStop(node)){node.setAttribute("tabIndex","-1");}else{node.removeAttribute("tabIndex");}},this);}else{if(this.tabIndex!=""){this.set("tabIndex",this.tabIndex);}}},_onFocus:function(by){if(by=="mouse"&&this.isFocusable()){var _4a8=this.connect(this.focusNode,"onfocus",function(){this.disconnect(_4a9);this.disconnect(_4a8);});var _4a9=this.connect(win.body(),"onmouseup",function(){this.disconnect(_4a9);this.disconnect(_4a8);if(this.focused){this.focus();}});}if(this.scrollOnFocus){this.defer(function(){_4a4.scrollIntoView(this.domNode);});}this.inherited(arguments);},isFocusable:function(){return !this.disabled&&this.focusNode&&(_4a2.get(this.domNode,"display")!="none");},focus:function(){if(!this.disabled&&this.focusNode.focus){try{this.focusNode.focus();}catch(e){}}},compare:function(val1,val2){if(typeof val1=="number"&&typeof val2=="number"){return (isNaN(val1)&&isNaN(val2))?0:val1-val2;}else{if(val1>val2){return 1;}else{if(val1<val2){return -1;}else{return 0;}}}},onChange:function(){},_onChangeActive:false,_handleOnChange:function(_4aa,_4ab){if(this._lastValueReported==undefined&&(_4ab===null||!this._onChangeActive)){this._resetValue=this._lastValueReported=_4aa;}this._pendingOnChange=this._pendingOnChange||(typeof _4aa!=typeof this._lastValueReported)||(this.compare(_4aa,this._lastValueReported)!=0);if((this.intermediateChanges||_4ab||_4ab===undefined)&&this._pendingOnChange){this._lastValueReported=_4aa;this._pendingOnChange=false;if(this._onChangeActive){if(this._onChangeHandle){this._onChangeHandle.remove();}this._onChangeHandle=this.defer(function(){this._onChangeHandle=null;this.onChange(_4aa);});}}},create:function(){this.inherited(arguments);this._onChangeActive=true;},destroy:function(){if(this._onChangeHandle){this._onChangeHandle.remove();this.onChange(this._lastValueReported);}this.inherited(arguments);}});});},"url:dijit/templates/ProgressBar.html":"<div class=\"dijitProgressBar dijitProgressBarEmpty\" role=\"progressbar\"\n\t><div data-dojo-attach-point=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\" role=\"presentation\"></div\n\t\t><span style=\"visibility:hidden\">&#160;</span\n\t></div\n\t><div data-dojo-attach-point=\"labelNode\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"></div\n\t><img data-dojo-attach-point=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n","dijit/layout/_ContentPaneResizeMixin":function(){define("dijit/layout/_ContentPaneResizeMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/_base/lang","dojo/query","dojo/_base/sniff","dojo/_base/window","../registry","./utils","../_Contained"],function(_4ac,_4ad,_4ae,_4af,_4b0,lang,_4b1,has,win,_4b2,_4b3,_4b4){return _4ad("dijit.layout._ContentPaneResizeMixin",null,{doLayout:true,isLayoutContainer:true,startup:function(){if(this._started){return;}var _4b5=this.getParent();this._childOfLayoutWidget=_4b5&&_4b5.isLayoutContainer;this._needLayout=!this._childOfLayoutWidget;this.inherited(arguments);if(this._isShown()){this._onShow();}if(!this._childOfLayoutWidget){this.connect(has("ie")?this.domNode:win.global,"onresize",function(){this._needLayout=!this._childOfLayoutWidget;this.resize();});}},_checkIfSingleChild:function(){var _4b6=_4b1("> *",this.containerNode).filter(function(node){return node.tagName!=="SCRIPT";}),_4b7=_4b6.filter(function(node){return _4ae.has(node,"data-dojo-type")||_4ae.has(node,"dojoType")||_4ae.has(node,"widgetId");}),_4b8=_4ac.filter(_4b7.map(_4b2.byNode),function(_4b9){return _4b9&&_4b9.domNode&&_4b9.resize;});if(_4b6.length==_4b7.length&&_4b8.length==1){this._singleChild=_4b8[0];}else{delete this._singleChild;}_4af.toggle(this.containerNode,this.baseClass+"SingleChild",!!this._singleChild);},resize:function(_4ba,_4bb){if(!this._wasShown&&this.open!==false){this._onShow();}this._resizeCalled=true;this._scheduleLayout(_4ba,_4bb);},_scheduleLayout:function(_4bc,_4bd){if(this._isShown()){this._layout(_4bc,_4bd);}else{this._needLayout=true;this._changeSize=_4bc;this._resultSize=_4bd;}},_layout:function(_4be,_4bf){if(_4be){_4b0.setMarginBox(this.domNode,_4be);}var cn=this.containerNode;if(cn===this.domNode){var mb=_4bf||{};lang.mixin(mb,_4be||{});if(!("h" in mb)||!("w" in mb)){mb=lang.mixin(_4b0.getMarginBox(cn),mb);}this._contentBox=_4b3.marginBox2contentBox(cn,mb);}else{this._contentBox=_4b0.getContentBox(cn);}this._layoutChildren();delete this._needLayout;},_layoutChildren:function(){if(this.doLayout){this._checkIfSingleChild();}if(this._singleChild&&this._singleChild.resize){var cb=this._contentBox||_4b0.getContentBox(this.containerNode);this._singleChild.resize({w:cb.w,h:cb.h});}else{_4ac.forEach(this.getChildren(),function(_4c0){if(_4c0.resize){_4c0.resize();}});}},_isShown:function(){if(this._childOfLayoutWidget){if(this._resizeCalled&&"open" in this){return this.open;}return this._resizeCalled;}else{if("open" in this){return this.open;}else{var node=this.domNode,_4c1=this.domNode.parentNode;return (node.style.display!="none")&&(node.style.visibility!="hidden")&&!_4af.contains(node,"dijitHidden")&&_4c1&&_4c1.style&&(_4c1.style.display!="none");}}},_onShow:function(){if(this._needLayout){this._layout(this._changeSize,this._resultSize);}this.inherited(arguments);this._wasShown=true;}});});},"dijit/WidgetSet":function(){define("dijit/WidgetSet",["dojo/_base/array","dojo/_base/declare","dojo/_base/window","./registry"],function(_4c2,_4c3,win,_4c4){var _4c5=_4c3("dijit.WidgetSet",null,{constructor:function(){this._hash={};this.length=0;},add:function(_4c6){if(this._hash[_4c6.id]){throw new Error("Tried to register widget with id=="+_4c6.id+" but that id is already registered");}this._hash[_4c6.id]=_4c6;this.length++;},remove:function(id){if(this._hash[id]){delete this._hash[id];this.length--;}},forEach:function(func,_4c7){_4c7=_4c7||win.global;var i=0,id;for(id in this._hash){func.call(_4c7,this._hash[id],i++,this._hash);}return this;},filter:function(_4c8,_4c9){_4c9=_4c9||win.global;var res=new _4c5(),i=0,id;for(id in this._hash){var w=this._hash[id];if(_4c8.call(_4c9,w,i++,this._hash)){res.add(w);}}return res;},byId:function(id){return this._hash[id];},byClass:function(cls){var res=new _4c5(),id,_4ca;for(id in this._hash){_4ca=this._hash[id];if(_4ca.declaredClass==cls){res.add(_4ca);}}return res;},toArray:function(){var ar=[];for(var id in this._hash){ar.push(this._hash[id]);}return ar;},map:function(func,_4cb){return _4c2.map(this.toArray(),func,_4cb);},every:function(func,_4cc){_4cc=_4cc||win.global;var x=0,i;for(i in this._hash){if(!func.call(_4cc,this._hash[i],x++,this._hash)){return false;}}return true;},some:function(func,_4cd){_4cd=_4cd||win.global;var x=0,i;for(i in this._hash){if(func.call(_4cd,this._hash[i],x++,this._hash)){return true;}}return false;}});_4c2.forEach(["forEach","filter","byClass","map","every","some"],function(func){_4c4[func]=_4c5.prototype[func];});return _4c5;});},"dojo/dnd/Moveable":function(){define("dojo/dnd/Moveable",["../main","../Evented","../touch","./Mover"],function(dojo,_4ce,_4cf){dojo.declare("dojo.dnd.Moveable",[_4ce],{handle:"",delay:0,skip:false,constructor:function(node,_4d0){this.node=dojo.byId(node);if(!_4d0){_4d0={};}this.handle=_4d0.handle?dojo.byId(_4d0.handle):null;if(!this.handle){this.handle=this.node;}this.delay=_4d0.delay>0?_4d0.delay:0;this.skip=_4d0.skip;this.mover=_4d0.mover?_4d0.mover:dojo.dnd.Mover;this.events=[dojo.connect(this.handle,_4cf.press,this,"onMouseDown"),dojo.connect(this.handle,"ondragstart",this,"onSelectStart"),dojo.connect(this.handle,"onselectstart",this,"onSelectStart")];},markupFactory:function(_4d1,node,ctor){return new ctor(node,_4d1);},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.events=this.node=this.handle=null;},onMouseDown:function(e){if(this.skip&&dojo.dnd.isFormElement(e)){return;}if(this.delay){this.events.push(dojo.connect(this.handle,_4cf.move,this,"onMouseMove"),dojo.connect(this.handle,_4cf.release,this,"onMouseUp"));this._lastX=e.pageX;this._lastY=e.pageY;}else{this.onDragDetected(e);}dojo.stopEvent(e);},onMouseMove:function(e){if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){this.onMouseUp(e);this.onDragDetected(e);}dojo.stopEvent(e);},onMouseUp:function(e){for(var i=0;i<2;++i){dojo.disconnect(this.events.pop());}dojo.stopEvent(e);},onSelectStart:function(e){if(!this.skip||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onDragDetected:function(e){new this.mover(this.node,e,this);},onMoveStart:function(_4d2){dojo.publish("/dnd/move/start",[_4d2]);dojo.addClass(dojo.body(),"dojoMove");dojo.addClass(this.node,"dojoMoveItem");},onMoveStop:function(_4d3){dojo.publish("/dnd/move/stop",[_4d3]);dojo.removeClass(dojo.body(),"dojoMove");dojo.removeClass(this.node,"dojoMoveItem");},onFirstMove:function(_4d4,e){},onMove:function(_4d5,_4d6,e){this.onMoving(_4d5,_4d6);var s=_4d5.node.style;s.left=_4d6.l+"px";s.top=_4d6.t+"px";this.onMoved(_4d5,_4d6);},onMoving:function(_4d7,_4d8){},onMoved:function(_4d9,_4da){}});return dojo.dnd.Moveable;});},"dojo/store/util/SimpleQueryEngine":function(){define("dojo/store/util/SimpleQueryEngine",["../../_base/array"],function(_4db){return function(_4dc,_4dd){switch(typeof _4dc){default:throw new Error("Can not query with a "+typeof _4dc);case "object":case "undefined":var _4de=_4dc;_4dc=function(_4df){for(var key in _4de){var _4e0=_4de[key];if(_4e0&&_4e0.test){if(!_4e0.test(_4df[key])){return false;}}else{if(_4e0!=_4df[key]){return false;}}}return true;};break;case "string":if(!this[_4dc]){throw new Error("No filter function "+_4dc+" was found in store");}_4dc=this[_4dc];case "function":}function _4e1(_4e2){var _4e3=_4db.filter(_4e2,_4dc);if(_4dd&&_4dd.sort){_4e3.sort(function(a,b){for(var sort,i=0;sort=_4dd.sort[i];i++){var _4e4=a[sort.attribute];var _4e5=b[sort.attribute];if(_4e4!=_4e5){return !!sort.descending==_4e4>_4e5?-1:1;}}return 0;});}if(_4dd&&(_4dd.start||_4dd.count)){var _4e6=_4e3.length;_4e3=_4e3.slice(_4dd.start||0,(_4dd.start||0)+(_4dd.count||Infinity));_4e3.total=_4e6;}return _4e3;};_4e1.matches=_4dc;return _4e1;};});},"dijit/typematic":function(){define("dijit/typematic",["dojo/_base/array","dojo/_base/connect","dojo/_base/event","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/_base/sniff","."],function(_4e7,_4e8,_4e9,_4ea,lang,on,has,_4eb){var _4ec=(_4eb.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:(this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay)),this._minDelay);this._timer=setTimeout(lang.hitch(this,"_fireEventAndReload"),this._currentTimeout);},trigger:function(evt,_4ed,node,_4ee,obj,_4ef,_4f0,_4f1){if(obj!=this._obj){this.stop();this._initialDelay=_4f0||500;this._subsequentDelay=_4ef||0.9;this._minDelay=_4f1||10;this._obj=obj;this._evt=evt;this._node=node;this._currentTimeout=-1;this._count=-1;this._callback=lang.hitch(_4ed,_4ee);this._fireEventAndReload();this._evt=lang.mixin({faux:true},evt);}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null;}if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null;}},addKeyListener:function(node,_4f2,_4f3,_4f4,_4f5,_4f6,_4f7){if(_4f2.keyCode){_4f2.charOrCode=_4f2.keyCode;_4ea.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}else{if(_4f2.charCode){_4f2.charOrCode=String.fromCharCode(_4f2.charCode);_4ea.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}}var _4f8=[on(node,_4e8._keypress,lang.hitch(this,function(evt){if(evt.charOrCode==_4f2.charOrCode&&(_4f2.ctrlKey===undefined||_4f2.ctrlKey==evt.ctrlKey)&&(_4f2.altKey===undefined||_4f2.altKey==evt.altKey)&&(_4f2.metaKey===undefined||_4f2.metaKey==(evt.metaKey||false))&&(_4f2.shiftKey===undefined||_4f2.shiftKey==evt.shiftKey)){_4e9.stop(evt);_4ec.trigger(evt,_4f3,node,_4f4,_4f2,_4f5,_4f6,_4f7);}else{if(_4ec._obj==_4f2){_4ec.stop();}}})),on(node,"keyup",lang.hitch(this,function(){if(_4ec._obj==_4f2){_4ec.stop();}}))];return {remove:function(){_4e7.forEach(_4f8,function(h){h.remove();});}};},addMouseListener:function(node,_4f9,_4fa,_4fb,_4fc,_4fd){var _4fe=[on(node,"mousedown",lang.hitch(this,function(evt){_4e9.stop(evt);_4ec.trigger(evt,_4f9,node,_4fa,node,_4fb,_4fc,_4fd);})),on(node,"mouseup",lang.hitch(this,function(evt){if(this._obj){_4e9.stop(evt);}_4ec.stop();})),on(node,"mouseout",lang.hitch(this,function(evt){_4e9.stop(evt);_4ec.stop();})),on(node,"mousemove",lang.hitch(this,function(evt){evt.preventDefault();})),on(node,"dblclick",lang.hitch(this,function(evt){_4e9.stop(evt);if(has("ie")){_4ec.trigger(evt,_4f9,node,_4fa,node,_4fb,_4fc,_4fd);setTimeout(lang.hitch(this,_4ec.stop),50);}}))];return {remove:function(){_4e7.forEach(_4fe,function(h){h.remove();});}};},addListener:function(_4ff,_500,_501,_502,_503,_504,_505,_506){var _507=[this.addKeyListener(_500,_501,_502,_503,_504,_505,_506),this.addMouseListener(_4ff,_502,_503,_504,_505,_506)];return {remove:function(){_4e7.forEach(_507,function(h){h.remove();});}};}});return _4ec;});},"dijit/MenuItem":function(){require({cache:{"url:dijit/templates/MenuItem.html":"<tr class=\"dijitReset dijitMenuItem\" data-dojo-attach-point=\"focusNode\" role=\"menuitem\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-event=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">\n\t\t<div data-dojo-attach-point=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"}});define("dijit/MenuItem",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/event","dojo/_base/kernel","dojo/_base/sniff","./_Widget","./_TemplatedMixin","./_Contained","./_CssStateMixin","dojo/text!./templates/MenuItem.html"],function(_508,dom,_509,_50a,_50b,_50c,has,_50d,_50e,_50f,_510,_511){return _508("dijit.MenuItem",[_50d,_50e,_50f,_510],{templateString:_511,baseClass:"dijitMenuItem",label:"",_setLabelAttr:{node:"containerNode",type:"innerHTML"},iconClass:"dijitNoIcon",_setIconClassAttr:{node:"iconNode",type:"class"},accelKey:"",disabled:false,_fillContent:function(_512){if(_512&&!("label" in this.params)){this.set("label",_512.innerHTML);}},buildRendering:function(){this.inherited(arguments);var _513=this.id+"_text";_509.set(this.containerNode,"id",_513);if(this.accelKeyNode){_509.set(this.accelKeyNode,"id",this.id+"_accel");_513+=" "+this.id+"_accel";}this.domNode.setAttribute("aria-labelledby",_513);dom.setSelectable(this.domNode,false);},_onHover:function(){this.getParent().onItemHover(this);},_onUnhover:function(){this.getParent().onItemUnhover(this);this._set("hovering",false);},_onClick:function(evt){this.getParent().onItemClick(this,evt);_50b.stop(evt);},onClick:function(){},focus:function(){try{if(has("ie")==8){this.containerNode.focus();}this.focusNode.focus();}catch(e){}},_onFocus:function(){this._setSelected(true);this.getParent()._onItemFocus(this);this.inherited(arguments);},_setSelected:function(_514){_50a.toggle(this.domNode,"dijitMenuItemSelected",_514);},setLabel:function(_515){_50c.deprecated("dijit.MenuItem.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_515);},setDisabled:function(_516){_50c.deprecated("dijit.Menu.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_516);},_setDisabledAttr:function(_517){this.focusNode.setAttribute("aria-disabled",_517?"true":"false");this._set("disabled",_517);},_setAccelKeyAttr:function(_518){this.accelKeyNode.style.display=_518?"":"none";this.accelKeyNode.innerHTML=_518;_509.set(this.containerNode,"colSpan",_518?"1":"2");this._set("accelKey",_518);}});});},"dijit/layout/TabController":function(){require({cache:{"url:dijit/layout/templates/_TabButton.html":"<div role=\"presentation\" data-dojo-attach-point=\"titleNode\" data-dojo-attach-event='onclick:onClick'>\n <div role=\"presentation\" class='dijitTabInnerDiv' data-dojo-attach-point='innerDiv'>\n <div role=\"presentation\" class='dijitTabContent' data-dojo-attach-point='tabContent'>\n \t<div role=\"presentation\" data-dojo-attach-point='focusNode'>\n\t\t <img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitTabButtonIcon\" data-dojo-attach-point='iconNode' />\n\t\t <span data-dojo-attach-point='containerNode' class='tabLabel'></span>\n\t\t <span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" data-dojo-attach-point='closeNode'\n\t\t \t\tdata-dojo-attach-event='onclick: onClickCloseButton' role=\"presentation\">\n\t\t <span data-dojo-attach-point='closeText' class='dijitTabCloseText'>[x]</span\n\t\t ></span>\n\t\t\t</div>\n </div>\n </div>\n</div>\n"}});define("dijit/layout/TabController",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/i18n","dojo/_base/lang","./StackController","../Menu","../MenuItem","dojo/text!./templates/_TabButton.html","dojo/i18n!../nls/common"],function(_519,dom,_51a,_51b,i18n,lang,_51c,Menu,_51d,_51e){var _51f=_519("dijit.layout._TabButton",_51c.StackButton,{baseClass:"dijitTab",cssStateNodes:{closeNode:"dijitTabCloseButton"},templateString:_51e,scrollOnFocus:false,buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.containerNode,false);},startup:function(){this.inherited(arguments);var n=this.domNode;setTimeout(function(){n.className=n.className;},1);},_setCloseButtonAttr:function(disp){this._set("closeButton",disp);_51b.toggle(this.innerDiv,"dijitClosable",disp);this.closeNode.style.display=disp?"":"none";if(disp){var _520=i18n.getLocalization("dijit","common");if(this.closeNode){_51a.set(this.closeNode,"title",_520.itemClose);}this._closeMenu=new Menu({id:this.id+"_Menu",dir:this.dir,lang:this.lang,textDir:this.textDir,targetNodeIds:[this.domNode]});this._closeMenu.addChild(new _51d({label:_520.itemClose,dir:this.dir,lang:this.lang,textDir:this.textDir,onClick:lang.hitch(this,"onClickCloseButton")}));}else{if(this._closeMenu){this._closeMenu.destroyRecursive();delete this._closeMenu;}}},_setLabelAttr:function(_521){this.inherited(arguments);if(!this.showLabel&&!this.params.title){this.iconNode.alt=lang.trim(this.containerNode.innerText||this.containerNode.textContent||"");}},destroy:function(){if(this._closeMenu){this._closeMenu.destroyRecursive();delete this._closeMenu;}this.inherited(arguments);}});var _522=_519("dijit.layout.TabController",_51c,{baseClass:"dijitTabController",templateString:"<div role='tablist' data-dojo-attach-event='onkeypress:onkeypress'></div>",tabPosition:"top",buttonWidget:_51f,_rectifyRtlTabList:function(){if(0>=this.tabPosition.indexOf("-h")){return;}if(!this.pane2button){return;}var _523=0;for(var pane in this.pane2button){var ow=this.pane2button[pane].innerDiv.scrollWidth;_523=Math.max(_523,ow);}for(pane in this.pane2button){this.pane2button[pane].innerDiv.style.width=_523+"px";}}});_522.TabButton=_51f;return _522;});},"dijit/layout/_LayoutWidget":function(){define("dijit/layout/_LayoutWidget",["dojo/_base/lang","../_Widget","../_Container","../_Contained","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/sniff","dojo/_base/window"],function(lang,_524,_525,_526,_527,_528,_529,_52a,has,win){return _527("dijit.layout._LayoutWidget",[_524,_525,_526],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,buildRendering:function(){this.inherited(arguments);_528.add(this.domNode,"dijitContainer");},startup:function(){if(this._started){return;}this.inherited(arguments);var _52b=this.getParent&&this.getParent();if(!(_52b&&_52b.isLayoutContainer)){this.resize();this.connect(win.global,"onresize",function(){this.resize();});}},resize:function(_52c,_52d){var node=this.domNode;if(_52c){_529.setMarginBox(node,_52c);}var mb=_52d||{};lang.mixin(mb,_52c||{});if(!("h" in mb)||!("w" in mb)){mb=lang.mixin(_529.getMarginBox(node),mb);}var cs=_52a.getComputedStyle(node);var me=_529.getMarginExtents(node,cs);var be=_529.getBorderExtents(node,cs);var bb=(this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)});var pe=_529.getPadExtents(node,cs);this._contentBox={l:_52a.toPixelValue(node,cs.paddingLeft),t:_52a.toPixelValue(node,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h};this.layout();},layout:function(){},_setupChild:function(_52e){var cls=this.baseClass+"-child "+(_52e.baseClass?this.baseClass+"-"+_52e.baseClass:"");_528.add(_52e.domNode,cls);},addChild:function(_52f,_530){this.inherited(arguments);if(this._started){this._setupChild(_52f);}},removeChild:function(_531){var cls=this.baseClass+"-child"+(_531.baseClass?" "+this.baseClass+"-"+_531.baseClass:"");_528.remove(_531.domNode,cls);this.inherited(arguments);}});});},"dijit/popup":function(){define("dijit/popup",["dojo/_base/array","dojo/aspect","dojo/_base/connect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","dojo/_base/sniff","dojo/_base/window","./place","./BackgroundIframe","."],function(_532,_533,_534,_535,dom,_536,_537,_538,_539,_53a,keys,lang,on,has,win,_53b,_53c,_53d){var _53e=_535(null,{_stack:[],_beginZIndex:1000,_idGen:1,_createWrapper:function(_53f){var _540=_53f._popupWrapper,node=_53f.domNode;if(!_540){_540=_537.create("div",{"class":"dijitPopup",style:{display:"none"},role:"presentation"},win.body());_540.appendChild(node);var s=node.style;s.display="";s.visibility="";s.position="";s.top="0px";_53f._popupWrapper=_540;_533.after(_53f,"destroy",function(){_537.destroy(_540);delete _53f._popupWrapper;});}return _540;},moveOffScreen:function(_541){var _542=this._createWrapper(_541);_539.set(_542,{visibility:"hidden",top:"-9999px",display:""});},hide:function(_543){var _544=this._createWrapper(_543);_539.set(_544,"display","none");},getTopPopup:function(){var _545=this._stack;for(var pi=_545.length-1;pi>0&&_545[pi].parent===_545[pi-1].widget;pi--){}return _545[pi];},open:function(args){var _546=this._stack,_547=args.popup,_548=args.orient||["below","below-alt","above","above-alt"],ltr=args.parent?args.parent.isLeftToRight():_538.isBodyLtr(),_549=args.around,id=(args.around&&args.around.id)?(args.around.id+"_dropdown"):("popup_"+this._idGen++);while(_546.length&&(!args.parent||!dom.isDescendant(args.parent.domNode,_546[_546.length-1].widget.domNode))){this.close(_546[_546.length-1].widget);}var _54a=this._createWrapper(_547);_536.set(_54a,{id:id,style:{zIndex:this._beginZIndex+_546.length},"class":"dijitPopup "+(_547.baseClass||_547["class"]||"").split(" ")[0]+"Popup",dijitPopupParent:args.parent?args.parent.id:""});if(has("ie")||has("mozilla")){if(!_547.bgIframe){_547.bgIframe=new _53c(_54a);}}var best=_549?_53b.around(_54a,_549,_548,ltr,_547.orient?lang.hitch(_547,"orient"):null):_53b.at(_54a,args,_548=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],args.padding);_54a.style.display="";_54a.style.visibility="visible";_547.domNode.style.visibility="visible";var _54b=[];_54b.push(on(_54a,_534._keypress,lang.hitch(this,function(evt){if(evt.charOrCode==keys.ESCAPE&&args.onCancel){_53a.stop(evt);args.onCancel();}else{if(evt.charOrCode===keys.TAB){_53a.stop(evt);var _54c=this.getTopPopup();if(_54c&&_54c.onCancel){_54c.onCancel();}}}})));if(_547.onCancel&&args.onCancel){_54b.push(_547.on("cancel",args.onCancel));}_54b.push(_547.on(_547.onExecute?"execute":"change",lang.hitch(this,function(){var _54d=this.getTopPopup();if(_54d&&_54d.onExecute){_54d.onExecute();}})));_546.push({widget:_547,parent:args.parent,onExecute:args.onExecute,onCancel:args.onCancel,onClose:args.onClose,handlers:_54b});if(_547.onOpen){_547.onOpen(best);}return best;},close:function(_54e){var _54f=this._stack;while((_54e&&_532.some(_54f,function(elem){return elem.widget==_54e;}))||(!_54e&&_54f.length)){var top=_54f.pop(),_550=top.widget,_551=top.onClose;if(_550.onClose){_550.onClose();}var h;while(h=top.handlers.pop()){h.remove();}if(_550&&_550.domNode){this.hide(_550);}if(_551){_551();}}}});return (_53d.popup=new _53e());});},"dijit/_base/manager":function(){define("dijit/_base/manager",["dojo/_base/array","dojo/_base/config","../registry",".."],function(_552,_553,_554,_555){_552.forEach(["byId","getUniqueId","findWidgets","_destroyAll","byNode","getEnclosingWidget"],function(name){_555[name]=_554[name];});_555.defaultDuration=_553["defaultDuration"]||200;return _555;});},"dijit/layout/StackController":function(){define("dijit/layout/StackController",["dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/_base/sniff","../focus","../registry","../_Widget","../_TemplatedMixin","../_Container","../form/ToggleButton","dojo/i18n!../nls/common"],function(_556,_557,_558,keys,lang,has,_559,_55a,_55b,_55c,_55d,_55e){var _55f=_557("dijit.layout._StackButton",_55e,{tabIndex:"-1",closeButton:false,_setCheckedAttr:function(_560,_561){this.inherited(arguments);this.focusNode.removeAttribute("aria-pressed");},buildRendering:function(evt){this.inherited(arguments);(this.focusNode||this.domNode).setAttribute("role","tab");},onClick:function(){_559.focus(this.focusNode);},onClickCloseButton:function(evt){evt.stopPropagation();}});var _562=_557("dijit.layout.StackController",[_55b,_55c,_55d],{baseClass:"dijitStackController",templateString:"<span role='tablist' data-dojo-attach-event='onkeypress'></span>",containerId:"",buttonWidget:_55f,constructor:function(){this.pane2button={};this.pane2connects={};this.pane2watches={};},postCreate:function(){this.inherited(arguments);this.subscribe(this.containerId+"-startup","onStartup");this.subscribe(this.containerId+"-addChild","onAddChild");this.subscribe(this.containerId+"-removeChild","onRemoveChild");this.subscribe(this.containerId+"-selectChild","onSelectChild");this.subscribe(this.containerId+"-containerKeyPress","onContainerKeyPress");},onStartup:function(info){_556.forEach(info.children,this.onAddChild,this);if(info.selected){this.onSelectChild(info.selected);}},destroy:function(){for(var pane in this.pane2button){this.onRemoveChild(_55a.byId(pane));}this.inherited(arguments);},onAddChild:function(page,_563){var cls=lang.isString(this.buttonWidget)?lang.getObject(this.buttonWidget):this.buttonWidget;var _564=new cls({id:this.id+"_"+page.id,label:page.title,dir:page.dir,lang:page.lang,textDir:page.textDir,showLabel:page.showTitle,iconClass:page.iconClass,closeButton:page.closable,title:page.tooltip});_564.focusNode.setAttribute("aria-selected","false");var _565=["title","showTitle","iconClass","closable","tooltip"],_566=["label","showLabel","iconClass","closeButton","title"];this.pane2watches[page.id]=_556.map(_565,function(_567,idx){return page.watch(_567,function(name,_568,_569){_564.set(_566[idx],_569);});});this.pane2connects[page.id]=[this.connect(_564,"onClick",lang.hitch(this,"onButtonClick",page)),this.connect(_564,"onClickCloseButton",lang.hitch(this,"onCloseButtonClick",page))];this.addChild(_564,_563);this.pane2button[page.id]=_564;page.controlButton=_564;if(!this._currentChild){_564.focusNode.setAttribute("tabIndex","0");_564.focusNode.setAttribute("aria-selected","true");this._currentChild=page;}if(!this.isLeftToRight()&&has("ie")&&this._rectifyRtlTabList){this._rectifyRtlTabList();}},onRemoveChild:function(page){if(this._currentChild===page){this._currentChild=null;}_556.forEach(this.pane2connects[page.id],lang.hitch(this,"disconnect"));delete this.pane2connects[page.id];_556.forEach(this.pane2watches[page.id],function(w){w.unwatch();});delete this.pane2watches[page.id];var _56a=this.pane2button[page.id];if(_56a){this.removeChild(_56a);delete this.pane2button[page.id];_56a.destroy();}delete page.controlButton;},onSelectChild:function(page){if(!page){return;}if(this._currentChild){var _56b=this.pane2button[this._currentChild.id];_56b.set("checked",false);_56b.focusNode.setAttribute("aria-selected","false");_56b.focusNode.setAttribute("tabIndex","-1");}var _56c=this.pane2button[page.id];_56c.set("checked",true);_56c.focusNode.setAttribute("aria-selected","true");this._currentChild=page;_56c.focusNode.setAttribute("tabIndex","0");var _56d=_55a.byId(this.containerId);_56d.containerNode.setAttribute("aria-labelledby",_56c.id);},onButtonClick:function(page){if(this._currentChild.id===page.id){var _56e=this.pane2button[page.id];_56e.set("checked",true);}var _56f=_55a.byId(this.containerId);_56f.selectChild(page);},onCloseButtonClick:function(page){var _570=_55a.byId(this.containerId);_570.closeChild(page);if(this._currentChild){var b=this.pane2button[this._currentChild.id];if(b){_559.focus(b.focusNode||b.domNode);}}},adjacent:function(_571){if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition))){_571=!_571;}var _572=this.getChildren();var _573=_556.indexOf(_572,this.pane2button[this._currentChild.id]);var _574=_571?1:_572.length-1;return _572[(_573+_574)%_572.length];},onkeypress:function(e){if(this.disabled||e.altKey){return;}var _575=null;if(e.ctrlKey||!e._djpage){switch(e.charOrCode){case keys.LEFT_ARROW:case keys.UP_ARROW:if(!e._djpage){_575=false;}break;case keys.PAGE_UP:if(e.ctrlKey){_575=false;}break;case keys.RIGHT_ARROW:case keys.DOWN_ARROW:if(!e._djpage){_575=true;}break;case keys.PAGE_DOWN:if(e.ctrlKey){_575=true;}break;case keys.HOME:case keys.END:var _576=this.getChildren();if(_576&&_576.length){_576[e.charOrCode==keys.HOME?0:_576.length-1].onClick();}_558.stop(e);break;case keys.DELETE:if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}_558.stop(e);break;default:if(e.ctrlKey){if(e.charOrCode===keys.TAB){this.adjacent(!e.shiftKey).onClick();_558.stop(e);}else{if(e.charOrCode=="w"){if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}_558.stop(e);}}}}if(_575!==null){this.adjacent(_575).onClick();_558.stop(e);}}},onContainerKeyPress:function(info){info.e._djpage=info.page;this.onkeypress(info.e);}});_562.StackButton=_55f;return _562;});},"dojo/dnd/Mover":function(){define("dojo/dnd/Mover",["../main","../Evented","../touch","./common","./autoscroll"],function(dojo,_577,_578){dojo.declare("dojo.dnd.Mover",[_577],{constructor:function(node,e,host){this.node=dojo.byId(node);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=(this.host=host),d=node.ownerDocument;this.events=[dojo.connect(d,_578.move,this,"onFirstMove"),dojo.connect(d,_578.move,this,"onMouseMove"),dojo.connect(d,_578.release,this,"onMouseUp"),dojo.connect(d,"ondragstart",dojo.stopEvent),dojo.connect(d.body,"onselectstart",dojo.stopEvent)];if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY},e);dojo.stopEvent(e);},onMouseUp:function(e){if(dojo.isWebKit&&dojo.isMac&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){this.destroy();}dojo.stopEvent(e);},onFirstMove:function(e){var s=this.node.style,l,t,h=this.host;switch(s.position){case "relative":case "absolute":l=Math.round(parseFloat(s.left))||0;t=Math.round(parseFloat(s.top))||0;break;default:s.position="absolute";var m=dojo.marginBox(this.node);var b=dojo.doc.body;var bs=dojo.getComputedStyle(b);var bm=dojo._getMarginBox(b,bs);var bc=dojo._getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break;}this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove){h.onFirstMove(this,e);}dojo.disconnect(this.events.shift());},destroy:function(){dojo.forEach(this.events,dojo.disconnect);var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}this.events=this.node=this.host=null;}});return dojo.dnd.Mover;});},"dijit/layout/TabContainer":function(){define("dijit/layout/TabContainer",["dojo/_base/lang","dojo/_base/declare","./_TabContainerBase","./TabController","./ScrollingTabController"],function(lang,_579,_57a,_57b,_57c){return _579("dijit.layout.TabContainer",_57a,{useMenu:true,useSlider:true,controllerWidget:"",_makeController:function(_57d){var cls=this.baseClass+"-tabs"+(this.doLayout?"":" dijitTabNoLayout"),_57b=lang.getObject(this.controllerWidget);return new _57b({id:this.id+"_tablist",dir:this.dir,lang:this.lang,textDir:this.textDir,tabPosition:this.tabPosition,doLayout:this.doLayout,containerId:this.id,"class":cls,nested:this.nested,useMenu:this.useMenu,useSlider:this.useSlider,tabStripClass:this.tabStrip?this.baseClass+(this.tabStrip?"":"No")+"Strip":null},_57d);},postMixInProperties:function(){this.inherited(arguments);if(!this.controllerWidget){this.controllerWidget=(this.tabPosition=="top"||this.tabPosition=="bottom")&&!this.nested?"dijit.layout.ScrollingTabController":"dijit.layout.TabController";}}});});},"dijit/BackgroundIframe":function(){define("dijit/BackgroundIframe",["require",".","dojo/_base/config","dojo/dom-construct","dojo/dom-style","dojo/_base/lang","dojo/on","dojo/_base/sniff","dojo/_base/window"],function(_57e,_57f,_580,_581,_582,lang,on,has,win){var _583=new function(){var _584=[];this.pop=function(){var _585;if(_584.length){_585=_584.pop();_585.style.display="";}else{if(has("ie")<9){var burl=_580["dojoBlankHtmlUrl"]||_57e.toUrl("dojo/resources/blank.html")||"javascript:\"\"";var html="<iframe src='"+burl+"' role='presentation'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_585=win.doc.createElement(html);}else{_585=_581.create("iframe");_585.src="javascript:\"\"";_585.className="dijitBackgroundIframe";_585.setAttribute("role","presentation");_582.set(_585,"opacity",0.1);}_585.tabIndex=-1;}return _585;};this.push=function(_586){_586.style.display="none";_584.push(_586);};}();_57f.BackgroundIframe=function(node){if(!node.id){throw new Error("no id");}if(has("ie")||has("mozilla")){var _587=(this.iframe=_583.pop());node.appendChild(_587);if(has("ie")<7||has("quirks")){this.resize(node);this._conn=on(node,"resize",lang.hitch(this,function(){this.resize(node);}));}else{_582.set(_587,{width:"100%",height:"100%"});}}};lang.extend(_57f.BackgroundIframe,{resize:function(node){if(this.iframe){_582.set(this.iframe,{width:node.offsetWidth+"px",height:node.offsetHeight+"px"});}},destroy:function(){if(this._conn){this._conn.remove();this._conn=null;}if(this.iframe){_583.push(this.iframe);delete this.iframe;}}});return _57f.BackgroundIframe;});},"url:dijit/templates/Menu.html":"<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" role=\"menu\" tabIndex=\"${tabIndex}\" data-dojo-attach-event=\"onkeypress:_onKeyPress\" cellspacing=\"0\">\n\t<tbody class=\"dijitReset\" data-dojo-attach-point=\"containerNode\"></tbody>\n</table>\n","dojo/dnd/Avatar":function(){define("dojo/dnd/Avatar",["../main","./common"],function(dojo){dojo.declare("dojo.dnd.Avatar",null,{constructor:function(_588){this.manager=_588;this.construct();},construct:function(){this.isA11y=dojo.hasClass(dojo.body(),"dijit_a11y");var a=dojo.create("table",{"class":"dojoDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),_589=this.manager.source,node,b=dojo.create("tbody",null,a),tr=dojo.create("tr",null,b),td=dojo.create("td",null,tr),icon=this.isA11y?dojo.create("span",{id:"a11yIcon",innerHTML:this.manager.copy?"+":"<"},td):null,span=dojo.create("span",{innerHTML:_589.generateText?this._generateText():""},td),k=Math.min(5,this.manager.nodes.length),i=0;dojo.attr(tr,{"class":"dojoDndAvatarHeader",style:{opacity:0.9}});for(;i<k;++i){if(_589.creator){node=_589._normalizedCreator(_589.getItem(this.manager.nodes[i].id).data,"avatar").node;}else{node=this.manager.nodes[i].cloneNode(true);if(node.tagName.toLowerCase()=="tr"){var _58a=dojo.create("table"),_58b=dojo.create("tbody",null,_58a);_58b.appendChild(node);node=_58a;}}node.id="";tr=dojo.create("tr",null,b);td=dojo.create("td",null,tr);td.appendChild(node);dojo.attr(tr,{"class":"dojoDndAvatarItem",style:{opacity:(9-i)/10}});}this.node=a;},destroy:function(){dojo.destroy(this.node);this.node=false;},update:function(){dojo[(this.manager.canDropFlag?"add":"remove")+"Class"](this.node,"dojoDndAvatarCanDrop");if(this.isA11y){var icon=dojo.byId("a11yIcon");var text="+";if(this.manager.canDropFlag&&!this.manager.copy){text="< ";}else{if(!this.manager.canDropFlag&&!this.manager.copy){text="o";}else{if(!this.manager.canDropFlag){text="x";}}}icon.innerHTML=text;}dojo.query(("tr.dojoDndAvatarHeader td span"+(this.isA11y?" span":"")),this.node).forEach(function(node){node.innerHTML=this._generateText();},this);},_generateText:function(){return this.manager.nodes.length.toString();}});return dojo.dnd.Avatar;});},"dijit/form/Button":function(){require({cache:{"url:dijit/form/templates/Button.html":"<span class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" role=\"presentation\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode,focusNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#x25CF;</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\ttabIndex=\"-1\" role=\"presentation\" data-dojo-attach-point=\"valueNode\"\n/></span>\n"}});define("dijit/form/Button",["require","dojo/_base/declare","dojo/dom-class","dojo/_base/kernel","dojo/_base/lang","dojo/ready","./_FormWidget","./_ButtonMixin","dojo/text!./templates/Button.html"],function(_58c,_58d,_58e,_58f,lang,_590,_591,_592,_593){if(!_58f.isAsync){_590(0,function(){var _594=["dijit/form/DropDownButton","dijit/form/ComboButton","dijit/form/ToggleButton"];_58c(_594);});}return _58d("dijit.form.Button",[_591,_592],{showLabel:true,iconClass:"dijitNoIcon",_setIconClassAttr:{node:"iconNode",type:"class"},baseClass:"dijitButton",templateString:_593,_setValueAttr:"valueNode",_onClick:function(e){var ok=this.inherited(arguments);if(ok){if(this.valueNode){this.valueNode.click();e.preventDefault();}}return ok;},_fillContent:function(_595){if(_595&&(!this.params||!("label" in this.params))){var _596=lang.trim(_595.innerHTML);if(_596){this.label=_596;}}},_setShowLabelAttr:function(val){if(this.containerNode){_58e.toggle(this.containerNode,"dijitDisplayNone",!val);}this._set("showLabel",val);},setLabel:function(_597){_58f.deprecated("dijit.form.Button.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_597);},_setLabelAttr:function(_598){this.inherited(arguments);if(!this.showLabel&&!("title" in this.params)){this.titleNode.title=lang.trim(this.containerNode.innerText||this.containerNode.textContent||"");}}});});},"url:dijit/layout/templates/TabContainer.html":"<div class=\"dijitTabContainer\">\n\t<div class=\"dijitTabListWrapper\" data-dojo-attach-point=\"tablistNode\"></div>\n\t<div data-dojo-attach-point=\"tablistSpacer\" class=\"dijitTabSpacer ${baseClass}-spacer\"></div>\n\t<div class=\"dijitTabPaneWrapper ${baseClass}-container\" data-dojo-attach-point=\"containerNode\"></div>\n</div>\n","dojo/dnd/move":function(){define("dojo/dnd/move",["../main","./Mover","./Moveable"],function(dojo){dojo.declare("dojo.dnd.move.constrainedMoveable",dojo.dnd.Moveable,{constraints:function(){},within:false,constructor:function(node,_599){if(!_599){_599={};}this.constraints=_599.constraints;this.within=_599.within;},onFirstMove:function(_59a){var c=this.constraintBox=this.constraints.call(this,_59a);c.r=c.l+c.w;c.b=c.t+c.h;if(this.within){var mb=dojo._getMarginSize(_59a.node);c.r-=mb.w;c.b-=mb.h;}},onMove:function(_59b,_59c){var c=this.constraintBox,s=_59b.node.style;this.onMoving(_59b,_59c);_59c.l=_59c.l<c.l?c.l:c.r<_59c.l?c.r:_59c.l;_59c.t=_59c.t<c.t?c.t:c.b<_59c.t?c.b:_59c.t;s.left=_59c.l+"px";s.top=_59c.t+"px";this.onMoved(_59b,_59c);}});dojo.declare("dojo.dnd.move.boxConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{box:{},constructor:function(node,_59d){var box=_59d&&_59d.box;this.constraints=function(){return box;};}});dojo.declare("dojo.dnd.move.parentConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{area:"content",constructor:function(node,_59e){var area=_59e&&_59e.area;this.constraints=function(){var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s);if(area=="margin"){return mb;}var t=dojo._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="border"){return mb;}t=dojo._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="padding"){return mb;}t=dojo._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};}});dojo.dnd.constrainedMover=dojo.dnd.move.constrainedMover;dojo.dnd.boxConstrainedMover=dojo.dnd.move.boxConstrainedMover;dojo.dnd.parentConstrainedMover=dojo.dnd.move.parentConstrainedMover;return dojo.dnd.move;});},"dijit/_WidgetBase":function(){define("dijit/_WidgetBase",["require","dojo/_base/array","dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/ready","dojo/Stateful","dojo/topic","dojo/_base/window","./registry"],function(_59f,_5a0,_5a1,_5a2,_5a3,_5a4,dom,_5a5,_5a6,_5a7,_5a8,_5a9,_5aa,lang,on,_5ab,_5ac,_5ad,win,_5ae){if(!_5aa.isAsync){_5ab(0,function(){var _5af=["dijit/_base/manager"];_59f(_5af);});}var _5b0={};function _5b1(obj){var ret={};for(var attr in obj){ret[attr.toLowerCase()]=true;}return ret;};function _5b2(attr){return function(val){_5a5[val?"set":"remove"](this.domNode,attr,val);this._set(attr,val);};};return _5a4("dijit._WidgetBase",_5ac,{id:"",_setIdAttr:"domNode",lang:"",_setLangAttr:_5b2("lang"),dir:"",_setDirAttr:_5b2("dir"),textDir:"","class":"",_setClassAttr:{node:"domNode",type:"class"},style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{},_blankGif:_5a2.blankGif||_59f.toUrl("dojo/resources/blank.gif"),postscript:function(_5b3,_5b4){this.create(_5b3,_5b4);},create:function(_5b5,_5b6){this.srcNodeRef=dom.byId(_5b6);this._connects=[];this._supportingWidgets=[];if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}if(_5b5){this.params=_5b5;lang.mixin(this,_5b5);}this.postMixInProperties();if(!this.id){this.id=_5ae.getUniqueId(this.declaredClass.replace(/\./g,"_"));}_5ae.add(this);this.buildRendering();if(this.domNode){this._applyAttributes();var _5b7=this.srcNodeRef;if(_5b7&&_5b7.parentNode&&this.domNode!==_5b7){_5b7.parentNode.replaceChild(this.domNode,_5b7);}}if(this.domNode){this.domNode.setAttribute("widgetId",this.id);}this.postCreate();if(this.srcNodeRef&&!this.srcNodeRef.parentNode){delete this.srcNodeRef;}this._created=true;},_applyAttributes:function(){var ctor=this.constructor,list=ctor._setterAttrs;if(!list){list=(ctor._setterAttrs=[]);for(var attr in this.attributeMap){list.push(attr);}var _5b8=ctor.prototype;for(var _5b9 in _5b8){if(_5b9 in this.attributeMap){continue;}var _5ba="_set"+_5b9.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase();})+"Attr";if(_5ba in _5b8){list.push(_5b9);}}}_5a0.forEach(list,function(attr){if(this.params&&attr in this.params){}else{if(this[attr]){this.set(attr,this[attr]);}}},this);for(var _5bb in this.params){this.set(_5bb,this[_5bb]);}},postMixInProperties:function(){},buildRendering:function(){if(!this.domNode){this.domNode=this.srcNodeRef||_5a7.create("div");}if(this.baseClass){var _5bc=this.baseClass.split(" ");if(!this.isLeftToRight()){_5bc=_5bc.concat(_5a0.map(_5bc,function(name){return name+"Rtl";}));}_5a6.add(this.domNode,_5bc);}},postCreate:function(){},startup:function(){if(this._started){return;}this._started=true;_5a0.forEach(this.getChildren(),function(obj){if(!obj._started&&!obj._destroyed&&lang.isFunction(obj.startup)){obj.startup();obj._started=true;}});},destroyRecursive:function(_5bd){this._beingDestroyed=true;this.destroyDescendants(_5bd);this.destroy(_5bd);},destroy:function(_5be){this._beingDestroyed=true;this.uninitialize();var c;while((c=this._connects.pop())){c.remove();}var w;while((w=this._supportingWidgets.pop())){if(w.destroyRecursive){w.destroyRecursive();}else{if(w.destroy){w.destroy();}}}this.destroyRendering(_5be);_5ae.remove(this.id);this._destroyed=true;},destroyRendering:function(_5bf){if(this.bgIframe){this.bgIframe.destroy(_5bf);delete this.bgIframe;}if(this.domNode){if(_5bf){_5a5.remove(this.domNode,"widgetId");}else{_5a7.destroy(this.domNode);}delete this.domNode;}if(this.srcNodeRef){if(!_5bf){_5a7.destroy(this.srcNodeRef);}delete this.srcNodeRef;}},destroyDescendants:function(_5c0){_5a0.forEach(this.getChildren(),function(_5c1){if(_5c1.destroyRecursive){_5c1.destroyRecursive(_5c0);}});},uninitialize:function(){return false;},_setStyleAttr:function(_5c2){var _5c3=this.domNode;if(lang.isObject(_5c2)){_5a9.set(_5c3,_5c2);}else{if(_5c3.style.cssText){_5c3.style.cssText+="; "+_5c2;}else{_5c3.style.cssText=_5c2;}}this._set("style",_5c2);},_attrToDom:function(attr,_5c4,_5c5){_5c5=arguments.length>=3?_5c5:this.attributeMap[attr];_5a0.forEach(lang.isArray(_5c5)?_5c5:[_5c5],function(_5c6){var _5c7=this[_5c6.node||_5c6||"domNode"];var type=_5c6.type||"attribute";switch(type){case "attribute":if(lang.isFunction(_5c4)){_5c4=lang.hitch(this,_5c4);}var _5c8=_5c6.attribute?_5c6.attribute:(/^on[A-Z][a-zA-Z]*$/.test(attr)?attr.toLowerCase():attr);_5a5.set(_5c7,_5c8,_5c4);break;case "innerText":_5c7.innerHTML="";_5c7.appendChild(win.doc.createTextNode(_5c4));break;case "innerHTML":_5c7.innerHTML=_5c4;break;case "class":_5a6.replace(_5c7,_5c4,this[attr]);break;}},this);},get:function(name){var _5c9=this._getAttrNames(name);return this[_5c9.g]?this[_5c9.g]():this[name];},set:function(name,_5ca){if(typeof name==="object"){for(var x in name){this.set(x,name[x]);}return this;}var _5cb=this._getAttrNames(name),_5cc=this[_5cb.s];if(lang.isFunction(_5cc)){var _5cd=_5cc.apply(this,Array.prototype.slice.call(arguments,1));}else{var _5ce=this.focusNode&&!lang.isFunction(this.focusNode)?"focusNode":"domNode",tag=this[_5ce].tagName,_5cf=_5b0[tag]||(_5b0[tag]=_5b1(this[_5ce])),map=name in this.attributeMap?this.attributeMap[name]:_5cb.s in this?this[_5cb.s]:((_5cb.l in _5cf&&typeof _5ca!="function")||/^aria-|^data-|^role$/.test(name))?_5ce:null;if(map!=null){this._attrToDom(name,_5ca,map);}this._set(name,_5ca);}return _5cd||this;},_attrPairNames:{},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name]){return apn[name];}var uc=name.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase();});return (apn[name]={n:name+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr",l:uc.toLowerCase()});},_set:function(name,_5d0){var _5d1=this[name];this[name]=_5d0;if(this._watchCallbacks&&this._created&&_5d0!==_5d1){this._watchCallbacks(name,_5d1,_5d0);}},on:function(type,func){return _5a1.after(this,this._onMap(type),func,true);},_onMap:function(type){var ctor=this.constructor,map=ctor._onMap;if(!map){map=(ctor._onMap={});for(var attr in ctor.prototype){if(/^on/.test(attr)){map[attr.replace(/^on/,"").toLowerCase()]=attr;}}}return map[type.toLowerCase()];},toString:function(){return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]";},getChildren:function(){return this.containerNode?_5ae.findWidgets(this.containerNode):[];},getParent:function(){return _5ae.getEnclosingWidget(this.domNode.parentNode);},connect:function(obj,_5d2,_5d3){var _5d4=_5a3.connect(obj,_5d2,this,_5d3);this._connects.push(_5d4);return _5d4;},disconnect:function(_5d5){var i=_5a0.indexOf(this._connects,_5d5);if(i!=-1){_5d5.remove();this._connects.splice(i,1);}},subscribe:function(t,_5d6){var _5d7=_5ad.subscribe(t,lang.hitch(this,_5d6));this._connects.push(_5d7);return _5d7;},unsubscribe:function(_5d8){this.disconnect(_5d8);},isLeftToRight:function(){return this.dir?(this.dir=="ltr"):_5a8.isBodyLtr();},isFocusable:function(){return this.focus&&(_5a9.get(this.domNode,"display")!="none");},placeAt:function(_5d9,_5da){if(_5d9.declaredClass&&_5d9.addChild){_5d9.addChild(this,_5da);}else{_5a7.place(this.domNode,_5d9,_5da);}return this;},getTextDir:function(text,_5db){return _5db;},applyTextDir:function(){},defer:function(fcn,_5dc){var _5dd=setTimeout(lang.hitch(this,function(){_5dd=null;if(!this._destroyed){lang.hitch(this,fcn)();}}),_5dc||0);return {remove:function(){if(_5dd){clearTimeout(_5dd);_5dd=null;}return null;}};}});});},"dijit/form/Form":function(){define("dijit/form/Form",["dojo/_base/declare","dojo/dom-attr","dojo/_base/event","dojo/_base/kernel","dojo/_base/sniff","../_Widget","../_TemplatedMixin","./_FormMixin","../layout/_ContentPaneResizeMixin"],function(_5de,_5df,_5e0,_5e1,has,_5e2,_5e3,_5e4,_5e5){return _5de("dijit.form.Form",[_5e2,_5e3,_5e4,_5e5],{name:"",action:"",method:"",encType:"","accept-charset":"",accept:"",target:"",templateString:"<form data-dojo-attach-point='containerNode' data-dojo-attach-event='onreset:_onReset,onsubmit:_onSubmit' ${!nameAttrSetting}></form>",postMixInProperties:function(){this.nameAttrSetting=this.name?("name='"+this.name+"'"):"";this.inherited(arguments);},execute:function(){},onExecute:function(){},_setEncTypeAttr:function(_5e6){this.encType=_5e6;_5df.set(this.domNode,"encType",_5e6);if(has("ie")){this.domNode.encoding=_5e6;}},reset:function(e){var faux={returnValue:true,preventDefault:function(){this.returnValue=false;},stopPropagation:function(){},currentTarget:e?e.target:this.domNode,target:e?e.target:this.domNode};if(!(this.onReset(faux)===false)&&faux.returnValue){this.inherited(arguments,[]);}},onReset:function(){return true;},_onReset:function(e){this.reset(e);_5e0.stop(e);return false;},_onSubmit:function(e){var fp=this.constructor.prototype;if(this.execute!=fp.execute||this.onExecute!=fp.onExecute){_5e1.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.","","2.0");this.onExecute();this.execute(this.getValues());}if(this.onSubmit(e)===false){_5e0.stop(e);}},onSubmit:function(){return this.isValid();},submit:function(){if(!(this.onSubmit()===false)){this.containerNode.submit();}}});});},"dijit/layout/_TabContainerBase":function(){require({cache:{"url:dijit/layout/templates/TabContainer.html":"<div class=\"dijitTabContainer\">\n\t<div class=\"dijitTabListWrapper\" data-dojo-attach-point=\"tablistNode\"></div>\n\t<div data-dojo-attach-point=\"tablistSpacer\" class=\"dijitTabSpacer ${baseClass}-spacer\"></div>\n\t<div class=\"dijitTabPaneWrapper ${baseClass}-container\" data-dojo-attach-point=\"containerNode\"></div>\n</div>\n"}});define("dijit/layout/_TabContainerBase",["dojo/text!./templates/TabContainer.html","./StackContainer","./utils","../_TemplatedMixin","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style"],function(_5e7,_5e8,_5e9,_5ea,_5eb,_5ec,_5ed,_5ee){return _5eb("dijit.layout._TabContainerBase",[_5e8,_5ea],{tabPosition:"top",baseClass:"dijitTabContainer",tabStrip:false,nested:false,templateString:_5e7,postMixInProperties:function(){this.baseClass+=this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"");this.srcNodeRef&&_5ee.set(this.srcNodeRef,"visibility","hidden");this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);this.tablist=this._makeController(this.tablistNode);if(!this.doLayout){_5ec.add(this.domNode,"dijitTabContainerNoLayout");}if(this.nested){_5ec.add(this.domNode,"dijitTabContainerNested");_5ec.add(this.tablist.containerNode,"dijitTabContainerTabListNested");_5ec.add(this.tablistSpacer,"dijitTabContainerSpacerNested");_5ec.add(this.containerNode,"dijitTabPaneWrapperNested");}else{_5ec.add(this.domNode,"tabStrip-"+(this.tabStrip?"enabled":"disabled"));}},_setupChild:function(tab){_5ec.add(tab.domNode,"dijitTabPane");this.inherited(arguments);},startup:function(){if(this._started){return;}this.tablist.startup();this.inherited(arguments);},layout:function(){if(!this._contentBox||typeof (this._contentBox.l)=="undefined"){return;}var sc=this.selectedChildWidget;if(this.doLayout){var _5ef=this.tabPosition.replace(/-h/,"");this.tablist.layoutAlign=_5ef;var _5f0=[this.tablist,{domNode:this.tablistSpacer,layoutAlign:_5ef},{domNode:this.containerNode,layoutAlign:"client"}];_5e9.layoutChildren(this.domNode,this._contentBox,_5f0);this._containerContentBox=_5e9.marginBox2contentBox(this.containerNode,_5f0[2]);if(sc&&sc.resize){sc.resize(this._containerContentBox);}}else{if(this.tablist.resize){var s=this.tablist.domNode.style;s.width="0";var _5f1=_5ed.getContentBox(this.domNode).w;s.width="";this.tablist.resize({w:_5f1});}if(sc&&sc.resize){sc.resize();}}},destroy:function(){if(this.tablist){this.tablist.destroy();}this.inherited(arguments);}});});},"dojo/store/Memory":function(){define("dojo/store/Memory",["../_base/declare","./util/QueryResults","./util/SimpleQueryEngine"],function(_5f2,_5f3,_5f4){return _5f2("dojo.store.Memory",null,{constructor:function(_5f5){for(var i in _5f5){this[i]=_5f5[i];}this.setData(this.data||[]);},data:null,idProperty:"id",index:null,queryEngine:_5f4,get:function(id){return this.data[this.index[id]];},getIdentity:function(_5f6){return _5f6[this.idProperty];},put:function(_5f7,_5f8){var data=this.data,_5f9=this.index,_5fa=this.idProperty;var id=(_5f8&&"id" in _5f8)?_5f8.id:_5fa in _5f7?_5f7[_5fa]:Math.random();if(id in _5f9){if(_5f8&&_5f8.overwrite===false){throw new Error("Object already exists");}data[_5f9[id]]=_5f7;}else{_5f9[id]=data.push(_5f7)-1;}return id;},add:function(_5fb,_5fc){(_5fc=_5fc||{}).overwrite=false;return this.put(_5fb,_5fc);},remove:function(id){var _5fd=this.index;var data=this.data;if(id in _5fd){data.splice(_5fd[id],1);this.setData(data);return true;}},query:function(_5fe,_5ff){return _5f3(this.queryEngine(_5fe,_5ff)(this.data));},setData:function(data){if(data.items){this.idProperty=data.identifier;data=this.data=data.items;}else{this.data=data;}this.index={};for(var i=0,l=data.length;i<l;i++){this.index[data[i][this.idProperty]]=i;}}});});},"url:dijit/templates/Tooltip.html":"<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\"\n\t><div class=\"dijitTooltipContainer dijitTooltipContents\" data-dojo-attach-point=\"containerNode\" role='alert'></div\n\t><div class=\"dijitTooltipConnector\" data-dojo-attach-point=\"connectorNode\"></div\n></div>\n","dijit/_base/sniff":function(){define("dijit/_base/sniff",["dojo/uacss"],function(){});},"dijit/Toolbar":function(){define("dijit/Toolbar",["require","dojo/_base/declare","dojo/_base/kernel","dojo/keys","dojo/ready","./_Widget","./_KeyNavContainer","./_TemplatedMixin"],function(_600,_601,_602,keys,_603,_604,_605,_606){if(!_602.isAsync){_603(0,function(){var _607=["dijit/ToolbarSeparator"];_600(_607);});}return _601("dijit.Toolbar",[_604,_606,_605],{templateString:"<div class=\"dijit\" role=\"toolbar\" tabIndex=\"${tabIndex}\" data-dojo-attach-point=\"containerNode\">"+"</div>",baseClass:"dijitToolbar",postCreate:function(){this.inherited(arguments);this.connectKeyNavHandlers(this.isLeftToRight()?[keys.LEFT_ARROW]:[keys.RIGHT_ARROW],this.isLeftToRight()?[keys.RIGHT_ARROW]:[keys.LEFT_ARROW]);}});});},"dijit/layout/StackContainer":function(){define("dijit/layout/StackContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom-class","dojo/_base/kernel","dojo/_base/lang","dojo/ready","dojo/topic","../registry","../_WidgetBase","./_LayoutWidget","dojo/i18n!../nls/common"],function(_608,_609,_60a,_60b,_60c,lang,_60d,_60e,_60f,_610,_611){if(!_60c.isAsync){_60d(0,function(){var _612=["dijit/layout/StackController"];require(_612);});}lang.extend(_610,{selected:false,closable:false,iconClass:"dijitNoIcon",showTitle:true});return _60a("dijit.layout.StackContainer",_611,{doLayout:true,persist:false,baseClass:"dijitStackContainer",buildRendering:function(){this.inherited(arguments);_60b.add(this.domNode,"dijitLayoutContainer");this.containerNode.setAttribute("role","tabpanel");},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onkeypress",this._onKeyPress);},startup:function(){if(this._started){return;}var _613=this.getChildren();_608.forEach(_613,this._setupChild,this);if(this.persist){this.selectedChildWidget=_60f.byId(_609(this.id+"_selectedChild"));}else{_608.some(_613,function(_614){if(_614.selected){this.selectedChildWidget=_614;}return _614.selected;},this);}var _615=this.selectedChildWidget;if(!_615&&_613[0]){_615=this.selectedChildWidget=_613[0];_615.selected=true;}_60e.publish(this.id+"-startup",{children:_613,selected:_615});this.inherited(arguments);},resize:function(){if(!this._hasBeenShown){this._hasBeenShown=true;var _616=this.selectedChildWidget;if(_616){this._showChild(_616);}}this.inherited(arguments);},_setupChild:function(_617){this.inherited(arguments);_60b.replace(_617.domNode,"dijitHidden","dijitVisible");_617.domNode.title="";},addChild:function(_618,_619){this.inherited(arguments);if(this._started){_60e.publish(this.id+"-addChild",_618,_619);this.layout();if(!this.selectedChildWidget){this.selectChild(_618);}}},removeChild:function(page){this.inherited(arguments);if(this._started){_60e.publish(this.id+"-removeChild",page);}if(this._descendantsBeingDestroyed){return;}if(this.selectedChildWidget===page){this.selectedChildWidget=undefined;if(this._started){var _61a=this.getChildren();if(_61a.length){this.selectChild(_61a[0]);}}}if(this._started){this.layout();}},selectChild:function(page,_61b){page=_60f.byId(page);if(this.selectedChildWidget!=page){var d=this._transition(page,this.selectedChildWidget,_61b);this._set("selectedChildWidget",page);_60e.publish(this.id+"-selectChild",page);if(this.persist){_609(this.id+"_selectedChild",this.selectedChildWidget.id);}}return d;},_transition:function(_61c,_61d){if(_61d){this._hideChild(_61d);}var d=this._showChild(_61c);if(_61c.resize){if(this.doLayout){_61c.resize(this._containerContentBox||this._contentBox);}else{_61c.resize();}}return d;},_adjacent:function(_61e){var _61f=this.getChildren();var _620=_608.indexOf(_61f,this.selectedChildWidget);_620+=_61e?1:_61f.length-1;return _61f[_620%_61f.length];},forward:function(){return this.selectChild(this._adjacent(true),true);},back:function(){return this.selectChild(this._adjacent(false),true);},_onKeyPress:function(e){_60e.publish(this.id+"-containerKeyPress",{e:e,page:this});},layout:function(){var _621=this.selectedChildWidget;if(_621&&_621.resize){if(this.doLayout){_621.resize(this._containerContentBox||this._contentBox);}else{_621.resize();}}},_showChild:function(page){var _622=this.getChildren();page.isFirstChild=(page==_622[0]);page.isLastChild=(page==_622[_622.length-1]);page._set("selected",true);_60b.replace(page.domNode,"dijitVisible","dijitHidden");return (page._onShow&&page._onShow())||true;},_hideChild:function(page){page._set("selected",false);_60b.replace(page.domNode,"dijitHidden","dijitVisible");page.onHide&&page.onHide();},closeChild:function(page){var _623=page.onClose(this,page);if(_623){this.removeChild(page);page.destroyRecursive();}},destroyDescendants:function(_624){this._descendantsBeingDestroyed=true;this.selectedChildWidget=undefined;_608.forEach(this.getChildren(),function(_625){if(!_624){this.removeChild(_625);}_625.destroyRecursive(_624);},this);this._descendantsBeingDestroyed=false;}});});},"dojo/regexp":function(){define("dojo/regexp",["./_base/kernel","./_base/lang"],function(dojo,lang){lang.getObject("regexp",true,dojo);dojo.regexp.escapeString=function(str,_626){return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){if(_626&&_626.indexOf(ch)!=-1){return ch;}return "\\"+ch;});};dojo.regexp.buildGroupRE=function(arr,re,_627){if(!(arr instanceof Array)){return re(arr);}var b=[];for(var i=0;i<arr.length;i++){b.push(re(arr[i]));}return dojo.regexp.group(b.join("|"),_627);};dojo.regexp.group=function(_628,_629){return "("+(_629?"?:":"")+_628+")";};return dojo.regexp;});},"dijit/form/_FormMixin":function(){define("dijit/form/_FormMixin",["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","dojo/window"],function(_62a,_62b,_62c,lang,_62d){return _62b("dijit.form._FormMixin",null,{state:"",_getDescendantFormWidgets:function(_62e){var res=[];_62a.forEach(_62e||this.getChildren(),function(_62f){if("value" in _62f){res.push(_62f);}else{res=res.concat(this._getDescendantFormWidgets(_62f.getChildren()));}},this);return res;},reset:function(){_62a.forEach(this._getDescendantFormWidgets(),function(_630){if(_630.reset){_630.reset();}});},validate:function(){var _631=false;return _62a.every(_62a.map(this._getDescendantFormWidgets(),function(_632){_632._hasBeenBlurred=true;var _633=_632.disabled||!_632.validate||_632.validate();if(!_633&&!_631){_62d.scrollIntoView(_632.containerNode||_632.domNode);_632.focus();_631=true;}return _633;}),function(item){return item;});},setValues:function(val){_62c.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(obj){var map={};_62a.forEach(this._getDescendantFormWidgets(),function(_634){if(!_634.name){return;}var _635=map[_634.name]||(map[_634.name]=[]);_635.push(_634);});for(var name in map){if(!map.hasOwnProperty(name)){continue;}var _636=map[name],_637=lang.getObject(name,false,obj);if(_637===undefined){continue;}if(!lang.isArray(_637)){_637=[_637];}if(typeof _636[0].checked=="boolean"){_62a.forEach(_636,function(w){w.set("value",_62a.indexOf(_637,w.value)!=-1);});}else{if(_636[0].multiple){_636[0].set("value",_637);}else{_62a.forEach(_636,function(w,i){w.set("value",_637[i]);});}}}},getValues:function(){_62c.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},_getValueAttr:function(){var obj={};_62a.forEach(this._getDescendantFormWidgets(),function(_638){var name=_638.name;if(!name||_638.disabled){return;}var _639=_638.get("value");if(typeof _638.checked=="boolean"){if(/Radio/.test(_638.declaredClass)){if(_639!==false){lang.setObject(name,_639,obj);}else{_639=lang.getObject(name,false,obj);if(_639===undefined){lang.setObject(name,null,obj);}}}else{var ary=lang.getObject(name,false,obj);if(!ary){ary=[];lang.setObject(name,ary,obj);}if(_639!==false){ary.push(_639);}}}else{var prev=lang.getObject(name,false,obj);if(typeof prev!="undefined"){if(lang.isArray(prev)){prev.push(_639);}else{lang.setObject(name,[prev,_639],obj);}}else{lang.setObject(name,_639,obj);}}});return obj;},isValid:function(){return this.state=="";},onValidStateChange:function(){},_getState:function(){var _63a=_62a.map(this._descendants,function(w){return w.get("state")||"";});return _62a.indexOf(_63a,"Error")>=0?"Error":_62a.indexOf(_63a,"Incomplete")>=0?"Incomplete":"";},disconnectChildren:function(){_62a.forEach(this._childConnections||[],lang.hitch(this,"disconnect"));_62a.forEach(this._childWatches||[],function(w){w.unwatch();});},connectChildren:function(_63b){var _63c=this;this.disconnectChildren();this._descendants=this._getDescendantFormWidgets();var set=_63b?function(name,val){_63c[name]=val;}:lang.hitch(this,"_set");set("value",this.get("value"));set("state",this._getState());var _63d=(this._childConnections=[]),_63e=(this._childWatches=[]);_62a.forEach(_62a.filter(this._descendants,function(item){return item.validate;}),function(_63f){_62a.forEach(["state","disabled"],function(attr){_63e.push(_63f.watch(attr,function(){_63c.set("state",_63c._getState());}));});});var _640=function(){if(_63c._onChangeDelayTimer){clearTimeout(_63c._onChangeDelayTimer);}_63c._onChangeDelayTimer=setTimeout(function(){delete _63c._onChangeDelayTimer;_63c._set("value",_63c.get("value"));},10);};_62a.forEach(_62a.filter(this._descendants,function(item){return item.onChange;}),function(_641){_63d.push(_63c.connect(_641,"onChange",_640));_63e.push(_641.watch("disabled",_640));});},startup:function(){this.inherited(arguments);this.connectChildren(true);this.watch("state",function(attr,_642,_643){this.onValidStateChange(_643=="");});},destroy:function(){this.disconnectChildren();this.inherited(arguments);}});});},"dijit/DropDownMenu":function(){require({cache:{"url:dijit/templates/Menu.html":"<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" role=\"menu\" tabIndex=\"${tabIndex}\" data-dojo-attach-event=\"onkeypress:_onKeyPress\" cellspacing=\"0\">\n\t<tbody class=\"dijitReset\" data-dojo-attach-point=\"containerNode\"></tbody>\n</table>\n"}});define("dijit/DropDownMenu",["dojo/_base/declare","dojo/_base/event","dojo/keys","dojo/text!./templates/Menu.html","./_OnDijitClickMixin","./_MenuBase"],function(_644,_645,keys,_646,_647,_648){return _644("dijit.DropDownMenu",[_648,_647],{templateString:_646,baseClass:"dijitMenu",postCreate:function(){var l=this.isLeftToRight();this._openSubMenuKey=l?keys.RIGHT_ARROW:keys.LEFT_ARROW;this._closeSubMenuKey=l?keys.LEFT_ARROW:keys.RIGHT_ARROW;this.connectKeyNavHandlers([keys.UP_ARROW],[keys.DOWN_ARROW]);},_onKeyPress:function(evt){if(evt.ctrlKey||evt.altKey){return;}switch(evt.charOrCode){case this._openSubMenuKey:this._moveToPopup(evt);_645.stop(evt);break;case this._closeSubMenuKey:if(this.parentMenu){if(this.parentMenu._isMenuBar){this.parentMenu.focusPrev();}else{this.onCancel(false);}}else{_645.stop(evt);}break;}}});});},"dojo/data/util/simpleFetch":function(){define("dojo/data/util/simpleFetch",["dojo/_base/lang","dojo/_base/window","./sorter"],function(lang,_649,_64a){var _64b=lang.getObject("dojo.data.util.simpleFetch",true);_64b.fetch=function(_64c){_64c=_64c||{};if(!_64c.store){_64c.store=this;}var self=this;var _64d=function(_64e,_64f){if(_64f.onError){var _650=_64f.scope||_649.global;_64f.onError.call(_650,_64e,_64f);}};var _651=function(_652,_653){var _654=_653.abort||null;var _655=false;var _656=_653.start?_653.start:0;var _657=(_653.count&&(_653.count!==Infinity))?(_656+_653.count):_652.length;_653.abort=function(){_655=true;if(_654){_654.call(_653);}};var _658=_653.scope||_649.global;if(!_653.store){_653.store=self;}if(_653.onBegin){_653.onBegin.call(_658,_652.length,_653);}if(_653.sort){_652.sort(_64a.createSortFunction(_653.sort,self));}if(_653.onItem){for(var i=_656;(i<_652.length)&&(i<_657);++i){var item=_652[i];if(!_655){_653.onItem.call(_658,item,_653);}}}if(_653.onComplete&&!_655){var _659=null;if(!_653.onItem){_659=_652.slice(_656,_657);}_653.onComplete.call(_658,_659,_653);}};this._fetchItems(_64c,_651,_64d);return _64c;};return _64b;});},"dijit/Menu":function(){define("dijit/Menu",["require","dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/dom","dojo/dom-attr","dojo/dom-geometry","dojo/dom-style","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/_base/sniff","dojo/_base/window","dojo/window","./popup","./DropDownMenu","dojo/ready"],function(_65a,_65b,_65c,_65d,dom,_65e,_65f,_660,_661,keys,lang,on,has,win,_662,pm,_663,_664){if(!_661.isAsync){_664(0,function(){var _665=["dijit/MenuItem","dijit/PopupMenuItem","dijit/CheckedMenuItem","dijit/MenuSeparator"];_65a(_665);});}return _65c("dijit.Menu",_663,{constructor:function(){this._bindings=[];},targetNodeIds:[],contextMenuForWindow:false,leftClickToOpen:false,refocus:true,postCreate:function(){if(this.contextMenuForWindow){this.bindDomNode(win.body());}else{_65b.forEach(this.targetNodeIds,this.bindDomNode,this);}this.inherited(arguments);},_iframeContentWindow:function(_666){return _662.get(this._iframeContentDocument(_666))||this._iframeContentDocument(_666)["__parent__"]||(_666.name&&win.doc.frames[_666.name])||null;},_iframeContentDocument:function(_667){return _667.contentDocument||(_667.contentWindow&&_667.contentWindow.document)||(_667.name&&win.doc.frames[_667.name]&&win.doc.frames[_667.name].document)||null;},bindDomNode:function(node){node=dom.byId(node);var cn;if(node.tagName.toLowerCase()=="iframe"){var _668=node,_669=this._iframeContentWindow(_668);cn=win.withGlobal(_669,win.body);}else{cn=(node==win.body()?win.doc.documentElement:node);}var _66a={node:node,iframe:_668};_65e.set(node,"_dijitMenu"+this.id,this._bindings.push(_66a));var _66b=lang.hitch(this,function(cn){return [on(cn,this.leftClickToOpen?"click":"contextmenu",lang.hitch(this,function(evt){_65d.stop(evt);this._scheduleOpen(evt.target,_668,{x:evt.pageX,y:evt.pageY});})),on(cn,"keydown",lang.hitch(this,function(evt){if(evt.shiftKey&&evt.keyCode==keys.F10){_65d.stop(evt);this._scheduleOpen(evt.target,_668);}}))];});_66a.connects=cn?_66b(cn):[];if(_668){_66a.onloadHandler=lang.hitch(this,function(){var _66c=this._iframeContentWindow(_668);cn=win.withGlobal(_66c,win.body);_66a.connects=_66b(cn);});if(_668.addEventListener){_668.addEventListener("load",_66a.onloadHandler,false);}else{_668.attachEvent("onload",_66a.onloadHandler);}}},unBindDomNode:function(_66d){var node;try{node=dom.byId(_66d);}catch(e){return;}var _66e="_dijitMenu"+this.id;if(node&&_65e.has(node,_66e)){var bid=_65e.get(node,_66e)-1,b=this._bindings[bid],h;while(h=b.connects.pop()){h.remove();}var _66f=b.iframe;if(_66f){if(_66f.removeEventListener){_66f.removeEventListener("load",b.onloadHandler,false);}else{_66f.detachEvent("onload",b.onloadHandler);}}_65e.remove(node,_66e);delete this._bindings[bid];}},_scheduleOpen:function(_670,_671,_672){if(!this._openTimer){this._openTimer=setTimeout(lang.hitch(this,function(){delete this._openTimer;this._openMyself({target:_670,iframe:_671,coords:_672});}),1);}},_openMyself:function(args){var _673=args.target,_674=args.iframe,_675=args.coords;if(_675){if(_674){var ifc=_65f.position(_674,true),_676=this._iframeContentWindow(_674),_677=win.withGlobal(_676,"_docScroll",dojo);var cs=_660.getComputedStyle(_674),tp=_660.toPixelValue,left=(has("ie")&&has("quirks")?0:tp(_674,cs.paddingLeft))+(has("ie")&&has("quirks")?tp(_674,cs.borderLeftWidth):0),top=(has("ie")&&has("quirks")?0:tp(_674,cs.paddingTop))+(has("ie")&&has("quirks")?tp(_674,cs.borderTopWidth):0);_675.x+=ifc.x+left-_677.x;_675.y+=ifc.y+top-_677.y;}}else{_675=_65f.position(_673,true);_675.x+=10;_675.y+=10;}var self=this;var _678=this._focusManager.get("prevNode");var _679=this._focusManager.get("curNode");var _67a=!_679||(dom.isDescendant(_679,this.domNode))?_678:_679;function _67b(){if(self.refocus&&_67a){_67a.focus();}pm.close(self);};pm.open({popup:this,x:_675.x,y:_675.y,onExecute:_67b,onCancel:_67b,orient:this.isLeftToRight()?"L":"R"});this.focus();this._onBlur=function(){this.inherited("_onBlur",arguments);pm.close(this);};},uninitialize:function(){_65b.forEach(this._bindings,function(b){if(b){this.unBindDomNode(b.node);}},this);this.inherited(arguments);}});});},"dijit/form/_CheckBoxMixin":function(){define("dijit/form/_CheckBoxMixin",["dojo/_base/declare","dojo/dom-attr","dojo/_base/event"],function(_67c,_67d,_67e){return _67c("dijit.form._CheckBoxMixin",null,{type:"checkbox",value:"on",readOnly:false,_aria_attr:"aria-checked",_setReadOnlyAttr:function(_67f){this._set("readOnly",_67f);_67d.set(this.focusNode,"readOnly",_67f);this.focusNode.setAttribute("aria-readonly",_67f);},_setLabelAttr:undefined,postMixInProperties:function(){if(this.value==""){this.value="on";}this.inherited(arguments);},reset:function(){this.inherited(arguments);this._set("value",this.params.value||"on");_67d.set(this.focusNode,"value",this.value);},_onClick:function(e){if(this.readOnly){_67e.stop(e);return false;}return this.inherited(arguments);}});});},"dijit/layout/ContentPane":function(){define("dijit/layout/ContentPane",["dojo/_base/kernel","dojo/_base/lang","../_Widget","./_ContentPaneResizeMixin","dojo/string","dojo/html","dojo/i18n!../nls/loading","dojo/_base/array","dojo/_base/declare","dojo/_base/Deferred","dojo/dom","dojo/dom-attr","dojo/_base/window","dojo/_base/xhr","dojo/i18n"],function(_680,lang,_681,_682,_683,html,_684,_685,_686,_687,dom,_688,win,xhr,i18n){return _686("dijit.layout.ContentPane",[_681,_682],{href:"",content:"",extractContent:false,parseOnLoad:true,parserScope:_680._scopeName,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'><span class='dijitInline dijitIconLoading'></span>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'><span class='dijitInline dijitIconError'></span>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",ioArgs:{},onLoadDeferred:null,_setTitleAttr:null,stopParser:true,template:false,create:function(_689,_68a){if((!_689||!_689.template)&&_68a&&!("href" in _689)&&!("content" in _689)){var df=win.doc.createDocumentFragment();_68a=dom.byId(_68a);while(_68a.firstChild){df.appendChild(_68a.firstChild);}_689=lang.delegate(_689,{content:df});}this.inherited(arguments,[_689,_68a]);},postMixInProperties:function(){this.inherited(arguments);var _68b=i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=_683.substitute(this.loadingMessage,_68b);this.errorMessage=_683.substitute(this.errorMessage,_68b);},buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}this.domNode.title="";if(!_688.get(this.domNode,"role")){this.domNode.setAttribute("role","group");}},startup:function(){this.inherited(arguments);if(this._contentSetter){_685.forEach(this._contentSetter.parseResults,function(obj){if(!obj._started&&!obj._destroyed&&lang.isFunction(obj.startup)){obj.startup();obj._started=true;}},this);}},setHref:function(href){_680.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.","","2.0");return this.set("href",href);},_setHrefAttr:function(href){this.cancel();this.onLoadDeferred=new _687(lang.hitch(this,"cancel"));this.onLoadDeferred.addCallback(lang.hitch(this,"onLoad"));this._set("href",href);if(this.preload||(this._created&&this._isShown())){this._load();}else{this._hrefChanged=true;}return this.onLoadDeferred;},setContent:function(data){_680.deprecated("dijit.layout.ContentPane.setContent() is deprecated. Use set('content', ...) instead.","","2.0");this.set("content",data);},_setContentAttr:function(data){this._set("href","");this.cancel();this.onLoadDeferred=new _687(lang.hitch(this,"cancel"));if(this._created){this.onLoadDeferred.addCallback(lang.hitch(this,"onLoad"));}this._setContent(data||"");this._isDownloaded=false;return this.onLoadDeferred;},_getContentAttr:function(){return this.containerNode.innerHTML;},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}delete this._xhrDfd;this.onLoadDeferred=null;},uninitialize:function(){if(this._beingDestroyed){this.cancel();}this.inherited(arguments);},destroyRecursive:function(_68c){if(this._beingDestroyed){return;}this.inherited(arguments);},_onShow:function(){this.inherited(arguments);if(this.href){if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)){return this.refresh();}}},refresh:function(){this.cancel();this.onLoadDeferred=new _687(lang.hitch(this,"cancel"));this.onLoadDeferred.addCallback(lang.hitch(this,"onLoad"));this._load();return this.onLoadDeferred;},_load:function(){this._setContent(this.onDownloadStart(),true);var self=this;var _68d={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(lang.isObject(this.ioArgs)){lang.mixin(_68d,this.ioArgs);}var hand=(this._xhrDfd=(this.ioMethod||xhr.get)(_68d));hand.addCallback(function(html){try{self._isDownloaded=true;self._setContent(html,false);self.onDownloadEnd();}catch(err){self._onError("Content",err);}delete self._xhrDfd;return html;});hand.addErrback(function(err){if(!hand.canceled){self._onError("Download",err);}delete self._xhrDfd;return err;});delete this._hrefChanged;},_onLoadHandler:function(data){this._set("isLoaded",true);try{this.onLoadDeferred.callback(data);}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message);}},_onUnloadHandler:function(){this._set("isLoaded",false);try{this.onUnload();}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message);}},destroyDescendants:function(_68e){if(this.isLoaded){this._onUnloadHandler();}var _68f=this._contentSetter;_685.forEach(this.getChildren(),function(_690){if(_690.destroyRecursive){_690.destroyRecursive(_68e);}});if(_68f){_685.forEach(_68f.parseResults,function(_691){if(_691.destroyRecursive&&_691.domNode&&_691.domNode.parentNode==win.body()){_691.destroyRecursive(_68e);}});delete _68f.parseResults;}if(!_68e){html._emptyNode(this.containerNode);}delete this._singleChild;},_setContent:function(cont,_692){this.destroyDescendants();var _693=this._contentSetter;if(!(_693&&_693 instanceof html._ContentSetter)){_693=this._contentSetter=new html._ContentSetter({node:this.containerNode,_onError:lang.hitch(this,this._onError),onContentError:lang.hitch(this,function(e){var _694=this.onContentError(e);try{this.containerNode.innerHTML=_694;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}})});}var _695=lang.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:!cont.domNode&&this.parseOnLoad,parserScope:this.parserScope,startup:false,dir:this.dir,lang:this.lang,textDir:this.textDir},this._contentSetterParams||{});_693.set((lang.isObject(cont)&&cont.domNode)?cont.domNode:cont,_695);delete this._contentSetterParams;if(this.doLayout){this._checkIfSingleChild();}if(!_692){if(this._started){delete this._started;this.startup();this._scheduleLayout();}this._onLoadHandler(cont);}},_onError:function(type,err,_696){this.onLoadDeferred.errback(err);var _697=this["on"+type+"Error"].call(this,err);if(_696){console.error(_696,err);}else{if(_697){this._setContent(_697,true);}}},onLoad:function(){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(){},onDownloadError:function(){return this.errorMessage;},onDownloadEnd:function(){}});});},"url:dijit/form/templates/ValidationTextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n","url:dijit/form/templates/TextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n","dijit/layout/utils":function(){define("dijit/layout/utils",["dojo/_base/array","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang",".."],function(_698,_699,_69a,_69b,lang,_69c){var _69d=lang.getObject("layout",true,_69c);_69d.marginBox2contentBox=function(node,mb){var cs=_69b.getComputedStyle(node);var me=_69a.getMarginExtents(node,cs);var pb=_69a.getPadBorderExtents(node,cs);return {l:_69b.toPixelValue(node,cs.paddingLeft),t:_69b.toPixelValue(node,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)};};function _69e(word){return word.substring(0,1).toUpperCase()+word.substring(1);};function size(_69f,dim){var _6a0=_69f.resize?_69f.resize(dim):_69a.setMarginBox(_69f.domNode,dim);if(_6a0){lang.mixin(_69f,_6a0);}else{lang.mixin(_69f,_69a.getMarginBox(_69f.domNode));lang.mixin(_69f,dim);}};_69d.layoutChildren=function(_6a1,dim,_6a2,_6a3,_6a4){dim=lang.mixin({},dim);_699.add(_6a1,"dijitLayoutContainer");_6a2=_698.filter(_6a2,function(item){return item.region!="center"&&item.layoutAlign!="client";}).concat(_698.filter(_6a2,function(item){return item.region=="center"||item.layoutAlign=="client";}));_698.forEach(_6a2,function(_6a5){var elm=_6a5.domNode,pos=(_6a5.region||_6a5.layoutAlign);if(!pos){throw new Error("No region setting for "+_6a5.id);}var _6a6=elm.style;_6a6.left=dim.l+"px";_6a6.top=dim.t+"px";_6a6.position="absolute";_699.add(elm,"dijitAlign"+_69e(pos));var _6a7={};if(_6a3&&_6a3==_6a5.id){_6a7[_6a5.region=="top"||_6a5.region=="bottom"?"h":"w"]=_6a4;}if(pos=="top"||pos=="bottom"){_6a7.w=dim.w;size(_6a5,_6a7);dim.h-=_6a5.h;if(pos=="top"){dim.t+=_6a5.h;}else{_6a6.top=dim.t+dim.h+"px";}}else{if(pos=="left"||pos=="right"){_6a7.h=dim.h;size(_6a5,_6a7);dim.w-=_6a5.w;if(pos=="left"){dim.l+=_6a5.w;}else{_6a6.left=dim.l+dim.w+"px";}}else{if(pos=="client"||pos=="center"){size(_6a5,dim);}}}});};return {marginBox2contentBox:_69d.marginBox2contentBox,layoutChildren:_69d.layoutChildren};});},"dijit/_Contained":function(){define("dijit/_Contained",["dojo/_base/declare","./registry"],function(_6a8,_6a9){return _6a8("dijit._Contained",null,{_getSibling:function(_6aa){var node=this.domNode;do{node=node[_6aa+"Sibling"];}while(node&&node.nodeType!=1);return node&&_6a9.byNode(node);},getPreviousSibling:function(){return this._getSibling("previous");},getNextSibling:function(){return this._getSibling("next");},getIndexInParent:function(){var p=this.getParent();if(!p||!p.getIndexOfChild){return -1;}return p.getIndexOfChild(this);}});});},"dijit/_KeyNavContainer":function(){define("dijit/_KeyNavContainer",["dojo/_base/kernel","./_Container","./_FocusMixin","dojo/_base/array","dojo/keys","dojo/_base/declare","dojo/_base/event","dojo/dom-attr","dojo/_base/lang"],function(_6ab,_6ac,_6ad,_6ae,keys,_6af,_6b0,_6b1,lang){return _6af("dijit._KeyNavContainer",[_6ad,_6ac],{tabIndex:"0",connectKeyNavHandlers:function(_6b2,_6b3){var _6b4=(this._keyNavCodes={});var prev=lang.hitch(this,"focusPrev");var next=lang.hitch(this,"focusNext");_6ae.forEach(_6b2,function(code){_6b4[code]=prev;});_6ae.forEach(_6b3,function(code){_6b4[code]=next;});_6b4[keys.HOME]=lang.hitch(this,"focusFirstChild");_6b4[keys.END]=lang.hitch(this,"focusLastChild");this.connect(this.domNode,"onkeypress","_onContainerKeypress");this.connect(this.domNode,"onfocus","_onContainerFocus");},startupKeyNavChildren:function(){_6ab.deprecated("startupKeyNavChildren() call no longer needed","","2.0");},startup:function(){this.inherited(arguments);_6ae.forEach(this.getChildren(),lang.hitch(this,"_startupChild"));},addChild:function(_6b5,_6b6){this.inherited(arguments);this._startupChild(_6b5);},focus:function(){this.focusFirstChild();},focusFirstChild:function(){this.focusChild(this._getFirstFocusableChild());},focusLastChild:function(){this.focusChild(this._getLastFocusableChild());},focusNext:function(){this.focusChild(this._getNextFocusableChild(this.focusedChild,1));},focusPrev:function(){this.focusChild(this._getNextFocusableChild(this.focusedChild,-1),true);},focusChild:function(_6b7,last){if(!_6b7){return;}if(this.focusedChild&&_6b7!==this.focusedChild){this._onChildBlur(this.focusedChild);}_6b7.set("tabIndex",this.tabIndex);_6b7.focus(last?"end":"start");this._set("focusedChild",_6b7);},_startupChild:function(_6b8){_6b8.set("tabIndex","-1");this.connect(_6b8,"_onFocus",function(){_6b8.set("tabIndex",this.tabIndex);});this.connect(_6b8,"_onBlur",function(){_6b8.set("tabIndex","-1");});},_onContainerFocus:function(evt){if(evt.target!==this.domNode||this.focusedChild){return;}this.focusFirstChild();_6b1.set(this.domNode,"tabIndex","-1");},_onBlur:function(evt){if(this.tabIndex){_6b1.set(this.domNode,"tabIndex",this.tabIndex);}this.focusedChild=null;this.inherited(arguments);},_onContainerKeypress:function(evt){if(evt.ctrlKey||evt.altKey){return;}var func=this._keyNavCodes[evt.charOrCode];if(func){func();_6b0.stop(evt);}},_onChildBlur:function(){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getLastFocusableChild:function(){return this._getNextFocusableChild(null,-1);},_getNextFocusableChild:function(_6b9,dir){if(_6b9){_6b9=this._getSiblingOfChild(_6b9,dir);}var _6ba=this.getChildren();for(var i=0;i<_6ba.length;i++){if(!_6b9){_6b9=_6ba[(dir>0)?0:(_6ba.length-1)];}if(_6b9.isFocusable()){return _6b9;}_6b9=this._getSiblingOfChild(_6b9,dir);}return null;}});});},"dijit/form/DataList":function(){define("dijit/form/DataList",["dojo/_base/declare","dojo/dom","dojo/_base/lang","dojo/query","dojo/store/Memory","../registry"],function(_6bb,dom,lang,_6bc,_6bd,_6be){function _6bf(_6c0){return {id:_6c0.value,value:_6c0.value,name:lang.trim(_6c0.innerText||_6c0.textContent||"")};};return _6bb("dijit.form.DataList",_6bd,{constructor:function(_6c1,_6c2){this.domNode=dom.byId(_6c2);lang.mixin(this,_6c1);if(this.id){_6be.add(this);}this.domNode.style.display="none";this.inherited(arguments,[{data:_6bc("option",this.domNode).map(_6bf)}]);},destroy:function(){_6be.remove(this.id);},fetchSelectedItem:function(){var _6c3=_6bc("> option[selected]",this.domNode)[0]||_6bc("> option",this.domNode)[0];return _6c3&&_6bf(_6c3);}});});},"url:dijit/templates/Dialog.html":"<div class=\"dijitDialog\" role=\"dialog\" aria-labelledby=\"${id}_title\">\n\t<div data-dojo-attach-point=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span data-dojo-attach-point=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span data-dojo-attach-point=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" data-dojo-attach-event=\"ondijitclick: onCancel\" title=\"${buttonCancel}\" role=\"button\" tabIndex=\"-1\">\n\t\t<span data-dojo-attach-point=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n","dijit/form/CheckBox":function(){require({cache:{"url:dijit/form/templates/CheckBox.html":"<div class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdata-dojo-attach-point=\"focusNode\"\n\t \tdata-dojo-attach-event=\"onclick:_onClick\"\n/></div>\n"}});define("dijit/form/CheckBox",["require","dojo/_base/declare","dojo/dom-attr","dojo/_base/kernel","dojo/query","dojo/ready","./ToggleButton","./_CheckBoxMixin","dojo/text!./templates/CheckBox.html","dojo/NodeList-dom"],function(_6c4,_6c5,_6c6,_6c7,_6c8,_6c9,_6ca,_6cb,_6cc){if(!_6c7.isAsync){_6c9(0,function(){var _6cd=["dijit/form/RadioButton"];_6c4(_6cd);});}return _6c5("dijit.form.CheckBox",[_6ca,_6cb],{templateString:_6cc,baseClass:"dijitCheckBox",_setValueAttr:function(_6ce,_6cf){if(typeof _6ce=="string"){this._set("value",_6ce);_6c6.set(this.focusNode,"value",_6ce);_6ce=true;}if(this._created){this.set("checked",_6ce,_6cf);}},_getValueAttr:function(){return (this.checked?this.value:false);},_setIconClassAttr:null,postMixInProperties:function(){this.inherited(arguments);this.checkedAttrSetting=this.checked?"checked":"";},_fillContent:function(){},_onFocus:function(){if(this.id){_6c8("label[for='"+this.id+"']").addClass("dijitFocusedLabel");}this.inherited(arguments);},_onBlur:function(){if(this.id){_6c8("label[for='"+this.id+"']").removeClass("dijitFocusedLabel");}this.inherited(arguments);}});});},"dijit/tree/_dndSelector":function(){define("dijit/tree/_dndSelector",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","dojo/mouse","dojo/on","dojo/touch","dojo/_base/window","./_dndContainer"],function(_6d0,_6d1,_6d2,lang,_6d3,on,_6d4,win,_6d5){return _6d2("dijit.tree._dndSelector",_6d5,{constructor:function(){this.selection={};this.anchor=null;this.tree.domNode.setAttribute("aria-multiselect",!this.singular);this.events.push(on(this.tree.domNode,_6d4.press,lang.hitch(this,"onMouseDown")),on(this.tree.domNode,_6d4.release,lang.hitch(this,"onMouseUp")),on(this.tree.domNode,_6d4.move,lang.hitch(this,"onMouseMove")));},singular:false,getSelectedTreeNodes:function(){var _6d6=[],sel=this.selection;for(var i in sel){_6d6.push(sel[i]);}return _6d6;},selectNone:function(){this.setSelection([]);return this;},destroy:function(){this.inherited(arguments);this.selection=this.anchor=null;},addTreeNode:function(node,_6d7){this.setSelection(this.getSelectedTreeNodes().concat([node]));if(_6d7){this.anchor=node;}return node;},removeTreeNode:function(node){this.setSelection(this._setDifference(this.getSelectedTreeNodes(),[node]));return node;},isTreeNodeSelected:function(node){return node.id&&!!this.selection[node.id];},setSelection:function(_6d8){var _6d9=this.getSelectedTreeNodes();_6d0.forEach(this._setDifference(_6d9,_6d8),lang.hitch(this,function(node){node.setSelected(false);if(this.anchor==node){delete this.anchor;}delete this.selection[node.id];}));_6d0.forEach(this._setDifference(_6d8,_6d9),lang.hitch(this,function(node){node.setSelected(true);this.selection[node.id]=node;}));this._updateSelectionProperties();},_setDifference:function(xs,ys){_6d0.forEach(ys,function(y){y.__exclude__=true;});var ret=_6d0.filter(xs,function(x){return !x.__exclude__;});_6d0.forEach(ys,function(y){delete y["__exclude__"];});return ret;},_updateSelectionProperties:function(){var _6da=this.getSelectedTreeNodes();var _6db=[],_6dc=[];_6d0.forEach(_6da,function(node){_6dc.push(node);_6db.push(node.getTreePath());});var _6dd=_6d0.map(_6dc,function(node){return node.item;});this.tree._set("paths",_6db);this.tree._set("path",_6db[0]||[]);this.tree._set("selectedNodes",_6dc);this.tree._set("selectedNode",_6dc[0]||null);this.tree._set("selectedItems",_6dd);this.tree._set("selectedItem",_6dd[0]||null);},onMouseDown:function(e){if(!this.current||this.tree.isExpandoNode(e.target,this.current)){return;}if(!_6d3.isLeft(e)){return;}e.preventDefault();var _6de=this.current,copy=_6d1.isCopyKey(e),id=_6de.id;if(!this.singular&&!e.shiftKey&&this.selection[id]){this._doDeselect=true;return;}else{this._doDeselect=false;}this.userSelect(_6de,copy,e.shiftKey);},onMouseUp:function(e){if(!this._doDeselect){return;}this._doDeselect=false;this.userSelect(this.current,_6d1.isCopyKey(e),e.shiftKey);},onMouseMove:function(){this._doDeselect=false;},_compareNodes:function(n1,n2){if(n1===n2){return 0;}if("sourceIndex" in document.documentElement){return n1.sourceIndex-n2.sourceIndex;}else{if("compareDocumentPosition" in document.documentElement){return n1.compareDocumentPosition(n2)&2?1:-1;}else{if(document.createRange){var r1=doc.createRange();r1.setStartBefore(n1);var r2=doc.createRange();r2.setStartBefore(n2);return r1.compareBoundaryPoints(r1.END_TO_END,r2);}else{throw Error("dijit.tree._compareNodes don't know how to compare two different nodes in this browser");}}}},userSelect:function(node,_6df,_6e0){if(this.singular){if(this.anchor==node&&_6df){this.selectNone();}else{this.setSelection([node]);this.anchor=node;}}else{if(_6e0&&this.anchor){var cr=this._compareNodes(this.anchor.rowNode,node.rowNode),_6e1,end,_6e2=this.anchor;if(cr<0){_6e1=_6e2;end=node;}else{_6e1=node;end=_6e2;}var _6e3=[];while(_6e1!=end){_6e3.push(_6e1);_6e1=this.tree._getNextNode(_6e1);}_6e3.push(end);this.setSelection(_6e3);}else{if(this.selection[node.id]&&_6df){this.removeTreeNode(node);}else{if(_6df){this.addTreeNode(node,true);}else{this.setSelection([node]);this.anchor=node;}}}}},getItem:function(key){var _6e4=this.selection[key];return {data:_6e4,type:["treeNode"]};},forInSelectedItems:function(f,o){o=o||win.global;for(var id in this.selection){f.call(o,this.getItem(id),id,this);}}});});},"dijit/_Container":function(){define("dijit/_Container",["dojo/_base/array","dojo/_base/declare","dojo/dom-construct","./registry"],function(_6e5,_6e6,_6e7,_6e8){return _6e6("dijit._Container",null,{buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},addChild:function(_6e9,_6ea){var _6eb=this.containerNode;if(_6ea&&typeof _6ea=="number"){var _6ec=this.getChildren();if(_6ec&&_6ec.length>=_6ea){_6eb=_6ec[_6ea-1].domNode;_6ea="after";}}_6e7.place(_6e9.domNode,_6eb,_6ea);if(this._started&&!_6e9._started){_6e9.startup();}},removeChild:function(_6ed){if(typeof _6ed=="number"){_6ed=this.getChildren()[_6ed];}if(_6ed){var node=_6ed.domNode;if(node&&node.parentNode){node.parentNode.removeChild(node);}}},hasChildren:function(){return this.getChildren().length>0;},_getSiblingOfChild:function(_6ee,dir){var node=_6ee.domNode,_6ef=(dir>0?"nextSibling":"previousSibling");do{node=node[_6ef];}while(node&&(node.nodeType!=1||!_6e8.byNode(node)));return node&&_6e8.byNode(node);},getIndexOfChild:function(_6f0){return _6e5.indexOf(this.getChildren(),_6f0);}});});},"dojo/data/ItemFileReadStore":function(){define("dojo/data/ItemFileReadStore",["../_base/kernel","../_base/lang","../_base/declare","../_base/array","../_base/xhr","../Evented","../_base/window","./util/filter","./util/simpleFetch","../date/stamp"],function(_6f1,lang,_6f2,_6f3,xhr,_6f4,_6f5,_6f6,_6f7,_6f8){var _6f9=_6f2("dojo.data.ItemFileReadStore",[_6f4],{constructor:function(_6fa){this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._jsonFileUrl=_6fa.url;this._ccUrl=_6fa.url;this.url=_6fa.url;this._jsonData=_6fa.data;this.data=null;this._datatypeMap=_6fa.typeMap||{};if(!this._datatypeMap["Date"]){this._datatypeMap["Date"]={type:Date,deserialize:function(_6fb){return _6f8.fromISOString(_6fb);}};}this._features={"dojo.data.api.Read":true,"dojo.data.api.Identity":true};this._itemsByIdentity=null;this._storeRefPropName="_S";this._itemNumPropName="_0";this._rootItemPropName="_RI";this._reverseRefMap="_RRM";this._loadInProgress=false;this._queuedFetches=[];if(_6fa.urlPreventCache!==undefined){this.urlPreventCache=_6fa.urlPreventCache?true:false;}if(_6fa.hierarchical!==undefined){this.hierarchical=_6fa.hierarchical?true:false;}if(_6fa.clearOnClose){this.clearOnClose=true;}if("failOk" in _6fa){this.failOk=_6fa.failOk?true:false;}},url:"",_ccUrl:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,failOk:false,hierarchical:true,_assertIsItem:function(item){if(!this.isItem(item)){throw new Error("dojo.data.ItemFileReadStore: Invalid item argument.");}},_assertIsAttribute:function(_6fc){if(typeof _6fc!=="string"){throw new Error("dojo.data.ItemFileReadStore: Invalid attribute argument.");}},getValue:function(item,_6fd,_6fe){var _6ff=this.getValues(item,_6fd);return (_6ff.length>0)?_6ff[0]:_6fe;},getValues:function(item,_700){this._assertIsItem(item);this._assertIsAttribute(_700);return (item[_700]||[]).slice(0);},getAttributes:function(item){this._assertIsItem(item);var _701=[];for(var key in item){if((key!==this._storeRefPropName)&&(key!==this._itemNumPropName)&&(key!==this._rootItemPropName)&&(key!==this._reverseRefMap)){_701.push(key);}}return _701;},hasAttribute:function(item,_702){this._assertIsItem(item);this._assertIsAttribute(_702);return (_702 in item);},containsValue:function(item,_703,_704){var _705=undefined;if(typeof _704==="string"){_705=_6f6.patternToRegExp(_704,false);}return this._containsValue(item,_703,_704,_705);},_containsValue:function(item,_706,_707,_708){return _6f3.some(this.getValues(item,_706),function(_709){if(_709!==null&&!lang.isObject(_709)&&_708){if(_709.toString().match(_708)){return true;}}else{if(_707===_709){return true;}}});},isItem:function(_70a){if(_70a&&_70a[this._storeRefPropName]===this){if(this._arrayOfAllItems[_70a[this._itemNumPropName]]===_70a){return true;}}return false;},isItemLoaded:function(_70b){return this.isItem(_70b);},loadItem:function(_70c){this._assertIsItem(_70c.item);},getFeatures:function(){return this._features;},getLabel:function(item){if(this._labelAttr&&this.isItem(item)){return this.getValue(item,this._labelAttr);}return undefined;},getLabelAttributes:function(item){if(this._labelAttr){return [this._labelAttr];}return null;},_fetchItems:function(_70d,_70e,_70f){var self=this,_710=function(_711,_712){var _713=[],i,key;if(_711.query){var _714,_715=_711.queryOptions?_711.queryOptions.ignoreCase:false;var _716={};for(key in _711.query){_714=_711.query[key];if(typeof _714==="string"){_716[key]=_6f6.patternToRegExp(_714,_715);}else{if(_714 instanceof RegExp){_716[key]=_714;}}}for(i=0;i<_712.length;++i){var _717=true;var _718=_712[i];if(_718===null){_717=false;}else{for(key in _711.query){_714=_711.query[key];if(!self._containsValue(_718,key,_714,_716[key])){_717=false;}}}if(_717){_713.push(_718);}}_70e(_713,_711);}else{for(i=0;i<_712.length;++i){var item=_712[i];if(item!==null){_713.push(item);}}_70e(_713,_711);}};if(this._loadFinished){_710(_70d,this._getItemsArray(_70d.queryOptions));}else{if(this._jsonFileUrl!==this._ccUrl){_6f1.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_70d,filter:_710});}else{this._loadInProgress=true;var _719={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _71a=xhr.get(_719);_71a.addCallback(function(data){try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;_710(_70d,self._getItemsArray(_70d.queryOptions));self._handleQueuedFetches();}catch(e){self._loadFinished=true;self._loadInProgress=false;_70f(e,_70d);}});_71a.addErrback(function(_71b){self._loadInProgress=false;_70f(_71b,_70d);});var _71c=null;if(_70d.abort){_71c=_70d.abort;}_70d.abort=function(){var df=_71a;if(df&&df.fired===-1){df.cancel();df=null;}if(_71c){_71c.call(_70d);}};}}else{if(this._jsonData){try{this._loadFinished=true;this._getItemsFromLoadedData(this._jsonData);this._jsonData=null;_710(_70d,this._getItemsArray(_70d.queryOptions));}catch(e){_70f(e,_70d);}}else{_70f(new Error("dojo.data.ItemFileReadStore: No JSON source data was provided as either URL or a nested Javascript object."),_70d);}}}},_handleQueuedFetches:function(){if(this._queuedFetches.length>0){for(var i=0;i<this._queuedFetches.length;i++){var _71d=this._queuedFetches[i],_71e=_71d.args,_71f=_71d.filter;if(_71f){_71f(_71e,this._getItemsArray(_71e.queryOptions));}else{this.fetchItemByIdentity(_71e);}}this._queuedFetches=[];}},_getItemsArray:function(_720){if(_720&&_720.deep){return this._arrayOfAllItems;}return this._arrayOfTopLevelItems;},close:function(_721){if(this.clearOnClose&&this._loadFinished&&!this._loadInProgress){if(((this._jsonFileUrl==""||this._jsonFileUrl==null)&&(this.url==""||this.url==null))&&this.data==null){}this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._itemsByIdentity=null;this._loadInProgress=false;this._queuedFetches=[];}},_getItemsFromLoadedData:function(_722){var _723=false,self=this;function _724(_725){return (_725!==null)&&(typeof _725==="object")&&(!lang.isArray(_725)||_723)&&(!lang.isFunction(_725))&&(_725.constructor==Object||lang.isArray(_725))&&(typeof _725._reference==="undefined")&&(typeof _725._type==="undefined")&&(typeof _725._value==="undefined")&&self.hierarchical;};function _726(_727){self._arrayOfAllItems.push(_727);for(var _728 in _727){var _729=_727[_728];if(_729){if(lang.isArray(_729)){var _72a=_729;for(var k=0;k<_72a.length;++k){var _72b=_72a[k];if(_724(_72b)){_726(_72b);}}}else{if(_724(_729)){_726(_729);}}}}};this._labelAttr=_722.label;var i,item;this._arrayOfAllItems=[];this._arrayOfTopLevelItems=_722.items;for(i=0;i<this._arrayOfTopLevelItems.length;++i){item=this._arrayOfTopLevelItems[i];if(lang.isArray(item)){_723=true;}_726(item);item[this._rootItemPropName]=true;}var _72c={},key;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){if(key!==this._rootItemPropName){var _72d=item[key];if(_72d!==null){if(!lang.isArray(_72d)){item[key]=[_72d];}}else{item[key]=[null];}}_72c[key]=key;}}while(_72c[this._storeRefPropName]){this._storeRefPropName+="_";}while(_72c[this._itemNumPropName]){this._itemNumPropName+="_";}while(_72c[this._reverseRefMap]){this._reverseRefMap+="_";}var _72e;var _72f=_722.identifier;if(_72f){this._itemsByIdentity={};this._features["dojo.data.api.Identity"]=_72f;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];_72e=item[_72f];var _730=_72e[0];if(!Object.hasOwnProperty.call(this._itemsByIdentity,_730)){this._itemsByIdentity[_730]=item;}else{if(this._jsonFileUrl){throw new Error("dojo.data.ItemFileReadStore: The json data as specified by: ["+this._jsonFileUrl+"] is malformed. Items within the list have identifier: ["+_72f+"]. Value collided: ["+_730+"]");}else{if(this._jsonData){throw new Error("dojo.data.ItemFileReadStore: The json data provided by the creation arguments is malformed. Items within the list have identifier: ["+_72f+"]. Value collided: ["+_730+"]");}}}}}else{this._features["dojo.data.api.Identity"]=Number;}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];item[this._storeRefPropName]=this;item[this._itemNumPropName]=i;}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){_72e=item[key];for(var j=0;j<_72e.length;++j){_72d=_72e[j];if(_72d!==null&&typeof _72d=="object"){if(("_type" in _72d)&&("_value" in _72d)){var type=_72d._type;var _731=this._datatypeMap[type];if(!_731){throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '"+type+"'");}else{if(lang.isFunction(_731)){_72e[j]=new _731(_72d._value);}else{if(lang.isFunction(_731.deserialize)){_72e[j]=_731.deserialize(_72d._value);}else{throw new Error("dojo.data.ItemFileReadStore: Value provided in typeMap was neither a constructor, nor a an object with a deserialize function");}}}}if(_72d._reference){var _732=_72d._reference;if(!lang.isObject(_732)){_72e[j]=this._getItemByIdentity(_732);}else{for(var k=0;k<this._arrayOfAllItems.length;++k){var _733=this._arrayOfAllItems[k],_734=true;for(var _735 in _732){if(_733[_735]!=_732[_735]){_734=false;}}if(_734){_72e[j]=_733;}}}if(this.referenceIntegrity){var _736=_72e[j];if(this.isItem(_736)){this._addReferenceToMap(_736,item,key);}}}else{if(this.isItem(_72d)){if(this.referenceIntegrity){this._addReferenceToMap(_72d,item,key);}}}}}}}},_addReferenceToMap:function(_737,_738,_739){},getIdentity:function(item){var _73a=this._features["dojo.data.api.Identity"];if(_73a===Number){return item[this._itemNumPropName];}else{var _73b=item[_73a];if(_73b){return _73b[0];}}return null;},fetchItemByIdentity:function(_73c){var item,_73d;if(!this._loadFinished){var self=this;if(this._jsonFileUrl!==this._ccUrl){_6f1.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_73c});}else{this._loadInProgress=true;var _73e={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _73f=xhr.get(_73e);_73f.addCallback(function(data){var _740=_73c.scope?_73c.scope:_6f5.global;try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;item=self._getItemByIdentity(_73c.identity);if(_73c.onItem){_73c.onItem.call(_740,item);}self._handleQueuedFetches();}catch(error){self._loadInProgress=false;if(_73c.onError){_73c.onError.call(_740,error);}}});_73f.addErrback(function(_741){self._loadInProgress=false;if(_73c.onError){var _742=_73c.scope?_73c.scope:_6f5.global;_73c.onError.call(_742,_741);}});}}else{if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;item=self._getItemByIdentity(_73c.identity);if(_73c.onItem){_73d=_73c.scope?_73c.scope:_6f5.global;_73c.onItem.call(_73d,item);}}}}else{item=this._getItemByIdentity(_73c.identity);if(_73c.onItem){_73d=_73c.scope?_73c.scope:_6f5.global;_73c.onItem.call(_73d,item);}}},_getItemByIdentity:function(_743){var item=null;if(this._itemsByIdentity){if(Object.hasOwnProperty.call(this._itemsByIdentity,_743)){item=this._itemsByIdentity[_743];}}else{if(Object.hasOwnProperty.call(this._arrayOfAllItems,_743)){item=this._arrayOfAllItems[_743];}}if(item===undefined){item=null;}return item;},getIdentityAttributes:function(item){var _744=this._features["dojo.data.api.Identity"];if(_744===Number){return null;}else{return [_744];}},_forceLoad:function(){var self=this;if(this._jsonFileUrl!==this._ccUrl){_6f1.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){var _745={url:this._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk,sync:true};var _746=xhr.get(_745);_746.addCallback(function(data){try{if(self._loadInProgress!==true&&!self._loadFinished){self._getItemsFromLoadedData(data);self._loadFinished=true;}else{if(self._loadInProgress){throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress.");}}}catch(e){throw e;}});_746.addErrback(function(_747){throw _747;});}else{if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;}}}});lang.extend(_6f9,_6f7);return _6f9;});},"dojo/html":function(){define("dojo/html",["./_base/kernel","./_base/lang","./_base/array","./_base/declare","./dom","./dom-construct","./parser"],function(dojo,lang,_748,_749,dom,_74a,_74b){lang.getObject("html",true,dojo);var _74c=0;dojo.html._secureForInnerHtml=function(cont){return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"");};dojo.html._emptyNode=_74a.empty;dojo.html._setNodeContent=function(node,cont){_74a.empty(node);if(cont){if(typeof cont=="string"){cont=_74a.toDom(cont,node.ownerDocument);}if(!cont.nodeType&&lang.isArrayLike(cont)){for(var _74d=cont.length,i=0;i<cont.length;i=_74d==cont.length?i+1:0){_74a.place(cont[i],node,"last");}}else{_74a.place(cont,node,"last");}}return node;};_749("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,parserScope:dojo._scopeName,startup:true,constructor:function(_74e,node){lang.mixin(this,_74e||{});node=this.node=dom.byId(this.node||node);if(!this.id){this.id=["Setter",(node)?node.id||node.tagName:"",_74c++].join("_");}},set:function(cont,_74f){if(undefined!==cont){this.content=cont;}if(_74f){this._mixin(_74f);}this.onBegin();this.setContent();this.onEnd();return this.node;},setContent:function(){var node=this.node;if(!node){throw new Error(this.declaredClass+": setContent given no node");}try{node=dojo.html._setNodeContent(node,this.content);}catch(e){var _750=this.onContentError(e);try{node.innerHTML=_750;}catch(e){console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e);}}this.node=node;},empty:function(){if(this.parseResults&&this.parseResults.length){_748.forEach(this.parseResults,function(w){if(w.destroy){w.destroy();}});delete this.parseResults;}dojo.html._emptyNode(this.node);},onBegin:function(){var cont=this.content;if(lang.isString(cont)){if(this.cleanContent){cont=dojo.html._secureForInnerHtml(cont);}if(this.extractContent){var _751=cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_751){cont=_751[1];}}}this.empty();this.content=cont;return this.node;},onEnd:function(){if(this.parseContent){this._parse();}return this.node;},tearDown:function(){delete this.parseResults;delete this.node;delete this.content;},onContentError:function(err){return "Error occured setting content: "+err;},_mixin:function(_752){var _753={},key;for(key in _752){if(key in _753){continue;}this[key]=_752[key];}},_parse:function(){var _754=this.node;try{var _755={};_748.forEach(["dir","lang","textDir"],function(name){if(this[name]){_755[name]=this[name];}},this);this.parseResults=_74b.parse({rootNode:_754,noStart:!this.startup,inherited:_755,scope:this.parserScope});}catch(e){this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id);}},_onError:function(type,err,_756){var _757=this["on"+type+"Error"].call(this,err);if(_756){console.error(_756,err);}else{if(_757){dojo.html._setNodeContent(this.node,_757,true);}}}});dojo.html.set=function(node,cont,_758){if(undefined==cont){console.warn("dojo.html.set: no cont argument provided, using empty string");cont="";}if(!_758){return dojo.html._setNodeContent(node,cont,true);}else{var op=new dojo.html._ContentSetter(lang.mixin(_758,{content:cont,node:node}));return op.set();}};return dojo.html;});},"dijit/_PaletteMixin":function(){define("dijit/_PaletteMixin",["dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/_base/event","dojo/keys","dojo/_base/lang","./_CssStateMixin","./focus","./typematic"],function(_759,_75a,_75b,_75c,_75d,keys,lang,_75e,_75f,_760){return _759("dijit._PaletteMixin",[_75e],{defaultTimeout:500,timeoutChangeRate:0.9,value:"",_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:"",summary:"",_setSummaryAttr:"paletteTableNode",_dyeFactory:function(_761){var _762=lang.getObject(this.dyeClass);return new _762(_761);},_preparePalette:function(_763,_764){this._cells=[];var url=this._blankGif;this.connect(this.gridNode,"ondijitclick","_onCellClick");for(var row=0;row<_763.length;row++){var _765=_75c.create("tr",{tabIndex:"-1"},this.gridNode);for(var col=0;col<_763[row].length;col++){var _766=_763[row][col];if(_766){var _767=this._dyeFactory(_766,row,col);var _768=_75c.create("td",{"class":this.cellClass,tabIndex:"-1",title:_764[_766],role:"gridcell"});_767.fillCell(_768,url);_75c.place(_768,_765);_768.index=this._cells.length;this._cells.push({node:_768,dye:_767});}}}this._xDim=_763[0].length;this._yDim=_763.length;var _769={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1};for(var key in _769){this._connects.push(_760.addKeyListener(this.domNode,{charOrCode:keys[key],ctrlKey:false,altKey:false,shiftKey:false},this,function(){var _76a=_769[key];return function(_76b){this._navigateByKey(_76a,_76b);};}(),this.timeoutChangeRate,this.defaultTimeout));}},postCreate:function(){this.inherited(arguments);this._setCurrent(this._cells[0].node);},focus:function(){_75f.focus(this._currentFocus);},_onCellClick:function(evt){var _76c=evt.target;while(_76c.tagName!="TD"){if(!_76c.parentNode||_76c==this.gridNode){return;}_76c=_76c.parentNode;}var _76d=this._getDye(_76c).getValue();this._setCurrent(_76c);_75f.focus(_76c);this._setValueAttr(_76d,true);_75d.stop(evt);},_setCurrent:function(node){if("_currentFocus" in this){_75a.set(this._currentFocus,"tabIndex","-1");}this._currentFocus=node;if(node){_75a.set(node,"tabIndex",this.tabIndex);}},_setValueAttr:function(_76e,_76f){if(this._selectedCell>=0){_75b.remove(this._cells[this._selectedCell].node,this.cellClass+"Selected");}this._selectedCell=-1;if(_76e){for(var i=0;i<this._cells.length;i++){if(_76e==this._cells[i].dye.getValue()){this._selectedCell=i;_75b.add(this._cells[i].node,this.cellClass+"Selected");break;}}}this._set("value",this._selectedCell>=0?_76e:null);if(_76f||_76f===undefined){this.onChange(_76e);}},onChange:function(){},_navigateByKey:function(_770,_771){if(_771==-1){return;}var _772=this._currentFocus.index+_770;if(_772<this._cells.length&&_772>-1){var _773=this._cells[_772].node;this._setCurrent(_773);setTimeout(lang.hitch(dijit,"focus",_773),0);}},_getDye:function(cell){return this._cells[cell.index].dye;}});});},"dijit/form/ValidationTextBox":function(){require({cache:{"url:dijit/form/templates/ValidationTextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"}});define("dijit/form/ValidationTextBox",["dojo/_base/declare","dojo/i18n","./TextBox","../Tooltip","dojo/text!./templates/ValidationTextBox.html","dojo/i18n!./nls/validate"],function(_774,i18n,_775,_776,_777){return _774("dijit.form.ValidationTextBox",_775,{templateString:_777,baseClass:"dijitTextBox dijitValidationTextBox",required:false,promptMessage:"",invalidMessage:"$_unset_$",missingMessage:"$_unset_$",message:"",constraints:{},regExp:".*",regExpGen:function(){return this.regExp;},state:"",tooltipPosition:[],_setValueAttr:function(){this.inherited(arguments);this.validate(this.focused);},validator:function(_778,_779){return (new RegExp("^(?:"+this.regExpGen(_779)+")"+(this.required?"":"?")+"$")).test(_778)&&(!this.required||!this._isEmpty(_778))&&(this._isEmpty(_778)||this.parse(_778,_779)!==undefined);},_isValidSubset:function(){return this.textbox.value.search(this._partialre)==0;},isValid:function(){return this.validator(this.textbox.value,this.constraints);},_isEmpty:function(_77a){return (this.trim?/^\s*$/:/^$/).test(_77a);},getErrorMessage:function(){return (this.required&&this._isEmpty(this.textbox.value))?this.missingMessage:this.invalidMessage;},getPromptMessage:function(){return this.promptMessage;},_maskValidSubsetError:true,validate:function(_77b){var _77c="";var _77d=this.disabled||this.isValid(_77b);if(_77d){this._maskValidSubsetError=true;}var _77e=this._isEmpty(this.textbox.value);var _77f=!_77d&&_77b&&this._isValidSubset();this._set("state",_77d?"":(((((!this._hasBeenBlurred||_77b)&&_77e)||_77f)&&this._maskValidSubsetError)?"Incomplete":"Error"));this.focusNode.setAttribute("aria-invalid",_77d?"false":"true");if(this.state=="Error"){this._maskValidSubsetError=_77b&&_77f;_77c=this.getErrorMessage(_77b);}else{if(this.state=="Incomplete"){_77c=this.getPromptMessage(_77b);this._maskValidSubsetError=!this._hasBeenBlurred||_77b;}else{if(_77e){_77c=this.getPromptMessage(_77b);}}}this.set("message",_77c);return _77d;},displayMessage:function(_780){if(_780&&this.focused){_776.show(_780,this.domNode,this.tooltipPosition,!this.isLeftToRight());}else{_776.hide(this.domNode);}},_refreshState:function(){this.validate(this.focused);this.inherited(arguments);},constructor:function(){this.constraints={};},_setConstraintsAttr:function(_781){if(!_781.locale&&this.lang){_781.locale=this.lang;}this._set("constraints",_781);this._computePartialRE();},_computePartialRE:function(){var p=this.regExpGen(this.constraints);this.regExp=p;var _782="";if(p!=".*"){this.regExp.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,function(re){switch(re.charAt(0)){case "{":case "+":case "?":case "*":case "^":case "$":case "|":case "(":_782+=re;break;case ")":_782+="|$)";break;default:_782+="(?:"+re+"|$)";break;}});}try{"".search(_782);}catch(e){_782=this.regExp;console.warn("RegExp error in "+this.declaredClass+": "+this.regExp);}this._partialre="^(?:"+_782+")$";},postMixInProperties:function(){this.inherited(arguments);this.messages=i18n.getLocalization("dijit.form","validate",this.lang);if(this.invalidMessage=="$_unset_$"){this.invalidMessage=this.messages.invalidMessage;}if(!this.invalidMessage){this.invalidMessage=this.promptMessage;}if(this.missingMessage=="$_unset_$"){this.missingMessage=this.messages.missingMessage;}if(!this.missingMessage){this.missingMessage=this.invalidMessage;}this._setConstraintsAttr(this.constraints);},_setDisabledAttr:function(_783){this.inherited(arguments);this._refreshState();},_setRequiredAttr:function(_784){this._set("required",_784);this.focusNode.setAttribute("aria-required",_784);this._refreshState();},_setMessageAttr:function(_785){this._set("message",_785);this.displayMessage(_785);},reset:function(){this._maskValidSubsetError=true;this.inherited(arguments);},_onBlur:function(){this.displayMessage("");this.inherited(arguments);}});});},"dijit/_base/typematic":function(){define("dijit/_base/typematic",["../typematic"],function(){});},"dijit/_base":function(){define("dijit/_base",[".","./a11y","./WidgetSet","./_base/focus","./_base/manager","./_base/place","./_base/popup","./_base/scroll","./_base/sniff","./_base/typematic","./_base/wai","./_base/window"],function(_786){return _786._base;});},"dijit/layout/BorderContainer":function(){define("dijit/layout/BorderContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","dojo/touch","dojo/_base/window","../_WidgetBase","../_Widget","../_TemplatedMixin","./_LayoutWidget","./utils"],function(_787,_788,_789,_78a,_78b,_78c,_78d,_78e,keys,lang,on,_78f,win,_790,_791,_792,_793,_794){var _795=_789("dijit.layout._Splitter",[_791,_792],{live:true,templateString:"<div class=\"dijitSplitter\" data-dojo-attach-event=\"onkeypress:_onKeyPress,press:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse\" tabIndex=\"0\" role=\"separator\"><div class=\"dijitSplitterThumb\"></div></div>",constructor:function(){this._handlers=[];},postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);this._factor=/top|left/.test(this.region)?1:-1;this._cookieName=this.container.id+"_"+this.region;},buildRendering:function(){this.inherited(arguments);_78a.add(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V"));if(this.container.persist){var _796=_788(this._cookieName);if(_796){this.child.domNode.style[this.horizontal?"height":"width"]=_796;}}},_computeMaxSize:function(){var dim=this.horizontal?"h":"w",_797=_78c.getMarginBox(this.child.domNode)[dim],_798=_787.filter(this.container.getChildren(),function(_799){return _799.region=="center";})[0],_79a=_78c.getMarginBox(_798.domNode)[dim];return Math.min(this.child.maxSize,_797+_79a);},_startDrag:function(e){if(!this.cover){this.cover=win.doc.createElement("div");_78a.add(this.cover,"dijitSplitterCover");_78b.place(this.cover,this.child.domNode,"after");}_78a.add(this.cover,"dijitSplitterCoverActive");if(this.fake){_78b.destroy(this.fake);}if(!(this._resize=this.live)){(this.fake=this.domNode.cloneNode(true)).removeAttribute("id");_78a.add(this.domNode,"dijitSplitterShadow");_78b.place(this.fake,this.domNode,"after");}_78a.add(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active");if(this.fake){_78a.remove(this.fake,"dijitSplitterHover dijitSplitter"+(this.horizontal?"H":"V")+"Hover");}var _79b=this._factor,_79c=this.horizontal,axis=_79c?"pageY":"pageX",_79d=e[axis],_79e=this.domNode.style,dim=_79c?"h":"w",_79f=_78c.getMarginBox(this.child.domNode)[dim],max=this._computeMaxSize(),min=this.child.minSize||20,_7a0=this.region,_7a1=_7a0=="top"||_7a0=="bottom"?"top":"left",_7a2=parseInt(_79e[_7a1],10),_7a3=this._resize,_7a4=lang.hitch(this.container,"_layoutChildren",this.child.id),de=win.doc;this._handlers=this._handlers.concat([on(de,_78f.move,this._drag=function(e,_7a5){var _7a6=e[axis]-_79d,_7a7=_79b*_7a6+_79f,_7a8=Math.max(Math.min(_7a7,max),min);if(_7a3||_7a5){_7a4(_7a8);}_79e[_7a1]=_7a6+_7a2+_79b*(_7a8-_7a7)+"px";}),on(de,"dragstart",_78e.stop),on(win.body(),"selectstart",_78e.stop),on(de,_78f.release,lang.hitch(this,"_stopDrag"))]);_78e.stop(e);},_onMouse:function(e){var o=(e.type=="mouseover"||e.type=="mouseenter");_78a.toggle(this.domNode,"dijitSplitterHover",o);_78a.toggle(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover",o);},_stopDrag:function(e){try{if(this.cover){_78a.remove(this.cover,"dijitSplitterCoverActive");}if(this.fake){_78b.destroy(this.fake);}_78a.remove(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active dijitSplitterShadow");this._drag(e);this._drag(e,true);}finally{this._cleanupHandlers();delete this._drag;}if(this.container.persist){_788(this._cookieName,this.child.domNode.style[this.horizontal?"height":"width"],{expires:365});}},_cleanupHandlers:function(){var h;while(h=this._handlers.pop()){h.remove();}},_onKeyPress:function(e){this._resize=true;var _7a9=this.horizontal;var tick=1;switch(e.charOrCode){case _7a9?keys.UP_ARROW:keys.LEFT_ARROW:tick*=-1;case _7a9?keys.DOWN_ARROW:keys.RIGHT_ARROW:break;default:return;}var _7aa=_78c.getMarginSize(this.child.domNode)[_7a9?"h":"w"]+this._factor*tick;this.container._layoutChildren(this.child.id,Math.max(Math.min(_7aa,this._computeMaxSize()),this.child.minSize));_78e.stop(e);},destroy:function(){this._cleanupHandlers();delete this.child;delete this.container;delete this.cover;delete this.fake;this.inherited(arguments);}});var _7ab=_789("dijit.layout._Gutter",[_791,_792],{templateString:"<div class=\"dijitGutter\" role=\"presentation\"></div>",postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);},buildRendering:function(){this.inherited(arguments);_78a.add(this.domNode,"dijitGutter"+(this.horizontal?"H":"V"));}});var _7ac=_789("dijit.layout.BorderContainer",_793,{design:"headline",gutters:true,liveSplitters:true,persist:false,baseClass:"dijitBorderContainer",_splitterClass:_795,postMixInProperties:function(){if(!this.gutters){this.baseClass+="NoGutter";}this.inherited(arguments);},startup:function(){if(this._started){return;}_787.forEach(this.getChildren(),this._setupChild,this);this.inherited(arguments);},_setupChild:function(_7ad){var _7ae=_7ad.region;if(_7ae){this.inherited(arguments);_78a.add(_7ad.domNode,this.baseClass+"Pane");var ltr=this.isLeftToRight();if(_7ae=="leading"){_7ae=ltr?"left":"right";}if(_7ae=="trailing"){_7ae=ltr?"right":"left";}if(_7ae!="center"&&(_7ad.splitter||this.gutters)&&!_7ad._splitterWidget){var _7af=_7ad.splitter?this._splitterClass:_7ab;if(lang.isString(_7af)){_7af=lang.getObject(_7af);}var _7b0=new _7af({id:_7ad.id+"_splitter",container:this,child:_7ad,region:_7ae,live:this.liveSplitters});_7b0.isSplitter=true;_7ad._splitterWidget=_7b0;_78b.place(_7b0.domNode,_7ad.domNode,"after");_7b0.startup();}_7ad.region=_7ae;}},layout:function(){this._layoutChildren();},addChild:function(_7b1,_7b2){this.inherited(arguments);if(this._started){this.layout();}},removeChild:function(_7b3){var _7b4=_7b3.region;var _7b5=_7b3._splitterWidget;if(_7b5){_7b5.destroy();delete _7b3._splitterWidget;}this.inherited(arguments);if(this._started){this._layoutChildren();}_78a.remove(_7b3.domNode,this.baseClass+"Pane");_78d.set(_7b3.domNode,{top:"auto",bottom:"auto",left:"auto",right:"auto",position:"static"});_78d.set(_7b3.domNode,_7b4=="top"||_7b4=="bottom"?"width":"height","auto");},getChildren:function(){return _787.filter(this.inherited(arguments),function(_7b6){return !_7b6.isSplitter;});},getSplitter:function(_7b7){return _787.filter(this.getChildren(),function(_7b8){return _7b8.region==_7b7;})[0]._splitterWidget;},resize:function(_7b9,_7ba){if(!this.cs||!this.pe){var node=this.domNode;this.cs=_78d.getComputedStyle(node);this.pe=_78c.getPadExtents(node,this.cs);this.pe.r=_78d.toPixelValue(node,this.cs.paddingRight);this.pe.b=_78d.toPixelValue(node,this.cs.paddingBottom);_78d.set(node,"padding","0px");}this.inherited(arguments);},_layoutChildren:function(_7bb,_7bc){if(!this._borderBox||!this._borderBox.h){return;}var _7bd=_787.map(this.getChildren(),function(_7be,idx){return {pane:_7be,weight:[_7be.region=="center"?Infinity:0,_7be.layoutPriority,(this.design=="sidebar"?1:-1)*(/top|bottom/.test(_7be.region)?1:-1),idx]};},this);_7bd.sort(function(a,b){var aw=a.weight,bw=b.weight;for(var i=0;i<aw.length;i++){if(aw[i]!=bw[i]){return aw[i]-bw[i];}}return 0;});var _7bf=[];_787.forEach(_7bd,function(_7c0){var pane=_7c0.pane;_7bf.push(pane);if(pane._splitterWidget){_7bf.push(pane._splitterWidget);}});var dim={l:this.pe.l,t:this.pe.t,w:this._borderBox.w-this.pe.w,h:this._borderBox.h-this.pe.h};_794.layoutChildren(this.domNode,dim,_7bf,_7bb,_7bc);},destroyRecursive:function(){_787.forEach(this.getChildren(),function(_7c1){var _7c2=_7c1._splitterWidget;if(_7c2){_7c2.destroy();}delete _7c1._splitterWidget;});this.inherited(arguments);}});lang.extend(_790,{region:"",layoutPriority:0,splitter:false,minSize:0,maxSize:Infinity});_7ac._Splitter=_795;_7ac._Gutter=_7ab;return _7ac;});},"dojo/window":function(){define("dojo/window",["./_base/lang","./_base/sniff","./_base/window","./dom","./dom-geometry","./dom-style"],function(lang,has,_7c3,dom,geom,_7c4){var _7c5=lang.getObject("dojo.window",true);_7c5.getBox=function(){var _7c6=(_7c3.doc.compatMode=="BackCompat")?_7c3.body():_7c3.doc.documentElement,_7c7=geom.docScroll(),w,h;if(has("touch")){var _7c8=_7c3.doc.parentWindow||_7c3.doc.defaultView;w=_7c8.innerWidth||_7c6.clientWidth;h=_7c8.innerHeight||_7c6.clientHeight;}else{w=_7c6.clientWidth;h=_7c6.clientHeight;}return {l:_7c7.x,t:_7c7.y,w:w,h:h};};_7c5.get=function(doc){if(has("ie")&&_7c5!==document.parentWindow){doc.parentWindow.execScript("document._parentWindow = window;","Javascript");var win=doc._parentWindow;doc._parentWindow=null;return win;}return doc.parentWindow||doc.defaultView;};_7c5.scrollIntoView=function(node,pos){try{node=dom.byId(node);var doc=node.ownerDocument||_7c3.doc,body=doc.body||_7c3.body(),html=doc.documentElement||body.parentNode,isIE=has("ie"),isWK=has("webkit");if((!(has("mozilla")||isIE||isWK||has("opera"))||node==body||node==html)&&(typeof node.scrollIntoView!="undefined")){node.scrollIntoView(false);return;}var _7c9=doc.compatMode=="BackCompat",_7ca=(isIE>=9&&node.ownerDocument.parentWindow.frameElement)?((html.clientHeight>0&&html.clientWidth>0&&(body.clientHeight==0||body.clientWidth==0||body.clientHeight>html.clientHeight||body.clientWidth>html.clientWidth))?html:body):(_7c9?body:html),_7cb=isWK?body:_7ca,_7cc=_7ca.clientWidth,_7cd=_7ca.clientHeight,rtl=!geom.isBodyLtr(),_7ce=pos||geom.position(node),el=node.parentNode,_7cf=function(el){return ((isIE<=6||(isIE&&_7c9))?false:(_7c4.get(el,"position").toLowerCase()=="fixed"));};if(_7cf(node)){return;}while(el){if(el==body){el=_7cb;}var _7d0=geom.position(el),_7d1=_7cf(el);if(el==_7cb){_7d0.w=_7cc;_7d0.h=_7cd;if(_7cb==html&&isIE&&rtl){_7d0.x+=_7cb.offsetWidth-_7d0.w;}if(_7d0.x<0||!isIE){_7d0.x=0;}if(_7d0.y<0||!isIE){_7d0.y=0;}}else{var pb=geom.getPadBorderExtents(el);_7d0.w-=pb.w;_7d0.h-=pb.h;_7d0.x+=pb.l;_7d0.y+=pb.t;var _7d2=el.clientWidth,_7d3=_7d0.w-_7d2;if(_7d2>0&&_7d3>0){_7d0.w=_7d2;_7d0.x+=(rtl&&(isIE||el.clientLeft>pb.l))?_7d3:0;}_7d2=el.clientHeight;_7d3=_7d0.h-_7d2;if(_7d2>0&&_7d3>0){_7d0.h=_7d2;}}if(_7d1){if(_7d0.y<0){_7d0.h+=_7d0.y;_7d0.y=0;}if(_7d0.x<0){_7d0.w+=_7d0.x;_7d0.x=0;}if(_7d0.y+_7d0.h>_7cd){_7d0.h=_7cd-_7d0.y;}if(_7d0.x+_7d0.w>_7cc){_7d0.w=_7cc-_7d0.x;}}var l=_7ce.x-_7d0.x,t=_7ce.y-Math.max(_7d0.y,0),r=l+_7ce.w-_7d0.w,bot=t+_7ce.h-_7d0.h;if(r*l>0){var s=Math[l<0?"max":"min"](l,r);if(rtl&&((isIE==8&&!_7c9)||isIE>=9)){s=-s;}_7ce.x+=el.scrollLeft;el.scrollLeft+=s;_7ce.x-=el.scrollLeft;}if(bot*t>0){_7ce.y+=el.scrollTop;el.scrollTop+=Math[t<0?"max":"min"](t,bot);_7ce.y-=el.scrollTop;}el=(el!=_7cb)&&!_7d1&&el.parentNode;}}catch(error){console.error("scrollIntoView: "+error);node.scrollIntoView(false);}};return _7c5;});},"dojo/number":function(){define("dojo/number",["./_base/kernel","./_base/lang","./i18n","./i18n!./cldr/nls/number","./string","./regexp"],function(dojo,lang,i18n,_7d4,_7d5,_7d6){lang.getObject("number",true,dojo);dojo.number.format=function(_7d7,_7d8){_7d8=lang.mixin({},_7d8||{});var _7d9=i18n.normalizeLocale(_7d8.locale),_7da=i18n.getLocalization("dojo.cldr","number",_7d9);_7d8.customs=_7da;var _7db=_7d8.pattern||_7da[(_7d8.type||"decimal")+"Format"];if(isNaN(_7d7)||Math.abs(_7d7)==Infinity){return null;}return dojo.number._applyPattern(_7d7,_7db,_7d8);};dojo.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;dojo.number._applyPattern=function(_7dc,_7dd,_7de){_7de=_7de||{};var _7df=_7de.customs.group,_7e0=_7de.customs.decimal,_7e1=_7dd.split(";"),_7e2=_7e1[0];_7dd=_7e1[(_7dc<0)?1:0]||("-"+_7e2);if(_7dd.indexOf("%")!=-1){_7dc*=100;}else{if(_7dd.indexOf("‰")!=-1){_7dc*=1000;}else{if(_7dd.indexOf("¤")!=-1){_7df=_7de.customs.currencyGroup||_7df;_7e0=_7de.customs.currencyDecimal||_7e0;_7dd=_7dd.replace(/\u00a4{1,3}/,function(_7e3){var prop=["symbol","currency","displayName"][_7e3.length-1];return _7de[prop]||_7de.currency||"";});}else{if(_7dd.indexOf("E")!=-1){throw new Error("exponential notation not supported");}}}}var _7e4=dojo.number._numberPatternRE;var _7e5=_7e2.match(_7e4);if(!_7e5){throw new Error("unable to find a number expression in pattern: "+_7dd);}if(_7de.fractional===false){_7de.places=0;}return _7dd.replace(_7e4,dojo.number._formatAbsolute(_7dc,_7e5[0],{decimal:_7e0,group:_7df,places:_7de.places,round:_7de.round}));};dojo.number.round=function(_7e6,_7e7,_7e8){var _7e9=10/(_7e8||10);return (_7e9*+_7e6).toFixed(_7e7)/_7e9;};if((0.9).toFixed()==0){var _7ea=dojo.number.round;dojo.number.round=function(v,p,m){var d=Math.pow(10,-p||0),a=Math.abs(v);if(!v||a>=d||a*Math.pow(10,p+1)<5){d=0;}return _7ea(v,p,m)+(v>0?d:-d);};}dojo.number._formatAbsolute=function(_7eb,_7ec,_7ed){_7ed=_7ed||{};if(_7ed.places===true){_7ed.places=0;}if(_7ed.places===Infinity){_7ed.places=6;}var _7ee=_7ec.split("."),_7ef=typeof _7ed.places=="string"&&_7ed.places.indexOf(","),_7f0=_7ed.places;if(_7ef){_7f0=_7ed.places.substring(_7ef+1);}else{if(!(_7f0>=0)){_7f0=(_7ee[1]||[]).length;}}if(!(_7ed.round<0)){_7eb=dojo.number.round(_7eb,_7f0,_7ed.round);}var _7f1=String(Math.abs(_7eb)).split("."),_7f2=_7f1[1]||"";if(_7ee[1]||_7ed.places){if(_7ef){_7ed.places=_7ed.places.substring(0,_7ef);}var pad=_7ed.places!==undefined?_7ed.places:(_7ee[1]&&_7ee[1].lastIndexOf("0")+1);if(pad>_7f2.length){_7f1[1]=_7d5.pad(_7f2,pad,"0",true);}if(_7f0<_7f2.length){_7f1[1]=_7f2.substr(0,_7f0);}}else{if(_7f1[1]){_7f1.pop();}}var _7f3=_7ee[0].replace(",","");pad=_7f3.indexOf("0");if(pad!=-1){pad=_7f3.length-pad;if(pad>_7f1[0].length){_7f1[0]=_7d5.pad(_7f1[0],pad);}if(_7f3.indexOf("#")==-1){_7f1[0]=_7f1[0].substr(_7f1[0].length-pad);}}var _7f4=_7ee[0].lastIndexOf(","),_7f5,_7f6;if(_7f4!=-1){_7f5=_7ee[0].length-_7f4-1;var _7f7=_7ee[0].substr(0,_7f4);_7f4=_7f7.lastIndexOf(",");if(_7f4!=-1){_7f6=_7f7.length-_7f4-1;}}var _7f8=[];for(var _7f9=_7f1[0];_7f9;){var off=_7f9.length-_7f5;_7f8.push((off>0)?_7f9.substr(off):_7f9);_7f9=(off>0)?_7f9.slice(0,off):"";if(_7f6){_7f5=_7f6;delete _7f6;}}_7f1[0]=_7f8.reverse().join(_7ed.group||",");return _7f1.join(_7ed.decimal||".");};dojo.number.regexp=function(_7fa){return dojo.number._parseInfo(_7fa).regexp;};dojo.number._parseInfo=function(_7fb){_7fb=_7fb||{};var _7fc=i18n.normalizeLocale(_7fb.locale),_7fd=i18n.getLocalization("dojo.cldr","number",_7fc),_7fe=_7fb.pattern||_7fd[(_7fb.type||"decimal")+"Format"],_7ff=_7fd.group,_800=_7fd.decimal,_801=1;if(_7fe.indexOf("%")!=-1){_801/=100;}else{if(_7fe.indexOf("‰")!=-1){_801/=1000;}else{var _802=_7fe.indexOf("¤")!=-1;if(_802){_7ff=_7fd.currencyGroup||_7ff;_800=_7fd.currencyDecimal||_800;}}}var _803=_7fe.split(";");if(_803.length==1){_803.push("-"+_803[0]);}var re=_7d6.buildGroupRE(_803,function(_804){_804="(?:"+_7d6.escapeString(_804,".")+")";return _804.replace(dojo.number._numberPatternRE,function(_805){var _806={signed:false,separator:_7fb.strict?_7ff:[_7ff,""],fractional:_7fb.fractional,decimal:_800,exponent:false},_807=_805.split("."),_808=_7fb.places;if(_807.length==1&&_801!=1){_807[1]="###";}if(_807.length==1||_808===0){_806.fractional=false;}else{if(_808===undefined){_808=_7fb.pattern?_807[1].lastIndexOf("0")+1:Infinity;}if(_808&&_7fb.fractional==undefined){_806.fractional=true;}if(!_7fb.places&&(_808<_807[1].length)){_808+=","+_807[1].length;}_806.places=_808;}var _809=_807[0].split(",");if(_809.length>1){_806.groupSize=_809.pop().length;if(_809.length>1){_806.groupSize2=_809.pop().length;}}return "("+dojo.number._realNumberRegexp(_806)+")";});},true);if(_802){re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(_80a,_80b,_80c,_80d){var prop=["symbol","currency","displayName"][_80c.length-1],_80e=_7d6.escapeString(_7fb[prop]||_7fb.currency||"");_80b=_80b?"[\\s\\xa0]":"";_80d=_80d?"[\\s\\xa0]":"";if(!_7fb.strict){if(_80b){_80b+="*";}if(_80d){_80d+="*";}return "(?:"+_80b+_80e+_80d+")?";}return _80b+_80e+_80d;});}return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_7ff,decimal:_800,factor:_801};};dojo.number.parse=function(_80f,_810){var info=dojo.number._parseInfo(_810),_811=(new RegExp("^"+info.regexp+"$")).exec(_80f);if(!_811){return NaN;}var _812=_811[1];if(!_811[1]){if(!_811[2]){return NaN;}_812=_811[2];info.factor*=-1;}_812=_812.replace(new RegExp("["+info.group+"\\s\\xa0"+"]","g"),"").replace(info.decimal,".");return _812*info.factor;};dojo.number._realNumberRegexp=function(_813){_813=_813||{};if(!("places" in _813)){_813.places=Infinity;}if(typeof _813.decimal!="string"){_813.decimal=".";}if(!("fractional" in _813)||/^0/.test(_813.places)){_813.fractional=[true,false];}if(!("exponent" in _813)){_813.exponent=[true,false];}if(!("eSigned" in _813)){_813.eSigned=[true,false];}var _814=dojo.number._integerRegexp(_813),_815=_7d6.buildGroupRE(_813.fractional,function(q){var re="";if(q&&(_813.places!==0)){re="\\"+_813.decimal;if(_813.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+_813.places+"}";}}return re;},true);var _816=_7d6.buildGroupRE(_813.exponent,function(q){if(q){return "([eE]"+dojo.number._integerRegexp({signed:_813.eSigned})+")";}return "";});var _817=_814+_815;if(_815){_817="(?:(?:"+_817+")|(?:"+_815+"))";}return _817+_816;};dojo.number._integerRegexp=function(_818){_818=_818||{};if(!("signed" in _818)){_818.signed=[true,false];}if(!("separator" in _818)){_818.separator="";}else{if(!("groupSize" in _818)){_818.groupSize=3;}}var _819=_7d6.buildGroupRE(_818.signed,function(q){return q?"[-+]":"";},true);var _81a=_7d6.buildGroupRE(_818.separator,function(sep){if(!sep){return "(?:\\d+)";}sep=_7d6.escapeString(sep);if(sep==" "){sep="\\s";}else{if(sep==" "){sep="\\s\\xa0";}}var grp=_818.groupSize,grp2=_818.groupSize2;if(grp2){var _81b="(?:0|[1-9]\\d{0,"+(grp2-1)+"}(?:["+sep+"]\\d{"+grp2+"})*["+sep+"]\\d{"+grp+"})";return ((grp-grp2)>0)?"(?:"+_81b+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_81b;}return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return _819+_81a;};return dojo.number;});},"dijit/_FocusMixin":function(){define("dijit/_FocusMixin",["./focus","./_WidgetBase","dojo/_base/declare","dojo/_base/lang"],function(_81c,_81d,_81e,lang){lang.extend(_81d,{focused:false,onFocus:function(){},onBlur:function(){},_onFocus:function(){this.onFocus();},_onBlur:function(){this.onBlur();}});return _81e("dijit._FocusMixin",null,{_focusManager:_81c});});},"dojo/data/util/filter":function(){define("dojo/data/util/filter",["dojo/_base/lang"],function(lang){var _81f=lang.getObject("dojo.data.util.filter",true);_81f.patternToRegExp=function(_820,_821){var rxp="^";var c=null;for(var i=0;i<_820.length;i++){c=_820.charAt(i);switch(c){case "\\":rxp+=c;i++;rxp+=_820.charAt(i);break;case "*":rxp+=".*";break;case "?":rxp+=".";break;case "$":case "^":case "/":case "+":case ".":case "|":case "(":case ")":case "{":case "}":case "[":case "]":rxp+="\\";default:rxp+=c;}}rxp+="$";if(_821){return new RegExp(rxp,"mi");}else{return new RegExp(rxp,"m");}};return _81f;});},"dijit/_WidgetsInTemplateMixin":function(){define("dijit/_WidgetsInTemplateMixin",["dojo/_base/array","dojo/_base/declare","dojo/parser","dijit/registry"],function(_822,_823,_824,_825){return _823("dijit._WidgetsInTemplateMixin",null,{_earlyTemplatedStartup:false,widgetsInTemplate:true,_beforeFillContent:function(){if(this.widgetsInTemplate){var node=this.domNode;var cw=(this._startupWidgets=_824.parse(node,{noStart:!this._earlyTemplatedStartup,template:true,inherited:{dir:this.dir,lang:this.lang,textDir:this.textDir},propsThis:this,scope:"dojo"}));this._supportingWidgets=_825.findWidgets(node);this._attachTemplateNodes(cw,function(n,p){return n[p];});}},startup:function(){_822.forEach(this._startupWidgets,function(w){if(w&&!w._started&&w.startup){w.startup();}});this.inherited(arguments);}});});},"dojo/fx/Toggler":function(){define("dojo/fx/Toggler",["../_base/lang","../_base/declare","../_base/fx","../_base/connect"],function(lang,_826,_827,_828){return _826("dojo.fx.Toggler",null,{node:null,showFunc:_827.fadeIn,hideFunc:_827.fadeOut,showDuration:200,hideDuration:200,constructor:function(args){var _829=this;lang.mixin(_829,args);_829.node=args.node;_829._showArgs=lang.mixin({},args);_829._showArgs.node=_829.node;_829._showArgs.duration=_829.showDuration;_829.showAnim=_829.showFunc(_829._showArgs);_829._hideArgs=lang.mixin({},args);_829._hideArgs.node=_829.node;_829._hideArgs.duration=_829.hideDuration;_829.hideAnim=_829.hideFunc(_829._hideArgs);_828.connect(_829.showAnim,"beforeBegin",lang.hitch(_829.hideAnim,"stop",true));_828.connect(_829.hideAnim,"beforeBegin",lang.hitch(_829.showAnim,"stop",true));},show:function(_82a){return this.showAnim.play(_82a||0);},hide:function(_82b){return this.hideAnim.play(_82b||0);}});});},"dijit/form/FilteringSelect":function(){define("dijit/form/FilteringSelect",["dojo/data/util/filter","dojo/_base/declare","dojo/_base/Deferred","dojo/_base/lang","./MappedTextBox","./ComboBoxMixin"],function(_82c,_82d,_82e,lang,_82f,_830){return _82d("dijit.form.FilteringSelect",[_82f,_830],{required:true,_lastDisplayedValue:"",_isValidSubset:function(){return this._opened;},isValid:function(){return !!this.item||(!this.required&&this.get("displayedValue")=="");},_refreshState:function(){if(!this.searchTimer){this.inherited(arguments);}},_callbackSetLabel:function(_831,_832,_833,_834){if((_832&&_832[this.searchAttr]!==this._lastQuery)||(!_832&&_831.length&&this.store.getIdentity(_831[0])!=this._lastQuery)){return;}if(!_831.length){this.set("value","",_834||(_834===undefined&&!this.focused),this.textbox.value,null);}else{this.set("item",_831[0],_834);}},_openResultList:function(_835,_836,_837){if(_836[this.searchAttr]!==this._lastQuery){return;}this.inherited(arguments);if(this.item===undefined){this.validate(true);}},_getValueAttr:function(){return this.valueNode.value;},_getValueField:function(){return "value";},_setValueAttr:function(_838,_839,_83a,item){if(!this._onChangeActive){_839=null;}if(item===undefined){if(_838===null||_838===""){_838="";if(!lang.isString(_83a)){this._setDisplayedValueAttr(_83a||"",_839);return;}}var self=this;this._lastQuery=_838;_82e.when(this.store.get(_838),function(item){self._callbackSetLabel(item?[item]:[],undefined,undefined,_839);});}else{this.valueNode.value=_838;this.inherited(arguments);}},_setItemAttr:function(item,_83b,_83c){this.inherited(arguments);this._lastDisplayedValue=this.textbox.value;},_getDisplayQueryString:function(text){return text.replace(/([\\\*\?])/g,"\\$1");},_setDisplayedValueAttr:function(_83d,_83e){if(_83d==null){_83d="";}if(!this._created){if(!("displayedValue" in this.params)){return;}_83e=false;}if(this.store){this.closeDropDown();var _83f=lang.clone(this.query);var qs=this._getDisplayQueryString(_83d),q;if(this.store._oldAPI){q=qs;}else{q=_82c.patternToRegExp(qs,this.ignoreCase);q.toString=function(){return qs;};}this._lastQuery=_83f[this.searchAttr]=q;this.textbox.value=_83d;this._lastDisplayedValue=_83d;this._set("displayedValue",_83d);var _840=this;var _841={ignoreCase:this.ignoreCase,deep:true};lang.mixin(_841,this.fetchProperties);this._fetchHandle=this.store.query(_83f,_841);_82e.when(this._fetchHandle,function(_842){_840._fetchHandle=null;_840._callbackSetLabel(_842||[],_83f,_841,_83e);},function(err){_840._fetchHandle=null;if(!_840._cancelingQuery){console.error("dijit.form.FilteringSelect: "+err.toString());}});}},undo:function(){this.set("displayedValue",this._lastDisplayedValue);}});});},"dojo/data/util/sorter":function(){define("dojo/data/util/sorter",["dojo/_base/lang"],function(lang){var _843=lang.getObject("dojo.data.util.sorter",true);_843.basicComparator=function(a,b){var r=-1;if(a===null){a=undefined;}if(b===null){b=undefined;}if(a==b){r=0;}else{if(a>b||a==null){r=1;}}return r;};_843.createSortFunction=function(_844,_845){var _846=[];function _847(attr,dir,comp,s){return function(_848,_849){var a=s.getValue(_848,attr);var b=s.getValue(_849,attr);return dir*comp(a,b);};};var _84a;var map=_845.comparatorMap;var bc=_843.basicComparator;for(var i=0;i<_844.length;i++){_84a=_844[i];var attr=_84a.attribute;if(attr){var dir=(_84a.descending)?-1:1;var comp=bc;if(map){if(typeof attr!=="string"&&("toString" in attr)){attr=attr.toString();}comp=map[attr]||bc;}_846.push(_847(attr,dir,comp,_845));}}return function(rowA,rowB){var i=0;while(i<_846.length){var ret=_846[i++](rowA,rowB);if(ret!==0){return ret;}}return 0;};};return _843;});},"dijit/form/_ButtonMixin":function(){define("dijit/form/_ButtonMixin",["dojo/_base/declare","dojo/dom","dojo/_base/event","../registry"],function(_84b,dom,_84c,_84d){return _84b("dijit.form._ButtonMixin",null,{label:"",type:"button",_onClick:function(e){if(this.disabled){_84c.stop(e);return false;}var _84e=this.onClick(e)===false;if(!_84e&&this.type=="submit"&&!(this.valueNode||this.focusNode).form){for(var node=this.domNode;node.parentNode;node=node.parentNode){var _84f=_84d.byNode(node);if(_84f&&typeof _84f._onSubmit=="function"){_84f._onSubmit(e);_84e=true;break;}}}if(_84e){e.preventDefault();}return !_84e;},postCreate:function(){this.inherited(arguments);dom.setSelectable(this.focusNode,false);},onClick:function(){return true;},_setLabelAttr:function(_850){this._set("label",_850);(this.containerNode||this.focusNode).innerHTML=_850;}});});},"dojo/colors":function(){define("dojo/colors",["./_base/kernel","./_base/lang","./_base/Color","./_base/array"],function(dojo,lang,_851,_852){var _853=lang.getObject("dojo.colors",true);var _854=function(m1,m2,h){if(h<0){++h;}if(h>1){--h;}var h6=6*h;if(h6<1){return m1+(m2-m1)*h6;}if(2*h<1){return m2;}if(3*h<2){return m1+(m2-m1)*(2/3-h)*6;}return m1;};dojo.colorFromRgb=_851.fromRgb=function(_855,obj){var m=_855.toLowerCase().match(/^(rgba?|hsla?)\(([\s\.\-,%0-9]+)\)/);if(m){var c=m[2].split(/\s*,\s*/),l=c.length,t=m[1],a;if((t=="rgb"&&l==3)||(t=="rgba"&&l==4)){var r=c[0];if(r.charAt(r.length-1)=="%"){a=_852.map(c,function(x){return parseFloat(x)*2.56;});if(l==4){a[3]=c[3];}return _851.fromArray(a,obj);}return _851.fromArray(c,obj);}if((t=="hsl"&&l==3)||(t=="hsla"&&l==4)){var H=((parseFloat(c[0])%360)+360)%360/360,S=parseFloat(c[1])/100,L=parseFloat(c[2])/100,m2=L<=0.5?L*(S+1):L+S-L*S,m1=2*L-m2;a=[_854(m1,m2,H+1/3)*256,_854(m1,m2,H)*256,_854(m1,m2,H-1/3)*256,1];if(l==4){a[3]=c[3];}return _851.fromArray(a,obj);}}return null;};var _856=function(c,low,high){c=Number(c);return isNaN(c)?high:c<low?low:c>high?high:c;};_851.prototype.sanitize=function(){var t=this;t.r=Math.round(_856(t.r,0,255));t.g=Math.round(_856(t.g,0,255));t.b=Math.round(_856(t.b,0,255));t.a=_856(t.a,0,1);return this;};_853.makeGrey=_851.makeGrey=function(g,a){return _851.fromArray([g,g,g,a]);};lang.mixin(_851.named,{"aliceblue":[240,248,255],"antiquewhite":[250,235,215],"aquamarine":[127,255,212],"azure":[240,255,255],"beige":[245,245,220],"bisque":[255,228,196],"blanchedalmond":[255,235,205],"blueviolet":[138,43,226],"brown":[165,42,42],"burlywood":[222,184,135],"cadetblue":[95,158,160],"chartreuse":[127,255,0],"chocolate":[210,105,30],"coral":[255,127,80],"cornflowerblue":[100,149,237],"cornsilk":[255,248,220],"crimson":[220,20,60],"cyan":[0,255,255],"darkblue":[0,0,139],"darkcyan":[0,139,139],"darkgoldenrod":[184,134,11],"darkgray":[169,169,169],"darkgreen":[0,100,0],"darkgrey":[169,169,169],"darkkhaki":[189,183,107],"darkmagenta":[139,0,139],"darkolivegreen":[85,107,47],"darkorange":[255,140,0],"darkorchid":[153,50,204],"darkred":[139,0,0],"darksalmon":[233,150,122],"darkseagreen":[143,188,143],"darkslateblue":[72,61,139],"darkslategray":[47,79,79],"darkslategrey":[47,79,79],"darkturquoise":[0,206,209],"darkviolet":[148,0,211],"deeppink":[255,20,147],"deepskyblue":[0,191,255],"dimgray":[105,105,105],"dimgrey":[105,105,105],"dodgerblue":[30,144,255],"firebrick":[178,34,34],"floralwhite":[255,250,240],"forestgreen":[34,139,34],"gainsboro":[220,220,220],"ghostwhite":[248,248,255],"gold":[255,215,0],"goldenrod":[218,165,32],"greenyellow":[173,255,47],"grey":[128,128,128],"honeydew":[240,255,240],"hotpink":[255,105,180],"indianred":[205,92,92],"indigo":[75,0,130],"ivory":[255,255,240],"khaki":[240,230,140],"lavender":[230,230,250],"lavenderblush":[255,240,245],"lawngreen":[124,252,0],"lemonchiffon":[255,250,205],"lightblue":[173,216,230],"lightcoral":[240,128,128],"lightcyan":[224,255,255],"lightgoldenrodyellow":[250,250,210],"lightgray":[211,211,211],"lightgreen":[144,238,144],"lightgrey":[211,211,211],"lightpink":[255,182,193],"lightsalmon":[255,160,122],"lightseagreen":[32,178,170],"lightskyblue":[135,206,250],"lightslategray":[119,136,153],"lightslategrey":[119,136,153],"lightsteelblue":[176,196,222],"lightyellow":[255,255,224],"limegreen":[50,205,50],"linen":[250,240,230],"magenta":[255,0,255],"mediumaquamarine":[102,205,170],"mediumblue":[0,0,205],"mediumorchid":[186,85,211],"mediumpurple":[147,112,219],"mediumseagreen":[60,179,113],"mediumslateblue":[123,104,238],"mediumspringgreen":[0,250,154],"mediumturquoise":[72,209,204],"mediumvioletred":[199,21,133],"midnightblue":[25,25,112],"mintcream":[245,255,250],"mistyrose":[255,228,225],"moccasin":[255,228,181],"navajowhite":[255,222,173],"oldlace":[253,245,230],"olivedrab":[107,142,35],"orange":[255,165,0],"orangered":[255,69,0],"orchid":[218,112,214],"palegoldenrod":[238,232,170],"palegreen":[152,251,152],"paleturquoise":[175,238,238],"palevioletred":[219,112,147],"papayawhip":[255,239,213],"peachpuff":[255,218,185],"peru":[205,133,63],"pink":[255,192,203],"plum":[221,160,221],"powderblue":[176,224,230],"rosybrown":[188,143,143],"royalblue":[65,105,225],"saddlebrown":[139,69,19],"salmon":[250,128,114],"sandybrown":[244,164,96],"seagreen":[46,139,87],"seashell":[255,245,238],"sienna":[160,82,45],"skyblue":[135,206,235],"slateblue":[106,90,205],"slategray":[112,128,144],"slategrey":[112,128,144],"snow":[255,250,250],"springgreen":[0,255,127],"steelblue":[70,130,180],"tan":[210,180,140],"thistle":[216,191,216],"tomato":[255,99,71],"turquoise":[64,224,208],"violet":[238,130,238],"wheat":[245,222,179],"whitesmoke":[245,245,245],"yellowgreen":[154,205,50]});return _851;});},"dijit/registry":function(){define("dijit/registry",["dojo/_base/array","dojo/_base/sniff","dojo/_base/unload","dojo/_base/window","."],function(_857,has,_858,win,_859){var _85a={},hash={};var _85b={length:0,add:function(_85c){if(hash[_85c.id]){throw new Error("Tried to register widget with id=="+_85c.id+" but that id is already registered");}hash[_85c.id]=_85c;this.length++;},remove:function(id){if(hash[id]){delete hash[id];this.length--;}},byId:function(id){return typeof id=="string"?hash[id]:id;},byNode:function(node){return hash[node.getAttribute("widgetId")];},toArray:function(){var ar=[];for(var id in hash){ar.push(hash[id]);}return ar;},getUniqueId:function(_85d){var id;do{id=_85d+"_"+(_85d in _85a?++_85a[_85d]:_85a[_85d]=0);}while(hash[id]);return _859._scopeName=="dijit"?id:_859._scopeName+"_"+id;},findWidgets:function(root){var _85e=[];function _85f(root){for(var node=root.firstChild;node;node=node.nextSibling){if(node.nodeType==1){var _860=node.getAttribute("widgetId");if(_860){var _861=hash[_860];if(_861){_85e.push(_861);}}else{_85f(node);}}}};_85f(root);return _85e;},_destroyAll:function(){_859._curFocus=null;_859._prevFocus=null;_859._activeStack=[];_857.forEach(_85b.findWidgets(win.body()),function(_862){if(!_862._destroyed){if(_862.destroyRecursive){_862.destroyRecursive();}else{if(_862.destroy){_862.destroy();}}}});},getEnclosingWidget:function(node){while(node){var id=node.getAttribute&&node.getAttribute("widgetId");if(id){return hash[id];}node=node.parentNode;}return null;},_hash:hash};if(has("ie")){_858.addOnWindowUnload(function(){_85b._destroyAll();});}_859.registry=_85b;return _85b;});},"dijit/tree/_dndContainer":function(){define("dijit/tree/_dndContainer",["dojo/aspect","dojo/_base/declare","dojo/dom-class","dojo/_base/event","dojo/_base/lang","dojo/mouse","dojo/on"],function(_863,_864,_865,_866,lang,_867,on){return _864("dijit.tree._dndContainer",null,{constructor:function(tree,_868){this.tree=tree;this.node=tree.domNode;lang.mixin(this,_868);this.current=null;this.containerState="";_865.add(this.node,"dojoDndContainer");this.events=[on(this.node,_867.enter,lang.hitch(this,"onOverEvent")),on(this.node,_867.leave,lang.hitch(this,"onOutEvent")),_863.after(this.tree,"_onNodeMouseEnter",lang.hitch(this,"onMouseOver"),true),_863.after(this.tree,"_onNodeMouseLeave",lang.hitch(this,"onMouseOut"),true),on(this.node,"dragstart",lang.hitch(_866,"stop")),on(this.node,"selectstart",lang.hitch(_866,"stop"))];},destroy:function(){var h;while(h=this.events.pop()){h.remove();}this.node=this.parent=null;},onMouseOver:function(_869){this.current=_869;},onMouseOut:function(){this.current=null;},_changeState:function(type,_86a){var _86b="dojoDnd"+type;var _86c=type.toLowerCase()+"State";_865.replace(this.node,_86b+_86a,_86b+this[_86c]);this[_86c]=_86a;},_addItemClass:function(node,type){_865.add(node,"dojoDndItem"+type);},_removeItemClass:function(node,type){_865.remove(node,"dojoDndItem"+type);},onOverEvent:function(){this._changeState("Container","Over");},onOutEvent:function(){this._changeState("Container","");}});});},"url:dijit/templates/InlineEditBox.html":"<span data-dojo-attach-point=\"editNode\" role=\"presentation\" style=\"position: absolute; visibility:hidden\" class=\"dijitReset dijitInline\"\n\tdata-dojo-attach-event=\"onkeypress: _onKeyPress\"\n\t><span data-dojo-attach-point=\"editorPlaceholder\"></span\n\t><span data-dojo-attach-point=\"buttonContainer\"\n\t\t><button data-dojo-type=\"dijit.form.Button\" data-dojo-props=\"label: '${buttonSave}', 'class': 'saveButton'\"\n\t\t\tdata-dojo-attach-point=\"saveButton\" data-dojo-attach-event=\"onClick:save\"></button\n\t\t><button data-dojo-type=\"dijit.form.Button\" data-dojo-props=\"label: '${buttonCancel}', 'class': 'cancelButton'\"\n\t\t\tdata-dojo-attach-point=\"cancelButton\" data-dojo-attach-event=\"onClick:cancel\"></button\n\t></span\n></span>\n","dijit/_base/wai":function(){define("dijit/_base/wai",["dojo/dom-attr","dojo/_base/lang","..","../hccss"],function(_86d,lang,_86e){lang.mixin(_86e,{hasWaiRole:function(elem,role){var _86f=this.getWaiRole(elem);return role?(_86f.indexOf(role)>-1):(_86f.length>0);},getWaiRole:function(elem){return lang.trim((_86d.get(elem,"role")||"").replace("wairole:",""));},setWaiRole:function(elem,role){_86d.set(elem,"role",role);},removeWaiRole:function(elem,role){var _870=_86d.get(elem,"role");if(!_870){return;}if(role){var t=lang.trim((" "+_870+" ").replace(" "+role+" "," "));_86d.set(elem,"role",t);}else{elem.removeAttribute("role");}},hasWaiState:function(elem,_871){return elem.hasAttribute?elem.hasAttribute("aria-"+_871):!!elem.getAttribute("aria-"+_871);},getWaiState:function(elem,_872){return elem.getAttribute("aria-"+_872)||"";},setWaiState:function(elem,_873,_874){elem.setAttribute("aria-"+_873,_874);},removeWaiState:function(elem,_875){elem.removeAttribute("aria-"+_875);}});return _86e;});},"dijit/form/_FormSelectWidget":function(){define("dijit/form/_FormSelectWidget",["dojo/_base/array","dojo/aspect","dojo/data/util/sorter","dojo/_base/declare","dojo/dom","dojo/dom-class","dojo/_base/kernel","dojo/_base/lang","dojo/query","./_FormValueWidget"],function(_876,_877,_878,_879,dom,_87a,_87b,lang,_87c,_87d){return _879("dijit.form._FormSelectWidget",_87d,{multiple:false,options:null,store:null,query:null,queryOptions:null,onFetch:null,sortByLabel:true,loadChildrenOnOpen:false,getOptions:function(_87e){var _87f=_87e,opts=this.options||[],l=opts.length;if(_87f===undefined){return opts;}if(lang.isArray(_87f)){return _876.map(_87f,"return this.getOptions(item);",this);}if(lang.isObject(_87e)){if(!_876.some(this.options,function(o,idx){if(o===_87f||(o.value&&o.value===_87f.value)){_87f=idx;return true;}return false;})){_87f=-1;}}if(typeof _87f=="string"){for(var i=0;i<l;i++){if(opts[i].value===_87f){_87f=i;break;}}}if(typeof _87f=="number"&&_87f>=0&&_87f<l){return this.options[_87f];}return null;},addOption:function(_880){if(!lang.isArray(_880)){_880=[_880];}_876.forEach(_880,function(i){if(i&&lang.isObject(i)){this.options.push(i);}},this);this._loadChildren();},removeOption:function(_881){if(!lang.isArray(_881)){_881=[_881];}var _882=this.getOptions(_881);_876.forEach(_882,function(i){if(i){this.options=_876.filter(this.options,function(node){return (node.value!==i.value||node.label!==i.label);});this._removeOptionItem(i);}},this);this._loadChildren();},updateOption:function(_883){if(!lang.isArray(_883)){_883=[_883];}_876.forEach(_883,function(i){var _884=this.getOptions(i),k;if(_884){for(k in i){_884[k]=i[k];}}},this);this._loadChildren();},setStore:function(_885,_886,_887){var _888=this.store;_887=_887||{};if(_888!==_885){var h;while(h=this._notifyConnections.pop()){h.remove();}if(_885&&_885.getFeatures()["dojo.data.api.Notification"]){this._notifyConnections=[_877.after(_885,"onNew",lang.hitch(this,"_onNewItem"),true),_877.after(_885,"onDelete",lang.hitch(this,"_onDeleteItem"),true),_877.after(_885,"onSet",lang.hitch(this,"_onSetItem"),true)];}this._set("store",_885);}this._onChangeActive=false;if(this.options&&this.options.length){this.removeOption(this.options);}if(_885){this._loadingStore=true;_885.fetch(lang.delegate(_887,{onComplete:function(_889,opts){if(this.sortByLabel&&!_887.sort&&_889.length){_889.sort(_878.createSortFunction([{attribute:_885.getLabelAttributes(_889[0])[0]}],_885));}if(_887.onFetch){_889=_887.onFetch.call(this,_889,opts);}_876.forEach(_889,function(i){this._addOptionForItem(i);},this);this._loadingStore=false;this.set("value","_pendingValue" in this?this._pendingValue:_886);delete this._pendingValue;if(!this.loadChildrenOnOpen){this._loadChildren();}else{this._pseudoLoadChildren(_889);}this._fetchedWith=opts;this._lastValueReported=this.multiple?[]:null;this._onChangeActive=true;this.onSetStore();this._handleOnChange(this.value);},scope:this}));}else{delete this._fetchedWith;}return _888;},_setValueAttr:function(_88a,_88b){if(this._loadingStore){this._pendingValue=_88a;return;}var opts=this.getOptions()||[];if(!lang.isArray(_88a)){_88a=[_88a];}_876.forEach(_88a,function(i,idx){if(!lang.isObject(i)){i=i+"";}if(typeof i==="string"){_88a[idx]=_876.filter(opts,function(node){return node.value===i;})[0]||{value:"",label:""};}},this);_88a=_876.filter(_88a,function(i){return i&&i.value;});if(!this.multiple&&(!_88a[0]||!_88a[0].value)&&opts.length){_88a[0]=opts[0];}_876.forEach(opts,function(i){i.selected=_876.some(_88a,function(v){return v.value===i.value;});});var val=_876.map(_88a,function(i){return i.value;}),disp=_876.map(_88a,function(i){return i.label;});this._set("value",this.multiple?val:val[0]);this._setDisplay(this.multiple?disp:disp[0]);this._updateSelection();this._handleOnChange(this.value,_88b);},_getDisplayedValueAttr:function(){var val=this.get("value");if(!lang.isArray(val)){val=[val];}var ret=_876.map(this.getOptions(val),function(v){if(v&&"label" in v){return v.label;}else{if(v){return v.value;}}return null;},this);return this.multiple?ret:ret[0];},_loadChildren:function(){if(this._loadingStore){return;}_876.forEach(this._getChildren(),function(_88c){_88c.destroyRecursive();});_876.forEach(this.options,this._addOptionItem,this);this._updateSelection();},_updateSelection:function(){this._set("value",this._getValueFromOpts());var val=this.value;if(!lang.isArray(val)){val=[val];}if(val&&val[0]){_876.forEach(this._getChildren(),function(_88d){var _88e=_876.some(val,function(v){return _88d.option&&(v===_88d.option.value);});_87a.toggle(_88d.domNode,this.baseClass+"SelectedOption",_88e);_88d.domNode.setAttribute("aria-selected",_88e);},this);}},_getValueFromOpts:function(){var opts=this.getOptions()||[];if(!this.multiple&&opts.length){var opt=_876.filter(opts,function(i){return i.selected;})[0];if(opt&&opt.value){return opt.value;}else{opts[0].selected=true;return opts[0].value;}}else{if(this.multiple){return _876.map(_876.filter(opts,function(i){return i.selected;}),function(i){return i.value;})||[];}}return "";},_onNewItem:function(item,_88f){if(!_88f||!_88f.parent){this._addOptionForItem(item);}},_onDeleteItem:function(item){var _890=this.store;this.removeOption(_890.getIdentity(item));},_onSetItem:function(item){this.updateOption(this._getOptionObjForItem(item));},_getOptionObjForItem:function(item){var _891=this.store,_892=_891.getLabel(item),_893=(_892?_891.getIdentity(item):null);return {value:_893,label:_892,item:item};},_addOptionForItem:function(item){var _894=this.store;if(!_894.isItemLoaded(item)){_894.loadItem({item:item,onItem:function(i){this._addOptionForItem(i);},scope:this});return;}var _895=this._getOptionObjForItem(item);this.addOption(_895);},constructor:function(_896){this._oValue=(_896||{}).value||null;this._notifyConnections=[];},buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.focusNode,false);},_fillContent:function(){var opts=this.options;if(!opts){opts=this.options=this.srcNodeRef?_87c("> *",this.srcNodeRef).map(function(node){if(node.getAttribute("type")==="separator"){return {value:"",label:"",selected:false,disabled:false};}return {value:(node.getAttribute("data-"+_87b._scopeName+"-value")||node.getAttribute("value")),label:String(node.innerHTML),selected:node.getAttribute("selected")||false,disabled:node.getAttribute("disabled")||false};},this):[];}if(!this.value){this._set("value",this._getValueFromOpts());}else{if(this.multiple&&typeof this.value=="string"){this._set("value",this.value.split(","));}}},postCreate:function(){this.inherited(arguments);this.connect(this,"onChange","_updateSelection");this.connect(this,"startup","_loadChildren");this._setValueAttr(this.value,null);},startup:function(){this.inherited(arguments);var _897=this.store,_898={};_876.forEach(["query","queryOptions","onFetch"],function(i){if(this[i]){_898[i]=this[i];}delete this[i];},this);if(_897&&_897.getFeatures()["dojo.data.api.Identity"]){this.store=null;this.setStore(_897,this._oValue,_898);}},destroy:function(){var h;while(h=this._notifyConnections.pop()){h.remove();}this.inherited(arguments);},_addOptionItem:function(){},_removeOptionItem:function(){},_setDisplay:function(){},_getChildren:function(){return [];},_getSelectedOptionsAttr:function(){return this.getOptions(this.get("value"));},_pseudoLoadChildren:function(){},onSetStore:function(){}});});},"dijit/form/Select":function(){require({cache:{"url:dijit/form/templates/Select.html":"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdata-dojo-attach-point=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\trole=\"combobox\" aria-haspopup=\"true\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\" role=\"presentation\"\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" data-dojo-attach-point=\"containerNode,_popupStateNode\"></span\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} data-dojo-attach-point=\"valueNode\" value=\"${value}\" aria-hidden=\"true\"\n\t\t/></td><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdata-dojo-attach-point=\"titleNode\" role=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">&#9660;</div\n\t\t></td\n\t></tr></tbody\n></table>\n"}});define("dijit/form/Select",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/_base/event","dojo/i18n","dojo/_base/lang","./_FormSelectWidget","../_HasDropDown","../Menu","../MenuItem","../MenuSeparator","../Tooltip","dojo/text!./templates/Select.html","dojo/i18n!./nls/validate"],function(_899,_89a,_89b,_89c,_89d,_89e,_89f,i18n,lang,_8a0,_8a1,Menu,_8a2,_8a3,_8a4,_8a5){var _8a6=_89a("dijit.form._SelectMenu",Menu,{buildRendering:function(){this.inherited(arguments);var o=(this.menuTableNode=this.domNode);var n=(this.domNode=_89d.create("div",{style:{overflowX:"hidden",overflowY:"scroll"}}));if(o.parentNode){o.parentNode.replaceChild(n,o);}_89c.remove(o,"dijitMenuTable");n.className=o.className+" dijitSelectMenu";o.className="dijitReset dijitMenuTable";o.setAttribute("role","listbox");n.setAttribute("role","presentation");n.appendChild(o);},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onmousemove",_89f.stop);},resize:function(mb){if(mb){_89e.setMarginBox(this.domNode,mb);if("w" in mb){this.menuTableNode.style.width="100%";}}}});var _8a7=_89a("dijit.form.Select",[_8a0,_8a1],{baseClass:"dijitSelect",templateString:_8a5,required:false,state:"",message:"",tooltipPosition:[],emptyLabel:"&#160;",_isLoaded:false,_childrenLoaded:false,_fillContent:function(){this.inherited(arguments);if(this.options.length&&!this.value&&this.srcNodeRef){var si=this.srcNodeRef.selectedIndex||0;this.value=this.options[si>=0?si:0].value;}this.dropDown=new _8a6({id:this.id+"_menu"});_89c.add(this.dropDown.domNode,this.baseClass+"Menu");},_getMenuItemForOption:function(_8a8){if(!_8a8.value&&!_8a8.label){return new _8a3();}else{var _8a9=lang.hitch(this,"_setValueAttr",_8a8);var item=new _8a2({option:_8a8,label:_8a8.label||this.emptyLabel,onClick:_8a9,disabled:_8a8.disabled||false});item.focusNode.setAttribute("role","listitem");return item;}},_addOptionItem:function(_8aa){if(this.dropDown){this.dropDown.addChild(this._getMenuItemForOption(_8aa));}},_getChildren:function(){if(!this.dropDown){return [];}return this.dropDown.getChildren();},_loadChildren:function(_8ab){if(_8ab===true){if(this.dropDown){delete this.dropDown.focusedChild;}if(this.options.length){this.inherited(arguments);}else{_899.forEach(this._getChildren(),function(_8ac){_8ac.destroyRecursive();});var item=new _8a2({label:"&#160;"});this.dropDown.addChild(item);}}else{this._updateSelection();}this._isLoaded=false;this._childrenLoaded=true;if(!this._loadingStore){this._setValueAttr(this.value);}},_setValueAttr:function(_8ad){this.inherited(arguments);_89b.set(this.valueNode,"value",this.get("value"));this.validate(this.focused);},_setDisabledAttr:function(_8ae){this.inherited(arguments);this.validate(this.focused);},_setRequiredAttr:function(_8af){this._set("required",_8af);this.focusNode.setAttribute("aria-required",_8af);this.validate(this.focused);},_setDisplay:function(_8b0){var lbl=_8b0||this.emptyLabel;this.containerNode.innerHTML="<span class=\"dijitReset dijitInline "+this.baseClass+"Label\">"+lbl+"</span>";this.focusNode.setAttribute("aria-valuetext",lbl);},validate:function(_8b1){var _8b2=this.disabled||this.isValid(_8b1);this._set("state",_8b2?"":"Incomplete");this.focusNode.setAttribute("aria-invalid",_8b2?"false":"true");var _8b3=_8b2?"":this._missingMsg;if(_8b3&&this.focused&&this._hasBeenBlurred){_8a4.show(_8b3,this.domNode,this.tooltipPosition,!this.isLeftToRight());}else{_8a4.hide(this.domNode);}this._set("message",_8b3);return _8b2;},isValid:function(){return (!this.required||this.value===0||!(/^\s*$/.test(this.value||"")));},reset:function(){this.inherited(arguments);_8a4.hide(this.domNode);this.validate(this.focused);},postMixInProperties:function(){this.inherited(arguments);this._missingMsg=i18n.getLocalization("dijit.form","validate",this.lang).missingMessage;},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onmousemove",_89f.stop);},_setStyleAttr:function(_8b4){this.inherited(arguments);_89c.toggle(this.domNode,this.baseClass+"FixedWidth",!!this.domNode.style.width);},isLoaded:function(){return this._isLoaded;},loadDropDown:function(_8b5){this._loadChildren(true);this._isLoaded=true;_8b5();},closeDropDown:function(){this.inherited(arguments);if(this.dropDown&&this.dropDown.menuTableNode){this.dropDown.menuTableNode.style.width="";}},uninitialize:function(_8b6){if(this.dropDown&&!this.dropDown._destroyed){this.dropDown.destroyRecursive(_8b6);delete this.dropDown;}this.inherited(arguments);},_onFocus:function(){this.validate(true);this.inherited(arguments);},_onBlur:function(){_8a4.hide(this.domNode);this.inherited(arguments);}});_8a7._Menu=_8a6;return _8a7;});},"dojo/store/util/QueryResults":function(){define("dojo/store/util/QueryResults",["../../_base/array","../../_base/lang","../../_base/Deferred"],function(_8b7,lang,_8b8){var util=lang.getObject("dojo.store.util",true);util.QueryResults=function(_8b9){if(!_8b9){return _8b9;}if(_8b9.then){_8b9=lang.delegate(_8b9);}function _8ba(_8bb){if(!_8b9[_8bb]){_8b9[_8bb]=function(){var args=arguments;return _8b8.when(_8b9,function(_8bc){Array.prototype.unshift.call(args,_8bc);return util.QueryResults(_8b7[_8bb].apply(_8b7,args));});};}};_8ba("forEach");_8ba("filter");_8ba("map");if(!_8b9.total){_8b9.total=_8b8.when(_8b9,function(_8bd){return _8bd.length;});}return _8b9;};return util.QueryResults;});},"dijit/form/_ListBase":function(){define("dijit/form/_ListBase",["dojo/_base/declare","dojo/window"],function(_8be,_8bf){return _8be("dijit.form._ListBase",null,{selected:null,_getTarget:function(evt){var tgt=evt.target;var _8c0=this.containerNode;if(tgt==_8c0||tgt==this.domNode){return null;}while(tgt&&tgt.parentNode!=_8c0){tgt=tgt.parentNode;}return tgt;},selectFirstNode:function(){var _8c1=this.containerNode.firstChild;while(_8c1&&_8c1.style.display=="none"){_8c1=_8c1.nextSibling;}this._setSelectedAttr(_8c1);},selectLastNode:function(){var last=this.containerNode.lastChild;while(last&&last.style.display=="none"){last=last.previousSibling;}this._setSelectedAttr(last);},selectNextNode:function(){var _8c2=this._getSelectedAttr();if(!_8c2){this.selectFirstNode();}else{var next=_8c2.nextSibling;while(next&&next.style.display=="none"){next=next.nextSibling;}if(!next){this.selectFirstNode();}else{this._setSelectedAttr(next);}}},selectPreviousNode:function(){var _8c3=this._getSelectedAttr();if(!_8c3){this.selectLastNode();}else{var prev=_8c3.previousSibling;while(prev&&prev.style.display=="none"){prev=prev.previousSibling;}if(!prev){this.selectLastNode();}else{this._setSelectedAttr(prev);}}},_setSelectedAttr:function(node){if(this.selected!=node){var _8c4=this._getSelectedAttr();if(_8c4){this.onDeselect(_8c4);this.selected=null;}if(node&&node.parentNode==this.containerNode){this.selected=node;_8bf.scrollIntoView(node);this.onSelect(node);}}else{if(node){this.onSelect(node);}}},_getSelectedAttr:function(){var v=this.selected;return (v&&v.parentNode==this.containerNode)?v:(this.selected=null);}});});},"dijit/form/_FormWidget":function(){define("dijit/form/_FormWidget",["dojo/_base/declare","dojo/_base/kernel","dojo/ready","../_Widget","../_CssStateMixin","../_TemplatedMixin","./_FormWidgetMixin"],function(_8c5,_8c6,_8c7,_8c8,_8c9,_8ca,_8cb){if(!_8c6.isAsync){_8c7(0,function(){var _8cc=["dijit/form/_FormValueWidget"];require(_8cc);});}return _8c5("dijit.form._FormWidget",[_8c8,_8ca,_8c9,_8cb],{setDisabled:function(_8cd){_8c6.deprecated("setDisabled("+_8cd+") is deprecated. Use set('disabled',"+_8cd+") instead.","","2.0");this.set("disabled",_8cd);},setValue:function(_8ce){_8c6.deprecated("dijit.form._FormWidget:setValue("+_8ce+") is deprecated. Use set('value',"+_8ce+") instead.","","2.0");this.set("value",_8ce);},getValue:function(){_8c6.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},postMixInProperties:function(){this.nameAttrSetting=this.name?("name=\""+this.name.replace(/'/g,"&quot;")+"\""):"";this.inherited(arguments);},_setTypeAttr:null});});},"dojo/DeferredList":function(){define("dojo/DeferredList",["./_base/kernel","./_base/Deferred","./_base/array"],function(dojo,_8cf,_8d0){dojo.DeferredList=function(list,_8d1,_8d2,_8d3,_8d4){var _8d5=[];_8cf.call(this);var self=this;if(list.length===0&&!_8d1){this.resolve([0,[]]);}var _8d6=0;_8d0.forEach(list,function(item,i){item.then(function(_8d7){if(_8d1){self.resolve([i,_8d7]);}else{_8d8(true,_8d7);}},function(_8d9){if(_8d2){self.reject(_8d9);}else{_8d8(false,_8d9);}if(_8d3){return null;}throw _8d9;});function _8d8(_8da,_8db){_8d5[i]=[_8da,_8db];_8d6++;if(_8d6===list.length){self.resolve(_8d5);}};});};dojo.DeferredList.prototype=new _8cf();dojo.DeferredList.prototype.gatherResults=function(_8dc){var d=new dojo.DeferredList(_8dc,false,true,false);d.addCallback(function(_8dd){var ret=[];_8d0.forEach(_8dd,function(_8de){ret.push(_8de[1]);});return ret;});return d;};return dojo.DeferredList;});},"dojo/dnd/common":function(){define("dojo/dnd/common",["../main"],function(dojo){dojo.getObject("dnd",true,dojo);dojo.dnd.getCopyKeyState=dojo.isCopyKey;dojo.dnd._uniqueId=0;dojo.dnd.getUniqueId=function(){var id;do{id=dojo._scopeName+"Unique"+(++dojo.dnd._uniqueId);}while(dojo.byId(id));return id;};dojo.dnd._empty={};dojo.dnd.isFormElement=function(e){var t=e.target;if(t.nodeType==3){t=t.parentNode;}return " button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0;};return dojo.dnd;});},"dijit/_base/place":function(){define("dijit/_base/place",["dojo/_base/array","dojo/_base/lang","dojo/window","../place",".."],function(_8df,lang,_8e0,_8e1,_8e2){_8e2.getViewport=function(){return _8e0.getBox();};_8e2.placeOnScreen=_8e1.at;_8e2.placeOnScreenAroundElement=function(node,_8e3,_8e4,_8e5){var _8e6;if(lang.isArray(_8e4)){_8e6=_8e4;}else{_8e6=[];for(var key in _8e4){_8e6.push({aroundCorner:key,corner:_8e4[key]});}}return _8e1.around(node,_8e3,_8e6,true,_8e5);};_8e2.placeOnScreenAroundNode=_8e2.placeOnScreenAroundElement;_8e2.placeOnScreenAroundRectangle=_8e2.placeOnScreenAroundElement;_8e2.getPopupAroundAlignment=function(_8e7,_8e8){var _8e9={};_8df.forEach(_8e7,function(pos){var ltr=_8e8;switch(pos){case "after":_8e9[_8e8?"BR":"BL"]=_8e8?"BL":"BR";break;case "before":_8e9[_8e8?"BL":"BR"]=_8e8?"BR":"BL";break;case "below-alt":ltr=!ltr;case "below":_8e9[ltr?"BL":"BR"]=ltr?"TL":"TR";_8e9[ltr?"BR":"BL"]=ltr?"TR":"TL";break;case "above-alt":ltr=!ltr;case "above":default:_8e9[ltr?"TL":"TR"]=ltr?"BL":"BR";_8e9[ltr?"TR":"TL"]=ltr?"BR":"BL";break;}});return _8e9;};return _8e2;});},"dijit/MenuSeparator":function(){require({cache:{"url:dijit/templates/MenuSeparator.html":"<tr class=\"dijitMenuSeparator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>"}});define("dijit/MenuSeparator",["dojo/_base/declare","dojo/dom","./_WidgetBase","./_TemplatedMixin","./_Contained","dojo/text!./templates/MenuSeparator.html"],function(_8ea,dom,_8eb,_8ec,_8ed,_8ee){return _8ea("dijit.MenuSeparator",[_8eb,_8ec,_8ed],{templateString:_8ee,buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});});},"dijit/form/_ComboBoxMenu":function(){define("dijit/form/_ComboBoxMenu",["dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/keys","../_WidgetBase","../_TemplatedMixin","./_ComboBoxMenuMixin","./_ListMouseMixin"],function(_8ef,_8f0,_8f1,_8f2,keys,_8f3,_8f4,_8f5,_8f6){return _8ef("dijit.form._ComboBoxMenu",[_8f3,_8f4,_8f6,_8f5],{templateString:"<div class='dijitReset dijitMenu' data-dojo-attach-point='containerNode' style='overflow: auto; overflow-x: hidden;'>"+"<div class='dijitMenuItem dijitMenuPreviousButton' data-dojo-attach-point='previousButton' role='option'></div>"+"<div class='dijitMenuItem dijitMenuNextButton' data-dojo-attach-point='nextButton' role='option'></div>"+"</div>",baseClass:"dijitComboBoxMenu",postCreate:function(){this.inherited(arguments);if(!this.isLeftToRight()){_8f0.add(this.previousButton,"dijitMenuItemRtl");_8f0.add(this.nextButton,"dijitMenuItemRtl");}},_createMenuItem:function(){return _8f1.create("div",{"class":"dijitReset dijitMenuItem"+(this.isLeftToRight()?"":" dijitMenuItemRtl"),role:"option"});},onHover:function(node){_8f0.add(node,"dijitMenuItemHover");},onUnhover:function(node){_8f0.remove(node,"dijitMenuItemHover");},onSelect:function(node){_8f0.add(node,"dijitMenuItemSelected");},onDeselect:function(node){_8f0.remove(node,"dijitMenuItemSelected");},_page:function(up){var _8f7=0;var _8f8=this.domNode.scrollTop;var _8f9=_8f2.get(this.domNode,"height");if(!this.getHighlightedOption()){this.selectNextNode();}while(_8f7<_8f9){var _8fa=this.getHighlightedOption();if(up){if(!_8fa.previousSibling||_8fa.previousSibling.style.display=="none"){break;}this.selectPreviousNode();}else{if(!_8fa.nextSibling||_8fa.nextSibling.style.display=="none"){break;}this.selectNextNode();}var _8fb=this.domNode.scrollTop;_8f7+=(_8fb-_8f8)*(up?-1:1);_8f8=_8fb;}},handleKey:function(evt){switch(evt.charOrCode){case keys.DOWN_ARROW:this.selectNextNode();return false;case keys.PAGE_DOWN:this._page(false);return false;case keys.UP_ARROW:this.selectPreviousNode();return false;case keys.PAGE_UP:this._page(true);return false;default:return true;}}});});},"url:dijit/layout/templates/ScrollingTabController.html":"<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerMenuButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\"\n\t\t\tdata-dojo-props=\"containerId: '${containerId}', iconClass: 'dijitTabStripMenuIcon',\n\t\t\t\t\tdropDownPosition: ['below-alt', 'above-alt']\"\n\t\t\tdata-dojo-attach-point=\"_menuBtn\" showLabel=\"false\" title=\"\">&#9660;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideLeftIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_leftBtn\" data-dojo-attach-event=\"onClick: doSlideLeft\">&#9664;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideRightIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_rightBtn\" data-dojo-attach-event=\"onClick: doSlideRight\">&#9654;</div>\n\t<div class='dijitTabListWrapper' data-dojo-attach-point='tablistWrapper'>\n\t\t<div role='tablist' data-dojo-attach-event='onkeypress:onkeypress'\n\t\t\t\tdata-dojo-attach-point='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>","dijit/Dialog":function(){require({cache:{"url:dijit/templates/Dialog.html":"<div class=\"dijitDialog\" role=\"dialog\" aria-labelledby=\"${id}_title\">\n\t<div data-dojo-attach-point=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span data-dojo-attach-point=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span data-dojo-attach-point=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" data-dojo-attach-event=\"ondijitclick: onCancel\" title=\"${buttonCancel}\" role=\"button\" tabIndex=\"-1\">\n\t\t<span data-dojo-attach-point=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"}});define("dijit/Dialog",["require","dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/Deferred","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/_base/fx","dojo/i18n","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/ready","dojo/_base/sniff","dojo/_base/window","dojo/window","dojo/dnd/Moveable","dojo/dnd/TimedMoveable","./focus","./_base/manager","./_Widget","./_TemplatedMixin","./_CssStateMixin","./form/_FormMixin","./_DialogMixin","./DialogUnderlay","./layout/ContentPane","dojo/text!./templates/Dialog.html",".","dojo/i18n!./nls/common"],function(_8fc,_8fd,_8fe,_8ff,_900,dom,_901,_902,_903,_904,fx,i18n,_905,keys,lang,on,_906,has,win,_907,_908,_909,_90a,_90b,_90c,_90d,_90e,_90f,_910,_911,_912,_913,_914){var _915=_8ff("dijit._DialogBase",[_90d,_90f,_910,_90e],{templateString:_913,baseClass:"dijitDialog",cssStateNodes:{closeButtonNode:"dijitDialogCloseIcon"},_setTitleAttr:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],open:false,duration:_90b.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,"aria-describedby":"",postMixInProperties:function(){var _916=i18n.getLocalization("dijit","common");lang.mixin(this,_916);this.inherited(arguments);},postCreate:function(){_903.set(this.domNode,{display:"none",position:"absolute"});win.body().appendChild(this.domNode);this.inherited(arguments);this.connect(this,"onExecute","hide");this.connect(this,"onCancel","hide");this._modalconnects=[];},onLoad:function(){this._position();if(this.autofocus&&_917.isTop(this)){this._getFocusItems(this.domNode);_90a.focus(this._firstFocusItem);}this.inherited(arguments);},_endDrag:function(){var _918=_902.position(this.domNode),_919=_907.getBox();_918.y=Math.min(Math.max(_918.y,0),(_919.h-_918.h));_918.x=Math.min(Math.max(_918.x,0),(_919.w-_918.w));this._relativePosition=_918;this._position();},_setup:function(){var node=this.domNode;if(this.titleBar&&this.draggable){this._moveable=new ((has("ie")==6)?_909:_908)(node,{handle:this.titleBar});this.connect(this._moveable,"onMoveStop","_endDrag");}else{_901.add(node,"dijitDialogFixed");}this.underlayAttrs={dialogId:this.id,"class":_8fd.map(this["class"].split(/\s/),function(s){return s+"_underlay";}).join(" ")};},_size:function(){this._checkIfSingleChild();if(this._singleChild){if(this._singleChildOriginalStyle){this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle;}delete this._singleChildOriginalStyle;}else{_903.set(this.containerNode,{width:"auto",height:"auto"});}var bb=_902.position(this.domNode);var _91a=_907.getBox();if(bb.w>=_91a.w||bb.h>=_91a.h){var w=Math.min(bb.w,Math.floor(_91a.w*0.75)),h=Math.min(bb.h,Math.floor(_91a.h*0.75));if(this._singleChild&&this._singleChild.resize){this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;this._singleChild.resize({w:w,h:h});}else{_903.set(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"});}}else{if(this._singleChild&&this._singleChild.resize){this._singleChild.resize();}}},_position:function(){if(!_901.contains(win.body(),"dojoMove")){var node=this.domNode,_91b=_907.getBox(),p=this._relativePosition,bb=p?null:_902.position(node),l=Math.floor(_91b.l+(p?p.x:(_91b.w-bb.w)/2)),t=Math.floor(_91b.t+(p?p.y:(_91b.h-bb.h)/2));_903.set(node,{left:l+"px",top:t+"px"});}},_onKey:function(evt){if(evt.charOrCode){var node=evt.target;if(evt.charOrCode===keys.TAB){this._getFocusItems(this.domNode);}var _91c=(this._firstFocusItem==this._lastFocusItem);if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===keys.TAB){if(!_91c){_90a.focus(this._lastFocusItem);}_904.stop(evt);}else{if(node==this._lastFocusItem&&evt.charOrCode===keys.TAB&&!evt.shiftKey){if(!_91c){_90a.focus(this._firstFocusItem);}_904.stop(evt);}else{while(node){if(node==this.domNode||_901.contains(node,"dijitPopup")){if(evt.charOrCode==keys.ESCAPE){this.onCancel();}else{return;}}node=node.parentNode;}if(evt.charOrCode!==keys.TAB){_904.stop(evt);}else{if(!has("opera")){try{this._firstFocusItem.focus();}catch(e){}}}}}}},show:function(){if(this.open){return;}if(!this._started){this.startup();}if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true;}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();}this._modalconnects.push(on(window,"scroll",lang.hitch(this,"layout")));this._modalconnects.push(on(window,"resize",lang.hitch(this,function(){var _91d=_907.getBox();if(!this._oldViewport||_91d.h!=this._oldViewport.h||_91d.w!=this._oldViewport.w){this.layout();this._oldViewport=_91d;}})));this._modalconnects.push(on(this.domNode,_8fe._keypress,lang.hitch(this,"_onKey")));_903.set(this.domNode,{opacity:0,display:""});this._set("open",true);this._onShow();this._size();this._position();var _91e;this._fadeInDeferred=new _900(lang.hitch(this,function(){_91e.stop();delete this._fadeInDeferred;}));_91e=fx.fadeIn({node:this.domNode,duration:this.duration,beforeBegin:lang.hitch(this,function(){_917.show(this,this.underlayAttrs);}),onEnd:lang.hitch(this,function(){if(this.autofocus&&_917.isTop(this)){this._getFocusItems(this.domNode);_90a.focus(this._firstFocusItem);}this._fadeInDeferred.callback(true);delete this._fadeInDeferred;})}).play();return this._fadeInDeferred;},hide:function(){if(!this._alreadyInitialized){return;}if(this._fadeInDeferred){this._fadeInDeferred.cancel();}var _91f;this._fadeOutDeferred=new _900(lang.hitch(this,function(){_91f.stop();delete this._fadeOutDeferred;}));this._fadeOutDeferred.then(lang.hitch(this,"onHide"));_91f=fx.fadeOut({node:this.domNode,duration:this.duration,onEnd:lang.hitch(this,function(){this.domNode.style.display="none";_917.hide(this);this._fadeOutDeferred.callback(true);delete this._fadeOutDeferred;})}).play();if(this._scrollConnected){this._scrollConnected=false;}var h;while(h=this._modalconnects.pop()){h.remove();}if(this._relativePosition){delete this._relativePosition;}this._set("open",false);return this._fadeOutDeferred;},layout:function(){if(this.domNode.style.display!="none"){if(_914._underlay){_914._underlay.layout();}this._position();}},destroy:function(){if(this._fadeInDeferred){this._fadeInDeferred.cancel();}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();}if(this._moveable){this._moveable.destroy();}var h;while(h=this._modalconnects.pop()){h.remove();}_917.hide(this);this.inherited(arguments);}});var _920=_8ff("dijit.Dialog",[_912,_915],{});_920._DialogBase=_915;var _917=_920._DialogLevelManager={_beginZIndex:950,show:function(_921,_922){ds[ds.length-1].focus=_90a.curNode;var _923=_914._underlay;if(!_923||_923._destroyed){_923=_914._underlay=new _911(_922);}else{_923.set(_921.underlayAttrs);}var _924=ds[ds.length-1].dialog?ds[ds.length-1].zIndex+2:_920._DialogLevelManager._beginZIndex;if(ds.length==1){_923.show();}_903.set(_914._underlay.domNode,"zIndex",_924-1);_903.set(_921.domNode,"zIndex",_924);ds.push({dialog:_921,underlayAttrs:_922,zIndex:_924});},hide:function(_925){if(ds[ds.length-1].dialog==_925){ds.pop();var pd=ds[ds.length-1];if(ds.length==1){if(!_914._underlay._destroyed){_914._underlay.hide();}}else{_903.set(_914._underlay.domNode,"zIndex",pd.zIndex-1);_914._underlay.set(pd.underlayAttrs);}if(_925.refocus){var _926=pd.focus;if(pd.dialog&&(!_926||!dom.isDescendant(_926,pd.dialog.domNode))){pd.dialog._getFocusItems(pd.dialog.domNode);_926=pd.dialog._firstFocusItem;}if(_926){try{_926.focus();}catch(e){}}}}else{var idx=_8fd.indexOf(_8fd.map(ds,function(elem){return elem.dialog;}),_925);if(idx!=-1){ds.splice(idx,1);}}},isTop:function(_927){return ds[ds.length-1].dialog==_927;}};var ds=_920._dialogStack=[{dialog:null,focus:null,underlayAttrs:null}];if(!_905.isAsync){_906(0,function(){var _928=["dijit/TooltipDialog"];_8fc(_928);});}return _920;});},"dijit/_base/focus":function(){define("dijit/_base/focus",["dojo/_base/array","dojo/dom","dojo/_base/lang","dojo/topic","dojo/_base/window","../focus",".."],function(_929,dom,lang,_92a,win,_92b,_92c){lang.mixin(_92c,{_curFocus:null,_prevFocus:null,isCollapsed:function(){return _92c.getBookmark().isCollapsed;},getBookmark:function(){var bm,rg,tg,sel=win.doc.selection,cf=_92b.curNode;if(win.global.getSelection){sel=win.global.getSelection();if(sel){if(sel.isCollapsed){tg=cf?cf.tagName:"";if(tg){tg=tg.toLowerCase();if(tg=="textarea"||(tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text"))){sel={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true};return {isCollapsed:(sel.end<=sel.start),mark:sel};}}bm={isCollapsed:true};if(sel.rangeCount){bm.mark=sel.getRangeAt(0).cloneRange();}}else{rg=sel.getRangeAt(0);bm={isCollapsed:false,mark:rg.cloneRange()};}}}else{if(sel){tg=cf?cf.tagName:"";tg=tg.toLowerCase();if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input")){if(sel.type&&sel.type.toLowerCase()=="none"){return {isCollapsed:true,mark:null};}else{rg=sel.createRange();return {isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}};}}bm={};try{rg=sel.createRange();bm.isCollapsed=!(sel.type=="Text"?rg.htmlText.length:rg.length);}catch(e){bm.isCollapsed=true;return bm;}if(sel.type.toUpperCase()=="CONTROL"){if(rg.length){bm.mark=[];var i=0,len=rg.length;while(i<len){bm.mark.push(rg.item(i++));}}else{bm.isCollapsed=true;bm.mark=null;}}else{bm.mark=rg.getBookmark();}}else{console.warn("No idea how to store the current selection for this browser!");}}return bm;},moveToBookmark:function(_92d){var _92e=win.doc,mark=_92d.mark;if(mark){if(win.global.getSelection){var sel=win.global.getSelection();if(sel&&sel.removeAllRanges){if(mark.pRange){var n=mark.node;n.selectionStart=mark.start;n.selectionEnd=mark.end;}else{sel.removeAllRanges();sel.addRange(mark);}}else{console.warn("No idea how to restore selection for this browser!");}}else{if(_92e.selection&&mark){var rg;if(mark.pRange){rg=mark.range;}else{if(lang.isArray(mark)){rg=_92e.body.createControlRange();_929.forEach(mark,function(n){rg.addElement(n);});}else{rg=_92e.body.createTextRange();rg.moveToBookmark(mark);}}rg.select();}}}},getFocus:function(menu,_92f){var node=!_92b.curNode||(menu&&dom.isDescendant(_92b.curNode,menu.domNode))?_92c._prevFocus:_92b.curNode;return {node:node,bookmark:node&&(node==_92b.curNode)&&win.withGlobal(_92f||win.global,_92c.getBookmark),openedForWindow:_92f};},_activeStack:[],registerIframe:function(_930){return _92b.registerIframe(_930);},unregisterIframe:function(_931){_931&&_931.remove();},registerWin:function(_932,_933){return _92b.registerWin(_932,_933);},unregisterWin:function(_934){_934&&_934.remove();}});_92b.focus=function(_935){if(!_935){return;}var node="node" in _935?_935.node:_935,_936=_935.bookmark,_937=_935.openedForWindow,_938=_936?_936.isCollapsed:false;if(node){var _939=(node.tagName.toLowerCase()=="iframe")?node.contentWindow:node;if(_939&&_939.focus){try{_939.focus();}catch(e){}}_92b._onFocusNode(node);}if(_936&&win.withGlobal(_937||win.global,_92c.isCollapsed)&&!_938){if(_937){_937.focus();}try{win.withGlobal(_937||win.global,_92c.moveToBookmark,null,[_936]);}catch(e2){}}};_92b.watch("curNode",function(name,_93a,_93b){_92c._curFocus=_93b;_92c._prevFocus=_93a;if(_93b){_92a.publish("focusNode",_93b);}});_92b.watch("activeStack",function(name,_93c,_93d){_92c._activeStack=_93d;});_92b.on("widget-blur",function(_93e,by){_92a.publish("widgetBlur",_93e,by);});_92b.on("widget-focus",function(_93f,by){_92a.publish("widgetFocus",_93f,by);});return _92c;});},"dijit/tree/dndSource":function(){define("dijit/tree/dndSource",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/_base/lang","dojo/on","dojo/touch","dojo/topic","dojo/dnd/Manager","./_dndSelector"],function(_940,_941,_942,_943,_944,lang,on,_945,_946,_947,_948){return _942("dijit.tree.dndSource",_948,{isSource:true,accept:["text","treeNode"],copyOnly:false,dragThreshold:5,betweenThreshold:0,constructor:function(tree,_949){if(!_949){_949={};}lang.mixin(this,_949);this.isSource=typeof _949.isSource=="undefined"?true:_949.isSource;var type=_949.accept instanceof Array?_949.accept:["text","treeNode"];this.accept=null;if(type.length){this.accept={};for(var i=0;i<type.length;++i){this.accept[type[i]]=1;}}this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.dropPosition="";this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource){_943.add(this.node,"dojoDndSource");}this.targetState="";if(this.accept){_943.add(this.node,"dojoDndTarget");}this.topics=[_946.subscribe("/dnd/source/over",lang.hitch(this,"onDndSourceOver")),_946.subscribe("/dnd/start",lang.hitch(this,"onDndStart")),_946.subscribe("/dnd/drop",lang.hitch(this,"onDndDrop")),_946.subscribe("/dnd/cancel",lang.hitch(this,"onDndCancel"))];},checkAcceptance:function(){return true;},copyState:function(_94a){return this.copyOnly||_94a;},destroy:function(){this.inherited(arguments);var h;while(h=this.topics.pop()){h.remove();}this.targetAnchor=null;},_onDragMouse:function(e){var m=_947.manager(),_94b=this.targetAnchor,_94c=this.current,_94d=this.dropPosition;var _94e="Over";if(_94c&&this.betweenThreshold>0){if(!this.targetBox||_94b!=_94c){this.targetBox=_944.position(_94c.rowNode,true);}if((e.pageY-this.targetBox.y)<=this.betweenThreshold){_94e="Before";}else{if((e.pageY-this.targetBox.y)>=(this.targetBox.h-this.betweenThreshold)){_94e="After";}}}if(_94c!=_94b||_94e!=_94d){if(_94b){this._removeItemClass(_94b.rowNode,_94d);}if(_94c){this._addItemClass(_94c.rowNode,_94e);}if(!_94c){m.canDrop(false);}else{if(_94c==this.tree.rootNode&&_94e!="Over"){m.canDrop(false);}else{var _94f=this.tree.model,_950=false;if(m.source==this){for(var _951 in this.selection){var _952=this.selection[_951];if(_952.item===_94c.item){_950=true;break;}}}if(_950){m.canDrop(false);}else{if(this.checkItemAcceptance(_94c.rowNode,m.source,_94e.toLowerCase())&&!this._isParentChildDrop(m.source,_94c.rowNode)){m.canDrop(true);}else{m.canDrop(false);}}}}this.targetAnchor=_94c;this.dropPosition=_94e;}},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}this.inherited(arguments);var m=_947.manager();if(this.isDragging){this._onDragMouse(e);}else{if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>=this.dragThreshold||Math.abs(e.pageY-this._lastY)>=this.dragThreshold)){var _953=this.getSelectedTreeNodes();if(_953.length){if(_953.length>1){var seen=this.selection,i=0,r=[],n,p;nextitem:while((n=_953[i++])){for(p=n.getParent();p&&p!==this.tree;p=p.getParent()){if(seen[p.id]){continue nextitem;}}r.push(n);}_953=r;}_953=_940.map(_953,function(n){return n.domNode;});m.startDrag(this,_953,this.copyState(_941.isCopyKey(e)));}}}},onMouseDown:function(e){this.mouseDown=true;this.mouseButton=e.button;this._lastX=e.pageX;this._lastY=e.pageY;this.inherited(arguments);},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;this.inherited(arguments);}},onMouseOut:function(){this.inherited(arguments);this._unmarkTargetAnchor();},checkItemAcceptance:function(){return true;},onDndSourceOver:function(_954){if(this!=_954){this.mouseDown=false;this._unmarkTargetAnchor();}else{if(this.isDragging){var m=_947.manager();m.canDrop(false);}}},onDndStart:function(_955,_956,copy){if(this.isSource){this._changeState("Source",this==_955?(copy?"Copied":"Moved"):"");}var _957=this.checkAcceptance(_955,_956);this._changeState("Target",_957?"":"Disabled");if(this==_955){_947.manager().overSource(this);}this.isDragging=true;},itemCreator:function(_958){return _940.map(_958,function(node){return {"id":node.id,"name":node.textContent||node.innerText||""};});},onDndDrop:function(_959,_95a,copy){if(this.containerState=="Over"){var tree=this.tree,_95b=tree.model,_95c=this.targetAnchor;this.isDragging=false;var _95d;var _95e;_95d=(_95c&&_95c.item)||tree.item;if(this.dropPosition=="Before"||this.dropPosition=="After"){_95d=(_95c.getParent()&&_95c.getParent().item)||tree.item;_95e=_95c.getIndexInParent();if(this.dropPosition=="After"){_95e=_95c.getIndexInParent()+1;}}else{_95d=(_95c&&_95c.item)||tree.item;}var _95f;_940.forEach(_95a,function(node,idx){var _960=_959.getItem(node.id);if(_940.indexOf(_960.type,"treeNode")!=-1){var _961=_960.data,_962=_961.item,_963=_961.getParent().item;}if(_959==this){if(typeof _95e=="number"){if(_95d==_963&&_961.getIndexInParent()<_95e){_95e-=1;}}_95b.pasteItem(_962,_963,_95d,copy,_95e);}else{if(_95b.isItem(_962)){_95b.pasteItem(_962,_963,_95d,copy,_95e);}else{if(!_95f){_95f=this.itemCreator(_95a,_95c.rowNode,_959);}_95b.newItem(_95f[idx],_95d,_95e);}}},this);this.tree._expandNode(_95c);}this.onDndCancel();},onDndCancel:function(){this._unmarkTargetAnchor();this.isDragging=false;this.mouseDown=false;delete this.mouseButton;this._changeState("Source","");this._changeState("Target","");},onOverEvent:function(){this.inherited(arguments);_947.manager().overSource(this);},onOutEvent:function(){this._unmarkTargetAnchor();var m=_947.manager();if(this.isDragging){m.canDrop(false);}m.outSource(this);this.inherited(arguments);},_isParentChildDrop:function(_964,_965){if(!_964.tree||_964.tree!=this.tree){return false;}var root=_964.tree.domNode;var ids=_964.selection;var node=_965.parentNode;while(node!=root&&!ids[node.id]){node=node.parentNode;}return node.id&&ids[node.id];},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this._removeItemClass(this.targetAnchor.rowNode,this.dropPosition);this.targetAnchor=null;this.targetBox=null;this.dropPosition=null;},_markDndStatus:function(copy){this._changeState("Source",copy?"Copied":"Moved");}});});},"dijit/a11y":function(){define("dijit/a11y",["dojo/_base/array","dojo/_base/config","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-style","dojo/_base/sniff","./_base/manager","."],function(_966,_967,_968,dom,_969,_96a,has,_96b,_96c){var _96d=(_96c._isElementShown=function(elem){var s=_96a.get(elem);return (s.visibility!="hidden")&&(s.visibility!="collapsed")&&(s.display!="none")&&(_969.get(elem,"type")!="hidden");});_96c.hasDefaultTabStop=function(elem){switch(elem.nodeName.toLowerCase()){case "a":return _969.has(elem,"href");case "area":case "button":case "input":case "object":case "select":case "textarea":return true;case "iframe":var body;try{var _96e=elem.contentDocument;if("designMode" in _96e&&_96e.designMode=="on"){return true;}body=_96e.body;}catch(e1){try{body=elem.contentWindow.document.body;}catch(e2){return false;}}return body&&(body.contentEditable=="true"||(body.firstChild&&body.firstChild.contentEditable=="true"));default:return elem.contentEditable=="true";}};var _96f=(_96c.isTabNavigable=function(elem){if(_969.get(elem,"disabled")){return false;}else{if(_969.has(elem,"tabIndex")){return _969.get(elem,"tabIndex")>=0;}else{return _96c.hasDefaultTabStop(elem);}}});_96c._getTabNavigable=function(root){var _970,last,_971,_972,_973,_974,_975={};function _976(node){return node&&node.tagName.toLowerCase()=="input"&&node.type&&node.type.toLowerCase()=="radio"&&node.name&&node.name.toLowerCase();};var _977=function(_978){for(var _979=_978.firstChild;_979;_979=_979.nextSibling){if(_979.nodeType!=1||(has("ie")&&_979.scopeName!=="HTML")||!_96d(_979)){continue;}if(_96f(_979)){var _97a=_969.get(_979,"tabIndex");if(!_969.has(_979,"tabIndex")||_97a==0){if(!_970){_970=_979;}last=_979;}else{if(_97a>0){if(!_971||_97a<_972){_972=_97a;_971=_979;}if(!_973||_97a>=_974){_974=_97a;_973=_979;}}}var rn=_976(_979);if(_969.get(_979,"checked")&&rn){_975[rn]=_979;}}if(_979.nodeName.toUpperCase()!="SELECT"){_977(_979);}}};if(_96d(root)){_977(root);}function rs(node){return _975[_976(node)]||node;};return {first:rs(_970),last:rs(last),lowest:rs(_971),highest:rs(_973)};};_96c.getFirstInTabbingOrder=function(root){var _97b=_96c._getTabNavigable(dom.byId(root));return _97b.lowest?_97b.lowest:_97b.first;};_96c.getLastInTabbingOrder=function(root){var _97c=_96c._getTabNavigable(dom.byId(root));return _97c.last?_97c.last:_97c.highest;};return {hasDefaultTabStop:_96c.hasDefaultTabStop,isTabNavigable:_96c.isTabNavigable,_getTabNavigable:_96c._getTabNavigable,getFirstInTabbingOrder:_96c.getFirstInTabbingOrder,getLastInTabbingOrder:_96c.getLastInTabbingOrder};});},"dijit/form/_ToggleButtonMixin":function(){define("dijit/form/_ToggleButtonMixin",["dojo/_base/declare","dojo/dom-attr"],function(_97d,_97e){return _97d("dijit.form._ToggleButtonMixin",null,{checked:false,_aria_attr:"aria-pressed",_onClick:function(evt){var _97f=this.checked;this._set("checked",!_97f);var ret=this.inherited(arguments);this.set("checked",ret?this.checked:_97f);return ret;},_setCheckedAttr:function(_980,_981){this._set("checked",_980);_97e.set(this.focusNode||this.domNode,"checked",_980);(this.focusNode||this.domNode).setAttribute(this._aria_attr,_980?"true":"false");this._handleOnChange(_980,_981);},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false);}});});},"dijit/_Widget":function(){define("dijit/_Widget",["dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","dojo/query","dojo/ready","./registry","./_WidgetBase","./_OnDijitClickMixin","./_FocusMixin","dojo/uacss","./hccss"],function(_982,_983,_984,_985,_986,lang,_987,_988,_989,_98a,_98b,_98c){function _98d(){};function _98e(_98f){return function(obj,_990,_991,_992){if(obj&&typeof _990=="string"&&obj[_990]==_98d){return obj.on(_990.substring(2).toLowerCase(),lang.hitch(_991,_992));}return _98f.apply(_984,arguments);};};_982.around(_984,"connect",_98e);if(_986.connect){_982.around(_986,"connect",_98e);}var _993=_985("dijit._Widget",[_98a,_98b,_98c],{onClick:_98d,onDblClick:_98d,onKeyDown:_98d,onKeyPress:_98d,onKeyUp:_98d,onMouseDown:_98d,onMouseMove:_98d,onMouseOut:_98d,onMouseOver:_98d,onMouseLeave:_98d,onMouseEnter:_98d,onMouseUp:_98d,constructor:function(_994){this._toConnect={};for(var name in _994){if(this[name]===_98d){this._toConnect[name.replace(/^on/,"").toLowerCase()]=_994[name];delete _994[name];}}},postCreate:function(){this.inherited(arguments);for(var name in this._toConnect){this.on(name,this._toConnect[name]);}delete this._toConnect;},on:function(type,func){if(this[this._onMap(type)]===_98d){return _984.connect(this.domNode,type.toLowerCase(),this,func);}return this.inherited(arguments);},_setFocusedAttr:function(val){this._focused=val;this._set("focused",val);},setAttribute:function(attr,_995){_986.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0");this.set(attr,_995);},attr:function(name,_996){if(_983.isDebug){var _997=arguments.callee._ach||(arguments.callee._ach={}),_998=(arguments.callee.caller||"unknown caller").toString();if(!_997[_998]){_986.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+_998,"","2.0");_997[_998]=true;}}var args=arguments.length;if(args>=2||typeof name==="object"){return this.set.apply(this,arguments);}else{return this.get(name);}},getDescendants:function(){_986.deprecated(this.declaredClass+"::getDescendants() is deprecated. Use getChildren() instead.","","2.0");return this.containerNode?_987("[widgetId]",this.containerNode).map(_989.byNode):[];},_onShow:function(){this.onShow();},onShow:function(){},onHide:function(){},onClose:function(){return true;}});if(!_986.isAsync){_988(0,function(){var _999=["dijit/_base"];require(_999);});}return _993;});},"dojo/touch":function(){define("dojo/touch",["./_base/kernel","./on","./has","./mouse"],function(dojo,on,has,_99a){function _99b(type){return function(node,_99c){return on(node,type,_99c);};};var _99d=has("touch");dojo.touch={press:_99b(_99d?"touchstart":"mousedown"),move:_99b(_99d?"touchmove":"mousemove"),release:_99b(_99d?"touchend":"mouseup"),cancel:_99d?_99b("touchcancel"):_99a.leave};return dojo.touch;});},"url:dijit/form/templates/Select.html":"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdata-dojo-attach-point=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\trole=\"combobox\" aria-haspopup=\"true\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\" role=\"presentation\"\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" data-dojo-attach-point=\"containerNode,_popupStateNode\"></span\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} data-dojo-attach-point=\"valueNode\" value=\"${value}\" aria-hidden=\"true\"\n\t\t/></td><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdata-dojo-attach-point=\"titleNode\" role=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">&#9660;</div\n\t\t></td\n\t></tr></tbody\n></table>\n","dojo/fx":function(){define("dojo/fx",["./_base/lang","./Evented","./_base/kernel","./_base/array","./_base/connect","./_base/fx","./dom","./dom-style","./dom-geometry","./ready","require"],function(lang,_99e,dojo,_99f,_9a0,_9a1,dom,_9a2,geom,_9a3,_9a4){if(!dojo.isAsync){_9a3(0,function(){var _9a5=["./fx/Toggler"];_9a4(_9a5);});}var _9a6=dojo.fx={};var _9a7={_fire:function(evt,args){if(this[evt]){this[evt].apply(this,args||[]);}return this;}};var _9a8=function(_9a9){this._index=-1;this._animations=_9a9||[];this._current=this._onAnimateCtx=this._onEndCtx=null;this.duration=0;_99f.forEach(this._animations,function(a){this.duration+=a.duration;if(a.delay){this.duration+=a.delay;}},this);};_9a8.prototype=new _99e();lang.extend(_9a8,{_onAnimate:function(){this._fire("onAnimate",arguments);},_onEnd:function(){_9a0.disconnect(this._onAnimateCtx);_9a0.disconnect(this._onEndCtx);this._onAnimateCtx=this._onEndCtx=null;if(this._index+1==this._animations.length){this._fire("onEnd");}else{this._current=this._animations[++this._index];this._onAnimateCtx=_9a0.connect(this._current,"onAnimate",this,"_onAnimate");this._onEndCtx=_9a0.connect(this._current,"onEnd",this,"_onEnd");this._current.play(0,true);}},play:function(_9aa,_9ab){if(!this._current){this._current=this._animations[this._index=0];}if(!_9ab&&this._current.status()=="playing"){return this;}var _9ac=_9a0.connect(this._current,"beforeBegin",this,function(){this._fire("beforeBegin");}),_9ad=_9a0.connect(this._current,"onBegin",this,function(arg){this._fire("onBegin",arguments);}),_9ae=_9a0.connect(this._current,"onPlay",this,function(arg){this._fire("onPlay",arguments);_9a0.disconnect(_9ac);_9a0.disconnect(_9ad);_9a0.disconnect(_9ae);});if(this._onAnimateCtx){_9a0.disconnect(this._onAnimateCtx);}this._onAnimateCtx=_9a0.connect(this._current,"onAnimate",this,"_onAnimate");if(this._onEndCtx){_9a0.disconnect(this._onEndCtx);}this._onEndCtx=_9a0.connect(this._current,"onEnd",this,"_onEnd");this._current.play.apply(this._current,arguments);return this;},pause:function(){if(this._current){var e=_9a0.connect(this._current,"onPause",this,function(arg){this._fire("onPause",arguments);_9a0.disconnect(e);});this._current.pause();}return this;},gotoPercent:function(_9af,_9b0){this.pause();var _9b1=this.duration*_9af;this._current=null;_99f.some(this._animations,function(a){if(a.duration<=_9b1){this._current=a;return true;}_9b1-=a.duration;return false;});if(this._current){this._current.gotoPercent(_9b1/this._current.duration,_9b0);}return this;},stop:function(_9b2){if(this._current){if(_9b2){for(;this._index+1<this._animations.length;++this._index){this._animations[this._index].stop(true);}this._current=this._animations[this._index];}var e=_9a0.connect(this._current,"onStop",this,function(arg){this._fire("onStop",arguments);_9a0.disconnect(e);});this._current.stop();}return this;},status:function(){return this._current?this._current.status():"stopped";},destroy:function(){if(this._onAnimateCtx){_9a0.disconnect(this._onAnimateCtx);}if(this._onEndCtx){_9a0.disconnect(this._onEndCtx);}}});lang.extend(_9a8,_9a7);_9a6.chain=function(_9b3){return new _9a8(_9b3);};var _9b4=function(_9b5){this._animations=_9b5||[];this._connects=[];this._finished=0;this.duration=0;_99f.forEach(_9b5,function(a){var _9b6=a.duration;if(a.delay){_9b6+=a.delay;}if(this.duration<_9b6){this.duration=_9b6;}this._connects.push(_9a0.connect(a,"onEnd",this,"_onEnd"));},this);this._pseudoAnimation=new _9a1.Animation({curve:[0,1],duration:this.duration});var self=this;_99f.forEach(["beforeBegin","onBegin","onPlay","onAnimate","onPause","onStop","onEnd"],function(evt){self._connects.push(_9a0.connect(self._pseudoAnimation,evt,function(){self._fire(evt,arguments);}));});};lang.extend(_9b4,{_doAction:function(_9b7,args){_99f.forEach(this._animations,function(a){a[_9b7].apply(a,args);});return this;},_onEnd:function(){if(++this._finished>this._animations.length){this._fire("onEnd");}},_call:function(_9b8,args){var t=this._pseudoAnimation;t[_9b8].apply(t,args);},play:function(_9b9,_9ba){this._finished=0;this._doAction("play",arguments);this._call("play",arguments);return this;},pause:function(){this._doAction("pause",arguments);this._call("pause",arguments);return this;},gotoPercent:function(_9bb,_9bc){var ms=this.duration*_9bb;_99f.forEach(this._animations,function(a){a.gotoPercent(a.duration<ms?1:(ms/a.duration),_9bc);});this._call("gotoPercent",arguments);return this;},stop:function(_9bd){this._doAction("stop",arguments);this._call("stop",arguments);return this;},status:function(){return this._pseudoAnimation.status();},destroy:function(){_99f.forEach(this._connects,_9a0.disconnect);}});lang.extend(_9b4,_9a7);_9a6.combine=function(_9be){return new _9b4(_9be);};_9a6.wipeIn=function(args){var node=args.node=dom.byId(args.node),s=node.style,o;var anim=_9a1.animateProperty(lang.mixin({properties:{height:{start:function(){o=s.overflow;s.overflow="hidden";if(s.visibility=="hidden"||s.display=="none"){s.height="1px";s.display="";s.visibility="";return 1;}else{var _9bf=_9a2.get(node,"height");return Math.max(_9bf,1);}},end:function(){return node.scrollHeight;}}}},args));var fini=function(){s.height="auto";s.overflow=o;};_9a0.connect(anim,"onStop",fini);_9a0.connect(anim,"onEnd",fini);return anim;};_9a6.wipeOut=function(args){var node=args.node=dom.byId(args.node),s=node.style,o;var anim=_9a1.animateProperty(lang.mixin({properties:{height:{end:1}}},args));_9a0.connect(anim,"beforeBegin",function(){o=s.overflow;s.overflow="hidden";s.display="";});var fini=function(){s.overflow=o;s.height="auto";s.display="none";};_9a0.connect(anim,"onStop",fini);_9a0.connect(anim,"onEnd",fini);return anim;};_9a6.slideTo=function(args){var node=args.node=dom.byId(args.node),top=null,left=null;var init=(function(n){return function(){var cs=_9a2.getComputedStyle(n);var pos=cs.position;top=(pos=="absolute"?n.offsetTop:parseInt(cs.top)||0);left=(pos=="absolute"?n.offsetLeft:parseInt(cs.left)||0);if(pos!="absolute"&&pos!="relative"){var ret=geom.position(n,true);top=ret.y;left=ret.x;n.style.position="absolute";n.style.top=top+"px";n.style.left=left+"px";}};})(node);init();var anim=_9a1.animateProperty(lang.mixin({properties:{top:args.top||0,left:args.left||0}},args));_9a0.connect(anim,"beforeBegin",anim,init);return anim;};return _9a6;});},"dijit/_DialogMixin":function(){define("dijit/_DialogMixin",["dojo/_base/declare","./a11y"],function(_9c0,a11y){return _9c0("dijit._DialogMixin",null,{execute:function(){},onCancel:function(){},onExecute:function(){},_onSubmit:function(){this.onExecute();this.execute(this.get("value"));},_getFocusItems:function(){var _9c1=a11y._getTabNavigable(this.containerNode);this._firstFocusItem=_9c1.lowest||_9c1.first||this.closeButtonNode||this.domNode;this._lastFocusItem=_9c1.last||_9c1.highest||this._firstFocusItem;}});});},"dijit/Tree":function(){require({cache:{"url:dijit/templates/TreeNode.html":"<div class=\"dijitTreeNode\" role=\"presentation\"\n\t><div data-dojo-attach-point=\"rowNode\" class=\"dijitTreeRow\" role=\"presentation\" data-dojo-attach-event=\"onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick\"\n\t\t><img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"expandoNode\" class=\"dijitTreeExpando\" role=\"presentation\"\n\t\t/><span data-dojo-attach-point=\"expandoNodeText\" class=\"dijitExpandoText\" role=\"presentation\"\n\t\t></span\n\t\t><span data-dojo-attach-point=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" role=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" role=\"presentation\"\n\t\t\t/><span data-dojo-attach-point=\"labelNode\" class=\"dijitTreeLabel\" role=\"treeitem\" tabindex=\"-1\" aria-selected=\"false\" data-dojo-attach-event=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitTreeContainer\" role=\"presentation\" style=\"display: none;\"></div>\n</div>\n","url:dijit/templates/Tree.html":"<div class=\"dijitTree dijitTreeContainer\" role=\"tree\"\n\tdata-dojo-attach-event=\"onkeypress:_onKeyPress\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" data-dojo-attach-point=\"indentDetector\"></div>\n</div>\n"}});define("dijit/Tree",["dojo/_base/array","dojo/_base/connect","dojo/cookie","dojo/_base/declare","dojo/_base/Deferred","dojo/DeferredList","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/fx","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/topic","./focus","./registry","./_base/manager","./_Widget","./_TemplatedMixin","./_Container","./_Contained","./_CssStateMixin","dojo/text!./templates/TreeNode.html","dojo/text!./templates/Tree.html","./tree/TreeStoreModel","./tree/ForestStoreModel","./tree/_dndSelector"],function(_9c2,_9c3,_9c4,_9c5,_9c6,_9c7,dom,_9c8,_9c9,_9ca,_9cb,_9cc,_9cd,keys,lang,_9ce,_9cf,_9d0,_9d1,_9d2,_9d3,_9d4,_9d5,_9d6,_9d7,_9d8,_9d9,_9da,_9db){var _9dc=_9c5("dijit._TreeNode",[_9d2,_9d3,_9d4,_9d5,_9d6],{item:null,isTreeNode:true,label:"",_setLabelAttr:{node:"labelNode",type:"innerText"},isExpandable:null,isExpanded:false,state:"UNCHECKED",templateString:_9d7,baseClass:"dijitTreeNode",cssStateNodes:{rowNode:"dijitTreeRow",labelNode:"dijitTreeLabel"},_setTooltipAttr:{node:"rowNode",type:"attribute",attribute:"title"},buildRendering:function(){this.inherited(arguments);this._setExpando();this._updateItemClasses(this.item);if(this.isExpandable){this.labelNode.setAttribute("aria-expanded",this.isExpanded);}this.setSelected(false);},_setIndentAttr:function(_9dd){var _9de=(Math.max(_9dd,0)*this.tree._nodePixelIndent)+"px";_9ca.set(this.domNode,"backgroundPosition",_9de+" 0px");_9ca.set(this.rowNode,this.isLeftToRight()?"paddingLeft":"paddingRight",_9de);_9c2.forEach(this.getChildren(),function(_9df){_9df.set("indent",_9dd+1);});this._set("indent",_9dd);},markProcessing:function(){this.state="LOADING";this._setExpando(true);},unmarkProcessing:function(){this._setExpando(false);},_updateItemClasses:function(item){var tree=this.tree,_9e0=tree.model;if(tree._v10Compat&&item===_9e0.root){item=null;}this._applyClassAndStyle(item,"icon","Icon");this._applyClassAndStyle(item,"label","Label");this._applyClassAndStyle(item,"row","Row");},_applyClassAndStyle:function(item,_9e1,_9e2){var _9e3="_"+_9e1+"Class";var _9e4=_9e1+"Node";var _9e5=this[_9e3];this[_9e3]=this.tree["get"+_9e2+"Class"](item,this.isExpanded);_9c8.replace(this[_9e4],this[_9e3]||"",_9e5||"");_9ca.set(this[_9e4],this.tree["get"+_9e2+"Style"](item,this.isExpanded)||{});},_updateLayout:function(){var _9e6=this.getParent();if(!_9e6||!_9e6.rowNode||_9e6.rowNode.style.display=="none"){_9c8.add(this.domNode,"dijitTreeIsRoot");}else{_9c8.toggle(this.domNode,"dijitTreeIsLast",!this.getNextSibling());}},_setExpando:function(_9e7){var _9e8=["dijitTreeExpandoLoading","dijitTreeExpandoOpened","dijitTreeExpandoClosed","dijitTreeExpandoLeaf"],_9e9=["*","-","+","*"],idx=_9e7?0:(this.isExpandable?(this.isExpanded?1:2):3);_9c8.replace(this.expandoNode,_9e8[idx],_9e8);this.expandoNodeText.innerHTML=_9e9[idx];},expand:function(){if(this._expandDeferred){return this._expandDeferred;}this._wipeOut&&this._wipeOut.stop();this.isExpanded=true;this.labelNode.setAttribute("aria-expanded","true");if(this.tree.showRoot||this!==this.tree.rootNode){this.containerNode.setAttribute("role","group");}_9c8.add(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(this==this.tree.rootNode){this.tree.domNode.setAttribute("aria-expanded","true");}var def,_9ea=_9cc.wipeIn({node:this.containerNode,duration:_9d1.defaultDuration,onEnd:function(){def.callback(true);}});def=(this._expandDeferred=new _9c6(function(){_9ea.stop();}));_9ea.play();return def;},collapse:function(){if(!this.isExpanded){return;}if(this._expandDeferred){this._expandDeferred.cancel();delete this._expandDeferred;}this.isExpanded=false;this.labelNode.setAttribute("aria-expanded","false");if(this==this.tree.rootNode){this.tree.domNode.setAttribute("aria-expanded","false");}_9c8.remove(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(!this._wipeOut){this._wipeOut=_9cc.wipeOut({node:this.containerNode,duration:_9d1.defaultDuration});}this._wipeOut.play();},indent:0,setChildItems:function(_9eb){var tree=this.tree,_9ec=tree.model,defs=[];_9c2.forEach(this.getChildren(),function(_9ed){_9d4.prototype.removeChild.call(this,_9ed);},this);this.state="LOADED";if(_9eb&&_9eb.length>0){this.isExpandable=true;_9c2.forEach(_9eb,function(item){var id=_9ec.getIdentity(item),_9ee=tree._itemNodesMap[id],node;if(_9ee){for(var i=0;i<_9ee.length;i++){if(_9ee[i]&&!_9ee[i].getParent()){node=_9ee[i];node.set("indent",this.indent+1);break;}}}if(!node){node=this.tree._createTreeNode({item:item,tree:tree,isExpandable:_9ec.mayHaveChildren(item),label:tree.getLabel(item),tooltip:tree.getTooltip(item),dir:tree.dir,lang:tree.lang,textDir:tree.textDir,indent:this.indent+1});if(_9ee){_9ee.push(node);}else{tree._itemNodesMap[id]=[node];}}this.addChild(node);if(this.tree.autoExpand||this.tree._state(node)){defs.push(tree._expandNode(node));}},this);_9c2.forEach(this.getChildren(),function(_9ef){_9ef._updateLayout();});}else{this.isExpandable=false;}if(this._setExpando){this._setExpando(false);}this._updateItemClasses(this.item);if(this==tree.rootNode){var fc=this.tree.showRoot?this:this.getChildren()[0];if(fc){fc.setFocusable(true);tree.lastFocused=fc;}else{tree.domNode.setAttribute("tabIndex","0");}}return new _9c7(defs);},getTreePath:function(){var node=this;var path=[];while(node&&node!==this.tree.rootNode){path.unshift(node.item);node=node.getParent();}path.unshift(this.tree.rootNode.item);return path;},getIdentity:function(){return this.tree.model.getIdentity(this.item);},removeChild:function(node){this.inherited(arguments);var _9f0=this.getChildren();if(_9f0.length==0){this.isExpandable=false;this.collapse();}_9c2.forEach(_9f0,function(_9f1){_9f1._updateLayout();});},makeExpandable:function(){this.isExpandable=true;this._setExpando(false);},_onLabelFocus:function(){this.tree._onNodeFocus(this);},setSelected:function(_9f2){this.labelNode.setAttribute("aria-selected",_9f2);_9c8.toggle(this.rowNode,"dijitTreeRowSelected",_9f2);},setFocusable:function(_9f3){this.labelNode.setAttribute("tabIndex",_9f3?"0":"-1");},_onClick:function(evt){this.tree._onClick(this,evt);},_onDblClick:function(evt){this.tree._onDblClick(this,evt);},_onMouseEnter:function(evt){this.tree._onNodeMouseEnter(this,evt);},_onMouseLeave:function(evt){this.tree._onNodeMouseLeave(this,evt);},_setTextDirAttr:function(_9f4){if(_9f4&&((this.textDir!=_9f4)||!this._created)){this._set("textDir",_9f4);this.applyTextDir(this.labelNode,this.labelNode.innerText||this.labelNode.textContent||"");_9c2.forEach(this.getChildren(),function(_9f5){_9f5.set("textDir",_9f4);},this);}}});var Tree=_9c5("dijit.Tree",[_9d2,_9d3],{store:null,model:null,query:null,label:"",showRoot:true,childrenAttr:["children"],paths:[],path:[],selectedItems:null,selectedItem:null,openOnClick:false,openOnDblClick:false,templateString:_9d8,persist:true,autoExpand:false,dndController:_9db,dndParams:["onDndDrop","itemCreator","onDndCancel","checkAcceptance","checkItemAcceptance","dragThreshold","betweenThreshold"],onDndDrop:null,itemCreator:null,onDndCancel:null,checkAcceptance:null,checkItemAcceptance:null,dragThreshold:5,betweenThreshold:0,_nodePixelIndent:19,_publish:function(_9f6,_9f7){_9ce.publish(this.id,lang.mixin({tree:this,event:_9f6},_9f7||{}));},postMixInProperties:function(){this.tree=this;if(this.autoExpand){this.persist=false;}this._itemNodesMap={};if(!this.cookieName&&this.id){this.cookieName=this.id+"SaveStateCookie";}this._loadDeferred=new _9c6();this.inherited(arguments);},postCreate:function(){this._initState();if(!this.model){this._store2model();}this.connect(this.model,"onChange","_onItemChange");this.connect(this.model,"onChildrenChange","_onItemChildrenChange");this.connect(this.model,"onDelete","_onItemDelete");this._load();this.inherited(arguments);if(this.dndController){if(lang.isString(this.dndController)){this.dndController=lang.getObject(this.dndController);}var _9f8={};for(var i=0;i<this.dndParams.length;i++){if(this[this.dndParams[i]]){_9f8[this.dndParams[i]]=this[this.dndParams[i]];}}this.dndController=new this.dndController(this,_9f8);}},_store2model:function(){this._v10Compat=true;_9cd.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query");var _9f9={id:this.id+"_ForestStoreModel",store:this.store,query:this.query,childrenAttrs:this.childrenAttr};if(this.params.mayHaveChildren){_9f9.mayHaveChildren=lang.hitch(this,"mayHaveChildren");}if(this.params.getItemChildren){_9f9.getChildren=lang.hitch(this,function(item,_9fa,_9fb){this.getItemChildren((this._v10Compat&&item===this.model.root)?null:item,_9fa,_9fb);});}this.model=new _9da(_9f9);this.showRoot=Boolean(this.label);},onLoad:function(){},_load:function(){this.model.getRoot(lang.hitch(this,function(item){var rn=(this.rootNode=this.tree._createTreeNode({item:item,tree:this,isExpandable:true,label:this.label||this.getLabel(item),textDir:this.textDir,indent:this.showRoot?0:-1}));if(!this.showRoot){rn.rowNode.style.display="none";this.domNode.setAttribute("role","presentation");rn.labelNode.setAttribute("role","presentation");rn.containerNode.setAttribute("role","tree");}this.domNode.appendChild(rn.domNode);var _9fc=this.model.getIdentity(item);if(this._itemNodesMap[_9fc]){this._itemNodesMap[_9fc].push(rn);}else{this._itemNodesMap[_9fc]=[rn];}rn._updateLayout();this._expandNode(rn).addCallback(lang.hitch(this,function(){this._loadDeferred.callback(true);this.onLoad();}));}),function(err){console.error(this,": error loading root: ",err);});},getNodesByItem:function(item){if(!item){return [];}var _9fd=lang.isString(item)?item:this.model.getIdentity(item);return [].concat(this._itemNodesMap[_9fd]);},_setSelectedItemAttr:function(item){this.set("selectedItems",[item]);},_setSelectedItemsAttr:function(_9fe){var tree=this;this._loadDeferred.addCallback(lang.hitch(this,function(){var _9ff=_9c2.map(_9fe,function(item){return (!item||lang.isString(item))?item:tree.model.getIdentity(item);});var _a00=[];_9c2.forEach(_9ff,function(id){_a00=_a00.concat(tree._itemNodesMap[id]||[]);});this.set("selectedNodes",_a00);}));},_setPathAttr:function(path){if(path.length){return this.set("paths",[path]);}else{return this.set("paths",[]);}},_setPathsAttr:function(_a01){var tree=this;return new _9c7(_9c2.map(_a01,function(path){var d=new _9c6();path=_9c2.map(path,function(item){return lang.isString(item)?item:tree.model.getIdentity(item);});if(path.length){tree._loadDeferred.addCallback(function(){_a02(path,[tree.rootNode],d);});}else{d.errback("Empty path");}return d;})).addCallback(_a03);function _a02(path,_a04,def){var _a05=path.shift();var _a06=_9c2.filter(_a04,function(node){return node.getIdentity()==_a05;})[0];if(!!_a06){if(path.length){tree._expandNode(_a06).addCallback(function(){_a02(path,_a06.getChildren(),def);});}else{def.callback(_a06);}}else{def.errback("Could not expand path at "+_a05);}};function _a03(_a07){tree.set("selectedNodes",_9c2.map(_9c2.filter(_a07,function(x){return x[0];}),function(x){return x[1];}));};},_setSelectedNodeAttr:function(node){this.set("selectedNodes",[node]);},_setSelectedNodesAttr:function(_a08){this._loadDeferred.addCallback(lang.hitch(this,function(){this.dndController.setSelection(_a08);}));},mayHaveChildren:function(){},getItemChildren:function(){},getLabel:function(item){return this.model.getLabel(item);},getIconClass:function(item,_a09){return (!item||this.model.mayHaveChildren(item))?(_a09?"dijitFolderOpened":"dijitFolderClosed"):"dijitLeaf";},getLabelClass:function(){},getRowClass:function(){},getIconStyle:function(){},getLabelStyle:function(){},getRowStyle:function(){},getTooltip:function(){return "";},_onKeyPress:function(e){if(e.altKey){return;}var _a0a=_9d0.getEnclosingWidget(e.target);if(!_a0a){return;}var key=e.charOrCode;if(typeof key=="string"&&key!=" "){if(!e.altKey&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey){this._onLetterKeyNav({node:_a0a,key:key.toLowerCase()});_9cb.stop(e);}}else{if(this._curSearch){clearTimeout(this._curSearch.timer);delete this._curSearch;}var map=this._keyHandlerMap;if(!map){map={};map[keys.ENTER]="_onEnterKey";map[keys.SPACE]=map[" "]="_onEnterKey";map[this.isLeftToRight()?keys.LEFT_ARROW:keys.RIGHT_ARROW]="_onLeftArrow";map[this.isLeftToRight()?keys.RIGHT_ARROW:keys.LEFT_ARROW]="_onRightArrow";map[keys.UP_ARROW]="_onUpArrow";map[keys.DOWN_ARROW]="_onDownArrow";map[keys.HOME]="_onHomeKey";map[keys.END]="_onEndKey";this._keyHandlerMap=map;}if(this._keyHandlerMap[key]){this[this._keyHandlerMap[key]]({node:_a0a,item:_a0a.item,evt:e});_9cb.stop(e);}}},_onEnterKey:function(_a0b){this._publish("execute",{item:_a0b.item,node:_a0b.node});this.dndController.userSelect(_a0b.node,_9c3.isCopyKey(_a0b.evt),_a0b.evt.shiftKey);this.onClick(_a0b.item,_a0b.node,_a0b.evt);},_onDownArrow:function(_a0c){var node=this._getNextNode(_a0c.node);if(node&&node.isTreeNode){this.focusNode(node);}},_onUpArrow:function(_a0d){var node=_a0d.node;var _a0e=node.getPreviousSibling();if(_a0e){node=_a0e;while(node.isExpandable&&node.isExpanded&&node.hasChildren()){var _a0f=node.getChildren();node=_a0f[_a0f.length-1];}}else{var _a10=node.getParent();if(!(!this.showRoot&&_a10===this.rootNode)){node=_a10;}}if(node&&node.isTreeNode){this.focusNode(node);}},_onRightArrow:function(_a11){var node=_a11.node;if(node.isExpandable&&!node.isExpanded){this._expandNode(node);}else{if(node.hasChildren()){node=node.getChildren()[0];if(node&&node.isTreeNode){this.focusNode(node);}}}},_onLeftArrow:function(_a12){var node=_a12.node;if(node.isExpandable&&node.isExpanded){this._collapseNode(node);}else{var _a13=node.getParent();if(_a13&&_a13.isTreeNode&&!(!this.showRoot&&_a13===this.rootNode)){this.focusNode(_a13);}}},_onHomeKey:function(){var node=this._getRootOrFirstNode();if(node){this.focusNode(node);}},_onEndKey:function(){var node=this.rootNode;while(node.isExpanded){var c=node.getChildren();node=c[c.length-1];}if(node&&node.isTreeNode){this.focusNode(node);}},multiCharSearchDuration:250,_onLetterKeyNav:function(_a14){var cs=this._curSearch;if(cs){cs.pattern=cs.pattern+_a14.key;clearTimeout(cs.timer);}else{cs=this._curSearch={pattern:_a14.key,startNode:_a14.node};}var self=this;cs.timer=setTimeout(function(){delete self._curSearch;},this.multiCharSearchDuration);var node=cs.startNode;do{node=this._getNextNode(node);if(!node){node=this._getRootOrFirstNode();}}while(node!==cs.startNode&&(node.label.toLowerCase().substr(0,cs.pattern.length)!=cs.pattern));if(node&&node.isTreeNode){if(node!==cs.startNode){this.focusNode(node);}}},isExpandoNode:function(node,_a15){return dom.isDescendant(node,_a15.expandoNode);},_onClick:function(_a16,e){var _a17=e.target,_a18=this.isExpandoNode(_a17,_a16);if((this.openOnClick&&_a16.isExpandable)||_a18){if(_a16.isExpandable){this._onExpandoClick({node:_a16});}}else{this._publish("execute",{item:_a16.item,node:_a16,evt:e});this.onClick(_a16.item,_a16,e);this.focusNode(_a16);}_9cb.stop(e);},_onDblClick:function(_a19,e){var _a1a=e.target,_a1b=(_a1a==_a19.expandoNode||_a1a==_a19.expandoNodeText);if((this.openOnDblClick&&_a19.isExpandable)||_a1b){if(_a19.isExpandable){this._onExpandoClick({node:_a19});}}else{this._publish("execute",{item:_a19.item,node:_a19,evt:e});this.onDblClick(_a19.item,_a19,e);this.focusNode(_a19);}_9cb.stop(e);},_onExpandoClick:function(_a1c){var node=_a1c.node;this.focusNode(node);if(node.isExpanded){this._collapseNode(node);}else{this._expandNode(node);}},onClick:function(){},onDblClick:function(){},onOpen:function(){},onClose:function(){},_getNextNode:function(node){if(node.isExpandable&&node.isExpanded&&node.hasChildren()){return node.getChildren()[0];}else{while(node&&node.isTreeNode){var _a1d=node.getNextSibling();if(_a1d){return _a1d;}node=node.getParent();}return null;}},_getRootOrFirstNode:function(){return this.showRoot?this.rootNode:this.rootNode.getChildren()[0];},_collapseNode:function(node){if(node._expandNodeDeferred){delete node._expandNodeDeferred;}if(node.isExpandable){if(node.state=="LOADING"){return;}node.collapse();this.onClose(node.item,node);this._state(node,false);}},_expandNode:function(node,_a1e){if(node._expandNodeDeferred&&!_a1e){return node._expandNodeDeferred;}var _a1f=this.model,item=node.item,_a20=this;switch(node.state){case "UNCHECKED":node.markProcessing();var def=(node._expandNodeDeferred=new _9c6());_a1f.getChildren(item,function(_a21){node.unmarkProcessing();var scid=node.setChildItems(_a21);var ed=_a20._expandNode(node,true);scid.addCallback(function(){ed.addCallback(function(){def.callback();});});},function(err){console.error(_a20,": error loading root children: ",err);});break;default:def=(node._expandNodeDeferred=node.expand());this.onOpen(node.item,node);this._state(node,true);}return def;},focusNode:function(node){_9cf.focus(node.labelNode);},_onNodeFocus:function(node){if(node&&node!=this.lastFocused){if(this.lastFocused&&!this.lastFocused._destroyed){this.lastFocused.setFocusable(false);}node.setFocusable(true);this.lastFocused=node;}},_onNodeMouseEnter:function(){},_onNodeMouseLeave:function(){},_onItemChange:function(item){var _a22=this.model,_a23=_a22.getIdentity(item),_a24=this._itemNodesMap[_a23];if(_a24){var _a25=this.getLabel(item),_a26=this.getTooltip(item);_9c2.forEach(_a24,function(node){node.set({item:item,label:_a25,tooltip:_a26});node._updateItemClasses(item);});}},_onItemChildrenChange:function(_a27,_a28){var _a29=this.model,_a2a=_a29.getIdentity(_a27),_a2b=this._itemNodesMap[_a2a];if(_a2b){_9c2.forEach(_a2b,function(_a2c){_a2c.setChildItems(_a28);});}},_onItemDelete:function(item){var _a2d=this.model,_a2e=_a2d.getIdentity(item),_a2f=this._itemNodesMap[_a2e];if(_a2f){_9c2.forEach(_a2f,function(node){this.dndController.removeTreeNode(node);var _a30=node.getParent();if(_a30){_a30.removeChild(node);}node.destroyRecursive();},this);delete this._itemNodesMap[_a2e];}},_initState:function(){this._openedNodes={};if(this.persist&&this.cookieName){var oreo=_9c4(this.cookieName);if(oreo){_9c2.forEach(oreo.split(","),function(item){this._openedNodes[item]=true;},this);}}},_state:function(node,_a31){if(!this.persist){return false;}var path=_9c2.map(node.getTreePath(),function(item){return this.model.getIdentity(item);},this).join("/");if(arguments.length===1){return this._openedNodes[path];}else{if(_a31){this._openedNodes[path]=true;}else{delete this._openedNodes[path];}var ary=[];for(var id in this._openedNodes){ary.push(id);}_9c4(this.cookieName,ary.join(","),{expires:365});}},destroy:function(){if(this._curSearch){clearTimeout(this._curSearch.timer);delete this._curSearch;}if(this.rootNode){this.rootNode.destroyRecursive();}if(this.dndController&&!lang.isString(this.dndController)){this.dndController.destroy();}this.rootNode=null;this.inherited(arguments);},destroyRecursive:function(){this.destroy();},resize:function(_a32){if(_a32){_9c9.setMarginBox(this.domNode,_a32);}this._nodePixelIndent=_9c9.position(this.tree.indentDetector).w;if(this.tree.rootNode){this.tree.rootNode.set("indent",this.showRoot?0:-1);}},_createTreeNode:function(args){return new _9dc(args);},_setTextDirAttr:function(_a33){if(_a33&&this.textDir!=_a33){this._set("textDir",_a33);this.rootNode.set("textDir",_a33);}}});Tree._TreeNode=_9dc;return Tree;});},"dijit/form/_FormValueWidget":function(){define("dijit/form/_FormValueWidget",["dojo/_base/declare","dojo/_base/sniff","./_FormWidget","./_FormValueMixin"],function(_a34,has,_a35,_a36){return _a34("dijit.form._FormValueWidget",[_a35,_a36],{_layoutHackIE7:function(){if(has("ie")==7){var _a37=this.domNode;var _a38=_a37.parentNode;var _a39=_a37.firstChild||_a37;var _a3a=_a39.style.filter;var _a3b=this;while(_a38&&_a38.clientHeight==0){(function ping(){var _a3c=_a3b.connect(_a38,"onscroll",function(){_a3b.disconnect(_a3c);_a39.style.filter=(new Date()).getMilliseconds();setTimeout(function(){_a39.style.filter=_a3a;},0);});})();_a38=_a38.parentNode;}}}});});},"*now":function(r){r(["dojo/i18n!*preload*dojo/nls/tt-rss-layer*[\"ar\",\"ca\",\"cs\",\"da\",\"de-de\",\"el\",\"en-gb\",\"en-us\",\"es-es\",\"fi-fi\",\"fr-fr\",\"he-il\",\"hu\",\"it-it\",\"ja-jp\",\"ko-kr\",\"nl-nl\",\"nb\",\"pl\",\"pt-br\",\"pt-pt\",\"ru\",\"sk\",\"sl\",\"sv\",\"th\",\"tr\",\"zh-tw\",\"zh-cn\",\"ROOT\"]"]);}}});define("dojo/tt-rss-layer",[],1); \ No newline at end of file
+require({cache:{"dojo/_base/url":function(){define("dojo/_base/url",["./kernel"],function(_1){var _2=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),_3=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"),_4=function(){var n=null,_5=arguments,_6=[_5[0]];for(var i=1;i<_5.length;i++){if(!_5[i]){continue;}var _7=new _4(_5[i]+""),_8=new _4(_6[0]+"");if(_7.path==""&&!_7.scheme&&!_7.authority&&!_7.query){if(_7.fragment!=n){_8.fragment=_7.fragment;}_7=_8;}else{if(!_7.scheme){_7.scheme=_8.scheme;if(!_7.authority){_7.authority=_8.authority;if(_7.path.charAt(0)!="/"){var _9=_8.path.substring(0,_8.path.lastIndexOf("/")+1)+_7.path;var _a=_9.split("/");for(var j=0;j<_a.length;j++){if(_a[j]=="."){if(j==_a.length-1){_a[j]="";}else{_a.splice(j,1);j--;}}else{if(j>0&&!(j==1&&_a[0]=="")&&_a[j]==".."&&_a[j-1]!=".."){if(j==(_a.length-1)){_a.splice(j,1);_a[j-1]="";}else{_a.splice(j-1,2);j-=2;}}}}_7.path=_a.join("/");}}}}_6=[];if(_7.scheme){_6.push(_7.scheme,":");}if(_7.authority){_6.push("//",_7.authority);}_6.push(_7.path);if(_7.query){_6.push("?",_7.query);}if(_7.fragment){_6.push("#",_7.fragment);}}this.uri=_6.join("");var r=this.uri.match(_2);this.scheme=r[2]||(r[1]?"":n);this.authority=r[4]||(r[3]?"":n);this.path=r[5];this.query=r[7]||(r[6]?"":n);this.fragment=r[9]||(r[8]?"":n);if(this.authority!=n){r=this.authority.match(_3);this.user=r[3]||n;this.password=r[4]||n;this.host=r[6]||r[7];this.port=r[9]||n;}};_4.prototype.toString=function(){return this.uri;};return _1._Url=_4;});},"dojo/cache":function(){define("dojo/cache",["./_base/kernel","./text"],function(_b){return _b.cache;});},"dojo/text":function(){define("dojo/text",["./_base/kernel","require","./has","./_base/xhr"],function(_c,_d,_e,_f){var _10;if(1){_10=function(url,_11,_12){_f("GET",{url:url,sync:!!_11,load:_12,headers:_c.config.textPluginHeaders||{}});};}else{if(_d.getText){_10=_d.getText;}else{console.error("dojo/text plugin failed to load because loader does not support getText");}}var _13={},_14=function(_15){if(_15){_15=_15.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _16=_15.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_16){_15=_16[1];}}else{_15="";}return _15;},_17={},_18={};_c.cache=function(_19,url,_1a){var key;if(typeof _19=="string"){if(/\//.test(_19)){key=_19;_1a=url;}else{key=_d.toUrl(_19.replace(/\./g,"/")+(url?("/"+url):""));}}else{key=_19+"";_1a=url;}var val=(_1a!=undefined&&typeof _1a!="string")?_1a.value:_1a,_1b=_1a&&_1a.sanitize;if(typeof val=="string"){_13[key]=val;return _1b?_14(val):val;}else{if(val===null){delete _13[key];return null;}else{if(!(key in _13)){_10(key,true,function(_1c){_13[key]=_1c;});}return _1b?_14(_13[key]):_13[key];}}};return {dynamic:true,normalize:function(id,_1d){var _1e=id.split("!"),url=_1e[0];return (/^\./.test(url)?_1d(url):url)+(_1e[1]?"!"+_1e[1]:"");},load:function(id,_1f,_20){var _21=id.split("!"),_22=_21.length>1,_23=_21[0],url=_1f.toUrl(_21[0]),_24="url:"+url,_25=_17,_26=function(_27){_20(_22?_14(_27):_27);};if(_23 in _13){_25=_13[_23];}else{if(_24 in _1f.cache){_25=_1f.cache[_24];}else{if(url in _13){_25=_13[url];}}}if(_25===_17){if(_18[url]){_18[url].push(_26);}else{var _28=_18[url]=[_26];_10(url,!_1f.async,function(_29){_13[_23]=_13[url]=_29;for(var i=0;i<_28.length;){_28[i++](_29);}delete _18[url];});}}else{_26(_25);}}};});},"dojo/parser":function(){define("dojo/parser",["require","./_base/kernel","./_base/lang","./_base/array","./_base/config","./_base/html","./_base/window","./_base/url","./_base/json","./aspect","./date/stamp","./Deferred","./has","./query","./on","./ready"],function(_2a,_2b,_2c,_2d,_2e,_2f,_30,_31,_32,_33,_34,_35,has,_36,don,_37){new Date("X");var _38=0;_33.after(_2c,"extend",function(){_38++;},true);function _39(_3a){var map=_3a._nameCaseMap,_3b=_3a.prototype;if(!map||map._extendCnt<_38){map=_3a._nameCaseMap={};for(var _3c in _3b){if(_3c.charAt(0)==="_"){continue;}map[_3c.toLowerCase()]=_3c;}map._extendCnt=_38;}return map;};var _3d={};function _3e(_3f){var ts=_3f.join();if(!_3d[ts]){var _40=[];for(var i=0,l=_3f.length;i<l;i++){var t=_3f[i];_40[_40.length]=(_3d[t]=_3d[t]||(_2c.getObject(t)||(~t.indexOf("/")&&_2a(t))));}var _41=_40.shift();_3d[ts]=_40.length?(_41.createSubclass?_41.createSubclass(_40):_41.extend.apply(_41,_40)):_41;}return _3d[ts];};var _42={_clearCache:function(){_38++;_3d={};},_functionFromScript:function(_43,_44){var _45="",_46="",_47=(_43.getAttribute(_44+"args")||_43.getAttribute("args")),_48=_43.getAttribute("with");var _49=(_47||"").split(/\s*,\s*/);if(_48&&_48.length){_2d.forEach(_48.split(/\s*,\s*/),function(_4a){_45+="with("+_4a+"){";_46+="}";});}return new Function(_49,_45+_43.innerHTML+_46);},instantiate:function(_4b,_4c,_4d){_4c=_4c||{};_4d=_4d||{};var _4e=(_4d.scope||_2b._scopeName)+"Type",_4f="data-"+(_4d.scope||_2b._scopeName)+"-",_50=_4f+"type",_51=_4f+"mixins";var _52=[];_2d.forEach(_4b,function(_53){var _54=_4e in _4c?_4c[_4e]:_53.getAttribute(_50)||_53.getAttribute(_4e);if(_54){var _55=_53.getAttribute(_51),_56=_55?[_54].concat(_55.split(/\s*,\s*/)):[_54];_52.push({node:_53,types:_56});}});return this._instantiate(_52,_4c,_4d);},_instantiate:function(_57,_58,_59){var _5a=_2d.map(_57,function(obj){var _5b=obj.ctor||_3e(obj.types);if(!_5b){throw new Error("Unable to resolve constructor for: '"+obj.types.join()+"'");}return this.construct(_5b,obj.node,_58,_59,obj.scripts,obj.inherited);},this);if(!_58._started&&!_59.noStart){_2d.forEach(_5a,function(_5c){if(typeof _5c.startup==="function"&&!_5c._started){_5c.startup();}});}return _5a;},construct:function(_5d,_5e,_5f,_60,_61,_62){var _63=_5d&&_5d.prototype;_60=_60||{};var _64={};if(_60.defaults){_2c.mixin(_64,_60.defaults);}if(_62){_2c.mixin(_64,_62);}var _65;if(has("dom-attributes-explicit")){_65=_5e.attributes;}else{if(has("dom-attributes-specified-flag")){_65=_2d.filter(_5e.attributes,function(a){return a.specified;});}else{var _66=/^input$|^img$/i.test(_5e.nodeName)?_5e:_5e.cloneNode(false),_67=_66.outerHTML.replace(/=[^\s"']+|="[^"]*"|='[^']*'/g,"").replace(/^\s*<[a-zA-Z0-9]*\s*/,"").replace(/\s*>.*$/,"");_65=_2d.map(_67.split(/\s+/),function(_68){var _69=_68.toLowerCase();return {name:_68,value:(_5e.nodeName=="LI"&&_68=="value")||_69=="enctype"?_5e.getAttribute(_69):_5e.getAttributeNode(_69).value};});}}var _6a=_60.scope||_2b._scopeName,_6b="data-"+_6a+"-",_6c={};if(_6a!=="dojo"){_6c[_6b+"props"]="data-dojo-props";_6c[_6b+"type"]="data-dojo-type";_6c[_6b+"mixins"]="data-dojo-mixins";_6c[_6a+"type"]="dojoType";_6c[_6b+"id"]="data-dojo-id";}var i=0,_6d,_6e=[],_6f,_70;while(_6d=_65[i++]){var _71=_6d.name,_72=_71.toLowerCase(),_73=_6d.value;switch(_6c[_72]||_72){case "data-dojo-type":case "dojotype":case "data-dojo-mixins":break;case "data-dojo-props":_70=_73;break;case "data-dojo-id":case "jsid":_6f=_73;break;case "data-dojo-attach-point":case "dojoattachpoint":_64.dojoAttachPoint=_73;break;case "data-dojo-attach-event":case "dojoattachevent":_64.dojoAttachEvent=_73;break;case "class":_64["class"]=_5e.className;break;case "style":_64["style"]=_5e.style&&_5e.style.cssText;break;default:if(!(_71 in _63)){var map=_39(_5d);_71=map[_72]||_71;}if(_71 in _63){switch(typeof _63[_71]){case "string":_64[_71]=_73;break;case "number":_64[_71]=_73.length?Number(_73):NaN;break;case "boolean":_64[_71]=_73.toLowerCase()!="false";break;case "function":if(_73===""||_73.search(/[^\w\.]+/i)!=-1){_64[_71]=new Function(_73);}else{_64[_71]=_2c.getObject(_73,false)||new Function(_73);}_6e.push(_71);break;default:var _74=_63[_71];_64[_71]=(_74&&"length" in _74)?(_73?_73.split(/\s*,\s*/):[]):(_74 instanceof Date)?(_73==""?new Date(""):_73=="now"?new Date():_34.fromISOString(_73)):(_74 instanceof _31)?(_2b.baseUrl+_73):_32.fromJson(_73);}}else{_64[_71]=_73;}}}for(var j=0;j<_6e.length;j++){var _75=_6e[j].toLowerCase();_5e.removeAttribute(_75);_5e[_75]=null;}if(_70){try{_70=_32.fromJson.call(_60.propsThis,"{"+_70+"}");_2c.mixin(_64,_70);}catch(e){throw new Error(e.toString()+" in data-dojo-props='"+_70+"'");}}_2c.mixin(_64,_5f);if(!_61){_61=(_5d&&(_5d._noScript||_63._noScript)?[]:_36("> script[type^='dojo/']",_5e));}var _76=[],_77=[],_78=[],ons=[];if(_61){for(i=0;i<_61.length;i++){var _79=_61[i];_5e.removeChild(_79);var _7a=(_79.getAttribute(_6b+"event")||_79.getAttribute("event")),_7b=_79.getAttribute(_6b+"prop"),_7c=_79.getAttribute(_6b+"method"),_7d=_79.getAttribute(_6b+"advice"),_7e=_79.getAttribute("type"),nf=this._functionFromScript(_79,_6b);if(_7a){if(_7e=="dojo/connect"){_76.push({method:_7a,func:nf});}else{if(_7e=="dojo/on"){ons.push({event:_7a,func:nf});}else{_64[_7a]=nf;}}}else{if(_7e=="dojo/aspect"){_76.push({method:_7c,advice:_7d,func:nf});}else{if(_7e=="dojo/watch"){_78.push({prop:_7b,func:nf});}else{_77.push(nf);}}}}}var _7f=_5d.markupFactory||_63.markupFactory;var _80=_7f?_7f(_64,_5e,_5d):new _5d(_64,_5e);if(_6f){_2c.setObject(_6f,_80);}for(i=0;i<_76.length;i++){_33[_76[i].advice||"after"](_80,_76[i].method,_2c.hitch(_80,_76[i].func),true);}for(i=0;i<_77.length;i++){_77[i].call(_80);}for(i=0;i<_78.length;i++){_80.watch(_78[i].prop,_78[i].func);}for(i=0;i<ons.length;i++){don(_80,ons[i].event,ons[i].func);}return _80;},scan:function(_81,_82){var _83=[],_84=[],_85={};var _86=(_82.scope||_2b._scopeName)+"Type",_87="data-"+(_82.scope||_2b._scopeName)+"-",_88=_87+"type",_89=_87+"textdir",_8a=_87+"mixins";var _8b=_81.firstChild;var _8c=_82.inherited;if(!_8c){function _8d(_8e,_8f){return (_8e.getAttribute&&_8e.getAttribute(_8f))||(_8e.parentNode&&_8d(_8e.parentNode,_8f));};_8c={dir:_8d(_81,"dir"),lang:_8d(_81,"lang"),textDir:_8d(_81,_89)};for(var key in _8c){if(!_8c[key]){delete _8c[key];}}}var _90={inherited:_8c};var _91;var _92;function _93(_94){if(!_94.inherited){_94.inherited={};var _95=_94.node,_96=_93(_94.parent);var _97={dir:_95.getAttribute("dir")||_96.dir,lang:_95.getAttribute("lang")||_96.lang,textDir:_95.getAttribute(_89)||_96.textDir};for(var key in _97){if(_97[key]){_94.inherited[key]=_97[key];}}}return _94.inherited;};while(true){if(!_8b){if(!_90||!_90.node){break;}_8b=_90.node.nextSibling;_92=false;_90=_90.parent;_91=_90.scripts;continue;}if(_8b.nodeType!=1){_8b=_8b.nextSibling;continue;}if(_91&&_8b.nodeName.toLowerCase()=="script"){_98=_8b.getAttribute("type");if(_98&&/^dojo\/\w/i.test(_98)){_91.push(_8b);}_8b=_8b.nextSibling;continue;}if(_92){_8b=_8b.nextSibling;continue;}var _98=_8b.getAttribute(_88)||_8b.getAttribute(_86);var _99=_8b.firstChild;if(!_98&&(!_99||(_99.nodeType==3&&!_99.nextSibling))){_8b=_8b.nextSibling;continue;}var _9a;var _9b=null;if(_98){var _9c=_8b.getAttribute(_8a),_9d=_9c?[_98].concat(_9c.split(/\s*,\s*/)):[_98];try{_9b=_3e(_9d);}catch(e){}if(!_9b){_2d.forEach(_9d,function(t){if(~t.indexOf("/")&&!_85[t]){_85[t]=true;_84[_84.length]=t;}});}var _9e=_9b&&!_9b.prototype._noScript?[]:null;_9a={types:_9d,ctor:_9b,parent:_90,node:_8b,scripts:_9e};_9a.inherited=_93(_9a);_83.push(_9a);}else{_9a={node:_8b,scripts:_91,parent:_90};}_8b=_99;_91=_9e;_92=_9b&&_9b.prototype.stopParser&&!(_82.template);_90=_9a;}var d=new _35();if(_84.length){if(has("dojo-debug-messages")){console.warn("WARNING: Modules being Auto-Required: "+_84.join(", "));}_2a(_84,function(){d.resolve(_2d.filter(_83,function(_9f){if(!_9f.ctor){try{_9f.ctor=_3e(_9f.types);}catch(e){}}var _a0=_9f.parent;while(_a0&&!_a0.types){_a0=_a0.parent;}var _a1=_9f.ctor&&_9f.ctor.prototype;_9f.instantiateChildren=!(_a1&&_a1.stopParser&&!(_82.template));_9f.instantiate=!_a0||(_a0.instantiate&&_a0.instantiateChildren);return _9f.instantiate;}));});}else{d.resolve(_83);}return d.promise;},_require:function(_a2){var _a3=_32.fromJson("{"+_a2.innerHTML+"}"),_a4=[],_a5=[],d=new _35();for(var _a6 in _a3){_a4.push(_a6);_a5.push(_a3[_a6]);}_2a(_a5,function(){for(var i=0;i<_a4.length;i++){_2c.setObject(_a4[i],arguments[i]);}d.resolve(arguments);});return d.promise;},_scanAmd:function(_a7){var _a8=new _35(),_a9=_a8.promise;_a8.resolve(true);var _aa=this;_36("script[type='dojo/require']",_a7).forEach(function(_ab){_a9=_a9.then(function(){return _aa._require(_ab);});_ab.parentNode.removeChild(_ab);});return _a9;},parse:function(_ac,_ad){var _ae;if(!_ad&&_ac&&_ac.rootNode){_ad=_ac;_ae=_ad.rootNode;}else{if(_ac&&_2c.isObject(_ac)&&!("nodeType" in _ac)){_ad=_ac;}else{_ae=_ac;}}_ae=_ae?_2f.byId(_ae):_30.body();_ad=_ad||{};var _af=_ad.template?{template:true}:{},_b0=[],_b1=this;var p=this._scanAmd(_ae,_ad).then(function(){return _b1.scan(_ae,_ad);}).then(function(_b2){return _b0=_b0.concat(_b1._instantiate(_b2,_af,_ad));}).otherwise(function(e){console.error("dojo/parser::parse() error",e);throw e;});_2c.mixin(_b0,p);return _b0;}};if(1){_2b.parser=_42;}if(_2e.parseOnLoad){_37(100,_42,"parse");}return _42;});},"dojo/date/stamp":function(){define("dojo/date/stamp",["../_base/lang","../_base/array"],function(_b3,_b4){var _b5={};_b3.setObject("dojo.date.stamp",_b5);_b5.fromISOString=function(_b6,_b7){if(!_b5._isoRegExp){_b5._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;}var _b8=_b5._isoRegExp.exec(_b6),_b9=null;if(_b8){_b8.shift();if(_b8[1]){_b8[1]--;}if(_b8[6]){_b8[6]*=1000;}if(_b7){_b7=new Date(_b7);_b4.forEach(_b4.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(_ba){return _b7["get"+_ba]();}),function(_bb,_bc){_b8[_bc]=_b8[_bc]||_bb;});}_b9=new Date(_b8[0]||1970,_b8[1]||0,_b8[2]||1,_b8[3]||0,_b8[4]||0,_b8[5]||0,_b8[6]||0);if(_b8[0]<100){_b9.setFullYear(_b8[0]||1970);}var _bd=0,_be=_b8[7]&&_b8[7].charAt(0);if(_be!="Z"){_bd=((_b8[8]||0)*60)+(Number(_b8[9])||0);if(_be!="-"){_bd*=-1;}}if(_be){_bd-=_b9.getTimezoneOffset();}if(_bd){_b9.setTime(_b9.getTime()+_bd*60000);}}return _b9;};_b5.toISOString=function(_bf,_c0){var _c1=function(n){return (n<10)?"0"+n:n;};_c0=_c0||{};var _c2=[],_c3=_c0.zulu?"getUTC":"get",_c4="";if(_c0.selector!="time"){var _c5=_bf[_c3+"FullYear"]();_c4=["0000".substr((_c5+"").length)+_c5,_c1(_bf[_c3+"Month"]()+1),_c1(_bf[_c3+"Date"]())].join("-");}_c2.push(_c4);if(_c0.selector!="date"){var _c6=[_c1(_bf[_c3+"Hours"]()),_c1(_bf[_c3+"Minutes"]()),_c1(_bf[_c3+"Seconds"]())].join(":");var _c7=_bf[_c3+"Milliseconds"]();if(_c0.milliseconds){_c6+="."+(_c7<100?"0":"")+_c1(_c7);}if(_c0.zulu){_c6+="Z";}else{if(_c0.selector!="time"){var _c8=_bf.getTimezoneOffset();var _c9=Math.abs(_c8);_c6+=(_c8>0?"-":"+")+_c1(Math.floor(_c9/60))+":"+_c1(_c9%60);}}_c2.push(_c6);}return _c2.join("T");};return _b5;});},"dojo/data/ItemFileWriteStore":function(){define("dojo/data/ItemFileWriteStore",["../_base/lang","../_base/declare","../_base/array","../_base/json","../_base/kernel","./ItemFileReadStore","../date/stamp"],function(_ca,_cb,_cc,_cd,_ce,_cf,_d0){return _cb("dojo.data.ItemFileWriteStore",_cf,{constructor:function(_d1){this._features["dojo.data.api.Write"]=true;this._features["dojo.data.api.Notification"]=true;this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};if(!this._datatypeMap["Date"].serialize){this._datatypeMap["Date"].serialize=function(obj){return _d0.toISOString(obj,{zulu:true});};}if(_d1&&(_d1.referenceIntegrity===false)){this.referenceIntegrity=false;}this._saveInProgress=false;},referenceIntegrity:true,_assert:function(_d2){if(!_d2){throw new Error("assertion failed in ItemFileWriteStore");}},_getIdentifierAttribute:function(){return this.getFeatures()["dojo.data.api.Identity"];},newItem:function(_d3,_d4){this._assert(!this._saveInProgress);if(!this._loadFinished){this._forceLoad();}if(typeof _d3!="object"&&typeof _d3!="undefined"){throw new Error("newItem() was passed something other than an object");}var _d5=null;var _d6=this._getIdentifierAttribute();if(_d6===Number){_d5=this._arrayOfAllItems.length;}else{_d5=_d3[_d6];if(typeof _d5==="undefined"){throw new Error("newItem() was not passed an identity for the new item");}if(_ca.isArray(_d5)){throw new Error("newItem() was not passed an single-valued identity");}}if(this._itemsByIdentity){this._assert(typeof this._itemsByIdentity[_d5]==="undefined");}this._assert(typeof this._pending._newItems[_d5]==="undefined");this._assert(typeof this._pending._deletedItems[_d5]==="undefined");var _d7={};_d7[this._storeRefPropName]=this;_d7[this._itemNumPropName]=this._arrayOfAllItems.length;if(this._itemsByIdentity){this._itemsByIdentity[_d5]=_d7;_d7[_d6]=[_d5];}this._arrayOfAllItems.push(_d7);var _d8=null;if(_d4&&_d4.parent&&_d4.attribute){_d8={item:_d4.parent,attribute:_d4.attribute,oldValue:undefined};var _d9=this.getValues(_d4.parent,_d4.attribute);if(_d9&&_d9.length>0){var _da=_d9.slice(0,_d9.length);if(_d9.length===1){_d8.oldValue=_d9[0];}else{_d8.oldValue=_d9.slice(0,_d9.length);}_da.push(_d7);this._setValueOrValues(_d4.parent,_d4.attribute,_da,false);_d8.newValue=this.getValues(_d4.parent,_d4.attribute);}else{this._setValueOrValues(_d4.parent,_d4.attribute,_d7,false);_d8.newValue=_d7;}}else{_d7[this._rootItemPropName]=true;this._arrayOfTopLevelItems.push(_d7);}this._pending._newItems[_d5]=_d7;for(var key in _d3){if(key===this._storeRefPropName||key===this._itemNumPropName){throw new Error("encountered bug in ItemFileWriteStore.newItem");}var _db=_d3[key];if(!_ca.isArray(_db)){_db=[_db];}_d7[key]=_db;if(this.referenceIntegrity){for(var i=0;i<_db.length;i++){var val=_db[i];if(this.isItem(val)){this._addReferenceToMap(val,_d7,key);}}}}this.onNew(_d7,_d8);return _d7;},_removeArrayElement:function(_dc,_dd){var _de=_cc.indexOf(_dc,_dd);if(_de!=-1){_dc.splice(_de,1);return true;}return false;},deleteItem:function(_df){this._assert(!this._saveInProgress);this._assertIsItem(_df);var _e0=_df[this._itemNumPropName];var _e1=this.getIdentity(_df);if(this.referenceIntegrity){var _e2=this.getAttributes(_df);if(_df[this._reverseRefMap]){_df["backup_"+this._reverseRefMap]=_ca.clone(_df[this._reverseRefMap]);}_cc.forEach(_e2,function(_e3){_cc.forEach(this.getValues(_df,_e3),function(_e4){if(this.isItem(_e4)){if(!_df["backupRefs_"+this._reverseRefMap]){_df["backupRefs_"+this._reverseRefMap]=[];}_df["backupRefs_"+this._reverseRefMap].push({id:this.getIdentity(_e4),attr:_e3});this._removeReferenceFromMap(_e4,_df,_e3);}},this);},this);var _e5=_df[this._reverseRefMap];if(_e5){for(var _e6 in _e5){var _e7=null;if(this._itemsByIdentity){_e7=this._itemsByIdentity[_e6];}else{_e7=this._arrayOfAllItems[_e6];}if(_e7){for(var _e8 in _e5[_e6]){var _e9=this.getValues(_e7,_e8)||[];var _ea=_cc.filter(_e9,function(_eb){return !(this.isItem(_eb)&&this.getIdentity(_eb)==_e1);},this);this._removeReferenceFromMap(_df,_e7,_e8);if(_ea.length<_e9.length){this._setValueOrValues(_e7,_e8,_ea,true);}}}}}}this._arrayOfAllItems[_e0]=null;_df[this._storeRefPropName]=null;if(this._itemsByIdentity){delete this._itemsByIdentity[_e1];}this._pending._deletedItems[_e1]=_df;if(_df[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,_df);}this.onDelete(_df);return true;},setValue:function(_ec,_ed,_ee){return this._setValueOrValues(_ec,_ed,_ee,true);},setValues:function(_ef,_f0,_f1){return this._setValueOrValues(_ef,_f0,_f1,true);},unsetAttribute:function(_f2,_f3){return this._setValueOrValues(_f2,_f3,[],true);},_setValueOrValues:function(_f4,_f5,_f6,_f7){this._assert(!this._saveInProgress);this._assertIsItem(_f4);this._assert(_ca.isString(_f5));this._assert(typeof _f6!=="undefined");var _f8=this._getIdentifierAttribute();if(_f5==_f8){throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier.");}var _f9=this._getValueOrValues(_f4,_f5);var _fa=this.getIdentity(_f4);if(!this._pending._modifiedItems[_fa]){var _fb={};for(var key in _f4){if((key===this._storeRefPropName)||(key===this._itemNumPropName)||(key===this._rootItemPropName)){_fb[key]=_f4[key];}else{if(key===this._reverseRefMap){_fb[key]=_ca.clone(_f4[key]);}else{_fb[key]=_f4[key].slice(0,_f4[key].length);}}}this._pending._modifiedItems[_fa]=_fb;}var _fc=false;if(_ca.isArray(_f6)&&_f6.length===0){_fc=delete _f4[_f5];_f6=undefined;if(this.referenceIntegrity&&_f9){var _fd=_f9;if(!_ca.isArray(_fd)){_fd=[_fd];}for(var i=0;i<_fd.length;i++){var _fe=_fd[i];if(this.isItem(_fe)){this._removeReferenceFromMap(_fe,_f4,_f5);}}}}else{var _ff;if(_ca.isArray(_f6)){_ff=_f6.slice(0,_f6.length);}else{_ff=[_f6];}if(this.referenceIntegrity){if(_f9){var _fd=_f9;if(!_ca.isArray(_fd)){_fd=[_fd];}var map={};_cc.forEach(_fd,function(_100){if(this.isItem(_100)){var id=this.getIdentity(_100);map[id.toString()]=true;}},this);_cc.forEach(_ff,function(_101){if(this.isItem(_101)){var id=this.getIdentity(_101);if(map[id.toString()]){delete map[id.toString()];}else{this._addReferenceToMap(_101,_f4,_f5);}}},this);for(var rId in map){var _102;if(this._itemsByIdentity){_102=this._itemsByIdentity[rId];}else{_102=this._arrayOfAllItems[rId];}this._removeReferenceFromMap(_102,_f4,_f5);}}else{for(var i=0;i<_ff.length;i++){var _fe=_ff[i];if(this.isItem(_fe)){this._addReferenceToMap(_fe,_f4,_f5);}}}}_f4[_f5]=_ff;_fc=true;}if(_f7){this.onSet(_f4,_f5,_f9,_f6);}return _fc;},_addReferenceToMap:function(_103,_104,_105){var _106=this.getIdentity(_104);var _107=_103[this._reverseRefMap];if(!_107){_107=_103[this._reverseRefMap]={};}var _108=_107[_106];if(!_108){_108=_107[_106]={};}_108[_105]=true;},_removeReferenceFromMap:function(_109,_10a,_10b){var _10c=this.getIdentity(_10a);var _10d=_109[this._reverseRefMap];var _10e;if(_10d){for(_10e in _10d){if(_10e==_10c){delete _10d[_10e][_10b];if(this._isEmpty(_10d[_10e])){delete _10d[_10e];}}}if(this._isEmpty(_10d)){delete _109[this._reverseRefMap];}}},_dumpReferenceMap:function(){var i;for(i=0;i<this._arrayOfAllItems.length;i++){var item=this._arrayOfAllItems[i];if(item&&item[this._reverseRefMap]){}}},_getValueOrValues:function(item,_10f){var _110=undefined;if(this.hasAttribute(item,_10f)){var _111=this.getValues(item,_10f);if(_111.length==1){_110=_111[0];}else{_110=_111;}}return _110;},_flatten:function(_112){if(this.isItem(_112)){return {_reference:this.getIdentity(_112)};}else{if(typeof _112==="object"){for(var type in this._datatypeMap){var _113=this._datatypeMap[type];if(_ca.isObject(_113)&&!_ca.isFunction(_113)){if(_112 instanceof _113.type){if(!_113.serialize){throw new Error("ItemFileWriteStore: No serializer defined for type mapping: ["+type+"]");}return {_type:type,_value:_113.serialize(_112)};}}else{if(_112 instanceof _113){return {_type:type,_value:_112.toString()};}}}}return _112;}},_getNewFileContentString:function(){var _114={};var _115=this._getIdentifierAttribute();if(_115!==Number){_114.identifier=_115;}if(this._labelAttr){_114.label=this._labelAttr;}_114.items=[];for(var i=0;i<this._arrayOfAllItems.length;++i){var item=this._arrayOfAllItems[i];if(item!==null){var _116={};for(var key in item){if(key!==this._storeRefPropName&&key!==this._itemNumPropName&&key!==this._reverseRefMap&&key!==this._rootItemPropName){var _117=this.getValues(item,key);if(_117.length==1){_116[key]=this._flatten(_117[0]);}else{var _118=[];for(var j=0;j<_117.length;++j){_118.push(this._flatten(_117[j]));_116[key]=_118;}}}}_114.items.push(_116);}}var _119=true;return _cd.toJson(_114,_119);},_isEmpty:function(_11a){var _11b=true;if(_ca.isObject(_11a)){var i;for(i in _11a){_11b=false;break;}}else{if(_ca.isArray(_11a)){if(_11a.length>0){_11b=false;}}}return _11b;},save:function(_11c){this._assert(!this._saveInProgress);this._saveInProgress=true;var self=this;var _11d=function(){self._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};self._saveInProgress=false;if(_11c&&_11c.onComplete){var _11e=_11c.scope||_ce.global;_11c.onComplete.call(_11e);}};var _11f=function(err){self._saveInProgress=false;if(_11c&&_11c.onError){var _120=_11c.scope||_ce.global;_11c.onError.call(_120,err);}};if(this._saveEverything){var _121=this._getNewFileContentString();this._saveEverything(_11d,_11f,_121);}if(this._saveCustom){this._saveCustom(_11d,_11f);}if(!this._saveEverything&&!this._saveCustom){_11d();}},revert:function(){this._assert(!this._saveInProgress);var _122;for(_122 in this._pending._modifiedItems){var _123=this._pending._modifiedItems[_122];var _124=null;if(this._itemsByIdentity){_124=this._itemsByIdentity[_122];}else{_124=this._arrayOfAllItems[_122];}_123[this._storeRefPropName]=this;for(var key in _124){delete _124[key];}_ca.mixin(_124,_123);}var _125;for(_122 in this._pending._deletedItems){_125=this._pending._deletedItems[_122];_125[this._storeRefPropName]=this;var _126=_125[this._itemNumPropName];if(_125["backup_"+this._reverseRefMap]){_125[this._reverseRefMap]=_125["backup_"+this._reverseRefMap];delete _125["backup_"+this._reverseRefMap];}this._arrayOfAllItems[_126]=_125;if(this._itemsByIdentity){this._itemsByIdentity[_122]=_125;}if(_125[this._rootItemPropName]){this._arrayOfTopLevelItems.push(_125);}}for(_122 in this._pending._deletedItems){_125=this._pending._deletedItems[_122];if(_125["backupRefs_"+this._reverseRefMap]){_cc.forEach(_125["backupRefs_"+this._reverseRefMap],function(_127){var _128;if(this._itemsByIdentity){_128=this._itemsByIdentity[_127.id];}else{_128=this._arrayOfAllItems[_127.id];}this._addReferenceToMap(_128,_125,_127.attr);},this);delete _125["backupRefs_"+this._reverseRefMap];}}for(_122 in this._pending._newItems){var _129=this._pending._newItems[_122];_129[this._storeRefPropName]=null;this._arrayOfAllItems[_129[this._itemNumPropName]]=null;if(_129[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,_129);}if(this._itemsByIdentity){delete this._itemsByIdentity[_122];}}this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};return true;},isDirty:function(item){if(item){var _12a=this.getIdentity(item);return new Boolean(this._pending._newItems[_12a]||this._pending._modifiedItems[_12a]||this._pending._deletedItems[_12a]).valueOf();}else{return !this._isEmpty(this._pending._newItems)||!this._isEmpty(this._pending._modifiedItems)||!this._isEmpty(this._pending._deletedItems);}},onSet:function(item,_12b,_12c,_12d){},onNew:function(_12e,_12f){},onDelete:function(_130){},close:function(_131){if(this.clearOnClose){if(!this.isDirty()){this.inherited(arguments);}else{throw new Error("dojo.data.ItemFileWriteStore: There are unsaved changes present in the store. Please save or revert the changes before invoking close.");}}}});});},"dojo/data/ItemFileReadStore":function(){define("dojo/data/ItemFileReadStore",["../_base/kernel","../_base/lang","../_base/declare","../_base/array","../_base/xhr","../Evented","./util/filter","./util/simpleFetch","../date/stamp"],function(_132,lang,_133,_134,xhr,_135,_136,_137,_138){var _139=_133("dojo.data.ItemFileReadStore",[_135],{constructor:function(_13a){this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._jsonFileUrl=_13a.url;this._ccUrl=_13a.url;this.url=_13a.url;this._jsonData=_13a.data;this.data=null;this._datatypeMap=_13a.typeMap||{};if(!this._datatypeMap["Date"]){this._datatypeMap["Date"]={type:Date,deserialize:function(_13b){return _138.fromISOString(_13b);}};}this._features={"dojo.data.api.Read":true,"dojo.data.api.Identity":true};this._itemsByIdentity=null;this._storeRefPropName="_S";this._itemNumPropName="_0";this._rootItemPropName="_RI";this._reverseRefMap="_RRM";this._loadInProgress=false;this._queuedFetches=[];if(_13a.urlPreventCache!==undefined){this.urlPreventCache=_13a.urlPreventCache?true:false;}if(_13a.hierarchical!==undefined){this.hierarchical=_13a.hierarchical?true:false;}if(_13a.clearOnClose){this.clearOnClose=true;}if("failOk" in _13a){this.failOk=_13a.failOk?true:false;}},url:"",_ccUrl:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,failOk:false,hierarchical:true,_assertIsItem:function(item){if(!this.isItem(item)){throw new Error(this.declaredClass+": Invalid item argument.");}},_assertIsAttribute:function(_13c){if(typeof _13c!=="string"){throw new Error(this.declaredClass+": Invalid attribute argument.");}},getValue:function(item,_13d,_13e){var _13f=this.getValues(item,_13d);return (_13f.length>0)?_13f[0]:_13e;},getValues:function(item,_140){this._assertIsItem(item);this._assertIsAttribute(_140);return (item[_140]||[]).slice(0);},getAttributes:function(item){this._assertIsItem(item);var _141=[];for(var key in item){if((key!==this._storeRefPropName)&&(key!==this._itemNumPropName)&&(key!==this._rootItemPropName)&&(key!==this._reverseRefMap)){_141.push(key);}}return _141;},hasAttribute:function(item,_142){this._assertIsItem(item);this._assertIsAttribute(_142);return (_142 in item);},containsValue:function(item,_143,_144){var _145=undefined;if(typeof _144==="string"){_145=_136.patternToRegExp(_144,false);}return this._containsValue(item,_143,_144,_145);},_containsValue:function(item,_146,_147,_148){return _134.some(this.getValues(item,_146),function(_149){if(_149!==null&&!lang.isObject(_149)&&_148){if(_149.toString().match(_148)){return true;}}else{if(_147===_149){return true;}}});},isItem:function(_14a){if(_14a&&_14a[this._storeRefPropName]===this){if(this._arrayOfAllItems[_14a[this._itemNumPropName]]===_14a){return true;}}return false;},isItemLoaded:function(_14b){return this.isItem(_14b);},loadItem:function(_14c){this._assertIsItem(_14c.item);},getFeatures:function(){return this._features;},getLabel:function(item){if(this._labelAttr&&this.isItem(item)){return this.getValue(item,this._labelAttr);}return undefined;},getLabelAttributes:function(item){if(this._labelAttr){return [this._labelAttr];}return null;},filter:function(_14d,_14e,_14f){var _150=[],i,key;if(_14d.query){var _151,_152=_14d.queryOptions?_14d.queryOptions.ignoreCase:false;var _153={};for(key in _14d.query){_151=_14d.query[key];if(typeof _151==="string"){_153[key]=_136.patternToRegExp(_151,_152);}else{if(_151 instanceof RegExp){_153[key]=_151;}}}for(i=0;i<_14e.length;++i){var _154=true;var _155=_14e[i];if(_155===null){_154=false;}else{for(key in _14d.query){_151=_14d.query[key];if(!this._containsValue(_155,key,_151,_153[key])){_154=false;}}}if(_154){_150.push(_155);}}_14f(_150,_14d);}else{for(i=0;i<_14e.length;++i){var item=_14e[i];if(item!==null){_150.push(item);}}_14f(_150,_14d);}},_fetchItems:function(_156,_157,_158){var self=this;if(this._loadFinished){this.filter(_156,this._getItemsArray(_156.queryOptions),_157);}else{if(this._jsonFileUrl!==this._ccUrl){_132.deprecated(this.declaredClass+": ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_156,filter:lang.hitch(self,"filter"),findCallback:lang.hitch(self,_157)});}else{this._loadInProgress=true;var _159={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _15a=xhr.get(_159);_15a.addCallback(function(data){try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;self.filter(_156,self._getItemsArray(_156.queryOptions),_157);self._handleQueuedFetches();}catch(e){self._loadFinished=true;self._loadInProgress=false;_158(e,_156);}});_15a.addErrback(function(_15b){self._loadInProgress=false;_158(_15b,_156);});var _15c=null;if(_156.abort){_15c=_156.abort;}_156.abort=function(){var df=_15a;if(df&&df.fired===-1){df.cancel();df=null;}if(_15c){_15c.call(_156);}};}}else{if(this._jsonData){try{this._loadFinished=true;this._getItemsFromLoadedData(this._jsonData);this._jsonData=null;self.filter(_156,this._getItemsArray(_156.queryOptions),_157);}catch(e){_158(e,_156);}}else{_158(new Error(this.declaredClass+": No JSON source data was provided as either URL or a nested Javascript object."),_156);}}}},_handleQueuedFetches:function(){if(this._queuedFetches.length>0){for(var i=0;i<this._queuedFetches.length;i++){var _15d=this._queuedFetches[i],_15e=_15d.args,_15f=_15d.filter,_160=_15d.findCallback;if(_15f){_15f(_15e,this._getItemsArray(_15e.queryOptions),_160);}else{this.fetchItemByIdentity(_15e);}}this._queuedFetches=[];}},_getItemsArray:function(_161){if(_161&&_161.deep){return this._arrayOfAllItems;}return this._arrayOfTopLevelItems;},close:function(_162){if(this.clearOnClose&&this._loadFinished&&!this._loadInProgress){if(((this._jsonFileUrl==""||this._jsonFileUrl==null)&&(this.url==""||this.url==null))&&this.data==null){}this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._itemsByIdentity=null;this._loadInProgress=false;this._queuedFetches=[];}},_getItemsFromLoadedData:function(_163){var _164=false,self=this;function _165(_166){return (_166!==null)&&(typeof _166==="object")&&(!lang.isArray(_166)||_164)&&(!lang.isFunction(_166))&&(_166.constructor==Object||lang.isArray(_166))&&(typeof _166._reference==="undefined")&&(typeof _166._type==="undefined")&&(typeof _166._value==="undefined")&&self.hierarchical;};function _167(_168){self._arrayOfAllItems.push(_168);for(var _169 in _168){var _16a=_168[_169];if(_16a){if(lang.isArray(_16a)){var _16b=_16a;for(var k=0;k<_16b.length;++k){var _16c=_16b[k];if(_165(_16c)){_167(_16c);}}}else{if(_165(_16a)){_167(_16a);}}}}};this._labelAttr=_163.label;var i,item;this._arrayOfAllItems=[];this._arrayOfTopLevelItems=_163.items;for(i=0;i<this._arrayOfTopLevelItems.length;++i){item=this._arrayOfTopLevelItems[i];if(lang.isArray(item)){_164=true;}_167(item);item[this._rootItemPropName]=true;}var _16d={},key;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){if(key!==this._rootItemPropName){var _16e=item[key];if(_16e!==null){if(!lang.isArray(_16e)){item[key]=[_16e];}}else{item[key]=[null];}}_16d[key]=key;}}while(_16d[this._storeRefPropName]){this._storeRefPropName+="_";}while(_16d[this._itemNumPropName]){this._itemNumPropName+="_";}while(_16d[this._reverseRefMap]){this._reverseRefMap+="_";}var _16f;var _170=_163.identifier;if(_170){this._itemsByIdentity={};this._features["dojo.data.api.Identity"]=_170;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];_16f=item[_170];var _171=_16f[0];if(!Object.hasOwnProperty.call(this._itemsByIdentity,_171)){this._itemsByIdentity[_171]=item;}else{if(this._jsonFileUrl){throw new Error(this.declaredClass+": The json data as specified by: ["+this._jsonFileUrl+"] is malformed. Items within the list have identifier: ["+_170+"]. Value collided: ["+_171+"]");}else{if(this._jsonData){throw new Error(this.declaredClass+": The json data provided by the creation arguments is malformed. Items within the list have identifier: ["+_170+"]. Value collided: ["+_171+"]");}}}}}else{this._features["dojo.data.api.Identity"]=Number;}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];item[this._storeRefPropName]=this;item[this._itemNumPropName]=i;}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){_16f=item[key];for(var j=0;j<_16f.length;++j){_16e=_16f[j];if(_16e!==null&&typeof _16e=="object"){if(("_type" in _16e)&&("_value" in _16e)){var type=_16e._type;var _172=this._datatypeMap[type];if(!_172){throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '"+type+"'");}else{if(lang.isFunction(_172)){_16f[j]=new _172(_16e._value);}else{if(lang.isFunction(_172.deserialize)){_16f[j]=_172.deserialize(_16e._value);}else{throw new Error("dojo.data.ItemFileReadStore: Value provided in typeMap was neither a constructor, nor a an object with a deserialize function");}}}}if(_16e._reference){var _173=_16e._reference;if(!lang.isObject(_173)){_16f[j]=this._getItemByIdentity(_173);}else{for(var k=0;k<this._arrayOfAllItems.length;++k){var _174=this._arrayOfAllItems[k],_175=true;for(var _176 in _173){if(_174[_176]!=_173[_176]){_175=false;}}if(_175){_16f[j]=_174;}}}if(this.referenceIntegrity){var _177=_16f[j];if(this.isItem(_177)){this._addReferenceToMap(_177,item,key);}}}else{if(this.isItem(_16e)){if(this.referenceIntegrity){this._addReferenceToMap(_16e,item,key);}}}}}}}},_addReferenceToMap:function(_178,_179,_17a){},getIdentity:function(item){var _17b=this._features["dojo.data.api.Identity"];if(_17b===Number){return item[this._itemNumPropName];}else{var _17c=item[_17b];if(_17c){return _17c[0];}}return null;},fetchItemByIdentity:function(_17d){var item,_17e;if(!this._loadFinished){var self=this;if(this._jsonFileUrl!==this._ccUrl){_132.deprecated(this.declaredClass+": ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_17d});}else{this._loadInProgress=true;var _17f={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _180=xhr.get(_17f);_180.addCallback(function(data){var _181=_17d.scope?_17d.scope:_132.global;try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;item=self._getItemByIdentity(_17d.identity);if(_17d.onItem){_17d.onItem.call(_181,item);}self._handleQueuedFetches();}catch(error){self._loadInProgress=false;if(_17d.onError){_17d.onError.call(_181,error);}}});_180.addErrback(function(_182){self._loadInProgress=false;if(_17d.onError){var _183=_17d.scope?_17d.scope:_132.global;_17d.onError.call(_183,_182);}});}}else{if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;item=self._getItemByIdentity(_17d.identity);if(_17d.onItem){_17e=_17d.scope?_17d.scope:_132.global;_17d.onItem.call(_17e,item);}}}}else{item=this._getItemByIdentity(_17d.identity);if(_17d.onItem){_17e=_17d.scope?_17d.scope:_132.global;_17d.onItem.call(_17e,item);}}},_getItemByIdentity:function(_184){var item=null;if(this._itemsByIdentity){if(Object.hasOwnProperty.call(this._itemsByIdentity,_184)){item=this._itemsByIdentity[_184];}}else{if(Object.hasOwnProperty.call(this._arrayOfAllItems,_184)){item=this._arrayOfAllItems[_184];}}if(item===undefined){item=null;}return item;},getIdentityAttributes:function(item){var _185=this._features["dojo.data.api.Identity"];if(_185===Number){return null;}else{return [_185];}},_forceLoad:function(){var self=this;if(this._jsonFileUrl!==this._ccUrl){_132.deprecated(this.declaredClass+": ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){var _186={url:this._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk,sync:true};var _187=xhr.get(_186);_187.addCallback(function(data){try{if(self._loadInProgress!==true&&!self._loadFinished){self._getItemsFromLoadedData(data);self._loadFinished=true;}else{if(self._loadInProgress){throw new Error(this.declaredClass+": Unable to perform a synchronous load, an async load is in progress.");}}}catch(e){throw e;}});_187.addErrback(function(_188){throw _188;});}else{if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;}}}});lang.extend(_139,_137);return _139;});},"dojo/data/util/filter":function(){define("dojo/data/util/filter",["../../_base/lang"],function(lang){var _189={};lang.setObject("dojo.data.util.filter",_189);_189.patternToRegExp=function(_18a,_18b){var rxp="^";var c=null;for(var i=0;i<_18a.length;i++){c=_18a.charAt(i);switch(c){case "\\":rxp+=c;i++;rxp+=_18a.charAt(i);break;case "*":rxp+=".*";break;case "?":rxp+=".";break;case "$":case "^":case "/":case "+":case ".":case "|":case "(":case ")":case "{":case "}":case "[":case "]":rxp+="\\";default:rxp+=c;}}rxp+="$";if(_18b){return new RegExp(rxp,"mi");}else{return new RegExp(rxp,"m");}};return _189;});},"dojo/data/util/simpleFetch":function(){define("dojo/data/util/simpleFetch",["../../_base/lang","../../_base/kernel","./sorter"],function(lang,_18c,_18d){var _18e={};lang.setObject("dojo.data.util.simpleFetch",_18e);_18e.errorHandler=function(_18f,_190){if(_190.onError){var _191=_190.scope||_18c.global;_190.onError.call(_191,_18f,_190);}};_18e.fetchHandler=function(_192,_193){var _194=_193.abort||null,_195=false,_196=_193.start?_193.start:0,_197=(_193.count&&(_193.count!==Infinity))?(_196+_193.count):_192.length;_193.abort=function(){_195=true;if(_194){_194.call(_193);}};var _198=_193.scope||_18c.global;if(!_193.store){_193.store=this;}if(_193.onBegin){_193.onBegin.call(_198,_192.length,_193);}if(_193.sort){_192.sort(_18d.createSortFunction(_193.sort,this));}if(_193.onItem){for(var i=_196;(i<_192.length)&&(i<_197);++i){var item=_192[i];if(!_195){_193.onItem.call(_198,item,_193);}}}if(_193.onComplete&&!_195){var _199=null;if(!_193.onItem){_199=_192.slice(_196,_197);}_193.onComplete.call(_198,_199,_193);}};_18e.fetch=function(_19a){_19a=_19a||{};if(!_19a.store){_19a.store=this;}this._fetchItems(_19a,lang.hitch(this,"fetchHandler"),lang.hitch(this,"errorHandler"));return _19a;};return _18e;});},"dojo/data/util/sorter":function(){define("dojo/data/util/sorter",["../../_base/lang"],function(lang){var _19b={};lang.setObject("dojo.data.util.sorter",_19b);_19b.basicComparator=function(a,b){var r=-1;if(a===null){a=undefined;}if(b===null){b=undefined;}if(a==b){r=0;}else{if(a>b||a==null){r=1;}}return r;};_19b.createSortFunction=function(_19c,_19d){var _19e=[];function _19f(attr,dir,comp,s){return function(_1a0,_1a1){var a=s.getValue(_1a0,attr);var b=s.getValue(_1a1,attr);return dir*comp(a,b);};};var _1a2;var map=_19d.comparatorMap;var bc=_19b.basicComparator;for(var i=0;i<_19c.length;i++){_1a2=_19c[i];var attr=_1a2.attribute;if(attr){var dir=(_1a2.descending)?-1:1;var comp=bc;if(map){if(typeof attr!=="string"&&("toString" in attr)){attr=attr.toString();}comp=map[attr]||bc;}_19e.push(_19f(attr,dir,comp,_19d));}}return function(rowA,rowB){var i=0;while(i<_19e.length){var ret=_19e[i++](rowA,rowB);if(ret!==0){return ret;}}return 0;};};return _19b;});},"dojo/selector/acme":function(){define("dojo/selector/acme",["../dom","../sniff","../_base/array","../_base/lang","../_base/window"],function(dom,has,_1a3,lang,win){var trim=lang.trim;var each=_1a3.forEach;var _1a4=function(){return win.doc;};var _1a5=(_1a4().compatMode)=="BackCompat";var _1a6=">~+";var _1a7=false;var _1a8=function(){return true;};var _1a9=function(_1aa){if(_1a6.indexOf(_1aa.slice(-1))>=0){_1aa+=" * ";}else{_1aa+=" ";}var ts=function(s,e){return trim(_1aa.slice(s,e));};var _1ab=[];var _1ac=-1,_1ad=-1,_1ae=-1,_1af=-1,_1b0=-1,inId=-1,_1b1=-1,_1b2,lc="",cc="",_1b3;var x=0,ql=_1aa.length,_1b4=null,_1b5=null;var _1b6=function(){if(_1b1>=0){var tv=(_1b1==x)?null:ts(_1b1,x);_1b4[(_1a6.indexOf(tv)<0)?"tag":"oper"]=tv;_1b1=-1;}};var _1b7=function(){if(inId>=0){_1b4.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var _1b8=function(){if(_1b0>=0){_1b4.classes.push(ts(_1b0+1,x).replace(/\\/g,""));_1b0=-1;}};var _1b9=function(){_1b7();_1b6();_1b8();};var _1ba=function(){_1b9();if(_1af>=0){_1b4.pseudos.push({name:ts(_1af+1,x)});}_1b4.loops=(_1b4.pseudos.length||_1b4.attrs.length||_1b4.classes.length);_1b4.oquery=_1b4.query=ts(_1b3,x);_1b4.otag=_1b4.tag=(_1b4["oper"])?null:(_1b4.tag||"*");if(_1b4.tag){_1b4.tag=_1b4.tag.toUpperCase();}if(_1ab.length&&(_1ab[_1ab.length-1].oper)){_1b4.infixOper=_1ab.pop();_1b4.query=_1b4.infixOper.query+" "+_1b4.query;}_1ab.push(_1b4);_1b4=null;};for(;lc=cc,cc=_1aa.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_1b4){_1b3=x;_1b4={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return _1a7?this.otag:this.tag;}};_1b1=x;}if(_1b2){if(cc==_1b2){_1b2=null;}continue;}else{if(cc=="'"||cc=="\""){_1b2=cc;continue;}}if(_1ac>=0){if(cc=="]"){if(!_1b5.attr){_1b5.attr=ts(_1ac+1,x);}else{_1b5.matchFor=ts((_1ae||_1ac+1),x);}var cmf=_1b5.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_1b5.matchFor=cmf.slice(1,-1);}}if(_1b5.matchFor){_1b5.matchFor=_1b5.matchFor.replace(/\\/g,"");}_1b4.attrs.push(_1b5);_1b5=null;_1ac=_1ae=-1;}else{if(cc=="="){var _1bb=("|~^$*".indexOf(lc)>=0)?lc:"";_1b5.type=_1bb+cc;_1b5.attr=ts(_1ac+1,x-_1bb.length);_1ae=x+1;}}}else{if(_1ad>=0){if(cc==")"){if(_1af>=0){_1b5.value=ts(_1ad+1,x);}_1af=_1ad=-1;}}else{if(cc=="#"){_1b9();inId=x+1;}else{if(cc=="."){_1b9();_1b0=x;}else{if(cc==":"){_1b9();_1af=x;}else{if(cc=="["){_1b9();_1ac=x;_1b5={};}else{if(cc=="("){if(_1af>=0){_1b5={name:ts(_1af+1,x),value:null};_1b4.pseudos.push(_1b5);}_1ad=x;}else{if((cc==" ")&&(lc!=cc)){_1ba();}}}}}}}}}return _1ab;};var _1bc=function(_1bd,_1be){if(!_1bd){return _1be;}if(!_1be){return _1bd;}return function(){return _1bd.apply(window,arguments)&&_1be.apply(window,arguments);};};var _1bf=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _1c0=function(n){return (1==n.nodeType);};var _1c1="";var _1c2=function(elem,attr){if(!elem){return _1c1;}if(attr=="class"){return elem.className||_1c1;}if(attr=="for"){return elem.htmlFor||_1c1;}if(attr=="style"){return elem.style.cssText||_1c1;}return (_1a7?elem.getAttribute(attr):elem.getAttribute(attr,2))||_1c1;};var _1c3={"*=":function(attr,_1c4){return function(elem){return (_1c2(elem,attr).indexOf(_1c4)>=0);};},"^=":function(attr,_1c5){return function(elem){return (_1c2(elem,attr).indexOf(_1c5)==0);};},"$=":function(attr,_1c6){return function(elem){var ea=" "+_1c2(elem,attr);var _1c7=ea.lastIndexOf(_1c6);return _1c7>-1&&(_1c7==(ea.length-_1c6.length));};},"~=":function(attr,_1c8){var tval=" "+_1c8+" ";return function(elem){var ea=" "+_1c2(elem,attr)+" ";return (ea.indexOf(tval)>=0);};},"|=":function(attr,_1c9){var _1ca=_1c9+"-";return function(elem){var ea=_1c2(elem,attr);return ((ea==_1c9)||(ea.indexOf(_1ca)==0));};},"=":function(attr,_1cb){return function(elem){return (_1c2(elem,attr)==_1cb);};}};var _1cc=(typeof _1a4().firstChild.nextElementSibling=="undefined");var _1cd=!_1cc?"nextElementSibling":"nextSibling";var _1ce=!_1cc?"previousElementSibling":"previousSibling";var _1cf=(_1cc?_1c0:_1a8);var _1d0=function(node){while(node=node[_1ce]){if(_1cf(node)){return false;}}return true;};var _1d1=function(node){while(node=node[_1cd]){if(_1cf(node)){return false;}}return true;};var _1d2=function(node){var root=node.parentNode;root=root.nodeType!=7?root:root.nextSibling;var i=0,tret=root.children||root.childNodes,ci=(node["_i"]||node.getAttribute("_i")||-1),cl=(root["_l"]||(typeof root.getAttribute!=="undefined"?root.getAttribute("_l"):-1));if(!tret){return -1;}var l=tret.length;if(cl==l&&ci>=0&&cl>=0){return ci;}if(has("ie")&&typeof root.setAttribute!=="undefined"){root.setAttribute("_l",l);}else{root["_l"]=l;}ci=-1;for(var te=root["firstElementChild"]||root["firstChild"];te;te=te[_1cd]){if(_1cf(te)){if(has("ie")){te.setAttribute("_i",++i);}else{te["_i"]=++i;}if(node===te){ci=i;}}}return ci;};var _1d3=function(elem){return !((_1d2(elem))%2);};var _1d4=function(elem){return ((_1d2(elem))%2);};var _1d5={"checked":function(name,_1d6){return function(elem){return !!("checked" in elem?elem.checked:elem.selected);};},"disabled":function(name,_1d7){return function(elem){return elem.disabled;};},"enabled":function(name,_1d8){return function(elem){return !elem.disabled;};},"first-child":function(){return _1d0;},"last-child":function(){return _1d1;},"only-child":function(name,_1d9){return function(node){return _1d0(node)&&_1d1(node);};},"empty":function(name,_1da){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(name,_1db){var cz=_1db.charAt(0);if(cz=="\""||cz=="'"){_1db=_1db.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_1db)>=0);};},"not":function(name,_1dc){var p=_1a9(_1dc)[0];var _1dd={el:1};if(p.tag!="*"){_1dd.tag=1;}if(!p.classes.length){_1dd.classes=1;}var ntf=_1de(p,_1dd);return function(elem){return (!ntf(elem));};},"nth-child":function(name,_1df){var pi=parseInt;if(_1df=="odd"){return _1d4;}else{if(_1df=="even"){return _1d3;}}if(_1df.indexOf("n")!=-1){var _1e0=_1df.split("n",2);var pred=_1e0[0]?((_1e0[0]=="-")?-1:pi(_1e0[0])):1;var idx=_1e0[1]?pi(_1e0[1]):0;var lb=0,ub=-1;if(pred>0){if(idx<0){idx=(idx%pred)&&(pred+(idx%pred));}else{if(idx>0){if(idx>=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred<0){pred*=-1;if(idx>0){ub=idx;idx=idx%pred;}}}if(pred>0){return function(elem){var i=_1d2(elem);return (i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_1df=idx;}}var _1e1=pi(_1df);return function(elem){return (_1d2(elem)==_1e1);};}};var _1e2=(has("ie")<9||has("ie")==9&&has("quirks"))?function(cond){var clc=cond.toLowerCase();if(clc=="class"){cond="className";}return function(elem){return (_1a7?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var _1de=function(_1e3,_1e4){if(!_1e3){return _1a8;}_1e4=_1e4||{};var ff=null;if(!("el" in _1e4)){ff=_1bc(ff,_1c0);}if(!("tag" in _1e4)){if(_1e3.tag!="*"){ff=_1bc(ff,function(elem){return (elem&&((_1a7?elem.tagName:elem.tagName.toUpperCase())==_1e3.getTag()));});}}if(!("classes" in _1e4)){each(_1e3.classes,function(_1e5,idx,arr){var re=new RegExp("(?:^|\\s)"+_1e5+"(?:\\s|$)");ff=_1bc(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in _1e4)){each(_1e3.pseudos,function(_1e6){var pn=_1e6.name;if(_1d5[pn]){ff=_1bc(ff,_1d5[pn](pn,_1e6.value));}});}if(!("attrs" in _1e4)){each(_1e3.attrs,function(attr){var _1e7;var a=attr.attr;if(attr.type&&_1c3[attr.type]){_1e7=_1c3[attr.type](a,attr.matchFor);}else{if(a.length){_1e7=_1e2(a);}}if(_1e7){ff=_1bc(ff,_1e7);}});}if(!("id" in _1e4)){if(_1e3.id){ff=_1bc(ff,function(elem){return (!!elem&&(elem.id==_1e3.id));});}}if(!ff){if(!("default" in _1e4)){ff=_1a8;}}return ff;};var _1e8=function(_1e9){return function(node,ret,bag){while(node=node[_1cd]){if(_1cc&&(!_1c0(node))){continue;}if((!bag||_1ea(node,bag))&&_1e9(node)){ret.push(node);}break;}return ret;};};var _1eb=function(_1ec){return function(root,ret,bag){var te=root[_1cd];while(te){if(_1cf(te)){if(bag&&!_1ea(te,bag)){break;}if(_1ec(te)){ret.push(te);}}te=te[_1cd];}return ret;};};var _1ed=function(_1ee){_1ee=_1ee||_1a8;return function(root,ret,bag){var te,x=0,tret=root.children||root.childNodes;while(te=tret[x++]){if(_1cf(te)&&(!bag||_1ea(te,bag))&&(_1ee(te,x))){ret.push(te);}}return ret;};};var _1ef=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _1f0={};var _1f1=function(_1f2){var _1f3=_1f0[_1f2.query];if(_1f3){return _1f3;}var io=_1f2.infixOper;var oper=(io?io.oper:"");var _1f4=_1de(_1f2,{el:1});var qt=_1f2.tag;var _1f5=("*"==qt);var ecs=_1a4()["getElementsByClassName"];if(!oper){if(_1f2.id){_1f4=(!_1f2.loops&&_1f5)?_1a8:_1de(_1f2,{el:1,id:1});_1f3=function(root,arr){var te=dom.byId(_1f2.id,(root.ownerDocument||root));if(!te||!_1f4(te)){return;}if(9==root.nodeType){return _1bf(te,arr);}else{if(_1ef(te,root)){return _1bf(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_1f2.classes.length&&!_1a5){_1f4=_1de(_1f2,{el:1,classes:1,id:1});var _1f6=_1f2.classes.join(" ");_1f3=function(root,arr,bag){var ret=_1bf(0,arr),te,x=0;var tret=root.getElementsByClassName(_1f6);while((te=tret[x++])){if(_1f4(te,root)&&_1ea(te,bag)){ret.push(te);}}return ret;};}else{if(!_1f5&&!_1f2.loops){_1f3=function(root,arr,bag){var ret=_1bf(0,arr),te,x=0;var tag=_1f2.getTag(),tret=tag?root.getElementsByTagName(tag):[];while((te=tret[x++])){if(_1ea(te,bag)){ret.push(te);}}return ret;};}else{_1f4=_1de(_1f2,{el:1,tag:1,id:1});_1f3=function(root,arr,bag){var ret=_1bf(0,arr),te,x=0;var tag=_1f2.getTag(),tret=tag?root.getElementsByTagName(tag):[];while((te=tret[x++])){if(_1f4(te,root)&&_1ea(te,bag)){ret.push(te);}}return ret;};}}}}else{var _1f7={el:1};if(_1f5){_1f7.tag=1;}_1f4=_1de(_1f2,_1f7);if("+"==oper){_1f3=_1e8(_1f4);}else{if("~"==oper){_1f3=_1eb(_1f4);}else{if(">"==oper){_1f3=_1ed(_1f4);}}}}return _1f0[_1f2.query]=_1f3;};var _1f8=function(root,_1f9){var _1fa=_1bf(root),qp,x,te,qpl=_1f9.length,bag,ret;for(var i=0;i<qpl;i++){ret=[];qp=_1f9[i];x=_1fa.length-1;if(x>0){bag={};ret.nozip=true;}var gef=_1f1(qp);for(var j=0;(te=_1fa[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_1fa=ret;}return ret;};var _1fb={},_1fc={};var _1fd=function(_1fe){var _1ff=_1a9(trim(_1fe));if(_1ff.length==1){var tef=_1f1(_1ff[0]);return function(root){var r=tef(root,[]);if(r){r.nozip=true;}return r;};}return function(root){return _1f8(root,_1ff);};};var _200=has("ie")?"commentStrip":"nozip";var qsa="querySelectorAll";var _201=!!_1a4()[qsa];var _202=/\\[>~+]|n\+\d|([^ \\])?([>~+])([^ =])?/g;var _203=function(_204,pre,ch,post){return ch?(pre?pre+" ":"")+ch+(post?" "+post:""):_204;};var _205=/([^[]*)([^\]]*])?/g;var _206=function(_207,_208,att){return _208.replace(_202,_203)+(att||"");};var _209=function(_20a,_20b){_20a=_20a.replace(_205,_206);if(_201){var _20c=_1fc[_20a];if(_20c&&!_20b){return _20c;}}var _20d=_1fb[_20a];if(_20d){return _20d;}var qcz=_20a.charAt(0);var _20e=(-1==_20a.indexOf(" "));if((_20a.indexOf("#")>=0)&&(_20e)){_20b=true;}var _20f=(_201&&(!_20b)&&(_1a6.indexOf(qcz)==-1)&&(!has("ie")||(_20a.indexOf(":")==-1))&&(!(_1a5&&(_20a.indexOf(".")>=0)))&&(_20a.indexOf(":contains")==-1)&&(_20a.indexOf(":checked")==-1)&&(_20a.indexOf("|=")==-1));if(_20f){var tq=(_1a6.indexOf(_20a.charAt(_20a.length-1))>=0)?(_20a+" *"):_20a;return _1fc[_20a]=function(root){try{if(!((9==root.nodeType)||_20e)){throw "";}var r=root[qsa](tq);r[_200]=true;return r;}catch(e){return _209(_20a,true)(root);}};}else{var _210=_20a.match(/([^\s,](?:"(?:\\.|[^"])+"|'(?:\\.|[^'])+'|[^,])*)/g);return _1fb[_20a]=((_210.length<2)?_1fd(_20a):function(root){var _211=0,ret=[],tp;while((tp=_210[_211++])){ret=ret.concat(_1fd(tp)(root));}return ret;});}};var _212=0;var _213=has("ie")?function(node){if(_1a7){return (node.getAttribute("_uid")||node.setAttribute("_uid",++_212)||_212);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_212));};var _1ea=function(node,bag){if(!bag){return 1;}var id=_213(node);if(!bag[id]){return bag[id]=1;}return 0;};var _214="_zipIdx";var _215=function(arr){if(arr&&arr.nozip){return arr;}var ret=[];if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_212++;var x,te;if(has("ie")&&_1a7){var _216=_212+"";arr[0].setAttribute(_214,_216);for(x=1;te=arr[x];x++){if(arr[x].getAttribute(_214)!=_216){ret.push(te);}te.setAttribute(_214,_216);}}else{if(has("ie")&&arr.commentStrip){try{for(x=1;te=arr[x];x++){if(_1c0(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_214]=_212;}for(x=1;te=arr[x];x++){if(arr[x][_214]!=_212){ret.push(te);}te[_214]=_212;}}}return ret;};var _217=function(_218,root){root=root||_1a4();var od=root.ownerDocument||root;_1a7=(od.createElement("div").tagName==="div");var r=_209(_218)(root);if(r&&r.nozip){return r;}return _215(r);};_217.filter=function(_219,_21a,root){var _21b=[],_21c=_1a9(_21a),_21d=(_21c.length==1&&!/[^\w#\.]/.test(_21a))?_1de(_21c[0]):function(node){return _1a3.indexOf(_217(_21a,dom.byId(root)),node)!=-1;};for(var x=0,te;te=_219[x];x++){if(_21d(te)){_21b.push(te);}}return _21b;};return _217;});},"dojo/Stateful":function(){define("dojo/Stateful",["./_base/declare","./_base/lang","./_base/array","dojo/when"],function(_21e,lang,_21f,when){return _21e("dojo.Stateful",null,{_attrPairNames:{},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name]){return apn[name];}return (apn[name]={s:"_"+name+"Setter",g:"_"+name+"Getter"});},postscript:function(_220){if(_220){this.set(_220);}},_get:function(name,_221){return typeof this[_221.g]==="function"?this[_221.g]():this[name];},get:function(name){return this._get(name,this._getAttrNames(name));},set:function(name,_222){if(typeof name==="object"){for(var x in name){if(name.hasOwnProperty(x)&&x!="_watchCallbacks"){this.set(x,name[x]);}}return this;}var _223=this._getAttrNames(name),_224=this._get(name,_223),_225=this[_223.s],_226;if(typeof _225==="function"){_226=_225.apply(this,Array.prototype.slice.call(arguments,1));}else{this[name]=_222;}if(this._watchCallbacks){var self=this;when(_226,function(){self._watchCallbacks(name,_224,_222);});}return this;},_changeAttrValue:function(name,_227){var _228=this.get(name);this[name]=_227;if(this._watchCallbacks){this._watchCallbacks(name,_228,_227);}return this;},watch:function(name,_229){var _22a=this._watchCallbacks;if(!_22a){var self=this;_22a=this._watchCallbacks=function(name,_22b,_22c,_22d){var _22e=function(_22f){if(_22f){_22f=_22f.slice();for(var i=0,l=_22f.length;i<l;i++){_22f[i].call(self,name,_22b,_22c);}}};_22e(_22a["_"+name]);if(!_22d){_22e(_22a["*"]);}};}if(!_229&&typeof name==="function"){_229=name;name="*";}else{name="_"+name;}var _230=_22a[name];if(typeof _230!=="object"){_230=_22a[name]=[];}_230.push(_229);var _231={};_231.unwatch=_231.remove=function(){var _232=_21f.indexOf(_230,_229);if(_232>-1){_230.splice(_232,1);}};return _231;}});});},"dojo/string":function(){define("dojo/string",["./_base/kernel","./_base/lang"],function(_233,lang){var _234={};lang.setObject("dojo.string",_234);_234.rep=function(str,num){if(num<=0||!str){return "";}var buf=[];for(;;){if(num&1){buf.push(str);}if(!(num>>=1)){break;}str+=str;}return buf.join("");};_234.pad=function(text,size,ch,end){if(!ch){ch="0";}var out=String(text),pad=_234.rep(ch,Math.ceil((size-out.length)/ch.length));return end?out+pad:pad+out;};_234.substitute=function(_235,map,_236,_237){_237=_237||_233.global;_236=_236?lang.hitch(_237,_236):function(v){return v;};return _235.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_238,key,_239){var _23a=lang.getObject(key,false,map);if(_239){_23a=lang.getObject(_239,false,_237).call(_237,_23a,key);}return _236(_23a,key).toString();});};_234.trim=String.prototype.trim?lang.trim:function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;};return _234;});},"dojo/touch":function(){define("dojo/touch",["./_base/kernel","./aspect","./dom","./on","./has","./mouse","./ready","./_base/window"],function(dojo,_23b,dom,on,has,_23c,_23d,win){var _23e=has("touch");var ios4=false;if(has("ios")){var ua=navigator.userAgent;var v=ua.match(/OS ([\d_]+)/)?RegExp.$1:"1";var os=parseFloat(v.replace(/_/,".").replace(/_/g,""));ios4=os<5;}var _23f,_240;if(_23e){_23d(function(){_240=win.body();win.doc.addEventListener("touchstart",function(evt){var _241=_240;_240=evt.target;on.emit(_241,"dojotouchout",{target:_241,relatedTarget:_240,bubbles:true});on.emit(_240,"dojotouchover",{target:_240,relatedTarget:_241,bubbles:true});},true);on(win.doc,"touchmove",function(evt){var _242=win.doc.elementFromPoint(evt.pageX-(ios4?0:win.global.pageXOffset),evt.pageY-(ios4?0:win.global.pageYOffset));if(_242&&_240!==_242){on.emit(_240,"dojotouchout",{target:_240,relatedTarget:_242,bubbles:true});on.emit(_242,"dojotouchover",{target:_242,relatedTarget:_240,bubbles:true});_240=_242;}});});_23f=function(node,_243){return on(win.doc,"touchmove",function(evt){if(node===win.doc||dom.isDescendant(_240,node)){evt.target=_240;_243.call(this,evt);}});};}function _244(type){return function(node,_245){return on(node,type,_245);};};var _246={press:_244(_23e?"touchstart":"mousedown"),move:_23e?_23f:_244("mousemove"),release:_244(_23e?"touchend":"mouseup"),cancel:_23e?_244("touchcancel"):_23c.leave,over:_244(_23e?"dojotouchover":"mouseover"),out:_244(_23e?"dojotouchout":"mouseout"),enter:_23c._eventHandler(_23e?"dojotouchover":"mouseover"),leave:_23c._eventHandler(_23e?"dojotouchout":"mouseout")};1&&(dojo.touch=_246);return _246;});},"dojo/uacss":function(){define("dojo/uacss",["./dom-geometry","./_base/lang","./ready","./sniff","./_base/window"],function(_247,lang,_248,has,_249){var html=_249.doc.documentElement,ie=has("ie"),_24a=has("opera"),maj=Math.floor,ff=has("ff"),_24b=_247.boxModel.replace(/-/,""),_24c={"dj_quirks":has("quirks"),"dj_opera":_24a,"dj_khtml":has("khtml"),"dj_webkit":has("webkit"),"dj_safari":has("safari"),"dj_chrome":has("chrome"),"dj_gecko":has("mozilla")};if(ie){_24c["dj_ie"]=true;_24c["dj_ie"+maj(ie)]=true;_24c["dj_iequirks"]=has("quirks");}if(ff){_24c["dj_ff"+maj(ff)]=true;}_24c["dj_"+_24b]=true;var _24d="";for(var clz in _24c){if(_24c[clz]){_24d+=clz+" ";}}html.className=lang.trim(html.className+" "+_24d);_248(90,function(){if(!_247.isBodyLtr()){var _24e="dj_rtl dijitRtl "+_24d.replace(/ /g,"-rtl ");html.className=lang.trim(html.className+" "+_24e+"dj_rtl dijitRtl "+_24d.replace(/ /g,"-rtl "));}});return has;});},"dojo/window":function(){define("dojo/window",["./_base/lang","./sniff","./_base/window","./dom","./dom-geometry","./dom-style"],function(lang,has,_24f,dom,geom,_250){var _251={getBox:function(doc){doc=doc||_24f.doc;var _252=(doc.compatMode=="BackCompat")?_24f.body(doc):doc.documentElement,_253=geom.docScroll(doc),w,h;if(has("touch")){var _254=_251.get(doc);w=_254.innerWidth||_252.clientWidth;h=_254.innerHeight||_252.clientHeight;}else{w=_252.clientWidth;h=_252.clientHeight;}return {l:_253.x,t:_253.y,w:w,h:h};},get:function(doc){if(has("ie")&&_251!==document.parentWindow){doc.parentWindow.execScript("document._parentWindow = window;","Javascript");var win=doc._parentWindow;doc._parentWindow=null;return win;}return doc.parentWindow||doc.defaultView;},scrollIntoView:function(node,pos){try{node=dom.byId(node);var doc=node.ownerDocument||_24f.doc,body=_24f.body(doc),html=doc.documentElement||body.parentNode,isIE=has("ie"),isWK=has("webkit");if((!(has("mozilla")||isIE||isWK||has("opera"))||node==body||node==html)&&(typeof node.scrollIntoView!="undefined")){node.scrollIntoView(false);return;}var _255=doc.compatMode=="BackCompat",_256=(isIE>=9&&"frameElement" in node.ownerDocument.parentWindow)?((html.clientHeight>0&&html.clientWidth>0&&(body.clientHeight==0||body.clientWidth==0||body.clientHeight>html.clientHeight||body.clientWidth>html.clientWidth))?html:body):(_255?body:html),_257=isWK?body:_256,_258=_256.clientWidth,_259=_256.clientHeight,rtl=!geom.isBodyLtr(doc),_25a=pos||geom.position(node),el=node.parentNode,_25b=function(el){return ((isIE<=6||(isIE&&_255))?false:(_250.get(el,"position").toLowerCase()=="fixed"));};if(_25b(node)){return;}while(el){if(el==body){el=_257;}var _25c=geom.position(el),_25d=_25b(el);if(el==_257){_25c.w=_258;_25c.h=_259;if(_257==html&&isIE&&rtl){_25c.x+=_257.offsetWidth-_25c.w;}if(_25c.x<0||!isIE){_25c.x=0;}if(_25c.y<0||!isIE){_25c.y=0;}}else{var pb=geom.getPadBorderExtents(el);_25c.w-=pb.w;_25c.h-=pb.h;_25c.x+=pb.l;_25c.y+=pb.t;var _25e=el.clientWidth,_25f=_25c.w-_25e;if(_25e>0&&_25f>0){_25c.w=_25e;_25c.x+=(rtl&&(isIE||el.clientLeft>pb.l))?_25f:0;}_25e=el.clientHeight;_25f=_25c.h-_25e;if(_25e>0&&_25f>0){_25c.h=_25e;}}if(_25d){if(_25c.y<0){_25c.h+=_25c.y;_25c.y=0;}if(_25c.x<0){_25c.w+=_25c.x;_25c.x=0;}if(_25c.y+_25c.h>_259){_25c.h=_259-_25c.y;}if(_25c.x+_25c.w>_258){_25c.w=_258-_25c.x;}}var l=_25a.x-_25c.x,t=_25a.y-Math.max(_25c.y,0),r=l+_25a.w-_25c.w,bot=t+_25a.h-_25c.h;if(r*l>0){var s=Math[l<0?"max":"min"](l,r);if(rtl&&((isIE==8&&!_255)||isIE>=9)){s=-s;}_25a.x+=el.scrollLeft;el.scrollLeft+=s;_25a.x-=el.scrollLeft;}if(bot*t>0){_25a.y+=el.scrollTop;el.scrollTop+=Math[t<0?"max":"min"](t,bot);_25a.y-=el.scrollTop;}el=(el!=_257)&&!_25d&&el.parentNode;}}catch(error){console.error("scrollIntoView: "+error);node.scrollIntoView(false);}}};1&&lang.setObject("dojo.window",_251);return _251;});},"dojo/NodeList-fx":function(){define("dojo/NodeList-fx",["./query","./_base/lang","./_base/connect","./_base/fx","./fx"],function(_260,lang,_261,_262,_263){var _264=_260.NodeList;lang.extend(_264,{_anim:function(obj,_265,args){args=args||{};var a=_263.combine(this.map(function(item){var _266={node:item};lang.mixin(_266,args);return obj[_265](_266);}));return args.auto?a.play()&&this:a;},wipeIn:function(args){return this._anim(_263,"wipeIn",args);},wipeOut:function(args){return this._anim(_263,"wipeOut",args);},slideTo:function(args){return this._anim(_263,"slideTo",args);},fadeIn:function(args){return this._anim(_262,"fadeIn",args);},fadeOut:function(args){return this._anim(_262,"fadeOut",args);},animateProperty:function(args){return this._anim(_262,"animateProperty",args);},anim:function(_267,_268,_269,_26a,_26b){var _26c=_263.combine(this.map(function(item){return _262.animateProperty({node:item,properties:_267,duration:_268||350,easing:_269});}));if(_26a){_261.connect(_26c,"onEnd",_26a);}return _26c.play(_26b||0);}});return _264;});},"dojo/fx":function(){define("dojo/fx",["./_base/lang","./Evented","./_base/kernel","./_base/array","./_base/connect","./_base/fx","./dom","./dom-style","./dom-geometry","./ready","require"],function(lang,_26d,dojo,_26e,_26f,_270,dom,_271,geom,_272,_273){if(!dojo.isAsync){_272(0,function(){var _274=["./fx/Toggler"];_273(_274);});}var _275=dojo.fx={};var _276={_fire:function(evt,args){if(this[evt]){this[evt].apply(this,args||[]);}return this;}};var _277=function(_278){this._index=-1;this._animations=_278||[];this._current=this._onAnimateCtx=this._onEndCtx=null;this.duration=0;_26e.forEach(this._animations,function(a){this.duration+=a.duration;if(a.delay){this.duration+=a.delay;}},this);};_277.prototype=new _26d();lang.extend(_277,{_onAnimate:function(){this._fire("onAnimate",arguments);},_onEnd:function(){_26f.disconnect(this._onAnimateCtx);_26f.disconnect(this._onEndCtx);this._onAnimateCtx=this._onEndCtx=null;if(this._index+1==this._animations.length){this._fire("onEnd");}else{this._current=this._animations[++this._index];this._onAnimateCtx=_26f.connect(this._current,"onAnimate",this,"_onAnimate");this._onEndCtx=_26f.connect(this._current,"onEnd",this,"_onEnd");this._current.play(0,true);}},play:function(_279,_27a){if(!this._current){this._current=this._animations[this._index=0];}if(!_27a&&this._current.status()=="playing"){return this;}var _27b=_26f.connect(this._current,"beforeBegin",this,function(){this._fire("beforeBegin");}),_27c=_26f.connect(this._current,"onBegin",this,function(arg){this._fire("onBegin",arguments);}),_27d=_26f.connect(this._current,"onPlay",this,function(arg){this._fire("onPlay",arguments);_26f.disconnect(_27b);_26f.disconnect(_27c);_26f.disconnect(_27d);});if(this._onAnimateCtx){_26f.disconnect(this._onAnimateCtx);}this._onAnimateCtx=_26f.connect(this._current,"onAnimate",this,"_onAnimate");if(this._onEndCtx){_26f.disconnect(this._onEndCtx);}this._onEndCtx=_26f.connect(this._current,"onEnd",this,"_onEnd");this._current.play.apply(this._current,arguments);return this;},pause:function(){if(this._current){var e=_26f.connect(this._current,"onPause",this,function(arg){this._fire("onPause",arguments);_26f.disconnect(e);});this._current.pause();}return this;},gotoPercent:function(_27e,_27f){this.pause();var _280=this.duration*_27e;this._current=null;_26e.some(this._animations,function(a){if(a.duration<=_280){this._current=a;return true;}_280-=a.duration;return false;});if(this._current){this._current.gotoPercent(_280/this._current.duration,_27f);}return this;},stop:function(_281){if(this._current){if(_281){for(;this._index+1<this._animations.length;++this._index){this._animations[this._index].stop(true);}this._current=this._animations[this._index];}var e=_26f.connect(this._current,"onStop",this,function(arg){this._fire("onStop",arguments);_26f.disconnect(e);});this._current.stop();}return this;},status:function(){return this._current?this._current.status():"stopped";},destroy:function(){if(this._onAnimateCtx){_26f.disconnect(this._onAnimateCtx);}if(this._onEndCtx){_26f.disconnect(this._onEndCtx);}}});lang.extend(_277,_276);_275.chain=function(_282){return new _277(_282);};var _283=function(_284){this._animations=_284||[];this._connects=[];this._finished=0;this.duration=0;_26e.forEach(_284,function(a){var _285=a.duration;if(a.delay){_285+=a.delay;}if(this.duration<_285){this.duration=_285;}this._connects.push(_26f.connect(a,"onEnd",this,"_onEnd"));},this);this._pseudoAnimation=new _270.Animation({curve:[0,1],duration:this.duration});var self=this;_26e.forEach(["beforeBegin","onBegin","onPlay","onAnimate","onPause","onStop","onEnd"],function(evt){self._connects.push(_26f.connect(self._pseudoAnimation,evt,function(){self._fire(evt,arguments);}));});};lang.extend(_283,{_doAction:function(_286,args){_26e.forEach(this._animations,function(a){a[_286].apply(a,args);});return this;},_onEnd:function(){if(++this._finished>this._animations.length){this._fire("onEnd");}},_call:function(_287,args){var t=this._pseudoAnimation;t[_287].apply(t,args);},play:function(_288,_289){this._finished=0;this._doAction("play",arguments);this._call("play",arguments);return this;},pause:function(){this._doAction("pause",arguments);this._call("pause",arguments);return this;},gotoPercent:function(_28a,_28b){var ms=this.duration*_28a;_26e.forEach(this._animations,function(a){a.gotoPercent(a.duration<ms?1:(ms/a.duration),_28b);});this._call("gotoPercent",arguments);return this;},stop:function(_28c){this._doAction("stop",arguments);this._call("stop",arguments);return this;},status:function(){return this._pseudoAnimation.status();},destroy:function(){_26e.forEach(this._connects,_26f.disconnect);}});lang.extend(_283,_276);_275.combine=function(_28d){return new _283(_28d);};_275.wipeIn=function(args){var node=args.node=dom.byId(args.node),s=node.style,o;var anim=_270.animateProperty(lang.mixin({properties:{height:{start:function(){o=s.overflow;s.overflow="hidden";if(s.visibility=="hidden"||s.display=="none"){s.height="1px";s.display="";s.visibility="";return 1;}else{var _28e=_271.get(node,"height");return Math.max(_28e,1);}},end:function(){return node.scrollHeight;}}}},args));var fini=function(){s.height="auto";s.overflow=o;};_26f.connect(anim,"onStop",fini);_26f.connect(anim,"onEnd",fini);return anim;};_275.wipeOut=function(args){var node=args.node=dom.byId(args.node),s=node.style,o;var anim=_270.animateProperty(lang.mixin({properties:{height:{end:1}}},args));_26f.connect(anim,"beforeBegin",function(){o=s.overflow;s.overflow="hidden";s.display="";});var fini=function(){s.overflow=o;s.height="auto";s.display="none";};_26f.connect(anim,"onStop",fini);_26f.connect(anim,"onEnd",fini);return anim;};_275.slideTo=function(args){var node=args.node=dom.byId(args.node),top=null,left=null;var init=(function(n){return function(){var cs=_271.getComputedStyle(n);var pos=cs.position;top=(pos=="absolute"?n.offsetTop:parseInt(cs.top)||0);left=(pos=="absolute"?n.offsetLeft:parseInt(cs.left)||0);if(pos!="absolute"&&pos!="relative"){var ret=geom.position(n,true);top=ret.y;left=ret.x;n.style.position="absolute";n.style.top=top+"px";n.style.left=left+"px";}};})(node);init();var anim=_270.animateProperty(lang.mixin({properties:{top:args.top||0,left:args.left||0}},args));_26f.connect(anim,"beforeBegin",anim,init);return anim;};return _275;});},"dojo/dnd/Moveable":function(){define("dojo/dnd/Moveable",["../_base/array","../_base/declare","../_base/event","../_base/lang","../dom","../dom-class","../Evented","../on","../topic","../touch","./common","./Mover","../_base/window"],function(_28f,_290,_291,lang,dom,_292,_293,on,_294,_295,dnd,_296,win){var _297=_290("dojo.dnd.Moveable",[_293],{handle:"",delay:0,skip:false,constructor:function(node,_298){this.node=dom.byId(node);if(!_298){_298={};}this.handle=_298.handle?dom.byId(_298.handle):null;if(!this.handle){this.handle=this.node;}this.delay=_298.delay>0?_298.delay:0;this.skip=_298.skip;this.mover=_298.mover?_298.mover:_296;this.events=[on(this.handle,_295.press,lang.hitch(this,"onMouseDown")),on(this.handle,"dragstart",lang.hitch(this,"onSelectStart")),on(this.handle,"selectstart",lang.hitch(this,"onSelectStart"))];},markupFactory:function(_299,node,Ctor){return new Ctor(node,_299);},destroy:function(){_28f.forEach(this.events,function(_29a){_29a.remove();});this.events=this.node=this.handle=null;},onMouseDown:function(e){if(this.skip&&dnd.isFormElement(e)){return;}if(this.delay){this.events.push(on(this.handle,_295.move,lang.hitch(this,"onMouseMove")),on(this.handle,_295.release,lang.hitch(this,"onMouseUp")));this._lastX=e.pageX;this._lastY=e.pageY;}else{this.onDragDetected(e);}_291.stop(e);},onMouseMove:function(e){if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){this.onMouseUp(e);this.onDragDetected(e);}_291.stop(e);},onMouseUp:function(e){for(var i=0;i<2;++i){this.events.pop().remove();}_291.stop(e);},onSelectStart:function(e){if(!this.skip||!dnd.isFormElement(e)){_291.stop(e);}},onDragDetected:function(e){new this.mover(this.node,e,this);},onMoveStart:function(_29b){_294.publish("/dnd/move/start",_29b);_292.add(win.body(),"dojoMove");_292.add(this.node,"dojoMoveItem");},onMoveStop:function(_29c){_294.publish("/dnd/move/stop",_29c);_292.remove(win.body(),"dojoMove");_292.remove(this.node,"dojoMoveItem");},onFirstMove:function(){},onMove:function(_29d,_29e){this.onMoving(_29d,_29e);var s=_29d.node.style;s.left=_29e.l+"px";s.top=_29e.t+"px";this.onMoved(_29d,_29e);},onMoving:function(){},onMoved:function(){}});return _297;});},"dojo/dnd/common":function(){define("dojo/dnd/common",["../_base/connect","../_base/kernel","../_base/lang","../dom"],function(_29f,_2a0,lang,dom){var _2a1=lang.getObject("dojo.dnd",true);_2a1.getCopyKeyState=_29f.isCopyKey;_2a1._uniqueId=0;_2a1.getUniqueId=function(){var id;do{id=_2a0._scopeName+"Unique"+(++_2a1._uniqueId);}while(dom.byId(id));return id;};_2a1._empty={};_2a1.isFormElement=function(e){var t=e.target;if(t.nodeType==3){t=t.parentNode;}return " button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0;};return _2a1;});},"dojo/dnd/Mover":function(){define("dojo/dnd/Mover",["../_base/array","../_base/declare","../_base/event","../_base/lang","../sniff","../_base/window","../dom","../dom-geometry","../dom-style","../Evented","../on","../touch","./common","./autoscroll"],function(_2a2,_2a3,_2a4,lang,has,win,dom,_2a5,_2a6,_2a7,on,_2a8,dnd,_2a9){return _2a3("dojo.dnd.Mover",[_2a7],{constructor:function(node,e,host){this.node=dom.byId(node);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=(this.host=host),d=node.ownerDocument;this.events=[on(d,_2a8.move,lang.hitch(this,"onFirstMove")),on(d,_2a8.move,lang.hitch(this,"onMouseMove")),on(d,_2a8.release,lang.hitch(this,"onMouseUp")),on(d,"dragstart",_2a4.stop),on(d.body,"selectstart",_2a4.stop)];_2a9.autoScrollStart(d);if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){_2a9.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY},e);_2a4.stop(e);},onMouseUp:function(e){if(has("webkit")&&has("mac")&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){this.destroy();}_2a4.stop(e);},onFirstMove:function(e){var s=this.node.style,l,t,h=this.host;switch(s.position){case "relative":case "absolute":l=Math.round(parseFloat(s.left))||0;t=Math.round(parseFloat(s.top))||0;break;default:s.position="absolute";var m=_2a5.getMarginBox(this.node);var b=win.doc.body;var bs=_2a6.getComputedStyle(b);var bm=_2a5.getMarginBox(b,bs);var bc=_2a5.getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break;}this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove){h.onFirstMove(this,e);}this.events.shift().remove();},destroy:function(){_2a2.forEach(this.events,function(_2aa){_2aa.remove();});var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}this.events=this.node=this.host=null;}});});},"dojo/dnd/autoscroll":function(){define("dojo/dnd/autoscroll",["../_base/lang","../sniff","../_base/window","../dom-geometry","../dom-style","../window"],function(lang,has,win,_2ab,_2ac,_2ad){var _2ae={};lang.setObject("dojo.dnd.autoscroll",_2ae);_2ae.getViewport=_2ad.getBox;_2ae.V_TRIGGER_AUTOSCROLL=32;_2ae.H_TRIGGER_AUTOSCROLL=32;_2ae.V_AUTOSCROLL_VALUE=16;_2ae.H_AUTOSCROLL_VALUE=16;var _2af,doc=win.doc,_2b0=Infinity,_2b1=Infinity;_2ae.autoScrollStart=function(d){doc=d;_2af=_2ad.getBox(doc);var html=win.body(doc).parentNode;_2b0=Math.max(html.scrollHeight-_2af.h,0);_2b1=Math.max(html.scrollWidth-_2af.w,0);};_2ae.autoScroll=function(e){var v=_2af||_2ad.getBox(doc),html=win.body(doc).parentNode,dx=0,dy=0;if(e.clientX<_2ae.H_TRIGGER_AUTOSCROLL){dx=-_2ae.H_AUTOSCROLL_VALUE;}else{if(e.clientX>v.w-_2ae.H_TRIGGER_AUTOSCROLL){dx=Math.min(_2ae.H_AUTOSCROLL_VALUE,_2b1-html.scrollLeft);}}if(e.clientY<_2ae.V_TRIGGER_AUTOSCROLL){dy=-_2ae.V_AUTOSCROLL_VALUE;}else{if(e.clientY>v.h-_2ae.V_TRIGGER_AUTOSCROLL){dy=Math.min(_2ae.V_AUTOSCROLL_VALUE,_2b0-html.scrollTop);}}window.scrollBy(dx,dy);};_2ae._validNodes={"div":1,"p":1,"td":1};_2ae._validOverflow={"auto":1,"scroll":1};_2ae.autoScrollNodes=function(e){var b,t,w,h,rx,ry,dx=0,dy=0,_2b2,_2b3;for(var n=e.target;n;){if(n.nodeType==1&&(n.tagName.toLowerCase() in _2ae._validNodes)){var s=_2ac.getComputedStyle(n),_2b4=(s.overflow.toLowerCase() in _2ae._validOverflow),_2b5=(s.overflowX.toLowerCase() in _2ae._validOverflow),_2b6=(s.overflowY.toLowerCase() in _2ae._validOverflow);if(_2b4||_2b5||_2b6){b=_2ab.getContentBox(n,s);t=_2ab.position(n,true);}if(_2b4||_2b5){w=Math.min(_2ae.H_TRIGGER_AUTOSCROLL,b.w/2);rx=e.pageX-t.x;if(has("webkit")||has("opera")){rx+=win.body().scrollLeft;}dx=0;if(rx>0&&rx<b.w){if(rx<w){dx=-w;}else{if(rx>b.w-w){dx=w;}}_2b2=n.scrollLeft;n.scrollLeft=n.scrollLeft+dx;}}if(_2b4||_2b6){h=Math.min(_2ae.V_TRIGGER_AUTOSCROLL,b.h/2);ry=e.pageY-t.y;if(has("webkit")||has("opera")){ry+=win.body().scrollTop;}dy=0;if(ry>0&&ry<b.h){if(ry<h){dy=-h;}else{if(ry>b.h-h){dy=h;}}_2b3=n.scrollTop;n.scrollTop=n.scrollTop+dy;}}if(dx||dy){return;}}try{n=n.parentNode;}catch(x){n=null;}}_2ae.autoScroll(e);};return _2ae;});},"dojo/dnd/move":function(){define("dojo/dnd/move",["../_base/declare","../dom-geometry","../dom-style","./common","./Mover","./Moveable"],function(_2b7,_2b8,_2b9,dnd,_2ba,_2bb){var _2bc=_2b7("dojo.dnd.move.constrainedMoveable",_2bb,{constraints:function(){},within:false,constructor:function(node,_2bd){if(!_2bd){_2bd={};}this.constraints=_2bd.constraints;this.within=_2bd.within;},onFirstMove:function(_2be){var c=this.constraintBox=this.constraints.call(this,_2be);c.r=c.l+c.w;c.b=c.t+c.h;if(this.within){var mb=_2b8.getMarginSize(_2be.node);c.r-=mb.w;c.b-=mb.h;}},onMove:function(_2bf,_2c0){var c=this.constraintBox,s=_2bf.node.style;this.onMoving(_2bf,_2c0);_2c0.l=_2c0.l<c.l?c.l:c.r<_2c0.l?c.r:_2c0.l;_2c0.t=_2c0.t<c.t?c.t:c.b<_2c0.t?c.b:_2c0.t;s.left=_2c0.l+"px";s.top=_2c0.t+"px";this.onMoved(_2bf,_2c0);}});var _2c1=_2b7("dojo.dnd.move.boxConstrainedMoveable",_2bc,{box:{},constructor:function(node,_2c2){var box=_2c2&&_2c2.box;this.constraints=function(){return box;};}});var _2c3=_2b7("dojo.dnd.move.parentConstrainedMoveable",_2bc,{area:"content",constructor:function(node,_2c4){var area=_2c4&&_2c4.area;this.constraints=function(){var n=this.node.parentNode,s=_2b9.getComputedStyle(n),mb=_2b8.getMarginBox(n,s);if(area=="margin"){return mb;}var t=_2b8.getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="border"){return mb;}t=_2b8.getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="padding"){return mb;}t=_2b8.getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};}});return {constrainedMoveable:_2bc,boxConstrainedMoveable:_2c1,parentConstrainedMoveable:_2c3};});},"dojo/dnd/TimedMoveable":function(){define("dojo/dnd/TimedMoveable",["../_base/declare","./Moveable"],function(_2c5,_2c6){var _2c7=_2c6.prototype.onMove;return _2c5("dojo.dnd.TimedMoveable",_2c6,{timeout:40,constructor:function(node,_2c8){if(!_2c8){_2c8={};}if(_2c8.timeout&&typeof _2c8.timeout=="number"&&_2c8.timeout>=0){this.timeout=_2c8.timeout;}},onMoveStop:function(_2c9){if(_2c9._timer){clearTimeout(_2c9._timer);_2c7.call(this,_2c9,_2c9._leftTop);}_2c6.prototype.onMoveStop.apply(this,arguments);},onMove:function(_2ca,_2cb){_2ca._leftTop=_2cb;if(!_2ca._timer){var _2cc=this;_2ca._timer=setTimeout(function(){_2ca._timer=null;_2c7.call(_2cc,_2ca,_2ca._leftTop);},this.timeout);}}});});},"dojo/fx/Toggler":function(){define("dojo/fx/Toggler",["../_base/lang","../_base/declare","../_base/fx","../_base/connect"],function(lang,_2cd,_2ce,_2cf){return _2cd("dojo.fx.Toggler",null,{node:null,showFunc:_2ce.fadeIn,hideFunc:_2ce.fadeOut,showDuration:200,hideDuration:200,constructor:function(args){var _2d0=this;lang.mixin(_2d0,args);_2d0.node=args.node;_2d0._showArgs=lang.mixin({},args);_2d0._showArgs.node=_2d0.node;_2d0._showArgs.duration=_2d0.showDuration;_2d0.showAnim=_2d0.showFunc(_2d0._showArgs);_2d0._hideArgs=lang.mixin({},args);_2d0._hideArgs.node=_2d0.node;_2d0._hideArgs.duration=_2d0.hideDuration;_2d0.hideAnim=_2d0.hideFunc(_2d0._hideArgs);_2cf.connect(_2d0.showAnim,"beforeBegin",lang.hitch(_2d0.hideAnim,"stop",true));_2cf.connect(_2d0.hideAnim,"beforeBegin",lang.hitch(_2d0.showAnim,"stop",true));},show:function(_2d1){return this.showAnim.play(_2d1||0);},hide:function(_2d2){return this.hideAnim.play(_2d2||0);}});});},"dojo/html":function(){define("dojo/html",["./_base/kernel","./_base/lang","./_base/array","./_base/declare","./dom","./dom-construct","./parser"],function(_2d3,lang,_2d4,_2d5,dom,_2d6,_2d7){var html={};lang.setObject("dojo.html",html);var _2d8=0;html._secureForInnerHtml=function(cont){return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"");};html._emptyNode=_2d6.empty;html._setNodeContent=function(node,cont){_2d6.empty(node);if(cont){if(typeof cont=="string"){cont=_2d6.toDom(cont,node.ownerDocument);}if(!cont.nodeType&&lang.isArrayLike(cont)){for(var _2d9=cont.length,i=0;i<cont.length;i=_2d9==cont.length?i+1:0){_2d6.place(cont[i],node,"last");}}else{_2d6.place(cont,node,"last");}}return node;};html._ContentSetter=_2d5("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,parserScope:_2d3._scopeName,startup:true,constructor:function(_2da,node){lang.mixin(this,_2da||{});node=this.node=dom.byId(this.node||node);if(!this.id){this.id=["Setter",(node)?node.id||node.tagName:"",_2d8++].join("_");}},set:function(cont,_2db){if(undefined!==cont){this.content=cont;}if(_2db){this._mixin(_2db);}this.onBegin();this.setContent();var ret=this.onEnd();if(ret&&ret.then){return ret;}else{return this.node;}},setContent:function(){var node=this.node;if(!node){throw new Error(this.declaredClass+": setContent given no node");}try{node=html._setNodeContent(node,this.content);}catch(e){var _2dc=this.onContentError(e);try{node.innerHTML=_2dc;}catch(e){console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e);}}this.node=node;},empty:function(){if(this.parseDeferred){if(!this.parseDeferred.isResolved()){this.parseDeferred.cancel();}delete this.parseDeferred;}if(this.parseResults&&this.parseResults.length){_2d4.forEach(this.parseResults,function(w){if(w.destroy){w.destroy();}});delete this.parseResults;}_2d6.empty(this.node);},onBegin:function(){var cont=this.content;if(lang.isString(cont)){if(this.cleanContent){cont=html._secureForInnerHtml(cont);}if(this.extractContent){var _2dd=cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_2dd){cont=_2dd[1];}}}this.empty();this.content=cont;return this.node;},onEnd:function(){if(this.parseContent){this._parse();}return this.node;},tearDown:function(){delete this.parseResults;delete this.parseDeferred;delete this.node;delete this.content;},onContentError:function(err){return "Error occurred setting content: "+err;},onExecError:function(err){return "Error occurred executing scripts: "+err;},_mixin:function(_2de){var _2df={},key;for(key in _2de){if(key in _2df){continue;}this[key]=_2de[key];}},_parse:function(){var _2e0=this.node;try{var _2e1={};_2d4.forEach(["dir","lang","textDir"],function(name){if(this[name]){_2e1[name]=this[name];}},this);var self=this;this.parseDeferred=_2d7.parse({rootNode:_2e0,noStart:!this.startup,inherited:_2e1,scope:this.parserScope}).then(function(_2e2){return self.parseResults=_2e2;});}catch(e){this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id);}},_onError:function(type,err,_2e3){var _2e4=this["on"+type+"Error"].call(this,err);if(_2e3){console.error(_2e3,err);}else{if(_2e4){html._setNodeContent(this.node,_2e4,true);}}}});html.set=function(node,cont,_2e5){if(undefined==cont){console.warn("dojo.html.set: no cont argument provided, using empty string");cont="";}if(!_2e5){return html._setNodeContent(node,cont,true);}else{var op=new html._ContentSetter(lang.mixin(_2e5,{content:cont,node:node}));return op.set();}};return html;});},"dojo/i18n":function(){define("dojo/i18n",["./_base/kernel","require","./has","./_base/array","./_base/config","./_base/lang","./_base/xhr","./json","module"],function(dojo,_2e6,has,_2e7,_2e8,lang,xhr,json,_2e9){has.add("dojo-preload-i18n-Api",1);1||has.add("dojo-v1x-i18n-Api",1);var _2ea=dojo.i18n={},_2eb=/(^.*(^|\/)nls)(\/|$)([^\/]*)\/?([^\/]*)/,_2ec=function(root,_2ed,_2ee,_2ef){for(var _2f0=[_2ee+_2ef],_2f1=_2ed.split("-"),_2f2="",i=0;i<_2f1.length;i++){_2f2+=(_2f2?"-":"")+_2f1[i];if(!root||root[_2f2]){_2f0.push(_2ee+_2f2+"/"+_2ef);}}return _2f0;},_2f3={},_2f4=function(_2f5,_2f6,_2f7){_2f7=_2f7?_2f7.toLowerCase():dojo.locale;_2f5=_2f5.replace(/\./g,"/");_2f6=_2f6.replace(/\./g,"/");return (/root/i.test(_2f7))?(_2f5+"/nls/"+_2f6):(_2f5+"/nls/"+_2f7+"/"+_2f6);},_2f8=dojo.getL10nName=function(_2f9,_2fa,_2fb){return _2f9=_2e9.id+"!"+_2f4(_2f9,_2fa,_2fb);},_2fc=function(_2fd,_2fe,_2ff,_300,_301,load){_2fd([_2fe],function(root){var _302=lang.clone(root.root),_303=_2ec(!root._v1x&&root,_301,_2ff,_300);_2fd(_303,function(){for(var i=1;i<_303.length;i++){_302=lang.mixin(lang.clone(_302),arguments[i]);}var _304=_2fe+"/"+_301;_2f3[_304]=_302;load();});});},_305=function(id,_306){return /^\./.test(id)?_306(id):id;},_307=function(_308){var list=_2e8.extraLocale||[];list=lang.isArray(list)?list:[list];list.push(_308);return list;},load=function(id,_309,load){if(has("dojo-preload-i18n-Api")){var _30a=id.split("*"),_30b=_30a[1]=="preload";if(_30b){if(!_2f3[id]){_2f3[id]=1;_30c(_30a[2],json.parse(_30a[3]),1,_309);}load(1);}if(_30b||_30d(id,_309,load)){return;}}var _30e=_2eb.exec(id),_30f=_30e[1]+"/",_310=_30e[5]||_30e[4],_311=_30f+_310,_312=(_30e[5]&&_30e[4]),_313=_312||dojo.locale,_314=_311+"/"+_313,_315=_312?[_313]:_307(_313),_316=_315.length,_317=function(){if(!--_316){load(lang.delegate(_2f3[_314]));}};_2e7.forEach(_315,function(_318){var _319=_311+"/"+_318;if(has("dojo-preload-i18n-Api")){_31a(_319);}if(!_2f3[_319]){_2fc(_309,_311,_30f,_310,_318,_317);}else{_317();}});};if(has("dojo-unit-tests")){var _31b=_2ea.unitTests=[];}if(has("dojo-preload-i18n-Api")||1){var _31c=_2ea.normalizeLocale=function(_31d){var _31e=_31d?_31d.toLowerCase():dojo.locale;return _31e=="root"?"ROOT":_31e;},isXd=function(mid,_31f){return (1&&1)?_31f.isXdUrl(_2e6.toUrl(mid+".js")):true;},_320=0,_321=[],_30c=_2ea._preloadLocalizations=function(_322,_323,_324,_325){_325=_325||_2e6;function _326(mid,_327){if(isXd(mid,_325)||_324){_325([mid],_327);}else{_331([mid],_327,_325);}};function _328(_329,func){var _32a=_329.split("-");while(_32a.length){if(func(_32a.join("-"))){return;}_32a.pop();}func("ROOT");};function _32b(_32c){_32c=_31c(_32c);_328(_32c,function(loc){if(_2e7.indexOf(_323,loc)>=0){var mid=_322.replace(/\./g,"/")+"_"+loc;_320++;_326(mid,function(_32d){for(var p in _32d){_2f3[_2e6.toAbsMid(p)+"/"+loc]=_32d[p];}--_320;while(!_320&&_321.length){load.apply(null,_321.shift());}});return true;}return false;});};_32b();_2e7.forEach(dojo.config.extraLocale,_32b);},_30d=function(id,_32e,load){if(_320){_321.push([id,_32e,load]);}return _320;},_31a=function(){};}if(1){var _32f={},_330=new Function("__bundle","__checkForLegacyModules","__mid","__amdValue","var define = function(mid, factory){define.called = 1; __amdValue.result = factory || mid;},"+"\t require = function(){define.called = 1;};"+"try{"+"define.called = 0;"+"eval(__bundle);"+"if(define.called==1)"+"return __amdValue;"+"if((__checkForLegacyModules = __checkForLegacyModules(__mid)))"+"return __checkForLegacyModules;"+"}catch(e){}"+"try{"+"return eval('('+__bundle+')');"+"}catch(e){"+"return e;"+"}"),_331=function(deps,_332,_333){var _334=[];_2e7.forEach(deps,function(mid){var url=_333.toUrl(mid+".js");function load(text){var _335=_330(text,_31a,mid,_32f);if(_335===_32f){_334.push(_2f3[url]=_32f.result);}else{if(_335 instanceof Error){console.error("failed to evaluate i18n bundle; url="+url,_335);_335={};}_334.push(_2f3[url]=(/nls\/[^\/]+\/[^\/]+$/.test(url)?_335:{root:_335,_v1x:1}));}};if(_2f3[url]){_334.push(_2f3[url]);}else{var _336=_333.syncLoadNls(mid);if(_336){_334.push(_336);}else{if(!xhr){try{_333.getText(url,true,load);}catch(e){_334.push(_2f3[url]={});}}else{xhr.get({url:url,sync:true,load:load,error:function(){_334.push(_2f3[url]={});}});}}}});_332&&_332.apply(null,_334);};_31a=function(_337){for(var _338,_339=_337.split("/"),_33a=dojo.global[_339[0]],i=1;_33a&&i<_339.length-1;_33a=_33a[_339[i++]]){}if(_33a){_338=_33a[_339[i]];if(!_338){_338=_33a[_339[i].replace(/-/g,"_")];}if(_338){_2f3[_337]=_338;}}return _338;};_2ea.getLocalization=function(_33b,_33c,_33d){var _33e,_33f=_2f4(_33b,_33c,_33d);load(_33f,(!isXd(_33f,_2e6)?function(deps,_340){_331(deps,_340,_2e6);}:_2e6),function(_341){_33e=_341;});return _33e;};if(has("dojo-unit-tests")){_31b.push(function(doh){doh.register("tests.i18n.unit",function(t){var _342;_342=_330("{prop:1}",_31a,"nonsense",_32f);t.is({prop:1},_342);t.is(undefined,_342[1]);_342=_330("({prop:1})",_31a,"nonsense",_32f);t.is({prop:1},_342);t.is(undefined,_342[1]);_342=_330("{'prop-x':1}",_31a,"nonsense",_32f);t.is({"prop-x":1},_342);t.is(undefined,_342[1]);_342=_330("({'prop-x':1})",_31a,"nonsense",_32f);t.is({"prop-x":1},_342);t.is(undefined,_342[1]);_342=_330("define({'prop-x':1})",_31a,"nonsense",_32f);t.is(_32f,_342);t.is({"prop-x":1},_32f.result);_342=_330("define('some/module', {'prop-x':1})",_31a,"nonsense",_32f);t.is(_32f,_342);t.is({"prop-x":1},_32f.result);_342=_330("this is total nonsense and should throw an error",_31a,"nonsense",_32f);t.is(_342 instanceof Error,true);});});}}return lang.mixin(_2ea,{dynamic:true,normalize:_305,load:load,cache:_2f3});});},"dijit/dijit":function(){define("dijit/dijit",["./main","./_base","dojo/parser","./_Widget","./_TemplatedMixin","./_Container","./layout/_LayoutWidget","./form/_FormWidget","./form/_FormValueWidget"],function(_343){return _343;});},"dijit/main":function(){define("dijit/main",["dojo/_base/kernel"],function(dojo){return dojo.dijit;});},"dijit/_base":function(){define("dijit/_base",["./main","./a11y","./WidgetSet","./_base/focus","./_base/manager","./_base/place","./_base/popup","./_base/scroll","./_base/sniff","./_base/typematic","./_base/wai","./_base/window"],function(_344){return _344._base;});},"dijit/a11y":function(){define("dijit/a11y",["dojo/_base/array","dojo/_base/config","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-style","dojo/sniff","./main"],function(_345,_346,_347,dom,_348,_349,has,_34a){var _34b=(_34a._isElementShown=function(elem){var s=_349.get(elem);return (s.visibility!="hidden")&&(s.visibility!="collapsed")&&(s.display!="none")&&(_348.get(elem,"type")!="hidden");});_34a.hasDefaultTabStop=function(elem){switch(elem.nodeName.toLowerCase()){case "a":return _348.has(elem,"href");case "area":case "button":case "input":case "object":case "select":case "textarea":return true;case "iframe":var body;try{var _34c=elem.contentDocument;if("designMode" in _34c&&_34c.designMode=="on"){return true;}body=_34c.body;}catch(e1){try{body=elem.contentWindow.document.body;}catch(e2){return false;}}return body&&(body.contentEditable=="true"||(body.firstChild&&body.firstChild.contentEditable=="true"));default:return elem.contentEditable=="true";}};var _34d=(_34a.isTabNavigable=function(elem){if(_348.get(elem,"disabled")){return false;}else{if(_348.has(elem,"tabIndex")){return _348.get(elem,"tabIndex")>=0;}else{return _34a.hasDefaultTabStop(elem);}}});_34a._getTabNavigable=function(root){var _34e,last,_34f,_350,_351,_352,_353={};function _354(node){return node&&node.tagName.toLowerCase()=="input"&&node.type&&node.type.toLowerCase()=="radio"&&node.name&&node.name.toLowerCase();};var _355=function(_356){for(var _357=_356.firstChild;_357;_357=_357.nextSibling){if(_357.nodeType!=1||(has("ie")<=9&&_357.scopeName!=="HTML")||!_34b(_357)){continue;}if(_34d(_357)){var _358=+_348.get(_357,"tabIndex");if(!_348.has(_357,"tabIndex")||_358==0){if(!_34e){_34e=_357;}last=_357;}else{if(_358>0){if(!_34f||_358<_350){_350=_358;_34f=_357;}if(!_351||_358>=_352){_352=_358;_351=_357;}}}var rn=_354(_357);if(_348.get(_357,"checked")&&rn){_353[rn]=_357;}}if(_357.nodeName.toUpperCase()!="SELECT"){_355(_357);}}};if(_34b(root)){_355(root);}function rs(node){return _353[_354(node)]||node;};return {first:rs(_34e),last:rs(last),lowest:rs(_34f),highest:rs(_351)};};_34a.getFirstInTabbingOrder=function(root,doc){var _359=_34a._getTabNavigable(dom.byId(root,doc));return _359.lowest?_359.lowest:_359.first;};_34a.getLastInTabbingOrder=function(root,doc){var _35a=_34a._getTabNavigable(dom.byId(root,doc));return _35a.last?_35a.last:_35a.highest;};return {hasDefaultTabStop:_34a.hasDefaultTabStop,isTabNavigable:_34a.isTabNavigable,_getTabNavigable:_34a._getTabNavigable,getFirstInTabbingOrder:_34a.getFirstInTabbingOrder,getLastInTabbingOrder:_34a.getLastInTabbingOrder};});},"dijit/WidgetSet":function(){define("dijit/WidgetSet",["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","./registry"],function(_35b,_35c,_35d,_35e){var _35f=_35c("dijit.WidgetSet",null,{constructor:function(){this._hash={};this.length=0;},add:function(_360){if(this._hash[_360.id]){throw new Error("Tried to register widget with id=="+_360.id+" but that id is already registered");}this._hash[_360.id]=_360;this.length++;},remove:function(id){if(this._hash[id]){delete this._hash[id];this.length--;}},forEach:function(func,_361){_361=_361||_35d.global;var i=0,id;for(id in this._hash){func.call(_361,this._hash[id],i++,this._hash);}return this;},filter:function(_362,_363){_363=_363||_35d.global;var res=new _35f(),i=0,id;for(id in this._hash){var w=this._hash[id];if(_362.call(_363,w,i++,this._hash)){res.add(w);}}return res;},byId:function(id){return this._hash[id];},byClass:function(cls){var res=new _35f(),id,_364;for(id in this._hash){_364=this._hash[id];if(_364.declaredClass==cls){res.add(_364);}}return res;},toArray:function(){var ar=[];for(var id in this._hash){ar.push(this._hash[id]);}return ar;},map:function(func,_365){return _35b.map(this.toArray(),func,_365);},every:function(func,_366){_366=_366||_35d.global;var x=0,i;for(i in this._hash){if(!func.call(_366,this._hash[i],x++,this._hash)){return false;}}return true;},some:function(func,_367){_367=_367||_35d.global;var x=0,i;for(i in this._hash){if(func.call(_367,this._hash[i],x++,this._hash)){return true;}}return false;}});_35b.forEach(["forEach","filter","byClass","map","every","some"],function(func){_35e[func]=_35f.prototype[func];});return _35f;});},"dijit/registry":function(){define("dijit/registry",["dojo/_base/array","dojo/sniff","dojo/_base/unload","dojo/_base/window","./main"],function(_368,has,_369,win,_36a){var _36b={},hash={};var _36c={length:0,add:function(_36d){if(hash[_36d.id]){throw new Error("Tried to register widget with id=="+_36d.id+" but that id is already registered");}hash[_36d.id]=_36d;this.length++;},remove:function(id){if(hash[id]){delete hash[id];this.length--;}},byId:function(id){return typeof id=="string"?hash[id]:id;},byNode:function(node){return hash[node.getAttribute("widgetId")];},toArray:function(){var ar=[];for(var id in hash){ar.push(hash[id]);}return ar;},getUniqueId:function(_36e){var id;do{id=_36e+"_"+(_36e in _36b?++_36b[_36e]:_36b[_36e]=0);}while(hash[id]);return _36a._scopeName=="dijit"?id:_36a._scopeName+"_"+id;},findWidgets:function(root,_36f){var _370=[];function _371(root){for(var node=root.firstChild;node;node=node.nextSibling){if(node.nodeType==1){var _372=node.getAttribute("widgetId");if(_372){var _373=hash[_372];if(_373){_370.push(_373);}}else{if(node!==_36f){_371(node);}}}}};_371(root);return _370;},_destroyAll:function(){_36a._curFocus=null;_36a._prevFocus=null;_36a._activeStack=[];_368.forEach(_36c.findWidgets(win.body()),function(_374){if(!_374._destroyed){if(_374.destroyRecursive){_374.destroyRecursive();}else{if(_374.destroy){_374.destroy();}}}});},getEnclosingWidget:function(node){while(node){var id=node.nodeType==1&&node.getAttribute("widgetId");if(id){return hash[id];}node=node.parentNode;}return null;},_hash:hash};_36a.registry=_36c;return _36c;});},"dijit/_base/focus":function(){define("dijit/_base/focus",["dojo/_base/array","dojo/dom","dojo/_base/lang","dojo/topic","dojo/_base/window","../focus","../main"],function(_375,dom,lang,_376,win,_377,_378){var _379={_curFocus:null,_prevFocus:null,isCollapsed:function(){return _378.getBookmark().isCollapsed;},getBookmark:function(){var bm,rg,tg,sel=win.doc.selection,cf=_377.curNode;if(win.global.getSelection){sel=win.global.getSelection();if(sel){if(sel.isCollapsed){tg=cf?cf.tagName:"";if(tg){tg=tg.toLowerCase();if(tg=="textarea"||(tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text"))){sel={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true};return {isCollapsed:(sel.end<=sel.start),mark:sel};}}bm={isCollapsed:true};if(sel.rangeCount){bm.mark=sel.getRangeAt(0).cloneRange();}}else{rg=sel.getRangeAt(0);bm={isCollapsed:false,mark:rg.cloneRange()};}}}else{if(sel){tg=cf?cf.tagName:"";tg=tg.toLowerCase();if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input")){if(sel.type&&sel.type.toLowerCase()=="none"){return {isCollapsed:true,mark:null};}else{rg=sel.createRange();return {isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}};}}bm={};try{rg=sel.createRange();bm.isCollapsed=!(sel.type=="Text"?rg.htmlText.length:rg.length);}catch(e){bm.isCollapsed=true;return bm;}if(sel.type.toUpperCase()=="CONTROL"){if(rg.length){bm.mark=[];var i=0,len=rg.length;while(i<len){bm.mark.push(rg.item(i++));}}else{bm.isCollapsed=true;bm.mark=null;}}else{bm.mark=rg.getBookmark();}}else{console.warn("No idea how to store the current selection for this browser!");}}return bm;},moveToBookmark:function(_37a){var _37b=win.doc,mark=_37a.mark;if(mark){if(win.global.getSelection){var sel=win.global.getSelection();if(sel&&sel.removeAllRanges){if(mark.pRange){var n=mark.node;n.selectionStart=mark.start;n.selectionEnd=mark.end;}else{sel.removeAllRanges();sel.addRange(mark);}}else{console.warn("No idea how to restore selection for this browser!");}}else{if(_37b.selection&&mark){var rg;if(mark.pRange){rg=mark.range;}else{if(lang.isArray(mark)){rg=_37b.body.createControlRange();_375.forEach(mark,function(n){rg.addElement(n);});}else{rg=_37b.body.createTextRange();rg.moveToBookmark(mark);}}rg.select();}}}},getFocus:function(menu,_37c){var node=!_377.curNode||(menu&&dom.isDescendant(_377.curNode,menu.domNode))?_378._prevFocus:_377.curNode;return {node:node,bookmark:node&&(node==_377.curNode)&&win.withGlobal(_37c||win.global,_378.getBookmark),openedForWindow:_37c};},_activeStack:[],registerIframe:function(_37d){return _377.registerIframe(_37d);},unregisterIframe:function(_37e){_37e&&_37e.remove();},registerWin:function(_37f,_380){return _377.registerWin(_37f,_380);},unregisterWin:function(_381){_381&&_381.remove();}};_377.focus=function(_382){if(!_382){return;}var node="node" in _382?_382.node:_382,_383=_382.bookmark,_384=_382.openedForWindow,_385=_383?_383.isCollapsed:false;if(node){var _386=(node.tagName.toLowerCase()=="iframe")?node.contentWindow:node;if(_386&&_386.focus){try{_386.focus();}catch(e){}}_377._onFocusNode(node);}if(_383&&win.withGlobal(_384||win.global,_378.isCollapsed)&&!_385){if(_384){_384.focus();}try{win.withGlobal(_384||win.global,_378.moveToBookmark,null,[_383]);}catch(e2){}}};_377.watch("curNode",function(name,_387,_388){_378._curFocus=_388;_378._prevFocus=_387;if(_388){_376.publish("focusNode",_388);}});_377.watch("activeStack",function(name,_389,_38a){_378._activeStack=_38a;});_377.on("widget-blur",function(_38b,by){_376.publish("widgetBlur",_38b,by);});_377.on("widget-focus",function(_38c,by){_376.publish("widgetFocus",_38c,by);});lang.mixin(_378,_379);return _378;});},"dijit/focus":function(){define("dijit/focus",["dojo/aspect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/Evented","dojo/_base/lang","dojo/on","dojo/ready","dojo/sniff","dojo/Stateful","dojo/_base/unload","dojo/_base/window","dojo/window","./a11y","./registry","./main"],function(_38d,_38e,dom,_38f,_390,_391,lang,on,_392,has,_393,_394,win,_395,a11y,_396,_397){var _398=_38e([_393,_391],{curNode:null,activeStack:[],constructor:function(){var _399=lang.hitch(this,function(node){if(dom.isDescendant(this.curNode,node)){this.set("curNode",null);}if(dom.isDescendant(this.prevNode,node)){this.set("prevNode",null);}});_38d.before(_390,"empty",_399);_38d.before(_390,"destroy",_399);},registerIframe:function(_39a){return this.registerWin(_39a.contentWindow,_39a);},registerWin:function(_39b,_39c){var _39d=this;var _39e=function(evt){_39d._justMouseDowned=true;setTimeout(function(){_39d._justMouseDowned=false;},0);if(has("ie")&&evt&&evt.srcElement&&evt.srcElement.parentNode==null){return;}_39d._onTouchNode(_39c||evt.target||evt.srcElement,"mouse");};var doc=has("ie")?_39b.document.documentElement:_39b.document;if(doc){if(has("ie")){_39b.document.body.attachEvent("onmousedown",_39e);var _39f=function(evt){var tag=evt.srcElement.tagName.toLowerCase();if(tag=="#document"||tag=="body"){return;}if(a11y.isTabNavigable(evt.srcElement)){_39d._onFocusNode(_39c||evt.srcElement);}else{_39d._onTouchNode(_39c||evt.srcElement);}};doc.attachEvent("onfocusin",_39f);var _3a0=function(evt){_39d._onBlurNode(_39c||evt.srcElement);};doc.attachEvent("onfocusout",_3a0);return {remove:function(){_39b.document.detachEvent("onmousedown",_39e);doc.detachEvent("onfocusin",_39f);doc.detachEvent("onfocusout",_3a0);doc=null;}};}else{doc.body.addEventListener("mousedown",_39e,true);doc.body.addEventListener("touchstart",_39e,true);var _3a1=function(evt){_39d._onFocusNode(_39c||evt.target);};doc.addEventListener("focus",_3a1,true);var _3a2=function(evt){_39d._onBlurNode(_39c||evt.target);};doc.addEventListener("blur",_3a2,true);return {remove:function(){doc.body.removeEventListener("mousedown",_39e,true);doc.body.removeEventListener("touchstart",_39e,true);doc.removeEventListener("focus",_3a1,true);doc.removeEventListener("blur",_3a2,true);doc=null;}};}}},_onBlurNode:function(node){if(this._clearFocusTimer){clearTimeout(this._clearFocusTimer);}this._clearFocusTimer=setTimeout(lang.hitch(this,function(){this.set("prevNode",this.curNode);this.set("curNode",null);}),0);if(this._justMouseDowned){return;}if(this._clearActiveWidgetsTimer){clearTimeout(this._clearActiveWidgetsTimer);}this._clearActiveWidgetsTimer=setTimeout(lang.hitch(this,function(){delete this._clearActiveWidgetsTimer;this._setStack([]);}),0);},_onTouchNode:function(node,by){if(this._clearActiveWidgetsTimer){clearTimeout(this._clearActiveWidgetsTimer);delete this._clearActiveWidgetsTimer;}var _3a3=[];try{while(node){var _3a4=_38f.get(node,"dijitPopupParent");if(_3a4){node=_396.byId(_3a4).domNode;}else{if(node.tagName&&node.tagName.toLowerCase()=="body"){if(node===win.body()){break;}node=_395.get(node.ownerDocument).frameElement;}else{var id=node.getAttribute&&node.getAttribute("widgetId"),_3a5=id&&_396.byId(id);if(_3a5&&!(by=="mouse"&&_3a5.get("disabled"))){_3a3.unshift(id);}node=node.parentNode;}}}}catch(e){}this._setStack(_3a3,by);},_onFocusNode:function(node){if(!node){return;}if(node.nodeType==9){return;}if(this._clearFocusTimer){clearTimeout(this._clearFocusTimer);delete this._clearFocusTimer;}this._onTouchNode(node);if(node==this.curNode){return;}this.set("prevNode",this.curNode);this.set("curNode",node);},_setStack:function(_3a6,by){var _3a7=this.activeStack;this.set("activeStack",_3a6);for(var _3a8=0;_3a8<Math.min(_3a7.length,_3a6.length);_3a8++){if(_3a7[_3a8]!=_3a6[_3a8]){break;}}var _3a9;for(var i=_3a7.length-1;i>=_3a8;i--){_3a9=_396.byId(_3a7[i]);if(_3a9){_3a9._hasBeenBlurred=true;_3a9.set("focused",false);if(_3a9._focusManager==this){_3a9._onBlur(by);}this.emit("widget-blur",_3a9,by);}}for(i=_3a8;i<_3a6.length;i++){_3a9=_396.byId(_3a6[i]);if(_3a9){_3a9.set("focused",true);if(_3a9._focusManager==this){_3a9._onFocus(by);}this.emit("widget-focus",_3a9,by);}}},focus:function(node){if(node){try{node.focus();}catch(e){}}}});var _3aa=new _398();_392(function(){var _3ab=_3aa.registerWin(_395.get(win.doc));if(has("ie")){_394.addOnWindowUnload(function(){if(_3ab){_3ab.remove();_3ab=null;}});}});_397.focus=function(node){_3aa.focus(node);};for(var attr in _3aa){if(!/^_/.test(attr)){_397.focus[attr]=typeof _3aa[attr]=="function"?lang.hitch(_3aa,attr):_3aa[attr];}}_3aa.watch(function(attr,_3ac,_3ad){_397.focus[attr]=_3ad;});return _3aa;});},"dijit/_base/manager":function(){define("dijit/_base/manager",["dojo/_base/array","dojo/_base/config","dojo/_base/lang","../registry","../main"],function(_3ae,_3af,lang,_3b0,_3b1){var _3b2={};_3ae.forEach(["byId","getUniqueId","findWidgets","_destroyAll","byNode","getEnclosingWidget"],function(name){_3b2[name]=_3b0[name];});lang.mixin(_3b2,{defaultDuration:_3af["defaultDuration"]||200});lang.mixin(_3b1,_3b2);return _3b1;});},"dijit/_base/place":function(){define("dijit/_base/place",["dojo/_base/array","dojo/_base/lang","dojo/window","../place","../main"],function(_3b3,lang,_3b4,_3b5,_3b6){var _3b7={};_3b7.getViewport=function(){return _3b4.getBox();};_3b7.placeOnScreen=_3b5.at;_3b7.placeOnScreenAroundElement=function(node,_3b8,_3b9,_3ba){var _3bb;if(lang.isArray(_3b9)){_3bb=_3b9;}else{_3bb=[];for(var key in _3b9){_3bb.push({aroundCorner:key,corner:_3b9[key]});}}return _3b5.around(node,_3b8,_3bb,true,_3ba);};_3b7.placeOnScreenAroundNode=_3b7.placeOnScreenAroundElement;_3b7.placeOnScreenAroundRectangle=_3b7.placeOnScreenAroundElement;_3b7.getPopupAroundAlignment=function(_3bc,_3bd){var _3be={};_3b3.forEach(_3bc,function(pos){var ltr=_3bd;switch(pos){case "after":_3be[_3bd?"BR":"BL"]=_3bd?"BL":"BR";break;case "before":_3be[_3bd?"BL":"BR"]=_3bd?"BR":"BL";break;case "below-alt":ltr=!ltr;case "below":_3be[ltr?"BL":"BR"]=ltr?"TL":"TR";_3be[ltr?"BR":"BL"]=ltr?"TR":"TL";break;case "above-alt":ltr=!ltr;case "above":default:_3be[ltr?"TL":"TR"]=ltr?"BL":"BR";_3be[ltr?"TR":"TL"]=ltr?"BR":"BL";break;}});return _3be;};lang.mixin(_3b6,_3b7);return _3b6;});},"dijit/place":function(){define("dijit/place",["dojo/_base/array","dojo/dom-geometry","dojo/dom-style","dojo/_base/kernel","dojo/_base/window","dojo/window","./main"],function(_3bf,_3c0,_3c1,_3c2,win,_3c3,_3c4){function _3c5(node,_3c6,_3c7,_3c8){var view=_3c3.getBox(node.ownerDocument);if(!node.parentNode||String(node.parentNode.tagName).toLowerCase()!="body"){win.body(node.ownerDocument).appendChild(node);}var best=null;_3bf.some(_3c6,function(_3c9){var _3ca=_3c9.corner;var pos=_3c9.pos;var _3cb=0;var _3cc={w:{"L":view.l+view.w-pos.x,"R":pos.x-view.l,"M":view.w}[_3ca.charAt(1)],h:{"T":view.t+view.h-pos.y,"B":pos.y-view.t,"M":view.h}[_3ca.charAt(0)]};var s=node.style;s.left=s.right="auto";if(_3c7){var res=_3c7(node,_3c9.aroundCorner,_3ca,_3cc,_3c8);_3cb=typeof res=="undefined"?0:res;}var _3cd=node.style;var _3ce=_3cd.display;var _3cf=_3cd.visibility;if(_3cd.display=="none"){_3cd.visibility="hidden";_3cd.display="";}var bb=_3c0.position(node);_3cd.display=_3ce;_3cd.visibility=_3cf;var _3d0={"L":pos.x,"R":pos.x-bb.w,"M":Math.max(view.l,Math.min(view.l+view.w,pos.x+(bb.w>>1))-bb.w)}[_3ca.charAt(1)],_3d1={"T":pos.y,"B":pos.y-bb.h,"M":Math.max(view.t,Math.min(view.t+view.h,pos.y+(bb.h>>1))-bb.h)}[_3ca.charAt(0)],_3d2=Math.max(view.l,_3d0),_3d3=Math.max(view.t,_3d1),endX=Math.min(view.l+view.w,_3d0+bb.w),endY=Math.min(view.t+view.h,_3d1+bb.h),_3d4=endX-_3d2,_3d5=endY-_3d3;_3cb+=(bb.w-_3d4)+(bb.h-_3d5);if(best==null||_3cb<best.overflow){best={corner:_3ca,aroundCorner:_3c9.aroundCorner,x:_3d2,y:_3d3,w:_3d4,h:_3d5,overflow:_3cb,spaceAvailable:_3cc};}return !_3cb;});if(best.overflow&&_3c7){_3c7(node,best.aroundCorner,best.corner,best.spaceAvailable,_3c8);}var l=_3c0.isBodyLtr(node.ownerDocument),s=node.style;s.top=best.y+"px";s[l?"left":"right"]=(l?best.x:view.w-best.x-best.w)+"px";s[l?"right":"left"]="auto";return best;};var _3d6={at:function(node,pos,_3d7,_3d8){var _3d9=_3bf.map(_3d7,function(_3da){var c={corner:_3da,pos:{x:pos.x,y:pos.y}};if(_3d8){c.pos.x+=_3da.charAt(1)=="L"?_3d8.x:-_3d8.x;c.pos.y+=_3da.charAt(0)=="T"?_3d8.y:-_3d8.y;}return c;});return _3c5(node,_3d9);},around:function(node,_3db,_3dc,_3dd,_3de){var _3df=(typeof _3db=="string"||"offsetWidth" in _3db)?_3c0.position(_3db,true):_3db;if(_3db.parentNode){var _3e0=_3c1.getComputedStyle(_3db).position=="absolute";var _3e1=_3db.parentNode;while(_3e1&&_3e1.nodeType==1&&_3e1.nodeName!="BODY"){var _3e2=_3c0.position(_3e1,true),pcs=_3c1.getComputedStyle(_3e1);if(/relative|absolute/.test(pcs.position)){_3e0=false;}if(!_3e0&&/hidden|auto|scroll/.test(pcs.overflow)){var _3e3=Math.min(_3df.y+_3df.h,_3e2.y+_3e2.h);var _3e4=Math.min(_3df.x+_3df.w,_3e2.x+_3e2.w);_3df.x=Math.max(_3df.x,_3e2.x);_3df.y=Math.max(_3df.y,_3e2.y);_3df.h=_3e3-_3df.y;_3df.w=_3e4-_3df.x;}if(pcs.position=="absolute"){_3e0=true;}_3e1=_3e1.parentNode;}}var x=_3df.x,y=_3df.y,_3e5="w" in _3df?_3df.w:(_3df.w=_3df.width),_3e6="h" in _3df?_3df.h:(_3c2.deprecated("place.around: dijit/place.__Rectangle: { x:"+x+", y:"+y+", height:"+_3df.height+", width:"+_3e5+" } has been deprecated. Please use { x:"+x+", y:"+y+", h:"+_3df.height+", w:"+_3e5+" }","","2.0"),_3df.h=_3df.height);var _3e7=[];function push(_3e8,_3e9){_3e7.push({aroundCorner:_3e8,corner:_3e9,pos:{x:{"L":x,"R":x+_3e5,"M":x+(_3e5>>1)}[_3e8.charAt(1)],y:{"T":y,"B":y+_3e6,"M":y+(_3e6>>1)}[_3e8.charAt(0)]}});};_3bf.forEach(_3dc,function(pos){var ltr=_3dd;switch(pos){case "above-centered":push("TM","BM");break;case "below-centered":push("BM","TM");break;case "after-centered":ltr=!ltr;case "before-centered":push(ltr?"ML":"MR",ltr?"MR":"ML");break;case "after":ltr=!ltr;case "before":push(ltr?"TL":"TR",ltr?"TR":"TL");push(ltr?"BL":"BR",ltr?"BR":"BL");break;case "below-alt":ltr=!ltr;case "below":push(ltr?"BL":"BR",ltr?"TL":"TR");push(ltr?"BR":"BL",ltr?"TR":"TL");break;case "above-alt":ltr=!ltr;case "above":push(ltr?"TL":"TR",ltr?"BL":"BR");push(ltr?"TR":"TL",ltr?"BR":"BL");break;default:push(pos.aroundCorner,pos.corner);}});var _3ea=_3c5(node,_3e7,_3de,{w:_3e5,h:_3e6});_3ea.aroundNodePos=_3df;return _3ea;}};return _3c4.place=_3d6;});},"dijit/_base/popup":function(){define("dijit/_base/popup",["dojo/dom-class","dojo/_base/window","../popup","../BackgroundIframe"],function(_3eb,win,_3ec){var _3ed=_3ec._createWrapper;_3ec._createWrapper=function(_3ee){if(!_3ee.declaredClass){_3ee={_popupWrapper:(_3ee.parentNode&&_3eb.contains(_3ee.parentNode,"dijitPopup"))?_3ee.parentNode:null,domNode:_3ee,destroy:function(){},ownerDocument:_3ee.ownerDocument,ownerDocumentBody:win.body(_3ee.ownerDocument)};}return _3ed.call(this,_3ee);};var _3ef=_3ec.open;_3ec.open=function(args){if(args.orient&&typeof args.orient!="string"&&!("length" in args.orient)){var ary=[];for(var key in args.orient){ary.push({aroundCorner:key,corner:args.orient[key]});}args.orient=ary;}return _3ef.call(this,args);};return _3ec;});},"dijit/popup":function(){define("dijit/popup",["dojo/_base/array","dojo/aspect","dojo/_base/connect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","./place","./BackgroundIframe","./main"],function(_3f0,_3f1,_3f2,_3f3,dom,_3f4,_3f5,_3f6,_3f7,_3f8,keys,lang,on,has,_3f9,_3fa,_3fb){function _3fc(){if(this._popupWrapper){_3f5.destroy(this._popupWrapper);delete this._popupWrapper;}};var _3fd=_3f3(null,{_stack:[],_beginZIndex:1000,_idGen:1,_createWrapper:function(_3fe){var _3ff=_3fe._popupWrapper,node=_3fe.domNode;if(!_3ff){_3ff=_3f5.create("div",{"class":"dijitPopup",style:{display:"none"},role:"presentation"},_3fe.ownerDocumentBody);_3ff.appendChild(node);var s=node.style;s.display="";s.visibility="";s.position="";s.top="0px";_3fe._popupWrapper=_3ff;_3f1.after(_3fe,"destroy",_3fc,true);}return _3ff;},moveOffScreen:function(_400){var _401=this._createWrapper(_400);_3f7.set(_401,{visibility:"hidden",top:"-9999px",display:""});},hide:function(_402){var _403=this._createWrapper(_402);_3f7.set(_403,"display","none");},getTopPopup:function(){var _404=this._stack;for(var pi=_404.length-1;pi>0&&_404[pi].parent===_404[pi-1].widget;pi--){}return _404[pi];},open:function(args){var _405=this._stack,_406=args.popup,_407=args.orient||["below","below-alt","above","above-alt"],ltr=args.parent?args.parent.isLeftToRight():_3f6.isBodyLtr(_406.ownerDocument),_408=args.around,id=(args.around&&args.around.id)?(args.around.id+"_dropdown"):("popup_"+this._idGen++);while(_405.length&&(!args.parent||!dom.isDescendant(args.parent.domNode,_405[_405.length-1].widget.domNode))){this.close(_405[_405.length-1].widget);}var _409=this._createWrapper(_406);_3f4.set(_409,{id:id,style:{zIndex:this._beginZIndex+_405.length},"class":"dijitPopup "+(_406.baseClass||_406["class"]||"").split(" ")[0]+"Popup",dijitPopupParent:args.parent?args.parent.id:""});if(has("ie")||has("mozilla")){if(!_406.bgIframe){_406.bgIframe=new _3fa(_409);}}var best=_408?_3f9.around(_409,_408,_407,ltr,_406.orient?lang.hitch(_406,"orient"):null):_3f9.at(_409,args,_407=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],args.padding);_409.style.display="";_409.style.visibility="visible";_406.domNode.style.visibility="visible";var _40a=[];_40a.push(on(_409,_3f2._keypress,lang.hitch(this,function(evt){if(evt.charOrCode==keys.ESCAPE&&args.onCancel){_3f8.stop(evt);args.onCancel();}else{if(evt.charOrCode===keys.TAB){_3f8.stop(evt);var _40b=this.getTopPopup();if(_40b&&_40b.onCancel){_40b.onCancel();}}}})));if(_406.onCancel&&args.onCancel){_40a.push(_406.on("cancel",args.onCancel));}_40a.push(_406.on(_406.onExecute?"execute":"change",lang.hitch(this,function(){var _40c=this.getTopPopup();if(_40c&&_40c.onExecute){_40c.onExecute();}})));_405.push({widget:_406,parent:args.parent,onExecute:args.onExecute,onCancel:args.onCancel,onClose:args.onClose,handlers:_40a});if(_406.onOpen){_406.onOpen(best);}return best;},close:function(_40d){var _40e=this._stack;while((_40d&&_3f0.some(_40e,function(elem){return elem.widget==_40d;}))||(!_40d&&_40e.length)){var top=_40e.pop(),_40f=top.widget,_410=top.onClose;if(_40f.onClose){_40f.onClose();}var h;while(h=top.handlers.pop()){h.remove();}if(_40f&&_40f.domNode){this.hide(_40f);}if(_410){_410();}}}});return (_3fb.popup=new _3fd());});},"dijit/BackgroundIframe":function(){define("dijit/BackgroundIframe",["require","./main","dojo/_base/config","dojo/dom-construct","dojo/dom-style","dojo/_base/lang","dojo/on","dojo/sniff","dojo/_base/window"],function(_411,_412,_413,_414,_415,lang,on,has,win){var _416=new function(){var _417=[];this.pop=function(){var _418;if(_417.length){_418=_417.pop();_418.style.display="";}else{if(has("ie")<9){var burl=_413["dojoBlankHtmlUrl"]||_411.toUrl("dojo/resources/blank.html")||"javascript:\"\"";var html="<iframe src='"+burl+"' role='presentation'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_418=win.doc.createElement(html);}else{_418=_414.create("iframe");_418.src="javascript:\"\"";_418.className="dijitBackgroundIframe";_418.setAttribute("role","presentation");_415.set(_418,"opacity",0.1);}_418.tabIndex=-1;}return _418;};this.push=function(_419){_419.style.display="none";_417.push(_419);};}();_412.BackgroundIframe=function(node){if(!node.id){throw new Error("no id");}if(has("ie")||has("mozilla")){var _41a=(this.iframe=_416.pop());node.appendChild(_41a);if(has("ie")<7||has("quirks")){this.resize(node);this._conn=on(node,"resize",lang.hitch(this,function(){this.resize(node);}));}else{_415.set(_41a,{width:"100%",height:"100%"});}}};lang.extend(_412.BackgroundIframe,{resize:function(node){if(this.iframe){_415.set(this.iframe,{width:node.offsetWidth+"px",height:node.offsetHeight+"px"});}},destroy:function(){if(this._conn){this._conn.remove();this._conn=null;}if(this.iframe){_416.push(this.iframe);delete this.iframe;}}});return _412.BackgroundIframe;});},"dijit/_base/scroll":function(){define("dijit/_base/scroll",["dojo/window","../main"],function(_41b,_41c){_41c.scrollIntoView=function(node,pos){_41b.scrollIntoView(node,pos);};});},"dijit/_base/sniff":function(){define("dijit/_base/sniff",["dojo/uacss"],function(){});},"dijit/_base/typematic":function(){define("dijit/_base/typematic",["../typematic"],function(){});},"dijit/typematic":function(){define("dijit/typematic",["dojo/_base/array","dojo/_base/connect","dojo/_base/event","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/sniff","./main"],function(_41d,_41e,_41f,_420,lang,on,has,_421){var _422=(_421.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:(this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay)),this._minDelay);this._timer=setTimeout(lang.hitch(this,"_fireEventAndReload"),this._currentTimeout);},trigger:function(evt,_423,node,_424,obj,_425,_426,_427){if(obj!=this._obj){this.stop();this._initialDelay=_426||500;this._subsequentDelay=_425||0.9;this._minDelay=_427||10;this._obj=obj;this._node=node;this._currentTimeout=-1;this._count=-1;this._callback=lang.hitch(_423,_424);this._evt={faux:true};for(var attr in evt){if(attr!="layerX"&&attr!="layerY"){var v=evt[attr];if(typeof v!="function"&&typeof v!="undefined"){this._evt[attr]=v;}}}this._fireEventAndReload();}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null;}if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null;}},addKeyListener:function(node,_428,_429,_42a,_42b,_42c,_42d){if(_428.keyCode){_428.charOrCode=_428.keyCode;_420.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}else{if(_428.charCode){_428.charOrCode=String.fromCharCode(_428.charCode);_420.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}}var _42e=[on(node,_41e._keypress,lang.hitch(this,function(evt){if(evt.charOrCode==_428.charOrCode&&(_428.ctrlKey===undefined||_428.ctrlKey==evt.ctrlKey)&&(_428.altKey===undefined||_428.altKey==evt.altKey)&&(_428.metaKey===undefined||_428.metaKey==(evt.metaKey||false))&&(_428.shiftKey===undefined||_428.shiftKey==evt.shiftKey)){_41f.stop(evt);_422.trigger(evt,_429,node,_42a,_428,_42b,_42c,_42d);}else{if(_422._obj==_428){_422.stop();}}})),on(node,"keyup",lang.hitch(this,function(){if(_422._obj==_428){_422.stop();}}))];return {remove:function(){_41d.forEach(_42e,function(h){h.remove();});}};},addMouseListener:function(node,_42f,_430,_431,_432,_433){var _434=[on(node,"mousedown",lang.hitch(this,function(evt){evt.preventDefault();_422.trigger(evt,_42f,node,_430,node,_431,_432,_433);})),on(node,"mouseup",lang.hitch(this,function(evt){if(this._obj){evt.preventDefault();}_422.stop();})),on(node,"mouseout",lang.hitch(this,function(evt){if(this._obj){evt.preventDefault();}_422.stop();})),on(node,"dblclick",lang.hitch(this,function(evt){evt.preventDefault();if(has("ie")<9){_422.trigger(evt,_42f,node,_430,node,_431,_432,_433);setTimeout(lang.hitch(this,_422.stop),50);}}))];return {remove:function(){_41d.forEach(_434,function(h){h.remove();});}};},addListener:function(_435,_436,_437,_438,_439,_43a,_43b,_43c){var _43d=[this.addKeyListener(_436,_437,_438,_439,_43a,_43b,_43c),this.addMouseListener(_435,_438,_439,_43a,_43b,_43c)];return {remove:function(){_41d.forEach(_43d,function(h){h.remove();});}};}});return _422;});},"dijit/_base/wai":function(){define("dijit/_base/wai",["dojo/dom-attr","dojo/_base/lang","../main","../hccss"],function(_43e,lang,_43f){var _440={hasWaiRole:function(elem,role){var _441=this.getWaiRole(elem);return role?(_441.indexOf(role)>-1):(_441.length>0);},getWaiRole:function(elem){return lang.trim((_43e.get(elem,"role")||"").replace("wairole:",""));},setWaiRole:function(elem,role){_43e.set(elem,"role",role);},removeWaiRole:function(elem,role){var _442=_43e.get(elem,"role");if(!_442){return;}if(role){var t=lang.trim((" "+_442+" ").replace(" "+role+" "," "));_43e.set(elem,"role",t);}else{elem.removeAttribute("role");}},hasWaiState:function(elem,_443){return elem.hasAttribute?elem.hasAttribute("aria-"+_443):!!elem.getAttribute("aria-"+_443);},getWaiState:function(elem,_444){return elem.getAttribute("aria-"+_444)||"";},setWaiState:function(elem,_445,_446){elem.setAttribute("aria-"+_445,_446);},removeWaiState:function(elem,_447){elem.removeAttribute("aria-"+_447);}};lang.mixin(_43f,_440);return _43f;});},"dijit/hccss":function(){define("dijit/hccss",["dojo/dom-class","dojo/hccss","dojo/ready","dojo/_base/window"],function(_448,has,_449,win){_449(90,function(){if(has("highcontrast")){_448.add(win.body(),"dijit_a11y");}});return has;});},"dojo/hccss":function(){define("dojo/hccss",["require","./_base/config","./dom-class","./dom-style","./has","./ready","./_base/window"],function(_44a,_44b,_44c,_44d,has,_44e,win){has.add("highcontrast",function(){var div=win.doc.createElement("div");div.style.cssText="border: 1px solid; border-color:red green; position: absolute; height: 5px; top: -999px;"+"background-image: url("+(_44b.blankGif||_44a.toUrl("./resources/blank.gif"))+");";win.body().appendChild(div);var cs=_44d.getComputedStyle(div),_44f=cs.backgroundImage,hc=(cs.borderTopColor==cs.borderRightColor)||(_44f&&(_44f=="none"||_44f=="url(invalid-url:)"));if(has("ie")<=8){div.outerHTML="";}else{win.body().removeChild(div);}return hc;});_44e(90,function(){if(has("highcontrast")){_44c.add(win.body(),"dj_a11y");}});return has;});},"dijit/_base/window":function(){define("dijit/_base/window",["dojo/window","../main"],function(_450,_451){_451.getDocumentWindow=function(doc){return _450.get(doc);};});},"dijit/_Widget":function(){define("dijit/_Widget",["dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/has","dojo/_base/kernel","dojo/_base/lang","dojo/query","dojo/ready","./registry","./_WidgetBase","./_OnDijitClickMixin","./_FocusMixin","dojo/uacss","./hccss"],function(_452,_453,_454,_455,has,_456,lang,_457,_458,_459,_45a,_45b,_45c){function _45d(){};function _45e(_45f){return function(obj,_460,_461,_462){if(obj&&typeof _460=="string"&&obj[_460]==_45d){return obj.on(_460.substring(2).toLowerCase(),lang.hitch(_461,_462));}return _45f.apply(_454,arguments);};};_452.around(_454,"connect",_45e);if(_456.connect){_452.around(_456,"connect",_45e);}var _463=_455("dijit._Widget",[_45a,_45b,_45c],{onClick:_45d,onDblClick:_45d,onKeyDown:_45d,onKeyPress:_45d,onKeyUp:_45d,onMouseDown:_45d,onMouseMove:_45d,onMouseOut:_45d,onMouseOver:_45d,onMouseLeave:_45d,onMouseEnter:_45d,onMouseUp:_45d,constructor:function(_464){this._toConnect={};for(var name in _464){if(this[name]===_45d){this._toConnect[name.replace(/^on/,"").toLowerCase()]=_464[name];delete _464[name];}}},postCreate:function(){this.inherited(arguments);for(var name in this._toConnect){this.on(name,this._toConnect[name]);}delete this._toConnect;},on:function(type,func){if(this[this._onMap(type)]===_45d){return _454.connect(this.domNode,type.toLowerCase(),this,func);}return this.inherited(arguments);},_setFocusedAttr:function(val){this._focused=val;this._set("focused",val);},setAttribute:function(attr,_465){_456.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0");this.set(attr,_465);},attr:function(name,_466){if(_453.isDebug){var _467=arguments.callee._ach||(arguments.callee._ach={}),_468=(arguments.callee.caller||"unknown caller").toString();if(!_467[_468]){_456.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+_468,"","2.0");_467[_468]=true;}}var args=arguments.length;if(args>=2||typeof name==="object"){return this.set.apply(this,arguments);}else{return this.get(name);}},getDescendants:function(){_456.deprecated(this.declaredClass+"::getDescendants() is deprecated. Use getChildren() instead.","","2.0");return this.containerNode?_457("[widgetId]",this.containerNode).map(_459.byNode):[];},_onShow:function(){this.onShow();},onShow:function(){},onHide:function(){},onClose:function(){return true;}});if(has("dijit-legacy-requires")){_458(0,function(){var _469=["dijit/_base"];require(_469);});}return _463;});},"dijit/_WidgetBase":function(){define("dijit/_WidgetBase",["require","dojo/_base/array","dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/ready","dojo/Stateful","dojo/topic","dojo/_base/window","./Destroyable","./registry"],function(_46a,_46b,_46c,_46d,_46e,_46f,dom,_470,_471,_472,_473,_474,has,_475,lang,on,_476,_477,_478,win,_479,_47a){has.add("dijit-legacy-requires",!_475.isAsync);if(has("dijit-legacy-requires")){_476(0,function(){var _47b=["dijit/_base/manager"];_46a(_47b);});}var _47c={};function _47d(obj){var ret={};for(var attr in obj){ret[attr.toLowerCase()]=true;}return ret;};function _47e(attr){return function(val){_470[val?"set":"remove"](this.domNode,attr,val);this._set(attr,val);};};return _46f("dijit._WidgetBase",[_477,_479],{id:"",_setIdAttr:"domNode",lang:"",_setLangAttr:_47e("lang"),dir:"",_setDirAttr:_47e("dir"),textDir:"","class":"",_setClassAttr:{node:"domNode",type:"class"},style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,ownerDocument:null,_setOwnerDocumentAttr:function(val){this._set("ownerDocument",val);},attributeMap:{},_blankGif:_46d.blankGif||_46a.toUrl("dojo/resources/blank.gif"),postscript:function(_47f,_480){this.create(_47f,_480);},create:function(_481,_482){this.srcNodeRef=dom.byId(_482);this._connects=[];this._supportingWidgets=[];if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}if(_481){this.params=_481;lang.mixin(this,_481);}this.postMixInProperties();if(!this.id){this.id=_47a.getUniqueId(this.declaredClass.replace(/\./g,"_"));if(this.params){delete this.params.id;}}this.ownerDocument=this.ownerDocument||(this.srcNodeRef?this.srcNodeRef.ownerDocument:win.doc);this.ownerDocumentBody=win.body(this.ownerDocument);_47a.add(this);this.buildRendering();var _483;if(this.domNode){this._applyAttributes();var _484=this.srcNodeRef;if(_484&&_484.parentNode&&this.domNode!==_484){_484.parentNode.replaceChild(this.domNode,_484);_483=true;}this.domNode.setAttribute("widgetId",this.id);}this.postCreate();if(_483){delete this.srcNodeRef;}this._created=true;},_applyAttributes:function(){var ctor=this.constructor,list=ctor._setterAttrs;if(!list){list=(ctor._setterAttrs=[]);for(var attr in this.attributeMap){list.push(attr);}var _485=ctor.prototype;for(var _486 in _485){if(_486 in this.attributeMap){continue;}var _487="_set"+_486.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase();})+"Attr";if(_487 in _485){list.push(_486);}}}var _488={};for(var key in this.params||{}){_488[key]=this[key];}_46b.forEach(list,function(attr){if(attr in _488){}else{if(this[attr]){this.set(attr,this[attr]);}}},this);for(key in _488){this.set(key,_488[key]);}},postMixInProperties:function(){},buildRendering:function(){if(!this.domNode){this.domNode=this.srcNodeRef||this.ownerDocument.createElement("div");}if(this.baseClass){var _489=this.baseClass.split(" ");if(!this.isLeftToRight()){_489=_489.concat(_46b.map(_489,function(name){return name+"Rtl";}));}_471.add(this.domNode,_489);}},postCreate:function(){},startup:function(){if(this._started){return;}this._started=true;_46b.forEach(this.getChildren(),function(obj){if(!obj._started&&!obj._destroyed&&lang.isFunction(obj.startup)){obj.startup();obj._started=true;}});},destroyRecursive:function(_48a){this._beingDestroyed=true;this.destroyDescendants(_48a);this.destroy(_48a);},destroy:function(_48b){this._beingDestroyed=true;this.uninitialize();function _48c(w){if(w.destroyRecursive){w.destroyRecursive(_48b);}else{if(w.destroy){w.destroy(_48b);}}};_46b.forEach(this._connects,lang.hitch(this,"disconnect"));_46b.forEach(this._supportingWidgets,_48c);if(this.domNode){_46b.forEach(_47a.findWidgets(this.domNode,this.containerNode),_48c);}this.destroyRendering(_48b);_47a.remove(this.id);this._destroyed=true;},destroyRendering:function(_48d){if(this.bgIframe){this.bgIframe.destroy(_48d);delete this.bgIframe;}if(this.domNode){if(_48d){_470.remove(this.domNode,"widgetId");}else{_472.destroy(this.domNode);}delete this.domNode;}if(this.srcNodeRef){if(!_48d){_472.destroy(this.srcNodeRef);}delete this.srcNodeRef;}},destroyDescendants:function(_48e){_46b.forEach(this.getChildren(),function(_48f){if(_48f.destroyRecursive){_48f.destroyRecursive(_48e);}});},uninitialize:function(){return false;},_setStyleAttr:function(_490){var _491=this.domNode;if(lang.isObject(_490)){_474.set(_491,_490);}else{if(_491.style.cssText){_491.style.cssText+="; "+_490;}else{_491.style.cssText=_490;}}this._set("style",_490);},_attrToDom:function(attr,_492,_493){_493=arguments.length>=3?_493:this.attributeMap[attr];_46b.forEach(lang.isArray(_493)?_493:[_493],function(_494){var _495=this[_494.node||_494||"domNode"];var type=_494.type||"attribute";switch(type){case "attribute":if(lang.isFunction(_492)){_492=lang.hitch(this,_492);}var _496=_494.attribute?_494.attribute:(/^on[A-Z][a-zA-Z]*$/.test(attr)?attr.toLowerCase():attr);if(_495.tagName){_470.set(_495,_496,_492);}else{_495.set(_496,_492);}break;case "innerText":_495.innerHTML="";_495.appendChild(this.ownerDocument.createTextNode(_492));break;case "innerHTML":_495.innerHTML=_492;break;case "class":_471.replace(_495,_492,this[attr]);break;}},this);},get:function(name){var _497=this._getAttrNames(name);return this[_497.g]?this[_497.g]():this[name];},set:function(name,_498){if(typeof name==="object"){for(var x in name){this.set(x,name[x]);}return this;}var _499=this._getAttrNames(name),_49a=this[_499.s];if(lang.isFunction(_49a)){var _49b=_49a.apply(this,Array.prototype.slice.call(arguments,1));}else{var _49c=this.focusNode&&!lang.isFunction(this.focusNode)?"focusNode":"domNode",tag=this[_49c].tagName,_49d=_47c[tag]||(_47c[tag]=_47d(this[_49c])),map=name in this.attributeMap?this.attributeMap[name]:_499.s in this?this[_499.s]:((_499.l in _49d&&typeof _498!="function")||/^aria-|^data-|^role$/.test(name))?_49c:null;if(map!=null){this._attrToDom(name,_498,map);}this._set(name,_498);}return _49b||this;},_attrPairNames:{},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name]){return apn[name];}var uc=name.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase();});return (apn[name]={n:name+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr",l:uc.toLowerCase()});},_set:function(name,_49e){var _49f=this[name];this[name]=_49e;if(this._created&&_49e!==_49f){if(this._watchCallbacks){this._watchCallbacks(name,_49f,_49e);}this.emit("attrmodified-"+name,{detail:{prevValue:_49f,newValue:_49e}});}},emit:function(type,_4a0,_4a1){_4a0=_4a0||{};if(_4a0.bubbles===undefined){_4a0.bubbles=true;}if(_4a0.cancelable===undefined){_4a0.cancelable=true;}if(!_4a0.detail){_4a0.detail={};}_4a0.detail.widget=this;var ret,_4a2=this["on"+type];if(_4a2){ret=_4a2.apply(this,_4a1?_4a1:[_4a0]);}if(this._started&&!this._beingDestroyed){on.emit(this.domNode,type.toLowerCase(),_4a0);}return ret;},on:function(type,func){var _4a3=this._onMap(type);if(_4a3){return _46c.after(this,_4a3,func,true);}return this.own(on(this.domNode,type,func))[0];},_onMap:function(type){var ctor=this.constructor,map=ctor._onMap;if(!map){map=(ctor._onMap={});for(var attr in ctor.prototype){if(/^on/.test(attr)){map[attr.replace(/^on/,"").toLowerCase()]=attr;}}}return map[typeof type=="string"&&type.toLowerCase()];},toString:function(){return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]";},getChildren:function(){return this.containerNode?_47a.findWidgets(this.containerNode):[];},getParent:function(){return _47a.getEnclosingWidget(this.domNode.parentNode);},connect:function(obj,_4a4,_4a5){return this.own(_46e.connect(obj,_4a4,this,_4a5))[0];},disconnect:function(_4a6){_4a6.remove();},subscribe:function(t,_4a7){return this.own(_478.subscribe(t,lang.hitch(this,_4a7)))[0];},unsubscribe:function(_4a8){_4a8.remove();},isLeftToRight:function(){return this.dir?(this.dir=="ltr"):_473.isBodyLtr(this.ownerDocument);},isFocusable:function(){return this.focus&&(_474.get(this.domNode,"display")!="none");},placeAt:function(_4a9,_4aa){var _4ab=!_4a9.tagName&&_47a.byId(_4a9);if(_4ab&&_4ab.addChild&&(!_4aa||typeof _4aa==="number")){_4ab.addChild(this,_4aa);}else{var ref=_4ab?(_4ab.containerNode&&!/after|before|replace/.test(_4aa||"")?_4ab.containerNode:_4ab.domNode):dom.byId(_4a9,this.ownerDocument);_472.place(this.domNode,ref,_4aa);if(!this._started&&(this.getParent()||{})._started){this.startup();}}return this;},getTextDir:function(text,_4ac){return _4ac;},applyTextDir:function(){},defer:function(fcn,_4ad){var _4ae=setTimeout(lang.hitch(this,function(){_4ae=null;if(!this._destroyed){lang.hitch(this,fcn)();}}),_4ad||0);return {remove:function(){if(_4ae){clearTimeout(_4ae);_4ae=null;}return null;}};}});});},"dijit/Destroyable":function(){define("dijit/Destroyable",["dojo/_base/array","dojo/aspect","dojo/_base/declare"],function(_4af,_4b0,_4b1){return _4b1("dijit.Destroyable",null,{destroy:function(_4b2){this._destroyed=true;},own:function(){_4af.forEach(arguments,function(_4b3){var _4b4="destroyRecursive" in _4b3?"destroyRecursive":"destroy" in _4b3?"destroy":"remove";var odh=_4b0.before(this,"destroy",function(_4b5){_4b3[_4b4](_4b5);});var hdh=_4b0.after(_4b3,_4b4,function(){odh.remove();hdh.remove();},true);},this);return arguments;}});});},"dijit/_OnDijitClickMixin":function(){define("dijit/_OnDijitClickMixin",["dojo/on","dojo/_base/array","dojo/keys","dojo/_base/declare","dojo/has","dojo/_base/unload","dojo/_base/window","./a11yclick"],function(on,_4b6,keys,_4b7,has,_4b8,win,_4b9){var ret=_4b7("dijit._OnDijitClickMixin",null,{connect:function(obj,_4ba,_4bb){return this.inherited(arguments,[obj,_4ba=="ondijitclick"?_4b9:_4ba,_4bb]);}});ret.a11yclick=_4b9;return ret;});},"dijit/a11yclick":function(){define("dijit/a11yclick",["dojo/on","dojo/_base/array","dojo/keys","dojo/_base/declare","dojo/has","dojo/_base/unload","dojo/_base/window"],function(on,_4bc,keys,_4bd,has,_4be,win){var _4bf=null;if(has("dom-addeventlistener")){win.doc.addEventListener("keydown",function(evt){_4bf=evt.target;},true);}else{(function(){var _4c0=function(evt){_4bf=evt.srcElement;};win.doc.attachEvent("onkeydown",_4c0);_4be.addOnWindowUnload(function(){win.doc.detachEvent("onkeydown",_4c0);});})();}function _4c1(e){return (e.keyCode===keys.ENTER||e.keyCode===keys.SPACE)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey;};return function(node,_4c2){if(/input|button/i.test(node.nodeName)){return on(node,"click",_4c2);}else{var _4c3=[on(node,"keydown",function(e){if(_4c1(e)){_4bf=e.target;e.preventDefault();}}),on(node,"keyup",function(e){if(_4c1(e)&&e.target==_4bf){_4bf=null;on.emit(e.target,"click",{cancelable:true,bubbles:true});}}),on(node,"click",function(e){_4c2.call(this,e);})];if(has("touch")){var _4c4;_4c3.push(on(node,"touchend",function(e){var _4c5=e.target;_4c4=setTimeout(function(){_4c4=null;on.emit(_4c5,"click",{cancelable:true,bubbles:true});},600);}),on(node,"click",function(e){if(_4c4){clearTimeout(_4c4);}}));}return {remove:function(){_4bc.forEach(_4c3,function(h){h.remove();});if(_4c4){clearTimeout(_4c4);_4c4=null;}}};}};return ret;});},"dijit/_FocusMixin":function(){define("dijit/_FocusMixin",["./focus","./_WidgetBase","dojo/_base/declare","dojo/_base/lang"],function(_4c6,_4c7,_4c8,lang){lang.extend(_4c7,{focused:false,onFocus:function(){},onBlur:function(){},_onFocus:function(){this.onFocus();},_onBlur:function(){this.onBlur();}});return _4c8("dijit._FocusMixin",null,{_focusManager:_4c6});});},"dijit/_TemplatedMixin":function(){define("dijit/_TemplatedMixin",["dojo/_base/lang","dojo/touch","./_WidgetBase","dojo/string","dojo/cache","dojo/_base/array","dojo/_base/declare","dojo/dom-construct","dojo/sniff","dojo/_base/unload"],function(lang,_4c9,_4ca,_4cb,_4cc,_4cd,_4ce,_4cf,has,_4d0){var _4d1=_4ce("dijit._TemplatedMixin",null,{templateString:null,templatePath:null,_skipNodeCache:false,_earlyTemplatedStartup:false,constructor:function(){this._attachPoints=[];this._attachEvents=[];},_stringRepl:function(tmpl){var _4d2=this.declaredClass,_4d3=this;return _4cb.substitute(tmpl,this,function(_4d4,key){if(key.charAt(0)=="!"){_4d4=lang.getObject(key.substr(1),false,_4d3);}if(typeof _4d4=="undefined"){throw new Error(_4d2+" template:"+key);}if(_4d4==null){return "";}return key.charAt(0)=="!"?_4d4:_4d4.toString().replace(/"/g,"&quot;");},this);},buildRendering:function(){if(!this.templateString){this.templateString=_4cc(this.templatePath,{sanitize:true});}var _4d5=_4d1.getCachedTemplate(this.templateString,this._skipNodeCache,this.ownerDocument);var node;if(lang.isString(_4d5)){node=_4cf.toDom(this._stringRepl(_4d5),this.ownerDocument);if(node.nodeType!=1){throw new Error("Invalid template: "+_4d5);}}else{node=_4d5.cloneNode(true);}this.domNode=node;this.inherited(arguments);this._attachTemplateNodes(node,function(n,p){return n.getAttribute(p);});this._beforeFillContent();this._fillContent(this.srcNodeRef);},_beforeFillContent:function(){},_fillContent:function(_4d6){var dest=this.containerNode;if(_4d6&&dest){while(_4d6.hasChildNodes()){dest.appendChild(_4d6.firstChild);}}},_attachTemplateNodes:function(_4d7,_4d8){var _4d9=lang.isArray(_4d7)?_4d7:(_4d7.all||_4d7.getElementsByTagName("*"));var x=lang.isArray(_4d7)?0:-1;for(;x<0||_4d9[x];x++){var _4da=(x==-1)?_4d7:_4d9[x];if(this.widgetsInTemplate&&(_4d8(_4da,"dojoType")||_4d8(_4da,"data-dojo-type"))){continue;}var _4db=_4d8(_4da,"dojoAttachPoint")||_4d8(_4da,"data-dojo-attach-point");if(_4db){var _4dc,_4dd=_4db.split(/\s*,\s*/);while((_4dc=_4dd.shift())){if(lang.isArray(this[_4dc])){this[_4dc].push(_4da);}else{this[_4dc]=_4da;}this._attachPoints.push(_4dc);}}var _4de=_4d8(_4da,"dojoAttachEvent")||_4d8(_4da,"data-dojo-attach-event");if(_4de){var _4df,_4e0=_4de.split(/\s*,\s*/);var trim=lang.trim;while((_4df=_4e0.shift())){if(_4df){var _4e1=null;if(_4df.indexOf(":")!=-1){var _4e2=_4df.split(":");_4df=trim(_4e2[0]);_4e1=trim(_4e2[1]);}else{_4df=trim(_4df);}if(!_4e1){_4e1=_4df;}this._attachEvents.push(this.connect(_4da,_4c9[_4df]||_4df,_4e1));}}}}},destroyRendering:function(){_4cd.forEach(this._attachPoints,function(_4e3){delete this[_4e3];},this);this._attachPoints=[];_4cd.forEach(this._attachEvents,this.disconnect,this);this._attachEvents=[];this.inherited(arguments);}});_4d1._templateCache={};_4d1.getCachedTemplate=function(_4e4,_4e5,doc){var _4e6=_4d1._templateCache;var key=_4e4;var _4e7=_4e6[key];if(_4e7){try{if(!_4e7.ownerDocument||_4e7.ownerDocument==(doc||document)){return _4e7;}}catch(e){}_4cf.destroy(_4e7);}_4e4=_4cb.trim(_4e4);if(_4e5||_4e4.match(/\$\{([^\}]+)\}/g)){return (_4e6[key]=_4e4);}else{var node=_4cf.toDom(_4e4,doc);if(node.nodeType!=1){throw new Error("Invalid template: "+_4e4);}return (_4e6[key]=node);}};if(has("ie")){_4d0.addOnWindowUnload(function(){var _4e8=_4d1._templateCache;for(var key in _4e8){var _4e9=_4e8[key];if(typeof _4e9=="object"){_4cf.destroy(_4e9);}delete _4e8[key];}});}lang.extend(_4ca,{dojoAttachEvent:"",dojoAttachPoint:""});return _4d1;});},"dijit/_Container":function(){define("dijit/_Container",["dojo/_base/array","dojo/_base/declare","dojo/dom-construct"],function(_4ea,_4eb,_4ec){return _4eb("dijit._Container",null,{buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},addChild:function(_4ed,_4ee){var _4ef=this.containerNode;if(_4ee&&typeof _4ee=="number"){var _4f0=this.getChildren();if(_4f0&&_4f0.length>=_4ee){_4ef=_4f0[_4ee-1].domNode;_4ee="after";}}_4ec.place(_4ed.domNode,_4ef,_4ee);if(this._started&&!_4ed._started){_4ed.startup();}},removeChild:function(_4f1){if(typeof _4f1=="number"){_4f1=this.getChildren()[_4f1];}if(_4f1){var node=_4f1.domNode;if(node&&node.parentNode){node.parentNode.removeChild(node);}}},hasChildren:function(){return this.getChildren().length>0;},_getSiblingOfChild:function(_4f2,dir){var _4f3=this.getChildren(),idx=_4ea.indexOf(this.getChildren(),_4f2);return _4f3[idx+dir];},getIndexOfChild:function(_4f4){return _4ea.indexOf(this.getChildren(),_4f4);}});});},"dijit/layout/_LayoutWidget":function(){define("dijit/layout/_LayoutWidget",["dojo/_base/lang","../_Widget","../_Container","../_Contained","../Viewport","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style"],function(lang,_4f5,_4f6,_4f7,_4f8,_4f9,_4fa,_4fb,_4fc){return _4f9("dijit.layout._LayoutWidget",[_4f5,_4f6,_4f7],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,buildRendering:function(){this.inherited(arguments);_4fa.add(this.domNode,"dijitContainer");},startup:function(){if(this._started){return;}this.inherited(arguments);var _4fd=this.getParent&&this.getParent();if(!(_4fd&&_4fd.isLayoutContainer)){this.resize();this.own(_4f8.on("resize",lang.hitch(this,"resize")));}},resize:function(_4fe,_4ff){var node=this.domNode;if(_4fe){_4fb.setMarginBox(node,_4fe);}var mb=_4ff||{};lang.mixin(mb,_4fe||{});if(!("h" in mb)||!("w" in mb)){mb=lang.mixin(_4fb.getMarginBox(node),mb);}var cs=_4fc.getComputedStyle(node);var me=_4fb.getMarginExtents(node,cs);var be=_4fb.getBorderExtents(node,cs);var bb=(this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)});var pe=_4fb.getPadExtents(node,cs);this._contentBox={l:_4fc.toPixelValue(node,cs.paddingLeft),t:_4fc.toPixelValue(node,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h};this.layout();},layout:function(){},_setupChild:function(_500){var cls=this.baseClass+"-child "+(_500.baseClass?this.baseClass+"-"+_500.baseClass:"");_4fa.add(_500.domNode,cls);},addChild:function(_501,_502){this.inherited(arguments);if(this._started){this._setupChild(_501);}},removeChild:function(_503){var cls=this.baseClass+"-child"+(_503.baseClass?" "+this.baseClass+"-"+_503.baseClass:"");_4fa.remove(_503.domNode,cls);this.inherited(arguments);}});});},"dijit/_Contained":function(){define("dijit/_Contained",["dojo/_base/declare","./registry"],function(_504,_505){return _504("dijit._Contained",null,{_getSibling:function(_506){var node=this.domNode;do{node=node[_506+"Sibling"];}while(node&&node.nodeType!=1);return node&&_505.byNode(node);},getPreviousSibling:function(){return this._getSibling("previous");},getNextSibling:function(){return this._getSibling("next");},getIndexInParent:function(){var p=this.getParent();if(!p||!p.getIndexOfChild){return -1;}return p.getIndexOfChild(this);}});});},"dijit/Viewport":function(){define("dijit/Viewport",["dojo/Evented","dojo/on","dojo/ready","dojo/sniff","dojo/_base/window","dojo/window"],function(_507,on,_508,has,win,_509){var _50a=new _507();_508(200,function(){var _50b=_509.getBox();_50a._rlh=on(win.global,"resize",function(){var _50c=_509.getBox();if(_50b.h==_50c.h&&_50b.w==_50c.w){return;}_50b=_50c;_50a.emit("resize");});if(has("ie")==8){var _50d=screen.deviceXDPI;setInterval(function(){if(screen.deviceXDPI!=_50d){_50d=screen.deviceXDPI;_50a.emit("resize");}},500);}});return _50a;});},"dijit/form/_FormWidget":function(){define("dijit/form/_FormWidget",["dojo/_base/declare","dojo/has","dojo/_base/kernel","dojo/ready","../_Widget","../_CssStateMixin","../_TemplatedMixin","./_FormWidgetMixin"],function(_50e,has,_50f,_510,_511,_512,_513,_514){if(has("dijit-legacy-requires")){_510(0,function(){var _515=["dijit/form/_FormValueWidget"];require(_515);});}return _50e("dijit.form._FormWidget",[_511,_513,_512,_514],{setDisabled:function(_516){_50f.deprecated("setDisabled("+_516+") is deprecated. Use set('disabled',"+_516+") instead.","","2.0");this.set("disabled",_516);},setValue:function(_517){_50f.deprecated("dijit.form._FormWidget:setValue("+_517+") is deprecated. Use set('value',"+_517+") instead.","","2.0");this.set("value",_517);},getValue:function(){_50f.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},postMixInProperties:function(){this.nameAttrSetting=this.name?("name=\""+this.name.replace(/"/g,"&quot;")+"\""):"";this.inherited(arguments);},_setTypeAttr:null});});},"dijit/_CssStateMixin":function(){define("dijit/_CssStateMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-class","dojo/has","dojo/_base/lang","dojo/on","dojo/ready","dojo/_base/window","./registry"],function(_518,_519,dom,_51a,has,lang,on,_51b,win,_51c){var _51d=_519("dijit._CssStateMixin",[],{cssStateNodes:{},hovering:false,active:false,_applyAttributes:function(){this.inherited(arguments);_518.forEach(["disabled","readOnly","checked","selected","focused","state","hovering","active","_opened"],function(attr){this.watch(attr,lang.hitch(this,"_setStateClass"));},this);for(var ap in this.cssStateNodes){this._trackMouseState(this[ap],this.cssStateNodes[ap]);}this._trackMouseState(this.domNode,this.baseClass);this._setStateClass();},_cssMouseEvent:function(_51e){if(!this.disabled){switch(_51e.type){case "mouseover":this._set("hovering",true);this._set("active",this._mouseDown);break;case "mouseout":this._set("hovering",false);this._set("active",false);break;case "mousedown":case "touchstart":this._set("active",true);break;case "mouseup":case "touchend":this._set("active",false);break;}}},_setStateClass:function(){var _51f=this.baseClass.split(" ");function _520(_521){_51f=_51f.concat(_518.map(_51f,function(c){return c+_521;}),"dijit"+_521);};if(!this.isLeftToRight()){_520("Rtl");}var _522=this.checked=="mixed"?"Mixed":(this.checked?"Checked":"");if(this.checked){_520(_522);}if(this.state){_520(this.state);}if(this.selected){_520("Selected");}if(this._opened){_520("Opened");}if(this.disabled){_520("Disabled");}else{if(this.readOnly){_520("ReadOnly");}else{if(this.active){_520("Active");}else{if(this.hovering){_520("Hover");}}}}if(this.focused){_520("Focused");}var tn=this.stateNode||this.domNode,_523={};_518.forEach(tn.className.split(" "),function(c){_523[c]=true;});if("_stateClasses" in this){_518.forEach(this._stateClasses,function(c){delete _523[c];});}_518.forEach(_51f,function(c){_523[c]=true;});var _524=[];for(var c in _523){_524.push(c);}tn.className=_524.join(" ");this._stateClasses=_51f;},_subnodeCssMouseEvent:function(node,_525,evt){if(this.disabled||this.readOnly){return;}function _526(_527){_51a.toggle(node,_525+"Hover",_527);};function _528(_529){_51a.toggle(node,_525+"Active",_529);};function _52a(_52b){_51a.toggle(node,_525+"Focused",_52b);};switch(evt.type){case "mouseover":_526(true);break;case "mouseout":_526(false);_528(false);break;case "mousedown":case "touchstart":_528(true);break;case "mouseup":case "touchend":_528(false);break;case "focus":case "focusin":_52a(true);break;case "blur":case "focusout":_52a(false);break;}},_trackMouseState:function(node,_52c){node._cssState=_52c;}});_51b(function(){function _52d(evt){if(!dom.isDescendant(evt.relatedTarget,evt.target)){for(var node=evt.target;node&&node!=evt.relatedTarget;node=node.parentNode){if(node._cssState){var _52e=_51c.getEnclosingWidget(node);if(_52e){if(node==_52e.domNode){_52e._cssMouseEvent(evt);}else{_52e._subnodeCssMouseEvent(node,node._cssState,evt);}}}}}};function _52f(evt){evt.target=evt.srcElement;_52d(evt);};var body=win.body(),_530=(has("touch")?[]:["mouseover","mouseout"]).concat(["mousedown","touchstart","mouseup","touchend"]);_518.forEach(_530,function(type){if(body.addEventListener){body.addEventListener(type,_52d,true);}else{body.attachEvent("on"+type,_52f);}});on(body,"focusin, focusout",function(evt){var node=evt.target;if(node._cssState&&!node.getAttribute("widgetId")){var _531=_51c.getEnclosingWidget(node);_531._subnodeCssMouseEvent(node,node._cssState,evt);}});});return _51d;});},"dijit/form/_FormWidgetMixin":function(){define("dijit/form/_FormWidgetMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-style","dojo/_base/lang","dojo/mouse","dojo/sniff","dojo/window","../a11y"],function(_532,_533,_534,_535,lang,_536,has,_537,a11y){return _533("dijit.form._FormWidgetMixin",null,{name:"",alt:"",value:"",type:"text","aria-label":"focusNode",tabIndex:"0",_setTabIndexAttr:"focusNode",disabled:false,intermediateChanges:false,scrollOnFocus:true,_setIdAttr:"focusNode",_setDisabledAttr:function(_538){this._set("disabled",_538);_534.set(this.focusNode,"disabled",_538);if(this.valueNode){_534.set(this.valueNode,"disabled",_538);}this.focusNode.setAttribute("aria-disabled",_538?"true":"false");if(_538){this._set("hovering",false);this._set("active",false);var _539="tabIndex" in this.attributeMap?this.attributeMap.tabIndex:("_setTabIndexAttr" in this)?this._setTabIndexAttr:"focusNode";_532.forEach(lang.isArray(_539)?_539:[_539],function(_53a){var node=this[_53a];if(has("webkit")||a11y.hasDefaultTabStop(node)){node.setAttribute("tabIndex","-1");}else{node.removeAttribute("tabIndex");}},this);}else{if(this.tabIndex!=""){this.set("tabIndex",this.tabIndex);}}},_onFocus:function(by){if(by=="mouse"&&this.isFocusable()){var _53b=this.connect(this.focusNode,"onfocus",function(){this.disconnect(_53c);this.disconnect(_53b);});var _53c=this.connect(this.ownerDocumentBody,"onmouseup",function(){this.disconnect(_53c);this.disconnect(_53b);if(this.focused){this.focus();}});}if(this.scrollOnFocus){this.defer(function(){_537.scrollIntoView(this.domNode);});}this.inherited(arguments);},isFocusable:function(){return !this.disabled&&this.focusNode&&(_535.get(this.domNode,"display")!="none");},focus:function(){if(!this.disabled&&this.focusNode.focus){try{this.focusNode.focus();}catch(e){}}},compare:function(val1,val2){if(typeof val1=="number"&&typeof val2=="number"){return (isNaN(val1)&&isNaN(val2))?0:val1-val2;}else{if(val1>val2){return 1;}else{if(val1<val2){return -1;}else{return 0;}}}},onChange:function(){},_onChangeActive:false,_handleOnChange:function(_53d,_53e){if(this._lastValueReported==undefined&&(_53e===null||!this._onChangeActive)){this._resetValue=this._lastValueReported=_53d;}this._pendingOnChange=this._pendingOnChange||(typeof _53d!=typeof this._lastValueReported)||(this.compare(_53d,this._lastValueReported)!=0);if((this.intermediateChanges||_53e||_53e===undefined)&&this._pendingOnChange){this._lastValueReported=_53d;this._pendingOnChange=false;if(this._onChangeActive){if(this._onChangeHandle){this._onChangeHandle.remove();}this._onChangeHandle=this.defer(function(){this._onChangeHandle=null;this.onChange(_53d);});}}},create:function(){this.inherited(arguments);this._onChangeActive=true;},destroy:function(){if(this._onChangeHandle){this._onChangeHandle.remove();this.onChange(this._lastValueReported);}this.inherited(arguments);}});});},"dijit/form/_FormValueWidget":function(){define("dijit/form/_FormValueWidget",["dojo/_base/declare","dojo/sniff","./_FormWidget","./_FormValueMixin"],function(_53f,has,_540,_541){return _53f("dijit.form._FormValueWidget",[_540,_541],{_layoutHackIE7:function(){if(has("ie")==7){var _542=this.domNode;var _543=_542.parentNode;var _544=_542.firstChild||_542;var _545=_544.style.filter;var _546=this;while(_543&&_543.clientHeight==0){(function ping(){var _547=_546.connect(_543,"onscroll",function(){_546.disconnect(_547);_544.style.filter=(new Date()).getMilliseconds();_546.defer(function(){_544.style.filter=_545;});});})();_543=_543.parentNode;}}}});});},"dijit/form/_FormValueMixin":function(){define("dijit/form/_FormValueMixin",["dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/sniff","./_FormWidgetMixin"],function(_548,_549,keys,has,_54a){return _548("dijit.form._FormValueMixin",_54a,{readOnly:false,_setReadOnlyAttr:function(_54b){_549.set(this.focusNode,"readOnly",_54b);this._set("readOnly",_54b);},postCreate:function(){this.inherited(arguments);if(has("ie")){this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown);}if(this._resetValue===undefined){this._lastValueReported=this._resetValue=this.value;}},_setValueAttr:function(_54c,_54d){this._handleOnChange(_54c,_54d);},_handleOnChange:function(_54e,_54f){this._set("value",_54e);this.inherited(arguments);},undo:function(){this._setValueAttr(this._lastValueReported,false);},reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true);},_onKeyDown:function(e){if(e.keyCode==keys.ESCAPE&&!(e.ctrlKey||e.altKey||e.metaKey)){if(has("ie")<9||(has("ie")&&has("quirks"))){e.preventDefault();var node=e.srcElement,te=node.ownerDocument.createEventObject();te.keyCode=keys.ESCAPE;te.shiftKey=e.shiftKey;node.fireEvent("onkeypress",te);}}}});});},"dijit/ColorPalette":function(){require({cache:{"url:dijit/templates/ColorPalette.html":"<div class=\"dijitInline dijitColorPalette\">\n\t<table dojoAttachPoint=\"paletteTableNode\" class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\" role=\"grid\">\n\t\t<tbody data-dojo-attach-point=\"gridNode\"></tbody>\n\t</table>\n</div>\n"}});define("dijit/ColorPalette",["require","dojo/text!./templates/ColorPalette.html","./_Widget","./_TemplatedMixin","./_PaletteMixin","./hccss","dojo/i18n","dojo/_base/Color","dojo/_base/declare","dojo/dom-construct","dojo/string","dojo/i18n!dojo/nls/colors","dojo/colors"],function(_550,_551,_552,_553,_554,has,i18n,_555,_556,_557,_558){var _559=_556("dijit.ColorPalette",[_552,_553,_554],{palette:"7x10",_palettes:{"7x10":[["white","seashell","cornsilk","lemonchiffon","lightyellow","palegreen","paleturquoise","lightcyan","lavender","plum"],["lightgray","pink","bisque","moccasin","khaki","lightgreen","lightseagreen","lightskyblue","cornflowerblue","violet"],["silver","lightcoral","sandybrown","orange","palegoldenrod","chartreuse","mediumturquoise","skyblue","mediumslateblue","orchid"],["gray","red","orangered","darkorange","yellow","limegreen","darkseagreen","royalblue","slateblue","mediumorchid"],["dimgray","crimson","chocolate","coral","gold","forestgreen","seagreen","blue","blueviolet","darkorchid"],["darkslategray","firebrick","saddlebrown","sienna","olive","green","darkcyan","mediumblue","darkslateblue","darkmagenta"],["black","darkred","maroon","brown","darkolivegreen","darkgreen","midnightblue","navy","indigo","purple"]],"3x4":[["white","lime","green","blue"],["silver","yellow","fuchsia","navy"],["gray","red","purple","black"]]},templateString:_551,baseClass:"dijitColorPalette",_dyeFactory:function(_55a,row,col,_55b){return new this._dyeClass(_55a,row,col,_55b);},buildRendering:function(){this.inherited(arguments);this._dyeClass=_556(_559._Color,{palette:this.palette});this._preparePalette(this._palettes[this.palette],i18n.getLocalization("dojo","colors",this.lang));}});_559._Color=_556("dijit._Color",_555,{template:"<span class='dijitInline dijitPaletteImg'>"+"<img src='${blankGif}' alt='${alt}' title='${title}' class='dijitColorPaletteSwatch' style='background-color: ${color}'/>"+"</span>",hcTemplate:"<span class='dijitInline dijitPaletteImg' style='position: relative; overflow: hidden; height: 12px; width: 14px;'>"+"<img src='${image}' alt='${alt}' title='${title}' style='position: absolute; left: ${left}px; top: ${top}px; ${size}'/>"+"</span>",_imagePaths:{"7x10":_550.toUrl("./themes/a11y/colors7x10.png"),"3x4":_550.toUrl("./themes/a11y/colors3x4.png")},constructor:function(_55c,row,col,_55d){this._title=_55d;this._row=row;this._col=col;this.setColor(_555.named[_55c]);},getValue:function(){return this.toHex();},fillCell:function(cell,_55e){var html=_558.substitute(has("highcontrast")?this.hcTemplate:this.template,{color:this.toHex(),blankGif:_55e,alt:this._title,title:this._title,image:this._imagePaths[this.palette].toString(),left:this._col*-20-5,top:this._row*-20-5,size:this.palette=="7x10"?"height: 145px; width: 206px":"height: 64px; width: 86px"});_557.place(html,cell);}});return _559;});},"url:dijit/templates/ColorPalette.html":"<div class=\"dijitInline dijitColorPalette\">\n\t<table dojoAttachPoint=\"paletteTableNode\" class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\" role=\"grid\">\n\t\t<tbody data-dojo-attach-point=\"gridNode\"></tbody>\n\t</table>\n</div>\n","dijit/_PaletteMixin":function(){define("dijit/_PaletteMixin",["dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/_base/event","dojo/keys","dojo/_base/lang","./_CssStateMixin","./focus","./typematic"],function(_55f,_560,_561,_562,_563,keys,lang,_564,_565,_566){return _55f("dijit._PaletteMixin",[_564],{defaultTimeout:500,timeoutChangeRate:0.9,value:"",_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:null,summary:"",_setSummaryAttr:"paletteTableNode",_dyeFactory:function(_567){var _568=typeof this.dyeClass=="string"?lang.getObject(this.dyeClass):this.dyeClass;return new _568(_567);},_preparePalette:function(_569,_56a){this._cells=[];var url=this._blankGif;this.connect(this.gridNode,"ondijitclick","_onCellClick");for(var row=0;row<_569.length;row++){var _56b=_562.create("tr",{tabIndex:"-1"},this.gridNode);for(var col=0;col<_569[row].length;col++){var _56c=_569[row][col];if(_56c){var _56d=this._dyeFactory(_56c,row,col,_56a[_56c]);var _56e=_562.create("td",{"class":this.cellClass,tabIndex:"-1",title:_56a[_56c],role:"gridcell"},_56b);_56d.fillCell(_56e,url);_56e.idx=this._cells.length;this._cells.push({node:_56e,dye:_56d});}}}this._xDim=_569[0].length;this._yDim=_569.length;var _56f={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1};for(var key in _56f){this.own(_566.addKeyListener(this.domNode,{charOrCode:keys[key],ctrlKey:false,altKey:false,shiftKey:false},this,function(){var _570=_56f[key];return function(_571){this._navigateByKey(_570,_571);};}(),this.timeoutChangeRate,this.defaultTimeout));}},postCreate:function(){this.inherited(arguments);this._setCurrent(this._cells[0].node);},focus:function(){_565.focus(this._currentFocus);},_onCellClick:function(evt){var _572=evt.target;while(_572.tagName!="TD"){if(!_572.parentNode||_572==this.gridNode){return;}_572=_572.parentNode;}var _573=this._getDye(_572).getValue();this._setCurrent(_572);_565.focus(_572);this._setValueAttr(_573,true);_563.stop(evt);},_setCurrent:function(node){if("_currentFocus" in this){_560.set(this._currentFocus,"tabIndex","-1");}this._currentFocus=node;if(node){_560.set(node,"tabIndex",this.tabIndex);}},_setValueAttr:function(_574,_575){if(this._selectedCell>=0){_561.remove(this._cells[this._selectedCell].node,this.cellClass+"Selected");}this._selectedCell=-1;if(_574){for(var i=0;i<this._cells.length;i++){if(_574==this._cells[i].dye.getValue()){this._selectedCell=i;_561.add(this._cells[i].node,this.cellClass+"Selected");break;}}}this._set("value",this._selectedCell>=0?_574:null);if(_575||_575===undefined){this.onChange(_574);}},onChange:function(){},_navigateByKey:function(_576,_577){if(_577==-1){return;}var _578=this._currentFocus.idx+_576;if(_578<this._cells.length&&_578>-1){var _579=this._cells[_578].node;this._setCurrent(_579);this.defer(lang.hitch(_565,"focus",_579));}},_getDye:function(cell){return this._cells[cell.idx].dye;}});});},"dojo/colors":function(){define("dojo/colors",["./_base/kernel","./_base/lang","./_base/Color","./_base/array"],function(dojo,lang,_57a,_57b){var _57c={};lang.setObject("dojo.colors",_57c);var _57d=function(m1,m2,h){if(h<0){++h;}if(h>1){--h;}var h6=6*h;if(h6<1){return m1+(m2-m1)*h6;}if(2*h<1){return m2;}if(3*h<2){return m1+(m2-m1)*(2/3-h)*6;}return m1;};dojo.colorFromRgb=_57a.fromRgb=function(_57e,obj){var m=_57e.toLowerCase().match(/^(rgba?|hsla?)\(([\s\.\-,%0-9]+)\)/);if(m){var c=m[2].split(/\s*,\s*/),l=c.length,t=m[1],a;if((t=="rgb"&&l==3)||(t=="rgba"&&l==4)){var r=c[0];if(r.charAt(r.length-1)=="%"){a=_57b.map(c,function(x){return parseFloat(x)*2.56;});if(l==4){a[3]=c[3];}return _57a.fromArray(a,obj);}return _57a.fromArray(c,obj);}if((t=="hsl"&&l==3)||(t=="hsla"&&l==4)){var H=((parseFloat(c[0])%360)+360)%360/360,S=parseFloat(c[1])/100,L=parseFloat(c[2])/100,m2=L<=0.5?L*(S+1):L+S-L*S,m1=2*L-m2;a=[_57d(m1,m2,H+1/3)*256,_57d(m1,m2,H)*256,_57d(m1,m2,H-1/3)*256,1];if(l==4){a[3]=c[3];}return _57a.fromArray(a,obj);}}return null;};var _57f=function(c,low,high){c=Number(c);return isNaN(c)?high:c<low?low:c>high?high:c;};_57a.prototype.sanitize=function(){var t=this;t.r=Math.round(_57f(t.r,0,255));t.g=Math.round(_57f(t.g,0,255));t.b=Math.round(_57f(t.b,0,255));t.a=_57f(t.a,0,1);return this;};_57c.makeGrey=_57a.makeGrey=function(g,a){return _57a.fromArray([g,g,g,a]);};lang.mixin(_57a.named,{"aliceblue":[240,248,255],"antiquewhite":[250,235,215],"aquamarine":[127,255,212],"azure":[240,255,255],"beige":[245,245,220],"bisque":[255,228,196],"blanchedalmond":[255,235,205],"blueviolet":[138,43,226],"brown":[165,42,42],"burlywood":[222,184,135],"cadetblue":[95,158,160],"chartreuse":[127,255,0],"chocolate":[210,105,30],"coral":[255,127,80],"cornflowerblue":[100,149,237],"cornsilk":[255,248,220],"crimson":[220,20,60],"cyan":[0,255,255],"darkblue":[0,0,139],"darkcyan":[0,139,139],"darkgoldenrod":[184,134,11],"darkgray":[169,169,169],"darkgreen":[0,100,0],"darkgrey":[169,169,169],"darkkhaki":[189,183,107],"darkmagenta":[139,0,139],"darkolivegreen":[85,107,47],"darkorange":[255,140,0],"darkorchid":[153,50,204],"darkred":[139,0,0],"darksalmon":[233,150,122],"darkseagreen":[143,188,143],"darkslateblue":[72,61,139],"darkslategray":[47,79,79],"darkslategrey":[47,79,79],"darkturquoise":[0,206,209],"darkviolet":[148,0,211],"deeppink":[255,20,147],"deepskyblue":[0,191,255],"dimgray":[105,105,105],"dimgrey":[105,105,105],"dodgerblue":[30,144,255],"firebrick":[178,34,34],"floralwhite":[255,250,240],"forestgreen":[34,139,34],"gainsboro":[220,220,220],"ghostwhite":[248,248,255],"gold":[255,215,0],"goldenrod":[218,165,32],"greenyellow":[173,255,47],"grey":[128,128,128],"honeydew":[240,255,240],"hotpink":[255,105,180],"indianred":[205,92,92],"indigo":[75,0,130],"ivory":[255,255,240],"khaki":[240,230,140],"lavender":[230,230,250],"lavenderblush":[255,240,245],"lawngreen":[124,252,0],"lemonchiffon":[255,250,205],"lightblue":[173,216,230],"lightcoral":[240,128,128],"lightcyan":[224,255,255],"lightgoldenrodyellow":[250,250,210],"lightgray":[211,211,211],"lightgreen":[144,238,144],"lightgrey":[211,211,211],"lightpink":[255,182,193],"lightsalmon":[255,160,122],"lightseagreen":[32,178,170],"lightskyblue":[135,206,250],"lightslategray":[119,136,153],"lightslategrey":[119,136,153],"lightsteelblue":[176,196,222],"lightyellow":[255,255,224],"limegreen":[50,205,50],"linen":[250,240,230],"magenta":[255,0,255],"mediumaquamarine":[102,205,170],"mediumblue":[0,0,205],"mediumorchid":[186,85,211],"mediumpurple":[147,112,219],"mediumseagreen":[60,179,113],"mediumslateblue":[123,104,238],"mediumspringgreen":[0,250,154],"mediumturquoise":[72,209,204],"mediumvioletred":[199,21,133],"midnightblue":[25,25,112],"mintcream":[245,255,250],"mistyrose":[255,228,225],"moccasin":[255,228,181],"navajowhite":[255,222,173],"oldlace":[253,245,230],"olivedrab":[107,142,35],"orange":[255,165,0],"orangered":[255,69,0],"orchid":[218,112,214],"palegoldenrod":[238,232,170],"palegreen":[152,251,152],"paleturquoise":[175,238,238],"palevioletred":[219,112,147],"papayawhip":[255,239,213],"peachpuff":[255,218,185],"peru":[205,133,63],"pink":[255,192,203],"plum":[221,160,221],"powderblue":[176,224,230],"rosybrown":[188,143,143],"royalblue":[65,105,225],"saddlebrown":[139,69,19],"salmon":[250,128,114],"sandybrown":[244,164,96],"seagreen":[46,139,87],"seashell":[255,245,238],"sienna":[160,82,45],"skyblue":[135,206,235],"slateblue":[106,90,205],"slategray":[112,128,144],"slategrey":[112,128,144],"snow":[255,250,250],"springgreen":[0,255,127],"steelblue":[70,130,180],"tan":[210,180,140],"thistle":[216,191,216],"tomato":[255,99,71],"turquoise":[64,224,208],"violet":[238,130,238],"wheat":[245,222,179],"whitesmoke":[245,245,245],"yellowgreen":[154,205,50]});return _57a;});},"dijit/Dialog":function(){require({cache:{"url:dijit/templates/Dialog.html":"<div class=\"dijitDialog\" role=\"dialog\" aria-labelledby=\"${id}_title\">\n\t<div data-dojo-attach-point=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t\t<span data-dojo-attach-point=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"\n\t\t\t\trole=\"heading\" level=\"1\"></span>\n\t\t<span data-dojo-attach-point=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" data-dojo-attach-event=\"ondijitclick: onCancel\" title=\"${buttonCancel}\" role=\"button\" tabIndex=\"-1\">\n\t\t\t<span data-dojo-attach-point=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t\t</span>\n\t</div>\n\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"}});define("dijit/Dialog",["require","dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/Deferred","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/_base/fx","dojo/i18n","dojo/keys","dojo/_base/lang","dojo/on","dojo/ready","dojo/sniff","dojo/window","dojo/dnd/Moveable","dojo/dnd/TimedMoveable","./focus","./_base/manager","./_Widget","./_TemplatedMixin","./_CssStateMixin","./form/_FormMixin","./_DialogMixin","./DialogUnderlay","./layout/ContentPane","dojo/text!./templates/Dialog.html","./main","dojo/i18n!./nls/common"],function(_580,_581,_582,_583,_584,dom,_585,_586,_587,_588,fx,i18n,keys,lang,on,_589,has,_58a,_58b,_58c,_58d,_58e,_58f,_590,_591,_592,_593,_594,_595,_596,_597){var _598=_583("dijit._DialogBase",[_590,_592,_593,_591],{templateString:_596,baseClass:"dijitDialog",cssStateNodes:{closeButtonNode:"dijitDialogCloseIcon"},_setTitleAttr:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],open:false,duration:_58e.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,_setDraggableAttr:function(val){this._set("draggable",val);},"aria-describedby":"",maxRatio:0.9,postMixInProperties:function(){var _599=i18n.getLocalization("dijit","common");lang.mixin(this,_599);this.inherited(arguments);},postCreate:function(){_587.set(this.domNode,{display:"none",position:"absolute"});this.ownerDocumentBody.appendChild(this.domNode);this.inherited(arguments);this.connect(this,"onExecute","hide");this.connect(this,"onCancel","hide");this._modalconnects=[];},onLoad:function(){this._position();if(this.autofocus&&_59a.isTop(this)){this._getFocusItems(this.domNode);_58d.focus(this._firstFocusItem);}this.inherited(arguments);},_onBlur:function(by){this.inherited(arguments);var _59b=lang.hitch(this,function(){if(this.open&&!this._destroyed&&_59a.isTop(this)){this._getFocusItems(this.domNode);_58d.focus(this._firstFocusItem);}});if(by=="mouse"){on.once(this.ownerDocument,"mouseup",_59b);}else{_59b();}},_endDrag:function(){var _59c=_586.position(this.domNode),_59d=_58a.getBox(this.ownerDocument);_59c.y=Math.min(Math.max(_59c.y,0),(_59d.h-_59c.h));_59c.x=Math.min(Math.max(_59c.x,0),(_59d.w-_59c.w));this._relativePosition=_59c;this._position();},_setup:function(){var node=this.domNode;if(this.titleBar&&this.draggable){this._moveable=new ((has("ie")==6)?_58c:_58b)(node,{handle:this.titleBar});this.connect(this._moveable,"onMoveStop","_endDrag");}else{_585.add(node,"dijitDialogFixed");}this.underlayAttrs={dialogId:this.id,"class":_581.map(this["class"].split(/\s/),function(s){return s+"_underlay";}).join(" "),ownerDocument:this.ownerDocument};},_size:function(){this._checkIfSingleChild();if(this._singleChild){if(typeof this._singleChildOriginalStyle!="undefined"){this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle;delete this._singleChildOriginalStyle;}}else{_587.set(this.containerNode,{width:"auto",height:"auto"});}var bb=_586.position(this.domNode);var _59e=_58a.getBox(this.ownerDocument);_59e.w*=this.maxRatio;_59e.h*=this.maxRatio;if(bb.w>=_59e.w||bb.h>=_59e.h){var _59f=_586.position(this.containerNode),w=Math.min(bb.w,_59e.w)-(bb.w-_59f.w),h=Math.min(bb.h,_59e.h)-(bb.h-_59f.h);if(this._singleChild&&this._singleChild.resize){if(typeof this._singleChildOriginalStyle=="undefined"){this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;}this._singleChild.resize({w:w,h:h});}else{_587.set(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"});}}else{if(this._singleChild&&this._singleChild.resize){this._singleChild.resize();}}},_position:function(){if(!_585.contains(this.ownerDocumentBody,"dojoMove")){var node=this.domNode,_5a0=_58a.getBox(this.ownerDocument),p=this._relativePosition,bb=p?null:_586.position(node),l=Math.floor(_5a0.l+(p?p.x:(_5a0.w-bb.w)/2)),t=Math.floor(_5a0.t+(p?p.y:(_5a0.h-bb.h)/2));_587.set(node,{left:l+"px",top:t+"px"});}},_onKey:function(evt){if(evt.charOrCode){var node=evt.target;if(evt.charOrCode===keys.TAB){this._getFocusItems(this.domNode);}var _5a1=(this._firstFocusItem==this._lastFocusItem);if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===keys.TAB){if(!_5a1){_58d.focus(this._lastFocusItem);}_588.stop(evt);}else{if(node==this._lastFocusItem&&evt.charOrCode===keys.TAB&&!evt.shiftKey){if(!_5a1){_58d.focus(this._firstFocusItem);}_588.stop(evt);}else{while(node){if(node==this.domNode||_585.contains(node,"dijitPopup")){if(evt.charOrCode==keys.ESCAPE){this.onCancel();}else{return;}}node=node.parentNode;}if(evt.charOrCode!==keys.TAB){_588.stop(evt);}else{if(!has("opera")){try{this._firstFocusItem.focus();}catch(e){}}}}}}},show:function(){if(this.open){return;}if(!this._started){this.startup();}if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true;}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();}var win=_58a.get(this.ownerDocument);this._modalconnects.push(on(win,"scroll",lang.hitch(this,"resize")));this._modalconnects.push(on(this.domNode,_582._keypress,lang.hitch(this,"_onKey")));_587.set(this.domNode,{opacity:0,display:""});this._set("open",true);this._onShow();this._size();this._position();var _5a2;this._fadeInDeferred=new _584(lang.hitch(this,function(){_5a2.stop();delete this._fadeInDeferred;}));_5a2=fx.fadeIn({node:this.domNode,duration:this.duration,beforeBegin:lang.hitch(this,function(){_59a.show(this,this.underlayAttrs);}),onEnd:lang.hitch(this,function(){if(this.autofocus&&_59a.isTop(this)){this._getFocusItems(this.domNode);_58d.focus(this._firstFocusItem);}this._fadeInDeferred.resolve(true);delete this._fadeInDeferred;})}).play();return this._fadeInDeferred;},hide:function(){if(!this._alreadyInitialized||!this.open){return;}if(this._fadeInDeferred){this._fadeInDeferred.cancel();}var _5a3;this._fadeOutDeferred=new _584(lang.hitch(this,function(){_5a3.stop();delete this._fadeOutDeferred;}));this._fadeOutDeferred.then(lang.hitch(this,"onHide"));_5a3=fx.fadeOut({node:this.domNode,duration:this.duration,onEnd:lang.hitch(this,function(){this.domNode.style.display="none";_59a.hide(this);this._fadeOutDeferred.resolve(true);delete this._fadeOutDeferred;})}).play();if(this._scrollConnected){this._scrollConnected=false;}var h;while(h=this._modalconnects.pop()){h.remove();}if(this._relativePosition){delete this._relativePosition;}this._set("open",false);return this._fadeOutDeferred;},resize:function(){if(this.domNode.style.display!="none"){if(_594._singleton){_594._singleton.layout();}this._position();this._size();}},destroy:function(){if(this._fadeInDeferred){this._fadeInDeferred.cancel();}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();}if(this._moveable){this._moveable.destroy();}var h;while(h=this._modalconnects.pop()){h.remove();}_59a.hide(this);this.inherited(arguments);}});var _5a4=_583("dijit.Dialog",[_595,_598],{});_5a4._DialogBase=_598;var _59a=_5a4._DialogLevelManager={_beginZIndex:950,show:function(_5a5,_5a6){ds[ds.length-1].focus=_58d.curNode;var _5a7=_594._singleton;if(!_5a7||_5a7._destroyed){_5a7=_597._underlay=_594._singleton=new _594(_5a6);}else{_5a7.set(_5a5.underlayAttrs);}var _5a8=ds[ds.length-1].dialog?ds[ds.length-1].zIndex+2:_5a4._DialogLevelManager._beginZIndex;if(ds.length==1){_5a7.show();}_587.set(_594._singleton.domNode,"zIndex",_5a8-1);_587.set(_5a5.domNode,"zIndex",_5a8);ds.push({dialog:_5a5,underlayAttrs:_5a6,zIndex:_5a8});},hide:function(_5a9){if(ds[ds.length-1].dialog==_5a9){ds.pop();var pd=ds[ds.length-1];if(!_594._singleton._destroyed){if(ds.length==1){_594._singleton.hide();}else{_587.set(_594._singleton.domNode,"zIndex",pd.zIndex-1);_594._singleton.set(pd.underlayAttrs);}}if(_5a9.refocus){var _5aa=pd.focus;if(pd.dialog&&(!_5aa||!dom.isDescendant(_5aa,pd.dialog.domNode))){pd.dialog._getFocusItems(pd.dialog.domNode);_5aa=pd.dialog._firstFocusItem;}if(_5aa){try{_5aa.focus();}catch(e){}}}}else{var idx=_581.indexOf(_581.map(ds,function(elem){return elem.dialog;}),_5a9);if(idx!=-1){ds.splice(idx,1);}}},isTop:function(_5ab){return ds[ds.length-1].dialog==_5ab;}};var ds=_5a4._dialogStack=[{dialog:null,focus:null,underlayAttrs:null}];if(has("dijit-legacy-requires")){_589(0,function(){var _5ac=["dijit/TooltipDialog"];_580(_5ac);});}return _5a4;});},"dijit/form/_FormMixin":function(){define("dijit/form/_FormMixin",["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/window"],function(_5ad,_5ae,_5af,lang,on,_5b0){return _5ae("dijit.form._FormMixin",null,{state:"",_getDescendantFormWidgets:function(_5b1){var res=[];_5ad.forEach(_5b1||this.getChildren(),function(_5b2){if("value" in _5b2){res.push(_5b2);}else{res=res.concat(this._getDescendantFormWidgets(_5b2.getChildren()));}},this);return res;},reset:function(){_5ad.forEach(this._getDescendantFormWidgets(),function(_5b3){if(_5b3.reset){_5b3.reset();}});},validate:function(){var _5b4=false;return _5ad.every(_5ad.map(this._getDescendantFormWidgets(),function(_5b5){_5b5._hasBeenBlurred=true;var _5b6=_5b5.disabled||!_5b5.validate||_5b5.validate();if(!_5b6&&!_5b4){_5b0.scrollIntoView(_5b5.containerNode||_5b5.domNode);_5b5.focus();_5b4=true;}return _5b6;}),function(item){return item;});},setValues:function(val){_5af.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(obj){var map={};_5ad.forEach(this._getDescendantFormWidgets(),function(_5b7){if(!_5b7.name){return;}var _5b8=map[_5b7.name]||(map[_5b7.name]=[]);_5b8.push(_5b7);});for(var name in map){if(!map.hasOwnProperty(name)){continue;}var _5b9=map[name],_5ba=lang.getObject(name,false,obj);if(_5ba===undefined){continue;}if(!lang.isArray(_5ba)){_5ba=[_5ba];}if(typeof _5b9[0].checked=="boolean"){_5ad.forEach(_5b9,function(w){w.set("value",_5ad.indexOf(_5ba,w.value)!=-1);});}else{if(_5b9[0].multiple){_5b9[0].set("value",_5ba);}else{_5ad.forEach(_5b9,function(w,i){w.set("value",_5ba[i]);});}}}},getValues:function(){_5af.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},_getValueAttr:function(){var obj={};_5ad.forEach(this._getDescendantFormWidgets(),function(_5bb){var name=_5bb.name;if(!name||_5bb.disabled){return;}var _5bc=_5bb.get("value");if(typeof _5bb.checked=="boolean"){if(/Radio/.test(_5bb.declaredClass)){if(_5bc!==false){lang.setObject(name,_5bc,obj);}else{_5bc=lang.getObject(name,false,obj);if(_5bc===undefined){lang.setObject(name,null,obj);}}}else{var ary=lang.getObject(name,false,obj);if(!ary){ary=[];lang.setObject(name,ary,obj);}if(_5bc!==false){ary.push(_5bc);}}}else{var prev=lang.getObject(name,false,obj);if(typeof prev!="undefined"){if(lang.isArray(prev)){prev.push(_5bc);}else{lang.setObject(name,[prev,_5bc],obj);}}else{lang.setObject(name,_5bc,obj);}}});return obj;},isValid:function(){return this.state=="";},onValidStateChange:function(){},_getState:function(){var _5bd=_5ad.map(this._descendants,function(w){return w.get("state")||"";});return _5ad.indexOf(_5bd,"Error")>=0?"Error":_5ad.indexOf(_5bd,"Incomplete")>=0?"Incomplete":"";},disconnectChildren:function(){},connectChildren:function(_5be){this._descendants=this._getDescendantFormWidgets();_5ad.forEach(this._descendants,function(_5bf){if(!_5bf._started){_5bf.startup();}});if(!_5be){this._onChildChange();}},_onChildChange:function(attr){if(!attr||attr=="state"||attr=="disabled"){this._set("state",this._getState());}if(!attr||attr=="value"||attr=="disabled"||attr=="checked"){if(this._onChangeDelayTimer){this._onChangeDelayTimer.remove();}this._onChangeDelayTimer=this.defer(function(){delete this._onChangeDelayTimer;this._set("value",this.get("value"));},10);}},startup:function(){this.inherited(arguments);this._descendants=this._getDescendantFormWidgets();this.value=this.get("value");this.state=this._getState();var self=this;this.own(on(this.containerNode,"attrmodified-state, attrmodified-disabled, attrmodified-value, attrmodified-checked",function(evt){if(evt.target==self.domNode){return;}self._onChildChange(evt.type.replace("attrmodified-",""));}));this.watch("state",function(attr,_5c0,_5c1){this.onValidStateChange(_5c1=="");});},destroy:function(){this.inherited(arguments);}});});},"dijit/_DialogMixin":function(){define("dijit/_DialogMixin",["dojo/_base/declare","./a11y"],function(_5c2,a11y){return _5c2("dijit._DialogMixin",null,{execute:function(){},onCancel:function(){},onExecute:function(){},_onSubmit:function(){this.onExecute();this.execute(this.get("value"));},_getFocusItems:function(){var _5c3=a11y._getTabNavigable(this.containerNode);this._firstFocusItem=_5c3.lowest||_5c3.first||this.closeButtonNode||this.domNode;this._lastFocusItem=_5c3.last||_5c3.highest||this._firstFocusItem;}});});},"dijit/DialogUnderlay":function(){define("dijit/DialogUnderlay",["dojo/_base/declare","dojo/dom-attr","dojo/window","./_Widget","./_TemplatedMixin","./BackgroundIframe"],function(_5c4,_5c5,_5c6,_5c7,_5c8,_5c9){return _5c4("dijit.DialogUnderlay",[_5c7,_5c8],{templateString:"<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' data-dojo-attach-point='node'></div></div>",dialogId:"","class":"",_setDialogIdAttr:function(id){_5c5.set(this.node,"id",id+"_underlay");this._set("dialogId",id);},_setClassAttr:function(_5ca){this.node.className="dijitDialogUnderlay "+_5ca;this._set("class",_5ca);},postCreate:function(){this.ownerDocumentBody.appendChild(this.domNode);},layout:function(){var is=this.node.style,os=this.domNode.style;os.display="none";var _5cb=_5c6.getBox(this.ownerDocument);os.top=_5cb.t+"px";os.left=_5cb.l+"px";is.width=_5cb.w+"px";is.height=_5cb.h+"px";os.display="block";},show:function(){this.domNode.style.display="block";this.layout();this.bgIframe=new _5c9(this.domNode);},hide:function(){this.bgIframe.destroy();delete this.bgIframe;this.domNode.style.display="none";}});});},"dijit/layout/ContentPane":function(){define("dijit/layout/ContentPane",["dojo/_base/kernel","dojo/_base/lang","../_Widget","../_Container","./_ContentPaneResizeMixin","dojo/string","dojo/html","dojo/i18n!../nls/loading","dojo/_base/array","dojo/_base/declare","dojo/_base/Deferred","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/_base/xhr","dojo/i18n","dojo/when"],function(_5cc,lang,_5cd,_5ce,_5cf,_5d0,html,_5d1,_5d2,_5d3,_5d4,dom,_5d5,_5d6,xhr,i18n,when){return _5d3("dijit.layout.ContentPane",[_5cd,_5ce,_5cf],{href:"",content:"",extractContent:false,parseOnLoad:true,parserScope:_5cc._scopeName,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'><span class='dijitInline dijitIconLoading'></span>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'><span class='dijitInline dijitIconError'></span>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",ioArgs:{},onLoadDeferred:null,_setTitleAttr:null,stopParser:true,template:false,create:function(_5d7,_5d8){if((!_5d7||!_5d7.template)&&_5d8&&!("href" in _5d7)&&!("content" in _5d7)){_5d8=dom.byId(_5d8);var df=_5d8.ownerDocument.createDocumentFragment();while(_5d8.firstChild){df.appendChild(_5d8.firstChild);}_5d7=lang.delegate(_5d7,{content:df});}this.inherited(arguments,[_5d7,_5d8]);},postMixInProperties:function(){this.inherited(arguments);var _5d9=i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=_5d0.substitute(this.loadingMessage,_5d9);this.errorMessage=_5d0.substitute(this.errorMessage,_5d9);},buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}this.domNode.title="";if(!_5d5.get(this.domNode,"role")){this.domNode.setAttribute("role","group");}},startup:function(){this.inherited(arguments);if(this._contentSetter){_5d2.forEach(this._contentSetter.parseResults,function(obj){if(!obj._started&&!obj._destroyed&&lang.isFunction(obj.startup)){obj.startup();obj._started=true;}},this);}},_startChildren:function(){_5d2.forEach(this.getChildren(),function(obj){if(!obj._started&&!obj._destroyed&&lang.isFunction(obj.startup)){obj.startup();obj._started=true;}});if(this._contentSetter){_5d2.forEach(this._contentSetter.parseResults,function(obj){if(!obj._started&&!obj._destroyed&&lang.isFunction(obj.startup)){obj.startup();obj._started=true;}},this);}},setHref:function(href){_5cc.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.","","2.0");return this.set("href",href);},_setHrefAttr:function(href){this.cancel();this.onLoadDeferred=new _5d4(lang.hitch(this,"cancel"));this.onLoadDeferred.then(lang.hitch(this,"onLoad"));this._set("href",href);if(this.preload||(this._created&&this._isShown())){this._load();}else{this._hrefChanged=true;}return this.onLoadDeferred;},setContent:function(data){_5cc.deprecated("dijit.layout.ContentPane.setContent() is deprecated. Use set('content', ...) instead.","","2.0");this.set("content",data);},_setContentAttr:function(data){this._set("href","");this.cancel();this.onLoadDeferred=new _5d4(lang.hitch(this,"cancel"));if(this._created){this.onLoadDeferred.then(lang.hitch(this,"onLoad"));}this._setContent(data||"");this._isDownloaded=false;return this.onLoadDeferred;},_getContentAttr:function(){return this.containerNode.innerHTML;},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}delete this._xhrDfd;this.onLoadDeferred=null;},destroy:function(){this.cancel();this.inherited(arguments);},destroyRecursive:function(_5da){if(this._beingDestroyed){return;}this.inherited(arguments);},_onShow:function(){this.inherited(arguments);if(this.href){if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)){return this.refresh();}}},refresh:function(){this.cancel();this.onLoadDeferred=new _5d4(lang.hitch(this,"cancel"));this.onLoadDeferred.then(lang.hitch(this,"onLoad"));this._load();return this.onLoadDeferred;},_load:function(){this._setContent(this.onDownloadStart(),true);var self=this;var _5db={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(lang.isObject(this.ioArgs)){lang.mixin(_5db,this.ioArgs);}var hand=(this._xhrDfd=(this.ioMethod||xhr.get)(_5db)),_5dc;hand.then(function(html){_5dc=html;try{self._isDownloaded=true;return self._setContent(html,false);}catch(err){self._onError("Content",err);}},function(err){if(!hand.canceled){self._onError("Download",err);}delete self._xhrDfd;return err;}).then(function(){self.onDownloadEnd();delete self._xhrDfd;return _5dc;});delete this._hrefChanged;},_onLoadHandler:function(data){this._set("isLoaded",true);try{this.onLoadDeferred.resolve(data);}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message);}},_onUnloadHandler:function(){this._set("isLoaded",false);try{this.onUnload();}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message);}},destroyDescendants:function(_5dd){if(this.isLoaded){this._onUnloadHandler();}var _5de=this._contentSetter;_5d2.forEach(this.getChildren(),function(_5df){if(_5df.destroyRecursive){_5df.destroyRecursive(_5dd);}else{if(_5df.destroy){_5df.destroy(_5dd);}}_5df._destroyed=true;});if(_5de){_5d2.forEach(_5de.parseResults,function(_5e0){if(!_5e0._destroyed){if(_5e0.destroyRecursive){_5e0.destroyRecursive(_5dd);}else{if(_5e0.destroy){_5e0.destroy(_5dd);}}_5e0._destroyed=true;}});delete _5de.parseResults;}if(!_5dd){_5d6.empty(this.containerNode);}delete this._singleChild;},_setContent:function(cont,_5e1){this.destroyDescendants();var _5e2=this._contentSetter;if(!(_5e2&&_5e2 instanceof html._ContentSetter)){_5e2=this._contentSetter=new html._ContentSetter({node:this.containerNode,_onError:lang.hitch(this,this._onError),onContentError:lang.hitch(this,function(e){var _5e3=this.onContentError(e);try{this.containerNode.innerHTML=_5e3;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}})});}var _5e4=lang.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:!cont.domNode&&this.parseOnLoad,parserScope:this.parserScope,startup:false,dir:this.dir,lang:this.lang,textDir:this.textDir},this._contentSetterParams||{});var p=_5e2.set((lang.isObject(cont)&&cont.domNode)?cont.domNode:cont,_5e4);var self=this;return when(p&&p.then?p:_5e2.parseDeferred,function(){delete self._contentSetterParams;if(!_5e1){if(self._started){self._startChildren();self._scheduleLayout();}self._onLoadHandler(cont);}});},_onError:function(type,err,_5e5){this.onLoadDeferred.reject(err);var _5e6=this["on"+type+"Error"].call(this,err);if(_5e5){console.error(_5e5,err);}else{if(_5e6){this._setContent(_5e6,true);}}},onLoad:function(){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(){},onDownloadError:function(){return this.errorMessage;},onDownloadEnd:function(){}});});},"dijit/layout/_ContentPaneResizeMixin":function(){define("dijit/layout/_ContentPaneResizeMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang","dojo/query","dojo/sniff","../registry","../Viewport","./utils"],function(_5e7,_5e8,_5e9,_5ea,_5eb,lang,_5ec,has,_5ed,_5ee,_5ef){return _5e8("dijit.layout._ContentPaneResizeMixin",null,{doLayout:true,isLayoutContainer:true,startup:function(){if(this._started){return;}var _5f0=this.getParent();this._childOfLayoutWidget=_5f0&&_5f0.isLayoutContainer;this._needLayout=!this._childOfLayoutWidget;this.inherited(arguments);if(this._isShown()){this._onShow();}if(!this._childOfLayoutWidget){this.own(_5ee.on("resize",lang.hitch(this,"resize")));}},_checkIfSingleChild:function(){var _5f1=[],_5f2=false;_5ec("> *",this.containerNode).some(function(node){var _5f3=_5ed.byNode(node);if(_5f3&&_5f3.resize){_5f1.push(_5f3);}else{if(node.offsetHeight){_5f2=true;}}});this._singleChild=_5f1.length==1&&!_5f2?_5f1[0]:null;_5e9.toggle(this.containerNode,this.baseClass+"SingleChild",!!this._singleChild);},resize:function(_5f4,_5f5){this._resizeCalled=true;this._scheduleLayout(_5f4,_5f5);},_scheduleLayout:function(_5f6,_5f7){if(this._isShown()){this._layout(_5f6,_5f7);}else{this._needLayout=true;this._changeSize=_5f6;this._resultSize=_5f7;}},_layout:function(_5f8,_5f9){delete this._needLayout;if(!this._wasShown&&this.open!==false){this._onShow();}if(_5f8){_5ea.setMarginBox(this.domNode,_5f8);}var cn=this.containerNode;if(cn===this.domNode){var mb=_5f9||{};lang.mixin(mb,_5f8||{});if(!("h" in mb)||!("w" in mb)){mb=lang.mixin(_5ea.getMarginBox(cn),mb);}this._contentBox=_5ef.marginBox2contentBox(cn,mb);}else{this._contentBox=_5ea.getContentBox(cn);}this._layoutChildren();},_layoutChildren:function(){if(this.doLayout){this._checkIfSingleChild();}if(this._singleChild&&this._singleChild.resize){var cb=this._contentBox||_5ea.getContentBox(this.containerNode);this._singleChild.resize({w:cb.w,h:cb.h});}else{_5e7.forEach(this.getChildren(),function(_5fa){if(_5fa.resize){_5fa.resize();}});}},_isShown:function(){if(this._childOfLayoutWidget){if(this._resizeCalled&&"open" in this){return this.open;}return this._resizeCalled;}else{if("open" in this){return this.open;}else{var node=this.domNode,_5fb=this.domNode.parentNode;return (node.style.display!="none")&&(node.style.visibility!="hidden")&&!_5e9.contains(node,"dijitHidden")&&_5fb&&_5fb.style&&(_5fb.style.display!="none");}}},_onShow:function(){this._wasShown=true;if(this._needLayout){this._layout(this._changeSize,this._resultSize);}this.inherited(arguments);}});});},"dijit/layout/utils":function(){define("dijit/layout/utils",["dojo/_base/array","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang","../main"],function(_5fc,_5fd,_5fe,_5ff,lang,_600){var _601=lang.getObject("layout",true,_600);_601.marginBox2contentBox=function(node,mb){var cs=_5ff.getComputedStyle(node);var me=_5fe.getMarginExtents(node,cs);var pb=_5fe.getPadBorderExtents(node,cs);return {l:_5ff.toPixelValue(node,cs.paddingLeft),t:_5ff.toPixelValue(node,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)};};function _602(word){return word.substring(0,1).toUpperCase()+word.substring(1);};function size(_603,dim){var _604=_603.resize?_603.resize(dim):_5fe.setMarginBox(_603.domNode,dim);if(_604){lang.mixin(_603,_604);}else{lang.mixin(_603,_5fe.getMarginBox(_603.domNode));lang.mixin(_603,dim);}};_601.layoutChildren=function(_605,dim,_606,_607,_608){dim=lang.mixin({},dim);_5fd.add(_605,"dijitLayoutContainer");_606=_5fc.filter(_606,function(item){return item.region!="center"&&item.layoutAlign!="client";}).concat(_5fc.filter(_606,function(item){return item.region=="center"||item.layoutAlign=="client";}));_5fc.forEach(_606,function(_609){var elm=_609.domNode,pos=(_609.region||_609.layoutAlign);if(!pos){throw new Error("No region setting for "+_609.id);}var _60a=elm.style;_60a.left=dim.l+"px";_60a.top=dim.t+"px";_60a.position="absolute";_5fd.add(elm,"dijitAlign"+_602(pos));var _60b={};if(_607&&_607==_609.id){_60b[_609.region=="top"||_609.region=="bottom"?"h":"w"]=_608;}if(pos=="top"||pos=="bottom"){_60b.w=dim.w;size(_609,_60b);dim.h-=_609.h;if(pos=="top"){dim.t+=_609.h;}else{_60a.top=dim.t+dim.h+"px";}}else{if(pos=="left"||pos=="right"){_60b.h=dim.h;size(_609,_60b);dim.w-=_609.w;if(pos=="left"){dim.l+=_609.w;}else{_60a.left=dim.l+dim.w+"px";}}else{if(pos=="client"||pos=="center"){size(_609,dim);}}}});};return {marginBox2contentBox:_601.marginBox2contentBox,layoutChildren:_601.layoutChildren};});},"url:dijit/templates/Dialog.html":"<div class=\"dijitDialog\" role=\"dialog\" aria-labelledby=\"${id}_title\">\n\t<div data-dojo-attach-point=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t\t<span data-dojo-attach-point=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"\n\t\t\t\trole=\"heading\" level=\"1\"></span>\n\t\t<span data-dojo-attach-point=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" data-dojo-attach-event=\"ondijitclick: onCancel\" title=\"${buttonCancel}\" role=\"button\" tabIndex=\"-1\">\n\t\t\t<span data-dojo-attach-point=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t\t</span>\n\t</div>\n\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n","dijit/form/Button":function(){require({cache:{"url:dijit/form/templates/Button.html":"<span class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" role=\"presentation\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode,focusNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#x25CF;</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\ttabIndex=\"-1\" role=\"presentation\" data-dojo-attach-point=\"valueNode\"\n/></span>\n"}});define("dijit/form/Button",["require","dojo/_base/declare","dojo/dom-class","dojo/has","dojo/_base/kernel","dojo/_base/lang","dojo/ready","./_FormWidget","./_ButtonMixin","dojo/text!./templates/Button.html"],function(_60c,_60d,_60e,has,_60f,lang,_610,_611,_612,_613){if(has("dijit-legacy-requires")){_610(0,function(){var _614=["dijit/form/DropDownButton","dijit/form/ComboButton","dijit/form/ToggleButton"];_60c(_614);});}return _60d("dijit.form.Button",[_611,_612],{showLabel:true,iconClass:"dijitNoIcon",_setIconClassAttr:{node:"iconNode",type:"class"},baseClass:"dijitButton",templateString:_613,_setValueAttr:"valueNode",_onClick:function(e){var ok=this.inherited(arguments);if(ok){if(this.valueNode){this.valueNode.click();e.preventDefault();e.stopPropagation();}}return ok;},_fillContent:function(_615){if(_615&&(!this.params||!("label" in this.params))){var _616=lang.trim(_615.innerHTML);if(_616){this.label=_616;}}},_setShowLabelAttr:function(val){if(this.containerNode){_60e.toggle(this.containerNode,"dijitDisplayNone",!val);}this._set("showLabel",val);},setLabel:function(_617){_60f.deprecated("dijit.form.Button.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_617);},_setLabelAttr:function(_618){this.inherited(arguments);if(!this.showLabel&&!("title" in this.params)){this.titleNode.title=lang.trim(this.containerNode.innerText||this.containerNode.textContent||"");}}});});},"dijit/form/_ButtonMixin":function(){define("dijit/form/_ButtonMixin",["dojo/_base/declare","dojo/dom","dojo/_base/event","../registry"],function(_619,dom,_61a,_61b){return _619("dijit.form._ButtonMixin",null,{label:"",type:"button",_onClick:function(e){if(this.disabled){_61a.stop(e);return false;}var _61c=this.onClick(e)===false;if(!_61c&&this.type=="submit"&&!(this.valueNode||this.focusNode).form){for(var node=this.domNode;node.parentNode;node=node.parentNode){var _61d=_61b.byNode(node);if(_61d&&typeof _61d._onSubmit=="function"){_61d._onSubmit(e);_61c=true;break;}}}if(_61c){e.preventDefault();}return !_61c;},postCreate:function(){this.inherited(arguments);dom.setSelectable(this.focusNode,false);},onClick:function(){return true;},_setLabelAttr:function(_61e){this._set("label",_61e);(this.containerNode||this.focusNode).innerHTML=_61e;}});});},"url:dijit/form/templates/Button.html":"<span class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" role=\"presentation\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode,focusNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#x25CF;</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\ttabIndex=\"-1\" role=\"presentation\" data-dojo-attach-point=\"valueNode\"\n/></span>\n","dijit/form/CheckBox":function(){require({cache:{"url:dijit/form/templates/CheckBox.html":"<div class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" role=\"${type}\" aria-checked=\"false\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdata-dojo-attach-point=\"focusNode\"\n\t \tdata-dojo-attach-event=\"onclick:_onClick\"\n/></div>\n"}});define("dijit/form/CheckBox",["require","dojo/_base/declare","dojo/dom-attr","dojo/has","dojo/query","dojo/ready","./ToggleButton","./_CheckBoxMixin","dojo/text!./templates/CheckBox.html","dojo/NodeList-dom"],function(_61f,_620,_621,has,_622,_623,_624,_625,_626){if(has("dijit-legacy-requires")){_623(0,function(){var _627=["dijit/form/RadioButton"];_61f(_627);});}return _620("dijit.form.CheckBox",[_624,_625],{templateString:_626,baseClass:"dijitCheckBox",_setValueAttr:function(_628,_629){if(typeof _628=="string"){this.inherited(arguments);_628=true;}if(this._created){this.set("checked",_628,_629);}},_getValueAttr:function(){return (this.checked?this.value:false);},_setIconClassAttr:null,postMixInProperties:function(){this.inherited(arguments);this.checkedAttrSetting=this.checked?"checked":"";},_fillContent:function(){},_onFocus:function(){if(this.id){_622("label[for='"+this.id+"']").addClass("dijitFocusedLabel");}this.inherited(arguments);},_onBlur:function(){if(this.id){_622("label[for='"+this.id+"']").removeClass("dijitFocusedLabel");}this.inherited(arguments);}});});},"dijit/form/ToggleButton":function(){define("dijit/form/ToggleButton",["dojo/_base/declare","dojo/_base/kernel","./Button","./_ToggleButtonMixin"],function(_62a,_62b,_62c,_62d){return _62a("dijit.form.ToggleButton",[_62c,_62d],{baseClass:"dijitToggleButton",setChecked:function(_62e){_62b.deprecated("setChecked("+_62e+") is deprecated. Use set('checked',"+_62e+") instead.","","2.0");this.set("checked",_62e);}});});},"dijit/form/_ToggleButtonMixin":function(){define("dijit/form/_ToggleButtonMixin",["dojo/_base/declare","dojo/dom-attr"],function(_62f,_630){return _62f("dijit.form._ToggleButtonMixin",null,{checked:false,_aria_attr:"aria-pressed",_onClick:function(evt){var _631=this.checked;this._set("checked",!_631);var ret=this.inherited(arguments);this.set("checked",ret?this.checked:_631);return ret;},_setCheckedAttr:function(_632,_633){this._set("checked",_632);var node=this.focusNode||this.domNode;_630.set(node,"checked",!!_632);if(_632){node.setAttribute("checked","");}else{node.removeAttribute("checked");}node.setAttribute(this._aria_attr,String(_632));this._handleOnChange(_632,_633);},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false);}});});},"dijit/form/_CheckBoxMixin":function(){define("dijit/form/_CheckBoxMixin",["dojo/_base/declare","dojo/dom-attr","dojo/_base/event"],function(_634,_635,_636){return _634("dijit.form._CheckBoxMixin",null,{type:"checkbox",value:"on",readOnly:false,_aria_attr:"aria-checked",_setReadOnlyAttr:function(_637){this._set("readOnly",_637);_635.set(this.focusNode,"readOnly",_637);},_setLabelAttr:undefined,_getSubmitValue:function(_638){return !_638&&_638!==0?"on":_638;},_setValueAttr:function(_639){_639=this._getSubmitValue(_639);this._set("value",_639);_635.set(this.focusNode,"value",_639);},reset:function(){this.inherited(arguments);this._set("value",this.params.value||"on");_635.set(this.focusNode,"value",this.value);},_onClick:function(e){if(this.readOnly){_636.stop(e);return false;}return this.inherited(arguments);}});});},"url:dijit/form/templates/CheckBox.html":"<div class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" role=\"${type}\" aria-checked=\"false\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdata-dojo-attach-point=\"focusNode\"\n\t \tdata-dojo-attach-event=\"onclick:_onClick\"\n/></div>\n","dijit/form/ComboButton":function(){require({cache:{"url:dijit/form/templates/ComboButton.html":"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' role=\"presentation\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" data-dojo-attach-point=\"buttonNode\" data-dojo-attach-event=\"ondijitclick:_onClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" data-dojo-attach-point=\"containerNode\" role=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdata-dojo-attach-point=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdata-dojo-attach-event=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\trole=\"button\" aria-haspopup=\"true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">&#9660;</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" data-dojo-attach-point=\"valueNode\" role=\"presentation\"\n\t\t/></td></tr></tbody\n></table>\n"}});define("dijit/form/ComboButton",["dojo/_base/declare","dojo/_base/event","dojo/keys","../focus","./DropDownButton","dojo/text!./templates/ComboButton.html"],function(_63a,_63b,keys,_63c,_63d,_63e){return _63a("dijit.form.ComboButton",_63d,{templateString:_63e,_setIdAttr:"",_setTabIndexAttr:["focusNode","titleNode"],_setTitleAttr:"titleNode",optionsTitle:"",baseClass:"dijitComboButton",cssStateNodes:{"buttonNode":"dijitButtonNode","titleNode":"dijitButtonContents","_popupStateNode":"dijitDownArrowButton"},_focusedNode:null,_onButtonKeyPress:function(evt){if(evt.charOrCode==keys[this.isLeftToRight()?"RIGHT_ARROW":"LEFT_ARROW"]){_63c.focus(this._popupStateNode);_63b.stop(evt);}},_onArrowKeyPress:function(evt){if(evt.charOrCode==keys[this.isLeftToRight()?"LEFT_ARROW":"RIGHT_ARROW"]){_63c.focus(this.titleNode);_63b.stop(evt);}},focus:function(_63f){if(!this.disabled){_63c.focus(_63f=="start"?this.titleNode:this._popupStateNode);}}});});},"dijit/form/DropDownButton":function(){require({cache:{"url:dijit/form/templates/DropDownButton.html":"<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" data-dojo-attach-point=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\trole=\"button\" aria-haspopup=\"true\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdata-dojo-attach-point=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">&#9660;</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-point=\"valueNode\" role=\"presentation\"\n/></span>\n"}});define("dijit/form/DropDownButton",["dojo/_base/declare","dojo/_base/lang","dojo/query","../registry","../popup","./Button","../_Container","../_HasDropDown","dojo/text!./templates/DropDownButton.html"],function(_640,lang,_641,_642,_643,_644,_645,_646,_647){return _640("dijit.form.DropDownButton",[_644,_645,_646],{baseClass:"dijitDropDownButton",templateString:_647,_fillContent:function(){if(this.srcNodeRef){var _648=_641("*",this.srcNodeRef);this.inherited(arguments,[_648[0]]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}if(!this.dropDown&&this.dropDownContainer){var _649=_641("[widgetId]",this.dropDownContainer)[0];this.dropDown=_642.byNode(_649);delete this.dropDownContainer;}if(this.dropDown){_643.hide(this.dropDown);}this.inherited(arguments);},isLoaded:function(){var _64a=this.dropDown;return (!!_64a&&(!_64a.href||_64a.isLoaded));},loadDropDown:function(_64b){var _64c=this.dropDown;var _64d=_64c.on("load",lang.hitch(this,function(){_64d.remove();_64b();}));_64c.refresh();},isFocusable:function(){return this.inherited(arguments)&&!this._mouseDown;}});});},"dijit/_HasDropDown":function(){define("dijit/_HasDropDown",["dojo/_base/declare","dojo/_base/Deferred","dojo/_base/event","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/keys","dojo/_base/lang","dojo/on","dojo/window","./registry","./focus","./popup","./_FocusMixin"],function(_64e,_64f,_650,dom,_651,_652,_653,_654,has,keys,lang,on,_655,_656,_657,_658,_659){return _64e("dijit._HasDropDown",_659,{_buttonNode:null,_arrowWrapperNode:null,_popupStateNode:null,_aroundNode:null,dropDown:null,autoWidth:true,forceWidth:false,maxHeight:0,dropDownPosition:["below","above"],_stopClickEvents:true,_onDropDownMouseDown:function(e){if(this.disabled||this.readOnly){return;}e.preventDefault();this._docHandler=this.connect(this.ownerDocument,"mouseup","_onDropDownMouseUp");this.toggleDropDown();},_onDropDownMouseUp:function(e){if(e&&this._docHandler){this.disconnect(this._docHandler);}var _65a=this.dropDown,_65b=false;if(e&&this._opened){var c=_653.position(this._buttonNode,true);if(!(e.pageX>=c.x&&e.pageX<=c.x+c.w)||!(e.pageY>=c.y&&e.pageY<=c.y+c.h)){var t=e.target;while(t&&!_65b){if(_652.contains(t,"dijitPopup")){_65b=true;}else{t=t.parentNode;}}if(_65b){t=e.target;if(_65a.onItemClick){var _65c;while(t&&!(_65c=_656.byNode(t))){t=t.parentNode;}if(_65c&&_65c.onClick&&_65c.getParent){_65c.getParent().onItemClick(_65c,e);}}return;}}}if(this._opened){if(_65a.focus&&_65a.autoFocus!==false){this._focusDropDownTimer=this.defer(function(){_65a.focus();delete this._focusDropDownTimer;});}}else{this.defer("focus");}if(has("touch")){this._justGotMouseUp=true;this.defer(function(){this._justGotMouseUp=false;});}},_onDropDownClick:function(e){if(has("touch")&&!this._justGotMouseUp){this._onDropDownMouseDown(e);this._onDropDownMouseUp(e);}if(this._stopClickEvents){_650.stop(e);}},buildRendering:function(){this.inherited(arguments);this._buttonNode=this._buttonNode||this.focusNode||this.domNode;this._popupStateNode=this._popupStateNode||this.focusNode||this._buttonNode;var _65d={"after":this.isLeftToRight()?"Right":"Left","before":this.isLeftToRight()?"Left":"Right","above":"Up","below":"Down","left":"Left","right":"Right"}[this.dropDownPosition[0]]||this.dropDownPosition[0]||"Down";_652.add(this._arrowWrapperNode||this._buttonNode,"dijit"+_65d+"ArrowButton");},postCreate:function(){this.inherited(arguments);var _65e=this.focusNode||this.domNode;this.own(on(this._buttonNode,"mousedown",lang.hitch(this,"_onDropDownMouseDown")),on(this._buttonNode,"click",lang.hitch(this,"_onDropDownClick")),on(_65e,"keydown",lang.hitch(this,"_onKey")),on(_65e,"keyup",lang.hitch(this,"_onKeyUp")));},destroy:function(){if(this.dropDown){if(!this.dropDown._destroyed){this.dropDown.destroyRecursive();}delete this.dropDown;}this.inherited(arguments);},_onKey:function(e){if(this.disabled||this.readOnly){return;}var d=this.dropDown,_65f=e.target;if(d&&this._opened&&d.handleKey){if(d.handleKey(e)===false){_650.stop(e);return;}}if(d&&this._opened&&e.keyCode==keys.ESCAPE){this.closeDropDown();_650.stop(e);}else{if(!this._opened&&(e.keyCode==keys.DOWN_ARROW||((e.keyCode==keys.ENTER||e.keyCode==keys.SPACE)&&((_65f.tagName||"").toLowerCase()!=="input"||(_65f.type&&_65f.type.toLowerCase()!=="text"))))){this._toggleOnKeyUp=true;_650.stop(e);}}},_onKeyUp:function(){if(this._toggleOnKeyUp){delete this._toggleOnKeyUp;this.toggleDropDown();var d=this.dropDown;if(d&&d.focus){this.defer(lang.hitch(d,"focus"),1);}}},_onBlur:function(){var _660=_657.curNode&&this.dropDown&&dom.isDescendant(_657.curNode,this.dropDown.domNode);this.closeDropDown(_660);this.inherited(arguments);},isLoaded:function(){return true;},loadDropDown:function(_661){_661();},loadAndOpenDropDown:function(){var d=new _64f(),_662=lang.hitch(this,function(){this.openDropDown();d.resolve(this.dropDown);});if(!this.isLoaded()){this.loadDropDown(_662);}else{_662();}return d;},toggleDropDown:function(){if(this.disabled||this.readOnly){return;}if(!this._opened){this.loadAndOpenDropDown();}else{this.closeDropDown();}},openDropDown:function(){var _663=this.dropDown,_664=_663.domNode,_665=this._aroundNode||this.domNode,self=this;if(!this._preparedNode){this._preparedNode=true;if(_664.style.width){this._explicitDDWidth=true;}if(_664.style.height){this._explicitDDHeight=true;}}if(this.maxHeight||this.forceWidth||this.autoWidth){var _666={display:"",visibility:"hidden"};if(!this._explicitDDWidth){_666.width="";}if(!this._explicitDDHeight){_666.height="";}_654.set(_664,_666);var _667=this.maxHeight;if(_667==-1){var _668=_655.getBox(this.ownerDocument),_669=_653.position(_665,false);_667=Math.floor(Math.max(_669.y,_668.h-(_669.y+_669.h)));}_658.moveOffScreen(_663);if(_663.startup&&!_663._started){_663.startup();}var mb=_653.getMarginSize(_664);var _66a=(_667&&mb.h>_667);_654.set(_664,{overflowX:"visible",overflowY:_66a?"auto":"visible"});if(_66a){mb.h=_667;if("w" in mb){mb.w+=16;}}else{delete mb.h;}if(this.forceWidth){mb.w=_665.offsetWidth;}else{if(this.autoWidth){mb.w=Math.max(mb.w,_665.offsetWidth);}else{delete mb.w;}}if(lang.isFunction(_663.resize)){_663.resize(mb);}else{_653.setMarginBox(_664,mb);}}var _66b=_658.open({parent:this,popup:_663,around:_665,orient:this.dropDownPosition,onExecute:function(){self.closeDropDown(true);},onCancel:function(){self.closeDropDown(true);},onClose:function(){_651.set(self._popupStateNode,"popupActive",false);_652.remove(self._popupStateNode,"dijitHasDropDownOpen");self._set("_opened",false);}});_651.set(this._popupStateNode,"popupActive","true");_652.add(this._popupStateNode,"dijitHasDropDownOpen");this._set("_opened",true);this.domNode.setAttribute("aria-expanded","true");return _66b;},closeDropDown:function(_66c){if(this._focusDropDownTimer){this._focusDropDownTimer.remove();delete this._focusDropDownTimer;}if(this._opened){this.domNode.setAttribute("aria-expanded","false");if(_66c){this.focus();}_658.close(this.dropDown);this._opened=false;}}});});},"url:dijit/form/templates/DropDownButton.html":"<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" data-dojo-attach-point=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\trole=\"button\" aria-haspopup=\"true\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdata-dojo-attach-point=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdata-dojo-attach-point=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">&#9660;</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-point=\"valueNode\" role=\"presentation\"\n/></span>\n","url:dijit/form/templates/ComboButton.html":"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' role=\"presentation\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" data-dojo-attach-point=\"buttonNode\" data-dojo-attach-event=\"ondijitclick:_onClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" data-dojo-attach-point=\"containerNode\" role=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdata-dojo-attach-point=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdata-dojo-attach-event=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\trole=\"button\" aria-haspopup=\"true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">&#9660;</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" data-dojo-attach-point=\"valueNode\" role=\"presentation\"\n\t\t/></td></tr></tbody\n></table>\n","dijit/form/FilteringSelect":function(){define("dijit/form/FilteringSelect",["dojo/data/util/filter","dojo/_base/declare","dojo/_base/lang","dojo/when","./MappedTextBox","./ComboBoxMixin"],function(_66d,_66e,lang,when,_66f,_670){return _66e("dijit.form.FilteringSelect",[_66f,_670],{required:true,_lastDisplayedValue:"",_isValidSubset:function(){return this._opened;},isValid:function(){return !!this.item||(!this.required&&this.get("displayedValue")=="");},_refreshState:function(){if(!this.searchTimer){this.inherited(arguments);}},_callbackSetLabel:function(_671,_672,_673,_674){if((_672&&_672[this.searchAttr]!==this._lastQuery)||(!_672&&_671.length&&this.store.getIdentity(_671[0])!=this._lastQuery)){return;}if(!_671.length){this.set("value","",_674||(_674===undefined&&!this.focused),this.textbox.value,null);}else{this.set("item",_671[0],_674);}},_openResultList:function(_675,_676,_677){if(_676[this.searchAttr]!==this._lastQuery){return;}this.inherited(arguments);if(this.item===undefined){this.validate(true);}},_getValueAttr:function(){return this.valueNode.value;},_getValueField:function(){return "value";},_setValueAttr:function(_678,_679,_67a,item){if(!this._onChangeActive){_679=null;}if(item===undefined){if(_678===null||_678===""){_678="";if(!lang.isString(_67a)){this._setDisplayedValueAttr(_67a||"",_679);return;}}var self=this;this._lastQuery=_678;when(this.store.get(_678),function(item){self._callbackSetLabel(item?[item]:[],undefined,undefined,_679);});}else{this.valueNode.value=_678;this.inherited(arguments);}},_setItemAttr:function(item,_67b,_67c){this.inherited(arguments);this._lastDisplayedValue=this.textbox.value;},_getDisplayQueryString:function(text){return text.replace(/([\\\*\?])/g,"\\$1");},_setDisplayedValueAttr:function(_67d,_67e){if(_67d==null){_67d="";}if(!this._created){if(!("displayedValue" in this.params)){return;}_67e=false;}if(this.store){this.closeDropDown();var _67f=lang.clone(this.query);var qs=this._getDisplayQueryString(_67d),q;if(this.store._oldAPI){q=qs;}else{q=_66d.patternToRegExp(qs,this.ignoreCase);q.toString=function(){return qs;};}this._lastQuery=_67f[this.searchAttr]=q;this.textbox.value=_67d;this._lastDisplayedValue=_67d;this._set("displayedValue",_67d);var _680=this;var _681={ignoreCase:this.ignoreCase,deep:true};lang.mixin(_681,this.fetchProperties);this._fetchHandle=this.store.query(_67f,_681);when(this._fetchHandle,function(_682){_680._fetchHandle=null;_680._callbackSetLabel(_682||[],_67f,_681,_67e);},function(err){_680._fetchHandle=null;if(!_680._cancelingQuery){console.error("dijit.form.FilteringSelect: "+err.toString());}});}},undo:function(){this.set("displayedValue",this._lastDisplayedValue);}});});},"dijit/form/MappedTextBox":function(){define("dijit/form/MappedTextBox",["dojo/_base/declare","dojo/dom-construct","./ValidationTextBox"],function(_683,_684,_685){return _683("dijit.form.MappedTextBox",_685,{postMixInProperties:function(){this.inherited(arguments);this.nameAttrSetting="";},_setNameAttr:null,serialize:function(val){return val.toString?val.toString():"";},toString:function(){var val=this.filter(this.get("value"));return val!=null?(typeof val=="string"?val:this.serialize(val,this.constraints)):"";},validate:function(){this.valueNode.value=this.toString();return this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);this.valueNode=_684.place("<input type='hidden'"+(this.name?" name=\""+this.name.replace(/"/g,"&quot;")+"\"":"")+"/>",this.textbox,"after");},reset:function(){this.valueNode.value="";this.inherited(arguments);}});});},"dijit/form/ValidationTextBox":function(){require({cache:{"url:dijit/form/templates/ValidationTextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"}});define("dijit/form/ValidationTextBox",["dojo/_base/declare","dojo/_base/kernel","dojo/i18n","./TextBox","../Tooltip","dojo/text!./templates/ValidationTextBox.html","dojo/i18n!./nls/validate"],function(_686,_687,i18n,_688,_689,_68a){var _68b;return _68b=_686("dijit.form.ValidationTextBox",_688,{templateString:_68a,required:false,promptMessage:"",invalidMessage:"$_unset_$",missingMessage:"$_unset_$",message:"",constraints:{},pattern:".*",regExp:"",regExpGen:function(){},state:"",tooltipPosition:[],_deprecateRegExp:function(attr,_68c){if(_68c!=_68b.prototype[attr]){_687.deprecated("ValidationTextBox id="+this.id+", set('"+attr+"', ...) is deprecated. Use set('pattern', ...) instead.","","2.0");this.set("pattern",_68c);}},_setRegExpGenAttr:function(_68d){this._deprecateRegExp("regExpGen",_68d);this.regExpGen=this._getPatternAttr;},_setRegExpAttr:function(_68e){this._deprecateRegExp("regExp",_68e);},_setValueAttr:function(){this.inherited(arguments);this.validate(this.focused);},validator:function(_68f,_690){return (new RegExp("^(?:"+this._getPatternAttr(_690)+")"+(this.required?"":"?")+"$")).test(_68f)&&(!this.required||!this._isEmpty(_68f))&&(this._isEmpty(_68f)||this.parse(_68f,_690)!==undefined);},_isValidSubset:function(){return this.textbox.value.search(this._partialre)==0;},isValid:function(){return this.validator(this.textbox.value,this.constraints);},_isEmpty:function(_691){return (this.trim?/^\s*$/:/^$/).test(_691);},getErrorMessage:function(){var _692=this.invalidMessage=="$_unset_$"?this.messages.invalidMessage:!this.invalidMessage?this.promptMessage:this.invalidMessage;var _693=this.missingMessage=="$_unset_$"?this.messages.missingMessage:!this.missingMessage?_692:this.missingMessage;return (this.required&&this._isEmpty(this.textbox.value))?_693:_692;},getPromptMessage:function(){return this.promptMessage;},_maskValidSubsetError:true,validate:function(_694){var _695="";var _696=this.disabled||this.isValid(_694);if(_696){this._maskValidSubsetError=true;}var _697=this._isEmpty(this.textbox.value);var _698=!_696&&_694&&this._isValidSubset();this._set("state",_696?"":(((((!this._hasBeenBlurred||_694)&&_697)||_698)&&(this._maskValidSubsetError||(_698&&!this._hasBeenBlurred&&_694)))?"Incomplete":"Error"));this.focusNode.setAttribute("aria-invalid",_696?"false":"true");if(this.state=="Error"){this._maskValidSubsetError=_694&&_698;_695=this.getErrorMessage(_694);}else{if(this.state=="Incomplete"){_695=this.getPromptMessage(_694);this._maskValidSubsetError=!this._hasBeenBlurred||_694;}else{if(_697){_695=this.getPromptMessage(_694);}}}this.set("message",_695);return _696;},displayMessage:function(_699){if(_699&&this.focused){_689.show(_699,this.domNode,this.tooltipPosition,!this.isLeftToRight());}else{_689.hide(this.domNode);}},_refreshState:function(){if(this._created){this.validate(this.focused);}this.inherited(arguments);},constructor:function(_69a){this.constraints={};this.baseClass+=" dijitValidationTextBox";},startup:function(){this.inherited(arguments);this._refreshState();},_setConstraintsAttr:function(_69b){if(!_69b.locale&&this.lang){_69b.locale=this.lang;}this._set("constraints",_69b);this._refreshState();},_setPatternAttr:function(_69c){this._set("pattern",_69c);},_getPatternAttr:function(_69d){var p=this.pattern;var type=(typeof p).toLowerCase();if(type=="function"){p=this.pattern(_69d||this.constraints);}if(p!=this._lastRegExp){var _69e="";this._lastRegExp=p;if(p!=".*"){p.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,function(re){switch(re.charAt(0)){case "{":case "+":case "?":case "*":case "^":case "$":case "|":case "(":_69e+=re;break;case ")":_69e+="|$)";break;default:_69e+="(?:"+re+"|$)";break;}});}try{"".search(_69e);}catch(e){_69e=this.pattern;console.warn("RegExp error in "+this.declaredClass+": "+this.pattern);}this._partialre="^(?:"+_69e+")$";}return p;},postMixInProperties:function(){this.inherited(arguments);this.messages=i18n.getLocalization("dijit.form","validate",this.lang);this._setConstraintsAttr(this.constraints);},_setDisabledAttr:function(_69f){this.inherited(arguments);this._refreshState();},_setRequiredAttr:function(_6a0){this._set("required",_6a0);this.focusNode.setAttribute("aria-required",_6a0);this._refreshState();},_setMessageAttr:function(_6a1){this._set("message",_6a1);this.displayMessage(_6a1);},reset:function(){this._maskValidSubsetError=true;this.inherited(arguments);},_onBlur:function(){this.displayMessage("");this.inherited(arguments);}});});},"dijit/form/TextBox":function(){require({cache:{"url:dijit/form/templates/TextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"}});define("dijit/form/TextBox",["dojo/_base/declare","dojo/dom-construct","dojo/dom-style","dojo/_base/kernel","dojo/_base/lang","dojo/sniff","./_FormValueWidget","./_TextBoxMixin","dojo/text!./templates/TextBox.html","../main"],function(_6a2,_6a3,_6a4,_6a5,lang,has,_6a6,_6a7,_6a8,_6a9){var _6aa=_6a2("dijit.form.TextBox",[_6a6,_6a7],{templateString:_6a8,_singleNodeTemplate:"<input class=\"dijit dijitReset dijitLeft dijitInputField\" data-dojo-attach-point=\"textbox,focusNode\" autocomplete=\"off\" type=\"${type}\" ${!nameAttrSetting} />",_buttonInputDisabled:has("ie")?"disabled":"",baseClass:"dijitTextBox",postMixInProperties:function(){var type=this.type.toLowerCase();if(this.templateString&&this.templateString.toLowerCase()=="input"||((type=="hidden"||type=="file")&&this.templateString==this.constructor.prototype.templateString)){this.templateString=this._singleNodeTemplate;}this.inherited(arguments);},postCreate:function(){this.inherited(arguments);if(has("ie")<9){this.defer(function(){try{var s=_6a4.getComputedStyle(this.domNode);if(s){var ff=s.fontFamily;if(ff){var _6ab=this.domNode.getElementsByTagName("INPUT");if(_6ab){for(var i=0;i<_6ab.length;i++){_6ab[i].style.fontFamily=ff;}}}}}catch(e){}});}},_onInput:function(e){this.inherited(arguments);if(this.intermediateChanges){this.defer(function(){this._handleOnChange(this.get("value"),false);});}},_setPlaceHolderAttr:function(v){this._set("placeHolder",v);if(!this._phspan){this._attachPoints.push("_phspan");this._phspan=_6a3.create("span",{onmousedown:function(e){e.preventDefault();},className:"dijitPlaceHolder dijitInputField"},this.textbox,"after");}this._phspan.innerHTML="";this._phspan.appendChild(this._phspan.ownerDocument.createTextNode(v));this._updatePlaceHolder();},_updatePlaceHolder:function(){if(this._phspan){this._phspan.style.display=(this.placeHolder&&!this.focused&&!this.textbox.value)?"":"none";}},_setValueAttr:function(_6ac,_6ad,_6ae){this.inherited(arguments);this._updatePlaceHolder();},getDisplayedValue:function(){_6a5.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use get('displayedValue') instead.","","2.0");return this.get("displayedValue");},setDisplayedValue:function(_6af){_6a5.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.","","2.0");this.set("displayedValue",_6af);},_onBlur:function(e){if(this.disabled){return;}this.inherited(arguments);this._updatePlaceHolder();if(has("mozilla")){if(this.selectOnClick){this.textbox.selectionStart=this.textbox.selectionEnd=undefined;}}},_onFocus:function(by){if(this.disabled||this.readOnly){return;}this.inherited(arguments);this._updatePlaceHolder();}});if(has("ie")){_6aa.prototype._isTextSelected=function(){var _6b0=this.ownerDocument.selection.createRange();var _6b1=_6b0.parentElement();return _6b1==this.textbox&&_6b0.text.length>0;};_6a9._setSelectionRange=_6a7._setSelectionRange=function(_6b2,_6b3,stop){if(_6b2.createTextRange){var r=_6b2.createTextRange();r.collapse(true);r.moveStart("character",-99999);r.moveStart("character",_6b3);r.moveEnd("character",stop-_6b3);r.select();}};}return _6aa;});},"dijit/form/_TextBoxMixin":function(){define("dijit/form/_TextBoxMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","../main"],function(_6b4,_6b5,dom,_6b6,keys,lang,on,_6b7){var _6b8=_6b5("dijit.form._TextBoxMixin",null,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",selectOnClick:false,placeHolder:"",_getValueAttr:function(){return this.parse(this.get("displayedValue"),this.constraints);},_setValueAttr:function(_6b9,_6ba,_6bb){var _6bc;if(_6b9!==undefined){_6bc=this.filter(_6b9);if(typeof _6bb!="string"){if(_6bc!==null&&((typeof _6bc!="number")||!isNaN(_6bc))){_6bb=this.filter(this.format(_6bc,this.constraints));}else{_6bb="";}}}if(_6bb!=null&&((typeof _6bb)!="number"||!isNaN(_6bb))&&this.textbox.value!=_6bb){this.textbox.value=_6bb;this._set("displayedValue",this.get("displayedValue"));}if(this.textDir=="auto"){this.applyTextDir(this.focusNode,_6bb);}this.inherited(arguments,[_6bc,_6ba]);},displayedValue:"",_getDisplayedValueAttr:function(){return this.filter(this.textbox.value);},_setDisplayedValueAttr:function(_6bd){if(_6bd==null){_6bd="";}else{if(typeof _6bd!="string"){_6bd=String(_6bd);}}this.textbox.value=_6bd;this._setValueAttr(this.get("value"),undefined);this._set("displayedValue",this.get("displayedValue"));if(this.textDir=="auto"){this.applyTextDir(this.focusNode,_6bd);}},format:function(_6be){return _6be==null?"":(_6be.toString?_6be.toString():_6be);},parse:function(_6bf){return _6bf;},_refreshState:function(){},onInput:function(){},__skipInputEvent:false,_onInput:function(evt){if(this.textDir=="auto"){this.applyTextDir(this.focusNode,this.focusNode.value);}this._processInput(evt);},_processInput:function(evt){this._refreshState();this._set("displayedValue",this.get("displayedValue"));},postCreate:function(){this.textbox.setAttribute("value",this.textbox.value);this.inherited(arguments);var _6c0=function(e){var _6c1;if(e.type=="keydown"){_6c1=e.keyCode;switch(_6c1){case keys.SHIFT:case keys.ALT:case keys.CTRL:case keys.META:case keys.CAPS_LOCK:case keys.NUM_LOCK:case keys.SCROLL_LOCK:return;}if(!e.ctrlKey&&!e.metaKey&&!e.altKey){switch(_6c1){case keys.NUMPAD_0:case keys.NUMPAD_1:case keys.NUMPAD_2:case keys.NUMPAD_3:case keys.NUMPAD_4:case keys.NUMPAD_5:case keys.NUMPAD_6:case keys.NUMPAD_7:case keys.NUMPAD_8:case keys.NUMPAD_9:case keys.NUMPAD_MULTIPLY:case keys.NUMPAD_PLUS:case keys.NUMPAD_ENTER:case keys.NUMPAD_MINUS:case keys.NUMPAD_PERIOD:case keys.NUMPAD_DIVIDE:return;}if((_6c1>=65&&_6c1<=90)||(_6c1>=48&&_6c1<=57)||_6c1==keys.SPACE){return;}var _6c2=false;for(var i in keys){if(keys[i]===e.keyCode){_6c2=true;break;}}if(!_6c2){return;}}}_6c1=e.charCode>=32?String.fromCharCode(e.charCode):e.charCode;if(!_6c1){_6c1=(e.keyCode>=65&&e.keyCode<=90)||(e.keyCode>=48&&e.keyCode<=57)||e.keyCode==keys.SPACE?String.fromCharCode(e.keyCode):e.keyCode;}if(!_6c1){_6c1=229;}if(e.type=="keypress"){if(typeof _6c1!="string"){return;}if((_6c1>="a"&&_6c1<="z")||(_6c1>="A"&&_6c1<="Z")||(_6c1>="0"&&_6c1<="9")||(_6c1===" ")){if(e.ctrlKey||e.metaKey||e.altKey){return;}}}if(e.type=="input"){if(this.__skipInputEvent){this.__skipInputEvent=false;return;}}else{this.__skipInputEvent=true;}var faux={faux:true},attr;for(attr in e){if(attr!="layerX"&&attr!="layerY"){var v=e[attr];if(typeof v!="function"&&typeof v!="undefined"){faux[attr]=v;}}}lang.mixin(faux,{charOrCode:_6c1,_wasConsumed:false,preventDefault:function(){faux._wasConsumed=true;e.preventDefault();},stopPropagation:function(){e.stopPropagation();}});if(this.onInput(faux)===false){faux.preventDefault();faux.stopPropagation();}if(faux._wasConsumed){return;}this.defer(function(){this._onInput(faux);});};this.own(on(this.textbox,"keydown, keypress, paste, cut, input, compositionend",lang.hitch(this,_6c0)));},_blankValue:"",filter:function(val){if(val===null){return this._blankValue;}if(typeof val!="string"){return val;}if(this.trim){val=lang.trim(val);}if(this.uppercase){val=val.toUpperCase();}if(this.lowercase){val=val.toLowerCase();}if(this.propercase){val=val.replace(/[^\s]+/g,function(word){return word.substring(0,1).toUpperCase()+word.substring(1);});}return val;},_setBlurValue:function(){this._setValueAttr(this.get("value"),true);},_onBlur:function(e){if(this.disabled){return;}this._setBlurValue();this.inherited(arguments);},_isTextSelected:function(){return this.textbox.selectionStart!=this.textbox.selectionEnd;},_onFocus:function(by){if(this.disabled||this.readOnly){return;}if(this.selectOnClick&&by=="mouse"){this._selectOnClickHandle=this.connect(this.domNode,"onmouseup",function(){this.disconnect(this._selectOnClickHandle);this._selectOnClickHandle=null;if(!this._isTextSelected()){_6b8.selectInputText(this.textbox);}});this.defer(function(){if(this._selectOnClickHandle){this.disconnect(this._selectOnClickHandle);this._selectOnClickHandle=null;}},500);}this.inherited(arguments);this._refreshState();},reset:function(){this.textbox.value="";this.inherited(arguments);},_setTextDirAttr:function(_6c3){if(!this._created||this.textDir!=_6c3){this._set("textDir",_6c3);this.applyTextDir(this.focusNode,this.focusNode.value);}}});_6b8._setSelectionRange=_6b7._setSelectionRange=function(_6c4,_6c5,stop){if(_6c4.setSelectionRange){_6c4.setSelectionRange(_6c5,stop);}};_6b8.selectInputText=_6b7.selectInputText=function(_6c6,_6c7,stop){_6c6=dom.byId(_6c6);if(isNaN(_6c7)){_6c7=0;}if(isNaN(stop)){stop=_6c6.value?_6c6.value.length:0;}try{_6c6.focus();_6b8._setSelectionRange(_6c6,_6c7,stop);}catch(e){}};return _6b8;});},"url:dijit/form/templates/TextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n","dijit/Tooltip":function(){require({cache:{"url:dijit/templates/Tooltip.html":"<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\"\n\t><div class=\"dijitTooltipContainer dijitTooltipContents\" data-dojo-attach-point=\"containerNode\" role='alert'></div\n\t><div class=\"dijitTooltipConnector\" data-dojo-attach-point=\"connectorNode\"></div\n></div>\n"}});define("dijit/Tooltip",["dojo/_base/array","dojo/_base/declare","dojo/_base/fx","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang","dojo/mouse","dojo/on","dojo/sniff","./_base/manager","./place","./_Widget","./_TemplatedMixin","./BackgroundIframe","dojo/text!./templates/Tooltip.html","./main"],function(_6c8,_6c9,fx,dom,_6ca,_6cb,_6cc,lang,_6cd,on,has,_6ce,_6cf,_6d0,_6d1,_6d2,_6d3,_6d4){var _6d5=_6c9("dijit._MasterTooltip",[_6d0,_6d1],{duration:_6ce.defaultDuration,templateString:_6d3,postCreate:function(){this.ownerDocumentBody.appendChild(this.domNode);this.bgIframe=new _6d2(this.domNode);this.fadeIn=fx.fadeIn({node:this.domNode,duration:this.duration,onEnd:lang.hitch(this,"_onShow")});this.fadeOut=fx.fadeOut({node:this.domNode,duration:this.duration,onEnd:lang.hitch(this,"_onHide")});},show:function(_6d6,_6d7,_6d8,rtl,_6d9){if(this.aroundNode&&this.aroundNode===_6d7&&this.containerNode.innerHTML==_6d6){return;}if(this.fadeOut.status()=="playing"){this._onDeck=arguments;return;}this.containerNode.innerHTML=_6d6;if(_6d9){this.set("textDir",_6d9);}this.containerNode.align=rtl?"right":"left";var pos=_6cf.around(this.domNode,_6d7,_6d8&&_6d8.length?_6d8:_6da.defaultPosition,!rtl,lang.hitch(this,"orient"));var _6db=pos.aroundNodePos;if(pos.corner.charAt(0)=="M"&&pos.aroundCorner.charAt(0)=="M"){this.connectorNode.style.top=_6db.y+((_6db.h-this.connectorNode.offsetHeight)>>1)-pos.y+"px";this.connectorNode.style.left="";}else{if(pos.corner.charAt(1)=="M"&&pos.aroundCorner.charAt(1)=="M"){this.connectorNode.style.left=_6db.x+((_6db.w-this.connectorNode.offsetWidth)>>1)-pos.x+"px";}else{this.connectorNode.style.left="";this.connectorNode.style.top="";}}_6cc.set(this.domNode,"opacity",0);this.fadeIn.play();this.isShowingNow=true;this.aroundNode=_6d7;},orient:function(node,_6dc,_6dd,_6de,_6df){this.connectorNode.style.top="";var _6e0=_6de.h,_6e1=_6de.w;node.className="dijitTooltip "+{"MR-ML":"dijitTooltipRight","ML-MR":"dijitTooltipLeft","TM-BM":"dijitTooltipAbove","BM-TM":"dijitTooltipBelow","BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_6dc+"-"+_6dd];this.domNode.style.width="auto";var size=_6cb.position(this.domNode);if(has("ie")==9){size.w+=2;}var _6e2=Math.min((Math.max(_6e1,1)),size.w);_6cb.setMarginBox(this.domNode,{w:_6e2});if(_6dd.charAt(0)=="B"&&_6dc.charAt(0)=="B"){var bb=_6cb.position(node);var _6e3=this.connectorNode.offsetHeight;if(bb.h>_6e0){var _6e4=_6e0-((_6df.h+_6e3)>>1);this.connectorNode.style.top=_6e4+"px";this.connectorNode.style.bottom="";}else{this.connectorNode.style.bottom=Math.min(Math.max(_6df.h/2-_6e3/2,0),bb.h-_6e3)+"px";this.connectorNode.style.top="";}}else{this.connectorNode.style.top="";this.connectorNode.style.bottom="";}return Math.max(0,size.w-_6e1);},_onShow:function(){if(has("ie")){this.domNode.style.filter="";}},hide:function(_6e5){if(this._onDeck&&this._onDeck[1]==_6e5){this._onDeck=null;}else{if(this.aroundNode===_6e5){this.fadeIn.stop();this.isShowingNow=false;this.aroundNode=null;this.fadeOut.play();}else{}}},_onHide:function(){this.domNode.style.cssText="";this.containerNode.innerHTML="";if(this._onDeck){this.show.apply(this,this._onDeck);this._onDeck=null;}},_setAutoTextDir:function(node){this.applyTextDir(node,has("ie")?node.outerText:node.textContent);_6c8.forEach(node.children,function(_6e6){this._setAutoTextDir(_6e6);},this);},_setTextDirAttr:function(_6e7){this._set("textDir",_6e7);if(_6e7=="auto"){this._setAutoTextDir(this.containerNode);}else{this.containerNode.dir=this.textDir;}}});_6d4.showTooltip=function(_6e8,_6e9,_6ea,rtl,_6eb){if(_6ea){_6ea=_6c8.map(_6ea,function(val){return {after:"after-centered",before:"before-centered"}[val]||val;});}if(!_6da._masterTT){_6d4._masterTT=_6da._masterTT=new _6d5();}return _6da._masterTT.show(_6e8,_6e9,_6ea,rtl,_6eb);};_6d4.hideTooltip=function(_6ec){return _6da._masterTT&&_6da._masterTT.hide(_6ec);};var _6da=_6c9("dijit.Tooltip",_6d0,{label:"",showDelay:400,connectId:[],position:[],selector:"",_setConnectIdAttr:function(_6ed){_6c8.forEach(this._connections||[],function(_6ee){_6c8.forEach(_6ee,function(_6ef){_6ef.remove();});},this);this._connectIds=_6c8.filter(lang.isArrayLike(_6ed)?_6ed:(_6ed?[_6ed]:[]),function(id){return dom.byId(id,this.ownerDocument);},this);this._connections=_6c8.map(this._connectIds,function(id){var node=dom.byId(id,this.ownerDocument),_6f0=this.selector,_6f1=_6f0?function(_6f2){return on.selector(_6f0,_6f2);}:function(_6f3){return _6f3;},self=this;return [on(node,_6f1(_6cd.enter),function(){self._onHover(this);}),on(node,_6f1("focusin"),function(){self._onHover(this);}),on(node,_6f1(_6cd.leave),lang.hitch(self,"_onUnHover")),on(node,_6f1("focusout"),lang.hitch(self,"_onUnHover"))];},this);this._set("connectId",_6ed);},addTarget:function(node){var id=node.id||node;if(_6c8.indexOf(this._connectIds,id)==-1){this.set("connectId",this._connectIds.concat(id));}},removeTarget:function(node){var id=node.id||node,idx=_6c8.indexOf(this._connectIds,id);if(idx>=0){this._connectIds.splice(idx,1);this.set("connectId",this._connectIds);}},buildRendering:function(){this.inherited(arguments);_6ca.add(this.domNode,"dijitTooltipData");},startup:function(){this.inherited(arguments);var ids=this.connectId;_6c8.forEach(lang.isArrayLike(ids)?ids:[ids],this.addTarget,this);},getContent:function(node){return this.label||this.domNode.innerHTML;},_onHover:function(_6f4){if(!this._showTimer){this._showTimer=this.defer(function(){this.open(_6f4);},this.showDelay);}},_onUnHover:function(){if(this._showTimer){this._showTimer.remove();delete this._showTimer;}this.close();},open:function(_6f5){if(this._showTimer){this._showTimer.remove();delete this._showTimer;}var _6f6=this.getContent(_6f5);if(!_6f6){return;}_6da.show(_6f6,_6f5,this.position,!this.isLeftToRight(),this.textDir);this._connectNode=_6f5;this.onShow(_6f5,this.position);},close:function(){if(this._connectNode){_6da.hide(this._connectNode);delete this._connectNode;this.onHide();}if(this._showTimer){this._showTimer.remove();delete this._showTimer;}},onShow:function(){},onHide:function(){},destroy:function(){this.close();_6c8.forEach(this._connections||[],function(_6f7){_6c8.forEach(_6f7,function(_6f8){_6f8.remove();});},this);this.inherited(arguments);}});_6da._MasterTooltip=_6d5;_6da.show=_6d4.showTooltip;_6da.hide=_6d4.hideTooltip;_6da.defaultPosition=["after-centered","before-centered"];return _6da;});},"url:dijit/templates/Tooltip.html":"<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\"\n\t><div class=\"dijitTooltipContainer dijitTooltipContents\" data-dojo-attach-point=\"containerNode\" role='alert'></div\n\t><div class=\"dijitTooltipConnector\" data-dojo-attach-point=\"connectorNode\"></div\n></div>\n","url:dijit/form/templates/ValidationTextBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n","dijit/form/ComboBoxMixin":function(){require({cache:{"url:dijit/form/templates/DropDownBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdata-dojo-attach-point=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"button presentation\" aria-hidden=\"true\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdata-dojo-attach-point=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n"}});define("dijit/form/ComboBoxMixin",["dojo/_base/declare","dojo/_base/Deferred","dojo/_base/kernel","dojo/_base/lang","dojo/store/util/QueryResults","./_AutoCompleterMixin","./_ComboBoxMenu","../_HasDropDown","dojo/text!./templates/DropDownBox.html"],function(_6f9,_6fa,_6fb,lang,_6fc,_6fd,_6fe,_6ff,_700){return _6f9("dijit.form.ComboBoxMixin",[_6ff,_6fd],{dropDownClass:_6fe,hasDownArrow:true,templateString:_700,baseClass:"dijitTextBox dijitComboBox",cssStateNodes:{"_buttonNode":"dijitDownArrowButton"},_setHasDownArrowAttr:function(val){this._set("hasDownArrow",val);this._buttonNode.style.display=val?"":"none";},_showResultList:function(){this.displayMessage("");this.inherited(arguments);},_setStoreAttr:function(_701){if(!_701.get){lang.mixin(_701,{_oldAPI:true,get:function(id){var _702=new _6fa();this.fetchItemByIdentity({identity:id,onItem:function(_703){_702.resolve(_703);},onError:function(_704){_702.reject(_704);}});return _702.promise;},query:function(_705,_706){var _707=new _6fa(function(){_708.abort&&_708.abort();});_707.total=new _6fa();var _708=this.fetch(lang.mixin({query:_705,onBegin:function(_709){_707.total.resolve(_709);},onComplete:function(_70a){_707.resolve(_70a);},onError:function(_70b){_707.reject(_70b);}},_706));return _6fc(_707);}});}this._set("store",_701);},postMixInProperties:function(){var _70c=this.params.store||this.store;if(_70c){this._setStoreAttr(_70c);}this.inherited(arguments);if(!this.params.store&&!this.store._oldAPI){var _70d=this.declaredClass;lang.mixin(this.store,{getValue:function(item,attr){_6fb.deprecated(_70d+".store.getValue(item, attr) is deprecated for builtin store. Use item.attr directly","","2.0");return item[attr];},getLabel:function(item){_6fb.deprecated(_70d+".store.getLabel(item) is deprecated for builtin store. Use item.label directly","","2.0");return item.name;},fetch:function(args){_6fb.deprecated(_70d+".store.fetch() is deprecated for builtin store.","Use store.query()","2.0");var shim=["dojo/data/ObjectStore"];require(shim,lang.hitch(this,function(_70e){new _70e({objectStore:this}).fetch(args);}));}});}}});});},"dojo/store/util/QueryResults":function(){define("dojo/store/util/QueryResults",["../../_base/array","../../_base/lang","../../_base/Deferred"],function(_70f,lang,_710){var _711=function(_712){if(!_712){return _712;}if(_712.then){_712=lang.delegate(_712);}function _713(_714){if(!_712[_714]){_712[_714]=function(){var args=arguments;return _710.when(_712,function(_715){Array.prototype.unshift.call(args,_715);return _711(_70f[_714].apply(_70f,args));});};}};_713("forEach");_713("filter");_713("map");if(!_712.total){_712.total=_710.when(_712,function(_716){return _716.length;});}return _712;};lang.setObject("dojo.store.util.QueryResults",_711);return _711;});},"dijit/form/_AutoCompleterMixin":function(){define("dijit/form/_AutoCompleterMixin",["dojo/data/util/filter","dojo/_base/declare","dojo/dom-attr","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/query","dojo/regexp","dojo/sniff","dojo/string","./DataList","../registry","./_TextBoxMixin","./_SearchMixin"],function(_717,_718,_719,_71a,keys,lang,_71b,_71c,has,_71d,_71e,_71f,_720,_721){return _718("dijit.form._AutoCompleterMixin",_721,{item:null,autoComplete:true,highlightMatch:"first",labelAttr:"",labelType:"text",maxHeight:-1,_stopClickEvents:false,_getCaretPos:function(_722){var pos=0;if(typeof (_722.selectionStart)=="number"){pos=_722.selectionStart;}else{if(has("ie")){var tr=_722.ownerDocument.selection.createRange().duplicate();var ntr=_722.createTextRange();tr.move("character",0);ntr.move("character",0);try{ntr.setEndPoint("EndToEnd",tr);pos=String(ntr.text).replace(/\r/g,"").length;}catch(e){}}}return pos;},_setCaretPos:function(_723,_724){_724=parseInt(_724);_720.selectInputText(_723,_724,_724);},_setDisabledAttr:function(_725){this.inherited(arguments);this.domNode.setAttribute("aria-disabled",_725?"true":"false");},_onKey:function(evt){if(evt.charCode>=32){return;}var key=evt.charCode||evt.keyCode;if(key==keys.ALT||key==keys.CTRL||key==keys.META||key==keys.SHIFT){return;}var pw=this.dropDown;var _726=null;this._abortQuery();this.inherited(arguments);if(evt.altKey||evt.ctrlKey||evt.metaKey){return;}if(this._opened){_726=pw.getHighlightedOption();}switch(key){case keys.PAGE_DOWN:case keys.DOWN_ARROW:case keys.PAGE_UP:case keys.UP_ARROW:if(this._opened){this._announceOption(_726);}_71a.stop(evt);break;case keys.ENTER:if(_726){if(_726==pw.nextButton){this._nextSearch(1);_71a.stop(evt);break;}else{if(_726==pw.previousButton){this._nextSearch(-1);_71a.stop(evt);break;}}_71a.stop(evt);}else{this._setBlurValue();this._setCaretPos(this.focusNode,this.focusNode.value.length);}case keys.TAB:var _727=this.get("displayedValue");if(pw&&(_727==pw._messages["previousMessage"]||_727==pw._messages["nextMessage"])){break;}if(_726){this._selectOption(_726);}case keys.ESCAPE:if(this._opened){this._lastQuery=null;this.closeDropDown();}break;}},_autoCompleteText:function(text){var fn=this.focusNode;_720.selectInputText(fn,fn.value.length);var _728=this.ignoreCase?"toLowerCase":"substr";if(text[_728](0).indexOf(this.focusNode.value[_728](0))==0){var cpos=this.autoComplete?this._getCaretPos(fn):fn.value.length;if((cpos+1)>fn.value.length){fn.value=text;_720.selectInputText(fn,cpos);}}else{fn.value=text;_720.selectInputText(fn);}},_openResultList:function(_729,_72a,_72b){var _72c=this.dropDown.getHighlightedOption();this.dropDown.clearResultList();if(!_729.length&&_72b.start==0){this.closeDropDown();return;}this._nextSearch=this.dropDown.onPage=lang.hitch(this,function(_72d){_729.nextPage(_72d!==-1);this.focus();});this.dropDown.createOptions(_729,_72b,lang.hitch(this,"_getMenuLabelFromItem"));this._showResultList();if("direction" in _72b){if(_72b.direction){this.dropDown.highlightFirstOption();}else{if(!_72b.direction){this.dropDown.highlightLastOption();}}if(_72c){this._announceOption(this.dropDown.getHighlightedOption());}}else{if(this.autoComplete&&!this._prev_key_backspace&&!/^[*]+$/.test(_72a[this.searchAttr].toString())){this._announceOption(this.dropDown.containerNode.firstChild.nextSibling);}}},_showResultList:function(){this.closeDropDown(true);this.openDropDown();this.domNode.setAttribute("aria-expanded","true");},loadDropDown:function(){this._startSearchAll();},isLoaded:function(){return false;},closeDropDown:function(){this._abortQuery();if(this._opened){this.inherited(arguments);this.domNode.setAttribute("aria-expanded","false");this.focusNode.removeAttribute("aria-activedescendant");}},_setBlurValue:function(){var _72e=this.get("displayedValue");var pw=this.dropDown;if(pw&&(_72e==pw._messages["previousMessage"]||_72e==pw._messages["nextMessage"])){this._setValueAttr(this._lastValueReported,true);}else{if(typeof this.item=="undefined"){this.item=null;this.set("displayedValue",_72e);}else{if(this.value!=this._lastValueReported){this._handleOnChange(this.value,true);}this._refreshState();}}},_setItemAttr:function(item,_72f,_730){var _731="";if(item){if(!_730){_730=this.store._oldAPI?this.store.getValue(item,this.searchAttr):item[this.searchAttr];}_731=this._getValueField()!=this.searchAttr?this.store.getIdentity(item):_730;}this.set("value",_731,_72f,_730,item);},_announceOption:function(node){if(!node){return;}var _732;if(node==this.dropDown.nextButton||node==this.dropDown.previousButton){_732=node.innerHTML;this.item=undefined;this.value="";}else{var item=this.dropDown.items[node.getAttribute("item")];_732=(this.store._oldAPI?this.store.getValue(item,this.searchAttr):item[this.searchAttr]).toString();this.set("item",item,false,_732);}this.focusNode.value=this.focusNode.value.substring(0,this._lastInput.length);this.focusNode.setAttribute("aria-activedescendant",_719.get(node,"id"));this._autoCompleteText(_732);},_selectOption:function(_733){this.closeDropDown();if(_733){this._announceOption(_733);}this._setCaretPos(this.focusNode,this.focusNode.value.length);this._handleOnChange(this.value,true);},_startSearchAll:function(){this._startSearch("");},_startSearchFromInput:function(){this.item=undefined;this.inherited(arguments);},_startSearch:function(key){if(!this.dropDown){var _734=this.id+"_popup",_735=lang.isString(this.dropDownClass)?lang.getObject(this.dropDownClass,false):this.dropDownClass;this.dropDown=new _735({onChange:lang.hitch(this,this._selectOption),id:_734,dir:this.dir,textDir:this.textDir});this.focusNode.removeAttribute("aria-activedescendant");this.textbox.setAttribute("aria-owns",_734);}this._lastInput=key;this.inherited(arguments);},_getValueField:function(){return this.searchAttr;},postMixInProperties:function(){this.inherited(arguments);if(!this.store){var _736=this.srcNodeRef;this.store=new _71e({},_736);if(!("value" in this.params)){var item=(this.item=this.store.fetchSelectedItem());if(item){var _737=this._getValueField();this.value=this.store._oldAPI?this.store.getValue(item,_737):item[_737];}}}},postCreate:function(){var _738=_71b("label[for=\""+this.id+"\"]");if(_738.length){if(!_738[0].id){_738[0].id=this.id+"_label";}this.domNode.setAttribute("aria-labelledby",_738[0].id);}this.inherited(arguments);this.connect(this,"onSearch","_openResultList");},_getMenuLabelFromItem:function(item){var _739=this.labelFunc(item,this.store),_73a=this.labelType;if(this.highlightMatch!="none"&&this.labelType=="text"&&this._lastInput){_739=this.doHighlight(_739,this._lastInput);_73a="html";}return {html:_73a=="html",label:_739};},doHighlight:function(_73b,find){var _73c=(this.ignoreCase?"i":"")+(this.highlightMatch=="all"?"g":""),i=this.queryExpr.indexOf("${0}");find=_71c.escapeString(find);return this._escapeHtml(_73b.replace(new RegExp((i==0?"^":"")+"("+find+")"+(i==(this.queryExpr.length-4)?"$":""),_73c),"\uffff$1\uffff")).replace(/\uFFFF([^\uFFFF]+)\uFFFF/g,"<span class=\"dijitComboBoxHighlightMatch\">$1</span>");},_escapeHtml:function(str){str=String(str).replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;");return str;},reset:function(){this.item=null;this.inherited(arguments);},labelFunc:function(item,_73d){return (_73d._oldAPI?_73d.getValue(item,this.labelAttr||this.searchAttr):item[this.labelAttr||this.searchAttr]).toString();},_setValueAttr:function(_73e,_73f,_740,item){this._set("item",item||null);if(_73e==null){_73e="";}this.inherited(arguments);},_setTextDirAttr:function(_741){this.inherited(arguments);if(this.dropDown){this.dropDown._set("textDir",_741);}}});});},"dojo/regexp":function(){define("dojo/regexp",["./_base/kernel","./_base/lang"],function(dojo,lang){var _742={};lang.setObject("dojo.regexp",_742);_742.escapeString=function(str,_743){return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){if(_743&&_743.indexOf(ch)!=-1){return ch;}return "\\"+ch;});};_742.buildGroupRE=function(arr,re,_744){if(!(arr instanceof Array)){return re(arr);}var b=[];for(var i=0;i<arr.length;i++){b.push(re(arr[i]));}return _742.group(b.join("|"),_744);};_742.group=function(_745,_746){return "("+(_746?"?:":"")+_745+")";};return _742;});},"dijit/form/DataList":function(){define("dijit/form/DataList",["dojo/_base/declare","dojo/dom","dojo/_base/lang","dojo/query","dojo/store/Memory","../registry"],function(_747,dom,lang,_748,_749,_74a){function _74b(_74c){return {id:_74c.value,value:_74c.value,name:lang.trim(_74c.innerText||_74c.textContent||"")};};return _747("dijit.form.DataList",_749,{constructor:function(_74d,_74e){this.domNode=dom.byId(_74e);lang.mixin(this,_74d);if(this.id){_74a.add(this);}this.domNode.style.display="none";this.inherited(arguments,[{data:_748("option",this.domNode).map(_74b)}]);},destroy:function(){_74a.remove(this.id);},fetchSelectedItem:function(){var _74f=_748("> option[selected]",this.domNode)[0]||_748("> option",this.domNode)[0];return _74f&&_74b(_74f);}});});},"dojo/store/Memory":function(){define("dojo/store/Memory",["../_base/declare","./util/QueryResults","./util/SimpleQueryEngine"],function(_750,_751,_752){var base=null;return _750("dojo.store.Memory",base,{constructor:function(_753){for(var i in _753){this[i]=_753[i];}this.setData(this.data||[]);},data:null,idProperty:"id",index:null,queryEngine:_752,get:function(id){return this.data[this.index[id]];},getIdentity:function(_754){return _754[this.idProperty];},put:function(_755,_756){var data=this.data,_757=this.index,_758=this.idProperty;var id=_755[_758]=(_756&&"id" in _756)?_756.id:_758 in _755?_755[_758]:Math.random();if(id in _757){if(_756&&_756.overwrite===false){throw new Error("Object already exists");}data[_757[id]]=_755;}else{_757[id]=data.push(_755)-1;}return id;},add:function(_759,_75a){(_75a=_75a||{}).overwrite=false;return this.put(_759,_75a);},remove:function(id){var _75b=this.index;var data=this.data;if(id in _75b){data.splice(_75b[id],1);this.setData(data);return true;}},query:function(_75c,_75d){return _751(this.queryEngine(_75c,_75d)(this.data));},setData:function(data){if(data.items){this.idProperty=data.identifier;data=this.data=data.items;}else{this.data=data;}this.index={};for(var i=0,l=data.length;i<l;i++){this.index[data[i][this.idProperty]]=i;}}});});},"dojo/store/util/SimpleQueryEngine":function(){define("dojo/store/util/SimpleQueryEngine",["../../_base/array"],function(_75e){return function(_75f,_760){switch(typeof _75f){default:throw new Error("Can not query with a "+typeof _75f);case "object":case "undefined":var _761=_75f;_75f=function(_762){for(var key in _761){var _763=_761[key];if(_763&&_763.test){if(!_763.test(_762[key],_762)){return false;}}else{if(_763!=_762[key]){return false;}}}return true;};break;case "string":if(!this[_75f]){throw new Error("No filter function "+_75f+" was found in store");}_75f=this[_75f];case "function":}function _764(_765){var _766=_75e.filter(_765,_75f);var _767=_760&&_760.sort;if(_767){_766.sort(typeof _767=="function"?_767:function(a,b){for(var sort,i=0;sort=_767[i];i++){var _768=a[sort.attribute];var _769=b[sort.attribute];if(_768!=_769){return !!sort.descending==(_768==null||_768>_769)?-1:1;}}return 0;});}if(_760&&(_760.start||_760.count)){var _76a=_766.length;_766=_766.slice(_760.start||0,(_760.start||0)+(_760.count||Infinity));_766.total=_76a;}return _766;};_764.matches=_75f;return _764;};});},"dijit/form/_SearchMixin":function(){define("dijit/form/_SearchMixin",["dojo/data/util/filter","dojo/_base/declare","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/query","dojo/sniff","dojo/string","dojo/when","../registry"],function(_76b,_76c,_76d,keys,lang,_76e,has,_76f,when,_770){return _76c("dijit.form._SearchMixin",null,{pageSize:Infinity,store:null,fetchProperties:{},query:{},searchDelay:200,searchAttr:"name",queryExpr:"${0}*",ignoreCase:true,_abortQuery:function(){if(this.searchTimer){this.searchTimer=this.searchTimer.remove();}if(this._queryDeferHandle){this._queryDeferHandle=this._queryDeferHandle.remove();}if(this._fetchHandle){if(this._fetchHandle.abort){this._cancelingQuery=true;this._fetchHandle.abort();this._cancelingQuery=false;}if(this._fetchHandle.cancel){this._cancelingQuery=true;this._fetchHandle.cancel();this._cancelingQuery=false;}this._fetchHandle=null;}},_processInput:function(evt){if(this.disabled||this.readOnly){return;}var key=evt.charOrCode;if(evt.altKey||((evt.ctrlKey||evt.metaKey)&&(key!="x"&&key!="v"))||key==keys.SHIFT){return;}var _771=false;this._prev_key_backspace=false;switch(key){case keys.DELETE:case keys.BACKSPACE:this._prev_key_backspace=true;this._maskValidSubsetError=true;_771=true;break;default:_771=typeof key=="string"||key==229;}if(_771){if(!this.store){this.onSearch();}else{this.searchTimer=this.defer("_startSearchFromInput",1);}}},onSearch:function(){},_startSearchFromInput:function(){this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g,"\\$1"));},_startSearch:function(text){this._abortQuery();var _772=this,_76e=lang.clone(this.query),_773={start:0,count:this.pageSize,queryOptions:{ignoreCase:this.ignoreCase,deep:true}},qs=_76f.substitute(this.queryExpr,[text]),q,_774=function(){var _775=_772._fetchHandle=_772.store.query(_76e,_773);if(_772.disabled||_772.readOnly||(q!==_772._lastQuery)){return;}when(_775,function(res){_772._fetchHandle=null;if(!_772.disabled&&!_772.readOnly&&(q===_772._lastQuery)){when(_775.total,function(_776){res.total=_776;var _777=_772.pageSize;if(isNaN(_777)||_777>res.total){_777=res.total;}res.nextPage=function(_778){_773.direction=_778=_778!==false;_773.count=_777;if(_778){_773.start+=res.length;if(_773.start>=res.total){_773.count=0;}}else{_773.start-=_777;if(_773.start<0){_773.count=Math.max(_777+_773.start,0);_773.start=0;}}if(_773.count<=0){res.length=0;_772.onSearch(res,_76e,_773);}else{_774();}};_772.onSearch(res,_76e,_773);});}},function(err){_772._fetchHandle=null;if(!_772._cancelingQuery){console.error(_772.declaredClass+" "+err.toString());}});};lang.mixin(_773,this.fetchProperties);if(this.store._oldAPI){q=qs;}else{q=_76b.patternToRegExp(qs,this.ignoreCase);q.toString=function(){return qs;};}this._lastQuery=_76e[this.searchAttr]=q;this._queryDeferHandle=this.defer(_774,this.searchDelay);},constructor:function(){this.query={};this.fetchProperties={};},postMixInProperties:function(){if(!this.store){var list=this.list;if(list){this.store=_770.byId(list);}}this.inherited(arguments);}});});},"dijit/form/_ComboBoxMenu":function(){define("dijit/form/_ComboBoxMenu",["dojo/_base/declare","dojo/dom-class","dojo/dom-style","dojo/keys","../_WidgetBase","../_TemplatedMixin","./_ComboBoxMenuMixin","./_ListMouseMixin"],function(_779,_77a,_77b,keys,_77c,_77d,_77e,_77f){return _779("dijit.form._ComboBoxMenu",[_77c,_77d,_77f,_77e],{templateString:"<div class='dijitReset dijitMenu' data-dojo-attach-point='containerNode' style='overflow: auto; overflow-x: hidden;' role='listbox'>"+"<div class='dijitMenuItem dijitMenuPreviousButton' data-dojo-attach-point='previousButton' role='option'></div>"+"<div class='dijitMenuItem dijitMenuNextButton' data-dojo-attach-point='nextButton' role='option'></div>"+"</div>",baseClass:"dijitComboBoxMenu",postCreate:function(){this.inherited(arguments);if(!this.isLeftToRight()){_77a.add(this.previousButton,"dijitMenuItemRtl");_77a.add(this.nextButton,"dijitMenuItemRtl");}},_createMenuItem:function(){var item=this.ownerDocument.createElement("div");item.className="dijitReset dijitMenuItem"+(this.isLeftToRight()?"":" dijitMenuItemRtl");item.setAttribute("role","option");return item;},onHover:function(node){_77a.add(node,"dijitMenuItemHover");},onUnhover:function(node){_77a.remove(node,"dijitMenuItemHover");},onSelect:function(node){_77a.add(node,"dijitMenuItemSelected");},onDeselect:function(node){_77a.remove(node,"dijitMenuItemSelected");},_page:function(up){var _780=0;var _781=this.domNode.scrollTop;var _782=_77b.get(this.domNode,"height");if(!this.getHighlightedOption()){this.selectNextNode();}while(_780<_782){var _783=this.getHighlightedOption();if(up){if(!_783.previousSibling||_783.previousSibling.style.display=="none"){break;}this.selectPreviousNode();}else{if(!_783.nextSibling||_783.nextSibling.style.display=="none"){break;}this.selectNextNode();}var _784=this.domNode.scrollTop;_780+=(_784-_781)*(up?-1:1);_781=_784;}},handleKey:function(evt){switch(evt.keyCode){case keys.DOWN_ARROW:this.selectNextNode();return false;case keys.PAGE_DOWN:this._page(false);return false;case keys.UP_ARROW:this.selectPreviousNode();return false;case keys.PAGE_UP:this._page(true);return false;default:return true;}}});});},"dijit/form/_ComboBoxMenuMixin":function(){define("dijit/form/_ComboBoxMenuMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/i18n","dojo/i18n!./nls/ComboBox"],function(_785,_786,_787,i18n){return _786("dijit.form._ComboBoxMenuMixin",null,{_messages:null,postMixInProperties:function(){this.inherited(arguments);this._messages=i18n.getLocalization("dijit.form","ComboBox",this.lang);},buildRendering:function(){this.inherited(arguments);this.previousButton.innerHTML=this._messages["previousMessage"];this.nextButton.innerHTML=this._messages["nextMessage"];},_setValueAttr:function(_788){this.value=_788;this.onChange(_788);},onClick:function(node){if(node==this.previousButton){this._setSelectedAttr(null);this.onPage(-1);}else{if(node==this.nextButton){this._setSelectedAttr(null);this.onPage(1);}else{this.onChange(node);}}},onChange:function(){},onPage:function(){},onClose:function(){this._setSelectedAttr(null);},_createOption:function(item,_789){var _78a=this._createMenuItem();var _78b=_789(item);if(_78b.html){_78a.innerHTML=_78b.label;}else{_78a.appendChild(_78a.ownerDocument.createTextNode(_78b.label));}if(_78a.innerHTML==""){_78a.innerHTML="&#160;";}this.applyTextDir(_78a,(_78a.innerText||_78a.textContent||""));return _78a;},createOptions:function(_78c,_78d,_78e){this.items=_78c;this.previousButton.style.display=(_78d.start==0)?"none":"";_787.set(this.previousButton,"id",this.id+"_prev");_785.forEach(_78c,function(item,i){var _78f=this._createOption(item,_78e);_78f.setAttribute("item",i);_787.set(_78f,"id",this.id+i);this.nextButton.parentNode.insertBefore(_78f,this.nextButton);},this);var _790=false;if(_78c.total&&!_78c.total.then&&_78c.total!=-1){if((_78d.start+_78d.count)<_78c.total){_790=true;}else{if((_78d.start+_78d.count)>_78c.total&&_78d.count==_78c.length){_790=true;}}}else{if(_78d.count==_78c.length){_790=true;}}this.nextButton.style.display=_790?"":"none";_787.set(this.nextButton,"id",this.id+"_next");},clearResultList:function(){var _791=this.containerNode;while(_791.childNodes.length>2){_791.removeChild(_791.childNodes[_791.childNodes.length-2]);}this._setSelectedAttr(null);},highlightFirstOption:function(){this.selectFirstNode();},highlightLastOption:function(){this.selectLastNode();},selectFirstNode:function(){this.inherited(arguments);if(this.getHighlightedOption()==this.previousButton){this.selectNextNode();}},selectLastNode:function(){this.inherited(arguments);if(this.getHighlightedOption()==this.nextButton){this.selectPreviousNode();}},getHighlightedOption:function(){return this.selected;}});});},"dijit/form/_ListMouseMixin":function(){define("dijit/form/_ListMouseMixin",["dojo/_base/declare","dojo/mouse","dojo/on","dojo/touch","./_ListBase"],function(_792,_793,on,_794,_795){return _792("dijit.form._ListMouseMixin",_795,{postCreate:function(){this.inherited(arguments);this.own(on(this.domNode,_794.press,function(evt){evt.preventDefault();}));this._listConnect(_794.press,"_onMouseDown");this._listConnect(_794.release,"_onMouseUp");this._listConnect(_793.enter,"_onMouseOver");this._listConnect(_793.leave,"_onMouseOut");},_onMouseDown:function(evt,_796){if(this._hoveredNode){this.onUnhover(this._hoveredNode);this._hoveredNode=null;}this._isDragging=true;this._setSelectedAttr(_796);},_onMouseUp:function(evt,_797){this._isDragging=false;var _798=this.selected;var _799=this._hoveredNode;if(_798&&_797==_798){this.onClick(_798);}else{if(_799&&_797==_799){this._setSelectedAttr(_799);this.onClick(_799);}}},_onMouseOut:function(evt,_79a){if(this._hoveredNode){this.onUnhover(this._hoveredNode);this._hoveredNode=null;}if(this._isDragging){this._cancelDrag=(new Date()).getTime()+1000;}},_onMouseOver:function(evt,_79b){if(this._cancelDrag){var time=(new Date()).getTime();if(time>this._cancelDrag){this._isDragging=false;}this._cancelDrag=null;}this._hoveredNode=_79b;this.onHover(_79b);if(this._isDragging){this._setSelectedAttr(_79b);}}});});},"dijit/form/_ListBase":function(){define("dijit/form/_ListBase",["dojo/_base/declare","dojo/on","dojo/window"],function(_79c,on,_79d){return _79c("dijit.form._ListBase",null,{selected:null,_listConnect:function(_79e,_79f){var self=this;return self.own(on(self.containerNode,on.selector(function(_7a0,_7a1,_7a2){return _7a0.parentNode==_7a2;},_79e),function(evt){evt.preventDefault();self[_79f](evt,this);}));},selectFirstNode:function(){var _7a3=this.containerNode.firstChild;while(_7a3&&_7a3.style.display=="none"){_7a3=_7a3.nextSibling;}this._setSelectedAttr(_7a3);},selectLastNode:function(){var last=this.containerNode.lastChild;while(last&&last.style.display=="none"){last=last.previousSibling;}this._setSelectedAttr(last);},selectNextNode:function(){var _7a4=this.selected;if(!_7a4){this.selectFirstNode();}else{var next=_7a4.nextSibling;while(next&&next.style.display=="none"){next=next.nextSibling;}if(!next){this.selectFirstNode();}else{this._setSelectedAttr(next);}}},selectPreviousNode:function(){var _7a5=this.selected;if(!_7a5){this.selectLastNode();}else{var prev=_7a5.previousSibling;while(prev&&prev.style.display=="none"){prev=prev.previousSibling;}if(!prev){this.selectLastNode();}else{this._setSelectedAttr(prev);}}},_setSelectedAttr:function(node){if(this.selected!=node){var _7a6=this.selected;if(_7a6){this.onDeselect(_7a6);this.selected=null;}if(node){this.selected=node;_79d.scrollIntoView(node);this.onSelect(node);}}else{if(node){this.onSelect(node);}}}});});},"url:dijit/form/templates/DropDownBox.html":"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdata-dojo-attach-point=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"button presentation\" aria-hidden=\"true\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdata-dojo-attach-point=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n","dijit/form/Form":function(){define("dijit/form/Form",["dojo/_base/declare","dojo/dom-attr","dojo/_base/event","dojo/_base/kernel","dojo/sniff","../_Widget","../_TemplatedMixin","./_FormMixin","../layout/_ContentPaneResizeMixin"],function(_7a7,_7a8,_7a9,_7aa,has,_7ab,_7ac,_7ad,_7ae){return _7a7("dijit.form.Form",[_7ab,_7ac,_7ad,_7ae],{name:"",action:"",method:"",encType:"","accept-charset":"",accept:"",target:"",templateString:"<form data-dojo-attach-point='containerNode' data-dojo-attach-event='onreset:_onReset,onsubmit:_onSubmit' ${!nameAttrSetting}></form>",postMixInProperties:function(){this.nameAttrSetting=this.name?("name='"+this.name+"'"):"";this.inherited(arguments);},execute:function(){},onExecute:function(){},_setEncTypeAttr:function(_7af){this.encType=_7af;_7a8.set(this.domNode,"encType",_7af);if(has("ie")){this.domNode.encoding=_7af;}},reset:function(e){var faux={returnValue:true,preventDefault:function(){this.returnValue=false;},stopPropagation:function(){},currentTarget:e?e.target:this.domNode,target:e?e.target:this.domNode};if(!(this.onReset(faux)===false)&&faux.returnValue){this.inherited(arguments,[]);}},onReset:function(){return true;},_onReset:function(e){this.reset(e);_7a9.stop(e);return false;},_onSubmit:function(e){var fp=this.constructor.prototype;if(this.execute!=fp.execute||this.onExecute!=fp.onExecute){_7aa.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.","","2.0");this.onExecute();this.execute(this.getValues());}if(this.onSubmit(e)===false){_7a9.stop(e);}},onSubmit:function(){return this.isValid();},submit:function(){if(!(this.onSubmit()===false)){this.containerNode.submit();}}});});},"dijit/form/RadioButton":function(){define("dijit/form/RadioButton",["dojo/_base/declare","./CheckBox","./_RadioButtonMixin"],function(_7b0,_7b1,_7b2){return _7b0("dijit.form.RadioButton",[_7b1,_7b2],{baseClass:"dijitRadio"});});},"dijit/form/_RadioButtonMixin":function(){define("dijit/form/_RadioButtonMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/_base/event","dojo/_base/lang","dojo/query","../registry"],function(_7b3,_7b4,_7b5,_7b6,lang,_7b7,_7b8){return _7b4("dijit.form._RadioButtonMixin",null,{type:"radio",_getRelatedWidgets:function(){var ary=[];_7b7("input[type=radio]",this.focusNode.form||this.ownerDocument).forEach(lang.hitch(this,function(_7b9){if(_7b9.name==this.name&&_7b9.form==this.focusNode.form){var _7ba=_7b8.getEnclosingWidget(_7b9);if(_7ba){ary.push(_7ba);}}}));return ary;},_setCheckedAttr:function(_7bb){this.inherited(arguments);if(!this._created){return;}if(_7bb){_7b3.forEach(this._getRelatedWidgets(),lang.hitch(this,function(_7bc){if(_7bc!=this&&_7bc.checked){_7bc.set("checked",false);}}));}},_getSubmitValue:function(_7bd){return _7bd===null?"on":_7bd;},_onClick:function(e){if(this.checked||this.disabled){_7b6.stop(e);return false;}if(this.readOnly){_7b6.stop(e);_7b3.forEach(this._getRelatedWidgets(),lang.hitch(this,function(_7be){_7b5.set(this.focusNode||this.domNode,"checked",_7be.checked);}));return false;}return this.inherited(arguments);}});});},"dijit/form/Select":function(){require({cache:{"url:dijit/form/templates/Select.html":"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdata-dojo-attach-point=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\trole=\"listbox\" aria-haspopup=\"true\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents\" role=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitInputField dijitButtonText\" data-dojo-attach-point=\"containerNode,_popupStateNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitValidationContainer\"\n\t\t\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t/></div\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} data-dojo-attach-point=\"valueNode\" value=\"${value}\" aria-hidden=\"true\"\n\t\t/></td\n\t\t><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer\"\n\t\t\tdata-dojo-attach-point=\"titleNode\" role=\"presentation\"\n\t\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t\t${_buttonInputDisabled}\n\t\t/></td\n\t></tr></tbody\n></table>\n"}});define("dijit/form/Select",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/_base/event","dojo/i18n","dojo/_base/lang","dojo/sniff","./_FormSelectWidget","../_HasDropDown","../Menu","../MenuItem","../MenuSeparator","../Tooltip","dojo/text!./templates/Select.html","dojo/i18n!./nls/validate"],function(_7bf,_7c0,_7c1,_7c2,_7c3,_7c4,i18n,lang,has,_7c5,_7c6,Menu,_7c7,_7c8,_7c9,_7ca){var _7cb=_7c0("dijit.form._SelectMenu",Menu,{autoFocus:true,buildRendering:function(){this.inherited(arguments);var o=(this.menuTableNode=this.domNode);var n=(this.domNode=this.ownerDocument.createElement("div"));n.style.cssText="overflow-x: hidden; overflow-y: scroll";if(o.parentNode){o.parentNode.replaceChild(n,o);}_7c2.remove(o,"dijitMenuTable");n.className=o.className+" dijitSelectMenu";o.className="dijitReset dijitMenuTable";o.setAttribute("role","listbox");n.setAttribute("role","presentation");n.appendChild(o);},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onselectstart",_7c4.stop);},focus:function(){var _7cc=false,val=this.parentWidget.value;if(lang.isArray(val)){val=val[val.length-1];}if(val){_7bf.forEach(this.parentWidget._getChildren(),function(_7cd){if(_7cd.option&&(val===_7cd.option.value)){_7cc=true;this.focusChild(_7cd,false);}},this);}if(!_7cc){this.inherited(arguments);}},resize:function(mb){if(mb){_7c3.setMarginBox(this.domNode,mb);if("w" in mb){this.menuTableNode.style.width="100%";}}}});var _7ce=_7c0("dijit.form.Select",[_7c5,_7c6],{baseClass:"dijitSelect dijitValidationTextBox",templateString:_7ca,_buttonInputDisabled:has("ie")?"disabled":"",required:false,state:"",message:"",tooltipPosition:[],emptyLabel:"&#160;",_isLoaded:false,_childrenLoaded:false,_fillContent:function(){this.inherited(arguments);if(this.options.length&&!this.value&&this.srcNodeRef){var si=this.srcNodeRef.selectedIndex||0;this.value=this.options[si>=0?si:0].value;}this.dropDown=new _7cb({id:this.id+"_menu",parentWidget:this});_7c2.add(this.dropDown.domNode,this.baseClass.replace(/\s+|$/g,"Menu "));},_getMenuItemForOption:function(_7cf){if(!_7cf.value&&!_7cf.label){return new _7c8({ownerDocument:this.ownerDocument});}else{var _7d0=lang.hitch(this,"_setValueAttr",_7cf);var item=new _7c7({option:_7cf,label:_7cf.label||this.emptyLabel,onClick:_7d0,ownerDocument:this.ownerDocument,dir:this.dir,disabled:_7cf.disabled||false});item.focusNode.setAttribute("role","option");return item;}},_addOptionItem:function(_7d1){if(this.dropDown){this.dropDown.addChild(this._getMenuItemForOption(_7d1));}},_getChildren:function(){if(!this.dropDown){return [];}return this.dropDown.getChildren();},_loadChildren:function(_7d2){if(_7d2===true){if(this.dropDown){delete this.dropDown.focusedChild;}if(this.options.length){this.inherited(arguments);}else{_7bf.forEach(this._getChildren(),function(_7d3){_7d3.destroyRecursive();});var item=new _7c7({ownerDocument:this.ownerDocument,label:this.emptyLabel});this.dropDown.addChild(item);}}else{this._updateSelection();}this._isLoaded=false;this._childrenLoaded=true;if(!this._loadingStore){this._setValueAttr(this.value,false);}},_refreshState:function(){if(this._started){this.validate(this.focused);}},startup:function(){this.inherited(arguments);this._refreshState();},_setValueAttr:function(_7d4){this.inherited(arguments);_7c1.set(this.valueNode,"value",this.get("value"));this._refreshState();},_setDisabledAttr:function(_7d5){this.inherited(arguments);this._refreshState();},_setRequiredAttr:function(_7d6){this._set("required",_7d6);this.focusNode.setAttribute("aria-required",_7d6);this._refreshState();},_setOptionsAttr:function(_7d7){this._isLoaded=false;this._set("options",_7d7);},_setDisplay:function(_7d8){var lbl=_7d8||this.emptyLabel;this.containerNode.innerHTML="<span role=\"option\" class=\"dijitReset dijitInline "+this.baseClass.replace(/\s+|$/g,"Label ")+"\">"+lbl+"</span>";},validate:function(_7d9){var _7da=this.disabled||this.isValid(_7d9);this._set("state",_7da?"":(this._hasBeenBlurred?"Error":"Incomplete"));this.focusNode.setAttribute("aria-invalid",_7da?"false":"true");var _7db=_7da?"":this._missingMsg;if(_7db&&this.focused&&this._hasBeenBlurred){_7c9.show(_7db,this.domNode,this.tooltipPosition,!this.isLeftToRight());}else{_7c9.hide(this.domNode);}this._set("message",_7db);return _7da;},isValid:function(){return (!this.required||this.value===0||!(/^\s*$/.test(this.value||"")));},reset:function(){this.inherited(arguments);_7c9.hide(this.domNode);this._refreshState();},postMixInProperties:function(){this.inherited(arguments);this._missingMsg=i18n.getLocalization("dijit.form","validate",this.lang).missingMessage;},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onselectstart",_7c4.stop);this.domNode.setAttribute("aria-expanded","false");if(has("ie")<9){this.defer(function(){try{var s=domStyle.getComputedStyle(this.domNode);if(s){var ff=s.fontFamily;if(ff){var _7dc=this.domNode.getElementsByTagName("INPUT");if(_7dc){for(var i=0;i<_7dc.length;i++){_7dc[i].style.fontFamily=ff;}}}}}catch(e){}});}},_setStyleAttr:function(_7dd){this.inherited(arguments);_7c2.toggle(this.domNode,this.baseClass.replace(/\s+|$/g,"FixedWidth "),!!this.domNode.style.width);},isLoaded:function(){return this._isLoaded;},loadDropDown:function(_7de){this._loadChildren(true);this._isLoaded=true;_7de();},closeDropDown:function(){this.inherited(arguments);if(this.dropDown&&this.dropDown.menuTableNode){this.dropDown.menuTableNode.style.width="";}},destroy:function(_7df){if(this.dropDown&&!this.dropDown._destroyed){this.dropDown.destroyRecursive(_7df);delete this.dropDown;}this.inherited(arguments);},_onFocus:function(){this.validate(true);this.inherited(arguments);},_onBlur:function(){_7c9.hide(this.domNode);this.inherited(arguments);this.validate(false);}});_7ce._Menu=_7cb;return _7ce;});},"dijit/form/_FormSelectWidget":function(){define("dijit/form/_FormSelectWidget",["dojo/_base/array","dojo/_base/Deferred","dojo/aspect","dojo/data/util/sorter","dojo/_base/declare","dojo/dom","dojo/dom-class","dojo/_base/kernel","dojo/_base/lang","dojo/query","dojo/when","dojo/store/util/QueryResults","./_FormValueWidget"],function(_7e0,_7e1,_7e2,_7e3,_7e4,dom,_7e5,_7e6,lang,_7e7,when,_7e8,_7e9){var _7ea=_7e4("dijit.form._FormSelectWidget",_7e9,{multiple:false,options:null,store:null,query:null,queryOptions:null,labelAttr:"",onFetch:null,sortByLabel:true,loadChildrenOnOpen:false,onLoadDeferred:null,getOptions:function(_7eb){var _7ec=_7eb,opts=this.options||[],l=opts.length;if(_7ec===undefined){return opts;}if(lang.isArray(_7ec)){return _7e0.map(_7ec,"return this.getOptions(item);",this);}if(lang.isObject(_7eb)){if(!_7e0.some(this.options,function(o,idx){if(o===_7ec||(o.value&&o.value===_7ec.value)){_7ec=idx;return true;}return false;})){_7ec=-1;}}if(typeof _7ec=="string"){for(var i=0;i<l;i++){if(opts[i].value===_7ec){_7ec=i;break;}}}if(typeof _7ec=="number"&&_7ec>=0&&_7ec<l){return this.options[_7ec];}return null;},addOption:function(_7ed){if(!lang.isArray(_7ed)){_7ed=[_7ed];}_7e0.forEach(_7ed,function(i){if(i&&lang.isObject(i)){this.options.push(i);}},this);this._loadChildren();},removeOption:function(_7ee){if(!lang.isArray(_7ee)){_7ee=[_7ee];}var _7ef=this.getOptions(_7ee);_7e0.forEach(_7ef,function(i){if(i){this.options=_7e0.filter(this.options,function(node){return (node.value!==i.value||node.label!==i.label);});this._removeOptionItem(i);}},this);this._loadChildren();},updateOption:function(_7f0){if(!lang.isArray(_7f0)){_7f0=[_7f0];}_7e0.forEach(_7f0,function(i){var _7f1=this.getOptions(i),k;if(_7f1){for(k in i){_7f1[k]=i[k];}}},this);this._loadChildren();},setStore:function(_7f2,_7f3,_7f4){var _7f5=this.store;_7f4=_7f4||{};if(_7f5!==_7f2){var h;while((h=this._notifyConnections.pop())){h.remove();}if(!_7f2.get){lang.mixin(_7f2,{_oldAPI:true,get:function(id){var _7f6=new _7e1();this.fetchItemByIdentity({identity:id,onItem:function(_7f7){_7f6.resolve(_7f7);},onError:function(_7f8){_7f6.reject(_7f8);}});return _7f6.promise;},query:function(_7f9,_7fa){var _7fb=new _7e1(function(){if(_7fc.abort){_7fc.abort();}});_7fb.total=new _7e1();var _7fc=this.fetch(lang.mixin({query:_7f9,onBegin:function(_7fd){_7fb.total.resolve(_7fd);},onComplete:function(_7fe){_7fb.resolve(_7fe);},onError:function(_7ff){_7fb.reject(_7ff);}},_7fa));return new _7e8(_7fb);}});if(_7f2.getFeatures()["dojo.data.api.Notification"]){this._notifyConnections=[_7e2.after(_7f2,"onNew",lang.hitch(this,"_onNewItem"),true),_7e2.after(_7f2,"onDelete",lang.hitch(this,"_onDeleteItem"),true),_7e2.after(_7f2,"onSet",lang.hitch(this,"_onSetItem"),true)];}}this._set("store",_7f2);}if(this.options&&this.options.length){this.removeOption(this.options);}if(this._queryRes&&this._queryRes.close){this._queryRes.close();}if(_7f4.query){this._set("query",_7f4.query);this._set("queryOptions",_7f4.queryOptions);}if(_7f2){this._loadingStore=true;this.onLoadDeferred=new _7e1();this._queryRes=_7f2.query(this.query,this.queryOptions);when(this._queryRes,lang.hitch(this,function(_800){if(this.sortByLabel&&!_7f4.sort&&_800.length){if(_800[0].getValue){_800.sort(_7e3.createSortFunction([{attribute:_7f2.getLabelAttributes(_800[0])[0]}],_7f2));}else{var _801=this.labelAttr;_800.sort(function(a,b){return a[_801]>b[_801]?1:b[_801]>a[_801]?-1:0;});}}if(_7f4.onFetch){_800=_7f4.onFetch.call(this,_800,_7f4);}_7e0.forEach(_800,function(i){this._addOptionForItem(i);},this);if(this._queryRes.observe){this._queryRes.observe(lang.hitch(this,function(_802,_803,_804){if(_803==_804){this._onSetItem(_802);}else{if(_803!=-1){this._onDeleteItem(_802);}if(_804!=-1){this._onNewItem(_802);}}}),true);}this._loadingStore=false;this.set("value","_pendingValue" in this?this._pendingValue:_7f3);delete this._pendingValue;if(!this.loadChildrenOnOpen){this._loadChildren();}else{this._pseudoLoadChildren(_800);}this.onLoadDeferred.resolve(true);this.onSetStore();}),function(err){console.error("dijit.form.Select: "+err.toString());this.onLoadDeferred.reject(err);});}return _7f5;},_setValueAttr:function(_805,_806){if(!this._onChangeActive){_806=null;}if(this._loadingStore){this._pendingValue=_805;return;}var opts=this.getOptions()||[];if(!lang.isArray(_805)){_805=[_805];}_7e0.forEach(_805,function(i,idx){if(!lang.isObject(i)){i=i+"";}if(typeof i==="string"){_805[idx]=_7e0.filter(opts,function(node){return node.value===i;})[0]||{value:"",label:""};}},this);_805=_7e0.filter(_805,function(i){return i&&i.value;});if(!this.multiple&&(!_805[0]||!_805[0].value)&&opts.length){_805[0]=opts[0];}_7e0.forEach(opts,function(i){i.selected=_7e0.some(_805,function(v){return v.value===i.value;});});var val=_7e0.map(_805,function(i){return i.value;}),disp=_7e0.map(_805,function(i){return i.label;});if(typeof val=="undefined"||typeof val[0]=="undefined"){return;}this._setDisplay(this.multiple?disp:disp[0]);this.inherited(arguments,[this.multiple?val:val[0],_806]);this._updateSelection();},_getDisplayedValueAttr:function(){var val=this.get("value");if(!lang.isArray(val)){val=[val];}var ret=_7e0.map(this.getOptions(val),function(v){if(v&&"label" in v){return v.label;}else{if(v){return v.value;}}return null;},this);return this.multiple?ret:ret[0];},_loadChildren:function(){if(this._loadingStore){return;}_7e0.forEach(this._getChildren(),function(_807){_807.destroyRecursive();});_7e0.forEach(this.options,this._addOptionItem,this);this._updateSelection();},_updateSelection:function(){this._set("value",this._getValueFromOpts());var val=this.value;if(!lang.isArray(val)){val=[val];}if(val&&val[0]){_7e0.forEach(this._getChildren(),function(_808){var _809=_7e0.some(val,function(v){return _808.option&&(v===_808.option.value);});_7e5.toggle(_808.domNode,this.baseClass.replace(/\s+|$/g,"SelectedOption "),_809);_808.domNode.setAttribute("aria-selected",_809?"true":"false");},this);}},_getValueFromOpts:function(){var opts=this.getOptions()||[];if(!this.multiple&&opts.length){var opt=_7e0.filter(opts,function(i){return i.selected;})[0];if(opt&&opt.value){return opt.value;}else{opts[0].selected=true;return opts[0].value;}}else{if(this.multiple){return _7e0.map(_7e0.filter(opts,function(i){return i.selected;}),function(i){return i.value;})||[];}}return "";},_onNewItem:function(item,_80a){if(!_80a||!_80a.parent){this._addOptionForItem(item);}},_onDeleteItem:function(item){var _80b=this.store;this.removeOption(_80b.getIdentity(item));},_onSetItem:function(item){this.updateOption(this._getOptionObjForItem(item));},_getOptionObjForItem:function(item){var _80c=this.store,_80d=(this.labelAttr&&this.labelAttr in item)?item[this.labelAttr]:_80c.getLabel(item),_80e=(_80d?_80c.getIdentity(item):null);return {value:_80e,label:_80d,item:item};},_addOptionForItem:function(item){var _80f=this.store;if(_80f.isItemLoaded&&!_80f.isItemLoaded(item)){_80f.loadItem({item:item,onItem:function(i){this._addOptionForItem(i);},scope:this});return;}var _810=this._getOptionObjForItem(item);this.addOption(_810);},constructor:function(_811){this._oValue=(_811||{}).value||null;this._notifyConnections=[];},buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.focusNode,false);},_fillContent:function(){if(!this.options){this.options=this.srcNodeRef?_7e7("> *",this.srcNodeRef).map(function(node){if(node.getAttribute("type")==="separator"){return {value:"",label:"",selected:false,disabled:false};}return {value:(node.getAttribute("data-"+_7e6._scopeName+"-value")||node.getAttribute("value")),label:String(node.innerHTML),selected:node.getAttribute("selected")||false,disabled:node.getAttribute("disabled")||false};},this):[];}if(!this.value){this._set("value",this._getValueFromOpts());}else{if(this.multiple&&typeof this.value=="string"){this._set("value",this.value.split(","));}}},postCreate:function(){this.inherited(arguments);this.connect(this,"onChange","_updateSelection");var _812=this.store;if(_812&&(_812.getIdentity||_812.getFeatures()["dojo.data.api.Identity"])){this.store=null;this.setStore(_812,this._oValue);}},startup:function(){this._loadChildren();this.inherited(arguments);},destroy:function(){var h;while((h=this._notifyConnections.pop())){h.remove();}if(this._queryRes&&this._queryRes.close){this._queryRes.close();}this.inherited(arguments);},_addOptionItem:function(){},_removeOptionItem:function(){},_setDisplay:function(){},_getChildren:function(){return [];},_getSelectedOptionsAttr:function(){return this.getOptions(this.get("value"));},_pseudoLoadChildren:function(){},onSetStore:function(){}});return _7ea;});},"dijit/Menu":function(){define("dijit/Menu",["require","dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/dom","dojo/dom-attr","dojo/dom-geometry","dojo/dom-style","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","dojo/_base/window","dojo/window","./popup","./DropDownMenu","dojo/ready"],function(_813,_814,_815,_816,dom,_817,_818,_819,keys,lang,on,has,win,_81a,pm,_81b,_81c){if(has("dijit-legacy-requires")){_81c(0,function(){var _81d=["dijit/MenuItem","dijit/PopupMenuItem","dijit/CheckedMenuItem","dijit/MenuSeparator"];_813(_81d);});}return _815("dijit.Menu",_81b,{constructor:function(){this._bindings=[];},targetNodeIds:[],selector:"",contextMenuForWindow:false,leftClickToOpen:false,refocus:true,postCreate:function(){if(this.contextMenuForWindow){this.bindDomNode(this.ownerDocumentBody);}else{_814.forEach(this.targetNodeIds,this.bindDomNode,this);}this.inherited(arguments);},_iframeContentWindow:function(_81e){return _81a.get(this._iframeContentDocument(_81e))||this._iframeContentDocument(_81e)["__parent__"]||(_81e.name&&win.doc.frames[_81e.name])||null;},_iframeContentDocument:function(_81f){return _81f.contentDocument||(_81f.contentWindow&&_81f.contentWindow.document)||(_81f.name&&win.doc.frames[_81f.name]&&win.doc.frames[_81f.name].document)||null;},bindDomNode:function(node){node=dom.byId(node,this.ownerDocument);var cn;if(node.tagName.toLowerCase()=="iframe"){var _820=node,_821=this._iframeContentWindow(_820);cn=win.body(_821.document);}else{cn=(node==win.body(this.ownerDocument)?this.ownerDocument.documentElement:node);}var _822={node:node,iframe:_820};_817.set(node,"_dijitMenu"+this.id,this._bindings.push(_822));var _823=lang.hitch(this,function(cn){var _824=this.selector,_825=_824?function(_826){return on.selector(_824,_826);}:function(_827){return _827;},self=this;return [on(cn,_825(this.leftClickToOpen?"click":"contextmenu"),function(evt){_816.stop(evt);self._scheduleOpen(this,_820,{x:evt.pageX,y:evt.pageY});}),on(cn,_825("keydown"),function(evt){if(evt.shiftKey&&evt.keyCode==keys.F10){_816.stop(evt);self._scheduleOpen(this,_820);}})];});_822.connects=cn?_823(cn):[];if(_820){_822.onloadHandler=lang.hitch(this,function(){var _828=this._iframeContentWindow(_820);cn=win.body(_828.document);_822.connects=_823(cn);});if(_820.addEventListener){_820.addEventListener("load",_822.onloadHandler,false);}else{_820.attachEvent("onload",_822.onloadHandler);}}},unBindDomNode:function(_829){var node;try{node=dom.byId(_829,this.ownerDocument);}catch(e){return;}var _82a="_dijitMenu"+this.id;if(node&&_817.has(node,_82a)){var bid=_817.get(node,_82a)-1,b=this._bindings[bid],h;while((h=b.connects.pop())){h.remove();}var _82b=b.iframe;if(_82b){if(_82b.removeEventListener){_82b.removeEventListener("load",b.onloadHandler,false);}else{_82b.detachEvent("onload",b.onloadHandler);}}_817.remove(node,_82a);delete this._bindings[bid];}},_scheduleOpen:function(_82c,_82d,_82e){if(!this._openTimer){this._openTimer=this.defer(function(){delete this._openTimer;this._openMyself({target:_82c,iframe:_82d,coords:_82e});},1);}},_openMyself:function(args){var _82f=args.target,_830=args.iframe,_831=args.coords;this.currentTarget=_82f;if(_831){if(_830){var ifc=_818.position(_830,true),_832=this._iframeContentWindow(_830),_833=_818.docScroll(_832.document);var cs=_819.getComputedStyle(_830),tp=_819.toPixelValue,left=(has("ie")&&has("quirks")?0:tp(_830,cs.paddingLeft))+(has("ie")&&has("quirks")?tp(_830,cs.borderLeftWidth):0),top=(has("ie")&&has("quirks")?0:tp(_830,cs.paddingTop))+(has("ie")&&has("quirks")?tp(_830,cs.borderTopWidth):0);_831.x+=ifc.x+left-_833.x;_831.y+=ifc.y+top-_833.y;}}else{_831=_818.position(_82f,true);_831.x+=10;_831.y+=10;}var self=this;var _834=this._focusManager.get("prevNode");var _835=this._focusManager.get("curNode");var _836=!_835||(dom.isDescendant(_835,this.domNode))?_834:_835;function _837(){if(self.refocus&&_836){_836.focus();}pm.close(self);};pm.open({popup:this,x:_831.x,y:_831.y,onExecute:_837,onCancel:_837,orient:this.isLeftToRight()?"L":"R"});this.focus();this._onBlur=function(){this.inherited("_onBlur",arguments);pm.close(this);};},destroy:function(){_814.forEach(this._bindings,function(b){if(b){this.unBindDomNode(b.node);}},this);this.inherited(arguments);}});});},"dijit/DropDownMenu":function(){require({cache:{"url:dijit/templates/Menu.html":"<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" role=\"menu\" tabIndex=\"${tabIndex}\"\n\t data-dojo-attach-event=\"onkeypress:_onKeyPress\" cellspacing=\"0\">\n\t<tbody class=\"dijitReset\" data-dojo-attach-point=\"containerNode\"></tbody>\n</table>\n"}});define("dijit/DropDownMenu",["dojo/_base/declare","dojo/_base/event","dojo/keys","dojo/text!./templates/Menu.html","./_OnDijitClickMixin","./_MenuBase"],function(_838,_839,keys,_83a,_83b,_83c){return _838("dijit.DropDownMenu",[_83c,_83b],{templateString:_83a,baseClass:"dijitMenu",postCreate:function(){this.inherited(arguments);var l=this.isLeftToRight();this._openSubMenuKey=l?keys.RIGHT_ARROW:keys.LEFT_ARROW;this._closeSubMenuKey=l?keys.LEFT_ARROW:keys.RIGHT_ARROW;this.connectKeyNavHandlers([keys.UP_ARROW],[keys.DOWN_ARROW]);},_onKeyPress:function(evt){if(evt.ctrlKey||evt.altKey){return;}switch(evt.charOrCode){case this._openSubMenuKey:this._moveToPopup(evt);_839.stop(evt);break;case this._closeSubMenuKey:if(this.parentMenu){if(this.parentMenu._isMenuBar){this.parentMenu.focusPrev();}else{this.onCancel(false);}}else{_839.stop(evt);}break;}}});});},"url:dijit/templates/Menu.html":"<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" role=\"menu\" tabIndex=\"${tabIndex}\"\n\t data-dojo-attach-event=\"onkeypress:_onKeyPress\" cellspacing=\"0\">\n\t<tbody class=\"dijitReset\" data-dojo-attach-point=\"containerNode\"></tbody>\n</table>\n","dijit/_MenuBase":function(){define("dijit/_MenuBase",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/lang","dojo/mouse","dojo/on","dojo/window","./a11yclick","./popup","./registry","./_Widget","./_KeyNavContainer","./_TemplatedMixin"],function(_83d,_83e,dom,_83f,_840,lang,_841,on,_842,_843,pm,_844,_845,_846,_847){return _83e("dijit._MenuBase",[_845,_847,_846],{parentMenu:null,popupDelay:500,autoFocus:false,childSelector:function(node){var _848=_844.byNode(node);return node.parentNode==this.containerNode&&_848&&_848.focus;},postCreate:function(){var self=this,_849=typeof this.childSelector=="string"?this.childSelector:lang.hitch(this,"childSelector");this.own(on(this.containerNode,on.selector(_849,_841.enter),function(){self.onItemHover(_844.byNode(this));}),on(this.containerNode,on.selector(_849,_841.leave),function(){self.onItemUnhover(_844.byNode(this));}),on(this.containerNode,on.selector(_849,_843),function(evt){self.onItemClick(_844.byNode(this),evt);evt.stopPropagation();evt.preventDefault();}));this.inherited(arguments);},onExecute:function(){},onCancel:function(){},_moveToPopup:function(evt){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.onItemClick(this.focusedChild,evt);}else{var _84a=this._getTopMenu();if(_84a&&_84a._isMenuBar){_84a.focusNext();}}},_onPopupHover:function(){if(this.currentPopup&&this.currentPopup._pendingClose_timer){var _84b=this.currentPopup.parentMenu;if(_84b.focusedChild){_84b.focusedChild._setSelected(false);}_84b.focusedChild=this.currentPopup.from_item;_84b.focusedChild._setSelected(true);this._stopPendingCloseTimer(this.currentPopup);}},onItemHover:function(item){if(this.isActive){this.focusChild(item);if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){this.hover_timer=this.defer("_openPopup",this.popupDelay);}}if(this.focusedChild){this.focusChild(item);}this._hoveredChild=item;item._set("hovering",true);},_onChildBlur:function(item){this._stopPopupTimer();item._setSelected(false);var _84c=item.popup;if(_84c){this._stopPendingCloseTimer(_84c);_84c._pendingClose_timer=this.defer(function(){_84c._pendingClose_timer=null;if(_84c.parentMenu){_84c.parentMenu.currentPopup=null;}pm.close(_84c);},this.popupDelay);}},onItemUnhover:function(item){if(this.isActive){this._stopPopupTimer();}if(this._hoveredChild==item){this._hoveredChild=null;}item._set("hovering",false);},_stopPopupTimer:function(){if(this.hover_timer){this.hover_timer=this.hover_timer.remove();}},_stopPendingCloseTimer:function(_84d){if(_84d._pendingClose_timer){_84d._pendingClose_timer=_84d._pendingClose_timer.remove();}},_stopFocusTimer:function(){if(this._focus_timer){this._focus_timer=this._focus_timer.remove();}},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu){}return top;},onItemClick:function(item,evt){if(typeof this.isShowingNow=="undefined"){this._markActive();}this.focusChild(item);if(item.disabled){return false;}if(item.popup){this._openPopup(evt.type=="keypress");}else{this.onExecute();item._onClick?item._onClick(evt):item.onClick(evt);}},_openPopup:function(_84e){this._stopPopupTimer();var _84f=this.focusedChild;if(!_84f){return;}var _850=_84f.popup;if(!_850.isShowingNow){if(this.currentPopup){this._stopPendingCloseTimer(this.currentPopup);pm.close(this.currentPopup);}_850.parentMenu=this;_850.from_item=_84f;var self=this;pm.open({parent:this,popup:_850,around:_84f.domNode,orient:this._orient||["after","before"],onCancel:function(){self.focusChild(_84f);self._cleanUp();_84f._setSelected(true);self.focusedChild=_84f;},onExecute:lang.hitch(this,"_cleanUp")});this.currentPopup=_850;_850.connect(_850.domNode,"onmouseenter",lang.hitch(self,"_onPopupHover"));}if(_84e&&_850.focus){_850._focus_timer=this.defer(lang.hitch(_850,function(){this._focus_timer=null;this.focus();}));}},_markActive:function(){this.isActive=true;_840.replace(this.domNode,"dijitMenuActive","dijitMenuPassive");},onOpen:function(){this.isShowingNow=true;this._markActive();},_markInactive:function(){this.isActive=false;_840.replace(this.domNode,"dijitMenuPassive","dijitMenuActive");},onClose:function(){this._stopFocusTimer();this._markInactive();this.isShowingNow=false;this.parentMenu=null;},_closeChild:function(){this._stopPopupTimer();if(this.currentPopup){if(_83d.indexOf(this._focusManager.activeStack,this.id)>=0){_83f.set(this.focusedChild.focusNode,"tabIndex",this.tabIndex);this.focusedChild.focusNode.focus();}pm.close(this.currentPopup);this.currentPopup=null;}if(this.focusedChild){this.focusedChild._setSelected(false);this.onItemUnhover(this.focusedChild);this.focusedChild=null;}},_onItemFocus:function(item){if(this._hoveredChild&&this._hoveredChild!=item){this.onItemUnhover(this._hoveredChild);}},_onBlur:function(){this._cleanUp();this.inherited(arguments);},_cleanUp:function(){this._closeChild();if(typeof this.isShowingNow=="undefined"){this._markInactive();}}});});},"dijit/_KeyNavContainer":function(){define("dijit/_KeyNavContainer",["dojo/_base/kernel","./_Container","./_FocusMixin","dojo/_base/array","dojo/keys","dojo/_base/declare","dojo/_base/event","dojo/dom-attr","dojo/_base/lang"],function(_851,_852,_853,_854,keys,_855,_856,_857,lang){return _855("dijit._KeyNavContainer",[_853,_852],{tabIndex:"0",connectKeyNavHandlers:function(_858,_859){var _85a=(this._keyNavCodes={});var prev=lang.hitch(this,"focusPrev");var next=lang.hitch(this,"focusNext");_854.forEach(_858,function(code){_85a[code]=prev;});_854.forEach(_859,function(code){_85a[code]=next;});_85a[keys.HOME]=lang.hitch(this,"focusFirstChild");_85a[keys.END]=lang.hitch(this,"focusLastChild");this.connect(this.domNode,"onkeypress","_onContainerKeypress");this.connect(this.domNode,"onfocus","_onContainerFocus");},startupKeyNavChildren:function(){_851.deprecated("startupKeyNavChildren() call no longer needed","","2.0");},startup:function(){this.inherited(arguments);_854.forEach(this.getChildren(),lang.hitch(this,"_startupChild"));},addChild:function(_85b,_85c){this.inherited(arguments);this._startupChild(_85b);},focus:function(){this.focusFirstChild();},focusFirstChild:function(){this.focusChild(this._getFirstFocusableChild());},focusLastChild:function(){this.focusChild(this._getLastFocusableChild());},focusNext:function(){this.focusChild(this._getNextFocusableChild(this.focusedChild,1));},focusPrev:function(){this.focusChild(this._getNextFocusableChild(this.focusedChild,-1),true);},focusChild:function(_85d,last){if(!_85d){return;}if(this.focusedChild&&_85d!==this.focusedChild){this._onChildBlur(this.focusedChild);}_85d.set("tabIndex",this.tabIndex);_85d.focus(last?"end":"start");this._set("focusedChild",_85d);},_startupChild:function(_85e){_85e.set("tabIndex","-1");this.connect(_85e,"_onFocus",function(){_85e.set("tabIndex",this.tabIndex);});this.connect(_85e,"_onBlur",function(){_85e.set("tabIndex","-1");});},_onContainerFocus:function(evt){if(evt.target!==this.domNode||this.focusedChild){return;}this.focusFirstChild();_857.set(this.domNode,"tabIndex","-1");},_onBlur:function(evt){if(this.tabIndex){_857.set(this.domNode,"tabIndex",this.tabIndex);}this.focusedChild=null;this.inherited(arguments);},_onContainerKeypress:function(evt){if(evt.ctrlKey||evt.altKey){return;}var func=this._keyNavCodes[evt.charOrCode];if(func){func();_856.stop(evt);}},_onChildBlur:function(){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getLastFocusableChild:function(){return this._getNextFocusableChild(null,-1);},_getNextFocusableChild:function(_85f,dir){if(_85f){_85f=this._getSiblingOfChild(_85f,dir);}var _860=this.getChildren();for(var i=0;i<_860.length;i++){if(!_85f){_85f=_860[(dir>0)?0:(_860.length-1)];}if(_85f.isFocusable()){return _85f;}_85f=this._getSiblingOfChild(_85f,dir);}return null;}});});},"dijit/MenuItem":function(){require({cache:{"url:dijit/templates/MenuItem.html":"<tr class=\"dijitReset dijitMenuItem\" data-dojo-attach-point=\"focusNode\" role=\"menuitem\" tabIndex=\"-1\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">\n\t\t<div data-dojo-attach-point=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"}});define("dijit/MenuItem",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/kernel","dojo/sniff","./_Widget","./_TemplatedMixin","./_Contained","./_CssStateMixin","dojo/text!./templates/MenuItem.html"],function(_861,dom,_862,_863,_864,has,_865,_866,_867,_868,_869){return _861("dijit.MenuItem",[_865,_866,_867,_868],{templateString:_869,baseClass:"dijitMenuItem",label:"",_setLabelAttr:function(val){this.containerNode.innerHTML=val;this._set("label",val);if(this.textDir==="auto"){this.applyTextDir(this.focusNode,this.label);}},iconClass:"dijitNoIcon",_setIconClassAttr:{node:"iconNode",type:"class"},accelKey:"",disabled:false,_fillContent:function(_86a){if(_86a&&!("label" in this.params)){this.set("label",_86a.innerHTML);}},buildRendering:function(){this.inherited(arguments);var _86b=this.id+"_text";_862.set(this.containerNode,"id",_86b);if(this.accelKeyNode){_862.set(this.accelKeyNode,"id",this.id+"_accel");_86b+=" "+this.id+"_accel";}this.domNode.setAttribute("aria-labelledby",_86b);dom.setSelectable(this.domNode,false);},onClick:function(){},focus:function(){try{if(has("ie")==8){this.containerNode.focus();}this.focusNode.focus();}catch(e){}},_onFocus:function(){this._setSelected(true);this.getParent()._onItemFocus(this);this.inherited(arguments);},_setSelected:function(_86c){_863.toggle(this.domNode,"dijitMenuItemSelected",_86c);},setLabel:function(_86d){_864.deprecated("dijit.MenuItem.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_86d);},setDisabled:function(_86e){_864.deprecated("dijit.Menu.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_86e);},_setDisabledAttr:function(_86f){this.focusNode.setAttribute("aria-disabled",_86f?"true":"false");this._set("disabled",_86f);},_setAccelKeyAttr:function(_870){this.accelKeyNode.style.display=_870?"":"none";this.accelKeyNode.innerHTML=_870;_862.set(this.containerNode,"colSpan",_870?"1":"2");this._set("accelKey",_870);},_setTextDirAttr:function(_871){if(!this._created||this.textDir!=_871){this._set("textDir",_871);this.applyTextDir(this.focusNode,this.label);}}});});},"url:dijit/templates/MenuItem.html":"<tr class=\"dijitReset dijitMenuItem\" data-dojo-attach-point=\"focusNode\" role=\"menuitem\" tabIndex=\"-1\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">\n\t\t<div data-dojo-attach-point=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n","dijit/MenuSeparator":function(){require({cache:{"url:dijit/templates/MenuSeparator.html":"<tr class=\"dijitMenuSeparator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>"}});define("dijit/MenuSeparator",["dojo/_base/declare","dojo/dom","./_WidgetBase","./_TemplatedMixin","./_Contained","dojo/text!./templates/MenuSeparator.html"],function(_872,dom,_873,_874,_875,_876){return _872("dijit.MenuSeparator",[_873,_874,_875],{templateString:_876,buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});});},"url:dijit/templates/MenuSeparator.html":"<tr class=\"dijitMenuSeparator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>","url:dijit/form/templates/Select.html":"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdata-dojo-attach-point=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\trole=\"listbox\" aria-haspopup=\"true\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents\" role=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitInputField dijitButtonText\" data-dojo-attach-point=\"containerNode,_popupStateNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitValidationContainer\"\n\t\t\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t/></div\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} data-dojo-attach-point=\"valueNode\" value=\"${value}\" aria-hidden=\"true\"\n\t\t/></td\n\t\t><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer\"\n\t\t\tdata-dojo-attach-point=\"titleNode\" role=\"presentation\"\n\t\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t\t${_buttonInputDisabled}\n\t\t/></td\n\t></tr></tbody\n></table>\n","dijit/form/SimpleTextarea":function(){define("dijit/form/SimpleTextarea",["dojo/_base/declare","dojo/dom-class","dojo/sniff","./TextBox"],function(_877,_878,has,_879){return _877("dijit.form.SimpleTextarea",_879,{baseClass:"dijitTextBox dijitTextArea",rows:"3",cols:"20",templateString:"<textarea ${!nameAttrSetting} data-dojo-attach-point='focusNode,containerNode,textbox' autocomplete='off'></textarea>",postMixInProperties:function(){if(!this.value&&this.srcNodeRef){this.value=this.srcNodeRef.value;}this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);if(has("ie")&&this.cols){_878.add(this.textbox,"dijitTextAreaCols");}},filter:function(_87a){if(_87a){_87a=_87a.replace(/\r/g,"");}return this.inherited(arguments);},_onInput:function(e){if(this.maxLength){var _87b=parseInt(this.maxLength);var _87c=this.textbox.value.replace(/\r/g,"");var _87d=_87c.length-_87b;if(_87d>0){var _87e=this.textbox;if(_87e.selectionStart){var pos=_87e.selectionStart;var cr=0;if(has("opera")){cr=(this.textbox.value.substring(0,pos).match(/\r/g)||[]).length;}this.textbox.value=_87c.substring(0,pos-_87d-cr)+_87c.substring(pos-cr);_87e.setSelectionRange(pos-_87d,pos-_87d);}else{if(this.ownerDocument.selection){_87e.focus();var _87f=this.ownerDocument.selection.createRange();_87f.moveStart("character",-_87d);_87f.text="";_87f.select();}}}}this.inherited(arguments);}});});},"dijit/InlineEditBox":function(){require({cache:{"url:dijit/templates/InlineEditBox.html":"<span data-dojo-attach-point=\"editNode\" role=\"presentation\" class=\"dijitReset dijitInline dijitOffScreen\"\n\tdata-dojo-attach-event=\"onkeypress: _onKeyPress\"\n\t><span data-dojo-attach-point=\"editorPlaceholder\"></span\n\t><span data-dojo-attach-point=\"buttonContainer\"\n\t\t><button data-dojo-type=\"dijit/form/Button\" data-dojo-props=\"label: '${buttonSave}', 'class': 'saveButton'\"\n\t\t\tdata-dojo-attach-point=\"saveButton\" data-dojo-attach-event=\"onClick:save\"></button\n\t\t><button data-dojo-type=\"dijit/form/Button\" data-dojo-props=\"label: '${buttonCancel}', 'class': 'cancelButton'\"\n\t\t\tdata-dojo-attach-point=\"cancelButton\" data-dojo-attach-event=\"onClick:cancel\"></button\n\t></span\n></span>\n"}});define("dijit/InlineEditBox",["require","dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/_base/event","dojo/i18n","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/when","./focus","./_Widget","./_TemplatedMixin","./_WidgetsInTemplateMixin","./_Container","./form/Button","./form/_TextBoxMixin","./form/TextBox","dojo/text!./templates/InlineEditBox.html","dojo/i18n!./nls/common"],function(_880,_881,_882,_883,_884,_885,_886,_887,i18n,_888,keys,lang,has,when,fm,_889,_88a,_88b,_88c,_88d,_88e,_88f,_890){var _891=_882("dijit._InlineEditor",[_889,_88a,_88b],{templateString:_890,postMixInProperties:function(){this.inherited(arguments);this.messages=i18n.getLocalization("dijit","common",this.lang);_881.forEach(["buttonSave","buttonCancel"],function(prop){if(!this[prop]){this[prop]=this.messages[prop];}},this);},buildRendering:function(){this.inherited(arguments);var Cls=typeof this.editor=="string"?(lang.getObject(this.editor)||_880(this.editor)):this.editor;var _892=this.sourceStyle,_893="line-height:"+_892.lineHeight+";",_894=_886.getComputedStyle(this.domNode);_881.forEach(["Weight","Family","Size","Style"],function(prop){var _895=_892["font"+prop],_896=_894["font"+prop];if(_896!=_895){_893+="font-"+prop+":"+_892["font"+prop]+";";}},this);_881.forEach(["marginTop","marginBottom","marginLeft","marginRight","position","left","top","right","bottom","float","clear","display"],function(prop){this.domNode.style[prop]=_892[prop];},this);var _897=this.inlineEditBox.width;if(_897=="100%"){_893+="width:100%;";this.domNode.style.display="block";}else{_893+="width:"+(_897+(Number(_897)==_897?"px":""))+";";}var _898=lang.delegate(this.inlineEditBox.editorParams,{style:_893,dir:this.dir,lang:this.lang,textDir:this.textDir});_898["displayedValue" in Cls.prototype?"displayedValue":"value"]=this.value;this.editWidget=new Cls(_898,this.editorPlaceholder);if(this.inlineEditBox.autoSave){_885.destroy(this.buttonContainer);}},postCreate:function(){this.inherited(arguments);var ew=this.editWidget;if(this.inlineEditBox.autoSave){this.connect(ew,"onChange","_onChange");this.connect(ew,"onKeyPress","_onKeyPress");}else{if("intermediateChanges" in ew){ew.set("intermediateChanges",true);this.connect(ew,"onChange","_onIntermediateChange");this.saveButton.set("disabled",true);}}},startup:function(){this.editWidget.startup();this.inherited(arguments);},_onIntermediateChange:function(){this.saveButton.set("disabled",(this.getValue()==this._resetValue)||!this.enableSave());},destroy:function(){this.editWidget.destroy(true);this.inherited(arguments);},getValue:function(){var ew=this.editWidget;return String(ew.get("displayedValue" in ew?"displayedValue":"value"));},_onKeyPress:function(e){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(e.altKey||e.ctrlKey){return;}if(e.charOrCode==keys.ESCAPE){_887.stop(e);this.cancel(true);}else{if(e.charOrCode==keys.ENTER&&e.target.tagName=="INPUT"){_887.stop(e);this._onChange();}}}},_onBlur:function(){this.inherited(arguments);if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(this.getValue()==this._resetValue){this.cancel(false);}else{if(this.enableSave()){this.save(false);}}}},_onChange:function(){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing&&this.enableSave()){fm.focus(this.inlineEditBox.displayNode);}},enableSave:function(){return this.editWidget.isValid?this.editWidget.isValid():true;},focus:function(){this.editWidget.focus();if(this.editWidget.focusNode){fm._onFocusNode(this.editWidget.focusNode);if(this.editWidget.focusNode.tagName=="INPUT"){this.defer(function(){_88e.selectInputText(this.editWidget.focusNode);});}}}});var _899=_882("dijit.InlineEditBox",_889,{editing:false,autoSave:true,buttonSave:"",buttonCancel:"",renderAsHtml:false,editor:_88f,editorWrapper:_891,editorParams:{},disabled:false,onChange:function(){},onCancel:function(){},width:"100%",value:"",noValueIndicator:has("ie")<=6?"<span style='font-family: wingdings; text-decoration: underline;'>&#160;&#160;&#160;&#160;&#x270d;&#160;&#160;&#160;&#160;</span>":"<span style='text-decoration: underline;'>&#160;&#160;&#160;&#160;&#x270d;&#160;&#160;&#160;&#160;</span>",constructor:function(){this.editorParams={};},postMixInProperties:function(){this.inherited(arguments);this.displayNode=this.srcNodeRef;var _89a={ondijitclick:"_onClick",onmouseover:"_onMouseOver",onmouseout:"_onMouseOut",onfocus:"_onMouseOver",onblur:"_onMouseOut"};for(var name in _89a){this.connect(this.displayNode,name,_89a[name]);}this.displayNode.setAttribute("role","button");if(!this.displayNode.getAttribute("tabIndex")){this.displayNode.setAttribute("tabIndex",0);}if(!this.value&&!("value" in this.params)){this.value=lang.trim(this.renderAsHtml?this.displayNode.innerHTML:(this.displayNode.innerText||this.displayNode.textContent||""));}if(!this.value){this.displayNode.innerHTML=this.noValueIndicator;}_884.add(this.displayNode,"dijitInlineEditBoxDisplayMode");},setDisabled:function(_89b){_888.deprecated("dijit.InlineEditBox.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_89b);},_setDisabledAttr:function(_89c){this.domNode.setAttribute("aria-disabled",_89c?"true":"false");if(_89c){this.displayNode.removeAttribute("tabIndex");}else{this.displayNode.setAttribute("tabIndex",0);}_884.toggle(this.displayNode,"dijitInlineEditBoxDisplayModeDisabled",_89c);this._set("disabled",_89c);},_onMouseOver:function(){if(!this.disabled){_884.add(this.displayNode,"dijitInlineEditBoxDisplayModeHover");}},_onMouseOut:function(){_884.remove(this.displayNode,"dijitInlineEditBoxDisplayModeHover");},_onClick:function(e){if(this.disabled){return;}if(e){_887.stop(e);}this._onMouseOut();this.defer("edit");},edit:function(){if(this.disabled||this.editing){return;}this._set("editing",true);this._savedTabIndex=_883.get(this.displayNode,"tabIndex")||"0";if(this.wrapperWidget){var ew=this.wrapperWidget.editWidget;ew.set("displayedValue" in ew?"displayedValue":"value",this.value);}else{var _89d=_885.create("span",null,this.domNode,"before");var Ewc=typeof this.editorWrapper=="string"?lang.getObject(this.editorWrapper):this.editorWrapper;this.wrapperWidget=new Ewc({value:this.value,buttonSave:this.buttonSave,buttonCancel:this.buttonCancel,dir:this.dir,lang:this.lang,tabIndex:this._savedTabIndex,editor:this.editor,inlineEditBox:this,sourceStyle:_886.getComputedStyle(this.displayNode),save:lang.hitch(this,"save"),cancel:lang.hitch(this,"cancel"),textDir:this.textDir},_89d);if(!this.wrapperWidget._started){this.wrapperWidget.startup();}if(!this._started){this.startup();}}var ww=this.wrapperWidget;_884.add(this.displayNode,"dijitOffScreen");_884.remove(ww.domNode,"dijitOffScreen");_886.set(ww.domNode,{visibility:"visible"});_883.set(this.displayNode,"tabIndex","-1");when(ww.editWidget.onLoadDeferred,lang.hitch(ww,function(){this.defer(function(){this.focus();this._resetValue=this.getValue();});}));},_onBlur:function(){this.inherited(arguments);if(!this.editing){}},destroy:function(){if(this.wrapperWidget&&!this.wrapperWidget._destroyed){this.wrapperWidget.destroy();delete this.wrapperWidget;}this.inherited(arguments);},_showText:function(_89e){var ww=this.wrapperWidget;_886.set(ww.domNode,{visibility:"hidden"});_884.add(ww.domNode,"dijitOffScreen");_884.remove(this.displayNode,"dijitOffScreen");_883.set(this.displayNode,"tabIndex",this._savedTabIndex);if(_89e){fm.focus(this.displayNode);}},save:function(_89f){if(this.disabled||!this.editing){return;}this._set("editing",false);var ww=this.wrapperWidget;var _8a0=ww.getValue();this.set("value",_8a0);this._showText(_89f);},setValue:function(val){_888.deprecated("dijit.InlineEditBox.setValue() is deprecated. Use set('value', ...) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(val){val=lang.trim(val);var _8a1=this.renderAsHtml?val:val.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;").replace(/\n/g,"<br>");this.displayNode.innerHTML=_8a1||this.noValueIndicator;this._set("value",val);if(this._started){this.defer(function(){this.onChange(val);});}if(this.textDir=="auto"){this.applyTextDir(this.displayNode,this.displayNode.innerText);}},getValue:function(){_888.deprecated("dijit.InlineEditBox.getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},cancel:function(_8a2){if(this.disabled||!this.editing){return;}this._set("editing",false);this.defer("onCancel");this._showText(_8a2);},_setTextDirAttr:function(_8a3){if(!this._created||this.textDir!=_8a3){this._set("textDir",_8a3);this.applyTextDir(this.displayNode,this.displayNode.innerText);this.displayNode.align=this.dir=="rtl"?"right":"left";}}});_899._InlineEditor=_891;return _899;});},"dijit/_WidgetsInTemplateMixin":function(){define("dijit/_WidgetsInTemplateMixin",["dojo/_base/array","dojo/_base/declare","dojo/parser"],function(_8a4,_8a5,_8a6){return _8a5("dijit._WidgetsInTemplateMixin",null,{_earlyTemplatedStartup:false,widgetsInTemplate:true,_beforeFillContent:function(){if(this.widgetsInTemplate){var node=this.domNode;var cw=(this._startupWidgets=_8a6.parse(node,{noStart:!this._earlyTemplatedStartup,template:true,inherited:{dir:this.dir,lang:this.lang,textDir:this.textDir},propsThis:this,scope:"dojo"}));if(!cw.isFulfilled()){throw new Error(this.declaredClass+": parser returned unfilled promise (probably waiting for module auto-load), "+"unsupported by _WidgetsInTemplateMixin. Must pre-load all supporting widgets before instantiation.");}this._attachTemplateNodes(cw,function(n,p){return n[p];});}},startup:function(){_8a4.forEach(this._startupWidgets,function(w){if(w&&!w._started&&w.startup){w.startup();}});this.inherited(arguments);}});});},"url:dijit/templates/InlineEditBox.html":"<span data-dojo-attach-point=\"editNode\" role=\"presentation\" class=\"dijitReset dijitInline dijitOffScreen\"\n\tdata-dojo-attach-event=\"onkeypress: _onKeyPress\"\n\t><span data-dojo-attach-point=\"editorPlaceholder\"></span\n\t><span data-dojo-attach-point=\"buttonContainer\"\n\t\t><button data-dojo-type=\"dijit/form/Button\" data-dojo-props=\"label: '${buttonSave}', 'class': 'saveButton'\"\n\t\t\tdata-dojo-attach-point=\"saveButton\" data-dojo-attach-event=\"onClick:save\"></button\n\t\t><button data-dojo-type=\"dijit/form/Button\" data-dojo-props=\"label: '${buttonCancel}', 'class': 'cancelButton'\"\n\t\t\tdata-dojo-attach-point=\"cancelButton\" data-dojo-attach-event=\"onClick:cancel\"></button\n\t></span\n></span>\n","dijit/ToolbarSeparator":function(){define("dijit/ToolbarSeparator",["dojo/_base/declare","dojo/dom","./_Widget","./_TemplatedMixin"],function(_8a7,dom,_8a8,_8a9){return _8a7("dijit.ToolbarSeparator",[_8a8,_8a9],{templateString:"<div class=\"dijitToolbarSeparator dijitInline\" role=\"presentation\"></div>",buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});});},"dijit/PopupMenuItem":function(){define("dijit/PopupMenuItem",["dojo/_base/declare","dojo/dom-style","dojo/query","./registry","./MenuItem","./hccss"],function(_8aa,_8ab,_8ac,_8ad,_8ae){return _8aa("dijit.PopupMenuItem",_8ae,{_fillContent:function(){if(this.srcNodeRef){var _8af=_8ac("*",this.srcNodeRef);this.inherited(arguments,[_8af[0]]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}this.inherited(arguments);if(!this.popup){var node=_8ac("[widgetId]",this.dropDownContainer)[0];this.popup=_8ad.byNode(node);}this.ownerDocumentBody.appendChild(this.popup.domNode);this.popup.startup();this.popup.domNode.style.display="none";if(this.arrowWrapper){_8ab.set(this.arrowWrapper,"visibility","");}this.focusNode.setAttribute("aria-haspopup","true");},destroyDescendants:function(_8b0){if(this.popup){if(!this.popup._destroyed){this.popup.destroyRecursive(_8b0);}delete this.popup;}this.inherited(arguments);}});});},"dijit/CheckedMenuItem":function(){require({cache:{"url:dijit/templates/CheckedMenuItem.html":"<tr class=\"dijitReset dijitMenuItem\" data-dojo-attach-point=\"focusNode\" role=\"menuitemcheckbox\" tabIndex=\"-1\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">&#10003;</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">&#160;</td>\n</tr>\n"}});define("dijit/CheckedMenuItem",["dojo/_base/declare","dojo/dom-class","./MenuItem","dojo/text!./templates/CheckedMenuItem.html","./hccss"],function(_8b1,_8b2,_8b3,_8b4){return _8b1("dijit.CheckedMenuItem",_8b3,{templateString:_8b4,checked:false,_setCheckedAttr:function(_8b5){_8b2.toggle(this.domNode,"dijitCheckedMenuItemChecked",_8b5);this.domNode.setAttribute("aria-checked",_8b5?"true":"false");this._set("checked",_8b5);},iconClass:"",onChange:function(){},_onClick:function(evt){if(!this.disabled){this.set("checked",!this.checked);this.onChange(this.checked);}this.onClick(evt);}});});},"url:dijit/templates/CheckedMenuItem.html":"<tr class=\"dijitReset dijitMenuItem\" data-dojo-attach-point=\"focusNode\" role=\"menuitemcheckbox\" tabIndex=\"-1\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">&#10003;</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">&#160;</td>\n</tr>\n","dijit/layout/AccordionContainer":function(){require({cache:{"url:dijit/layout/templates/AccordionButton.html":"<div data-dojo-attach-event='onclick:_onTitleClick' class='dijitAccordionTitle' role=\"presentation\">\n\t<div data-dojo-attach-point='titleNode,focusNode' data-dojo-attach-event='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' role=\"tab\" aria-expanded=\"false\"\n\t\t><span class='dijitInline dijitAccordionArrow' role=\"presentation\"></span\n\t\t><span class='arrowTextUp' role=\"presentation\">+</span\n\t\t><span class='arrowTextDown' role=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" data-dojo-attach-point='iconNode' style=\"vertical-align: middle\" role=\"presentation\"/>\n\t\t<span role=\"presentation\" data-dojo-attach-point='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"}});define("dijit/layout/AccordionContainer",["require","dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/_base/fx","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/topic","../focus","../_base/manager","dojo/ready","../_Widget","../_Container","../_TemplatedMixin","../_CssStateMixin","./StackContainer","./ContentPane","dojo/text!./templates/AccordionButton.html"],function(_8b6,_8b7,_8b8,_8b9,fx,dom,_8ba,_8bb,_8bc,_8bd,keys,lang,has,_8be,_8bf,_8c0,_8c1,_8c2,_8c3,_8c4,_8c5,_8c6,_8c7,_8c8){var _8c9=_8b8("dijit.layout._AccordionButton",[_8c2,_8c4,_8c5],{templateString:_8c8,label:"",_setLabelAttr:{node:"titleTextNode",type:"innerHTML"},title:"",_setTitleAttr:{node:"titleTextNode",type:"attribute",attribute:"title"},iconClassAttr:"",_setIconClassAttr:{node:"iconNode",type:"class"},baseClass:"dijitAccordionTitle",getParent:function(){return this.parent;},buildRendering:function(){this.inherited(arguments);var _8ca=this.id.replace(" ","_");_8ba.set(this.titleTextNode,"id",_8ca+"_title");this.focusNode.setAttribute("aria-labelledby",_8ba.get(this.titleTextNode,"id"));dom.setSelectable(this.domNode,false);},getTitleHeight:function(){return _8bd.getMarginSize(this.domNode).h;},_onTitleClick:function(){var _8cb=this.getParent();_8cb.selectChild(this.contentWidget,true);_8bf.focus(this.focusNode);},_onTitleKeyPress:function(evt){return this.getParent()._onKeyPress(evt,this.contentWidget);},_setSelectedAttr:function(_8cc){this._set("selected",_8cc);this.focusNode.setAttribute("aria-expanded",_8cc?"true":"false");this.focusNode.setAttribute("aria-selected",_8cc?"true":"false");this.focusNode.setAttribute("tabIndex",_8cc?"0":"-1");}});var _8cd=_8b8("dijit.layout._AccordionInnerContainer",[_8c2,_8c5],{baseClass:"dijitAccordionInnerContainer",isLayoutContainer:true,buildRendering:function(){this.domNode=_8bc.place("<div class='"+this.baseClass+"' role='presentation'>",this.contentWidget.domNode,"after");var _8ce=this.contentWidget,cls=lang.isString(this.buttonWidget)?lang.getObject(this.buttonWidget):this.buttonWidget;this.button=_8ce._buttonWidget=(new cls({contentWidget:_8ce,label:_8ce.title,title:_8ce.tooltip,dir:_8ce.dir,lang:_8ce.lang,textDir:_8ce.textDir,iconClass:_8ce.iconClass,id:_8ce.id+"_button",parent:this.parent})).placeAt(this.domNode);this.containerNode=_8bc.place("<div class='dijitAccordionChildWrapper' style='display:none'>",this.domNode);_8bc.place(this.contentWidget.domNode,this.containerNode);},postCreate:function(){this.inherited(arguments);var _8cf=this.button;this._contentWidgetWatches=[this.contentWidget.watch("title",lang.hitch(this,function(name,_8d0,_8d1){_8cf.set("label",_8d1);})),this.contentWidget.watch("tooltip",lang.hitch(this,function(name,_8d2,_8d3){_8cf.set("title",_8d3);})),this.contentWidget.watch("iconClass",lang.hitch(this,function(name,_8d4,_8d5){_8cf.set("iconClass",_8d5);}))];},_setSelectedAttr:function(_8d6){this._set("selected",_8d6);this.button.set("selected",_8d6);if(_8d6){var cw=this.contentWidget;if(cw.onSelected){cw.onSelected();}}},startup:function(){this.contentWidget.startup();},destroy:function(){this.button.destroyRecursive();_8b7.forEach(this._contentWidgetWatches||[],function(w){w.unwatch();});delete this.contentWidget._buttonWidget;delete this.contentWidget._wrapperWidget;this.inherited(arguments);},destroyDescendants:function(_8d7){this.contentWidget.destroyRecursive(_8d7);}});var _8d8=_8b8("dijit.layout.AccordionContainer",_8c6,{duration:_8c0.defaultDuration,buttonWidget:_8c9,baseClass:"dijitAccordionContainer",buildRendering:function(){this.inherited(arguments);this.domNode.style.overflow="hidden";this.domNode.setAttribute("role","tablist");},startup:function(){if(this._started){return;}this.inherited(arguments);if(this.selectedChildWidget){this.selectedChildWidget._wrapperWidget.set("selected",true);}},layout:function(){var _8d9=this.selectedChildWidget;if(!_8d9){return;}var _8da=_8d9._wrapperWidget.domNode,_8db=_8bd.getMarginExtents(_8da),_8dc=_8bd.getPadBorderExtents(_8da),_8dd=_8d9._wrapperWidget.containerNode,_8de=_8bd.getMarginExtents(_8dd),_8df=_8bd.getPadBorderExtents(_8dd),_8e0=this._contentBox;var _8e1=0;_8b7.forEach(this.getChildren(),function(_8e2){if(_8e2!=_8d9){_8e1+=_8bd.getMarginSize(_8e2._wrapperWidget.domNode).h;}});this._verticalSpace=_8e0.h-_8e1-_8db.h-_8dc.h-_8de.h-_8df.h-_8d9._buttonWidget.getTitleHeight();this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-_8db.w-_8dc.w-_8de.w-_8df.w};if(_8d9){_8d9.resize(this._containerContentBox);}},_setupChild:function(_8e3){_8e3._wrapperWidget=_8cd({contentWidget:_8e3,buttonWidget:this.buttonWidget,id:_8e3.id+"_wrapper",dir:_8e3.dir,lang:_8e3.lang,textDir:_8e3.textDir,parent:this});this.inherited(arguments);},addChild:function(_8e4,_8e5){if(this._started){var _8e6=this.containerNode;if(_8e5&&typeof _8e5=="number"){var _8e7=_8c2.prototype.getChildren.call(this);if(_8e7&&_8e7.length>=_8e5){_8e6=_8e7[_8e5-1].domNode;_8e5="after";}}_8bc.place(_8e4.domNode,_8e6,_8e5);if(!_8e4._started){_8e4.startup();}this._setupChild(_8e4);_8be.publish(this.id+"-addChild",_8e4,_8e5);this.layout();if(!this.selectedChildWidget){this.selectChild(_8e4);}}else{this.inherited(arguments);}},removeChild:function(_8e8){if(_8e8._wrapperWidget){_8bc.place(_8e8.domNode,_8e8._wrapperWidget.domNode,"after");_8e8._wrapperWidget.destroy();delete _8e8._wrapperWidget;}_8bb.remove(_8e8.domNode,"dijitHidden");this.inherited(arguments);},getChildren:function(){return _8b7.map(this.inherited(arguments),function(_8e9){return _8e9.declaredClass=="dijit.layout._AccordionInnerContainer"?_8e9.contentWidget:_8e9;},this);},destroy:function(){if(this._animation){this._animation.stop();}_8b7.forEach(this.getChildren(),function(_8ea){if(_8ea._wrapperWidget){_8ea._wrapperWidget.destroy();}else{_8ea.destroyRecursive();}});this.inherited(arguments);},_showChild:function(_8eb){_8eb._wrapperWidget.containerNode.style.display="block";return this.inherited(arguments);},_hideChild:function(_8ec){_8ec._wrapperWidget.containerNode.style.display="none";this.inherited(arguments);},_transition:function(_8ed,_8ee,_8ef){if(has("ie")<8){_8ef=false;}if(this._animation){this._animation.stop(true);delete this._animation;}var self=this;if(_8ed){_8ed._wrapperWidget.set("selected",true);var d=this._showChild(_8ed);if(this.doLayout&&_8ed.resize){_8ed.resize(this._containerContentBox);}}if(_8ee){_8ee._wrapperWidget.set("selected",false);if(!_8ef){this._hideChild(_8ee);}}if(_8ef){var _8f0=_8ed._wrapperWidget.containerNode,_8f1=_8ee._wrapperWidget.containerNode;var _8f2=_8ed._wrapperWidget.containerNode,_8f3=_8bd.getMarginExtents(_8f2),_8f4=_8bd.getPadBorderExtents(_8f2),_8f5=_8f3.h+_8f4.h;_8f1.style.height=(self._verticalSpace-_8f5)+"px";this._animation=new fx.Animation({node:_8f0,duration:this.duration,curve:[1,this._verticalSpace-_8f5-1],onAnimate:function(_8f6){_8f6=Math.floor(_8f6);_8f0.style.height=_8f6+"px";_8f1.style.height=(self._verticalSpace-_8f5-_8f6)+"px";},onEnd:function(){delete self._animation;_8f0.style.height="auto";_8ee._wrapperWidget.containerNode.style.display="none";_8f1.style.height="auto";self._hideChild(_8ee);}});this._animation.onStop=this._animation.onEnd;this._animation.play();}return d;},_onKeyPress:function(e,_8f7){if(this.disabled||e.altKey||!(_8f7||e.ctrlKey)){return;}var c=e.charOrCode;if((_8f7&&(c==keys.LEFT_ARROW||c==keys.UP_ARROW))||(e.ctrlKey&&c==keys.PAGE_UP)){this._adjacent(false)._buttonWidget._onTitleClick();_8b9.stop(e);}else{if((_8f7&&(c==keys.RIGHT_ARROW||c==keys.DOWN_ARROW))||(e.ctrlKey&&(c==keys.PAGE_DOWN||c==keys.TAB))){this._adjacent(true)._buttonWidget._onTitleClick();_8b9.stop(e);}}}});if(has("dijit-legacy-requires")){_8c1(0,function(){var _8f8=["dijit/layout/AccordionPane"];_8b6(_8f8);});}_8d8._InnerContainer=_8cd;_8d8._Button=_8c9;return _8d8;});},"dijit/layout/StackContainer":function(){define("dijit/layout/StackContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom-class","dojo/has","dojo/_base/lang","dojo/ready","dojo/topic","../registry","../_WidgetBase","./_LayoutWidget","dojo/i18n!../nls/common"],function(_8f9,_8fa,_8fb,_8fc,has,lang,_8fd,_8fe,_8ff,_900,_901){if(has("dijit-legacy-requires")){_8fd(0,function(){var _902=["dijit/layout/StackController"];require(_902);});}var _903=_8fb("dijit.layout.StackContainer",_901,{doLayout:true,persist:false,baseClass:"dijitStackContainer",buildRendering:function(){this.inherited(arguments);_8fc.add(this.domNode,"dijitLayoutContainer");this.containerNode.setAttribute("role","tabpanel");},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onkeypress",this._onKeyPress);},startup:function(){if(this._started){return;}var _904=this.getChildren();_8f9.forEach(_904,this._setupChild,this);if(this.persist){this.selectedChildWidget=_8ff.byId(_8fa(this.id+"_selectedChild"));}else{_8f9.some(_904,function(_905){if(_905.selected){this.selectedChildWidget=_905;}return _905.selected;},this);}var _906=this.selectedChildWidget;if(!_906&&_904[0]){_906=this.selectedChildWidget=_904[0];_906.selected=true;}_8fe.publish(this.id+"-startup",{children:_904,selected:_906});this.inherited(arguments);},resize:function(){if(!this._hasBeenShown){this._hasBeenShown=true;var _907=this.selectedChildWidget;if(_907){this._showChild(_907);}}this.inherited(arguments);},_setupChild:function(_908){this.inherited(arguments);_8fc.replace(_908.domNode,"dijitHidden","dijitVisible");_908.domNode.title="";},addChild:function(_909,_90a){this.inherited(arguments);if(this._started){_8fe.publish(this.id+"-addChild",_909,_90a);this.layout();if(!this.selectedChildWidget){this.selectChild(_909);}}},removeChild:function(page){this.inherited(arguments);if(this._started){_8fe.publish(this.id+"-removeChild",page);}if(this._descendantsBeingDestroyed){return;}if(this.selectedChildWidget===page){this.selectedChildWidget=undefined;if(this._started){var _90b=this.getChildren();if(_90b.length){this.selectChild(_90b[0]);}}}if(this._started){this.layout();}},selectChild:function(page,_90c){page=_8ff.byId(page);if(this.selectedChildWidget!=page){var d=this._transition(page,this.selectedChildWidget,_90c);this._set("selectedChildWidget",page);_8fe.publish(this.id+"-selectChild",page);if(this.persist){_8fa(this.id+"_selectedChild",this.selectedChildWidget.id);}}return d;},_transition:function(_90d,_90e){if(_90e){this._hideChild(_90e);}var d=this._showChild(_90d);if(_90d.resize){if(this.doLayout){_90d.resize(this._containerContentBox||this._contentBox);}else{_90d.resize();}}return d;},_adjacent:function(_90f){var _910=this.getChildren();var _911=_8f9.indexOf(_910,this.selectedChildWidget);_911+=_90f?1:_910.length-1;return _910[_911%_910.length];},forward:function(){return this.selectChild(this._adjacent(true),true);},back:function(){return this.selectChild(this._adjacent(false),true);},_onKeyPress:function(e){_8fe.publish(this.id+"-containerKeyPress",{e:e,page:this});},layout:function(){var _912=this.selectedChildWidget;if(_912&&_912.resize){if(this.doLayout){_912.resize(this._containerContentBox||this._contentBox);}else{_912.resize();}}},_showChild:function(page){var _913=this.getChildren();page.isFirstChild=(page==_913[0]);page.isLastChild=(page==_913[_913.length-1]);page._set("selected",true);_8fc.replace(page.domNode,"dijitVisible","dijitHidden");return (page._onShow&&page._onShow())||true;},_hideChild:function(page){page._set("selected",false);_8fc.replace(page.domNode,"dijitHidden","dijitVisible");page.onHide&&page.onHide();},closeChild:function(page){var _914=page.onClose(this,page);if(_914){this.removeChild(page);page.destroyRecursive();}},destroyDescendants:function(_915){this._descendantsBeingDestroyed=true;this.selectedChildWidget=undefined;_8f9.forEach(this.getChildren(),function(_916){if(!_915){this.removeChild(_916);}_916.destroyRecursive(_915);},this);this._descendantsBeingDestroyed=false;}});_903.ChildWidgetProperties={selected:false,disabled:false,closable:false,iconClass:"dijitNoIcon",showTitle:true};lang.extend(_900,_903.ChildWidgetProperties);return _903;});},"dojo/cookie":function(){define("dojo/cookie",["./_base/kernel","./regexp"],function(dojo,_917){dojo.cookie=function(name,_918,_919){var c=document.cookie,ret;if(arguments.length==1){var _91a=c.match(new RegExp("(?:^|; )"+_917.escapeString(name)+"=([^;]*)"));ret=_91a?decodeURIComponent(_91a[1]):undefined;}else{_919=_919||{};var exp=_919.expires;if(typeof exp=="number"){var d=new Date();d.setTime(d.getTime()+exp*24*60*60*1000);exp=_919.expires=d;}if(exp&&exp.toUTCString){_919.expires=exp.toUTCString();}_918=encodeURIComponent(_918);var _91b=name+"="+_918,_91c;for(_91c in _919){_91b+="; "+_91c;var _91d=_919[_91c];if(_91d!==true){_91b+="="+_91d;}}document.cookie=_91b;}return ret;};dojo.cookie.isSupported=function(){if(!("cookieEnabled" in navigator)){this("__djCookieTest__","CookiesAllowed");navigator.cookieEnabled=this("__djCookieTest__")=="CookiesAllowed";if(navigator.cookieEnabled){this("__djCookieTest__","",{expires:-1});}}return navigator.cookieEnabled;};return dojo.cookie;});},"url:dijit/layout/templates/AccordionButton.html":"<div data-dojo-attach-event='onclick:_onTitleClick' class='dijitAccordionTitle' role=\"presentation\">\n\t<div data-dojo-attach-point='titleNode,focusNode' data-dojo-attach-event='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' role=\"tab\" aria-expanded=\"false\"\n\t\t><span class='dijitInline dijitAccordionArrow' role=\"presentation\"></span\n\t\t><span class='arrowTextUp' role=\"presentation\">+</span\n\t\t><span class='arrowTextDown' role=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" data-dojo-attach-point='iconNode' style=\"vertical-align: middle\" role=\"presentation\"/>\n\t\t<span role=\"presentation\" data-dojo-attach-point='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n","dijit/layout/AccordionPane":function(){define("dijit/layout/AccordionPane",["dojo/_base/declare","dojo/_base/kernel","./ContentPane"],function(_91e,_91f,_920){return _91e("dijit.layout.AccordionPane",_920,{constructor:function(){_91f.deprecated("dijit.layout.AccordionPane deprecated, use ContentPane instead","","2.0");},onSelected:function(){}});});},"dijit/layout/BorderContainer":function(){define("dijit/layout/BorderContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","dojo/touch","../_WidgetBase","../_Widget","../_TemplatedMixin","./_LayoutWidget","./utils"],function(_921,_922,_923,_924,_925,_926,_927,_928,keys,lang,on,_929,_92a,_92b,_92c,_92d,_92e){var _92f=_923("dijit.layout._Splitter",[_92b,_92c],{live:true,templateString:"<div class=\"dijitSplitter\" data-dojo-attach-event=\"onkeypress:_onKeyPress,press:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse\" tabIndex=\"0\" role=\"separator\"><div class=\"dijitSplitterThumb\"></div></div>",constructor:function(){this._handlers=[];},postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);this._factor=/top|left/.test(this.region)?1:-1;this._cookieName=this.container.id+"_"+this.region;},buildRendering:function(){this.inherited(arguments);_924.add(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V"));if(this.container.persist){var _930=_922(this._cookieName);if(_930){this.child.domNode.style[this.horizontal?"height":"width"]=_930;}}},_computeMaxSize:function(){var dim=this.horizontal?"h":"w",_931=_926.getMarginBox(this.child.domNode)[dim],_932=_921.filter(this.container.getChildren(),function(_933){return _933.region=="center";})[0],_934=_926.getMarginBox(_932.domNode)[dim];return Math.min(this.child.maxSize,_931+_934);},_startDrag:function(e){if(!this.cover){this.cover=_925.place("<div class=dijitSplitterCover></div>",this.child.domNode,"after");}_924.add(this.cover,"dijitSplitterCoverActive");if(this.fake){_925.destroy(this.fake);}if(!(this._resize=this.live)){(this.fake=this.domNode.cloneNode(true)).removeAttribute("id");_924.add(this.domNode,"dijitSplitterShadow");_925.place(this.fake,this.domNode,"after");}_924.add(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active");if(this.fake){_924.remove(this.fake,"dijitSplitterHover dijitSplitter"+(this.horizontal?"H":"V")+"Hover");}var _935=this._factor,_936=this.horizontal,axis=_936?"pageY":"pageX",_937=e[axis],_938=this.domNode.style,dim=_936?"h":"w",_939=_926.getMarginBox(this.child.domNode)[dim],max=this._computeMaxSize(),min=this.child.minSize||20,_93a=this.region,_93b=_93a=="top"||_93a=="bottom"?"top":"left",_93c=parseInt(_938[_93b],10),_93d=this._resize,_93e=lang.hitch(this.container,"_layoutChildren",this.child.id),de=this.ownerDocument;this._handlers=this._handlers.concat([on(de,_929.move,this._drag=function(e,_93f){var _940=e[axis]-_937,_941=_935*_940+_939,_942=Math.max(Math.min(_941,max),min);if(_93d||_93f){_93e(_942);}_938[_93b]=_940+_93c+_935*(_942-_941)+"px";}),on(de,"dragstart",_928.stop),on(this.ownerDocumentBody,"selectstart",_928.stop),on(de,_929.release,lang.hitch(this,"_stopDrag"))]);_928.stop(e);},_onMouse:function(e){var o=(e.type=="mouseover"||e.type=="mouseenter");_924.toggle(this.domNode,"dijitSplitterHover",o);_924.toggle(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover",o);},_stopDrag:function(e){try{if(this.cover){_924.remove(this.cover,"dijitSplitterCoverActive");}if(this.fake){_925.destroy(this.fake);}_924.remove(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active dijitSplitterShadow");this._drag(e);this._drag(e,true);}finally{this._cleanupHandlers();delete this._drag;}if(this.container.persist){_922(this._cookieName,this.child.domNode.style[this.horizontal?"height":"width"],{expires:365});}},_cleanupHandlers:function(){var h;while(h=this._handlers.pop()){h.remove();}},_onKeyPress:function(e){this._resize=true;var _943=this.horizontal;var tick=1;switch(e.charOrCode){case _943?keys.UP_ARROW:keys.LEFT_ARROW:tick*=-1;case _943?keys.DOWN_ARROW:keys.RIGHT_ARROW:break;default:return;}var _944=_926.getMarginSize(this.child.domNode)[_943?"h":"w"]+this._factor*tick;this.container._layoutChildren(this.child.id,Math.max(Math.min(_944,this._computeMaxSize()),this.child.minSize));_928.stop(e);},destroy:function(){this._cleanupHandlers();delete this.child;delete this.container;delete this.cover;delete this.fake;this.inherited(arguments);}});var _945=_923("dijit.layout._Gutter",[_92b,_92c],{templateString:"<div class=\"dijitGutter\" role=\"presentation\"></div>",postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);},buildRendering:function(){this.inherited(arguments);_924.add(this.domNode,"dijitGutter"+(this.horizontal?"H":"V"));}});var _946=_923("dijit.layout.BorderContainer",_92d,{design:"headline",gutters:true,liveSplitters:true,persist:false,baseClass:"dijitBorderContainer",_splitterClass:_92f,postMixInProperties:function(){if(!this.gutters){this.baseClass+="NoGutter";}this.inherited(arguments);},startup:function(){if(this._started){return;}_921.forEach(this.getChildren(),this._setupChild,this);this.inherited(arguments);},_setupChild:function(_947){var _948=_947.region;if(_948){this.inherited(arguments);_924.add(_947.domNode,this.baseClass+"Pane");var ltr=this.isLeftToRight();if(_948=="leading"){_948=ltr?"left":"right";}if(_948=="trailing"){_948=ltr?"right":"left";}if(_948!="center"&&(_947.splitter||this.gutters)&&!_947._splitterWidget){var _949=_947.splitter?this._splitterClass:_945;if(lang.isString(_949)){_949=lang.getObject(_949);}var _94a=new _949({id:_947.id+"_splitter",container:this,child:_947,region:_948,live:this.liveSplitters});_94a.isSplitter=true;_947._splitterWidget=_94a;_925.place(_94a.domNode,_947.domNode,"after");_94a.startup();}_947.region=_948;}},layout:function(){this._layoutChildren();},addChild:function(_94b,_94c){this.inherited(arguments);if(this._started){this.layout();}},removeChild:function(_94d){var _94e=_94d.region;var _94f=_94d._splitterWidget;if(_94f){_94f.destroy();delete _94d._splitterWidget;}this.inherited(arguments);if(this._started){this._layoutChildren();}_924.remove(_94d.domNode,this.baseClass+"Pane");_927.set(_94d.domNode,{top:"auto",bottom:"auto",left:"auto",right:"auto",position:"static"});_927.set(_94d.domNode,_94e=="top"||_94e=="bottom"?"width":"height","auto");},getChildren:function(){return _921.filter(this.inherited(arguments),function(_950){return !_950.isSplitter;});},getSplitter:function(_951){return _921.filter(this.getChildren(),function(_952){return _952.region==_951;})[0]._splitterWidget;},resize:function(_953,_954){if(!this.cs||!this.pe){var node=this.domNode;this.cs=_927.getComputedStyle(node);this.pe=_926.getPadExtents(node,this.cs);this.pe.r=_927.toPixelValue(node,this.cs.paddingRight);this.pe.b=_927.toPixelValue(node,this.cs.paddingBottom);_927.set(node,"padding","0px");}this.inherited(arguments);},_layoutChildren:function(_955,_956){if(!this._borderBox||!this._borderBox.h){return;}var _957=_921.map(this.getChildren(),function(_958,idx){return {pane:_958,weight:[_958.region=="center"?Infinity:0,_958.layoutPriority,(this.design=="sidebar"?1:-1)*(/top|bottom/.test(_958.region)?1:-1),idx]};},this);_957.sort(function(a,b){var aw=a.weight,bw=b.weight;for(var i=0;i<aw.length;i++){if(aw[i]!=bw[i]){return aw[i]-bw[i];}}return 0;});var _959=[];_921.forEach(_957,function(_95a){var pane=_95a.pane;_959.push(pane);if(pane._splitterWidget){_959.push(pane._splitterWidget);}});var dim={l:this.pe.l,t:this.pe.t,w:this._borderBox.w-this.pe.w,h:this._borderBox.h-this.pe.h};_92e.layoutChildren(this.domNode,dim,_959,_955,_956);},destroyRecursive:function(){_921.forEach(this.getChildren(),function(_95b){var _95c=_95b._splitterWidget;if(_95c){_95c.destroy();}delete _95b._splitterWidget;});this.inherited(arguments);}});_946.ChildWidgetProperties={region:"",layoutPriority:0,splitter:false,minSize:0,maxSize:Infinity};lang.extend(_92a,_946.ChildWidgetProperties);_946._Splitter=_92f;_946._Gutter=_945;return _946;});},"dijit/layout/TabContainer":function(){define("dijit/layout/TabContainer",["dojo/_base/lang","dojo/_base/declare","./_TabContainerBase","./TabController","./ScrollingTabController"],function(lang,_95d,_95e,_95f,_960){return _95d("dijit.layout.TabContainer",_95e,{useMenu:true,useSlider:true,controllerWidget:"",_makeController:function(_961){var cls=this.baseClass+"-tabs"+(this.doLayout?"":" dijitTabNoLayout"),_95f=typeof this.controllerWidget=="string"?lang.getObject(this.controllerWidget):this.controllerWidget;return new _95f({id:this.id+"_tablist",ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir,tabPosition:this.tabPosition,doLayout:this.doLayout,containerId:this.id,"class":cls,nested:this.nested,useMenu:this.useMenu,useSlider:this.useSlider,tabStripClass:this.tabStrip?this.baseClass+(this.tabStrip?"":"No")+"Strip":null},_961);},postMixInProperties:function(){this.inherited(arguments);if(!this.controllerWidget){this.controllerWidget=(this.tabPosition=="top"||this.tabPosition=="bottom")&&!this.nested?_960:_95f;}}});});},"dijit/layout/_TabContainerBase":function(){require({cache:{"url:dijit/layout/templates/TabContainer.html":"<div class=\"dijitTabContainer\">\n\t<div class=\"dijitTabListWrapper\" data-dojo-attach-point=\"tablistNode\"></div>\n\t<div data-dojo-attach-point=\"tablistSpacer\" class=\"dijitTabSpacer ${baseClass}-spacer\"></div>\n\t<div class=\"dijitTabPaneWrapper ${baseClass}-container\" data-dojo-attach-point=\"containerNode\"></div>\n</div>\n"}});define("dijit/layout/_TabContainerBase",["dojo/text!./templates/TabContainer.html","./StackContainer","./utils","../_TemplatedMixin","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style"],function(_962,_963,_964,_965,_966,_967,_968,_969){return _966("dijit.layout._TabContainerBase",[_963,_965],{tabPosition:"top",baseClass:"dijitTabContainer",tabStrip:false,nested:false,templateString:_962,postMixInProperties:function(){this.baseClass+=this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"");this.srcNodeRef&&_969.set(this.srcNodeRef,"visibility","hidden");this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);this.tablist=this._makeController(this.tablistNode);if(!this.doLayout){_967.add(this.domNode,"dijitTabContainerNoLayout");}if(this.nested){_967.add(this.domNode,"dijitTabContainerNested");_967.add(this.tablist.containerNode,"dijitTabContainerTabListNested");_967.add(this.tablistSpacer,"dijitTabContainerSpacerNested");_967.add(this.containerNode,"dijitTabPaneWrapperNested");}else{_967.add(this.domNode,"tabStrip-"+(this.tabStrip?"enabled":"disabled"));}},_setupChild:function(tab){_967.add(tab.domNode,"dijitTabPane");this.inherited(arguments);},startup:function(){if(this._started){return;}this.tablist.startup();this.inherited(arguments);},layout:function(){if(!this._contentBox||typeof (this._contentBox.l)=="undefined"){return;}var sc=this.selectedChildWidget;if(this.doLayout){var _96a=this.tabPosition.replace(/-h/,"");this.tablist.layoutAlign=_96a;var _96b=[this.tablist,{domNode:this.tablistSpacer,layoutAlign:_96a},{domNode:this.containerNode,layoutAlign:"client"}];_964.layoutChildren(this.domNode,this._contentBox,_96b);this._containerContentBox=_964.marginBox2contentBox(this.containerNode,_96b[2]);if(sc&&sc.resize){sc.resize(this._containerContentBox);}}else{if(this.tablist.resize){var s=this.tablist.domNode.style;s.width="0";var _96c=_968.getContentBox(this.domNode).w;s.width="";this.tablist.resize({w:_96c});}if(sc&&sc.resize){sc.resize();}}},destroy:function(){if(this.tablist){this.tablist.destroy();}this.inherited(arguments);}});});},"url:dijit/layout/templates/TabContainer.html":"<div class=\"dijitTabContainer\">\n\t<div class=\"dijitTabListWrapper\" data-dojo-attach-point=\"tablistNode\"></div>\n\t<div data-dojo-attach-point=\"tablistSpacer\" class=\"dijitTabSpacer ${baseClass}-spacer\"></div>\n\t<div class=\"dijitTabPaneWrapper ${baseClass}-container\" data-dojo-attach-point=\"containerNode\"></div>\n</div>\n","dijit/layout/TabController":function(){require({cache:{"url:dijit/layout/templates/_TabButton.html":"<div role=\"presentation\" data-dojo-attach-point=\"titleNode,innerDiv,tabContent\" class=\"dijitTabInner dijitTabContent\">\n\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitTabButtonIcon\" data-dojo-attach-point='iconNode'/>\n\t<span data-dojo-attach-point='containerNode,focusNode' class='tabLabel'></span>\n\t<span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" data-dojo-attach-point='closeNode'\n\t\t role=\"presentation\">\n\t\t<span data-dojo-attach-point='closeText' class='dijitTabCloseText'>[x]</span\n\t\t\t\t></span>\n</div>\n"}});define("dijit/layout/TabController",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/i18n","dojo/_base/lang","./StackController","../registry","../Menu","../MenuItem","dojo/text!./templates/_TabButton.html","dojo/i18n!../nls/common"],function(_96d,dom,_96e,_96f,i18n,lang,_970,_971,Menu,_972,_973){var _974=_96d("dijit.layout._TabButton",_970.StackButton,{baseClass:"dijitTab",cssStateNodes:{closeNode:"dijitTabCloseButton"},templateString:_973,scrollOnFocus:false,buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.containerNode,false);},startup:function(){this.inherited(arguments);var n=this.domNode;this.defer(function(){n.className=n.className;},1);},_setCloseButtonAttr:function(disp){this._set("closeButton",disp);_96f.toggle(this.domNode,"dijitClosable",disp);this.closeNode.style.display=disp?"":"none";if(disp){var _975=i18n.getLocalization("dijit","common");if(this.closeNode){_96e.set(this.closeNode,"title",_975.itemClose);}}},_setDisabledAttr:function(_976){this.inherited(arguments);if(this.closeNode){if(_976){_96e.remove(this.closeNode,"title");}else{var _977=i18n.getLocalization("dijit","common");_96e.set(this.closeNode,"title",_977.itemClose);}}},_setLabelAttr:function(_978){this.inherited(arguments);if(!this.showLabel&&!this.params.title){this.iconNode.alt=lang.trim(this.containerNode.innerText||this.containerNode.textContent||"");}}});var _979=_96d("dijit.layout.TabController",_970,{baseClass:"dijitTabController",templateString:"<div role='tablist' data-dojo-attach-event='onkeypress:onkeypress'></div>",tabPosition:"top",buttonWidget:_974,buttonWidgetCloseClass:"dijitTabCloseButton",postCreate:function(){this.inherited(arguments);var _97a=new Menu({id:this.id+"_Menu",ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir,targetNodeIds:[this.domNode],selector:function(node){return _96f.contains(node,"dijitClosable")&&!_96f.contains(node,"dijitTabDisabled");}});this.own(_97a);var _97b=i18n.getLocalization("dijit","common"),_97c=this;_97a.addChild(new _972({label:_97b.itemClose,ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir,onClick:function(evt){var _97d=_971.byNode(this.getParent().currentTarget);_97c.onCloseButtonClick(_97d.page);}}));}});_979.TabButton=_974;return _979;});},"dijit/layout/StackController":function(){define("dijit/layout/StackController",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/on","../focus","../registry","../_Widget","../_TemplatedMixin","../_Container","../form/ToggleButton","dojo/i18n!../nls/common"],function(_97e,_97f,_980,_981,keys,lang,on,_982,_983,_984,_985,_986,_987){var _988=_97f("dijit.layout._StackButton",_987,{tabIndex:"-1",closeButton:false,_aria_attr:"aria-selected",buildRendering:function(evt){this.inherited(arguments);(this.focusNode||this.domNode).setAttribute("role","tab");}});var _989=_97f("dijit.layout.StackController",[_984,_985,_986],{baseClass:"dijitStackController",templateString:"<span role='tablist' data-dojo-attach-event='onkeypress'></span>",containerId:"",buttonWidget:_988,buttonWidgetCloseClass:"dijitStackCloseButton",constructor:function(_98a){this.pane2button={};},postCreate:function(){this.inherited(arguments);this.subscribe(this.containerId+"-startup","onStartup");this.subscribe(this.containerId+"-addChild","onAddChild");this.subscribe(this.containerId+"-removeChild","onRemoveChild");this.subscribe(this.containerId+"-selectChild","onSelectChild");this.subscribe(this.containerId+"-containerKeyPress","onContainerKeyPress");this.connect(this.containerNode,"click",function(evt){var _98b=_983.getEnclosingWidget(evt.target);if(_98b!=this.containerNode&&!_98b.disabled&&_98b.page){for(var _98c=evt.target;_98c!==this.containerNode;_98c=_98c.parentNode){if(_980.contains(_98c,this.buttonWidgetCloseClass)){this.onCloseButtonClick(_98b.page);break;}else{if(_98c==_98b.domNode){this.onButtonClick(_98b.page);break;}}}}});},onStartup:function(info){_97e.forEach(info.children,this.onAddChild,this);if(info.selected){this.onSelectChild(info.selected);}var _98d=_983.byId(this.containerId).containerNode,_98e=this.pane2button,_98f={"title":"label","showtitle":"showLabel","iconclass":"iconClass","closable":"closeButton","tooltip":"title","disabled":"disabled"},_990=function(attr,_991){return on(_98d,"attrmodified-"+attr,function(evt){var _992=_98e[evt.detail&&evt.detail.widget&&evt.detail.widget.id];if(_992){_992.set(_991,evt.detail.newValue);}});};for(var attr in _98f){this.own(_990(attr,_98f[attr]));}},destroy:function(){for(var pane in this.pane2button){this.onRemoveChild(_983.byId(pane));}this.inherited(arguments);},onAddChild:function(page,_993){var Cls=lang.isString(this.buttonWidget)?lang.getObject(this.buttonWidget):this.buttonWidget;var _994=new Cls({id:this.id+"_"+page.id,name:this.id+"_"+page.id,label:page.title,disabled:page.disabled,ownerDocument:this.ownerDocument,dir:page.dir,lang:page.lang,textDir:page.textDir,showLabel:page.showTitle,iconClass:page.iconClass,closeButton:page.closable,title:page.tooltip,page:page});this.addChild(_994,_993);this.pane2button[page.id]=_994;page.controlButton=_994;if(!this._currentChild){this.onSelectChild(page);}},onRemoveChild:function(page){if(this._currentChild===page){this._currentChild=null;}var _995=this.pane2button[page.id];if(_995){this.removeChild(_995);delete this.pane2button[page.id];_995.destroy();}delete page.controlButton;},onSelectChild:function(page){if(!page){return;}if(this._currentChild){var _996=this.pane2button[this._currentChild.id];_996.set("checked",false);_996.focusNode.setAttribute("tabIndex","-1");}var _997=this.pane2button[page.id];_997.set("checked",true);this._currentChild=page;_997.focusNode.setAttribute("tabIndex","0");var _998=_983.byId(this.containerId);_998.containerNode.setAttribute("aria-labelledby",_997.id);},onButtonClick:function(page){var _999=this.pane2button[page.id];_982.focus(_999.focusNode);if(this._currentChild&&this._currentChild.id===page.id){_999.set("checked",true);}var _99a=_983.byId(this.containerId);_99a.selectChild(page);},onCloseButtonClick:function(page){var _99b=_983.byId(this.containerId);_99b.closeChild(page);if(this._currentChild){var b=this.pane2button[this._currentChild.id];if(b){_982.focus(b.focusNode||b.domNode);}}},adjacent:function(_99c){if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition))){_99c=!_99c;}var _99d=this.getChildren();var idx=_97e.indexOf(_99d,this.pane2button[this._currentChild.id]),_99e=_99d[idx];var _99f;do{idx=(idx+(_99c?1:_99d.length-1))%_99d.length;_99f=_99d[idx];}while(_99f.disabled&&_99f!=_99e);return _99f;},onkeypress:function(e){if(this.disabled||e.altKey){return;}var _9a0=null;if(e.ctrlKey||!e._djpage){switch(e.charOrCode){case keys.LEFT_ARROW:case keys.UP_ARROW:if(!e._djpage){_9a0=false;}break;case keys.PAGE_UP:if(e.ctrlKey){_9a0=false;}break;case keys.RIGHT_ARROW:case keys.DOWN_ARROW:if(!e._djpage){_9a0=true;}break;case keys.PAGE_DOWN:if(e.ctrlKey){_9a0=true;}break;case keys.HOME:var _9a1=this.getChildren();for(var idx=0;idx<_9a1.length;idx++){var _9a2=_9a1[idx];if(!_9a2.disabled){this.onButtonClick(_9a2.page);break;}}_981.stop(e);break;case keys.END:var _9a1=this.getChildren();for(var idx=_9a1.length-1;idx>=0;idx--){var _9a2=_9a1[idx];if(!_9a2.disabled){this.onButtonClick(_9a2.page);break;}}_981.stop(e);break;case keys.DELETE:if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}_981.stop(e);break;default:if(e.ctrlKey){if(e.charOrCode===keys.TAB){this.onButtonClick(this.adjacent(!e.shiftKey).page);_981.stop(e);}else{if(e.charOrCode=="w"){if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}_981.stop(e);}}}}if(_9a0!==null){this.onButtonClick(this.adjacent(_9a0).page);_981.stop(e);}}},onContainerKeyPress:function(info){info.e._djpage=info.page;this.onkeypress(info.e);}});_989.StackButton=_988;return _989;});},"url:dijit/layout/templates/_TabButton.html":"<div role=\"presentation\" data-dojo-attach-point=\"titleNode,innerDiv,tabContent\" class=\"dijitTabInner dijitTabContent\">\n\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitTabButtonIcon\" data-dojo-attach-point='iconNode'/>\n\t<span data-dojo-attach-point='containerNode,focusNode' class='tabLabel'></span>\n\t<span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" data-dojo-attach-point='closeNode'\n\t\t role=\"presentation\">\n\t\t<span data-dojo-attach-point='closeText' class='dijitTabCloseText'>[x]</span\n\t\t\t\t></span>\n</div>\n","dijit/layout/ScrollingTabController":function(){require({cache:{"url:dijit/layout/templates/ScrollingTabController.html":"<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerMenuButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\"\n\t\t\tdata-dojo-props=\"containerId: '${containerId}', iconClass: 'dijitTabStripMenuIcon',\n\t\t\t\t\tdropDownPosition: ['below-alt', 'above-alt']\"\n\t\t\tdata-dojo-attach-point=\"_menuBtn\" showLabel=\"false\" title=\"\">&#9660;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideLeftIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_leftBtn\" data-dojo-attach-event=\"onClick: doSlideLeft\">&#9664;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideRightIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_rightBtn\" data-dojo-attach-event=\"onClick: doSlideRight\">&#9654;</div>\n\t<div class='dijitTabListWrapper' data-dojo-attach-point='tablistWrapper'>\n\t\t<div role='tablist' data-dojo-attach-event='onkeypress:onkeypress'\n\t\t\t\tdata-dojo-attach-point='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>","url:dijit/layout/templates/_ScrollingTabControllerButton.html":"<div data-dojo-attach-event=\"onclick:_onClick\" class=\"dijitTabInnerDiv dijitTabContent dijitButtonContents\" data-dojo-attach-point=\"focusNode\">\n\t<img role=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t<span data-dojo-attach-point=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n</div>"}});define("dijit/layout/ScrollingTabController",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/fx","dojo/_base/lang","dojo/on","dojo/query","dojo/sniff","../registry","dojo/text!./templates/ScrollingTabController.html","dojo/text!./templates/_ScrollingTabControllerButton.html","./TabController","./utils","../_WidgetsInTemplateMixin","../Menu","../MenuItem","../form/Button","../_HasDropDown","dojo/NodeList-dom"],function(_9a3,_9a4,_9a5,_9a6,_9a7,fx,lang,on,_9a8,has,_9a9,_9aa,_9ab,_9ac,_9ad,_9ae,Menu,_9af,_9b0,_9b1){var _9b2=_9a4("dijit.layout.ScrollingTabController",[_9ac,_9ae],{baseClass:"dijitTabController dijitScrollingTabController",templateString:_9aa,useMenu:true,useSlider:true,tabStripClass:"",widgetsInTemplate:true,_minScroll:5,_setClassAttr:{node:"containerNode",type:"class"},buildRendering:function(){this.inherited(arguments);var n=this.domNode;this.scrollNode=this.tablistWrapper;this._initButtons();if(!this.tabStripClass){this.tabStripClass="dijitTabContainer"+this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"")+"None";_9a5.add(n,"tabStrip-disabled");}_9a5.add(this.tablistWrapper,this.tabStripClass);},onStartup:function(){this.inherited(arguments);_9a7.set(this.domNode,"visibility","");this._postStartup=true;this.own(on(this.containerNode,"attrmodified-label, attrmodified-iconclass",lang.hitch(this,function(evt){if(this._dim){this.resize(this._dim);}})));},onAddChild:function(page,_9b3){this.inherited(arguments);_9a7.set(this.containerNode,"width",(_9a7.get(this.containerNode,"width")+200)+"px");},onRemoveChild:function(page,_9b4){var _9b5=this.pane2button[page.id];if(this._selectedTab===_9b5.domNode){this._selectedTab=null;}this.inherited(arguments);},_initButtons:function(){this._btnWidth=0;this._buttons=_9a8("> .tabStripButton",this.domNode).filter(function(btn){if((this.useMenu&&btn==this._menuBtn.domNode)||(this.useSlider&&(btn==this._rightBtn.domNode||btn==this._leftBtn.domNode))){this._btnWidth+=_9a6.getMarginSize(btn).w;return true;}else{_9a7.set(btn,"display","none");return false;}},this);},_getTabsWidth:function(){var _9b6=this.getChildren();if(_9b6.length){var _9b7=_9b6[this.isLeftToRight()?0:_9b6.length-1].domNode,_9b8=_9b6[this.isLeftToRight()?_9b6.length-1:0].domNode;return _9b8.offsetLeft+_9b8.offsetWidth-_9b7.offsetLeft;}else{return 0;}},_enableBtn:function(_9b9){var _9ba=this._getTabsWidth();_9b9=_9b9||_9a7.get(this.scrollNode,"width");return _9ba>0&&_9b9<_9ba;},resize:function(dim){this._dim=dim;this.scrollNode.style.height="auto";var cb=this._contentBox=_9ad.marginBox2contentBox(this.domNode,{h:0,w:dim.w});cb.h=this.scrollNode.offsetHeight;_9a6.setContentSize(this.domNode,cb);var _9bb=this._enableBtn(this._contentBox.w);this._buttons.style("display",_9bb?"":"none");this._leftBtn.layoutAlign="left";this._rightBtn.layoutAlign="right";this._menuBtn.layoutAlign=this.isLeftToRight()?"right":"left";_9ad.layoutChildren(this.domNode,this._contentBox,[this._menuBtn,this._leftBtn,this._rightBtn,{domNode:this.scrollNode,layoutAlign:"client"}]);if(this._selectedTab){if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}this.scrollNode.scrollLeft=this._convertToScrollLeft(this._getScrollForSelectedTab());}this._setButtonClass(this._getScroll());this._postResize=true;return {h:this._contentBox.h,w:dim.w};},_getScroll:function(){return (this.isLeftToRight()||has("ie")<8||(has("ie")&&has("quirks"))||has("webkit"))?this.scrollNode.scrollLeft:_9a7.get(this.containerNode,"width")-_9a7.get(this.scrollNode,"width")+(has("ie")>=8?-1:1)*this.scrollNode.scrollLeft;},_convertToScrollLeft:function(val){if(this.isLeftToRight()||has("ie")<8||(has("ie")&&has("quirks"))||has("webkit")){return val;}else{var _9bc=_9a7.get(this.containerNode,"width")-_9a7.get(this.scrollNode,"width");return (has("ie")>=8?-1:1)*(val-_9bc);}},onSelectChild:function(page){var tab=this.pane2button[page.id];if(!tab||!page){return;}var node=tab.domNode;if(node!=this._selectedTab){this._selectedTab=node;if(this._postResize){var sl=this._getScroll();if(sl>node.offsetLeft||sl+_9a7.get(this.scrollNode,"width")<node.offsetLeft+_9a7.get(node,"width")){this.createSmoothScroll().play();}}}this.inherited(arguments);},_getScrollBounds:function(){var _9bd=this.getChildren(),_9be=_9a7.get(this.scrollNode,"width"),_9bf=_9a7.get(this.containerNode,"width"),_9c0=_9bf-_9be,_9c1=this._getTabsWidth();if(_9bd.length&&_9c1>_9be){return {min:this.isLeftToRight()?0:_9bd[_9bd.length-1].domNode.offsetLeft,max:this.isLeftToRight()?(_9bd[_9bd.length-1].domNode.offsetLeft+_9bd[_9bd.length-1].domNode.offsetWidth)-_9be:_9c0};}else{var _9c2=this.isLeftToRight()?0:_9c0;return {min:_9c2,max:_9c2};}},_getScrollForSelectedTab:function(){var w=this.scrollNode,n=this._selectedTab,_9c3=_9a7.get(this.scrollNode,"width"),_9c4=this._getScrollBounds();var pos=(n.offsetLeft+_9a7.get(n,"width")/2)-_9c3/2;pos=Math.min(Math.max(pos,_9c4.min),_9c4.max);return pos;},createSmoothScroll:function(x){if(arguments.length>0){var _9c5=this._getScrollBounds();x=Math.min(Math.max(x,_9c5.min),_9c5.max);}else{x=this._getScrollForSelectedTab();}if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}var self=this,w=this.scrollNode,anim=new fx.Animation({beforeBegin:function(){if(this.curve){delete this.curve;}var oldS=w.scrollLeft,newS=self._convertToScrollLeft(x);anim.curve=new fx._Line(oldS,newS);},onAnimate:function(val){w.scrollLeft=val;}});this._anim=anim;this._setButtonClass(x);return anim;},_getBtnNode:function(e){var n=e.target;while(n&&!_9a5.contains(n,"tabStripButton")){n=n.parentNode;}return n;},doSlideRight:function(e){this.doSlide(1,this._getBtnNode(e));},doSlideLeft:function(e){this.doSlide(-1,this._getBtnNode(e));},doSlide:function(_9c6,node){if(node&&_9a5.contains(node,"dijitTabDisabled")){return;}var _9c7=_9a7.get(this.scrollNode,"width");var d=(_9c7*0.75)*_9c6;var to=this._getScroll()+d;this._setButtonClass(to);this.createSmoothScroll(to).play();},_setButtonClass:function(_9c8){var _9c9=this._getScrollBounds();this._leftBtn.set("disabled",_9c8<=_9c9.min);this._rightBtn.set("disabled",_9c8>=_9c9.max);}});var _9ca=_9a4("dijit.layout._ScrollingTabControllerButtonMixin",null,{baseClass:"dijitTab tabStripButton",templateString:_9ab,tabIndex:"",isFocusable:function(){return false;}});_9a4("dijit.layout._ScrollingTabControllerButton",[_9b0,_9ca]);_9a4("dijit.layout._ScrollingTabControllerMenuButton",[_9b0,_9b1,_9ca],{containerId:"",tabIndex:"-1",isLoaded:function(){return false;},loadDropDown:function(_9cb){this.dropDown=new Menu({id:this.containerId+"_menu",ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir});var _9cc=_9a9.byId(this.containerId);_9a3.forEach(_9cc.getChildren(),function(page){var _9cd=new _9af({id:page.id+"_stcMi",label:page.title,iconClass:page.iconClass,disabled:page.disabled,ownerDocument:this.ownerDocument,dir:page.dir,lang:page.lang,textDir:page.textDir,onClick:function(){_9cc.selectChild(page);}});this.dropDown.addChild(_9cd);},this);_9cb();},closeDropDown:function(_9ce){this.inherited(arguments);if(this.dropDown){this.dropDown.destroyRecursive();delete this.dropDown;}}});return _9b2;});},"url:dijit/layout/templates/ScrollingTabController.html":"<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerMenuButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\"\n\t\t\tdata-dojo-props=\"containerId: '${containerId}', iconClass: 'dijitTabStripMenuIcon',\n\t\t\t\t\tdropDownPosition: ['below-alt', 'above-alt']\"\n\t\t\tdata-dojo-attach-point=\"_menuBtn\" showLabel=\"false\" title=\"\">&#9660;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideLeftIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_leftBtn\" data-dojo-attach-event=\"onClick: doSlideLeft\">&#9664;</div>\n\t<div data-dojo-type=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\"\n\t\t\tdata-dojo-props=\"iconClass:'dijitTabStripSlideRightIcon', showLabel:false, title:''\"\n\t\t\tdata-dojo-attach-point=\"_rightBtn\" data-dojo-attach-event=\"onClick: doSlideRight\">&#9654;</div>\n\t<div class='dijitTabListWrapper' data-dojo-attach-point='tablistWrapper'>\n\t\t<div role='tablist' data-dojo-attach-event='onkeypress:onkeypress'\n\t\t\t\tdata-dojo-attach-point='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>","url:dijit/layout/templates/_ScrollingTabControllerButton.html":"<div data-dojo-attach-event=\"onclick:_onClick\" class=\"dijitTabInnerDiv dijitTabContent dijitButtonContents\" data-dojo-attach-point=\"focusNode\">\n\t<img role=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" data-dojo-attach-point=\"iconNode\"/>\n\t<span data-dojo-attach-point=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n</div>","dijit/ProgressBar":function(){require({cache:{"url:dijit/templates/ProgressBar.html":"<div class=\"dijitProgressBar dijitProgressBarEmpty\" role=\"progressbar\"\n\t><div data-dojo-attach-point=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\" role=\"presentation\"></div\n\t\t><span style=\"visibility:hidden\">&#160;</span\n\t></div\n\t><div data-dojo-attach-point=\"labelNode\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"></div\n\t><img data-dojo-attach-point=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"}});define("dijit/ProgressBar",["require","dojo/_base/declare","dojo/dom-class","dojo/_base/lang","dojo/number","./_Widget","./_TemplatedMixin","dojo/text!./templates/ProgressBar.html"],function(_9cf,_9d0,_9d1,lang,_9d2,_9d3,_9d4,_9d5){return _9d0("dijit.ProgressBar",[_9d3,_9d4],{progress:"0",value:"",maximum:100,places:0,indeterminate:false,label:"",name:"",templateString:_9d5,_indeterminateHighContrastImagePath:_9cf.toUrl("./themes/a11y/indeterminate_progress.gif"),postMixInProperties:function(){this.inherited(arguments);if(!(this.params&&"value" in this.params)){this.value=this.indeterminate?Infinity:this.progress;}},buildRendering:function(){this.inherited(arguments);this.indeterminateHighContrastImage.setAttribute("src",this._indeterminateHighContrastImagePath.toString());this.update();},update:function(_9d6){lang.mixin(this,_9d6||{});var tip=this.internalProgress,ap=this.domNode;var _9d7=1;if(this.indeterminate){ap.removeAttribute("aria-valuenow");}else{if(String(this.progress).indexOf("%")!=-1){_9d7=Math.min(parseFloat(this.progress)/100,1);this.progress=_9d7*this.maximum;}else{this.progress=Math.min(this.progress,this.maximum);_9d7=this.maximum?this.progress/this.maximum:0;}ap.setAttribute("aria-valuenow",this.progress);}ap.setAttribute("aria-describedby",this.labelNode.id);ap.setAttribute("aria-valuemin",0);ap.setAttribute("aria-valuemax",this.maximum);this.labelNode.innerHTML=this.report(_9d7);_9d1.toggle(this.domNode,"dijitProgressBarIndeterminate",this.indeterminate);tip.style.width=(_9d7*100)+"%";this.onChange();},_setValueAttr:function(v){this._set("value",v);if(v==Infinity){this.update({indeterminate:true});}else{this.update({indeterminate:false,progress:v});}},_setLabelAttr:function(_9d8){this._set("label",_9d8);this.update();},_setIndeterminateAttr:function(_9d9){this.indeterminate=_9d9;this.update();},report:function(_9da){return this.label?this.label:(this.indeterminate?"&#160;":_9d2.format(_9da,{type:"percent",places:this.places,locale:this.lang}));},onChange:function(){}});});},"dojo/number":function(){define("dojo/number",["./_base/lang","./i18n","./i18n!./cldr/nls/number","./string","./regexp"],function(lang,i18n,_9db,_9dc,_9dd){var _9de={};lang.setObject("dojo.number",_9de);_9de.format=function(_9df,_9e0){_9e0=lang.mixin({},_9e0||{});var _9e1=i18n.normalizeLocale(_9e0.locale),_9e2=i18n.getLocalization("dojo.cldr","number",_9e1);_9e0.customs=_9e2;var _9e3=_9e0.pattern||_9e2[(_9e0.type||"decimal")+"Format"];if(isNaN(_9df)||Math.abs(_9df)==Infinity){return null;}return _9de._applyPattern(_9df,_9e3,_9e0);};_9de._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;_9de._applyPattern=function(_9e4,_9e5,_9e6){_9e6=_9e6||{};var _9e7=_9e6.customs.group,_9e8=_9e6.customs.decimal,_9e9=_9e5.split(";"),_9ea=_9e9[0];_9e5=_9e9[(_9e4<0)?1:0]||("-"+_9ea);if(_9e5.indexOf("%")!=-1){_9e4*=100;}else{if(_9e5.indexOf("‰")!=-1){_9e4*=1000;}else{if(_9e5.indexOf("¤")!=-1){_9e7=_9e6.customs.currencyGroup||_9e7;_9e8=_9e6.customs.currencyDecimal||_9e8;_9e5=_9e5.replace(/\u00a4{1,3}/,function(_9eb){var prop=["symbol","currency","displayName"][_9eb.length-1];return _9e6[prop]||_9e6.currency||"";});}else{if(_9e5.indexOf("E")!=-1){throw new Error("exponential notation not supported");}}}}var _9ec=_9de._numberPatternRE;var _9ed=_9ea.match(_9ec);if(!_9ed){throw new Error("unable to find a number expression in pattern: "+_9e5);}if(_9e6.fractional===false){_9e6.places=0;}return _9e5.replace(_9ec,_9de._formatAbsolute(_9e4,_9ed[0],{decimal:_9e8,group:_9e7,places:_9e6.places,round:_9e6.round}));};_9de.round=function(_9ee,_9ef,_9f0){var _9f1=10/(_9f0||10);return (_9f1*+_9ee).toFixed(_9ef)/_9f1;};if((0.9).toFixed()==0){var _9f2=_9de.round;_9de.round=function(v,p,m){var d=Math.pow(10,-p||0),a=Math.abs(v);if(!v||a>=d){d=0;}else{a/=d;if(a<0.5||a>=0.95){d=0;}}return _9f2(v,p,m)+(v>0?d:-d);};}_9de._formatAbsolute=function(_9f3,_9f4,_9f5){_9f5=_9f5||{};if(_9f5.places===true){_9f5.places=0;}if(_9f5.places===Infinity){_9f5.places=6;}var _9f6=_9f4.split("."),_9f7=typeof _9f5.places=="string"&&_9f5.places.indexOf(","),_9f8=_9f5.places;if(_9f7){_9f8=_9f5.places.substring(_9f7+1);}else{if(!(_9f8>=0)){_9f8=(_9f6[1]||[]).length;}}if(!(_9f5.round<0)){_9f3=_9de.round(_9f3,_9f8,_9f5.round);}var _9f9=String(Math.abs(_9f3)).split("."),_9fa=_9f9[1]||"";if(_9f6[1]||_9f5.places){if(_9f7){_9f5.places=_9f5.places.substring(0,_9f7);}var pad=_9f5.places!==undefined?_9f5.places:(_9f6[1]&&_9f6[1].lastIndexOf("0")+1);if(pad>_9fa.length){_9f9[1]=_9dc.pad(_9fa,pad,"0",true);}if(_9f8<_9fa.length){_9f9[1]=_9fa.substr(0,_9f8);}}else{if(_9f9[1]){_9f9.pop();}}var _9fb=_9f6[0].replace(",","");pad=_9fb.indexOf("0");if(pad!=-1){pad=_9fb.length-pad;if(pad>_9f9[0].length){_9f9[0]=_9dc.pad(_9f9[0],pad);}if(_9fb.indexOf("#")==-1){_9f9[0]=_9f9[0].substr(_9f9[0].length-pad);}}var _9fc=_9f6[0].lastIndexOf(","),_9fd,_9fe;if(_9fc!=-1){_9fd=_9f6[0].length-_9fc-1;var _9ff=_9f6[0].substr(0,_9fc);_9fc=_9ff.lastIndexOf(",");if(_9fc!=-1){_9fe=_9ff.length-_9fc-1;}}var _a00=[];for(var _a01=_9f9[0];_a01;){var off=_a01.length-_9fd;_a00.push((off>0)?_a01.substr(off):_a01);_a01=(off>0)?_a01.slice(0,off):"";if(_9fe){_9fd=_9fe;delete _9fe;}}_9f9[0]=_a00.reverse().join(_9f5.group||",");return _9f9.join(_9f5.decimal||".");};_9de.regexp=function(_a02){return _9de._parseInfo(_a02).regexp;};_9de._parseInfo=function(_a03){_a03=_a03||{};var _a04=i18n.normalizeLocale(_a03.locale),_a05=i18n.getLocalization("dojo.cldr","number",_a04),_a06=_a03.pattern||_a05[(_a03.type||"decimal")+"Format"],_a07=_a05.group,_a08=_a05.decimal,_a09=1;if(_a06.indexOf("%")!=-1){_a09/=100;}else{if(_a06.indexOf("‰")!=-1){_a09/=1000;}else{var _a0a=_a06.indexOf("¤")!=-1;if(_a0a){_a07=_a05.currencyGroup||_a07;_a08=_a05.currencyDecimal||_a08;}}}var _a0b=_a06.split(";");if(_a0b.length==1){_a0b.push("-"+_a0b[0]);}var re=_9dd.buildGroupRE(_a0b,function(_a0c){_a0c="(?:"+_9dd.escapeString(_a0c,".")+")";return _a0c.replace(_9de._numberPatternRE,function(_a0d){var _a0e={signed:false,separator:_a03.strict?_a07:[_a07,""],fractional:_a03.fractional,decimal:_a08,exponent:false},_a0f=_a0d.split("."),_a10=_a03.places;if(_a0f.length==1&&_a09!=1){_a0f[1]="###";}if(_a0f.length==1||_a10===0){_a0e.fractional=false;}else{if(_a10===undefined){_a10=_a03.pattern?_a0f[1].lastIndexOf("0")+1:Infinity;}if(_a10&&_a03.fractional==undefined){_a0e.fractional=true;}if(!_a03.places&&(_a10<_a0f[1].length)){_a10+=","+_a0f[1].length;}_a0e.places=_a10;}var _a11=_a0f[0].split(",");if(_a11.length>1){_a0e.groupSize=_a11.pop().length;if(_a11.length>1){_a0e.groupSize2=_a11.pop().length;}}return "("+_9de._realNumberRegexp(_a0e)+")";});},true);if(_a0a){re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(_a12,_a13,_a14,_a15){var prop=["symbol","currency","displayName"][_a14.length-1],_a16=_9dd.escapeString(_a03[prop]||_a03.currency||"");_a13=_a13?"[\\s\\xa0]":"";_a15=_a15?"[\\s\\xa0]":"";if(!_a03.strict){if(_a13){_a13+="*";}if(_a15){_a15+="*";}return "(?:"+_a13+_a16+_a15+")?";}return _a13+_a16+_a15;});}return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_a07,decimal:_a08,factor:_a09};};_9de.parse=function(_a17,_a18){var info=_9de._parseInfo(_a18),_a19=(new RegExp("^"+info.regexp+"$")).exec(_a17);if(!_a19){return NaN;}var _a1a=_a19[1];if(!_a19[1]){if(!_a19[2]){return NaN;}_a1a=_a19[2];info.factor*=-1;}_a1a=_a1a.replace(new RegExp("["+info.group+"\\s\\xa0"+"]","g"),"").replace(info.decimal,".");return _a1a*info.factor;};_9de._realNumberRegexp=function(_a1b){_a1b=_a1b||{};if(!("places" in _a1b)){_a1b.places=Infinity;}if(typeof _a1b.decimal!="string"){_a1b.decimal=".";}if(!("fractional" in _a1b)||/^0/.test(_a1b.places)){_a1b.fractional=[true,false];}if(!("exponent" in _a1b)){_a1b.exponent=[true,false];}if(!("eSigned" in _a1b)){_a1b.eSigned=[true,false];}var _a1c=_9de._integerRegexp(_a1b),_a1d=_9dd.buildGroupRE(_a1b.fractional,function(q){var re="";if(q&&(_a1b.places!==0)){re="\\"+_a1b.decimal;if(_a1b.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+_a1b.places+"}";}}return re;},true);var _a1e=_9dd.buildGroupRE(_a1b.exponent,function(q){if(q){return "([eE]"+_9de._integerRegexp({signed:_a1b.eSigned})+")";}return "";});var _a1f=_a1c+_a1d;if(_a1d){_a1f="(?:(?:"+_a1f+")|(?:"+_a1d+"))";}return _a1f+_a1e;};_9de._integerRegexp=function(_a20){_a20=_a20||{};if(!("signed" in _a20)){_a20.signed=[true,false];}if(!("separator" in _a20)){_a20.separator="";}else{if(!("groupSize" in _a20)){_a20.groupSize=3;}}var _a21=_9dd.buildGroupRE(_a20.signed,function(q){return q?"[-+]":"";},true);var _a22=_9dd.buildGroupRE(_a20.separator,function(sep){if(!sep){return "(?:\\d+)";}sep=_9dd.escapeString(sep);if(sep==" "){sep="\\s";}else{if(sep==" "){sep="\\s\\xa0";}}var grp=_a20.groupSize,grp2=_a20.groupSize2;if(grp2){var _a23="(?:0|[1-9]\\d{0,"+(grp2-1)+"}(?:["+sep+"]\\d{"+grp2+"})*["+sep+"]\\d{"+grp+"})";return ((grp-grp2)>0)?"(?:"+_a23+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_a23;}return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return _a21+_a22;};return _9de;});},"url:dijit/templates/ProgressBar.html":"<div class=\"dijitProgressBar dijitProgressBarEmpty\" role=\"progressbar\"\n\t><div data-dojo-attach-point=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\" role=\"presentation\"></div\n\t\t><span style=\"visibility:hidden\">&#160;</span\n\t></div\n\t><div data-dojo-attach-point=\"labelNode\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"></div\n\t><img data-dojo-attach-point=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n","dijit/Toolbar":function(){define("dijit/Toolbar",["require","dojo/_base/declare","dojo/has","dojo/keys","dojo/ready","./_Widget","./_KeyNavContainer","./_TemplatedMixin"],function(_a24,_a25,has,keys,_a26,_a27,_a28,_a29){if(has("dijit-legacy-requires")){_a26(0,function(){var _a2a=["dijit/ToolbarSeparator"];_a24(_a2a);});}return _a25("dijit.Toolbar",[_a27,_a29,_a28],{templateString:"<div class=\"dijit\" role=\"toolbar\" tabIndex=\"${tabIndex}\" data-dojo-attach-point=\"containerNode\">"+"</div>",baseClass:"dijitToolbar",postCreate:function(){this.inherited(arguments);this.connectKeyNavHandlers(this.isLeftToRight()?[keys.LEFT_ARROW]:[keys.RIGHT_ARROW],this.isLeftToRight()?[keys.RIGHT_ARROW]:[keys.LEFT_ARROW]);}});});},"dijit/TooltipDialog":function(){require({cache:{"url:dijit/templates/TooltipDialog.html":"<div role=\"presentation\" tabIndex=\"-1\">\n\t<div class=\"dijitTooltipContainer\" role=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" data-dojo-attach-point=\"containerNode\" role=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" role=\"presentation\" data-dojo-attach-point=\"connectorNode\"></div>\n</div>\n"}});define("dijit/TooltipDialog",["dojo/_base/declare","dojo/dom-class","dojo/_base/event","dojo/keys","dojo/_base/lang","./focus","./layout/ContentPane","./_DialogMixin","./form/_FormMixin","./_TemplatedMixin","dojo/text!./templates/TooltipDialog.html","./main"],function(_a2b,_a2c,_a2d,keys,lang,_a2e,_a2f,_a30,_a31,_a32,_a33,_a34){return _a2b("dijit.TooltipDialog",[_a2f,_a32,_a31,_a30],{title:"",doLayout:false,autofocus:true,baseClass:"dijitTooltipDialog",_firstFocusItem:null,_lastFocusItem:null,templateString:_a33,_setTitleAttr:function(_a35){this.containerNode.title=_a35;this._set("title",_a35);},postCreate:function(){this.inherited(arguments);this.connect(this.containerNode,"onkeypress","_onKey");},orient:function(node,_a36,_a37){var newC={"MR-ML":"dijitTooltipRight","ML-MR":"dijitTooltipLeft","TM-BM":"dijitTooltipAbove","BM-TM":"dijitTooltipBelow","BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_a36+"-"+_a37];_a2c.replace(this.domNode,newC,this._currentOrientClass||"");this._currentOrientClass=newC;},focus:function(){this._getFocusItems(this.containerNode);_a2e.focus(this._firstFocusItem);},onOpen:function(pos){this.orient(this.domNode,pos.aroundCorner,pos.corner);var _a38=pos.aroundNodePos;if(pos.corner.charAt(0)=="M"&&pos.aroundCorner.charAt(0)=="M"){this.connectorNode.style.top=_a38.y+((_a38.h-this.connectorNode.offsetHeight)>>1)-pos.y+"px";this.connectorNode.style.left="";}else{if(pos.corner.charAt(1)=="M"&&pos.aroundCorner.charAt(1)=="M"){this.connectorNode.style.left=_a38.x+((_a38.w-this.connectorNode.offsetWidth)>>1)-pos.x+"px";}}this._onShow();},onClose:function(){this.onHide();},_onKey:function(evt){var node=evt.target;if(evt.charOrCode===keys.TAB){this._getFocusItems(this.containerNode);}var _a39=(this._firstFocusItem==this._lastFocusItem);if(evt.charOrCode==keys.ESCAPE){this.defer("onCancel");_a2d.stop(evt);}else{if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===keys.TAB){if(!_a39){_a2e.focus(this._lastFocusItem);}_a2d.stop(evt);}else{if(node==this._lastFocusItem&&evt.charOrCode===keys.TAB&&!evt.shiftKey){if(!_a39){_a2e.focus(this._firstFocusItem);}_a2d.stop(evt);}else{if(evt.charOrCode===keys.TAB){evt.stopPropagation();}}}}}});});},"url:dijit/templates/TooltipDialog.html":"<div role=\"presentation\" tabIndex=\"-1\">\n\t<div class=\"dijitTooltipContainer\" role=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" data-dojo-attach-point=\"containerNode\" role=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" role=\"presentation\" data-dojo-attach-point=\"connectorNode\"></div>\n</div>\n","dijit/Tree":function(){require({cache:{"url:dijit/templates/TreeNode.html":"<div class=\"dijitTreeNode\" role=\"presentation\"\n\t><div data-dojo-attach-point=\"rowNode\" class=\"dijitTreeRow dijitInline\" role=\"presentation\"\n\t\t><div data-dojo-attach-point=\"indentNode\" class=\"dijitInline\"></div\n\t\t><img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"expandoNode\" class=\"dijitTreeExpando\" role=\"presentation\"\n\t\t/><span data-dojo-attach-point=\"expandoNodeText\" class=\"dijitExpandoText\" role=\"presentation\"\n\t\t></span\n\t\t><span data-dojo-attach-point=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" role=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" role=\"presentation\"\n\t\t\t/><span data-dojo-attach-point=\"labelNode\" class=\"dijitTreeLabel\" role=\"treeitem\" tabindex=\"-1\" aria-selected=\"false\"></span>\n\t\t</span\n\t></div>\n\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitTreeContainer\" role=\"presentation\" style=\"display: none;\"></div>\n</div>\n","url:dijit/templates/Tree.html":"<div class=\"dijitTree dijitTreeContainer\" role=\"tree\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" data-dojo-attach-point=\"indentDetector\"></div>\n</div>\n"}});define("dijit/Tree",["dojo/_base/array","dojo/_base/connect","dojo/cookie","dojo/_base/declare","dojo/Deferred","dojo/DeferredList","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/errors/create","dojo/fx","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/topic","dojo/touch","dojo/when","./focus","./registry","./_base/manager","./_Widget","./_TemplatedMixin","./_Container","./_Contained","./_CssStateMixin","dojo/text!./templates/TreeNode.html","dojo/text!./templates/Tree.html","./tree/TreeStoreModel","./tree/ForestStoreModel","./tree/_dndSelector"],function(_a3a,_a3b,_a3c,_a3d,_a3e,_a3f,dom,_a40,_a41,_a42,_a43,_a44,_a45,_a46,keys,lang,on,_a47,_a48,when,_a49,_a4a,_a4b,_a4c,_a4d,_a4e,_a4f,_a50,_a51,_a52,_a53,_a54,_a55){_a3e=_a3d(_a3e,{addCallback:function(_a56){this.then(_a56);},addErrback:function(_a57){this.then(null,_a57);}});var _a58=_a3d("dijit._TreeNode",[_a4c,_a4d,_a4e,_a4f,_a50],{item:null,isTreeNode:true,label:"",_setLabelAttr:{node:"labelNode",type:"innerText"},isExpandable:null,isExpanded:false,state:"UNCHECKED",templateString:_a51,baseClass:"dijitTreeNode",cssStateNodes:{rowNode:"dijitTreeRow"},_setTooltipAttr:{node:"rowNode",type:"attribute",attribute:"title"},buildRendering:function(){this.inherited(arguments);this._setExpando();this._updateItemClasses(this.item);if(this.isExpandable){this.labelNode.setAttribute("aria-expanded",this.isExpanded);}this.setSelected(false);},_setIndentAttr:function(_a59){var _a5a=(Math.max(_a59,0)*this.tree._nodePixelIndent)+"px";_a42.set(this.domNode,"backgroundPosition",_a5a+" 0px");_a42.set(this.indentNode,this.isLeftToRight()?"paddingLeft":"paddingRight",_a5a);_a3a.forEach(this.getChildren(),function(_a5b){_a5b.set("indent",_a59+1);});this._set("indent",_a59);},markProcessing:function(){this.state="LOADING";this._setExpando(true);},unmarkProcessing:function(){this._setExpando(false);},_updateItemClasses:function(item){var tree=this.tree,_a5c=tree.model;if(tree._v10Compat&&item===_a5c.root){item=null;}this._applyClassAndStyle(item,"icon","Icon");this._applyClassAndStyle(item,"label","Label");this._applyClassAndStyle(item,"row","Row");this.tree._startPaint(true);},_applyClassAndStyle:function(item,_a5d,_a5e){var _a5f="_"+_a5d+"Class";var _a60=_a5d+"Node";var _a61=this[_a5f];this[_a5f]=this.tree["get"+_a5e+"Class"](item,this.isExpanded);_a40.replace(this[_a60],this[_a5f]||"",_a61||"");_a42.set(this[_a60],this.tree["get"+_a5e+"Style"](item,this.isExpanded)||{});},_updateLayout:function(){var _a62=this.getParent();if(!_a62||!_a62.rowNode||_a62.rowNode.style.display=="none"){_a40.add(this.domNode,"dijitTreeIsRoot");}else{_a40.toggle(this.domNode,"dijitTreeIsLast",!this.getNextSibling());}},_setExpando:function(_a63){var _a64=["dijitTreeExpandoLoading","dijitTreeExpandoOpened","dijitTreeExpandoClosed","dijitTreeExpandoLeaf"],_a65=["*","-","+","*"],idx=_a63?0:(this.isExpandable?(this.isExpanded?1:2):3);_a40.replace(this.expandoNode,_a64[idx],_a64);this.expandoNodeText.innerHTML=_a65[idx];},expand:function(){if(this._expandDeferred){return this._expandDeferred;}if(this._collapseDeferred){this._collapseDeferred.cancel();delete this._collapseDeferred;}this.isExpanded=true;this.labelNode.setAttribute("aria-expanded","true");if(this.tree.showRoot||this!==this.tree.rootNode){this.containerNode.setAttribute("role","group");}_a40.add(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(this==this.tree.rootNode&&this.tree.showRoot){this.tree.domNode.setAttribute("aria-expanded","true");}var def,_a66=_a45.wipeIn({node:this.containerNode,duration:_a4b.defaultDuration,onEnd:function(){def.resolve(true);}});def=(this._expandDeferred=new _a3e(function(){_a66.stop();}));_a66.play();return def;},collapse:function(){if(this._collapseDeferred){return this._collapseDeferred;}if(this._expandDeferred){this._expandDeferred.cancel();delete this._expandDeferred;}this.isExpanded=false;this.labelNode.setAttribute("aria-expanded","false");if(this==this.tree.rootNode&&this.tree.showRoot){this.tree.domNode.setAttribute("aria-expanded","false");}_a40.remove(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);var def,_a67=_a45.wipeOut({node:this.containerNode,duration:_a4b.defaultDuration,onEnd:function(){def.resolve(true);}});def=(this._collapseDeferred=new _a3e(function(){_a67.stop();}));_a67.play();return def;},indent:0,setChildItems:function(_a68){var tree=this.tree,_a69=tree.model,defs=[];var _a6a=this.getChildren();_a3a.forEach(_a6a,function(_a6b){_a4e.prototype.removeChild.call(this,_a6b);},this);this.defer(function(){_a3a.forEach(_a6a,function(node){if(!node._destroyed&&!node.getParent()){tree.dndController.removeTreeNode(node);var id=_a69.getIdentity(node.item),ary=tree._itemNodesMap[id];if(ary.length==1){delete tree._itemNodesMap[id];}else{var _a6c=_a3a.indexOf(ary,node);if(_a6c!=-1){ary.splice(_a6c,1);}}node.destroyRecursive();}});});this.state="LOADED";if(_a68&&_a68.length>0){this.isExpandable=true;_a3a.forEach(_a68,function(item){var id=_a69.getIdentity(item),_a6d=tree._itemNodesMap[id],node;if(_a6d){for(var i=0;i<_a6d.length;i++){if(_a6d[i]&&!_a6d[i].getParent()){node=_a6d[i];node.set("indent",this.indent+1);break;}}}if(!node){node=this.tree._createTreeNode({item:item,tree:tree,isExpandable:_a69.mayHaveChildren(item),label:tree.getLabel(item),tooltip:tree.getTooltip(item),ownerDocument:tree.ownerDocument,dir:tree.dir,lang:tree.lang,textDir:tree.textDir,indent:this.indent+1});if(_a6d){_a6d.push(node);}else{tree._itemNodesMap[id]=[node];}}this.addChild(node);if(this.tree.autoExpand||this.tree._state(node)){defs.push(tree._expandNode(node));}},this);_a3a.forEach(this.getChildren(),function(_a6e){_a6e._updateLayout();});}else{this.isExpandable=false;}if(this._setExpando){this._setExpando(false);}this._updateItemClasses(this.item);if(this==tree.rootNode){var fc=this.tree.showRoot?this:this.getChildren()[0];if(fc){fc.setFocusable(true);tree.lastFocused=fc;}else{tree.domNode.setAttribute("tabIndex","0");}}var def=new _a3f(defs);this.tree._startPaint(def);return def;},getTreePath:function(){var node=this;var path=[];while(node&&node!==this.tree.rootNode){path.unshift(node.item);node=node.getParent();}path.unshift(this.tree.rootNode.item);return path;},getIdentity:function(){return this.tree.model.getIdentity(this.item);},removeChild:function(node){this.inherited(arguments);var _a6f=this.getChildren();if(_a6f.length==0){this.isExpandable=false;this.collapse();}_a3a.forEach(_a6f,function(_a70){_a70._updateLayout();});},makeExpandable:function(){this.isExpandable=true;this._setExpando(false);},setSelected:function(_a71){this.labelNode.setAttribute("aria-selected",_a71?"true":"false");_a40.toggle(this.rowNode,"dijitTreeRowSelected",_a71);},setFocusable:function(_a72){this.labelNode.setAttribute("tabIndex",_a72?"0":"-1");},_setTextDirAttr:function(_a73){if(_a73&&((this.textDir!=_a73)||!this._created)){this._set("textDir",_a73);this.applyTextDir(this.labelNode,this.labelNode.innerText||this.labelNode.textContent||"");_a3a.forEach(this.getChildren(),function(_a74){_a74.set("textDir",_a73);},this);}}});var Tree=_a3d("dijit.Tree",[_a4c,_a4d],{store:null,model:null,query:null,label:"",showRoot:true,childrenAttr:["children"],paths:[],path:[],selectedItems:null,selectedItem:null,openOnClick:false,openOnDblClick:false,templateString:_a52,persist:true,autoExpand:false,dndController:_a55,dndParams:["onDndDrop","itemCreator","onDndCancel","checkAcceptance","checkItemAcceptance","dragThreshold","betweenThreshold"],onDndDrop:null,itemCreator:null,onDndCancel:null,checkAcceptance:null,checkItemAcceptance:null,dragThreshold:5,betweenThreshold:0,_nodePixelIndent:19,_publish:function(_a75,_a76){_a47.publish(this.id,lang.mixin({tree:this,event:_a75},_a76||{}));},postMixInProperties:function(){this.tree=this;if(this.autoExpand){this.persist=false;}this._itemNodesMap={};if(!this.cookieName&&this.id){this.cookieName=this.id+"SaveStateCookie";}this.expandChildrenDeferred=new _a3e();this.pendingCommandsDeferred=this.expandChildrenDeferred;this.inherited(arguments);},postCreate:function(){this._initState();var self=this;this.own(on(this.domNode,on.selector(".dijitTreeNode",_a48.enter),function(evt){self._onNodeMouseEnter(_a4a.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeNode",_a48.leave),function(evt){self._onNodeMouseLeave(_a4a.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeNode","click"),function(evt){self._onClick(_a4a.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeNode","dblclick"),function(evt){self._onDblClick(_a4a.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeNode","keypress"),function(evt){self._onKeyPress(_a4a.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeNode","keydown"),function(evt){self._onKeyDown(_a4a.byNode(this),evt);}),on(this.domNode,on.selector(".dijitTreeRow","focusin"),function(evt){self._onNodeFocus(_a4a.getEnclosingWidget(this),evt);}));if(!this.model){this._store2model();}this.connect(this.model,"onChange","_onItemChange");this.connect(this.model,"onChildrenChange","_onItemChildrenChange");this.connect(this.model,"onDelete","_onItemDelete");this.inherited(arguments);if(this.dndController){if(lang.isString(this.dndController)){this.dndController=lang.getObject(this.dndController);}var _a77={};for(var i=0;i<this.dndParams.length;i++){if(this[this.dndParams[i]]){_a77[this.dndParams[i]]=this[this.dndParams[i]];}}this.dndController=new this.dndController(this,_a77);}this._load();if(!this.params.path&&!this.params.paths&&this.persist){this.set("paths",this.dndController._getSavedPaths());}this.onLoadDeferred=this.pendingCommandsDeferred;this.onLoadDeferred.then(lang.hitch(this,"onLoad"));},_store2model:function(){this._v10Compat=true;_a46.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query");var _a78={id:this.id+"_ForestStoreModel",store:this.store,query:this.query,childrenAttrs:this.childrenAttr};if(this.params.mayHaveChildren){_a78.mayHaveChildren=lang.hitch(this,"mayHaveChildren");}if(this.params.getItemChildren){_a78.getChildren=lang.hitch(this,function(item,_a79,_a7a){this.getItemChildren((this._v10Compat&&item===this.model.root)?null:item,_a79,_a7a);});}this.model=new _a54(_a78);this.showRoot=Boolean(this.label);},onLoad:function(){},_load:function(){this.model.getRoot(lang.hitch(this,function(item){var rn=(this.rootNode=this.tree._createTreeNode({item:item,tree:this,isExpandable:true,label:this.label||this.getLabel(item),textDir:this.textDir,indent:this.showRoot?0:-1}));if(!this.showRoot){rn.rowNode.style.display="none";this.domNode.setAttribute("role","presentation");this.domNode.removeAttribute("aria-expanded");this.domNode.removeAttribute("aria-multiselectable");rn.labelNode.setAttribute("role","presentation");rn.containerNode.setAttribute("role","tree");rn.containerNode.setAttribute("aria-expanded","true");rn.containerNode.setAttribute("aria-multiselectable",!this.dndController.singular);}else{this.domNode.setAttribute("aria-multiselectable",!this.dndController.singular);}this.domNode.appendChild(rn.domNode);var _a7b=this.model.getIdentity(item);if(this._itemNodesMap[_a7b]){this._itemNodesMap[_a7b].push(rn);}else{this._itemNodesMap[_a7b]=[rn];}rn._updateLayout();this._expandNode(rn).then(lang.hitch(this,function(){this.expandChildrenDeferred.resolve(true);}));}),lang.hitch(this,function(err){console.error(this,": error loading root: ",err);}));},getNodesByItem:function(item){if(!item){return [];}var _a7c=lang.isString(item)?item:this.model.getIdentity(item);return [].concat(this._itemNodesMap[_a7c]);},_setSelectedItemAttr:function(item){this.set("selectedItems",[item]);},_setSelectedItemsAttr:function(_a7d){var tree=this;return this.pendingCommandsDeferred=this.pendingCommandsDeferred.then(lang.hitch(this,function(){var _a7e=_a3a.map(_a7d,function(item){return (!item||lang.isString(item))?item:tree.model.getIdentity(item);});var _a7f=[];_a3a.forEach(_a7e,function(id){_a7f=_a7f.concat(tree._itemNodesMap[id]||[]);});this.set("selectedNodes",_a7f);}));},_setPathAttr:function(path){if(path.length){return this.set("paths",[path]);}else{return this.set("paths",[]);}},_setPathsAttr:function(_a80){var tree=this;return this.pendingCommandsDeferred=this.pendingCommandsDeferred.then(function(){return new _a3f(_a3a.map(_a80,function(path){var d=new _a3e();path=_a3a.map(path,function(item){return lang.isString(item)?item:tree.model.getIdentity(item);});if(path.length){_a81(path,[tree.rootNode],d);}else{d.reject(new Tree.PathError("Empty path"));}return d;}));}).then(_a82);function _a81(path,_a83,def){var _a84=path.shift();var _a85=_a3a.filter(_a83,function(node){return node.getIdentity()==_a84;})[0];if(!!_a85){if(path.length){tree._expandNode(_a85).then(function(){_a81(path,_a85.getChildren(),def);});}else{def.resolve(_a85);}}else{def.reject(new Tree.PathError("Could not expand path at "+_a84));}};function _a82(_a86){tree.set("selectedNodes",_a3a.map(_a3a.filter(_a86,function(x){return x[0];}),function(x){return x[1];}));};},_setSelectedNodeAttr:function(node){this.set("selectedNodes",[node]);},_setSelectedNodesAttr:function(_a87){this.dndController.setSelection(_a87);},expandAll:function(){var _a88=this;function _a89(node){var def=new dojo.Deferred();_a88._expandNode(node).then(function(){var _a8a=_a3a.filter(node.getChildren()||[],function(node){return node.isExpandable;}),defs=_a3a.map(_a8a,_a89);new dojo.DeferredList(defs).then(function(){def.resolve(true);});});return def;};return _a89(this.rootNode);},collapseAll:function(){var _a8b=this;function _a8c(node){var def=new dojo.Deferred();def.label="collapseAllDeferred";var _a8d=_a3a.filter(node.getChildren()||[],function(node){return node.isExpandable;}),defs=_a3a.map(_a8d,_a8c);new dojo.DeferredList(defs).then(function(){if(!node.isExpanded||(node==_a8b.rootNode&&!_a8b.showRoot)){def.resolve(true);}else{_a8b._collapseNode(node).then(function(){def.resolve(true);});}});return def;};return _a8c(this.rootNode);},mayHaveChildren:function(){},getItemChildren:function(){},getLabel:function(item){return this.model.getLabel(item);},getIconClass:function(item,_a8e){return (!item||this.model.mayHaveChildren(item))?(_a8e?"dijitFolderOpened":"dijitFolderClosed"):"dijitLeaf";},getLabelClass:function(){},getRowClass:function(){},getIconStyle:function(){},getLabelStyle:function(){},getRowStyle:function(){},getTooltip:function(){return "";},_onKeyPress:function(_a8f,e){if(e.charCode<=32){return;}if(!e.altKey&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey){var c=String.fromCharCode(e.charCode);this._onLetterKeyNav({node:_a8f,key:c.toLowerCase()});_a43.stop(e);}},_onKeyDown:function(_a90,e){var key=e.keyCode;var map=this._keyHandlerMap;if(!map){map={};map[keys.ENTER]=map[keys.SPACE]=map[" "]="_onEnterKey";map[this.isLeftToRight()?keys.LEFT_ARROW:keys.RIGHT_ARROW]="_onLeftArrow";map[this.isLeftToRight()?keys.RIGHT_ARROW:keys.LEFT_ARROW]="_onRightArrow";map[keys.UP_ARROW]="_onUpArrow";map[keys.DOWN_ARROW]="_onDownArrow";map[keys.HOME]="_onHomeKey";map[keys.END]="_onEndKey";this._keyHandlerMap=map;}if(this._keyHandlerMap[key]){if(this._curSearch){this._curSearch.timer.remove();delete this._curSearch;}this[this._keyHandlerMap[key]]({node:_a90,item:_a90.item,evt:e});_a43.stop(e);}},_onEnterKey:function(_a91){this._publish("execute",{item:_a91.item,node:_a91.node});this.dndController.userSelect(_a91.node,_a3b.isCopyKey(_a91.evt),_a91.evt.shiftKey);this.onClick(_a91.item,_a91.node,_a91.evt);},_onDownArrow:function(_a92){var node=this._getNextNode(_a92.node);if(node&&node.isTreeNode){this.focusNode(node);}},_onUpArrow:function(_a93){var node=_a93.node;var _a94=node.getPreviousSibling();if(_a94){node=_a94;while(node.isExpandable&&node.isExpanded&&node.hasChildren()){var _a95=node.getChildren();node=_a95[_a95.length-1];}}else{var _a96=node.getParent();if(!(!this.showRoot&&_a96===this.rootNode)){node=_a96;}}if(node&&node.isTreeNode){this.focusNode(node);}},_onRightArrow:function(_a97){var node=_a97.node;if(node.isExpandable&&!node.isExpanded){this._expandNode(node);}else{if(node.hasChildren()){node=node.getChildren()[0];if(node&&node.isTreeNode){this.focusNode(node);}}}},_onLeftArrow:function(_a98){var node=_a98.node;if(node.isExpandable&&node.isExpanded){this._collapseNode(node);}else{var _a99=node.getParent();if(_a99&&_a99.isTreeNode&&!(!this.showRoot&&_a99===this.rootNode)){this.focusNode(_a99);}}},_onHomeKey:function(){var node=this._getRootOrFirstNode();if(node){this.focusNode(node);}},_onEndKey:function(){var node=this.rootNode;while(node.isExpanded){var c=node.getChildren();node=c[c.length-1];}if(node&&node.isTreeNode){this.focusNode(node);}},multiCharSearchDuration:250,_onLetterKeyNav:function(_a9a){var cs=this._curSearch;if(cs){cs.pattern=cs.pattern+_a9a.key;cs.timer.remove();}else{cs=this._curSearch={pattern:_a9a.key,startNode:_a9a.node};}cs.timer=this.defer(function(){delete this._curSearch;},this.multiCharSearchDuration);var node=cs.startNode;do{node=this._getNextNode(node);if(!node){node=this._getRootOrFirstNode();}}while(node!==cs.startNode&&(node.label.toLowerCase().substr(0,cs.pattern.length)!=cs.pattern));if(node&&node.isTreeNode){if(node!==cs.startNode){this.focusNode(node);}}},isExpandoNode:function(node,_a9b){return dom.isDescendant(node,_a9b.expandoNode)||dom.isDescendant(node,_a9b.expandoNodeText);},_onClick:function(_a9c,e){var _a9d=e.target,_a9e=this.isExpandoNode(_a9d,_a9c);if((this.openOnClick&&_a9c.isExpandable)||_a9e){if(_a9c.isExpandable){this._onExpandoClick({node:_a9c});}}else{this._publish("execute",{item:_a9c.item,node:_a9c,evt:e});this.onClick(_a9c.item,_a9c,e);this.focusNode(_a9c);}_a43.stop(e);},_onDblClick:function(_a9f,e){var _aa0=e.target,_aa1=(_aa0==_a9f.expandoNode||_aa0==_a9f.expandoNodeText);if((this.openOnDblClick&&_a9f.isExpandable)||_aa1){if(_a9f.isExpandable){this._onExpandoClick({node:_a9f});}}else{this._publish("execute",{item:_a9f.item,node:_a9f,evt:e});this.onDblClick(_a9f.item,_a9f,e);this.focusNode(_a9f);}_a43.stop(e);},_onExpandoClick:function(_aa2){var node=_aa2.node;this.focusNode(node);if(node.isExpanded){this._collapseNode(node);}else{this._expandNode(node);}},onClick:function(){},onDblClick:function(){},onOpen:function(){},onClose:function(){},_getNextNode:function(node){if(node.isExpandable&&node.isExpanded&&node.hasChildren()){return node.getChildren()[0];}else{while(node&&node.isTreeNode){var _aa3=node.getNextSibling();if(_aa3){return _aa3;}node=node.getParent();}return null;}},_getRootOrFirstNode:function(){return this.showRoot?this.rootNode:this.rootNode.getChildren()[0];},_collapseNode:function(node){if(node._expandNodeDeferred){delete node._expandNodeDeferred;}if(node.state=="LOADING"){return;}if(node.isExpanded){var ret=node.collapse();this.onClose(node.item,node);this._state(node,false);this._startPaint(ret);return ret;}},_expandNode:function(node){var def=new _a3e();if(node._expandNodeDeferred){return node._expandNodeDeferred;}var _aa4=this.model,item=node.item,_aa5=this;if(!node._loadDeferred){node.markProcessing();node._loadDeferred=new _a3e();_aa4.getChildren(item,function(_aa6){node.unmarkProcessing();node.setChildItems(_aa6).then(function(){node._loadDeferred.resolve(_aa6);});},function(err){console.error(_aa5,": error loading "+node.label+" children: ",err);node._loadDeferred.reject(err);});}node._loadDeferred.then(lang.hitch(this,function(){node.expand().then(function(){def.resolve(true);});this.onOpen(node.item,node);this._state(node,true);}));this._startPaint(def);return def;},focusNode:function(node){_a49.focus(node.labelNode);},_onNodeFocus:function(node){if(node&&node!=this.lastFocused){if(this.lastFocused&&!this.lastFocused._destroyed){this.lastFocused.setFocusable(false);}node.setFocusable(true);this.lastFocused=node;}},_onNodeMouseEnter:function(){},_onNodeMouseLeave:function(){},_onItemChange:function(item){var _aa7=this.model,_aa8=_aa7.getIdentity(item),_aa9=this._itemNodesMap[_aa8];if(_aa9){var _aaa=this.getLabel(item),_aab=this.getTooltip(item);_a3a.forEach(_aa9,function(node){node.set({item:item,label:_aaa,tooltip:_aab});node._updateItemClasses(item);});}},_onItemChildrenChange:function(_aac,_aad){var _aae=this.model,_aaf=_aae.getIdentity(_aac),_ab0=this._itemNodesMap[_aaf];if(_ab0){_a3a.forEach(_ab0,function(_ab1){_ab1.setChildItems(_aad);});}},_onItemDelete:function(item){var _ab2=this.model,_ab3=_ab2.getIdentity(item),_ab4=this._itemNodesMap[_ab3];if(_ab4){_a3a.forEach(_ab4,function(node){this.dndController.removeTreeNode(node);var _ab5=node.getParent();if(_ab5){_ab5.removeChild(node);}node.destroyRecursive();},this);delete this._itemNodesMap[_ab3];}},_initState:function(){this._openedNodes={};if(this.persist&&this.cookieName){var oreo=_a3c(this.cookieName);if(oreo){_a3a.forEach(oreo.split(","),function(item){this._openedNodes[item]=true;},this);}}},_state:function(node,_ab6){if(!this.persist){return false;}var path=_a3a.map(node.getTreePath(),function(item){return this.model.getIdentity(item);},this).join("/");if(arguments.length===1){return this._openedNodes[path];}else{if(_ab6){this._openedNodes[path]=true;}else{delete this._openedNodes[path];}if(this.persist&&this.cookieName){var ary=[];for(var id in this._openedNodes){ary.push(id);}_a3c(this.cookieName,ary.join(","),{expires:365});}}},destroy:function(){if(this._curSearch){this._curSearch.timer.remove();delete this._curSearch;}if(this.rootNode){this.rootNode.destroyRecursive();}if(this.dndController&&!lang.isString(this.dndController)){this.dndController.destroy();}this.rootNode=null;this.inherited(arguments);},destroyRecursive:function(){this.destroy();},resize:function(_ab7){if(_ab7){_a41.setMarginBox(this.domNode,_ab7);}this._nodePixelIndent=_a41.position(this.tree.indentDetector).w||this._nodePixelIndent;this.expandChildrenDeferred.then(lang.hitch(this,function(){this.rootNode.set("indent",this.showRoot?0:-1);this._adjustWidths();}));},_outstandingPaintOperations:0,_startPaint:function(p){this._outstandingPaintOperations++;if(this._adjustWidthsTimer){this._adjustWidthsTimer.remove();delete this._adjustWidthsTimer;}var oc=lang.hitch(this,function(){this._outstandingPaintOperations--;if(this._outstandingPaintOperations<=0&&!this._adjustWidthsTimer&&this._started){this._adjustWidthsTimer=this.defer("_adjustWidths");}});when(p,oc,oc);},_adjustWidths:function(){if(this._adjustWidthsTimer){this._adjustWidthsTimer.remove();delete this._adjustWidthsTimer;}var _ab8=0,_ab9=[];function _aba(_abb){var node=_abb.rowNode;node.style.width="auto";_ab8=Math.max(_ab8,node.clientWidth);_ab9.push(node);if(_abb.isExpanded){_a3a.forEach(_abb.getChildren(),_aba);}};_aba(this.rootNode);_ab8=Math.max(_ab8,_a41.getContentBox(this.domNode).w);_a3a.forEach(_ab9,function(node){node.style.width=_ab8+"px";});},_createTreeNode:function(args){return new _a58(args);},_setTextDirAttr:function(_abc){if(_abc&&this.textDir!=_abc){this._set("textDir",_abc);this.rootNode.set("textDir",_abc);}}});Tree.PathError=_a44("TreePathError");Tree._TreeNode=_a58;return Tree;});},"dojo/DeferredList":function(){define("dojo/DeferredList",["./_base/kernel","./_base/Deferred","./_base/array"],function(dojo,_abd,_abe){dojo.DeferredList=function(list,_abf,_ac0,_ac1,_ac2){var _ac3=[];_abd.call(this);var self=this;if(list.length===0&&!_abf){this.resolve([0,[]]);}var _ac4=0;_abe.forEach(list,function(item,i){item.then(function(_ac5){if(_abf){self.resolve([i,_ac5]);}else{_ac6(true,_ac5);}},function(_ac7){if(_ac0){self.reject(_ac7);}else{_ac6(false,_ac7);}if(_ac1){return null;}throw _ac7;});function _ac6(_ac8,_ac9){_ac3[i]=[_ac8,_ac9];_ac4++;if(_ac4===list.length){self.resolve(_ac3);}};});};dojo.DeferredList.prototype=new _abd();dojo.DeferredList.prototype.gatherResults=function(_aca){var d=new dojo.DeferredList(_aca,false,true,false);d.addCallback(function(_acb){var ret=[];_abe.forEach(_acb,function(_acc){ret.push(_acc[1]);});return ret;});return d;};return dojo.DeferredList;});},"url:dijit/templates/TreeNode.html":"<div class=\"dijitTreeNode\" role=\"presentation\"\n\t><div data-dojo-attach-point=\"rowNode\" class=\"dijitTreeRow dijitInline\" role=\"presentation\"\n\t\t><div data-dojo-attach-point=\"indentNode\" class=\"dijitInline\"></div\n\t\t><img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"expandoNode\" class=\"dijitTreeExpando\" role=\"presentation\"\n\t\t/><span data-dojo-attach-point=\"expandoNodeText\" class=\"dijitExpandoText\" role=\"presentation\"\n\t\t></span\n\t\t><span data-dojo-attach-point=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" role=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" role=\"presentation\"\n\t\t\t/><span data-dojo-attach-point=\"labelNode\" class=\"dijitTreeLabel\" role=\"treeitem\" tabindex=\"-1\" aria-selected=\"false\"></span>\n\t\t</span\n\t></div>\n\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitTreeContainer\" role=\"presentation\" style=\"display: none;\"></div>\n</div>\n","url:dijit/templates/Tree.html":"<div class=\"dijitTree dijitTreeContainer\" role=\"tree\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" data-dojo-attach-point=\"indentDetector\"></div>\n</div>\n","dijit/tree/TreeStoreModel":function(){define("dijit/tree/TreeStoreModel",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/_base/lang"],function(_acd,_ace,_acf,lang){return _acf("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(args){lang.mixin(this,args);this.connects=[];var _ad0=this.store;if(!_ad0.getFeatures()["dojo.data.api.Identity"]){throw new Error("dijit.tree.TreeStoreModel: store must support dojo.data.Identity");}if(_ad0.getFeatures()["dojo.data.api.Notification"]){this.connects=this.connects.concat([_ace.after(_ad0,"onNew",lang.hitch(this,"onNewItem"),true),_ace.after(_ad0,"onDelete",lang.hitch(this,"onDeleteItem"),true),_ace.after(_ad0,"onSet",lang.hitch(this,"onSetItem"),true)]);}},destroy:function(){var h;while(h=this.connects.pop()){h.remove();}},getRoot:function(_ad1,_ad2){if(this.root){_ad1(this.root);}else{this.store.fetch({query:this.query,onComplete:lang.hitch(this,function(_ad3){if(_ad3.length!=1){throw new Error("dijit.tree.TreeStoreModel: root query returned "+_ad3.length+" items, but must return exactly one");}this.root=_ad3[0];_ad1(this.root);}),onError:_ad2});}},mayHaveChildren:function(item){return _acd.some(this.childrenAttrs,function(attr){return this.store.hasAttribute(item,attr);},this);},getChildren:function(_ad4,_ad5,_ad6){var _ad7=this.store;if(!_ad7.isItemLoaded(_ad4)){var _ad8=lang.hitch(this,arguments.callee);_ad7.loadItem({item:_ad4,onItem:function(_ad9){_ad8(_ad9,_ad5,_ad6);},onError:_ad6});return;}var _ada=[];for(var i=0;i<this.childrenAttrs.length;i++){var vals=_ad7.getValues(_ad4,this.childrenAttrs[i]);_ada=_ada.concat(vals);}var _adb=0;if(!this.deferItemLoadingUntilExpand){_acd.forEach(_ada,function(item){if(!_ad7.isItemLoaded(item)){_adb++;}});}if(_adb==0){_ad5(_ada);}else{_acd.forEach(_ada,function(item,idx){if(!_ad7.isItemLoaded(item)){_ad7.loadItem({item:item,onItem:function(item){_ada[idx]=item;if(--_adb==0){_ad5(_ada);}},onError:_ad6});}});}},isItem:function(_adc){return this.store.isItem(_adc);},fetchItemByIdentity:function(_add){this.store.fetchItemByIdentity(_add);},getIdentity:function(item){return this.store.getIdentity(item);},getLabel:function(item){if(this.labelAttr){return this.store.getValue(item,this.labelAttr);}else{return this.store.getLabel(item);}},newItem:function(args,_ade,_adf){var _ae0={parent:_ade,attribute:this.childrenAttrs[0]},_ae1;if(this.newItemIdAttr&&args[this.newItemIdAttr]){this.fetchItemByIdentity({identity:args[this.newItemIdAttr],scope:this,onItem:function(item){if(item){this.pasteItem(item,null,_ade,true,_adf);}else{_ae1=this.store.newItem(args,_ae0);if(_ae1&&(_adf!=undefined)){this.pasteItem(_ae1,_ade,_ade,false,_adf);}}}});}else{_ae1=this.store.newItem(args,_ae0);if(_ae1&&(_adf!=undefined)){this.pasteItem(_ae1,_ade,_ade,false,_adf);}}},pasteItem:function(_ae2,_ae3,_ae4,_ae5,_ae6){var _ae7=this.store,_ae8=this.childrenAttrs[0];if(_ae3){_acd.forEach(this.childrenAttrs,function(attr){if(_ae7.containsValue(_ae3,attr,_ae2)){if(!_ae5){var _ae9=_acd.filter(_ae7.getValues(_ae3,attr),function(x){return x!=_ae2;});_ae7.setValues(_ae3,attr,_ae9);}_ae8=attr;}});}if(_ae4){if(typeof _ae6=="number"){var _aea=_ae7.getValues(_ae4,_ae8).slice();_aea.splice(_ae6,0,_ae2);_ae7.setValues(_ae4,_ae8,_aea);}else{_ae7.setValues(_ae4,_ae8,_ae7.getValues(_ae4,_ae8).concat(_ae2));}}},onChange:function(){},onChildrenChange:function(){},onDelete:function(){},onNewItem:function(item,_aeb){if(!_aeb){return;}this.getChildren(_aeb.item,lang.hitch(this,function(_aec){this.onChildrenChange(_aeb.item,_aec);}));},onDeleteItem:function(item){this.onDelete(item);},onSetItem:function(item,_aed){if(_acd.indexOf(this.childrenAttrs,_aed)!=-1){this.getChildren(item,lang.hitch(this,function(_aee){this.onChildrenChange(item,_aee);}));}else{this.onChange(item);}}});});},"dijit/tree/ForestStoreModel":function(){define("dijit/tree/ForestStoreModel",["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","./TreeStoreModel"],function(_aef,_af0,_af1,lang,_af2){return _af0("dijit.tree.ForestStoreModel",_af2,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(_af3){this.root={store:this,root:true,id:_af3.rootId,label:_af3.rootLabel,children:_af3.rootChildren};},mayHaveChildren:function(item){return item===this.root||this.inherited(arguments);},getChildren:function(_af4,_af5,_af6){if(_af4===this.root){if(this.root.children){_af5(this.root.children);}else{this.store.fetch({query:this.query,onComplete:lang.hitch(this,function(_af7){this.root.children=_af7;_af5(_af7);}),onError:_af6});}}else{this.inherited(arguments);}},isItem:function(_af8){return (_af8===this.root)?true:this.inherited(arguments);},fetchItemByIdentity:function(_af9){if(_af9.identity==this.root.id){var _afa=_af9.scope||_af1.global;if(_af9.onItem){_af9.onItem.call(_afa,this.root);}}else{this.inherited(arguments);}},getIdentity:function(item){return (item===this.root)?this.root.id:this.inherited(arguments);},getLabel:function(item){return (item===this.root)?this.root.label:this.inherited(arguments);},newItem:function(args,_afb,_afc){if(_afb===this.root){this.onNewRootItem(args);return this.store.newItem(args);}else{return this.inherited(arguments);}},onNewRootItem:function(){},pasteItem:function(_afd,_afe,_aff,_b00,_b01){if(_afe===this.root){if(!_b00){this.onLeaveRoot(_afd);}}this.inherited(arguments,[_afd,_afe===this.root?null:_afe,_aff===this.root?null:_aff,_b00,_b01]);if(_aff===this.root){this.onAddToRoot(_afd);}},onAddToRoot:function(item){},onLeaveRoot:function(item){},_requeryTop:function(){var _b02=this.root.children||[];this.store.fetch({query:this.query,onComplete:lang.hitch(this,function(_b03){this.root.children=_b03;if(_b02.length!=_b03.length||_aef.some(_b02,function(item,idx){return _b03[idx]!=item;})){this.onChildrenChange(this.root,_b03);}})});},onNewItem:function(item,_b04){this._requeryTop();this.inherited(arguments);},onDeleteItem:function(item){if(_aef.indexOf(this.root.children,item)!=-1){this._requeryTop();}this.inherited(arguments);},onSetItem:function(item,_b05,_b06,_b07){this._requeryTop();this.inherited(arguments);}});});},"dijit/tree/_dndSelector":function(){define("dijit/tree/_dndSelector",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/Deferred","dojo/_base/kernel","dojo/_base/lang","dojo/cookie","dojo/mouse","dojo/on","dojo/touch","./_dndContainer"],function(_b08,_b09,_b0a,_b0b,_b0c,lang,_b0d,_b0e,on,_b0f,_b10){return _b0a("dijit.tree._dndSelector",_b10,{constructor:function(){this.selection={};this.anchor=null;if(!this.cookieName&&this.tree.id){this.cookieName=this.tree.id+"SaveSelectedCookie";}this.events.push(on(this.tree.domNode,_b0f.press,lang.hitch(this,"onMouseDown")),on(this.tree.domNode,_b0f.release,lang.hitch(this,"onMouseUp")),on(this.tree.domNode,_b0f.move,lang.hitch(this,"onMouseMove")));},singular:false,getSelectedTreeNodes:function(){var _b11=[],sel=this.selection;for(var i in sel){_b11.push(sel[i]);}return _b11;},selectNone:function(){this.setSelection([]);return this;},destroy:function(){this.inherited(arguments);this.selection=this.anchor=null;},addTreeNode:function(node,_b12){this.setSelection(this.getSelectedTreeNodes().concat([node]));if(_b12){this.anchor=node;}return node;},removeTreeNode:function(node){this.setSelection(this._setDifference(this.getSelectedTreeNodes(),[node]));return node;},isTreeNodeSelected:function(node){return node.id&&!!this.selection[node.id];},setSelection:function(_b13){var _b14=this.getSelectedTreeNodes();_b08.forEach(this._setDifference(_b14,_b13),lang.hitch(this,function(node){node.setSelected(false);if(this.anchor==node){delete this.anchor;}delete this.selection[node.id];}));_b08.forEach(this._setDifference(_b13,_b14),lang.hitch(this,function(node){node.setSelected(true);this.selection[node.id]=node;}));this._updateSelectionProperties();},_setDifference:function(xs,ys){_b08.forEach(ys,function(y){y.__exclude__=true;});var ret=_b08.filter(xs,function(x){return !x.__exclude__;});_b08.forEach(ys,function(y){delete y["__exclude__"];});return ret;},_updateSelectionProperties:function(){var _b15=this.getSelectedTreeNodes();var _b16=[],_b17=[],_b18=[];_b08.forEach(_b15,function(node){var ary=node.getTreePath(),_b19=this.tree.model;_b17.push(node);_b16.push(ary);ary=_b08.map(ary,function(item){return _b19.getIdentity(item);},this);_b18.push(ary.join("/"));},this);var _b1a=_b08.map(_b17,function(node){return node.item;});this.tree._set("paths",_b16);this.tree._set("path",_b16[0]||[]);this.tree._set("selectedNodes",_b17);this.tree._set("selectedNode",_b17[0]||null);this.tree._set("selectedItems",_b1a);this.tree._set("selectedItem",_b1a[0]||null);if(this.tree.persist&&_b18.length>0){_b0d(this.cookieName,_b18.join(","),{expires:365});}},_getSavedPaths:function(){var tree=this.tree;if(tree.persist&&tree.dndController.cookieName){var oreo,_b1b=[];oreo=_b0d(tree.dndController.cookieName);if(oreo){_b1b=_b08.map(oreo.split(","),function(path){return path.split("/");});}return _b1b;}},onMouseDown:function(e){if(!this.current||this.tree.isExpandoNode(e.target,this.current)){return;}if(_b0e.isLeft(e)){e.preventDefault();}else{if(e.type!="touchstart"){return;}}var _b1c=this.current,copy=_b09.isCopyKey(e),id=_b1c.id;if(!this.singular&&!e.shiftKey&&this.selection[id]){this._doDeselect=true;return;}else{this._doDeselect=false;}this.userSelect(_b1c,copy,e.shiftKey);},onMouseUp:function(e){if(!this._doDeselect){return;}this._doDeselect=false;this.userSelect(this.current,_b09.isCopyKey(e),e.shiftKey);},onMouseMove:function(){this._doDeselect=false;},_compareNodes:function(n1,n2){if(n1===n2){return 0;}if("sourceIndex" in document.documentElement){return n1.sourceIndex-n2.sourceIndex;}else{if("compareDocumentPosition" in document.documentElement){return n1.compareDocumentPosition(n2)&2?1:-1;}else{if(document.createRange){var r1=doc.createRange();r1.setStartBefore(n1);var r2=doc.createRange();r2.setStartBefore(n2);return r1.compareBoundaryPoints(r1.END_TO_END,r2);}else{throw Error("dijit.tree._compareNodes don't know how to compare two different nodes in this browser");}}}},userSelect:function(node,_b1d,_b1e){if(this.singular){if(this.anchor==node&&_b1d){this.selectNone();}else{this.setSelection([node]);this.anchor=node;}}else{if(_b1e&&this.anchor){var cr=this._compareNodes(this.anchor.rowNode,node.rowNode),_b1f,end,_b20=this.anchor;if(cr<0){_b1f=_b20;end=node;}else{_b1f=node;end=_b20;}var _b21=[];while(_b1f!=end){_b21.push(_b1f);_b1f=this.tree._getNextNode(_b1f);}_b21.push(end);this.setSelection(_b21);}else{if(this.selection[node.id]&&_b1d){this.removeTreeNode(node);}else{if(_b1d){this.addTreeNode(node,true);}else{this.setSelection([node]);this.anchor=node;}}}}},getItem:function(key){var _b22=this.selection[key];return {data:_b22,type:["treeNode"]};},forInSelectedItems:function(f,o){o=o||_b0c.global;for(var id in this.selection){f.call(o,this.getItem(id),id,this);}}});});},"dijit/tree/_dndContainer":function(){define("dijit/tree/_dndContainer",["dojo/aspect","dojo/_base/declare","dojo/dom-class","dojo/_base/event","dojo/_base/lang","dojo/on","dojo/touch"],function(_b23,_b24,_b25,_b26,lang,on,_b27){return _b24("dijit.tree._dndContainer",null,{constructor:function(tree,_b28){this.tree=tree;this.node=tree.domNode;lang.mixin(this,_b28);this.current=null;this.containerState="";_b25.add(this.node,"dojoDndContainer");this.events=[on(this.node,_b27.enter,lang.hitch(this,"onOverEvent")),on(this.node,_b27.leave,lang.hitch(this,"onOutEvent")),_b23.after(this.tree,"_onNodeMouseEnter",lang.hitch(this,"onMouseOver"),true),_b23.after(this.tree,"_onNodeMouseLeave",lang.hitch(this,"onMouseOut"),true),on(this.node,"dragstart",lang.hitch(_b26,"stop")),on(this.node,"selectstart",lang.hitch(_b26,"stop"))];},destroy:function(){var h;while(h=this.events.pop()){h.remove();}this.node=this.parent=null;},onMouseOver:function(_b29){this.current=_b29;},onMouseOut:function(){this.current=null;},_changeState:function(type,_b2a){var _b2b="dojoDnd"+type;var _b2c=type.toLowerCase()+"State";_b25.replace(this.node,_b2b+_b2a,_b2b+this[_b2c]);this[_b2c]=_b2a;},_addItemClass:function(node,type){_b25.add(node,"dojoDndItem"+type);},_removeItemClass:function(node,type){_b25.remove(node,"dojoDndItem"+type);},onOverEvent:function(){this._changeState("Container","Over");},onOutEvent:function(){this._changeState("Container","");}});});},"dijit/tree/dndSource":function(){define("dijit/tree/dndSource",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/_base/lang","dojo/on","dojo/touch","dojo/topic","dojo/dnd/Manager","./_dndSelector"],function(_b2d,_b2e,_b2f,_b30,_b31,lang,on,_b32,_b33,_b34,_b35){var _b36=_b2f("dijit.tree.dndSource",_b35,{isSource:true,accept:["text","treeNode"],copyOnly:false,dragThreshold:5,betweenThreshold:0,generateText:true,constructor:function(tree,_b37){if(!_b37){_b37={};}lang.mixin(this,_b37);var type=_b37.accept instanceof Array?_b37.accept:["text","treeNode"];this.accept=null;if(type.length){this.accept={};for(var i=0;i<type.length;++i){this.accept[type[i]]=1;}}this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.dropPosition="";this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource){_b30.add(this.node,"dojoDndSource");}this.targetState="";if(this.accept){_b30.add(this.node,"dojoDndTarget");}this.topics=[_b33.subscribe("/dnd/source/over",lang.hitch(this,"onDndSourceOver")),_b33.subscribe("/dnd/start",lang.hitch(this,"onDndStart")),_b33.subscribe("/dnd/drop",lang.hitch(this,"onDndDrop")),_b33.subscribe("/dnd/cancel",lang.hitch(this,"onDndCancel"))];},checkAcceptance:function(){return true;},copyState:function(_b38){return this.copyOnly||_b38;},destroy:function(){this.inherited(arguments);var h;while(h=this.topics.pop()){h.remove();}this.targetAnchor=null;},_onDragMouse:function(e,_b39){var m=_b34.manager(),_b3a=this.targetAnchor,_b3b=this.current,_b3c=this.dropPosition;var _b3d="Over";if(_b3b&&this.betweenThreshold>0){if(!this.targetBox||_b3a!=_b3b){this.targetBox=_b31.position(_b3b.rowNode,true);}if((e.pageY-this.targetBox.y)<=this.betweenThreshold){_b3d="Before";}else{if((e.pageY-this.targetBox.y)>=(this.targetBox.h-this.betweenThreshold)){_b3d="After";}}}if(_b39||_b3b!=_b3a||_b3d!=_b3c){if(_b3a){this._removeItemClass(_b3a.rowNode,_b3c);}if(_b3b){this._addItemClass(_b3b.rowNode,_b3d);}if(!_b3b){m.canDrop(false);}else{if(_b3b==this.tree.rootNode&&_b3d!="Over"){m.canDrop(false);}else{var _b3e=false;if(m.source==this){for(var _b3f in this.selection){var _b40=this.selection[_b3f];if(_b40.item===_b3b.item){_b3e=true;break;}}}if(_b3e){m.canDrop(false);}else{if(this.checkItemAcceptance(_b3b.rowNode,m.source,_b3d.toLowerCase())&&!this._isParentChildDrop(m.source,_b3b.rowNode)){m.canDrop(true);}else{m.canDrop(false);}}}}this.targetAnchor=_b3b;this.dropPosition=_b3d;}},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}this.inherited(arguments);var m=_b34.manager();if(this.isDragging){this._onDragMouse(e);}else{if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>=this.dragThreshold||Math.abs(e.pageY-this._lastY)>=this.dragThreshold)){var _b41=this.getSelectedTreeNodes();if(_b41.length){if(_b41.length>1){var seen=this.selection,i=0,r=[],n,p;nextitem:while((n=_b41[i++])){for(p=n.getParent();p&&p!==this.tree;p=p.getParent()){if(seen[p.id]){continue nextitem;}}r.push(n);}_b41=r;}_b41=_b2d.map(_b41,function(n){return n.domNode;});m.startDrag(this,_b41,this.copyState(_b2e.isCopyKey(e)));this._onDragMouse(e,true);}}}},onMouseDown:function(e){this.mouseDown=true;this.mouseButton=e.button;this._lastX=e.pageX;this._lastY=e.pageY;this.inherited(arguments);},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;this.inherited(arguments);}},onMouseOut:function(){this.inherited(arguments);this._unmarkTargetAnchor();},checkItemAcceptance:function(){return true;},onDndSourceOver:function(_b42){if(this!=_b42){this.mouseDown=false;this._unmarkTargetAnchor();}else{if(this.isDragging){var m=_b34.manager();m.canDrop(false);}}},onDndStart:function(_b43,_b44,copy){if(this.isSource){this._changeState("Source",this==_b43?(copy?"Copied":"Moved"):"");}var _b45=this.checkAcceptance(_b43,_b44);this._changeState("Target",_b45?"":"Disabled");if(this==_b43){_b34.manager().overSource(this);}this.isDragging=true;},itemCreator:function(_b46){return _b2d.map(_b46,function(node){return {"id":node.id,"name":node.textContent||node.innerText||""};});},onDndDrop:function(_b47,_b48,copy){if(this.containerState=="Over"){var tree=this.tree,_b49=tree.model,_b4a=this.targetAnchor;this.isDragging=false;var _b4b;var _b4c;var _b4d;_b4b=(_b4a&&_b4a.item)||tree.item;if(this.dropPosition=="Before"||this.dropPosition=="After"){_b4b=(_b4a.getParent()&&_b4a.getParent().item)||tree.item;_b4c=_b4a.getIndexInParent();if(this.dropPosition=="After"){_b4c=_b4a.getIndexInParent()+1;_b4d=_b4a.getNextSibling()&&_b4a.getNextSibling().item;}else{_b4d=_b4a.item;}}else{_b4b=(_b4a&&_b4a.item)||tree.item;}var _b4e;_b2d.forEach(_b48,function(node,idx){var _b4f=_b47.getItem(node.id);if(_b2d.indexOf(_b4f.type,"treeNode")!=-1){var _b50=_b4f.data,_b51=_b50.item,_b52=_b50.getParent().item;}if(_b47==this){if(typeof _b4c=="number"){if(_b4b==_b52&&_b50.getIndexInParent()<_b4c){_b4c-=1;}}_b49.pasteItem(_b51,_b52,_b4b,copy,_b4c,_b4d);}else{if(_b49.isItem(_b51)){_b49.pasteItem(_b51,_b52,_b4b,copy,_b4c,_b4d);}else{if(!_b4e){_b4e=this.itemCreator(_b48,_b4a.rowNode,_b47);}_b49.newItem(_b4e[idx],_b4b,_b4c,_b4d);}}},this);this.tree._expandNode(_b4a);}this.onDndCancel();},onDndCancel:function(){this._unmarkTargetAnchor();this.isDragging=false;this.mouseDown=false;delete this.mouseButton;this._changeState("Source","");this._changeState("Target","");},onOverEvent:function(){this.inherited(arguments);_b34.manager().overSource(this);},onOutEvent:function(){this._unmarkTargetAnchor();var m=_b34.manager();if(this.isDragging){m.canDrop(false);}m.outSource(this);this.inherited(arguments);},_isParentChildDrop:function(_b53,_b54){if(!_b53.tree||_b53.tree!=this.tree){return false;}var root=_b53.tree.domNode;var ids=_b53.selection;var node=_b54.parentNode;while(node!=root&&!ids[node.id]){node=node.parentNode;}return node.id&&ids[node.id];},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this._removeItemClass(this.targetAnchor.rowNode,this.dropPosition);this.targetAnchor=null;this.targetBox=null;this.dropPosition=null;},_markDndStatus:function(copy){this._changeState("Source",copy?"Copied":"Moved");}});return _b36;});},"dojo/dnd/Manager":function(){define("dojo/dnd/Manager",["../_base/array","../_base/declare","../_base/event","../_base/lang","../_base/window","../dom-class","../Evented","../has","../keys","../on","../topic","../touch","./common","./autoscroll","./Avatar"],function(_b55,_b56,_b57,lang,win,_b58,_b59,has,keys,on,_b5a,_b5b,dnd,_b5c,_b5d){var _b5e=_b56("dojo.dnd.Manager",[_b59],{constructor:function(){this.avatar=null;this.source=null;this.nodes=[];this.copy=true;this.target=null;this.canDropFlag=false;this.events=[];},OFFSET_X:has("touch")?0:16,OFFSET_Y:has("touch")?-64:16,overSource:function(_b5f){if(this.avatar){this.target=(_b5f&&_b5f.targetState!="Disabled")?_b5f:null;this.canDropFlag=Boolean(this.target);this.avatar.update();}_b5a.publish("/dnd/source/over",_b5f);},outSource:function(_b60){if(this.avatar){if(this.target==_b60){this.target=null;this.canDropFlag=false;this.avatar.update();_b5a.publish("/dnd/source/over",null);}}else{_b5a.publish("/dnd/source/over",null);}},startDrag:function(_b61,_b62,copy){_b5c.autoScrollStart(win.doc);this.source=_b61;this.nodes=_b62;this.copy=Boolean(copy);this.avatar=this.makeAvatar();win.body().appendChild(this.avatar.node);_b5a.publish("/dnd/start",_b61,_b62,this.copy);this.events=[on(win.doc,_b5b.move,lang.hitch(this,"onMouseMove")),on(win.doc,_b5b.release,lang.hitch(this,"onMouseUp")),on(win.doc,"keydown",lang.hitch(this,"onKeyDown")),on(win.doc,"keyup",lang.hitch(this,"onKeyUp")),on(win.doc,"dragstart",_b57.stop),on(win.body(),"selectstart",_b57.stop)];var c="dojoDnd"+(copy?"Copy":"Move");_b58.add(win.body(),c);},canDrop:function(flag){var _b63=Boolean(this.target&&flag);if(this.canDropFlag!=_b63){this.canDropFlag=_b63;this.avatar.update();}},stopDrag:function(){_b58.remove(win.body(),["dojoDndCopy","dojoDndMove"]);_b55.forEach(this.events,function(_b64){_b64.remove();});this.events=[];this.avatar.destroy();this.avatar=null;this.source=this.target=null;this.nodes=[];},makeAvatar:function(){return new _b5d(this);},updateAvatar:function(){this.avatar.update();},onMouseMove:function(e){var a=this.avatar;if(a){_b5c.autoScrollNodes(e);var s=a.node.style;s.left=(e.pageX+this.OFFSET_X)+"px";s.top=(e.pageY+this.OFFSET_Y)+"px";var copy=Boolean(this.source.copyState(dnd.getCopyKeyState(e)));if(this.copy!=copy){this._setCopyStatus(copy);}}if(has("touch")){e.preventDefault();}},onMouseUp:function(e){if(this.avatar){if(this.target&&this.canDropFlag){var copy=Boolean(this.source.copyState(dnd.getCopyKeyState(e)));_b5a.publish("/dnd/drop/before",this.source,this.nodes,copy,this.target,e);_b5a.publish("/dnd/drop",this.source,this.nodes,copy,this.target,e);}else{_b5a.publish("/dnd/cancel");}this.stopDrag();}},onKeyDown:function(e){if(this.avatar){switch(e.keyCode){case keys.CTRL:var copy=Boolean(this.source.copyState(true));if(this.copy!=copy){this._setCopyStatus(copy);}break;case keys.ESCAPE:_b5a.publish("/dnd/cancel");this.stopDrag();break;}}},onKeyUp:function(e){if(this.avatar&&e.keyCode==keys.CTRL){var copy=Boolean(this.source.copyState(false));if(this.copy!=copy){this._setCopyStatus(copy);}}},_setCopyStatus:function(copy){this.copy=copy;this.source._markDndStatus(this.copy);this.updateAvatar();_b58.replace(win.body(),"dojoDnd"+(this.copy?"Copy":"Move"),"dojoDnd"+(this.copy?"Move":"Copy"));}});dnd._manager=null;_b5e.manager=dnd.manager=function(){if(!dnd._manager){dnd._manager=new _b5e();}return dnd._manager;};return _b5e;});},"dojo/dnd/Avatar":function(){define("dojo/dnd/Avatar",["../_base/declare","../_base/window","../dom","../dom-attr","../dom-class","../dom-construct","../hccss","../query"],function(_b65,win,dom,_b66,_b67,_b68,has,_b69){return _b65("dojo.dnd.Avatar",null,{constructor:function(_b6a){this.manager=_b6a;this.construct();},construct:function(){var a=_b68.create("table",{"class":"dojoDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),_b6b=this.manager.source,node,b=_b68.create("tbody",null,a),tr=_b68.create("tr",null,b),td=_b68.create("td",null,tr),k=Math.min(5,this.manager.nodes.length),i=0;if(has("highcontrast")){_b68.create("span",{id:"a11yIcon",innerHTML:this.manager.copy?"+":"<"},td);}_b68.create("span",{innerHTML:_b6b.generateText?this._generateText():""},td);_b66.set(tr,{"class":"dojoDndAvatarHeader",style:{opacity:0.9}});for(;i<k;++i){if(_b6b.creator){node=_b6b._normalizedCreator(_b6b.getItem(this.manager.nodes[i].id).data,"avatar").node;}else{node=this.manager.nodes[i].cloneNode(true);if(node.tagName.toLowerCase()=="tr"){var _b6c=_b68.create("table"),_b6d=_b68.create("tbody",null,_b6c);_b6d.appendChild(node);node=_b6c;}}node.id="";tr=_b68.create("tr",null,b);td=_b68.create("td",null,tr);td.appendChild(node);_b66.set(tr,{"class":"dojoDndAvatarItem",style:{opacity:(9-i)/10}});}this.node=a;},destroy:function(){_b68.destroy(this.node);this.node=false;},update:function(){_b67.toggle(this.node,"dojoDndAvatarCanDrop",this.manager.canDropFlag);if(has("highcontrast")){var icon=dom.byId("a11yIcon");var text="+";if(this.manager.canDropFlag&&!this.manager.copy){text="< ";}else{if(!this.manager.canDropFlag&&!this.manager.copy){text="o";}else{if(!this.manager.canDropFlag){text="x";}}}icon.innerHTML=text;}_b69(("tr.dojoDndAvatarHeader td span"+(has("highcontrast")?" span":"")),this.node).forEach(function(node){node.innerHTML=this.manager.source.generateText?this._generateText():"";},this);},_generateText:function(){return this.manager.nodes.length.toString();}});});},"*now":function(r){r(["dojo/i18n!*preload*dojo/nls/tt-rss-layer*[\"ar\",\"ca\",\"cs\",\"da\",\"de\",\"el\",\"en-gb\",\"en-us\",\"es-es\",\"fi-fi\",\"fr-fr\",\"he-il\",\"hu\",\"it-it\",\"ja-jp\",\"ko-kr\",\"nl-nl\",\"nb\",\"pl\",\"pt-br\",\"pt-pt\",\"ru\",\"sk\",\"sl\",\"sv\",\"th\",\"tr\",\"zh-tw\",\"zh-cn\",\"ROOT\"]"]);}}});define("dojo/tt-rss-layer",[],1); \ No newline at end of file
diff --git a/lib/dojo/uacss.js b/lib/dojo/uacss.js
index 3b8a7c392..80db8a6c9 100644
--- a/lib/dojo/uacss.js
+++ b/lib/dojo/uacss.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/uacss",["./dom-geometry","./_base/lang","./ready","./_base/sniff","./_base/window"],function(_1,_2,_3,_4,_5){var _6=_5.doc.documentElement,ie=_4("ie"),_7=_4("opera"),_8=Math.floor,ff=_4("ff"),_9=_1.boxModel.replace(/-/,""),_a={"dj_ie":ie,"dj_ie6":_8(ie)==6,"dj_ie7":_8(ie)==7,"dj_ie8":_8(ie)==8,"dj_ie9":_8(ie)==9,"dj_quirks":_4("quirks"),"dj_iequirks":ie&&_4("quirks"),"dj_opera":_7,"dj_khtml":_4("khtml"),"dj_webkit":_4("webkit"),"dj_safari":_4("safari"),"dj_chrome":_4("chrome"),"dj_gecko":_4("mozilla"),"dj_ff3":_8(ff)==3};_a["dj_"+_9]=true;var _b="";for(var _c in _a){if(_a[_c]){_b+=_c+" ";}}_6.className=_2.trim(_6.className+" "+_b);_3(90,function(){if(!_1.isBodyLtr()){var _d="dj_rtl dijitRtl "+_b.replace(/ /g,"-rtl ");_6.className=_2.trim(_6.className+" "+_d+"dj_rtl dijitRtl "+_b.replace(/ /g,"-rtl "));}});return _4;}); \ No newline at end of file
+define("dojo/uacss",["./dom-geometry","./_base/lang","./ready","./sniff","./_base/window"],function(_1,_2,_3,_4,_5){var _6=_5.doc.documentElement,ie=_4("ie"),_7=_4("opera"),_8=Math.floor,ff=_4("ff"),_9=_1.boxModel.replace(/-/,""),_a={"dj_quirks":_4("quirks"),"dj_opera":_7,"dj_khtml":_4("khtml"),"dj_webkit":_4("webkit"),"dj_safari":_4("safari"),"dj_chrome":_4("chrome"),"dj_gecko":_4("mozilla")};if(ie){_a["dj_ie"]=true;_a["dj_ie"+_8(ie)]=true;_a["dj_iequirks"]=_4("quirks");}if(ff){_a["dj_ff"+_8(ff)]=true;}_a["dj_"+_9]=true;var _b="";for(var _c in _a){if(_a[_c]){_b+=_c+" ";}}_6.className=_2.trim(_6.className+" "+_b);_3(90,function(){if(!_1.isBodyLtr()){var _d="dj_rtl dijitRtl "+_b.replace(/ /g,"-rtl ");_6.className=_2.trim(_6.className+" "+_d+"dj_rtl dijitRtl "+_b.replace(/ /g,"-rtl "));}});return _4;}); \ No newline at end of file
diff --git a/lib/dojo/when.js b/lib/dojo/when.js
new file mode 100644
index 000000000..5acb90d6a
--- /dev/null
+++ b/lib/dojo/when.js
@@ -0,0 +1,8 @@
+/*
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+//>>built
+define("dojo/when",["./Deferred","./promise/Promise"],function(_1,_2){"use strict";return function when(_3,_4,_5,_6){var _7=_3&&typeof _3.then==="function";var _8=_7&&_3 instanceof _2;if(!_7){if(_4){return _4(_3);}else{return new _1().resolve(_3);}}else{if(!_8){var _9=new _1(_3.cancel);_3.then(_9.resolve,_9.reject,_9.progress);_3=_9.promise;}}if(_4||_5||_6){return _3.then(_4,_5,_6);}return _3;};}); \ No newline at end of file
diff --git a/lib/dojo/window.js b/lib/dojo/window.js
index dfa485a0c..6d0d83d14 100644
--- a/lib/dojo/window.js
+++ b/lib/dojo/window.js
@@ -1,8 +1,8 @@
/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
-define("dojo/window",["./_base/lang","./_base/sniff","./_base/window","./dom","./dom-geometry","./dom-style"],function(_1,_2,_3,_4,_5,_6){var _7=_1.getObject("dojo.window",true);_7.getBox=function(){var _8=(_3.doc.compatMode=="BackCompat")?_3.body():_3.doc.documentElement,_9=_5.docScroll(),w,h;if(_2("touch")){var _a=_3.doc.parentWindow||_3.doc.defaultView;w=_a.innerWidth||_8.clientWidth;h=_a.innerHeight||_8.clientHeight;}else{w=_8.clientWidth;h=_8.clientHeight;}return {l:_9.x,t:_9.y,w:w,h:h};};_7.get=function(_b){if(_2("ie")&&_7!==document.parentWindow){_b.parentWindow.execScript("document._parentWindow = window;","Javascript");var _c=_b._parentWindow;_b._parentWindow=null;return _c;}return _b.parentWindow||_b.defaultView;};_7.scrollIntoView=function(_d,_e){try{_d=_4.byId(_d);var _f=_d.ownerDocument||_3.doc,_10=_f.body||_3.body(),_11=_f.documentElement||_10.parentNode,_12=_2("ie"),_13=_2("webkit");if((!(_2("mozilla")||_12||_13||_2("opera"))||_d==_10||_d==_11)&&(typeof _d.scrollIntoView!="undefined")){_d.scrollIntoView(false);return;}var _14=_f.compatMode=="BackCompat",_15=(_12>=9&&_d.ownerDocument.parentWindow.frameElement)?((_11.clientHeight>0&&_11.clientWidth>0&&(_10.clientHeight==0||_10.clientWidth==0||_10.clientHeight>_11.clientHeight||_10.clientWidth>_11.clientWidth))?_11:_10):(_14?_10:_11),_16=_13?_10:_15,_17=_15.clientWidth,_18=_15.clientHeight,rtl=!_5.isBodyLtr(),_19=_e||_5.position(_d),el=_d.parentNode,_1a=function(el){return ((_12<=6||(_12&&_14))?false:(_6.get(el,"position").toLowerCase()=="fixed"));};if(_1a(_d)){return;}while(el){if(el==_10){el=_16;}var _1b=_5.position(el),_1c=_1a(el);if(el==_16){_1b.w=_17;_1b.h=_18;if(_16==_11&&_12&&rtl){_1b.x+=_16.offsetWidth-_1b.w;}if(_1b.x<0||!_12){_1b.x=0;}if(_1b.y<0||!_12){_1b.y=0;}}else{var pb=_5.getPadBorderExtents(el);_1b.w-=pb.w;_1b.h-=pb.h;_1b.x+=pb.l;_1b.y+=pb.t;var _1d=el.clientWidth,_1e=_1b.w-_1d;if(_1d>0&&_1e>0){_1b.w=_1d;_1b.x+=(rtl&&(_12||el.clientLeft>pb.l))?_1e:0;}_1d=el.clientHeight;_1e=_1b.h-_1d;if(_1d>0&&_1e>0){_1b.h=_1d;}}if(_1c){if(_1b.y<0){_1b.h+=_1b.y;_1b.y=0;}if(_1b.x<0){_1b.w+=_1b.x;_1b.x=0;}if(_1b.y+_1b.h>_18){_1b.h=_18-_1b.y;}if(_1b.x+_1b.w>_17){_1b.w=_17-_1b.x;}}var l=_19.x-_1b.x,t=_19.y-Math.max(_1b.y,0),r=l+_19.w-_1b.w,bot=t+_19.h-_1b.h;if(r*l>0){var s=Math[l<0?"max":"min"](l,r);if(rtl&&((_12==8&&!_14)||_12>=9)){s=-s;}_19.x+=el.scrollLeft;el.scrollLeft+=s;_19.x-=el.scrollLeft;}if(bot*t>0){_19.y+=el.scrollTop;el.scrollTop+=Math[t<0?"max":"min"](t,bot);_19.y-=el.scrollTop;}el=(el!=_16)&&!_1c&&el.parentNode;}}catch(error){console.error("scrollIntoView: "+error);_d.scrollIntoView(false);}};return _7;}); \ No newline at end of file
+define("dojo/window",["./_base/lang","./sniff","./_base/window","./dom","./dom-geometry","./dom-style"],function(_1,_2,_3,_4,_5,_6){var _7={getBox:function(_8){_8=_8||_3.doc;var _9=(_8.compatMode=="BackCompat")?_3.body(_8):_8.documentElement,_a=_5.docScroll(_8),w,h;if(_2("touch")){var _b=_7.get(_8);w=_b.innerWidth||_9.clientWidth;h=_b.innerHeight||_9.clientHeight;}else{w=_9.clientWidth;h=_9.clientHeight;}return {l:_a.x,t:_a.y,w:w,h:h};},get:function(_c){if(_2("ie")&&_7!==document.parentWindow){_c.parentWindow.execScript("document._parentWindow = window;","Javascript");var _d=_c._parentWindow;_c._parentWindow=null;return _d;}return _c.parentWindow||_c.defaultView;},scrollIntoView:function(_e,_f){try{_e=_4.byId(_e);var doc=_e.ownerDocument||_3.doc,_10=_3.body(doc),_11=doc.documentElement||_10.parentNode,_12=_2("ie"),_13=_2("webkit");if((!(_2("mozilla")||_12||_13||_2("opera"))||_e==_10||_e==_11)&&(typeof _e.scrollIntoView!="undefined")){_e.scrollIntoView(false);return;}var _14=doc.compatMode=="BackCompat",_15=(_12>=9&&"frameElement" in _e.ownerDocument.parentWindow)?((_11.clientHeight>0&&_11.clientWidth>0&&(_10.clientHeight==0||_10.clientWidth==0||_10.clientHeight>_11.clientHeight||_10.clientWidth>_11.clientWidth))?_11:_10):(_14?_10:_11),_16=_13?_10:_15,_17=_15.clientWidth,_18=_15.clientHeight,rtl=!_5.isBodyLtr(doc),_19=_f||_5.position(_e),el=_e.parentNode,_1a=function(el){return ((_12<=6||(_12&&_14))?false:(_6.get(el,"position").toLowerCase()=="fixed"));};if(_1a(_e)){return;}while(el){if(el==_10){el=_16;}var _1b=_5.position(el),_1c=_1a(el);if(el==_16){_1b.w=_17;_1b.h=_18;if(_16==_11&&_12&&rtl){_1b.x+=_16.offsetWidth-_1b.w;}if(_1b.x<0||!_12){_1b.x=0;}if(_1b.y<0||!_12){_1b.y=0;}}else{var pb=_5.getPadBorderExtents(el);_1b.w-=pb.w;_1b.h-=pb.h;_1b.x+=pb.l;_1b.y+=pb.t;var _1d=el.clientWidth,_1e=_1b.w-_1d;if(_1d>0&&_1e>0){_1b.w=_1d;_1b.x+=(rtl&&(_12||el.clientLeft>pb.l))?_1e:0;}_1d=el.clientHeight;_1e=_1b.h-_1d;if(_1d>0&&_1e>0){_1b.h=_1d;}}if(_1c){if(_1b.y<0){_1b.h+=_1b.y;_1b.y=0;}if(_1b.x<0){_1b.w+=_1b.x;_1b.x=0;}if(_1b.y+_1b.h>_18){_1b.h=_18-_1b.y;}if(_1b.x+_1b.w>_17){_1b.w=_17-_1b.x;}}var l=_19.x-_1b.x,t=_19.y-Math.max(_1b.y,0),r=l+_19.w-_1b.w,bot=t+_19.h-_1b.h;if(r*l>0){var s=Math[l<0?"max":"min"](l,r);if(rtl&&((_12==8&&!_14)||_12>=9)){s=-s;}_19.x+=el.scrollLeft;el.scrollLeft+=s;_19.x-=el.scrollLeft;}if(bot*t>0){_19.y+=el.scrollTop;el.scrollTop+=Math[t<0?"max":"min"](t,bot);_19.y-=el.scrollTop;}el=(el!=_16)&&!_1c&&el.parentNode;}}catch(error){console.error("scrollIntoView: "+error);_e.scrollIntoView(false);}}};1&&_1.setObject("dojo.window",_7);return _7;}); \ No newline at end of file
diff --git a/lib/floIcon.php b/lib/floIcon.php
new file mode 100644
index 000000000..59902b6a4
--- /dev/null
+++ b/lib/floIcon.php
@@ -0,0 +1,849 @@
+<?php
+/***************************************************************************
+ * Original floIcon copyright (C) 2007 by Joshua Hatfield. *
+ * *
+ * In order to use any part of this floIcon Class, you must comply with *
+ * the license in 'license.doc'. In particular, you may not remove this *
+ * copyright notice. *
+ * *
+ * Much time and thought has gone into this software and you are *
+ * benefitting. We hope that you share your changes too. What goes *
+ * around, comes around. *
+ ***************************************************************************
+
+Version 1.1.1:
+Date: 2009-03-16
+
+Changes:
+I was a little hasty on that last update. A couple new bugs from 1.1.0 have
+been fixed.
+
+Version 1.1.0:
+Date: 2009-03-16
+
+Changes:
+Added Vista support.
+Fixed a number of minor bugs. Many thanks to Dvir Berebi for pointing
+ them out.
+
+Version 1.0.5:
+Date: 2009-03-15
+
+Changes:
+Fixed bug when operating on low bit count images (1 or 4) with odd dimensions.
+
+Version 1.0.4:
+Date: 2007-05-25
+
+Changes:
+Made function not break quite so bad when reading a PNG file on a Vista icon.
+ Now, you shouldn't be loading Vista icons anyways, but since I'm trying to
+ upgrade to Vista compatible and I need a comparison, I've got to.
+
+Version 1.0.3:
+Date: 2007-05-25
+
+Changes:
+Okay, this one was just stupid. When adding large image support, I messed up
+ and when reading, it doubled the image size. Now, it's fixed.
+I took the opportunity to also add a dummy AND map for 32 images on those
+ readers who might be looking for it (though it's not supposed to be used.)
+
+Version 1.0.2:
+Date: 2007-05-24
+
+Sorry about two versions so quickly back to back, but something needed to be
+done with speed...things were getting too slow. I'm sure you'll be okay.
+
+Changes:
+Told palette determination to stop at 257 colors or is 32 bit because the
+ palette is not used at that point and gets really slow when it starts
+ getting into the high numbers, for instance, in photographs or gradient
+ truecolor images with lots of unique colors.
+After experimenting, it appears that Windows XP does in fact support 256x256
+ images and larger by setting the entry value to 0 in the 1 byte that holds
+ that value and storing the true dimentions in the image header later. Of
+ course, it still doesn't use these images in normal operation. XP will
+ resize these and use them if no other images are available.
+Wrapped main documentation (this) to the 80th column for easier reading.
+
+Version 1.0.1:
+Date: 2007-05-23
+
+Thank you everyone for actively using the implementation on my site and
+illuminating me very quickly to a number of glaring bugs in this class.
+
+Changes:
+Added version history.
+Fixed bug with non-standard sizes in AND map reading AND writing.
+Fixed bug with palette images using non-black color in backgrounds.
+Fixed bug with height/width reversal reading files.
+
+
+Version 1.0.0:
+Date: 2007-05-17
+Original release date.
+
+
+Foreword:
+If you are simply in the effort of making an ICO file, may I recommend visiting
+my site, http://www.flobi.com/ , and clicking on floIcon. I have a fully
+functional implementation (on which the sample.php is based) where you can also
+see recent icons submitted by other visitors. No registration required, no
+intrusive ads. (As of this writing, there aren't actually any ads at all, I
+might add google ads at some point.)
+
+If you are trying to get an idea of how ICO files, work, may I recommend the
+page I used, http://www.daubnet.com/formats/ICO.html . It does not fully cover
+icon files, but it does a very good job of what it does. Any additional
+information, I will try to post at
+http://www.flobi.com/test/floIcon/more_on_icons.php for your convenience.
+
+If you are trying to get an idea of how image resource files work, I recommend
+ANY other class that deals with images. This class essentially plots points on
+the image, and that's not perticularly advanced.
+
+For any purpose, I wish you luck and feel free to contact me with any bugs,
+comments, questions, etc. - Flobi
+
+Summary:
+This class parses ICO files. It reads directly from the ICO file, headers
+first, so that if you are only retrieving 1 image, the entire ICO file need not
+be parsed. It supports merging ICO files. It supports adding PHP image
+resources as new images to the file. It has an export capability that can
+easily be written to a new (or the same) ICO file for saving ICO files. All
+sizes from 1x1 to 255x255 pixels and 1, 4, 8, 24 (plus transparency) and 32 bit
+images are supported. Image retrieval by size is supported.
+
+Included is a fully functional sample that allows users to upload ICO, GIF,
+JPEG and PNG files into a session icon file as well as remove images from the
+file and download the completed file (sample.php).
+
+Known Limitations: Does not support Vista icons. Does not support inversion
+palette method (because of the limitations of the PHP image resource).
+
+Addendum on Limitations:
+Windows Vista has added support for 256x256 size icons and now stores files as
+PNG's. This class is for older ICO files. A new class is currently under
+development that supports the new Windows Vista format.
+
+Palette inversion (my name for this technique) is the technique of using a black
+pixel (0, 0, 0) with a 1 "AND" pixel. White pixels with a 1 "AND" show
+transparent (or "don't" show). Black pixels with a 1 "AND" show inverted
+(sometimes). Because this method isn't uniformly supported or documented and
+the PHP image resource doesn't support it, I have decided to not as well. This
+does not apply to 32 bit images which include alpha transparency and no AND map.
+
+Though other functions exist, these are the only ones I believe offer usefulness
+to be public.
+floIcon public functions:
+ readICO($file, $offset = 0)
+ Loads the icon from the specified filepath ($file) starting at the
+ specified file offset ($offset). This function MERGES the loaded icon
+ images into the floIcon object.
+
+ formatICO($offset = 0)
+ Returns the current floIcon object formatted as an .ICO file with the
+ file offset altered by $offset. If there are too many or too large
+ images, causing any images saved past the 4,294,967,296th byte, this
+ will return false. (This is well outside PHP's default memory
+ allocation.)
+
+ addImage($imageResource, $desiredBitCount = 1, $pngIfWidthExceeds = 48)
+ Adds an icon image to the icon file based on the passed image resource
+ ($imageResource). It will automatically determine the bit count, but
+ can be persuaded to increase that to $desiredBitCount if that value is
+ greater than the determined bit count.
+
+ NOTE: The image resource is saved by REFERRENCE. So, if you edit it
+ then call getImage, the resource returned will be the same, editions and
+ all. Destruction of the resource will cause a new resource to be
+ created in getImage().
+
+ getImage($offset)
+ Returns the php image resource either assigned by addImage or created
+ dynamically at calltime by the data loaded with readICO(). The offset
+ specified here ($offset) is the array offset starting at 0 and ending
+ at countImages().
+
+ getBestImage($height = 32, $width = 32)
+ Returns the php images resource of the highest quality image closest to
+ the size specified. This could be useful when you only want to display
+ the icon in an icon list with a single representative icon. A resized
+ copy of the highest quality available image will be returned if there is
+ no 32 or 24 bit icon present at the speficied dimentions.
+
+ sortImagesBySize()
+ Sorts the $this->images array by order of size, smallest to largest.
+ This is the optimal sorting for icon files.
+
+ countImages()
+ Returns a count of how many images are present in the current floIcon
+ object.
+
+floIcon public variables:
+ $images
+ Contains a numerically indexed array of floIconImage objects.
+ $updated
+ True if an image has been added since load or last formatICO, otherwise
+ false.
+
+floIconImage public functions:
+ getHeader()
+ Returns an associative array containing the information from the ICO
+ image header.
+
+ getEntry()
+ Returns an associative array containing the information from the ICO
+ entry header.
+
+ NOTE: If this icon image was created by php image resource, this may not
+ have accurate information until saving from floIcon with the formatICO()
+ function. Specifically, offset information will be inaccurate.
+
+ getImageResource()
+ Returns a php image resource. Same as floIcon's getImage() function.
+
+ setImageResource($imageResource, $desiredBitCount = 1, $pngIfWidthExceeds = 48)
+ Changes this icon image based on the passed image resource
+ ($imageResource). It will automatically determine the bit count, but can
+ be persuaded to increase that to $desiredBitCount if that value is
+ greater than the determined bit count.
+
+ NOTE: The image resource is saved by REFERRENCE. So, if you edit it
+ then call getImageResource, the resource returned will be the same,
+ editions and all. Destruction of the resource will cause a new resource
+ to be created in getImageResource().
+
+ dealocateResource()
+ This destroys the image resource variable, freeing up memory. The image
+ will automatically be recreated when getImageResource is executed.
+*/
+class floIcon {
+ /*
+ * $images is an associative array of offset integer => floIconImage object
+ */
+ var $images; // Array of floIconImage objects.
+ var $updated = false;
+ function floIcon() {
+ $this->images = array();
+ }
+ function countImages() {
+ return count($this->images);
+ }
+ function getBestImage($height = 32, $width = 32) {
+ $best = false;
+ $bestEntry = array();
+ $secondBest = false;
+ $secondBestEntry = array();
+ foreach ($this->images as $key => $image) {
+ $entry = $image->getEntry();
+ $header = $image->getHeader();
+ if (!@$entry["BitCount"]) {
+ $entry["BitCount"] = $header["BitCount"];
+ }
+ if ($entry["Height"] == $height && $entry["Width"] == $width && $entry["BitCount"] == 32) {
+ return $image->getImageResource();
+ } elseif ($entry["Height"] == $height && $entry["Width"] == $width && $entry["BitCount"] > min(4, @$bestEntry["BitCount"])) {
+ $best = $image;
+ $bestEntry = $entry;
+ } elseif (
+ !$secondBest or
+ $entry["Height"] >= $secondBestEntry["Height"] &&
+ $entry["Width"] >= $secondBestEntry["Width"] &&
+ $secondBestEntry["BitCount"] >= $secondBestEntry["BitCount"] and
+ (
+ $entry["Height"] <= 64 && $entry["Height"] > $secondBestEntry["Height"] and
+ $entry["Height"] > 64 && $entry["Height"] < $secondBestEntry["Height"]
+ ) ||
+ (
+ $entry["Width"] <= 64 && $entry["Width"] > $secondBestEntry["Width"] and
+ $entry["Width"] > 64 && $entry["Width"] < $secondBestEntry["Width"]
+ ) ||
+ $secondBestEntry["BitCount"] > $secondBestEntry["BitCount"]
+ ) {
+ $secondBest = $image;
+ $secondBestEntry = $entry;
+ }
+ }
+ if ($best) {
+ return $best->getImageResource();
+ } elseif ($secondBest) {
+ if ($secondBestEntry["Width"] != $width || $secondBestEntry["Height"] != $height) {
+ $imageResource = $secondBest->getImageResource();
+ $newImageResource = imagecreatetruecolor($width, $height);
+ imagesavealpha($newImageResource, true);
+ imagealphablending($newImageResource, false);
+ imagecopyresampled($newImageResource, $imageResource, 0, 0, 0, 0, $width, $height, $secondBestEntry["Width"], $secondBestEntry["Height"]);
+ $this->addImage($newImageResource, 32);
+ return $newImageResource;
+ } else {
+ return $secondBest->getImageResource();
+ }
+ }
+ }
+ /*
+ * readICO merges the icon images from the file to the current list
+ */
+ function readICO($file, $offset = 0) {
+ if (file_exists($file) && filesize($file) > 0 && $filePointer = fopen($file, "r")) {
+ fseek($filePointer, $offset);
+ $header = unpack("SReserved/SType/SCount", fread($filePointer, 6));
+ for ($t = 0; $t < $header["Count"]; $t++) {
+ $newImage = new floIconImage();
+ if ($newImage->readImageFromICO($filePointer, 6 + ($t * 16))) {
+ $this->images[] = $newImage;
+ }
+ }
+ fclose($filePointer);
+ }
+ }
+ function sortImagesBySize() {
+ usort($this->images, array("floIcon", "_cmpObj"));
+ }
+ function formatICO($offset = 0) {
+ $this->updated = false;
+ $output = "";
+ $output .= pack("SSS", 0, 1, count($this->images));
+ $output_images = "";
+ foreach ($this->images as $image) {
+ $newImageOffset = $offset + // Whatever offset we've been given.
+ 6 // Header.
+ + (count($this->images) * 16) // Entries.
+ + strlen($output_images);
+ if ($newImageOffset > pow(256, 4) /* 4 bytes available for position */ ) {
+ return false;
+ }
+ $output .= $image->formatEntryForIco($newImageOffset); // The images already in there.
+ $output_images .= $image->formatImageForIco();
+ }
+ return $output.$output_images;
+ }
+ function _cmpObj($a, $b) {
+ $aSize = $a->getSize();
+ $bSize = $b->getSize();
+ if ($aSize == $bSize) {
+ return 0;
+ }
+ return ($aSize > $bSize)?1:-1;
+ }
+
+ function addImage($imageResource, $desiredBitCount = 1, $pngIfWidthExceeds = 48) {
+ $this->updated = true;
+ $newImage = new floIconImage();
+ $newImage->setImageResource($imageResource, $desiredBitCount, $pngIfWidthExceeds);
+ $this->images[] = $newImage;
+ }
+ function getImage($offset) {
+ if (isset($this->images[$offset])) {
+ return $this->images[$offset]->getImageResource();
+ } else {
+ return false;
+ }
+ }
+ /*
+ * getSize computes the
+ */
+ function getSize() {
+ // Compute headers.
+ $computedSize = 6; // Always 6 bytes.
+ // Add image entry headers
+ $computedSize += count($this->images) * 16; // Entry headers are always 16 bytes.
+ foreach ($this->images as $image) {
+ $computedSize += $image->getSize() + $image->getHeaderSize(); // getSize does not include the header.
+ }
+ }
+}
+class floIconImage {
+ var $_imageResource = null;
+ var $_entry = "";
+ var $_entryIconFormat = "";
+ var $_header = "";
+ var $_headerIconFormat = "";
+ var $_imageIconFormat = ""; // Includes palette and mask.
+ function formatEntryForIco($offset) {
+ // Format the entry, this has to be done here because we need the offset to get the full information.
+ $this->_entry["FileOffset"] = $offset;
+ $this->_entryIconFormat = pack("CCCCSSLL",
+ $this->_entry["Width"]>=256?0:$this->_entry["Width"],
+ $this->_entry["Height"]>=256?0:$this->_entry["Height"],
+ $this->_entry["ColorCount"],
+ $this->_entry["Reserved"],
+ $this->_entry["Planes"],
+ $this->_entry["BitCount"],
+ $this->_entry["SizeInBytes"],
+ $this->_entry["FileOffset"]
+ );
+ return $this->_entryIconFormat;
+ }
+ function formatImageForIco() {
+ // Format the entry, this has to be done here because we need the offset to get the full information.
+ return ($this->_headerIconFormat.$this->_imageIconFormat);
+ }
+
+ // Will move $bitCount UP to $desiredBitCount if $bitCount is found to be less than it.
+ function setImageResource($imageResource, $desiredBitCount = 1, $pngIfWidthExceeds = 48) {
+ imagesavealpha($imageResource, true);
+ imagealphablending($imageResource, false);
+ $height = imagesy($imageResource);
+ $width = imagesx($imageResource);
+
+ // Parse resource to determine header and icon format
+
+ // Find Palette information
+ $is_32bit = false; // Start with an assumption and get proven wrong.
+ $hasTransparency = 0;
+ $blackColor = false;
+ $bitCount = 0;
+ $realPalette = array();
+ $realIndexPalette = array();
+ for ($x = 0; $x < $width && !$is_32bit; $x++) {
+ for ($y = 0; $y < $height && !$is_32bit; $y++) {
+ $colorIndex = imagecolorat($imageResource, $x, $y);
+ $color = imagecolorsforindex($imageResource, $colorIndex);
+ if ($color["alpha"] == 0) {
+ // No point continuing if there's more than 256 colors or it's 32bit.
+ if (count($realPalette) < 257 && !$is_32bit) {
+ $inRealPalette = false;
+ foreach($realPalette as $realPaletteKey => $realPaletteColor) {
+ if (
+ $color["red"] == $realPaletteColor["red"] and
+ $color["green"] == $realPaletteColor["green"] and
+ $color["blue"] == $realPaletteColor["blue"]
+ ) {
+ $inRealPalette = $realPaletteKey;
+ break;
+ }
+ }
+ if ($inRealPalette === false) {
+ $realIndexPalette[$colorIndex] = count($realPalette);
+ if (
+ $blackColor === false and
+ $color["red"] == 0 and
+ $color["green"] == 0 and
+ $color["blue"] == 0
+ ) {
+ $blackColor = count($realPalette);
+ }
+ $realPalette[] = $color;
+ } else {
+ $realIndexPalette[$colorIndex] = $inRealPalette;
+ }
+ }
+ } else {
+ $hasTransparency = 1;
+ }
+ if ($color["alpha"] != 0 && $color["alpha"] != 127) {
+ $is_32bit = true;
+ }
+ }
+ }
+ if ($is_32bit) {
+ $colorCount = 0;
+ $bitCount = 32;
+ } else {
+ if ($hasTransparency && $blackColor === false) {
+ // We need a black color to facilitate transparency. Unfortunately, this can
+ // increase the palette size by 1 if there's no other black color.
+ $blackColor = count($realPalette);
+ $color = array(
+ "red" => 0,
+ "blue" => 0,
+ "green" => 0,
+ "alpha" => 0
+ );
+ $realPalette[] = $color;
+ }
+ $colorCount = count($realPalette);
+ if ($colorCount > 256 || $colorCount == 0) {
+ $bitCount = 24;
+ } elseif ($colorCount > 16) {
+ $bitCount = 8;
+ // 8 bit
+ } elseif ($colorCount > 2) {
+ $bitCount = 4;
+ // 4 bit
+ } else {
+ $bitCount = 1;
+ // 1 bit
+ }
+ if ($desiredBitCount > $bitCount) {
+ $bitCount = $desiredBitCount;
+ }
+ switch ($bitCount) {
+ case 24:
+ $colorCount = 0;
+ break;
+ case 8:
+ $colorCount = 256;
+ break;
+ case 4:
+ $colorCount = 16;
+ break;
+ case 1:
+ $colorCount = 2;
+ break;
+ }
+ }
+ // Create $this->_imageIconFormat...
+ $this->_imageIconFormat = "";
+ if ($bitCount < 24) {
+ $iconPalette = array();
+ // Save Palette
+ foreach ($realIndexPalette as $colorIndex => $paletteIndex) {
+ $color = $realPalette[$paletteIndex];
+ $this->_imageIconFormat .= pack("CCCC", $color["blue"], $color["green"], $color["red"], 0);
+ }
+ while (strlen($this->_imageIconFormat) < $colorCount * 4) {
+ $this->_imageIconFormat .= pack("CCCC", 0, 0, 0, 0);
+ }
+ // Save Each Pixel as Palette Entry
+ $byte = 0; // For $bitCount < 8 math
+ $bitPosition = 0; // For $bitCount < 8 math
+ for ($y = 0; $y < $height; $y++) {
+ for ($x = 0; $x < $width; $x++) {
+ $color = imagecolorat($imageResource, $x, $height-$y-1);
+ if (isset($realIndexPalette[$color])) {
+ $color = $realIndexPalette[$color];
+ } else {
+ $color = $blackColor;
+ }
+
+ if ($bitCount < 8) {
+ $bitPosition += $bitCount;
+ $colorAdjusted = $color * pow(2, 8 - $bitPosition);
+ $byte += $colorAdjusted;
+ if ($bitPosition == 8) {
+ $this->_imageIconFormat .= chr($byte);
+ $bitPosition = 0;
+ $byte = 0;
+ }
+ } else {
+ $this->_imageIconFormat .= chr($color);
+ }
+ }
+ // Each row ends with dumping the remaining bits and filling up to the 32bit line with 0's.
+ if ($bitPosition) {
+ $this->_imageIconFormat .= chr($byte);
+ $bitPosition = 0;
+ $byte = 0;
+ }
+ if (strlen($this->_imageIconFormat)%4) $this->_imageIconFormat .= str_repeat(chr(0), 4-(strlen($this->_imageIconFormat)%4));
+ }
+ } else {
+ // Save each pixel.
+ for ($y = 0; $y < $height; $y++) {
+ for ($x = 0; $x < $width; $x++) {
+ $color = imagecolorat($imageResource, $x, $height-$y-1);
+ $color = imagecolorsforindex($imageResource, $color);
+ if ($bitCount == 24) {
+ if ($color["alpha"]) {
+ $this->_imageIconFormat .= pack("CCC", 0, 0, 0);
+ } else {
+ $this->_imageIconFormat .= pack("CCC", $color["blue"], $color["green"], $color["red"]);
+ }
+ } else {
+ $color["alpha"] = round((127-$color["alpha"]) / 127 * 255);
+ $this->_imageIconFormat .= pack("CCCC", $color["blue"], $color["green"], $color["red"], $color["alpha"]);
+ }
+ }
+ if (strlen($this->_imageIconFormat)%4) $this->_imageIconFormat .= str_repeat(chr(0), 4-(strlen($this->_imageIconFormat)%4));
+ }
+ }
+ // save AND map (transparency)
+ $byte = 0; // For $bitCount < 8 math
+ $bitPosition = 0; // For $bitCount < 8 math
+ for ($y = 0; $y < $height; $y++) {
+ for ($x = 0; $x < $width; $x++) {
+ if ($bitCount < 32) {
+ $color = imagecolorat($imageResource, $x, $height-$y-1);
+ $color = imagecolorsforindex($imageResource, $color);
+ $color = $color["alpha"] == 127?1:0;
+ } else {
+ $color = 0;
+ }
+
+ $bitPosition += 1;
+ $colorAdjusted = $color * pow(2, 8 - $bitPosition);
+ $byte += $colorAdjusted;
+ if ($bitPosition == 8) {
+ $this->_imageIconFormat .= chr($byte);
+ $bitPosition = 0;
+ $byte = 0;
+ }
+ }
+ // Each row ends with dumping the remaining bits and filling up to the 32bit line with 0's.
+ if ($bitPosition) {
+ $this->_imageIconFormat .= chr($byte);
+ $bitPosition = 0; // For $bitCount < 8 math
+ $byte = 0;
+ }
+ while (strlen($this->_imageIconFormat)%4) {
+ $this->_imageIconFormat .= chr(0);
+ }
+ }
+ if ($colorCount >= 256) {
+ $colorCount = 0;
+ }
+ // Create header information...
+ $this->_header = array(
+ "Size" => 40,
+ "Width" => $width,
+ "Height" => $height*2,
+ "Planes" => 1,
+ "BitCount" => $bitCount,
+ "Compression" => 0,
+ "ImageSize" => strlen($this->_imageIconFormat),
+ "XpixelsPerM" => 0,
+ "YpixelsPerM" => 0,
+ "ColorsUsed" => $colorCount,
+ "ColorsImportant" => 0,
+ );
+ $this->_headerIconFormat = pack("LLLSSLLLLLL",
+ $this->_header["Size"],
+ $this->_header["Width"],
+ $this->_header["Height"],
+
+ $this->_header["Planes"],
+ $this->_header["BitCount"],
+
+ $this->_header["Compression"],
+ $this->_header["ImageSize"],
+ $this->_header["XpixelsPerM"],
+ $this->_header["YpixelsPerM"],
+ $this->_header["ColorsUsed"],
+ $this->_header["ColorsImportant"]
+ );
+ $this->_entry = array(
+ "Width" => $width,
+ "Height" => $height,
+ "ColorCount" => $colorCount,
+ "Reserved" => 0,
+ "Planes" => 1,
+ "BitCount" => $bitCount,
+ "SizeInBytes" => $this->_header["Size"] + $this->_header["ImageSize"],
+ "FileOffset" => -1,
+ );
+ $this->_entryIconFormat = ""; // This won't get set until it's needed with the offset.
+ $this->_imageResource = $imageResource;
+
+ // Make png if width exceeds limit for old ico style
+ if ($width > $pngIfWidthExceeds) {
+ // I wish there were a better way to get the info than this. If anyone needs a version that doesn't use OB, I can have one that creates a TMP file.
+ ob_start();
+ imagepng($imageResource);
+ $imageAsPng = ob_get_contents();
+ ob_end_clean();
+ $this->_headerIconFormat = "";
+ $this->_imageIconFormat = $imageAsPng;
+ }
+
+
+ }
+ function _createImageResource() {
+ if ($newImage = @imagecreatefromstring($this->_headerIconFormat.$this->_imageIconFormat)) {
+ // Vista supports PNG.
+ $this->_headerIconFormat = "";
+ $this->_imageIconFormat = $this->_headerIconFormat.$this->_imageIconFormat;
+ imagesavealpha($newImage, true);
+ imagealphablending($newImage, false);
+ $this->_imageResource = $newImage;
+ } elseif ($this->_entry["Height"] <= 1024 && $this->_entry["Width"] <= 1024) {
+ $newImage = imagecreatetruecolor($this->_entry["Width"], $this->_entry["Height"]);
+ imagesavealpha($newImage, true);
+ imagealphablending($newImage, false);
+ $readPosition = 0;
+ $palette = array();
+ if ($this->_header["BitCount"] < 24) {
+ // Read Palette for low bitcounts
+ $colorsInPalette = $this->_header["ColorsUsed"]?$this->_header["ColorsUsed"]:$this->_entry["ColorCount"];
+ for ($t = 0; $t < pow(2, $this->_header["BitCount"]); $t++) {
+ $blue = ord($this->_imageIconFormat[$readPosition++]);
+ $green = ord($this->_imageIconFormat[$readPosition++]);
+ $red = ord($this->_imageIconFormat[$readPosition++]);
+ $readPosition++; // Unused "Reserved" value.
+ $existingPaletteEntry = imagecolorexactalpha($newImage, $red, $green, $blue, 0);
+ if ($existingPaletteEntry >= 0) {
+ $palette[] = $existingPaletteEntry;
+ } else {
+ $palette[] = imagecolorallocatealpha($newImage, $red, $green, $blue, 0);
+ }
+ }
+ // XOR
+ for ($y = 0; $y < $this->_entry["Height"]; $y++) {
+ $colors = array();
+ for ($x = 0; $x < $this->_entry["Width"]; $x++) {
+ if ($this->_header["BitCount"] < 8) {
+ $color = array_shift($colors);
+ if (is_null($color)) {
+ $byte = ord($this->_imageIconFormat[$readPosition++]);
+ $tmp_color = 0;
+ for ($t = 7; $t >= 0; $t--) {
+ $bit_value = pow(2, $t);
+ $bit = floor($byte / $bit_value);
+ $byte = $byte - ($bit * $bit_value);
+ $tmp_color += $bit * pow(2, $t%$this->_header["BitCount"]);
+ if ($t%$this->_header["BitCount"] == 0) {
+ array_push($colors, $tmp_color);
+ $tmp_color = 0;
+ }
+ }
+ $color = array_shift($colors);
+ }
+ } else {
+ $color = ord($this->_imageIconFormat[$readPosition++]);
+ }
+ imagesetpixel($newImage, $x, $this->_entry["Height"]-$y-1, $palette[$color]) or die("can't set pixel");
+ }
+ // All rows end on the 32 bit
+ if ($readPosition%4) $readPosition += 4-($readPosition%4);
+ }
+ } else {
+ // BitCount >= 24, No Palette.
+ // marking position because some icons mark all pixels transparent when using an AND map.
+ $markPosition = $readPosition;
+ $retry = true;
+ $ignoreAlpha = false;
+ while ($retry) {
+ $alphas = array();
+ $retry = false;
+ for ($y = 0; $y < $this->_entry["Height"] and !$retry; $y++) {
+ for ($x = 0; $x < $this->_entry["Width"] and !$retry; $x++) {
+ $blue = ord($this->_imageIconFormat[$readPosition++]);
+ $green = ord($this->_imageIconFormat[$readPosition++]);
+ $red = ord($this->_imageIconFormat[$readPosition++]);
+ if ($this->_header["BitCount"] < 32) {
+ $alpha = 0;
+ } elseif($ignoreAlpha) {
+ $alpha = 0;
+ $readPosition++;
+ } else {
+ $alpha = ord($this->_imageIconFormat[$readPosition++]);
+ $alphas[$alpha] = $alpha;
+ $alpha = 127-round($alpha/255*127);
+ }
+ $paletteEntry = imagecolorexactalpha($newImage, $red, $green, $blue, $alpha);
+ if ($paletteEntry < 0) {
+ $paletteEntry = imagecolorallocatealpha($newImage, $red, $green, $blue, $alpha);
+ }
+ imagesetpixel($newImage, $x, $this->_entry["Height"]-$y-1, $paletteEntry) or die("can't set pixel");
+ }
+ if ($readPosition%4) $readPosition += 4-($readPosition%4);
+ }
+ if ($this->_header["BitCount"] == 32 && isset($alphas[0]) && count($alphas) == 1) {
+ $retry = true;
+ $readPosition = $markPosition;
+ $ignoreAlpha = true;
+ }
+ }
+
+ }
+ // AND map
+ if ($this->_header["BitCount"] < 32 || $ignoreAlpha) {
+ // Bitcount == 32, No AND (if using alpha).
+ $palette[-1] = imagecolorallocatealpha($newImage, 0, 0, 0, 127);
+ imagecolortransparent($newImage, $palette[-1]);
+ for ($y = 0; $y < $this->_entry["Height"]; $y++) {
+ $colors = array();
+ for ($x = 0; $x < $this->_entry["Width"]; $x++) {
+ $color = array_shift($colors);
+ if (is_null($color)) {
+ $byte = ord($this->_imageIconFormat[$readPosition++]);
+ $tmp_color = 0;
+ for ($t = 7; $t >= 0; $t--) {
+ $bit_value = pow(2, $t);
+ $bit = floor($byte / $bit_value);
+ $byte = $byte - ($bit * $bit_value);
+ array_push($colors, $bit);
+ }
+ $color = array_shift($colors);
+ }
+ if ($color) {
+ imagesetpixel($newImage, $x, $this->_entry["Height"]-$y-1, $palette[-1]) or die("can't set pixel");
+ }
+ }
+ // All rows end on the 32 bit.
+ if ($readPosition%4) $readPosition += 4-($readPosition%4);
+ }
+ }
+ if ($this->_header["BitCount"] < 24) {
+ imagetruecolortopalette($newImage, true, pow(2, $this->_header["BitCount"]));
+ }
+ }
+ $this->_imageResource = $newImage;
+ }
+ // this function expects that $_entry, $_header and $_imageIconFormat have already been read, specifically from readImageFromICO.
+ // Don't call this function except from there.
+ function readImageFromICO($filePointer, $entryOffset) {
+ $tmpPosition = ftell($filePointer); // So any other applications won't loose their position.
+ // Get the entry.
+ fseek($filePointer, $entryOffset);
+ $this->_entryIconFormat = fread($filePointer, 16);
+ $this->_entry = unpack("CWidth/CHeight/CColorCount/CReserved/SPlanes/SBitCount/LSizeInBytes/LFileOffset", $this->_entryIconFormat);
+
+ if ($this->_entry["SizeInBytes"] > 16384)
+ return false;
+
+ // Position the file pointer.
+ fseek($filePointer, $this->_entry["FileOffset"]);
+
+ // Get the header.
+ $this->_headerIconFormat = fread($filePointer, 40);
+ $this->_header = unpack("LSize/LWidth/LHeight/SPlanes/SBitCount/LCompression/LImageSize/LXpixelsPerM/LYpixelsPerM/LColorsUsed/LColorsImportant", $this->_headerIconFormat);
+
+ // Get the image.
+ $this->_imageIconFormat = @fread($filePointer, $this->_entry["SizeInBytes"] - strlen($this->_headerIconFormat));
+ fseek($filePointer, $tmpPosition); // So any other applications won't loose their position.
+
+ if ($newImage = @imagecreatefromstring($this->_headerIconFormat.$this->_imageIconFormat)) {
+ // This is a PNG, the supposed header information is useless.
+ $this->_header = array (
+ "Size" => 0,
+ "Width" => imagesx($newImage),
+ "Height" => imagesy($newImage) * 2,
+ "Planes" => 0,
+ "BitCount" => 32,
+ "Compression" => 0,
+ "ImageSize" => strlen($this->_imageIconFormat),
+ "XpixelsPerM" => 0,
+ "YpixelsPerM" => 0,
+ "ColorsUsed" => 0,
+ "ColorsImportant" => 0,
+ );
+ imagedestroy($newImage);
+ }
+
+ // Support for larger images requires entry marked as 0.
+ if ($this->_entry["Width"] == 0) {
+ $this->_entry["Width"] = $this->_header["Width"];
+ }
+ if ($this->_entry["Height"] == 0) {
+ $this->_entry["Height"] = $this->_header["Height"]/2;
+ }
+
+ return true;
+ }
+ function getHeader() {
+ return $this->_header;
+ }
+ function getEntry() {
+ return $this->_entry;
+ }
+ function floIconImage() {
+ }
+ function getHeaderSize() {
+ return strlen($this->_headerIconFormat);
+ }
+ function getSize() {
+ return strlen($this->_imageIconFormat);
+ }
+ function getImageResource() {
+ if (!$this->_imageResource) $this->_createImageResource();
+ return $this->_imageResource;
+ }
+ function dealocateResource() {
+ @imagedestroy($this->_imageResource);
+ $this->_imageResource = null;
+ }
+}
+?>
diff --git a/lib/gettext/gettext.inc b/lib/gettext/gettext.inc
index 399a0f24b..00b966692 100644
--- a/lib/gettext/gettext.inc
+++ b/lib/gettext/gettext.inc
@@ -32,7 +32,6 @@ LC_MESSAGES 5
LC_ALL 6
*/
-
// LC_MESSAGES is not available if php-gettext is not loaded
// while the other constants are already available from session extension.
if (!defined('LC_MESSAGES')) {
@@ -229,7 +228,9 @@ function _setlocale($category, $locale) {
}
// Allow locale to be changed on the go for one translation domain.
global $text_domains, $default_domain;
- unset($text_domains[$default_domain]->l10n);
+ if (array_key_exists($default_domain, $text_domains)) {
+ unset($text_domains[$default_domain]->l10n);
+ }
return $CURRENTLOCALE;
}
}
@@ -288,9 +289,9 @@ function __($msgid) {
/**
* Plural version of gettext.
*/
-function _ngettext($single, $plural, $number) {
+function _ngettext($singular, $plural, $number) {
$l10n = _get_reader();
- return _encode($l10n->ngettext($single, $plural, $number));
+ return _encode($l10n->ngettext($singular, $plural, $number));
}
/**
@@ -304,9 +305,9 @@ function _dgettext($domain, $msgid) {
/**
* Plural version of dgettext.
*/
-function _dngettext($domain, $single, $plural, $number) {
+function _dngettext($domain, $singular, $plural, $number) {
$l10n = _get_reader($domain);
- return _encode($l10n->ngettext($single, $plural, $number));
+ return _encode($l10n->ngettext($singular, $plural, $number));
}
/**
@@ -319,9 +320,9 @@ function _dcgettext($domain, $msgid, $category) {
/**
* Plural version of dcgettext.
*/
-function _dcngettext($domain, $single, $plural, $number, $category) {
+function _dcngettext($domain, $singular, $plural, $number, $category) {
$l10n = _get_reader($domain, $category);
- return _encode($l10n->ngettext($single, $plural, $number));
+ return _encode($l10n->ngettext($singular, $plural, $number));
}
/**
@@ -405,29 +406,29 @@ function T_($msgid) {
if (_check_locale_and_function()) return _($msgid);
return __($msgid);
}
-function T_ngettext($single, $plural, $number) {
+function T_ngettext($singular, $plural, $number) {
if (_check_locale_and_function())
- return ngettext($single, $plural, $number);
- else return _ngettext($single, $plural, $number);
+ return ngettext($singular, $plural, $number);
+ else return _ngettext($singular, $plural, $number);
}
function T_dgettext($domain, $msgid) {
if (_check_locale_and_function()) return dgettext($domain, $msgid);
else return _dgettext($domain, $msgid);
}
-function T_dngettext($domain, $single, $plural, $number) {
+function T_dngettext($domain, $singular, $plural, $number) {
if (_check_locale_and_function())
- return dngettext($domain, $single, $plural, $number);
- else return _dngettext($domain, $single, $plural, $number);
+ return dngettext($domain, $singular, $plural, $number);
+ else return _dngettext($domain, $singular, $plural, $number);
}
function T_dcgettext($domain, $msgid, $category) {
if (_check_locale_and_function())
return dcgettext($domain, $msgid, $category);
else return _dcgettext($domain, $msgid, $category);
}
-function T_dcngettext($domain, $single, $plural, $number, $category) {
+function T_dcngettext($domain, $singular, $plural, $number, $category) {
if (_check_locale_and_function())
- return dcngettext($domain, $single, $plural, $number, $category);
- else return _dcngettext($domain, $single, $plural, $number, $category);
+ return dcngettext($domain, $singular, $plural, $number, $category);
+ else return _dcngettext($domain, $singular, $plural, $number, $category);
}
function T_pgettext($context, $msgid) {
@@ -451,26 +452,27 @@ function T_dcpgettext($domain, $context, $msgid, $category) {
return _dcpgettext($domain, $context, $msgid, $category);
}
-function T_npgettext($context, $singular, $plural) {
+function T_npgettext($context, $singular, $plural, $number) {
if (_check_locale_and_function('npgettext'))
- return npgettext($context, $single, $plural, $number);
+ return npgettext($context, $singular, $plural, $number);
else
- return _npgettext($context, $single, $plural, $number);
+ return _npgettext($context, $singular, $plural, $number);
}
-function T_dnpgettext($domain, $context, $singular, $plural) {
+function T_dnpgettext($domain, $context, $singular, $plural, $number) {
if (_check_locale_and_function('dnpgettext'))
- return dnpgettext($domain, $context, $single, $plural, $number);
+ return dnpgettext($domain, $context, $singular, $plural, $number);
else
- return _dnpgettext($domain, $context, $single, $plural, $number);
+ return _dnpgettext($domain, $context, $singular, $plural, $number);
}
-function T_dcnpgettext($domain, $context, $singular, $plural, $category) {
+function T_dcnpgettext($domain, $context, $singular, $plural,
+ $number, $category) {
if (_check_locale_and_function('dcnpgettext'))
- return dcnpgettext($domain, $context, $single,
+ return dcnpgettext($domain, $context, $singular,
$plural, $number, $category);
else
- return _dcnpgettext($domain, $context, $single,
+ return _dcnpgettext($domain, $context, $singular,
$plural, $number, $category);
}
@@ -494,39 +496,39 @@ if (!function_exists('gettext')) {
function _($msgid) {
return __($msgid);
}
- function ngettext($single, $plural, $number) {
- return _ngettext($single, $plural, $number);
+ function ngettext($singular, $plural, $number) {
+ return _ngettext($singular, $plural, $number);
}
function dgettext($domain, $msgid) {
return _dgettext($domain, $msgid);
}
- function dngettext($domain, $single, $plural, $number) {
- return _dngettext($domain, $single, $plural, $number);
+ function dngettext($domain, $singular, $plural, $number) {
+ return _dngettext($domain, $singular, $plural, $number);
}
function dcgettext($domain, $msgid, $category) {
return _dcgettext($domain, $msgid, $category);
}
- function dcngettext($domain, $single, $plural, $number, $category) {
- return _dcngettext($domain, $single, $plural, $number, $category);
+ function dcngettext($domain, $singular, $plural, $number, $category) {
+ return _dcngettext($domain, $singular, $plural, $number, $category);
}
function pgettext($context, $msgid) {
return _pgettext($context, $msgid);
}
- function npgettext($context, $single, $plural, $number) {
- return _npgettext($context, $single, $plural, $number);
+ function npgettext($context, $singular, $plural, $number) {
+ return _npgettext($context, $singular, $plural, $number);
}
function dpgettext($domain, $context, $msgid) {
return _dpgettext($domain, $context, $msgid);
}
- function dnpgettext($domain, $context, $single, $plural, $number) {
- return _dnpgettext($domain, $context, $single, $plural, $number);
+ function dnpgettext($domain, $context, $singular, $plural, $number) {
+ return _dnpgettext($domain, $context, $singular, $plural, $number);
}
function dcpgettext($domain, $context, $msgid, $category) {
return _dcpgettext($domain, $context, $msgid, $category);
}
- function dcnpgettext($domain, $context, $single, $plural,
+ function dcnpgettext($domain, $context, $singular, $plural,
$number, $category) {
- return _dcnpgettext($domain, $context, $single, $plural,
+ return _dcnpgettext($domain, $context, $singular, $plural,
$number, $category);
}
}
diff --git a/lib/gettext/gettext.php b/lib/gettext/gettext.php
index a121f9c7e..5064047cb 100755
--- a/lib/gettext/gettext.php
+++ b/lib/gettext/gettext.php
@@ -409,12 +409,23 @@ class gettext_reader {
function pgettext($context, $msgid) {
$key = $context . chr(4) . $msgid;
- return $this->translate($key);
+ $ret = $this->translate($key);
+ if (strpos($ret, "\004") !== FALSE) {
+ return $msgid;
+ } else {
+ return $ret;
+ }
}
function npgettext($context, $singular, $plural, $number) {
- $singular = $context . chr(4) . $singular;
- return $this->ngettext($singular, $plural, $number);
+ $key = $context . chr(4) . $singular;
+ $ret = $this->ngettext($key, $plural, $number);
+ if (strpos($ret, "\004") !== FALSE) {
+ return $singular;
+ } else {
+ return $ret;
+ }
+
}
}
diff --git a/lib/htmLawed.php b/lib/htmLawed.php
deleted file mode 100644
index 3ef5a971e..000000000
--- a/lib/htmLawed.php
+++ /dev/null
@@ -1,723 +0,0 @@
-<?php
-
-/*
-htmLawed 1.1.14, 8 August 2012
-Copyright Santosh Patnaik
-Dual licensed with LGPL 3 and GPL 2+
-A PHP Labware internal utility; www.bioinformatics.org/phplabware/internal_utilities/htmLawed
-
-See htmLawed_README.txt/htm
-*/
-
-function htmLawed($t, $C=1, $S=array()){
-$C = is_array($C) ? $C : array();
-if(!empty($C['valid_xhtml'])){
- $C['elements'] = empty($C['elements']) ? '*-center-dir-font-isindex-menu-s-strike-u' : $C['elements'];
- $C['make_tag_strict'] = isset($C['make_tag_strict']) ? $C['make_tag_strict'] : 2;
- $C['xml:lang'] = isset($C['xml:lang']) ? $C['xml:lang'] : 2;
-}
-// config eles
-$e = array('a'=>1, 'abbr'=>1, 'acronym'=>1, 'address'=>1, 'applet'=>1, 'area'=>1, 'b'=>1, 'bdo'=>1, 'big'=>1, 'blockquote'=>1, 'br'=>1, 'button'=>1, 'caption'=>1, 'center'=>1, 'cite'=>1, 'code'=>1, 'col'=>1, 'colgroup'=>1, 'dd'=>1, 'del'=>1, 'dfn'=>1, 'dir'=>1, 'div'=>1, 'dl'=>1, 'dt'=>1, 'em'=>1, 'embed'=>1, 'fieldset'=>1, 'font'=>1, 'form'=>1, 'h1'=>1, 'h2'=>1, 'h3'=>1, 'h4'=>1, 'h5'=>1, 'h6'=>1, 'hr'=>1, 'i'=>1, 'iframe'=>1, 'img'=>1, 'input'=>1, 'ins'=>1, 'isindex'=>1, 'kbd'=>1, 'label'=>1, 'legend'=>1, 'li'=>1, 'map'=>1, 'menu'=>1, 'noscript'=>1, 'object'=>1, 'ol'=>1, 'optgroup'=>1, 'option'=>1, 'p'=>1, 'param'=>1, 'pre'=>1, 'q'=>1, 'rb'=>1, 'rbc'=>1, 'rp'=>1, 'rt'=>1, 'rtc'=>1, 'ruby'=>1, 's'=>1, 'samp'=>1, 'script'=>1, 'select'=>1, 'small'=>1, 'span'=>1, 'strike'=>1, 'strong'=>1, 'sub'=>1, 'sup'=>1, 'table'=>1, 'tbody'=>1, 'td'=>1, 'textarea'=>1, 'tfoot'=>1, 'th'=>1, 'thead'=>1, 'tr'=>1, 'tt'=>1, 'u'=>1, 'ul'=>1, 'var'=>1); // 86/deprecated+embed+ruby
-if(!empty($C['safe'])){
- unset($e['applet'], $e['embed'], $e['iframe'], $e['object'], $e['script']);
-}
-$x = !empty($C['elements']) ? str_replace(array("\n", "\r", "\t", ' '), '', $C['elements']) : '*';
-if($x == '-*'){$e = array();}
-elseif(strpos($x, '*') === false){$e = array_flip(explode(',', $x));}
-else{
- if(isset($x[1])){
- preg_match_all('`(?:^|-|\+)[^\-+]+?(?=-|\+|$)`', $x, $m, PREG_SET_ORDER);
- for($i=count($m); --$i>=0;){$m[$i] = $m[$i][0];}
- foreach($m as $v){
- if($v[0] == '+'){$e[substr($v, 1)] = 1;}
- if($v[0] == '-' && isset($e[($v = substr($v, 1))]) && !in_array('+'. $v, $m)){unset($e[$v]);}
- }
- }
-}
-$C['elements'] =& $e;
-// config attrs
-$x = !empty($C['deny_attribute']) ? str_replace(array("\n", "\r", "\t", ' '), '', $C['deny_attribute']) : '';
-$x = array_flip((isset($x[0]) && $x[0] == '*') ? explode('-', $x) : explode(',', $x. (!empty($C['safe']) ? ',on*' : '')));
-if(isset($x['on*'])){
- unset($x['on*']);
- $x += array('onblur'=>1, 'onchange'=>1, 'onclick'=>1, 'ondblclick'=>1, 'onfocus'=>1, 'onkeydown'=>1, 'onkeypress'=>1, 'onkeyup'=>1, 'onmousedown'=>1, 'onmousemove'=>1, 'onmouseout'=>1, 'onmouseover'=>1, 'onmouseup'=>1, 'onreset'=>1, 'onselect'=>1, 'onsubmit'=>1);
-}
-$C['deny_attribute'] = $x;
-// config URL
-$x = (isset($C['schemes'][2]) && strpos($C['schemes'], ':')) ? strtolower($C['schemes']) : 'href: aim, feed, file, ftp, gopher, http, https, irc, mailto, news, nntp, sftp, ssh, telnet; *:file, http, https';
-$C['schemes'] = array();
-foreach(explode(';', str_replace(array(' ', "\t", "\r", "\n"), '', $x)) as $v){
- $x = $x2 = null; list($x, $x2) = explode(':', $v, 2);
- if($x2){$C['schemes'][$x] = array_flip(explode(',', $x2));}
-}
-if(!isset($C['schemes']['*'])){$C['schemes']['*'] = array('file'=>1, 'http'=>1, 'https'=>1,);}
-if(!empty($C['safe']) && empty($C['schemes']['style'])){$C['schemes']['style'] = array('!'=>1);}
-$C['abs_url'] = isset($C['abs_url']) ? $C['abs_url'] : 0;
-if(!isset($C['base_url']) or !preg_match('`^[a-zA-Z\d.+\-]+://[^/]+/(.+?/)?$`', $C['base_url'])){
- $C['base_url'] = $C['abs_url'] = 0;
-}
-// config rest
-$C['and_mark'] = empty($C['and_mark']) ? 0 : 1;
-$C['anti_link_spam'] = (isset($C['anti_link_spam']) && is_array($C['anti_link_spam']) && count($C['anti_link_spam']) == 2 && (empty($C['anti_link_spam'][0]) or hl_regex($C['anti_link_spam'][0])) && (empty($C['anti_link_spam'][1]) or hl_regex($C['anti_link_spam'][1]))) ? $C['anti_link_spam'] : 0;
-$C['anti_mail_spam'] = isset($C['anti_mail_spam']) ? $C['anti_mail_spam'] : 0;
-$C['balance'] = isset($C['balance']) ? (bool)$C['balance'] : 1;
-$C['cdata'] = isset($C['cdata']) ? $C['cdata'] : (empty($C['safe']) ? 3 : 0);
-$C['clean_ms_char'] = empty($C['clean_ms_char']) ? 0 : $C['clean_ms_char'];
-$C['comment'] = isset($C['comment']) ? $C['comment'] : (empty($C['safe']) ? 3 : 0);
-$C['css_expression'] = empty($C['css_expression']) ? 0 : 1;
-$C['direct_list_nest'] = empty($C['direct_list_nest']) ? 0 : 1;
-$C['hexdec_entity'] = isset($C['hexdec_entity']) ? $C['hexdec_entity'] : 1;
-$C['hook'] = (!empty($C['hook']) && function_exists($C['hook'])) ? $C['hook'] : 0;
-$C['hook_tag'] = (!empty($C['hook_tag']) && function_exists($C['hook_tag'])) ? $C['hook_tag'] : 0;
-$C['keep_bad'] = isset($C['keep_bad']) ? $C['keep_bad'] : 6;
-$C['lc_std_val'] = isset($C['lc_std_val']) ? (bool)$C['lc_std_val'] : 1;
-$C['make_tag_strict'] = isset($C['make_tag_strict']) ? $C['make_tag_strict'] : 1;
-$C['named_entity'] = isset($C['named_entity']) ? (bool)$C['named_entity'] : 1;
-$C['no_deprecated_attr'] = isset($C['no_deprecated_attr']) ? $C['no_deprecated_attr'] : 1;
-$C['parent'] = isset($C['parent'][0]) ? strtolower($C['parent']) : 'body';
-$C['show_setting'] = !empty($C['show_setting']) ? $C['show_setting'] : 0;
-$C['style_pass'] = empty($C['style_pass']) ? 0 : 1;
-$C['tidy'] = empty($C['tidy']) ? 0 : $C['tidy'];
-$C['unique_ids'] = isset($C['unique_ids']) ? $C['unique_ids'] : 1;
-$C['xml:lang'] = isset($C['xml:lang']) ? $C['xml:lang'] : 0;
-
-if(isset($GLOBALS['C'])){$reC = $GLOBALS['C'];}
-$GLOBALS['C'] = $C;
-$S = is_array($S) ? $S : hl_spec($S);
-if(isset($GLOBALS['S'])){$reS = $GLOBALS['S'];}
-$GLOBALS['S'] = $S;
-
-$t = preg_replace('`[\x00-\x08\x0b-\x0c\x0e-\x1f]`', '', $t);
-if($C['clean_ms_char']){
- $x = array("\x7f"=>'', "\x80"=>'&#8364;', "\x81"=>'', "\x83"=>'&#402;', "\x85"=>'&#8230;', "\x86"=>'&#8224;', "\x87"=>'&#8225;', "\x88"=>'&#710;', "\x89"=>'&#8240;', "\x8a"=>'&#352;', "\x8b"=>'&#8249;', "\x8c"=>'&#338;', "\x8d"=>'', "\x8e"=>'&#381;', "\x8f"=>'', "\x90"=>'', "\x95"=>'&#8226;', "\x96"=>'&#8211;', "\x97"=>'&#8212;', "\x98"=>'&#732;', "\x99"=>'&#8482;', "\x9a"=>'&#353;', "\x9b"=>'&#8250;', "\x9c"=>'&#339;', "\x9d"=>'', "\x9e"=>'&#382;', "\x9f"=>'&#376;');
- $x = $x + ($C['clean_ms_char'] == 1 ? array("\x82"=>'&#8218;', "\x84"=>'&#8222;', "\x91"=>'&#8216;', "\x92"=>'&#8217;', "\x93"=>'&#8220;', "\x94"=>'&#8221;') : array("\x82"=>'\'', "\x84"=>'"', "\x91"=>'\'', "\x92"=>'\'', "\x93"=>'"', "\x94"=>'"'));
- $t = strtr($t, $x);
-}
-if($C['cdata'] or $C['comment']){$t = preg_replace_callback('`<!(?:(?:--.*?--)|(?:\[CDATA\[.*?\]\]))>`sm', 'hl_cmtcd', $t);}
-$t = preg_replace_callback('`&amp;([A-Za-z][A-Za-z0-9]{1,30}|#(?:[0-9]{1,8}|[Xx][0-9A-Fa-f]{1,7}));`', 'hl_ent', str_replace('&', '&amp;', $t));
-if($C['unique_ids'] && !isset($GLOBALS['hl_Ids'])){$GLOBALS['hl_Ids'] = array();}
-if($C['hook']){$t = $C['hook']($t, $C, $S);}
-if($C['show_setting'] && preg_match('`^[a-z][a-z0-9_]*$`i', $C['show_setting'])){
- $GLOBALS[$C['show_setting']] = array('config'=>$C, 'spec'=>$S, 'time'=>microtime());
-}
-// main
-$t = preg_replace_callback('`<(?:(?:\s|$)|(?:[^>]*(?:>|$)))|>`m', 'hl_tag', $t);
-$t = $C['balance'] ? hl_bal($t, $C['keep_bad'], $C['parent']) : $t;
-$t = (($C['cdata'] or $C['comment']) && strpos($t, "\x01") !== false) ? str_replace(array("\x01", "\x02", "\x03", "\x04", "\x05"), array('', '', '&', '<', '>'), $t) : $t;
-$t = $C['tidy'] ? hl_tidy($t, $C['tidy'], $C['parent']) : $t;
-unset($C, $e);
-if(isset($reC)){$GLOBALS['C'] = $reC;}
-if(isset($reS)){$GLOBALS['S'] = $reS;}
-return $t;
-// eof
-}
-
-function hl_attrval($t, $p){
-// check attr val against $S
-$o = 1; $l = strlen($t);
-foreach($p as $k=>$v){
- switch($k){
- case 'maxlen':if($l > $v){$o = 0;}
- break; case 'minlen': if($l < $v){$o = 0;}
- break; case 'maxval': if((float)($t) > $v){$o = 0;}
- break; case 'minval': if((float)($t) < $v){$o = 0;}
- break; case 'match': if(!preg_match($v, $t)){$o = 0;}
- break; case 'nomatch': if(preg_match($v, $t)){$o = 0;}
- break; case 'oneof':
- $m = 0;
- foreach(explode('|', $v) as $n){if($t == $n){$m = 1; break;}}
- $o = $m;
- break; case 'noneof':
- $m = 1;
- foreach(explode('|', $v) as $n){if($t == $n){$m = 0; break;}}
- $o = $m;
- break; default:
- break;
- }
- if(!$o){break;}
-}
-return ($o ? $t : (isset($p['default']) ? $p['default'] : 0));
-// eof
-}
-
-function hl_bal($t, $do=1, $in='div'){
-// balance tags
-// by content
-$cB = array('blockquote'=>1, 'form'=>1, 'map'=>1, 'noscript'=>1); // Block
-$cE = array('area'=>1, 'br'=>1, 'col'=>1, 'embed'=>1, 'hr'=>1, 'img'=>1, 'input'=>1, 'isindex'=>1, 'param'=>1); // Empty
-$cF = array('button'=>1, 'del'=>1, 'div'=>1, 'dd'=>1, 'fieldset'=>1, 'iframe'=>1, 'ins'=>1, 'li'=>1, 'noscript'=>1, 'object'=>1, 'td'=>1, 'th'=>1); // Flow; later context-wise dynamic move of ins & del to $cI
-$cI = array('a'=>1, 'abbr'=>1, 'acronym'=>1, 'address'=>1, 'b'=>1, 'bdo'=>1, 'big'=>1, 'caption'=>1, 'cite'=>1, 'code'=>1, 'dfn'=>1, 'dt'=>1, 'em'=>1, 'font'=>1, 'h1'=>1, 'h2'=>1, 'h3'=>1, 'h4'=>1, 'h5'=>1, 'h6'=>1, 'i'=>1, 'kbd'=>1, 'label'=>1, 'legend'=>1, 'p'=>1, 'pre'=>1, 'q'=>1, 'rb'=>1, 'rt'=>1, 's'=>1, 'samp'=>1, 'small'=>1, 'span'=>1, 'strike'=>1, 'strong'=>1, 'sub'=>1, 'sup'=>1, 'tt'=>1, 'u'=>1, 'var'=>1); // Inline
-$cN = array('a'=>array('a'=>1), 'button'=>array('a'=>1, 'button'=>1, 'fieldset'=>1, 'form'=>1, 'iframe'=>1, 'input'=>1, 'label'=>1, 'select'=>1, 'textarea'=>1), 'fieldset'=>array('fieldset'=>1), 'form'=>array('form'=>1), 'label'=>array('label'=>1), 'noscript'=>array('script'=>1), 'pre'=>array('big'=>1, 'font'=>1, 'img'=>1, 'object'=>1, 'script'=>1, 'small'=>1, 'sub'=>1, 'sup'=>1), 'rb'=>array('ruby'=>1), 'rt'=>array('ruby'=>1)); // Illegal
-$cN2 = array_keys($cN);
-$cR = array('blockquote'=>1, 'dir'=>1, 'dl'=>1, 'form'=>1, 'map'=>1, 'menu'=>1, 'noscript'=>1, 'ol'=>1, 'optgroup'=>1, 'rbc'=>1, 'rtc'=>1, 'ruby'=>1, 'select'=>1, 'table'=>1, 'tbody'=>1, 'tfoot'=>1, 'thead'=>1, 'tr'=>1, 'ul'=>1);
-$cS = array('colgroup'=>array('col'=>1), 'dir'=>array('li'=>1), 'dl'=>array('dd'=>1, 'dt'=>1), 'menu'=>array('li'=>1), 'ol'=>array('li'=>1), 'optgroup'=>array('option'=>1), 'option'=>array('#pcdata'=>1), 'rbc'=>array('rb'=>1), 'rp'=>array('#pcdata'=>1), 'rtc'=>array('rt'=>1), 'ruby'=>array('rb'=>1, 'rbc'=>1, 'rp'=>1, 'rt'=>1, 'rtc'=>1), 'select'=>array('optgroup'=>1, 'option'=>1), 'script'=>array('#pcdata'=>1), 'table'=>array('caption'=>1, 'col'=>1, 'colgroup'=>1, 'tfoot'=>1, 'tbody'=>1, 'tr'=>1, 'thead'=>1), 'tbody'=>array('tr'=>1), 'tfoot'=>array('tr'=>1), 'textarea'=>array('#pcdata'=>1), 'thead'=>array('tr'=>1), 'tr'=>array('td'=>1, 'th'=>1), 'ul'=>array('li'=>1)); // Specific - immediate parent-child
-if($GLOBALS['C']['direct_list_nest']){$cS['ol'] = $cS['ul'] += array('ol'=>1, 'ul'=>1);}
-$cO = array('address'=>array('p'=>1), 'applet'=>array('param'=>1), 'blockquote'=>array('script'=>1), 'fieldset'=>array('legend'=>1, '#pcdata'=>1), 'form'=>array('script'=>1), 'map'=>array('area'=>1), 'object'=>array('param'=>1, 'embed'=>1)); // Other
-$cT = array('colgroup'=>1, 'dd'=>1, 'dt'=>1, 'li'=>1, 'option'=>1, 'p'=>1, 'td'=>1, 'tfoot'=>1, 'th'=>1, 'thead'=>1, 'tr'=>1); // Omitable closing
-// block/inline type; ins & del both type; #pcdata: text
-$eB = array('address'=>1, 'blockquote'=>1, 'center'=>1, 'del'=>1, 'dir'=>1, 'dl'=>1, 'div'=>1, 'fieldset'=>1, 'form'=>1, 'ins'=>1, 'h1'=>1, 'h2'=>1, 'h3'=>1, 'h4'=>1, 'h5'=>1, 'h6'=>1, 'hr'=>1, 'isindex'=>1, 'menu'=>1, 'noscript'=>1, 'ol'=>1, 'p'=>1, 'pre'=>1, 'table'=>1, 'ul'=>1);
-$eI = array('#pcdata'=>1, 'a'=>1, 'abbr'=>1, 'acronym'=>1, 'applet'=>1, 'b'=>1, 'bdo'=>1, 'big'=>1, 'br'=>1, 'button'=>1, 'cite'=>1, 'code'=>1, 'del'=>1, 'dfn'=>1, 'em'=>1, 'embed'=>1, 'font'=>1, 'i'=>1, 'iframe'=>1, 'img'=>1, 'input'=>1, 'ins'=>1, 'kbd'=>1, 'label'=>1, 'map'=>1, 'object'=>1, 'q'=>1, 'ruby'=>1, 's'=>1, 'samp'=>1, 'select'=>1, 'script'=>1, 'small'=>1, 'span'=>1, 'strike'=>1, 'strong'=>1, 'sub'=>1, 'sup'=>1, 'textarea'=>1, 'tt'=>1, 'u'=>1, 'var'=>1);
-$eN = array('a'=>1, 'big'=>1, 'button'=>1, 'fieldset'=>1, 'font'=>1, 'form'=>1, 'iframe'=>1, 'img'=>1, 'input'=>1, 'label'=>1, 'object'=>1, 'ruby'=>1, 'script'=>1, 'select'=>1, 'small'=>1, 'sub'=>1, 'sup'=>1, 'textarea'=>1); // Exclude from specific ele; $cN values
-$eO = array('area'=>1, 'caption'=>1, 'col'=>1, 'colgroup'=>1, 'dd'=>1, 'dt'=>1, 'legend'=>1, 'li'=>1, 'optgroup'=>1, 'option'=>1, 'param'=>1, 'rb'=>1, 'rbc'=>1, 'rp'=>1, 'rt'=>1, 'rtc'=>1, 'script'=>1, 'tbody'=>1, 'td'=>1, 'tfoot'=>1, 'thead'=>1, 'th'=>1, 'tr'=>1); // Missing in $eB & $eI
-$eF = $eB + $eI;
-
-// $in sets allowed child
-$in = ((isset($eF[$in]) && $in != '#pcdata') or isset($eO[$in])) ? $in : 'div';
-if(isset($cE[$in])){
- return (!$do ? '' : str_replace(array('<', '>'), array('&lt;', '&gt;'), $t));
-}
-if(isset($cS[$in])){$inOk = $cS[$in];}
-elseif(isset($cI[$in])){$inOk = $eI; $cI['del'] = 1; $cI['ins'] = 1;}
-elseif(isset($cF[$in])){$inOk = $eF; unset($cI['del'], $cI['ins']);}
-elseif(isset($cB[$in])){$inOk = $eB; unset($cI['del'], $cI['ins']);}
-if(isset($cO[$in])){$inOk = $inOk + $cO[$in];}
-if(isset($cN[$in])){$inOk = array_diff_assoc($inOk, $cN[$in]);}
-
-$t = explode('<', $t);
-$ok = $q = array(); // $q seq list of open non-empty ele
-ob_start();
-
-for($i=-1, $ci=count($t); ++$i<$ci;){
- // allowed $ok in parent $p
- if($ql = count($q)){
- $p = array_pop($q);
- $q[] = $p;
- if(isset($cS[$p])){$ok = $cS[$p];}
- elseif(isset($cI[$p])){$ok = $eI; $cI['del'] = 1; $cI['ins'] = 1;}
- elseif(isset($cF[$p])){$ok = $eF; unset($cI['del'], $cI['ins']);}
- elseif(isset($cB[$p])){$ok = $eB; unset($cI['del'], $cI['ins']);}
- if(isset($cO[$p])){$ok = $ok + $cO[$p];}
- if(isset($cN[$p])){$ok = array_diff_assoc($ok, $cN[$p]);}
- }else{$ok = $inOk; unset($cI['del'], $cI['ins']);}
- // bad tags, & ele content
- if(isset($e) && ($do == 1 or (isset($ok['#pcdata']) && ($do == 3 or $do == 5)))){
- echo '&lt;', $s, $e, $a, '&gt;';
- }
- if(isset($x[0])){
- if(strlen(trim($x)) && (($ql && isset($cB[$p])) or (isset($cB[$in]) && !$ql))){
- echo '<div>', $x, '</div>';
- }
- elseif($do < 3 or isset($ok['#pcdata'])){echo $x;}
- elseif(strpos($x, "\x02\x04")){
- foreach(preg_split('`(\x01\x02[^\x01\x02]+\x02\x01)`', $x, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY) as $v){
- echo (substr($v, 0, 2) == "\x01\x02" ? $v : ($do > 4 ? preg_replace('`\S`', '', $v) : ''));
- }
- }elseif($do > 4){echo preg_replace('`\S`', '', $x);}
- }
- // get markup
- if(!preg_match('`^(/?)([a-z1-6]+)([^>]*)>(.*)`sm', $t[$i], $r)){$x = $t[$i]; continue;}
- $s = null; $e = null; $a = null; $x = null; list($all, $s, $e, $a, $x) = $r;
- // close tag
- if($s){
- if(isset($cE[$e]) or !in_array($e, $q)){continue;} // Empty/unopen
- if($p == $e){array_pop($q); echo '</', $e, '>'; unset($e); continue;} // Last open
- $add = ''; // Nesting - close open tags that need to be
- for($j=-1, $cj=count($q); ++$j<$cj;){
- if(($d = array_pop($q)) == $e){break;}
- else{$add .= "</{$d}>";}
- }
- echo $add, '</', $e, '>'; unset($e); continue;
- }
- // open tag
- // $cB ele needs $eB ele as child
- if(isset($cB[$e]) && strlen(trim($x))){
- $t[$i] = "{$e}{$a}>";
- array_splice($t, $i+1, 0, 'div>'. $x); unset($e, $x); ++$ci; --$i; continue;
- }
- if((($ql && isset($cB[$p])) or (isset($cB[$in]) && !$ql)) && !isset($eB[$e]) && !isset($ok[$e])){
- array_splice($t, $i, 0, 'div>'); unset($e, $x); ++$ci; --$i; continue;
- }
- // if no open ele, $in = parent; mostly immediate parent-child relation should hold
- if(!$ql or !isset($eN[$e]) or !array_intersect($q, $cN2)){
- if(!isset($ok[$e])){
- if($ql && isset($cT[$p])){echo '</', array_pop($q), '>'; unset($e, $x); --$i;}
- continue;
- }
- if(!isset($cE[$e])){$q[] = $e;}
- echo '<', $e, $a, '>'; unset($e); continue;
- }
- // specific parent-child
- if(isset($cS[$p][$e])){
- if(!isset($cE[$e])){$q[] = $e;}
- echo '<', $e, $a, '>'; unset($e); continue;
- }
- // nesting
- $add = '';
- $q2 = array();
- for($k=-1, $kc=count($q); ++$k<$kc;){
- $d = $q[$k];
- $ok2 = array();
- if(isset($cS[$d])){$q2[] = $d; continue;}
- $ok2 = isset($cI[$d]) ? $eI : $eF;
- if(isset($cO[$d])){$ok2 = $ok2 + $cO[$d];}
- if(isset($cN[$d])){$ok2 = array_diff_assoc($ok2, $cN[$d]);}
- if(!isset($ok2[$e])){
- if(!$k && !isset($inOk[$e])){continue 2;}
- $add = "</{$d}>";
- for(;++$k<$kc;){$add = "</{$q[$k]}>{$add}";}
- break;
- }
- else{$q2[] = $d;}
- }
- $q = $q2;
- if(!isset($cE[$e])){$q[] = $e;}
- echo $add, '<', $e, $a, '>'; unset($e); continue;
-}
-
-// end
-if($ql = count($q)){
- $p = array_pop($q);
- $q[] = $p;
- if(isset($cS[$p])){$ok = $cS[$p];}
- elseif(isset($cI[$p])){$ok = $eI; $cI['del'] = 1; $cI['ins'] = 1;}
- elseif(isset($cF[$p])){$ok = $eF; unset($cI['del'], $cI['ins']);}
- elseif(isset($cB[$p])){$ok = $eB; unset($cI['del'], $cI['ins']);}
- if(isset($cO[$p])){$ok = $ok + $cO[$p];}
- if(isset($cN[$p])){$ok = array_diff_assoc($ok, $cN[$p]);}
-}else{$ok = $inOk; unset($cI['del'], $cI['ins']);}
-if(isset($e) && ($do == 1 or (isset($ok['#pcdata']) && ($do == 3 or $do == 5)))){
- echo '&lt;', $s, $e, $a, '&gt;';
-}
-if(isset($x[0])){
- if(strlen(trim($x)) && (($ql && isset($cB[$p])) or (isset($cB[$in]) && !$ql))){
- echo '<div>', $x, '</div>';
- }
- elseif($do < 3 or isset($ok['#pcdata'])){echo $x;}
- elseif(strpos($x, "\x02\x04")){
- foreach(preg_split('`(\x01\x02[^\x01\x02]+\x02\x01)`', $x, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY) as $v){
- echo (substr($v, 0, 2) == "\x01\x02" ? $v : ($do > 4 ? preg_replace('`\S`', '', $v) : ''));
- }
- }elseif($do > 4){echo preg_replace('`\S`', '', $x);}
-}
-while(!empty($q) && ($e = array_pop($q))){echo '</', $e, '>';}
-$o = ob_get_contents();
-ob_end_clean();
-return $o;
-// eof
-}
-
-function hl_cmtcd($t){
-// comment/CDATA sec handler
-$t = $t[0];
-global $C;
-if(!($v = $C[$n = $t[3] == '-' ? 'comment' : 'cdata'])){return $t;}
-if($v == 1){return '';}
-if($n == 'comment'){
- if(substr(($t = preg_replace('`--+`', '-', substr($t, 4, -3))), -1) != ' '){$t .= ' ';}
-}
-else{$t = substr($t, 1, -1);}
-$t = $v == 2 ? str_replace(array('&', '<', '>'), array('&amp;', '&lt;', '&gt;'), $t) : $t;
-return str_replace(array('&', '<', '>'), array("\x03", "\x04", "\x05"), ($n == 'comment' ? "\x01\x02\x04!--$t--\x05\x02\x01" : "\x01\x01\x04$t\x05\x01\x01"));
-// eof
-}
-
-function hl_ent($t){
-// entitity handler
-global $C;
-$t = $t[1];
-static $U = array('quot'=>1,'amp'=>1,'lt'=>1,'gt'=>1);
-static $N = array('fnof'=>'402', 'Alpha'=>'913', 'Beta'=>'914', 'Gamma'=>'915', 'Delta'=>'916', 'Epsilon'=>'917', 'Zeta'=>'918', 'Eta'=>'919', 'Theta'=>'920', 'Iota'=>'921', 'Kappa'=>'922', 'Lambda'=>'923', 'Mu'=>'924', 'Nu'=>'925', 'Xi'=>'926', 'Omicron'=>'927', 'Pi'=>'928', 'Rho'=>'929', 'Sigma'=>'931', 'Tau'=>'932', 'Upsilon'=>'933', 'Phi'=>'934', 'Chi'=>'935', 'Psi'=>'936', 'Omega'=>'937', 'alpha'=>'945', 'beta'=>'946', 'gamma'=>'947', 'delta'=>'948', 'epsilon'=>'949', 'zeta'=>'950', 'eta'=>'951', 'theta'=>'952', 'iota'=>'953', 'kappa'=>'954', 'lambda'=>'955', 'mu'=>'956', 'nu'=>'957', 'xi'=>'958', 'omicron'=>'959', 'pi'=>'960', 'rho'=>'961', 'sigmaf'=>'962', 'sigma'=>'963', 'tau'=>'964', 'upsilon'=>'965', 'phi'=>'966', 'chi'=>'967', 'psi'=>'968', 'omega'=>'969', 'thetasym'=>'977', 'upsih'=>'978', 'piv'=>'982', 'bull'=>'8226', 'hellip'=>'8230', 'prime'=>'8242', 'Prime'=>'8243', 'oline'=>'8254', 'frasl'=>'8260', 'weierp'=>'8472', 'image'=>'8465', 'real'=>'8476', 'trade'=>'8482', 'alefsym'=>'8501', 'larr'=>'8592', 'uarr'=>'8593', 'rarr'=>'8594', 'darr'=>'8595', 'harr'=>'8596', 'crarr'=>'8629', 'lArr'=>'8656', 'uArr'=>'8657', 'rArr'=>'8658', 'dArr'=>'8659', 'hArr'=>'8660', 'forall'=>'8704', 'part'=>'8706', 'exist'=>'8707', 'empty'=>'8709', 'nabla'=>'8711', 'isin'=>'8712', 'notin'=>'8713', 'ni'=>'8715', 'prod'=>'8719', 'sum'=>'8721', 'minus'=>'8722', 'lowast'=>'8727', 'radic'=>'8730', 'prop'=>'8733', 'infin'=>'8734', 'ang'=>'8736', 'and'=>'8743', 'or'=>'8744', 'cap'=>'8745', 'cup'=>'8746', 'int'=>'8747', 'there4'=>'8756', 'sim'=>'8764', 'cong'=>'8773', 'asymp'=>'8776', 'ne'=>'8800', 'equiv'=>'8801', 'le'=>'8804', 'ge'=>'8805', 'sub'=>'8834', 'sup'=>'8835', 'nsub'=>'8836', 'sube'=>'8838', 'supe'=>'8839', 'oplus'=>'8853', 'otimes'=>'8855', 'perp'=>'8869', 'sdot'=>'8901', 'lceil'=>'8968', 'rceil'=>'8969', 'lfloor'=>'8970', 'rfloor'=>'8971', 'lang'=>'9001', 'rang'=>'9002', 'loz'=>'9674', 'spades'=>'9824', 'clubs'=>'9827', 'hearts'=>'9829', 'diams'=>'9830', 'apos'=>'39', 'OElig'=>'338', 'oelig'=>'339', 'Scaron'=>'352', 'scaron'=>'353', 'Yuml'=>'376', 'circ'=>'710', 'tilde'=>'732', 'ensp'=>'8194', 'emsp'=>'8195', 'thinsp'=>'8201', 'zwnj'=>'8204', 'zwj'=>'8205', 'lrm'=>'8206', 'rlm'=>'8207', 'ndash'=>'8211', 'mdash'=>'8212', 'lsquo'=>'8216', 'rsquo'=>'8217', 'sbquo'=>'8218', 'ldquo'=>'8220', 'rdquo'=>'8221', 'bdquo'=>'8222', 'dagger'=>'8224', 'Dagger'=>'8225', 'permil'=>'8240', 'lsaquo'=>'8249', 'rsaquo'=>'8250', 'euro'=>'8364', 'nbsp'=>'160', 'iexcl'=>'161', 'cent'=>'162', 'pound'=>'163', 'curren'=>'164', 'yen'=>'165', 'brvbar'=>'166', 'sect'=>'167', 'uml'=>'168', 'copy'=>'169', 'ordf'=>'170', 'laquo'=>'171', 'not'=>'172', 'shy'=>'173', 'reg'=>'174', 'macr'=>'175', 'deg'=>'176', 'plusmn'=>'177', 'sup2'=>'178', 'sup3'=>'179', 'acute'=>'180', 'micro'=>'181', 'para'=>'182', 'middot'=>'183', 'cedil'=>'184', 'sup1'=>'185', 'ordm'=>'186', 'raquo'=>'187', 'frac14'=>'188', 'frac12'=>'189', 'frac34'=>'190', 'iquest'=>'191', 'Agrave'=>'192', 'Aacute'=>'193', 'Acirc'=>'194', 'Atilde'=>'195', 'Auml'=>'196', 'Aring'=>'197', 'AElig'=>'198', 'Ccedil'=>'199', 'Egrave'=>'200', 'Eacute'=>'201', 'Ecirc'=>'202', 'Euml'=>'203', 'Igrave'=>'204', 'Iacute'=>'205', 'Icirc'=>'206', 'Iuml'=>'207', 'ETH'=>'208', 'Ntilde'=>'209', 'Ograve'=>'210', 'Oacute'=>'211', 'Ocirc'=>'212', 'Otilde'=>'213', 'Ouml'=>'214', 'times'=>'215', 'Oslash'=>'216', 'Ugrave'=>'217', 'Uacute'=>'218', 'Ucirc'=>'219', 'Uuml'=>'220', 'Yacute'=>'221', 'THORN'=>'222', 'szlig'=>'223', 'agrave'=>'224', 'aacute'=>'225', 'acirc'=>'226', 'atilde'=>'227', 'auml'=>'228', 'aring'=>'229', 'aelig'=>'230', 'ccedil'=>'231', 'egrave'=>'232', 'eacute'=>'233', 'ecirc'=>'234', 'euml'=>'235', 'igrave'=>'236', 'iacute'=>'237', 'icirc'=>'238', 'iuml'=>'239', 'eth'=>'240', 'ntilde'=>'241', 'ograve'=>'242', 'oacute'=>'243', 'ocirc'=>'244', 'otilde'=>'245', 'ouml'=>'246', 'divide'=>'247', 'oslash'=>'248', 'ugrave'=>'249', 'uacute'=>'250', 'ucirc'=>'251', 'uuml'=>'252', 'yacute'=>'253', 'thorn'=>'254', 'yuml'=>'255');
-if($t[0] != '#'){
- return ($C['and_mark'] ? "\x06" : '&'). (isset($U[$t]) ? $t : (isset($N[$t]) ? (!$C['named_entity'] ? '#'. ($C['hexdec_entity'] > 1 ? 'x'. dechex($N[$t]) : $N[$t]) : $t) : 'amp;'. $t)). ';';
-}
-if(($n = ctype_digit($t = substr($t, 1)) ? intval($t) : hexdec(substr($t, 1))) < 9 or ($n > 13 && $n < 32) or $n == 11 or $n == 12 or ($n > 126 && $n < 160 && $n != 133) or ($n > 55295 && ($n < 57344 or ($n > 64975 && $n < 64992) or $n == 65534 or $n == 65535 or $n > 1114111))){
- return ($C['and_mark'] ? "\x06" : '&'). "amp;#{$t};";
-}
-return ($C['and_mark'] ? "\x06" : '&'). '#'. (((ctype_digit($t) && $C['hexdec_entity'] < 2) or !$C['hexdec_entity']) ? $n : 'x'. dechex($n)). ';';
-// eof
-}
-
-function hl_prot($p, $c=null){
-// check URL scheme
-global $C;
-$b = $a = '';
-if($c == null){$c = 'style'; $b = $p[1]; $a = $p[3]; $p = trim($p[2]);}
-$c = isset($C['schemes'][$c]) ? $C['schemes'][$c] : $C['schemes']['*'];
-static $d = 'denied:';
-if(isset($c['!']) && substr($p, 0, 7) != $d){$p = "$d$p";}
-if(isset($c['*']) or !strcspn($p, '#?;') or (substr($p, 0, 7) == $d)){return "{$b}{$p}{$a}";} // All ok, frag, query, param
-if(preg_match('`^([a-z\d\-+.&#; ]+?)(:|&#(58|x3a);|%3a|\\\\0{0,4}3a).`i', $p, $m) && !isset($c[strtolower($m[1])])){ // Denied prot
- return "{$b}{$d}{$p}{$a}";
-}
-if($C['abs_url']){
- if($C['abs_url'] == -1 && strpos($p, $C['base_url']) === 0){ // Make url rel
- $p = substr($p, strlen($C['base_url']));
- }elseif(empty($m[1])){ // Make URL abs
- if(substr($p, 0, 2) == '//'){$p = substr($C['base_url'], 0, strpos($C['base_url'], ':')+1). $p;}
- elseif($p[0] == '/'){$p = preg_replace('`(^.+?://[^/]+)(.*)`', '$1', $C['base_url']). $p;}
- elseif(strcspn($p, './')){$p = $C['base_url']. $p;}
- else{
- preg_match('`^([a-zA-Z\d\-+.]+://[^/]+)(.*)`', $C['base_url'], $m);
- $p = preg_replace('`(?<=/)\./`', '', $m[2]. $p);
- while(preg_match('`(?<=/)([^/]{3,}|[^/.]+?|\.[^/.]|[^/.]\.)/\.\./`', $p)){
- $p = preg_replace('`(?<=/)([^/]{3,}|[^/.]+?|\.[^/.]|[^/.]\.)/\.\./`', '', $p);
- }
- $p = $m[1]. $p;
- }
- }
-}
-return "{$b}{$p}{$a}";
-// eof
-}
-
-function hl_regex($p){
-// ?regex
-if(empty($p)){return 0;}
-if($t = ini_get('track_errors')){$o = isset($php_errormsg) ? $php_errormsg : null;}
-else{ini_set('track_errors', 1);}
-unset($php_errormsg);
-if(($d = ini_get('display_errors'))){ini_set('display_errors', 0);}
-preg_match($p, '');
-if($d){ini_set('display_errors', 1);}
-$r = isset($php_errormsg) ? 0 : 1;
-if($t){$php_errormsg = isset($o) ? $o : null;}
-else{ini_set('track_errors', 0);}
-return $r;
-// eof
-}
-
-function hl_spec($t){
-// final $spec
-$s = array();
-$t = str_replace(array("\t", "\r", "\n", ' '), '', preg_replace('/"(?>(`.|[^"])*)"/sme', 'substr(str_replace(array(";", "|", "~", " ", ",", "/", "(", ")", \'`"\'), array("\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\""), "$0"), 1, -1)', trim($t)));
-for($i = count(($t = explode(';', $t))); --$i>=0;){
- $w = $t[$i];
- if(empty($w) or ($e = strpos($w, '=')) === false or !strlen(($a = substr($w, $e+1)))){continue;}
- $y = $n = array();
- foreach(explode(',', $a) as $v){
- if(!preg_match('`^([a-z:\-\*]+)(?:\((.*?)\))?`i', $v, $m)){continue;}
- if(($x = strtolower($m[1])) == '-*'){$n['*'] = 1; continue;}
- if($x[0] == '-'){$n[substr($x, 1)] = 1; continue;}
- if(!isset($m[2])){$y[$x] = 1; continue;}
- foreach(explode('/', $m[2]) as $m){
- if(empty($m) or ($p = strpos($m, '=')) == 0 or $p < 5){$y[$x] = 1; continue;}
- $y[$x][strtolower(substr($m, 0, $p))] = str_replace(array("\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08"), array(";", "|", "~", " ", ",", "/", "(", ")"), substr($m, $p+1));
- }
- if(isset($y[$x]['match']) && !hl_regex($y[$x]['match'])){unset($y[$x]['match']);}
- if(isset($y[$x]['nomatch']) && !hl_regex($y[$x]['nomatch'])){unset($y[$x]['nomatch']);}
- }
- if(!count($y) && !count($n)){continue;}
- foreach(explode(',', substr($w, 0, $e)) as $v){
- if(!strlen(($v = strtolower($v)))){continue;}
- if(count($y)){$s[$v] = $y;}
- if(count($n)){$s[$v]['n'] = $n;}
- }
-}
-return $s;
-// eof
-}
-
-function hl_tag($t){
-// tag/attribute handler
-global $C;
-$t = $t[0];
-// invalid < >
-if($t == '< '){return '&lt; ';}
-if($t == '>'){return '&gt;';}
-if(!preg_match('`^<(/?)([a-zA-Z][a-zA-Z1-6]*)([^>]*?)\s?>$`m', $t, $m)){
- return str_replace(array('<', '>'), array('&lt;', '&gt;'), $t);
-}elseif(!isset($C['elements'][($e = strtolower($m[2]))])){
- return (($C['keep_bad']%2) ? str_replace(array('<', '>'), array('&lt;', '&gt;'), $t) : '');
-}
-// attr string
-$a = str_replace(array("\n", "\r", "\t"), ' ', trim($m[3]));
-// tag transform
-static $eD = array('applet'=>1, 'center'=>1, 'dir'=>1, 'embed'=>1, 'font'=>1, 'isindex'=>1, 'menu'=>1, 's'=>1, 'strike'=>1, 'u'=>1); // Deprecated
-if($C['make_tag_strict'] && isset($eD[$e])){
- $trt = hl_tag2($e, $a, $C['make_tag_strict']);
- if(!$e){return (($C['keep_bad']%2) ? str_replace(array('<', '>'), array('&lt;', '&gt;'), $t) : '');}
-}
-// close tag
-static $eE = array('area'=>1, 'br'=>1, 'col'=>1, 'embed'=>1, 'hr'=>1, 'img'=>1, 'input'=>1, 'isindex'=>1, 'param'=>1); // Empty ele
-if(!empty($m[1])){
- return (!isset($eE[$e]) ? (empty($C['hook_tag']) ? "</$e>" : $C['hook_tag']($e)) : (($C['keep_bad'])%2 ? str_replace(array('<', '>'), array('&lt;', '&gt;'), $t) : ''));
-}
-
-// open tag & attr
-static $aN = array('abbr'=>array('td'=>1, 'th'=>1), 'accept-charset'=>array('form'=>1), 'accept'=>array('form'=>1, 'input'=>1), 'accesskey'=>array('a'=>1, 'area'=>1, 'button'=>1, 'input'=>1, 'label'=>1, 'legend'=>1, 'textarea'=>1), 'action'=>array('form'=>1), 'align'=>array('caption'=>1, 'embed'=>1, 'applet'=>1, 'iframe'=>1, 'img'=>1, 'input'=>1, 'object'=>1, 'legend'=>1, 'table'=>1, 'hr'=>1, 'div'=>1, 'h1'=>1, 'h2'=>1, 'h3'=>1, 'h4'=>1, 'h5'=>1, 'h6'=>1, 'p'=>1, 'col'=>1, 'colgroup'=>1, 'tbody'=>1, 'td'=>1, 'tfoot'=>1, 'th'=>1, 'thead'=>1, 'tr'=>1), 'alt'=>array('applet'=>1, 'area'=>1, 'img'=>1, 'input'=>1), 'archive'=>array('applet'=>1, 'object'=>1), 'axis'=>array('td'=>1, 'th'=>1), 'bgcolor'=>array('embed'=>1, 'table'=>1, 'tr'=>1, 'td'=>1, 'th'=>1), 'border'=>array('table'=>1, 'img'=>1, 'object'=>1), 'bordercolor'=>array('table'=>1, 'td'=>1, 'tr'=>1), 'cellpadding'=>array('table'=>1), 'cellspacing'=>array('table'=>1), 'char'=>array('col'=>1, 'colgroup'=>1, 'tbody'=>1, 'td'=>1, 'tfoot'=>1, 'th'=>1, 'thead'=>1, 'tr'=>1), 'charoff'=>array('col'=>1, 'colgroup'=>1, 'tbody'=>1, 'td'=>1, 'tfoot'=>1, 'th'=>1, 'thead'=>1, 'tr'=>1), 'charset'=>array('a'=>1, 'script'=>1), 'checked'=>array('input'=>1), 'cite'=>array('blockquote'=>1, 'q'=>1, 'del'=>1, 'ins'=>1), 'classid'=>array('object'=>1), 'clear'=>array('br'=>1), 'code'=>array('applet'=>1), 'codebase'=>array('object'=>1, 'applet'=>1), 'codetype'=>array('object'=>1), 'color'=>array('font'=>1), 'cols'=>array('textarea'=>1), 'colspan'=>array('td'=>1, 'th'=>1), 'compact'=>array('dir'=>1, 'dl'=>1, 'menu'=>1, 'ol'=>1, 'ul'=>1), 'coords'=>array('area'=>1, 'a'=>1), 'data'=>array('object'=>1), 'datetime'=>array('del'=>1, 'ins'=>1), 'declare'=>array('object'=>1), 'defer'=>array('script'=>1), 'dir'=>array('bdo'=>1), 'disabled'=>array('button'=>1, 'input'=>1, 'optgroup'=>1, 'option'=>1, 'select'=>1, 'textarea'=>1), 'enctype'=>array('form'=>1), 'face'=>array('font'=>1), 'flashvars'=>array('embed'=>1), 'for'=>array('label'=>1), 'frame'=>array('table'=>1), 'frameborder'=>array('iframe'=>1), 'headers'=>array('td'=>1, 'th'=>1), 'height'=>array('embed'=>1, 'iframe'=>1, 'td'=>1, 'th'=>1, 'img'=>1, 'object'=>1, 'applet'=>1), 'href'=>array('a'=>1, 'area'=>1), 'hreflang'=>array('a'=>1), 'hspace'=>array('applet'=>1, 'img'=>1, 'object'=>1), 'ismap'=>array('img'=>1, 'input'=>1), 'label'=>array('option'=>1, 'optgroup'=>1), 'language'=>array('script'=>1), 'longdesc'=>array('img'=>1, 'iframe'=>1), 'marginheight'=>array('iframe'=>1), 'marginwidth'=>array('iframe'=>1), 'maxlength'=>array('input'=>1), 'method'=>array('form'=>1), 'model'=>array('embed'=>1), 'multiple'=>array('select'=>1), 'name'=>array('button'=>1, 'embed'=>1, 'textarea'=>1, 'applet'=>1, 'select'=>1, 'form'=>1, 'iframe'=>1, 'img'=>1, 'a'=>1, 'input'=>1, 'object'=>1, 'map'=>1, 'param'=>1), 'nohref'=>array('area'=>1), 'noshade'=>array('hr'=>1), 'nowrap'=>array('td'=>1, 'th'=>1), 'object'=>array('applet'=>1), 'onblur'=>array('a'=>1, 'area'=>1, 'button'=>1, 'input'=>1, 'label'=>1, 'select'=>1, 'textarea'=>1), 'onchange'=>array('input'=>1, 'select'=>1, 'textarea'=>1), 'onfocus'=>array('a'=>1, 'area'=>1, 'button'=>1, 'input'=>1, 'label'=>1, 'select'=>1, 'textarea'=>1), 'onreset'=>array('form'=>1), 'onselect'=>array('input'=>1, 'textarea'=>1), 'onsubmit'=>array('form'=>1), 'pluginspage'=>array('embed'=>1), 'pluginurl'=>array('embed'=>1), 'prompt'=>array('isindex'=>1), 'readonly'=>array('textarea'=>1, 'input'=>1), 'rel'=>array('a'=>1), 'rev'=>array('a'=>1), 'rows'=>array('textarea'=>1), 'rowspan'=>array('td'=>1, 'th'=>1), 'rules'=>array('table'=>1), 'scope'=>array('td'=>1, 'th'=>1), 'scrolling'=>array('iframe'=>1), 'selected'=>array('option'=>1), 'shape'=>array('area'=>1, 'a'=>1), 'size'=>array('hr'=>1, 'font'=>1, 'input'=>1, 'select'=>1), 'span'=>array('col'=>1, 'colgroup'=>1), 'src'=>array('embed'=>1, 'script'=>1, 'input'=>1, 'iframe'=>1, 'img'=>1), 'standby'=>array('object'=>1), 'start'=>array('ol'=>1), 'summary'=>array('table'=>1), 'tabindex'=>array('a'=>1, 'area'=>1, 'button'=>1, 'input'=>1, 'object'=>1, 'select'=>1, 'textarea'=>1), 'target'=>array('a'=>1, 'area'=>1, 'form'=>1), 'type'=>array('a'=>1, 'embed'=>1, 'object'=>1, 'param'=>1, 'script'=>1, 'input'=>1, 'li'=>1, 'ol'=>1, 'ul'=>1, 'button'=>1), 'usemap'=>array('img'=>1, 'input'=>1, 'object'=>1), 'valign'=>array('col'=>1, 'colgroup'=>1, 'tbody'=>1, 'td'=>1, 'tfoot'=>1, 'th'=>1, 'thead'=>1, 'tr'=>1), 'value'=>array('input'=>1, 'option'=>1, 'param'=>1, 'button'=>1, 'li'=>1), 'valuetype'=>array('param'=>1), 'vspace'=>array('applet'=>1, 'img'=>1, 'object'=>1), 'width'=>array('embed'=>1, 'hr'=>1, 'iframe'=>1, 'img'=>1, 'object'=>1, 'table'=>1, 'td'=>1, 'th'=>1, 'applet'=>1, 'col'=>1, 'colgroup'=>1, 'pre'=>1), 'wmode'=>array('embed'=>1), 'xml:space'=>array('pre'=>1, 'script'=>1, 'style'=>1)); // Ele-specific
-static $aNE = array('checked'=>1, 'compact'=>1, 'declare'=>1, 'defer'=>1, 'disabled'=>1, 'ismap'=>1, 'multiple'=>1, 'nohref'=>1, 'noresize'=>1, 'noshade'=>1, 'nowrap'=>1, 'readonly'=>1, 'selected'=>1); // Empty
-static $aNP = array('action'=>1, 'cite'=>1, 'classid'=>1, 'codebase'=>1, 'data'=>1, 'href'=>1, 'longdesc'=>1, 'model'=>1, 'pluginspage'=>1, 'pluginurl'=>1, 'usemap'=>1); // Need scheme check; excludes style, on* & src
-static $aNU = array('class'=>array('param'=>1, 'script'=>1), 'dir'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'iframe'=>1, 'param'=>1, 'script'=>1), 'id'=>array('script'=>1), 'lang'=>array('applet'=>1, 'br'=>1, 'iframe'=>1, 'param'=>1, 'script'=>1), 'xml:lang'=>array('applet'=>1, 'br'=>1, 'iframe'=>1, 'param'=>1, 'script'=>1), 'onclick'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'font'=>1, 'iframe'=>1, 'isindex'=>1, 'param'=>1, 'script'=>1), 'ondblclick'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'font'=>1, 'iframe'=>1, 'isindex'=>1, 'param'=>1, 'script'=>1), 'onkeydown'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'font'=>1, 'iframe'=>1, 'isindex'=>1, 'param'=>1, 'script'=>1), 'onkeypress'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'font'=>1, 'iframe'=>1, 'isindex'=>1, 'param'=>1, 'script'=>1), 'onkeyup'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'font'=>1, 'iframe'=>1, 'isindex'=>1, 'param'=>1, 'script'=>1), 'onmousedown'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'font'=>1, 'iframe'=>1, 'isindex'=>1, 'param'=>1, 'script'=>1), 'onmousemove'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'font'=>1, 'iframe'=>1, 'isindex'=>1, 'param'=>1, 'script'=>1), 'onmouseout'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'font'=>1, 'iframe'=>1, 'isindex'=>1, 'param'=>1, 'script'=>1), 'onmouseover'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'font'=>1, 'iframe'=>1, 'isindex'=>1, 'param'=>1, 'script'=>1), 'onmouseup'=>array('applet'=>1, 'bdo'=>1, 'br'=>1, 'font'=>1, 'iframe'=>1, 'isindex'=>1, 'param'=>1, 'script'=>1), 'style'=>array('param'=>1, 'script'=>1), 'title'=>array('param'=>1, 'script'=>1)); // Univ & exceptions
-
-if($C['lc_std_val']){
- // predef attr vals for $eAL & $aNE ele
- static $aNL = array('all'=>1, 'baseline'=>1, 'bottom'=>1, 'button'=>1, 'center'=>1, 'char'=>1, 'checkbox'=>1, 'circle'=>1, 'col'=>1, 'colgroup'=>1, 'cols'=>1, 'data'=>1, 'default'=>1, 'file'=>1, 'get'=>1, 'groups'=>1, 'hidden'=>1, 'image'=>1, 'justify'=>1, 'left'=>1, 'ltr'=>1, 'middle'=>1, 'none'=>1, 'object'=>1, 'password'=>1, 'poly'=>1, 'post'=>1, 'preserve'=>1, 'radio'=>1, 'rect'=>1, 'ref'=>1, 'reset'=>1, 'right'=>1, 'row'=>1, 'rowgroup'=>1, 'rows'=>1, 'rtl'=>1, 'submit'=>1, 'text'=>1, 'top'=>1);
- static $eAL = array('a'=>1, 'area'=>1, 'bdo'=>1, 'button'=>1, 'col'=>1, 'form'=>1, 'img'=>1, 'input'=>1, 'object'=>1, 'optgroup'=>1, 'option'=>1, 'param'=>1, 'script'=>1, 'select'=>1, 'table'=>1, 'td'=>1, 'tfoot'=>1, 'th'=>1, 'thead'=>1, 'tr'=>1, 'xml:space'=>1);
- $lcase = isset($eAL[$e]) ? 1 : 0;
-}
-
-$depTr = 0;
-if($C['no_deprecated_attr']){
- // dep attr:applicable ele
- static $aND = array('align'=>array('caption'=>1, 'div'=>1, 'h1'=>1, 'h2'=>1, 'h3'=>1, 'h4'=>1, 'h5'=>1, 'h6'=>1, 'hr'=>1, 'img'=>1, 'input'=>1, 'legend'=>1, 'object'=>1, 'p'=>1, 'table'=>1), 'bgcolor'=>array('table'=>1, 'td'=>1, 'th'=>1, 'tr'=>1), 'border'=>array('img'=>1, 'object'=>1), 'bordercolor'=>array('table'=>1, 'td'=>1, 'tr'=>1), 'clear'=>array('br'=>1), 'compact'=>array('dl'=>1, 'ol'=>1, 'ul'=>1), 'height'=>array('td'=>1, 'th'=>1), 'hspace'=>array('img'=>1, 'object'=>1), 'language'=>array('script'=>1), 'name'=>array('a'=>1, 'form'=>1, 'iframe'=>1, 'img'=>1, 'map'=>1), 'noshade'=>array('hr'=>1), 'nowrap'=>array('td'=>1, 'th'=>1), 'size'=>array('hr'=>1), 'start'=>array('ol'=>1), 'type'=>array('li'=>1, 'ol'=>1, 'ul'=>1), 'value'=>array('li'=>1), 'vspace'=>array('img'=>1, 'object'=>1), 'width'=>array('hr'=>1, 'pre'=>1, 'td'=>1, 'th'=>1));
- static $eAD = array('a'=>1, 'br'=>1, 'caption'=>1, 'div'=>1, 'dl'=>1, 'form'=>1, 'h1'=>1, 'h2'=>1, 'h3'=>1, 'h4'=>1, 'h5'=>1, 'h6'=>1, 'hr'=>1, 'iframe'=>1, 'img'=>1, 'input'=>1, 'legend'=>1, 'li'=>1, 'map'=>1, 'object'=>1, 'ol'=>1, 'p'=>1, 'pre'=>1, 'script'=>1, 'table'=>1, 'td'=>1, 'th'=>1, 'tr'=>1, 'ul'=>1);
- $depTr = isset($eAD[$e]) ? 1 : 0;
-}
-
-// attr name-vals
-if(strpos($a, "\x01") !== false){$a = preg_replace('`\x01[^\x01]*\x01`', '', $a);} // No comment/CDATA sec
-$mode = 0; $a = trim($a, ' /'); $aA = array();
-while(strlen($a)){
- $w = 0;
- switch($mode){
- case 0: // Name
- if(preg_match('`^[a-zA-Z][\-a-zA-Z:]+`', $a, $m)){
- $nm = strtolower($m[0]);
- $w = $mode = 1; $a = ltrim(substr_replace($a, '', 0, strlen($m[0])));
- }
- break; case 1:
- if($a[0] == '='){ // =
- $w = 1; $mode = 2; $a = ltrim($a, '= ');
- }else{ // No val
- $w = 1; $mode = 0; $a = ltrim($a);
- $aA[$nm] = '';
- }
- break; case 2: // Val
- if(preg_match('`^((?:"[^"]*")|(?:\'[^\']*\')|(?:\s*[^\s"\']+))(.*)`', $a, $m)){
- $a = ltrim($m[2]); $m = $m[1]; $w = 1; $mode = 0;
- $aA[$nm] = trim(($m[0] == '"' or $m[0] == '\'') ? substr($m, 1, -1) : $m);
- }
- break;
- }
- if($w == 0){ // Parse errs, deal with space, " & '
- $a = preg_replace('`^(?:"[^"]*("|$)|\'[^\']*(\'|$)|\S)*\s*`', '', $a);
- $mode = 0;
- }
-}
-if($mode == 1){$aA[$nm] = '';}
-
-// clean attrs
-global $S;
-$rl = isset($S[$e]) ? $S[$e] : array();
-$a = array(); $nfr = 0;
-foreach($aA as $k=>$v){
- if(((isset($C['deny_attribute']['*']) ? isset($C['deny_attribute'][$k]) : !isset($C['deny_attribute'][$k])) && (isset($aN[$k][$e]) or (isset($aNU[$k]) && !isset($aNU[$k][$e]))) && !isset($rl['n'][$k]) && !isset($rl['n']['*'])) or isset($rl[$k])){
- if(isset($aNE[$k])){$v = $k;}
- elseif(!empty($lcase) && (($e != 'button' or $e != 'input') or $k == 'type')){ // Rather loose but ?not cause issues
- $v = (isset($aNL[($v2 = strtolower($v))])) ? $v2 : $v;
- }
- if($k == 'style' && !$C['style_pass']){
- if(false !== strpos($v, '&#')){
- static $sC = array('&#x20;'=>' ', '&#32;'=>' ', '&#x45;'=>'e', '&#69;'=>'e', '&#x65;'=>'e', '&#101;'=>'e', '&#x58;'=>'x', '&#88;'=>'x', '&#x78;'=>'x', '&#120;'=>'x', '&#x50;'=>'p', '&#80;'=>'p', '&#x70;'=>'p', '&#112;'=>'p', '&#x53;'=>'s', '&#83;'=>'s', '&#x73;'=>'s', '&#115;'=>'s', '&#x49;'=>'i', '&#73;'=>'i', '&#x69;'=>'i', '&#105;'=>'i', '&#x4f;'=>'o', '&#79;'=>'o', '&#x6f;'=>'o', '&#111;'=>'o', '&#x4e;'=>'n', '&#78;'=>'n', '&#x6e;'=>'n', '&#110;'=>'n', '&#x55;'=>'u', '&#85;'=>'u', '&#x75;'=>'u', '&#117;'=>'u', '&#x52;'=>'r', '&#82;'=>'r', '&#x72;'=>'r', '&#114;'=>'r', '&#x4c;'=>'l', '&#76;'=>'l', '&#x6c;'=>'l', '&#108;'=>'l', '&#x28;'=>'(', '&#40;'=>'(', '&#x29;'=>')', '&#41;'=>')', '&#x20;'=>':', '&#32;'=>':', '&#x22;'=>'"', '&#34;'=>'"', '&#x27;'=>"'", '&#39;'=>"'", '&#x2f;'=>'/', '&#47;'=>'/', '&#x2a;'=>'*', '&#42;'=>'*', '&#x5c;'=>'\\', '&#92;'=>'\\');
- $v = strtr($v, $sC);
- }
- $v = preg_replace_callback('`(url(?:\()(?: )*(?:\'|"|&(?:quot|apos);)?)(.+?)((?:\'|"|&(?:quot|apos);)?(?: )*(?:\)))`iS', 'hl_prot', $v);
- $v = !$C['css_expression'] ? preg_replace('`expression`i', ' ', preg_replace('`\\\\\S|(/|(%2f))(\*|(%2a))`i', ' ', $v)) : $v;
- }elseif(isset($aNP[$k]) or strpos($k, 'src') !== false or $k[0] == 'o'){
- $v = str_replace("\xad", ' ', (strpos($v, '&') !== false ? str_replace(array('&#xad;', '&#173;', '&shy;'), ' ', $v) : $v));
- $v = hl_prot($v, $k);
- if($k == 'href'){ // X-spam
- if($C['anti_mail_spam'] && strpos($v, 'mailto:') === 0){
- $v = str_replace('@', htmlspecialchars($C['anti_mail_spam']), $v);
- }elseif($C['anti_link_spam']){
- $r1 = $C['anti_link_spam'][1];
- if(!empty($r1) && preg_match($r1, $v)){continue;}
- $r0 = $C['anti_link_spam'][0];
- if(!empty($r0) && preg_match($r0, $v)){
- if(isset($a['rel'])){
- if(!preg_match('`\bnofollow\b`i', $a['rel'])){$a['rel'] .= ' nofollow';}
- }elseif(isset($aA['rel'])){
- if(!preg_match('`\bnofollow\b`i', $aA['rel'])){$nfr = 1;}
- }else{$a['rel'] = 'nofollow';}
- }
- }
- }
- }
- if(isset($rl[$k]) && is_array($rl[$k]) && ($v = hl_attrval($v, $rl[$k])) === 0){continue;}
- $a[$k] = str_replace('"', '&quot;', $v);
- }
-}
-if($nfr){$a['rel'] = isset($a['rel']) ? $a['rel']. ' nofollow' : 'nofollow';}
-
-// rqd attr
-static $eAR = array('area'=>array('alt'=>'area'), 'bdo'=>array('dir'=>'ltr'), 'form'=>array('action'=>''), 'img'=>array('src'=>'', 'alt'=>'image'), 'map'=>array('name'=>''), 'optgroup'=>array('label'=>''), 'param'=>array('name'=>''), 'script'=>array('type'=>'text/javascript'), 'textarea'=>array('rows'=>'10', 'cols'=>'50'));
-if(isset($eAR[$e])){
- foreach($eAR[$e] as $k=>$v){
- if(!isset($a[$k])){$a[$k] = isset($v[0]) ? $v : $k;}
- }
-}
-
-// depr attrs
-if($depTr){
- $c = array();
- foreach($a as $k=>$v){
- if($k == 'style' or !isset($aND[$k][$e])){continue;}
- if($k == 'align'){
- unset($a['align']);
- if($e == 'img' && ($v == 'left' or $v == 'right')){$c[] = 'float: '. $v;}
- elseif(($e == 'div' or $e == 'table') && $v == 'center'){$c[] = 'margin: auto';}
- else{$c[] = 'text-align: '. $v;}
- }elseif($k == 'bgcolor'){
- unset($a['bgcolor']);
- $c[] = 'background-color: '. $v;
- }elseif($k == 'border'){
- unset($a['border']); $c[] = "border: {$v}px";
- }elseif($k == 'bordercolor'){
- unset($a['bordercolor']); $c[] = 'border-color: '. $v;
- }elseif($k == 'clear'){
- unset($a['clear']); $c[] = 'clear: '. ($v != 'all' ? $v : 'both');
- }elseif($k == 'compact'){
- unset($a['compact']); $c[] = 'font-size: 85%';
- }elseif($k == 'height' or $k == 'width'){
- unset($a[$k]); $c[] = $k. ': '. ($v[0] != '*' ? $v. (ctype_digit($v) ? 'px' : '') : 'auto');
- }elseif($k == 'hspace'){
- unset($a['hspace']); $c[] = "margin-left: {$v}px; margin-right: {$v}px";
- }elseif($k == 'language' && !isset($a['type'])){
- unset($a['language']);
- $a['type'] = 'text/'. strtolower($v);
- }elseif($k == 'name'){
- if($C['no_deprecated_attr'] == 2 or ($e != 'a' && $e != 'map')){unset($a['name']);}
- if(!isset($a['id']) && preg_match('`[a-zA-Z][a-zA-Z\d.:_\-]*`', $v)){$a['id'] = $v;}
- }elseif($k == 'noshade'){
- unset($a['noshade']); $c[] = 'border-style: none; border: 0; background-color: gray; color: gray';
- }elseif($k == 'nowrap'){
- unset($a['nowrap']); $c[] = 'white-space: nowrap';
- }elseif($k == 'size'){
- unset($a['size']); $c[] = 'size: '. $v. 'px';
- }elseif($k == 'start' or $k == 'value'){
- unset($a[$k]);
- }elseif($k == 'type'){
- unset($a['type']);
- static $ol_type = array('i'=>'lower-roman', 'I'=>'upper-roman', 'a'=>'lower-latin', 'A'=>'upper-latin', '1'=>'decimal');
- $c[] = 'list-style-type: '. (isset($ol_type[$v]) ? $ol_type[$v] : 'decimal');
- }elseif($k == 'vspace'){
- unset($a['vspace']); $c[] = "margin-top: {$v}px; margin-bottom: {$v}px";
- }
- }
- if(count($c)){
- $c = implode('; ', $c);
- $a['style'] = isset($a['style']) ? rtrim($a['style'], ' ;'). '; '. $c. ';': $c. ';';
- }
-}
-// unique ID
-if($C['unique_ids'] && isset($a['id'])){
- if(!preg_match('`^[A-Za-z][A-Za-z0-9_\-.:]*$`', ($id = $a['id'])) or (isset($GLOBALS['hl_Ids'][$id]) && $C['unique_ids'] == 1)){unset($a['id']);
- }else{
- while(isset($GLOBALS['hl_Ids'][$id])){$id = $C['unique_ids']. $id;}
- $GLOBALS['hl_Ids'][($a['id'] = $id)] = 1;
- }
-}
-// xml:lang
-if($C['xml:lang'] && isset($a['lang'])){
- $a['xml:lang'] = isset($a['xml:lang']) ? $a['xml:lang'] : $a['lang'];
- if($C['xml:lang'] == 2){unset($a['lang']);}
-}
-// for transformed tag
-if(!empty($trt)){
- $a['style'] = isset($a['style']) ? rtrim($a['style'], ' ;'). '; '. $trt : $trt;
-}
-// return with empty ele /
-if(empty($C['hook_tag'])){
- $aA = '';
- foreach($a as $k=>$v){$aA .= " {$k}=\"{$v}\"";}
- return "<{$e}{$aA}". (isset($eE[$e]) ? ' /' : ''). '>';
-}
-else{return $C['hook_tag']($e, $a);}
-// eof
-}
-
-function hl_tag2(&$e, &$a, $t=1){
-// transform tag
-if($e == 'center'){$e = 'div'; return 'text-align: center;';}
-if($e == 'dir' or $e == 'menu'){$e = 'ul'; return '';}
-if($e == 's' or $e == 'strike'){$e = 'span'; return 'text-decoration: line-through;';}
-if($e == 'u'){$e = 'span'; return 'text-decoration: underline;';}
-static $fs = array('0'=>'xx-small', '1'=>'xx-small', '2'=>'small', '3'=>'medium', '4'=>'large', '5'=>'x-large', '6'=>'xx-large', '7'=>'300%', '-1'=>'smaller', '-2'=>'60%', '+1'=>'larger', '+2'=>'150%', '+3'=>'200%', '+4'=>'300%');
-if($e == 'font'){
- $a2 = '';
- if(preg_match('`face\s*=\s*(\'|")([^=]+?)\\1`i', $a, $m) or preg_match('`face\s*=(\s*)(\S+)`i', $a, $m)){
- $a2 .= ' font-family: '. str_replace('"', '\'', trim($m[2])). ';';
- }
- if(preg_match('`color\s*=\s*(\'|")?(.+?)(\\1|\s|$)`i', $a, $m)){
- $a2 .= ' color: '. trim($m[2]). ';';
- }
- if(preg_match('`size\s*=\s*(\'|")?(.+?)(\\1|\s|$)`i', $a, $m) && isset($fs[($m = trim($m[2]))])){
- $a2 .= ' font-size: '. $fs[$m]. ';';
- }
- $e = 'span'; return ltrim($a2);
-}
-if($t == 2){$e = 0; return 0;}
-return '';
-// eof
-}
-
-function hl_tidy($t, $w, $p){
-// Tidy/compact HTM
-if(strpos(' pre,script,textarea', "$p,")){return $t;}
-$t = str_replace(' </', '</', preg_replace(array('`(<\w[^>]*(?<!/)>)\s+`', '`\s+`', '`(<\w[^>]*(?<!/)>) `'), array(' $1', ' ', '$1'), preg_replace_callback(array('`(<(!\[CDATA\[))(.+?)(\]\]>)`sm', '`(<(!--))(.+?)(-->)`sm', '`(<(pre|script|textarea)[^>]*?>)(.+?)(</\2>)`sm'), create_function('$m', 'return $m[1]. str_replace(array("<", ">", "\n", "\r", "\t", " "), array("\x01", "\x02", "\x03", "\x04", "\x05", "\x07"), $m[3]). $m[4];'), $t)));
-if(($w = strtolower($w)) == -1){
- return str_replace(array("\x01", "\x02", "\x03", "\x04", "\x05", "\x07"), array('<', '>', "\n", "\r", "\t", ' '), $t);
-}
-$s = strpos(" $w", 't') ? "\t" : ' ';
-$s = preg_match('`\d`', $w, $m) ? str_repeat($s, $m[0]) : str_repeat($s, ($s == "\t" ? 1 : 2));
-$N = preg_match('`[ts]([1-9])`', $w, $m) ? $m[1] : 0;
-$a = array('br'=>1);
-$b = array('button'=>1, 'input'=>1, 'option'=>1);
-$c = array('caption'=>1, 'dd'=>1, 'dt'=>1, 'h1'=>1, 'h2'=>1, 'h3'=>1, 'h4'=>1, 'h5'=>1, 'h6'=>1, 'isindex'=>1, 'label'=>1, 'legend'=>1, 'li'=>1, 'object'=>1, 'p'=>1, 'pre'=>1, 'td'=>1, 'textarea'=>1, 'th'=>1);
-$d = array('address'=>1, 'blockquote'=>1, 'center'=>1, 'colgroup'=>1, 'dir'=>1, 'div'=>1, 'dl'=>1, 'fieldset'=>1, 'form'=>1, 'hr'=>1, 'iframe'=>1, 'map'=>1, 'menu'=>1, 'noscript'=>1, 'ol'=>1, 'optgroup'=>1, 'rbc'=>1, 'rtc'=>1, 'ruby'=>1, 'script'=>1, 'select'=>1, 'table'=>1, 'tbody'=>1, 'tfoot'=>1, 'thead'=>1, 'tr'=>1, 'ul'=>1);
-$T = explode('<', $t);
-$X = 1;
-while($X){
- $n = $N;
- $t = $T;
- ob_start();
- if(isset($d[$p])){echo str_repeat($s, ++$n);}
- echo ltrim(array_shift($t));
- for($i=-1, $j=count($t); ++$i<$j;){
- $r = ''; list($e, $r) = explode('>', $t[$i]);
- $x = $e[0] == '/' ? 0 : (substr($e, -1) == '/' ? 1 : ($e[0] != '!' ? 2 : -1));
- $y = !$x ? ltrim($e, '/') : ($x > 0 ? substr($e, 0, strcspn($e, ' ')) : 0);
- $e = "<$e>";
- if(isset($d[$y])){
- if(!$x){
- if($n){echo "\n", str_repeat($s, --$n), "$e\n", str_repeat($s, $n);}
- else{++$N; ob_end_clean(); continue 2;}
- }
- else{echo "\n", str_repeat($s, $n), "$e\n", str_repeat($s, ($x != 1 ? ++$n : $n));}
- echo ltrim($r); continue;
- }
- $f = "\n". str_repeat($s, $n);
- if(isset($c[$y])){
- if(!$x){echo $e, $f, ltrim($r);}
- else{echo $f, $e, $r;}
- }elseif(isset($b[$y])){echo $f, $e, $r;
- }elseif(isset($a[$y])){echo $e, $f, ltrim($r);
- }elseif(!$y){echo $f, $e, $f, ltrim($r);
- }else{echo $e, $r;}
- }
- $X = 0;
-}
-$t = preg_replace('`[\n]\s*?[\n]+`', "\n", ob_get_contents());
-ob_end_clean();
-if(($l = strpos(" $w", 'r') ? (strpos(" $w", 'n') ? "\r\n" : "\r") : 0)){
- $t = str_replace("\n", $l, $t);
-}
-return str_replace(array("\x01", "\x02", "\x03", "\x04", "\x05", "\x07"), array('<', '>', "\n", "\r", "\t", ' '), $t);
-// eof
-}
-
-function hl_version(){
-// rel
-return '1.1.14';
-// eof
-}
-
-function kses($t, $h, $p=array('http', 'https', 'ftp', 'news', 'nntp', 'telnet', 'gopher', 'mailto')){
-// kses compat
-foreach($h as $k=>$v){
- $h[$k]['n']['*'] = 1;
-}
-$C['cdata'] = $C['comment'] = $C['make_tag_strict'] = $C['no_deprecated_attr'] = $C['unique_ids'] = 0;
-$C['keep_bad'] = 1;
-$C['elements'] = count($h) ? strtolower(implode(',', array_keys($h))) : '-*';
-$C['hook'] = 'kses_hook';
-$C['schemes'] = '*:'. implode(',', $p);
-return htmLawed($t, $C, $h);
-// eof
-}
-
-function kses_hook($t, &$C, &$S){
-// kses compat
-return $t;
-// eof
-} \ No newline at end of file
diff --git a/lib/index.html b/lib/index.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/lib/index.html
diff --git a/lib/iui/LICENSE.txt b/lib/iui/LICENSE.txt
deleted file mode 100644
index c9d2a0d65..000000000
--- a/lib/iui/LICENSE.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright (c) 2007-2009, iUI Project Members
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of the iUI Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/lib/iui/NOTICE.txt b/lib/iui/NOTICE.txt
deleted file mode 100644
index 3a23f563b..000000000
--- a/lib/iui/NOTICE.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-NOTICE.txt - iUI credits and copyright notices
-
- iUI is Copyright (c) 2007-2009 by the iUI project members:
- M. Sean Gilligan (msgilligan)
- Past members:
- Joe Hewitt (joehewitt)
- Christopher Allen (ChristopherA)
-
-CREDITS
- schlueter - committed fixes for issues #9, #11, #63 -- added samples
- ??? - created iUI icon
- kris.tate - named it "iUI", created Google Code project, initial checkin
- others - let us know if we missed you
- iUI users - thanks for your patience, feedback, and bug reports
-
-THIRD PARTY COMPONENTS
-
- * iUI includes software developed by the Mozilla Project
- Copyright (c) 1997-2007, Netscape Communications Corporation and others.
- All rights reserved.
- http://www.mozilla.org/rhino/
-
- * iUI includes software developed by the Dojo Foundation
- http://dojotoolkit.org/docs/shrinksafe
-
- * iUI includes software developed by LCA Soft Ltd.
- http://www.lcasoft.com/compress-js.html
-
- * iUI includes software developed by the ant-googlcode Project
- http://code.google.com/p/ant-googlecode/
-
-
-
diff --git a/lib/iui/backButton.png b/lib/iui/backButton.png
deleted file mode 100644
index e27ea8cdf..000000000
--- a/lib/iui/backButton.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/blueButton.png b/lib/iui/blueButton.png
deleted file mode 100644
index 0f92dfd94..000000000
--- a/lib/iui/blueButton.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/cancel.png b/lib/iui/cancel.png
deleted file mode 100644
index 5f6dcc87d..000000000
--- a/lib/iui/cancel.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/grayButton.png b/lib/iui/grayButton.png
deleted file mode 100644
index 0ce6a30d4..000000000
--- a/lib/iui/grayButton.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/iui-logo-touch-icon.png b/lib/iui/iui-logo-touch-icon.png
deleted file mode 100644
index 8817b3022..000000000
--- a/lib/iui/iui-logo-touch-icon.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/iui.css b/lib/iui/iui.css
deleted file mode 100644
index 3933dbad9..000000000
--- a/lib/iui/iui.css
+++ /dev/null
@@ -1,398 +0,0 @@
-/* iui.css (c) 2007-9 by iUI Project Members, see LICENSE.txt for license */
-body {
- margin: 0;
- font-family: Helvetica;
- background: #FFFFFF;
- color: #000000;
- overflow-x: hidden;
- -webkit-user-select: none;
- -webkit-text-size-adjust: none;
-}
-
-body > *:not(.toolbar) {
- display: none;
- position: absolute;
- margin: 0;
- padding: 0;
- left: 0;
- top: 45px;
- width: 100%;
- min-height: 372px;
- -webkit-transition-duration: 300ms;
- -webkit-transition-property: -webkit-transform;
- -webkit-transform: translateX(0%);
-}
-
-body[orient="landscape"] > *:not(.toolbar) {
- min-height: 268px;
-}
-
-body > *[selected="true"] {
- display: block;
-}
-
-a[selected], a:active {
- background-color: #194fdb !important;
- background-image: url(listArrowSel.png), url(selection.png) !important;
- background-repeat: no-repeat, repeat-x;
- background-position: right center, left top;
- color: #FFFFFF !important;
-}
-
-a[selected="progress"] {
- background-image: url(loading.gif), url(selection.png) !important;
-}
-
-/************************************************************************************************/
-
-body > .toolbar {
- box-sizing: border-box;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- border-bottom: 1px solid #2d3642;
- border-top: 1px solid #6d84a2;
- padding: 10px;
- height: 45px;
- background: url(toolbar.png) #6d84a2 repeat-x;
-}
-
-.toolbar > h1 {
- position: absolute;
- overflow: hidden;
- left: 50%;
- margin: 1px 0 0 -75px;
- height: 45px;
- font-size: 20px;
- width: 150px;
- font-weight: bold;
- text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
- text-align: center;
- text-overflow: ellipsis;
- white-space: nowrap;
- color: #FFFFFF;
-}
-
-body[orient="landscape"] > .toolbar > h1 {
- margin-left: -125px;
- width: 250px;
-}
-
-.button {
- position: absolute;
- overflow: hidden;
- top: 8px;
- right: 6px;
- margin: 0;
- border-width: 0 5px;
- padding: 0 3px;
- width: auto;
- height: 30px;
- line-height: 30px;
- font-family: inherit;
- font-size: 12px;
- font-weight: bold;
- color: #FFFFFF;
- text-shadow: rgba(0, 0, 0, 0.6) 0px -1px 0;
- text-overflow: ellipsis;
- text-decoration: none;
- white-space: nowrap;
- background: none;
- -webkit-border-image: url(toolButton.png) 0 5 0 5;
-}
-
-.blueButton {
- -webkit-border-image: url(blueButton.png) 0 5 0 5;
- border-width: 0 5px;
-}
-
-.leftButton {
- left: 6px;
- right: auto;
-}
-
-#backButton {
- display: none;
- left: 6px;
- right: auto;
- padding: 0;
- max-width: 55px;
- border-width: 0 8px 0 14px;
- -webkit-border-image: url(backButton.png) 0 8 0 14;
-}
-
-.whiteButton,
-.redButton,
-.grayButton {
- display: block;
- border-width: 0 12px;
- padding: 10px;
- text-align: center;
- font-size: 20px;
- font-weight: bold;
- text-decoration: inherit;
- color: inherit;
-}
-
-.whiteButton {
- -webkit-border-image: url(whiteButton.png) 0 12 0 12;
- text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0;
-}
-
-.redButton {
- -webkit-border-image: url(redButton.png) 0 12 0 12;
- color:#fff;
- text-shadow: #7a0001 0 -1px 0;
-}
-
-.grayButton {
- -webkit-border-image: url(grayButton.png) 0 12 0 12;
- color: #FFFFFF;
-}
-
-/************************************************************************************************/
-
-body > ul > li {
- position: relative;
- margin: 0;
- border-bottom: 1px solid #E0E0E0;
- padding: 8px 0 8px 10px;
- font-size: 20px;
- font-weight: bold;
- list-style: none;
-}
-
-body > ul > li.group {
- position: relative;
- top: -1px;
- margin-bottom: -2px;
- border-top: 1px solid #7d7d7d;
- border-bottom: 1px solid #999999;
- padding: 1px 10px;
- background: url(listGroup.png) repeat-x;
- font-size: 17px;
- font-weight: bold;
- text-shadow: rgba(0, 0, 0, 0.4) 0 1px 0;
- color: #FFFFFF;
-}
-
-body > ul > li.group:first-child {
- top: 0;
- border-top: none;
-}
-
-body > ul > li > a {
- display: block;
- margin: -8px 0 -8px -10px;
- padding: 8px 32px 8px 10px;
- text-decoration: none;
- color: inherit;
- background: url(listArrow.png) no-repeat right center;
-}
-
-a[target="_replace"] {
- box-sizing: border-box;
- -webkit-box-sizing: border-box;
- padding-top: 25px;
- padding-bottom: 25px;
- font-size: 18px;
- color: cornflowerblue;
- background-color: #FFFFFF;
- background-image: none;
-}
-
-/************************************************************************************************/
-
-body > .dialog {
- top: 0;
- width: 100%;
- min-height: 417px;
- z-index: 2;
- background: rgba(0, 0, 0, 0.8);
- padding: 0;
- text-align: right;
-}
-
-.dialog > fieldset {
- box-sizing: border-box;
- -webkit-box-sizing: border-box;
- width: 100%;
- margin: 0;
- border: none;
- border-top: 1px solid #6d84a2;
- padding: 10px 6px;
- background: url(toolbar.png) #7388a5 repeat-x;
-}
-
-.dialog > fieldset > h1 {
- margin: 0 10px 0 10px;
- padding: 0;
- font-size: 20px;
- font-weight: bold;
- color: #FFFFFF;
- text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
- text-align: center;
-}
-
-.dialog > fieldset > label {
- position: absolute;
- margin: 16px 0 0 6px;
- font-size: 14px;
- color: #999999;
-}
-
-/*input:not(input[type|=radio]):not(input[type|=checkbox]) {*/
-input[type|=text], input[type|=password] {
- box-sizing: border-box;
- -webkit-box-sizing: border-box;
- width: 100%;
- margin: 8px 0 0 0;
- padding: 6px 6px 6px 44px;
- font-size: 16px;
- font-weight: normal;
-}
-
-/************************************************************************************************/
-
-body > .panel {
- box-sizing: border-box;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- padding: 10px;
- background: #c8c8c8 url(pinstripes.png);
-}
-
-.panel > fieldset {
- position: relative;
- margin: 0 0 20px 0;
- padding: 0;
- background: #FFFFFF;
- -webkit-border-radius: 10px;
- -moz-border-radius: 10px;
- border: 1px solid #999999;
- text-align: right;
- font-size: 16px;
-}
-
-.row {
- position: relative;
- min-height: 42px;
- border-bottom: 1px solid #999999;
- -webkit-border-radius: 0;
- text-align: left;
-}
-
-fieldset > .row:last-child {
- border-bottom: none !important;
-}
-
-/*.row > input:not(input[type|=radio]):not(input[type|=checkbox]) {*/
-.row > input[type|=text], .row > input[type|=password] {
- box-sizing: border-box;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- margin: 0;
- border: none;
- padding: 12px 10px 0 110px;
-/* height: 42px;*/
- background: none;
-}
-.row > input[type|=radio], .row > input[type|=checkbox] {
- margin: 7px 7px 0 0;
- height: 25px;
- width: 25px;
-}
-
-.row > label {
- position: absolute;
- margin: 0 0 0 14px;
- line-height: 42px;
- font-weight: bold;
-}
-
-.row > span {
- position: absolute;
- padding: 12px 10px 0 110px;
- margin: 0;
-}
-
-.row > .toggle {
- position: absolute;
- top: 6px;
- right: 6px;
- width: 100px;
- height: 28px;
-}
-
-.toggle {
- border: 1px solid #888888;
- -webkit-border-radius: 6px;
- background: #FFFFFF url(toggle.png) repeat-x;
- font-size: 19px;
- font-weight: bold;
- line-height: 30px;
-}
-
-.toggle[toggled="true"] {
- border: 1px solid #143fae;
- background: #194fdb url(toggleOn.png) repeat-x;
-}
-
-.toggleOn {
- display: none;
- position: absolute;
- width: 60px;
- text-align: center;
- left: 0;
- top: 0;
- color: #FFFFFF;
- text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
-}
-
-.toggleOff {
- position: absolute;
- width: 60px;
- text-align: center;
- right: 0;
- top: 0;
- color: #666666;
-}
-
-.toggle[toggled="true"] > .toggleOn {
- display: block;
-}
-
-.toggle[toggled="true"] > .toggleOff {
- display: none;
-}
-
-.thumb {
- position: absolute;
- top: -1px;
- left: -1px;
- width: 40px;
- height: 28px;
- border: 1px solid #888888;
- -webkit-border-radius: 6px;
- background: #ffffff url(thumb.png) repeat-x;
-}
-
-.toggle[toggled="true"] > .thumb {
- left: auto;
- right: -1px;
-}
-
-.panel > h2 {
- margin: 0 0 8px 14px;
- font-size: inherit;
- font-weight: bold;
- color: #4d4d70;
- text-shadow: rgba(255, 255, 255, 0.75) 2px 2px 0;
-}
-
-/************************************************************************************************/
-
-#preloader {
- display: none;
- background-image: url(loading.gif), url(selection.png),
- url(blueButton.png), url(listArrowSel.png), url(listGroup.png);
-}
diff --git a/lib/iui/iui.js b/lib/iui/iui.js
deleted file mode 100644
index 0937afe05..000000000
--- a/lib/iui/iui.js
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
- Copyright (c) 2007-9, iUI Project Members
- See LICENSE.txt for licensing terms
- */
-
-
-(function() {
-
-var slideSpeed = 20;
-var slideInterval = 0;
-
-var currentPage = null;
-var currentDialog = null;
-var currentWidth = 0;
-var currentHash = location.hash;
-var hashPrefix = "#_";
-var pageHistory = [];
-var newPageCount = 0;
-var checkTimer;
-var hasOrientationEvent = false;
-var portraitVal = "portrait";
-var landscapeVal = "landscape";
-
-// *************************************************************************************************
-
-window.iui =
-{
- animOn: true, // Slide animation with CSS transition is now enabled by default where supported
-
- showPage: function(page, backwards)
- {
- if (page)
- {
- if (currentDialog)
- {
- currentDialog.removeAttribute("selected");
- currentDialog = null;
- }
-
- if (hasClass(page, "dialog"))
- showDialog(page);
- else
- {
- var fromPage = currentPage;
- currentPage = page;
-
- if (fromPage)
- setTimeout(slidePages, 0, fromPage, page, backwards);
- else
- updatePage(page, fromPage);
- }
- }
- },
-
- showPageById: function(pageId)
- {
- var page = $(pageId);
- if (page)
- {
- var index = pageHistory.indexOf(pageId);
- var backwards = index != -1;
- if (backwards)
- pageHistory.splice(index, pageHistory.length);
-
- iui.showPage(page, backwards);
- }
- },
-
- showPageByHref: function(href, args, method, replace, cb, bw)
- {
- var req = new XMLHttpRequest();
- req.onerror = function()
- {
- if (cb)
- cb(false);
- };
-
- req.onreadystatechange = function()
- {
- if (req.readyState == 4)
- {
- if (replace)
- replaceElementWithSource(replace, req.responseText);
- else
- {
- var frag = document.createElement("div");
- frag.innerHTML = req.responseText;
- iui.insertPages(frag.childNodes, bw);
- }
- if (cb)
- setTimeout(cb, 1000, true);
- }
- };
-
- if (args)
- {
- req.open(method || "GET", href, true);
- req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- req.setRequestHeader("Content-Length", args.length);
- req.send(args.join("&"));
- }
- else
- {
- req.open(method || "GET", href, true);
- req.send(null);
- }
- },
-
- insertPages: function(nodes, bw)
- {
- var targetPage;
- for (var i = 0; i < nodes.length; ++i)
- {
- var child = nodes[i];
- if (child.nodeType == 1)
- {
- if (!child.id)
- child.id = "__" + (++newPageCount) + "__";
-
- var clone = $(child.id);
- if (clone)
- clone.parentNode.replaceChild(child, clone);
- else
- document.body.appendChild(child);
-
- if (child.getAttribute("selected") == "true" || !targetPage)
- targetPage = child;
-
- --i;
- }
- }
-
- if (targetPage)
- iui.showPage(targetPage, bw);
- },
-
- getSelectedPage: function()
- {
- for (var child = document.body.firstChild; child; child = child.nextSibling)
- {
- if (child.nodeType == 1 && child.getAttribute("selected") == "true")
- return child;
- }
- },
- isNativeUrl: function(href)
- {
- for(var i = 0; i < iui.nativeUrlPatterns.length; i++)
- {
- if(href.match(iui.nativeUrlPatterns[i])) return true;
- }
- return false;
- },
- nativeUrlPatterns: [
- new RegExp("^http:\/\/maps.google.com\/maps\?"),
- new RegExp("^mailto:"),
- new RegExp("^tel:"),
- new RegExp("^http:\/\/www.youtube.com\/watch\\?v="),
- new RegExp("^http:\/\/www.youtube.com\/v\/"),
- new RegExp("^javascript:"),
-
- ]
-};
-
-// *************************************************************************************************
-
-addEventListener("load", function(event)
-{
- var page = iui.getSelectedPage();
- var locPage = getPageFromLoc();
-
- if (page)
- iui.showPage(page);
-
- if (locPage && (locPage != page))
- iui.showPage(locPage);
-
- setTimeout(preloadImages, 0);
- if (typeof window.onorientationchange == "object")
- {
- window.onorientationchange=orientChangeHandler;
- hasOrientationEvent = true;
- setTimeout(orientChangeHandler, 0);
- }
- setTimeout(checkOrientAndLocation, 0);
- checkTimer = setInterval(checkOrientAndLocation, 300);
-}, false);
-
-addEventListener("unload", function(event)
-{
- return;
-}, false);
-
-addEventListener("click", function(event)
-{
- var link = findParent(event.target, "a");
- if (link)
- {
- function unselect() { link.removeAttribute("selected"); }
-
- if (link.href && link.hash && link.hash != "#" && !link.target)
- {
- link.setAttribute("selected", "true");
- iui.showPage($(link.hash.substr(1)));
- setTimeout(unselect, 500);
- }
- else if (link == $("backButton"))
- history.back();
- else if (link.getAttribute("type") == "submit")
- {
- var form = findParent(link, "form");
- if (form.target == "_self")
- {
- form.submit();
- return; // return so we don't preventDefault
- }
- submitForm(form);
- }
- else if (link.getAttribute("type") == "cancel")
- cancelDialog(findParent(link, "form"));
- else if (link.target == "_replace")
- {
- link.setAttribute("selected", "progress");
- iui.showPageByHref(link.href, null, null, link, unselect);
- }
- else if (iui.isNativeUrl(link.href))
- {
- return;
- }
- else if (link.target == "_webapp")
- {
- location.href = link.href;
- }
- else if (!link.target)
- {
- link.setAttribute("selected", "progress");
- var bw = link.getAttribute("backwards");
- iui.showPageByHref(link.href, null, null, null, unselect, bw);
- }
- else
- return;
-
- event.preventDefault();
- }
-}, true);
-
-addEventListener("click", function(event)
-{
- var div = findParent(event.target, "div");
- if (div && hasClass(div, "toggle"))
- {
- div.setAttribute("toggled", div.getAttribute("toggled") != "true");
- event.preventDefault();
- }
-}, true);
-
-function getPageFromLoc()
-{
- var page;
- var result = location.hash.match(/#_([^\?_]+)/);
- if (result)
- page = result[1];
- if (page)
- page = $(page);
- return page;
-}
-
-function orientChangeHandler()
-{
- var orientation=window.orientation;
- switch(orientation)
- {
- case 0:
- setOrientation(portraitVal);
- break;
-
- case 90:
- case -90:
- setOrientation(landscapeVal);
- break;
- }
-}
-
-
-function checkOrientAndLocation()
-{
- if (!hasOrientationEvent)
- {
- if (window.innerWidth != currentWidth)
- {
- currentWidth = window.innerWidth;
- var orient = currentWidth == 320 ? portraitVal : landscapeVal;
- setOrientation(orient);
- }
- }
-
- if (location.hash != currentHash)
- {
- var pageId = location.hash.substr(hashPrefix.length);
- iui.showPageById(pageId);
- }
-}
-
-function setOrientation(orient)
-{
- document.body.setAttribute("orient", orient);
- setTimeout(scrollTo, 100, 0, 1);
-}
-
-function showDialog(page)
-{
- currentDialog = page;
- page.setAttribute("selected", "true");
-
- if (hasClass(page, "dialog") && !page.target)
- showForm(page);
-}
-
-function showForm(form)
-{
- form.onsubmit = function(event)
- {
- event.preventDefault();
- submitForm(form);
- };
-
- form.onclick = function(event)
- {
- if (event.target == form && hasClass(form, "dialog"))
- cancelDialog(form);
- };
-}
-
-function cancelDialog(form)
-{
- form.removeAttribute("selected");
-}
-
-function updatePage(page, fromPage)
-{
- if (!page.id)
- page.id = "__" + (++newPageCount) + "__";
-
- location.hash = currentHash = hashPrefix + page.id;
- pageHistory.push(page.id);
-
- var pageTitle = $("pageTitle");
- if (page.title)
- pageTitle.innerHTML = page.title;
-
- if (page.localName.toLowerCase() == "form" && !page.target)
- showForm(page);
-
- var backButton = $("backButton");
- if (backButton)
- {
- var prevPage = $(pageHistory[pageHistory.length-2]);
- if (prevPage && !page.getAttribute("hideBackButton"))
- {
- backButton.style.display = "inline";
- backButton.innerHTML = prevPage.title ? prevPage.title : "Back";
- }
- else
- backButton.style.display = "none";
- }
-
- var backButton = $("myBackButton");
- if (backButton)
- {
- var label = page.getAttribute("myBackLabel");
-
- if (label)
- {
- backButton.style.display = "inline";
- backButton.innerHTML = label;
- backButton.href = page.getAttribute("myBackHref");
- //backButton.target = page.getAttribute("myBackTarget");
- target = page.getAttribute("myBackTarget");
- if (target == null)
- backButton.target = '';
- else
- backButton.target = target;
- backButton.setAttribute("backwards", "true");
- }
- else
- backButton.style.display = "none";
- }
-
-}
-
-function slidePages(fromPage, toPage, backwards)
-{
- var axis = (backwards ? fromPage : toPage).getAttribute("axis");
-
- clearInterval(checkTimer);
-
- if (canDoSlideAnim() && axis != 'y')
- {
- slide2(fromPage, toPage, backwards, slideDone);
- }
- else
- {
- slide1(fromPage, toPage, backwards, axis, slideDone);
- }
-
- function slideDone()
- {
- if (!hasClass(toPage, "dialog"))
- fromPage.removeAttribute("selected");
- checkTimer = setInterval(checkOrientAndLocation, 300);
- setTimeout(updatePage, 0, toPage, fromPage);
- fromPage.removeEventListener('webkitTransitionEnd', slideDone, false);
- }
-}
-
-function canDoSlideAnim()
-{
- return (iui.animOn) && (typeof WebKitCSSMatrix == "object");
-}
-
-function slide1(fromPage, toPage, backwards, axis, cb)
-{
- if (axis == "y")
- (backwards ? fromPage : toPage).style.top = "100%";
- else
- toPage.style.left = "100%";
-
- scrollTo(0, 1);
- toPage.setAttribute("selected", "true");
- var percent = 100;
- slide();
- var timer = setInterval(slide, slideInterval);
-
- function slide()
- {
- percent -= slideSpeed;
- if (percent <= 0)
- {
- percent = 0;
- clearInterval(timer);
- cb();
- }
-
- if (axis == "y")
- {
- backwards
- ? fromPage.style.top = (100-percent) + "%"
- : toPage.style.top = percent + "%";
- }
- else
- {
- fromPage.style.left = (backwards ? (100-percent) : (percent-100)) + "%";
- toPage.style.left = (backwards ? -percent : percent) + "%";
- }
- }
-}
-
-
-function slide2(fromPage, toPage, backwards, cb)
-{
- toPage.style.webkitTransitionDuration = '0ms'; // Turn off transitions to set toPage start offset
- // fromStart is always 0% and toEnd is always 0%
- // iPhone won't take % width on toPage
- var toStart = 'translateX(' + (backwards ? '-' : '') + window.innerWidth + 'px)';
- var fromEnd = 'translateX(' + (backwards ? '100%' : '-100%') + ')';
- toPage.style.webkitTransform = toStart;
- toPage.setAttribute("selected", "true");
- toPage.style.webkitTransitionDuration = ''; // Turn transitions back on
- function startTrans()
- {
- fromPage.style.webkitTransform = fromEnd;
- toPage.style.webkitTransform = 'translateX(0%)'; //toEnd
- }
- fromPage.addEventListener('webkitTransitionEnd', cb, false);
- setTimeout(startTrans, 0);
-}
-
-function preloadImages()
-{
- var preloader = document.createElement("div");
- preloader.id = "preloader";
- document.body.appendChild(preloader);
-}
-
-function submitForm(form)
-{
- iui.showPageByHref(form.action || "POST", encodeForm(form), form.method);
-}
-
-function encodeForm(form)
-{
- function encode(inputs)
- {
- for (var i = 0; i < inputs.length; ++i)
- {
- if (inputs[i].name)
- args.push(inputs[i].name + "=" + escape(inputs[i].value));
- }
- }
-
- var args = [];
- encode(form.getElementsByTagName("input"));
- encode(form.getElementsByTagName("textarea"));
- encode(form.getElementsByTagName("select"));
- return args;
-}
-
-function findParent(node, localName)
-{
- while (node && (node.nodeType != 1 || node.localName.toLowerCase() != localName))
- node = node.parentNode;
- return node;
-}
-
-function hasClass(self, name)
-{
- var re = new RegExp("(^|\\s)"+name+"($|\\s)");
- return re.exec(self.getAttribute("class")) != null;
-}
-
-function replaceElementWithSource(replace, source)
-{
- var page = replace.parentNode;
- var parent = replace;
- while (page.parentNode != document.body)
- {
- page = page.parentNode;
- parent = parent.parentNode;
- }
-
- var frag = document.createElement(parent.localName);
- frag.innerHTML = source;
-
- page.removeChild(parent);
-
- while (frag.firstChild)
- page.appendChild(frag.firstChild);
-}
-
-function $(id) { return document.getElementById(id); }
-function ddd() { console.log.apply(console, arguments); }
-
-})();
diff --git a/lib/iui/iuix.css b/lib/iui/iuix.css
deleted file mode 100644
index 1df7e8a00..000000000
--- a/lib/iui/iuix.css
+++ /dev/null
@@ -1 +0,0 @@
-body{margin:0;font-family:Helvetica;background:#FFF;color:#000;overflow-x:hidden;-webkit-user-select:none;-webkit-text-size-adjust:none;}body>*:not(.toolbar){display:none;position:absolute;margin:0;padding:0;left:0;top:45px;width:100%;min-height:372px;-webkit-transition-duration:300ms;-webkit-transition-property:-webkit-transform;-webkit-transform:translateX(0%);}body[orient="landscape"]>*:not(.toolbar){min-height:268px;}body>*[selected="true"]{display:block;}a[selected],a:active{background-color:#194fdb!important;background-image:url(listArrowSel.png),url(selection.png)!important;background-repeat:no-repeat,repeat-x;background-position:right center,left top;color:#FFF!important;}a[selected="progress"]{background-image:url(loading.gif),url(selection.png)!important;}body>.toolbar{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border-bottom:1px solid #2d3642;border-top:1px solid #6d84a2;padding:10px;height:45px;background:url(toolbar.png) #6d84a2 repeat-x;}.toolbar>h1{position:absolute;overflow:hidden;left:50%;margin:1px 0 0 -75px;height:45px;font-size:20px;width:150px;font-weight:bold;text-shadow:rgba(0,0,0,0.4) 0 -1px 0;text-align:center;text-overflow:ellipsis;white-space:nowrap;color:#FFF;}body[orient="landscape"]>.toolbar>h1{margin-left:-125px;width:250px;}.button{position:absolute;overflow:hidden;top:8px;right:6px;margin:0;border-width:0 5px;padding:0 3px;width:auto;height:30px;line-height:30px;font-family:inherit;font-size:12px;font-weight:bold;color:#FFF;text-shadow:rgba(0,0,0,0.6) 0 -1px 0;text-overflow:ellipsis;text-decoration:none;white-space:nowrap;background:none;-webkit-border-image:url(toolButton.png) 0 5 0 5;}.blueButton{-webkit-border-image:url(blueButton.png) 0 5 0 5;border-width:0 5px;}.leftButton{left:6px;right:auto;}#backButton{display:none;left:6px;right:auto;padding:0;max-width:55px;border-width:0 8px 0 14px;-webkit-border-image:url(backButton.png) 0 8 0 14;}.whiteButton,.redButton,.grayButton{display:block;border-width:0 12px;padding:10px;text-align:center;font-size:20px;font-weight:bold;text-decoration:inherit;color:inherit;}.whiteButton{-webkit-border-image:url(whiteButton.png) 0 12 0 12;text-shadow:rgba(255,255,255,0.7) 0 1px 0;}.redButton{-webkit-border-image:url(redButton.png) 0 12 0 12;color:#fff;text-shadow:#7a0001 0 -1px 0;}.grayButton{-webkit-border-image:url(grayButton.png) 0 12 0 12;color:#FFF;}body>ul>li{position:relative;margin:0;border-bottom:1px solid #E0E0E0;padding:8px 0 8px 10px;font-size:20px;font-weight:bold;list-style:none;}body>ul>li.group{position:relative;top:-1px;margin-bottom:-2px;border-top:1px solid #7d7d7d;border-bottom:1px solid #999;padding:1px 10px;background:url(listGroup.png) repeat-x;font-size:17px;font-weight:bold;text-shadow:rgba(0,0,0,0.4) 0 1px 0;color:#FFF;}body>ul>li.group:first-child{top:0;border-top:none;}body>ul>li>a{display:block;margin:-8px 0 -8px -10px;padding:8px 32px 8px 10px;text-decoration:none;color:inherit;background:url(listArrow.png) no-repeat right center;}a[target="_replace"]{box-sizing:border-box;-webkit-box-sizing:border-box;padding-top:25px;padding-bottom:25px;font-size:18px;color:cornflowerblue;background-color:#FFF;background-image:none;}body>.dialog{top:0;width:100%;min-height:417px;z-index:2;background:rgba(0,0,0,0.8);padding:0;text-align:right;}.dialog>fieldset{box-sizing:border-box;-webkit-box-sizing:border-box;width:100%;margin:0;border:none;border-top:1px solid #6d84a2;padding:10px 6px;background:url(toolbar.png) #7388a5 repeat-x;}.dialog>fieldset>h1{margin:0 10px 0 10px;padding:0;font-size:20px;font-weight:bold;color:#FFF;text-shadow:rgba(0,0,0,0.4) 0 -1px 0;text-align:center;}.dialog>fieldset>label{position:absolute;margin:16px 0 0 6px;font-size:14px;color:#999;}input:not(input[type|=radio]):not(input[type|=checkbox]){box-sizing:border-box;-webkit-box-sizing:border-box;width:100%;margin:8px 0 0 0;padding:6px 6px 6px 44px;font-size:16px;font-weight:normal;}body>.panel{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:10px;background:#c8c8c8 url(pinstripes.png);}.panel>fieldset{position:relative;margin:0 0 20px 0;padding:0;background:#FFF;-webkit-border-radius:10px;-moz-border-radius:10px;border:1px solid #999;text-align:right;font-size:16px;}.row{position:relative;min-height:42px;border-bottom:1px solid #999;-webkit-border-radius:0;text-align:right;}fieldset>.row:last-child{border-bottom:none!important;}.row>input:not(input[type|=radio]):not(input[type|=checkbox]){box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin:0;border:none;padding:12px 10px 0 110px;height:42px;background:none;}.row>input[type|=radio],.row>input[type|=checkbox]{margin:7px 7px 0 0;height:25px;width:25px;}.row>label{position:absolute;margin:0 0 0 14px;line-height:42px;font-weight:bold;}.row>span{position:absolute;padding:12px 10px 0 110px;margin:0;}.row>.toggle{position:absolute;top:6px;right:6px;width:100px;height:28px;}.toggle{border:1px solid #888;-webkit-border-radius:6px;background:#FFF url(toggle.png) repeat-x;font-size:19px;font-weight:bold;line-height:30px;}.toggle[toggled="true"]{border:1px solid #143fae;background:#194fdb url(toggleOn.png) repeat-x;}.toggleOn{display:none;position:absolute;width:60px;text-align:center;left:0;top:0;color:#FFF;text-shadow:rgba(0,0,0,0.4) 0 -1px 0;}.toggleOff{position:absolute;width:60px;text-align:center;right:0;top:0;color:#666;}.toggle[toggled="true"]>.toggleOn{display:block;}.toggle[toggled="true"]>.toggleOff{display:none;}.thumb{position:absolute;top:-1px;left:-1px;width:40px;height:28px;border:1px solid #888;-webkit-border-radius:6px;background:#fff url(thumb.png) repeat-x;}.toggle[toggled="true"]>.thumb{left:auto;right:-1px;}.panel>h2{margin:0 0 8px 14px;font-size:inherit;font-weight:bold;color:#4d4d70;text-shadow:rgba(255,255,255,0.75) 2px 2px 0;}#preloader{display:none;background-image:url(loading.gif),url(selection.png),url(blueButton.png),url(listArrowSel.png),url(listGroup.png);} \ No newline at end of file
diff --git a/lib/iui/iuix.js b/lib/iui/iuix.js
deleted file mode 100644
index 09d2eb993..000000000
--- a/lib/iui/iuix.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var _1=20;var _2=0;var _3=null;var _4=null;var _5=0;var _6=location.hash;var _7="#_";var _8=[];var _9=0;var _a;var _b=false;var _c="portrait";var _d="landscape";window.iui={animOn:true,showPage:function(_e,_f){if(_e){if(_4){_4.removeAttribute("selected");_4=null;}if(hasClass(_e,"dialog")){showDialog(_e);}else{var _10=_3;_3=_e;if(_10){setTimeout(slidePages,0,_10,_e,_f);}else{updatePage(_e,_10);}}}},showPageById:function(_11){var _12=$(_11);if(_12){var _13=_8.indexOf(_11);var _14=_13!=-1;if(_14){_8.splice(_13,_8.length);}iui.showPage(_12,_14);}},showPageByHref:function(_15,_16,_17,_18,cb){var req=new XMLHttpRequest();req.onerror=function(){if(cb){cb(false);}};req.onreadystatechange=function(){if(req.readyState==4){if(_18){replaceElementWithSource(_18,req.responseText);}else{var _1b=document.createElement("div");_1b.innerHTML=req.responseText;iui.insertPages(_1b.childNodes);}if(cb){setTimeout(cb,1000,true);}}};if(_16){req.open(_17||"GET",_15,true);req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");req.setRequestHeader("Content-Length",_16.length);req.send(_16.join("&"));}else{req.open(_17||"GET",_15,true);req.send(null);}},insertPages:function(_1c){var _1d;for(var i=0;i<_1c.length;++i){var _1f=_1c[i];if(_1f.nodeType==1){if(!_1f.id){_1f.id="__"+(++_9)+"__";}var _20=$(_1f.id);if(_20){_20.parentNode.replaceChild(_1f,_20);}else{document.body.appendChild(_1f);}if(_1f.getAttribute("selected")=="true"||!_1d){_1d=_1f;}--i;}}if(_1d){iui.showPage(_1d);}},getSelectedPage:function(){for(var _21=document.body.firstChild;_21;_21=_21.nextSibling){if(_21.nodeType==1&&_21.getAttribute("selected")=="true"){return _21;}}},isNativeUrl:function(_22){for(var i=0;i<iui.nativeUrlPatterns.length;i++){if(_22.match(iui.nativeUrlPatterns[i])){return true;}}return false;},nativeUrlPatterns:[new RegExp("^http://maps.google.com/maps?"),new RegExp("^mailto:"),new RegExp("^tel:"),new RegExp("^http://www.youtube.com/watch\\?v="),new RegExp("^http://www.youtube.com/v/"),new RegExp("^javascript:"),]};addEventListener("load",function(_24){var _25=iui.getSelectedPage();var _26=getPageFromLoc();if(_25){iui.showPage(_25);}if(_26&&(_26!=_25)){iui.showPage(_26);}setTimeout(preloadImages,0);if(typeof window.onorientationchange=="object"){window.onorientationchange=orientChangeHandler;_b=true;setTimeout(orientChangeHandler,0);}setTimeout(checkOrientAndLocation,0);_a=setInterval(checkOrientAndLocation,300);},false);addEventListener("unload",function(_27){return;},false);addEventListener("click",function(_28){var _29=findParent(_28.target,"a");if(_29){function unselect(){_29.removeAttribute("selected");}if(_29.href&&_29.hash&&_29.hash!="#"&&!_29.target){_29.setAttribute("selected","true");iui.showPage($(_29.hash.substr(1)));setTimeout(unselect,500);}else{if(_29==$("backButton")){history.back();}else{if(_29.getAttribute("type")=="submit"){var _2a=findParent(_29,"form");if(_2a.target=="_self"){_2a.submit();return;}submitForm(_2a);}else{if(_29.getAttribute("type")=="cancel"){cancelDialog(findParent(_29,"form"));}else{if(_29.target=="_replace"){_29.setAttribute("selected","progress");iui.showPageByHref(_29.href,null,null,_29,unselect);}else{if(iui.isNativeUrl(_29.href)){return;}else{if(_29.target=="_webapp"){location.href=_29.href;}else{if(!_29.target){_29.setAttribute("selected","progress");iui.showPageByHref(_29.href,null,null,null,unselect);}else{return;}}}}}}}}_28.preventDefault();}},true);addEventListener("click",function(_2b){var div=findParent(_2b.target,"div");if(div&&hasClass(div,"toggle")){div.setAttribute("toggled",div.getAttribute("toggled")!="true");_2b.preventDefault();}},true);function getPageFromLoc(){var _2d;var _2e=location.hash.match(/#_([^\?_]+)/);if(_2e){_2d=_2e[1];}if(_2d){_2d=$(_2d);}return _2d;}function orientChangeHandler(){var _2f=window.orientation;switch(_2f){case 0:setOrientation(_c);break;case 90:case -90:setOrientation(_d);break;}}function checkOrientAndLocation(){if(!_b){if(window.innerWidth!=_5){_5=window.innerWidth;var _30=_5==320?_c:_d;setOrientation(_30);}}if(location.hash!=_6){var _31=location.hash.substr(_7.length);iui.showPageById(_31);}}function setOrientation(_32){document.body.setAttribute("orient",_32);setTimeout(scrollTo,100,0,1);}function showDialog(_33){_4=_33;_33.setAttribute("selected","true");if(hasClass(_33,"dialog")&&!_33.target){showForm(_33);}}function showForm(_34){_34.onsubmit=function(_35){_35.preventDefault();submitForm(_34);};_34.onclick=function(_36){if(_36.target==_34&&hasClass(_34,"dialog")){cancelDialog(_34);}};}function cancelDialog(_37){_37.removeAttribute("selected");}function updatePage(_38,_39){if(!_38.id){_38.id="__"+(++_9)+"__";}location.hash=_6=_7+_38.id;_8.push(_38.id);var _3a=$("pageTitle");if(_38.title){_3a.innerHTML=_38.title;}if(_38.localName.toLowerCase()=="form"&&!_38.target){showForm(_38);}var _3b=$("backButton");if(_3b){var _3c=$(_8[_8.length-2]);if(_3c&&!_38.getAttribute("hideBackButton")){_3b.style.display="inline";_3b.innerHTML=_3c.title?_3c.title:"Back";}else{_3b.style.display="none";}}}function slidePages(_3d,_3e,_3f){var _40=(_3f?_3d:_3e).getAttribute("axis");clearInterval(_a);if(canDoSlideAnim()&&_40!="y"){slide2(_3d,_3e,_3f,slideDone);}else{slide1(_3d,_3e,_3f,_40,slideDone);}function slideDone(){if(!hasClass(_3e,"dialog")){_3d.removeAttribute("selected");}_a=setInterval(checkOrientAndLocation,300);setTimeout(updatePage,0,_3e,_3d);_3d.removeEventListener("webkitTransitionEnd",slideDone,false);}}function canDoSlideAnim(){return (iui.animOn)&&(typeof WebKitCSSMatrix=="object");}function slide1(_41,_42,_43,_44,cb){if(_44=="y"){(_43?_41:_42).style.top="100%";}else{_42.style.left="100%";}scrollTo(0,1);_42.setAttribute("selected","true");var _46=100;slide();var _47=setInterval(slide,_2);function slide(){_46-=_1;if(_46<=0){_46=0;clearInterval(_47);cb();}if(_44=="y"){_43?_41.style.top=(100-_46)+"%":_42.style.top=_46+"%";}else{_41.style.left=(_43?(100-_46):(_46-100))+"%";_42.style.left=(_43?-_46:_46)+"%";}}}function slide2(_48,_49,_4a,cb){_49.style.webkitTransitionDuration="0ms";var _4c="translateX("+(_4a?"-":"")+window.innerWidth+"px)";var _4d="translateX("+(_4a?"100%":"-100%")+")";_49.style.webkitTransform=_4c;_49.setAttribute("selected","true");_49.style.webkitTransitionDuration="";function startTrans(){_48.style.webkitTransform=_4d;_49.style.webkitTransform="translateX(0%)";}_48.addEventListener("webkitTransitionEnd",cb,false);setTimeout(startTrans,0);}function preloadImages(){var _4e=document.createElement("div");_4e.id="preloader";document.body.appendChild(_4e);}function submitForm(_4f){iui.showPageByHref(_4f.action||"POST",encodeForm(_4f),_4f.method);}function encodeForm(_50){function encode(_51){for(var i=0;i<_51.length;++i){if(_51[i].name){args.push(_51[i].name+"="+escape(_51[i].value));}}}var _53=[];encode(_50.getElementsByTagName("input"));encode(_50.getElementsByTagName("textarea"));encode(_50.getElementsByTagName("select"));return _53;}function findParent(_54,_55){while(_54&&(_54.nodeType!=1||_54.localName.toLowerCase()!=_55)){_54=_54.parentNode;}return _54;}function hasClass(_56,_57){var re=new RegExp("(^|\\s)"+_57+"($|\\s)");return re.exec(_56.getAttribute("class"))!=null;}function replaceElementWithSource(_59,_5a){var _5b=_59.parentNode;var _5c=_59;while(_5b.parentNode!=document.body){_5b=_5b.parentNode;_5c=_5c.parentNode;}var _5d=document.createElement(_5c.localName);_5d.innerHTML=_5a;_5b.removeChild(_5c);while(_5d.firstChild){_5b.appendChild(_5d.firstChild);}}function $(id){return document.getElementById(id);}function ddd(){console.log.apply(console,arguments);}})(); \ No newline at end of file
diff --git a/lib/iui/listArrow.png b/lib/iui/listArrow.png
deleted file mode 100644
index 6421a1676..000000000
--- a/lib/iui/listArrow.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/listArrowSel.png b/lib/iui/listArrowSel.png
deleted file mode 100644
index 86832ebc7..000000000
--- a/lib/iui/listArrowSel.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/listGroup.png b/lib/iui/listGroup.png
deleted file mode 100644
index 221553ae9..000000000
--- a/lib/iui/listGroup.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/loading.gif b/lib/iui/loading.gif
deleted file mode 100644
index 8522ddf1a..000000000
--- a/lib/iui/loading.gif
+++ /dev/null
Binary files differ
diff --git a/lib/iui/pinstripes.png b/lib/iui/pinstripes.png
deleted file mode 100644
index c99777512..000000000
--- a/lib/iui/pinstripes.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/redButton.png b/lib/iui/redButton.png
deleted file mode 100644
index 210f156af..000000000
--- a/lib/iui/redButton.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/selection.png b/lib/iui/selection.png
deleted file mode 100644
index 537e3f0b1..000000000
--- a/lib/iui/selection.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/thumb.png b/lib/iui/thumb.png
deleted file mode 100644
index cefa8fc5e..000000000
--- a/lib/iui/thumb.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/toggle.png b/lib/iui/toggle.png
deleted file mode 100644
index 3b62ebf26..000000000
--- a/lib/iui/toggle.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/toggleOn.png b/lib/iui/toggleOn.png
deleted file mode 100644
index b016814de..000000000
--- a/lib/iui/toggleOn.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/toolButton.png b/lib/iui/toolButton.png
deleted file mode 100644
index afe4d7a3e..000000000
--- a/lib/iui/toolButton.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/toolbar.png b/lib/iui/toolbar.png
deleted file mode 100644
index 3dde94c07..000000000
--- a/lib/iui/toolbar.png
+++ /dev/null
Binary files differ
diff --git a/lib/iui/whiteButton.png b/lib/iui/whiteButton.png
deleted file mode 100644
index 5514b2700..000000000
--- a/lib/iui/whiteButton.png
+++ /dev/null
Binary files differ
diff --git a/lib/jshrink/LICENSE b/lib/jshrink/LICENSE
new file mode 100644
index 000000000..68caa37c6
--- /dev/null
+++ b/lib/jshrink/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2009, Robert Hafner
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the Stash Project nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Robert Hafner BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file
diff --git a/lib/jshrink/Minifier.php b/lib/jshrink/Minifier.php
new file mode 100644
index 000000000..05054988a
--- /dev/null
+++ b/lib/jshrink/Minifier.php
@@ -0,0 +1,470 @@
+<?php
+/**
+ * JShrink
+ *
+ * Copyright (c) 2009-2012, Robert Hafner <[email protected]>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of Robert Hafner nor the names of his
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package JShrink
+ * @author Robert Hafner <[email protected]>
+ * @copyright 2009-2012 Robert Hafner <[email protected]>
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ * @link https://github.com/tedivm/JShrink
+ * @version Release: 0.5.1
+ */
+
+ namespace JShrink;
+
+/**
+ * Minifier
+ *
+ * Usage - Minifier::minify($js);
+ * Usage - Minifier::minify($js, $options);
+ * Usage - Minifier::minify($js, array('flaggedComments' => false));
+ *
+ * @package JShrink
+ * @author Robert Hafner <[email protected]>
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+class Minifier
+{
+ /**
+ * The input javascript to be minified.
+ *
+ * @var string
+ */
+ protected $input;
+
+ /**
+ * The location of the character (in the input string) that is next to be
+ * processed.
+ *
+ * @var int
+ */
+ protected $index = 0;
+
+ /**
+ * The first of the characters currently being looked at.
+ *
+ * @var string
+ */
+ protected $a = '';
+
+
+ /**
+ * The next character being looked at (after a);
+ *
+ * @var string
+ */
+ protected $b = '';
+
+ /**
+ * This character is only active when certain look ahead actions take place.
+ *
+ * @var string
+ */
+ protected $c;
+
+ /**
+ * Contains the options for the current minification process.
+ *
+ * @var array
+ */
+ protected $options;
+
+ /**
+ * Contains the default options for minification. This array is merged with
+ * the one passed in by the user to create the request specific set of
+ * options (stored in the $options attribute).
+ *
+ * @var array
+ */
+ static protected $defaultOptions = array('flaggedComments' => true);
+
+ /**
+ * Contains a copy of the JShrink object used to run minification. This is
+ * only used internally, and is only stored for performance reasons. There
+ * is no internal data shared between minification requests.
+ */
+ static protected $jshrink;
+
+ /**
+ * Minifier::minify takes a string containing javascript and removes
+ * unneeded characters in order to shrink the code without altering it's
+ * functionality.
+ */
+ static public function minify($js, $options = array())
+ {
+ try{
+ ob_start();
+ $currentOptions = array_merge(self::$defaultOptions, $options);
+
+ if(!isset(self::$jshrink))
+ self::$jshrink = new Minifier();
+
+ self::$jshrink->breakdownScript($js, $currentOptions);
+ return ob_get_clean();
+
+ }catch(Exception $e){
+ if(isset(self::$jshrink))
+ self::$jshrink->clean();
+
+ ob_end_clean();
+ throw $e;
+ }
+ }
+
+ /**
+ * Processes a javascript string and outputs only the required characters,
+ * stripping out all unneeded characters.
+ *
+ * @param string $js The raw javascript to be minified
+ * @param array $currentOptions Various runtime options in an associative array
+ */
+ protected function breakdownScript($js, $currentOptions)
+ {
+ // reset work attributes in case this isn't the first run.
+ $this->clean();
+
+ $this->options = $currentOptions;
+
+ $js = str_replace("\r\n", "\n", $js);
+ $this->input = str_replace("\r", "\n", $js);
+
+
+ $this->a = $this->getReal();
+
+ // the only time the length can be higher than 1 is if a conditional
+ // comment needs to be displayed and the only time that can happen for
+ // $a is on the very first run
+ while(strlen($this->a) > 1)
+ {
+ echo $this->a;
+ $this->a = $this->getReal();
+ }
+
+ $this->b = $this->getReal();
+
+ while($this->a !== false && !is_null($this->a) && $this->a !== '')
+ {
+
+ // now we give $b the same check for conditional comments we gave $a
+ // before we began looping
+ if(strlen($this->b) > 1)
+ {
+ echo $this->a . $this->b;
+ $this->a = $this->getReal();
+ $this->b = $this->getReal();
+ continue;
+ }
+
+ switch($this->a)
+ {
+ // new lines
+ case "\n":
+ // if the next line is something that can't stand alone
+ // preserve the newline
+ if(strpos('(-+{[@', $this->b) !== false)
+ {
+ echo $this->a;
+ $this->saveString();
+ break;
+ }
+
+ // if its a space we move down to the string test below
+ if($this->b === ' ')
+ break;
+
+ // otherwise we treat the newline like a space
+
+ case ' ':
+ if(self::isAlphaNumeric($this->b))
+ echo $this->a;
+
+ $this->saveString();
+ break;
+
+ default:
+ switch($this->b)
+ {
+ case "\n":
+ if(strpos('}])+-"\'', $this->a) !== false)
+ {
+ echo $this->a;
+ $this->saveString();
+ break;
+ }else{
+ if(self::isAlphaNumeric($this->a))
+ {
+ echo $this->a;
+ $this->saveString();
+ }
+ }
+ break;
+
+ case ' ':
+ if(!self::isAlphaNumeric($this->a))
+ break;
+
+ default:
+ // check for some regex that breaks stuff
+ if($this->a == '/' && ($this->b == '\'' || $this->b == '"'))
+ {
+ $this->saveRegex();
+ continue;
+ }
+
+ echo $this->a;
+ $this->saveString();
+ break;
+ }
+ }
+
+ // do reg check of doom
+ $this->b = $this->getReal();
+
+ if(($this->b == '/' && strpos('(,=:[!&|?', $this->a) !== false))
+ $this->saveRegex();
+ }
+ $this->clean();
+ }
+
+ /**
+ * Returns the next string for processing based off of the current index.
+ *
+ * @return string
+ */
+ protected function getChar()
+ {
+ if(isset($this->c))
+ {
+ $char = $this->c;
+ unset($this->c);
+ }else{
+ $tchar = substr($this->input, $this->index, 1);
+ if(isset($tchar) && $tchar !== false)
+ {
+ $char = $tchar;
+ $this->index++;
+ }else{
+ return false;
+ }
+ }
+
+ if($char !== "\n" && ord($char) < 32)
+ return ' ';
+
+ return $char;
+ }
+
+ /**
+ * This function gets the next "real" character. It is essentially a wrapper
+ * around the getChar function that skips comments. This has significant
+ * performance benefits as the skipping is done using native functions (ie,
+ * c code) rather than in script php.
+ *
+ * @return string Next 'real' character to be processed.
+ */
+ protected function getReal()
+ {
+ $startIndex = $this->index;
+ $char = $this->getChar();
+
+ if($char == '/')
+ {
+ $this->c = $this->getChar();
+
+ if($this->c == '/')
+ {
+ $thirdCommentString = substr($this->input, $this->index, 1);
+
+ // kill rest of line
+ $char = $this->getNext("\n");
+
+ if($thirdCommentString == '@')
+ {
+ $endPoint = ($this->index) - $startIndex;
+ unset($this->c);
+ $char = "\n" . substr($this->input, $startIndex, $endPoint);
+ }else{
+ $char = $this->getChar();
+ $char = $this->getChar();
+ }
+
+ }elseif($this->c == '*'){
+
+ $this->getChar(); // current C
+ $thirdCommentString = $this->getChar();
+
+ if($thirdCommentString == '@')
+ {
+ // conditional comment
+
+ // we're gonna back up a bit and and send the comment back,
+ // where the first char will be echoed and the rest will be
+ // treated like a string
+ $this->index = $this->index-2;
+ return '/';
+
+ }elseif($this->getNext('*/')){
+ // kill everything up to the next */
+
+ $this->getChar(); // get *
+ $this->getChar(); // get /
+
+ $char = $this->getChar(); // get next real character
+
+ // if YUI-style comments are enabled we reinsert it into the stream
+ if($this->options['flaggedComments'] && $thirdCommentString == '!')
+ {
+ $endPoint = ($this->index - 1) - $startIndex;
+ echo "\n" . substr($this->input, $startIndex, $endPoint) . "\n";
+ }
+
+ }else{
+ $char = false;
+ }
+
+ if($char === false)
+ throw new \RuntimeException('Stray comment. ' . $this->index);
+
+ // if we're here c is part of the comment and therefore tossed
+ if(isset($this->c))
+ unset($this->c);
+ }
+ }
+ return $char;
+ }
+
+ /**
+ * Pushes the index ahead to the next instance of the supplied string. If it
+ * is found the first character of the string is returned.
+ *
+ * @return string|false Returns the first character of the string or false.
+ */
+ protected function getNext($string)
+ {
+ $pos = strpos($this->input, $string, $this->index);
+
+ if($pos === false)
+ return false;
+
+ $this->index = $pos;
+ return substr($this->input, $this->index, 1);
+ }
+
+ /**
+ * When a javascript string is detected this function crawls for the end of
+ * it and saves the whole string.
+ *
+ */
+ protected function saveString()
+ {
+ $this->a = $this->b;
+ if($this->a == "'" || $this->a == '"') // is the character a quote
+ {
+ // save literal string
+ $stringType = $this->a;
+
+ while(1)
+ {
+ echo $this->a;
+ $this->a = $this->getChar();
+
+ switch($this->a)
+ {
+ case $stringType:
+ break 2;
+
+ case "\n":
+ throw new \RuntimeException('Unclosed string. ' . $this->index);
+ break;
+
+ case '\\':
+ echo $this->a;
+ $this->a = $this->getChar();
+ }
+ }
+ }
+ }
+
+ /**
+ * When a regular expression is detected this funcion crawls for the end of
+ * it and saves the whole regex.
+ */
+ protected function saveRegex()
+ {
+ echo $this->a . $this->b;
+
+ while(($this->a = $this->getChar()) !== false)
+ {
+ if($this->a == '/')
+ break;
+
+ if($this->a == '\\')
+ {
+ echo $this->a;
+ $this->a = $this->getChar();
+ }
+
+ if($this->a == "\n")
+ throw new \RuntimeException('Stray regex pattern. ' . $this->index);
+
+ echo $this->a;
+ }
+ $this->b = $this->getReal();
+ }
+
+ /**
+ * Resets attributes that do not need to be stored between requests so that
+ * the next request is ready to go.
+ */
+ protected function clean()
+ {
+ unset($this->input);
+ $this->index = 0;
+ $this->a = $this->b = '';
+ unset($this->c);
+ unset($this->options);
+ }
+
+ /**
+ * Checks to see if a character is alphanumeric.
+ *
+ * @return bool
+ */
+ static protected function isAlphaNumeric($char)
+ {
+ return preg_match('/^[\w\$]$/', $char) === 1 || $char == '/';
+ }
+
+} \ No newline at end of file
diff --git a/lib/jshrink/README.md b/lib/jshrink/README.md
new file mode 100644
index 000000000..4c024b5ea
--- /dev/null
+++ b/lib/jshrink/README.md
@@ -0,0 +1,21 @@
+JShrink is a php class that minifies javascript so that it can be delivered to the client quicker. This code can be used by any product looking to minify their javascript on the fly (although caching the results is suggested for performance reasons). Unlike many other products this is not a port into php but a native application, resulting in better performance.
+
+### Usage
+
+Minifying your code is simple call to a static function-
+
+````
+<?php
+// Basic (default) usage.
+$minifiedCode = JShrink\Minifier::minify($js);
+
+// Disable YUI style comment preservation.
+$minifiedCode = JShrink\Minifier::minify($js, array('flaggedComments' => false));
+````
+
+### Results
+
+* Raw - 586,990
+* Gzip - 151,301
+* JShrink - 371,982
+* JShrink and Gzip - 93,507
diff --git a/lib/jsmin.php b/lib/jsmin.php
deleted file mode 100644
index 5c3f88143..000000000
--- a/lib/jsmin.php
+++ /dev/null
@@ -1,375 +0,0 @@
-<?php
-/**
- * jsmin.php - PHP implementation of Douglas Crockford's JSMin.
- *
- * This is pretty much a direct port of jsmin.c to PHP with just a few
- * PHP-specific performance tweaks. Also, whereas jsmin.c reads from stdin and
- * outputs to stdout, this library accepts a string as input and returns another
- * string as output.
- *
- * PHP 5 or higher is required.
- *
- * Permission is hereby granted to use this version of the library under the
- * same terms as jsmin.c, which has the following license:
- *
- * --
- * Copyright (c) 2002 Douglas Crockford (www.crockford.com)
- *
- * 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 shall be used for Good, not Evil.
- *
- * 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.
- * --
- *
- * @package JSMin
- * @author Ryan Grove <[email protected]>
- * @copyright 2002 Douglas Crockford <[email protected]> (jsmin.c)
- * @copyright 2008 Ryan Grove <[email protected]> (PHP port)
- * @license http://opensource.org/licenses/mit-license.php MIT License
- * @version 1.1.1 (2008-03-02)
- * @link https://github.com/rgrove/jsmin-php/
- */
-
-class JSMin {
- const ORD_LF = 10;
- const ORD_SPACE = 32;
- const ACTION_KEEP_A = 1;
- const ACTION_DELETE_A = 2;
- const ACTION_DELETE_A_B = 3;
-
- protected $a = '';
- protected $b = '';
- protected $input = '';
- protected $inputIndex = 0;
- protected $inputLength = 0;
- protected $lookAhead = null;
- protected $output = '';
-
- // -- Public Static Methods --------------------------------------------------
-
- /**
- * Minify Javascript
- *
- * @uses __construct()
- * @uses min()
- * @param string $js Javascript to be minified
- * @return string
- */
- public static function minify($js) {
- $jsmin = new JSMin($js);
- return $jsmin->min();
- }
-
- // -- Public Instance Methods ------------------------------------------------
-
- /**
- * Constructor
- *
- * @param string $input Javascript to be minified
- */
- public function __construct($input) {
- $this->input = str_replace("\r\n", "\n", $input);
- $this->inputLength = strlen($this->input);
- }
-
- // -- Protected Instance Methods ---------------------------------------------
-
- /**
- * Action -- do something! What to do is determined by the $command argument.
- *
- * action treats a string as a single character. Wow!
- * action recognizes a regular expression if it is preceded by ( or , or =.
- *
- * @uses next()
- * @uses get()
- * @throws JSMinException If parser errors are found:
- * - Unterminated string literal
- * - Unterminated regular expression set in regex literal
- * - Unterminated regular expression literal
- * @param int $command One of class constants:
- * ACTION_KEEP_A Output A. Copy B to A. Get the next B.
- * ACTION_DELETE_A Copy B to A. Get the next B. (Delete A).
- * ACTION_DELETE_A_B Get the next B. (Delete B).
- */
- protected function action($command) {
- switch($command) {
- case self::ACTION_KEEP_A:
- $this->output .= $this->a;
-
- case self::ACTION_DELETE_A:
- $this->a = $this->b;
-
- if ($this->a === "'" || $this->a === '"') {
- for (;;) {
- $this->output .= $this->a;
- $this->a = $this->get();
-
- if ($this->a === $this->b) {
- break;
- }
-
- if (ord($this->a) <= self::ORD_LF) {
- throw new JSMinException('Unterminated string literal.');
- }
-
- if ($this->a === '\\') {
- $this->output .= $this->a;
- $this->a = $this->get();
- }
- }
- }
-
- case self::ACTION_DELETE_A_B:
- $this->b = $this->next();
-
- if ($this->b === '/' && (
- $this->a === '(' || $this->a === ',' || $this->a === '=' ||
- $this->a === ':' || $this->a === '[' || $this->a === '!' ||
- $this->a === '&' || $this->a === '|' || $this->a === '?' ||
- $this->a === '{' || $this->a === '}' || $this->a === ';' ||
- $this->a === "\n" )) {
-
- $this->output .= $this->a . $this->b;
-
- for (;;) {
- $this->a = $this->get();
-
- if ($this->a === '[') {
- /*
- inside a regex [...] set, which MAY contain a '/' itself. Example: mootools Form.Validator near line 460:
- return Form.Validator.getValidator('IsEmpty').test(element) || (/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]\.?){0,63}[a-z0-9!#$%&'*+/=?^_`{|}~-]@(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\])$/i).test(element.get('value'));
- */
- for (;;) {
- $this->output .= $this->a;
- $this->a = $this->get();
-
- if ($this->a === ']') {
- break;
- } elseif ($this->a === '\\') {
- $this->output .= $this->a;
- $this->a = $this->get();
- } elseif (ord($this->a) <= self::ORD_LF) {
- throw new JSMinException('Unterminated regular expression set in regex literal.');
- }
- }
- } elseif ($this->a === '/') {
- break;
- } elseif ($this->a === '\\') {
- $this->output .= $this->a;
- $this->a = $this->get();
- } elseif (ord($this->a) <= self::ORD_LF) {
- throw new JSMinException('Unterminated regular expression literal.');
- }
-
- $this->output .= $this->a;
- }
-
- $this->b = $this->next();
- }
- }
- }
-
- /**
- * Get next char. Convert ctrl char to space.
- *
- * @return string|null
- */
- protected function get() {
- $c = $this->lookAhead;
- $this->lookAhead = null;
-
- if ($c === null) {
- if ($this->inputIndex < $this->inputLength) {
- $c = substr($this->input, $this->inputIndex, 1);
- $this->inputIndex += 1;
- } else {
- $c = null;
- }
- }
-
- if ($c === "\r") {
- return "\n";
- }
-
- if ($c === null || $c === "\n" || ord($c) >= self::ORD_SPACE) {
- return $c;
- }
-
- return ' ';
- }
-
- /**
- * Is $c a letter, digit, underscore, dollar sign, or non-ASCII character.
- *
- * @return bool
- */
- protected function isAlphaNum($c) {
- return ord($c) > 126 || $c === '\\' || preg_match('/^[\w\$]$/', $c) === 1;
- }
-
- /**
- * Perform minification, return result
- *
- * @uses action()
- * @uses isAlphaNum()
- * @return string
- */
- protected function min() {
- $this->a = "\n";
- $this->action(self::ACTION_DELETE_A_B);
-
- while ($this->a !== null) {
- switch ($this->a) {
- case ' ':
- if ($this->isAlphaNum($this->b)) {
- $this->action(self::ACTION_KEEP_A);
- } else {
- $this->action(self::ACTION_DELETE_A);
- }
- break;
-
- case "\n":
- switch ($this->b) {
- case '{':
- case '[':
- case '(':
- case '+':
- case '-':
- $this->action(self::ACTION_KEEP_A);
- break;
-
- case ' ':
- $this->action(self::ACTION_DELETE_A_B);
- break;
-
- default:
- if ($this->isAlphaNum($this->b)) {
- $this->action(self::ACTION_KEEP_A);
- }
- else {
- $this->action(self::ACTION_DELETE_A);
- }
- }
- break;
-
- default:
- switch ($this->b) {
- case ' ':
- if ($this->isAlphaNum($this->a)) {
- $this->action(self::ACTION_KEEP_A);
- break;
- }
-
- $this->action(self::ACTION_DELETE_A_B);
- break;
-
- case "\n":
- switch ($this->a) {
- case '}':
- case ']':
- case ')':
- case '+':
- case '-':
- case '"':
- case "'":
- $this->action(self::ACTION_KEEP_A);
- break;
-
- default:
- if ($this->isAlphaNum($this->a)) {
- $this->action(self::ACTION_KEEP_A);
- }
- else {
- $this->action(self::ACTION_DELETE_A_B);
- }
- }
- break;
-
- default:
- $this->action(self::ACTION_KEEP_A);
- break;
- }
- }
- }
-
- return $this->output;
- }
-
- /**
- * Get the next character, skipping over comments. peek() is used to see
- * if a '/' is followed by a '/' or '*'.
- *
- * @uses get()
- * @uses peek()
- * @throws JSMinException On unterminated comment.
- * @return string
- */
- protected function next() {
- $c = $this->get();
-
- if ($c === '/') {
- switch($this->peek()) {
- case '/':
- for (;;) {
- $c = $this->get();
-
- if (ord($c) <= self::ORD_LF) {
- return $c;
- }
- }
-
- case '*':
- $this->get();
-
- for (;;) {
- switch($this->get()) {
- case '*':
- if ($this->peek() === '/') {
- $this->get();
- return ' ';
- }
- break;
-
- case null:
- throw new JSMinException('Unterminated comment.');
- }
- }
-
- default:
- return $c;
- }
- }
-
- return $c;
- }
-
- /**
- * Get next char. If is ctrl character, translate to a space or newline.
- *
- * @uses get()
- * @return string|null
- */
- protected function peek() {
- $this->lookAhead = $this->get();
- return $this->lookAhead;
- }
-}
-
-// -- Exceptions ---------------------------------------------------------------
-class JSMinException extends Exception {}
-?> \ No newline at end of file
diff --git a/lib/phpqrcode/bindings/tcpdf/qrcode.php b/lib/phpqrcode/bindings/tcpdf/qrcode.php
index 7995460b5..9001e3a2e 100644
--- a/lib/phpqrcode/bindings/tcpdf/qrcode.php
+++ b/lib/phpqrcode/bindings/tcpdf/qrcode.php
@@ -1101,7 +1101,7 @@ if (!class_exists('QRcode', false)) {
protected function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly=false) {
$b = 0;
$bitMask = array();
- $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s);
if ($maskGenOnly) {
return;
}
@@ -1399,7 +1399,7 @@ if (!class_exists('QRcode', false)) {
$p += 2;
}
$this->items = $this->appendNewInputItem($this->items, QR_MODE_KJ, $p, str_split($this->dataStr));
- return $run;
+ return $p;
}
/**
@@ -1470,7 +1470,7 @@ if (!class_exists('QRcode', false)) {
break;
}
case QR_MODE_KJ: {
- if ($hint == QR_MODE_KJ) {
+ if ($this->hint == QR_MODE_KJ) {
$length = $this->eatKanji();
} else {
$length = $this->eat8();
@@ -1499,7 +1499,7 @@ if (!class_exists('QRcode', false)) {
$stringLen = strlen($this->dataStr);
$p = 0;
while ($p < $stringLen) {
- $mode = $this->identifyMode(substr($this->dataStr, $p), $this->hint);
+ $mode = $this->identifyMode(substr($this->dataStr, $p));
if ($mode == QR_MODE_KJ) {
$p += 2;
} else {
diff --git a/lib/phpqrcode/phpqrcode.php b/lib/phpqrcode/phpqrcode.php
index 80adb9df2..02b877639 100644
--- a/lib/phpqrcode/phpqrcode.php
+++ b/lib/phpqrcode/phpqrcode.php
@@ -2195,7 +2195,7 @@
case QR_MODE_NUM: $length = $this->eatNum(); break;
case QR_MODE_AN: $length = $this->eatAn(); break;
case QR_MODE_KANJI:
- if ($hint == QR_MODE_KANJI)
+ if ($this->modeHint == QR_MODE_KANJI)
$length = $this->eatKanji();
else $length = $this->eat8();
break;
@@ -2217,7 +2217,7 @@
$p = 0;
while ($p<$stringLen) {
- $mode = self::identifyMode(substr($this->dataStr, $p), $this->modeHint);
+ $mode = self::identifyMode(substr($this->dataStr, $p));
if($mode == QR_MODE_KANJI) {
$p += 2;
} else {
@@ -2621,13 +2621,13 @@
if (file_exists($fileName)) {
$bitMask = self::unserial(file_get_contents($fileName));
} else {
- $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s);
if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo))
mkdir(QR_CACHE_DIR.'mask_'.$maskNo);
file_put_contents($fileName, self::serial($bitMask));
}
} else {
- $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s);
}
if ($maskGenOnly)
@@ -2937,7 +2937,7 @@
//----------------------------------------------------------------------
public function getCode()
{
- $ret;
+ $ret = 0;
if($this->count < $this->dataLength) {
$row = $this->count % $this->blocks;
@@ -3059,7 +3059,7 @@
$input = new QRinput($version, $level);
if($input == NULL) return NULL;
- $ret = $input->append($input, QR_MODE_8, strlen($string), str_split($string));
+ $ret = $input->append(QR_MODE_8, strlen($string), str_split($string));
if($ret < 0) {
unset($input);
return NULL;
diff --git a/lib/phpqrcode/qrencode.php b/lib/phpqrcode/qrencode.php
index 4b77a5bdd..5bdeaec20 100644
--- a/lib/phpqrcode/qrencode.php
+++ b/lib/phpqrcode/qrencode.php
@@ -129,7 +129,7 @@
//----------------------------------------------------------------------
public function getCode()
{
- $ret;
+ $ret = 0;
if($this->count < $this->dataLength) {
$row = $this->count % $this->blocks;
diff --git a/lib/phpqrcode/qrmask.php b/lib/phpqrcode/qrmask.php
index b14d7ae16..43d653ce3 100644
--- a/lib/phpqrcode/qrmask.php
+++ b/lib/phpqrcode/qrmask.php
@@ -149,13 +149,13 @@
if (file_exists($fileName)) {
$bitMask = self::unserial(file_get_contents($fileName));
} else {
- $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s);
if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo))
mkdir(QR_CACHE_DIR.'mask_'.$maskNo);
file_put_contents($fileName, self::serial($bitMask));
}
} else {
- $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s);
}
if ($maskGenOnly)
diff --git a/lib/phpqrcode/qrsplit.php b/lib/phpqrcode/qrsplit.php
index d75b82737..1f9f65c3b 100644
--- a/lib/phpqrcode/qrsplit.php
+++ b/lib/phpqrcode/qrsplit.php
@@ -186,7 +186,7 @@
if($ret < 0)
return -1;
- return $run;
+ return $ret;
}
//----------------------------------------------------------------------
@@ -258,7 +258,7 @@
case QR_MODE_NUM: $length = $this->eatNum(); break;
case QR_MODE_AN: $length = $this->eatAn(); break;
case QR_MODE_KANJI:
- if ($hint == QR_MODE_KANJI)
+ if ($this->modeHint == QR_MODE_KANJI)
$length = $this->eatKanji();
else $length = $this->eat8();
break;
@@ -280,7 +280,7 @@
$p = 0;
while ($p<$stringLen) {
- $mode = self::identifyMode(substr($this->dataStr, $p), $this->modeHint);
+ $mode = self::identifyMode(substr($this->dataStr, $p));
if($mode == QR_MODE_KANJI) {
$p += 2;
} else {
@@ -308,4 +308,4 @@
return $split->splitString();
}
- } \ No newline at end of file
+ }
diff --git a/lib/position.js b/lib/position.js
deleted file mode 100644
index 43ea85f76..000000000
--- a/lib/position.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/* http://textsnippets.com/posts/show/835 */
-
-Position.GetWindowSize = function(w) {
- w = w ? w : window;
- var width = w.innerWidth || (w.document.documentElement.clientWidth || w.document.body.clientWidth);
- var height = w.innerHeight || (w.document.documentElement.clientHeight || w.document.body.clientHeight);
- return [width, height];
-};
-
-/* http://textsnippets.com/posts/show/836 */
-
-Position.Center = function(element, parent) {
- var w, h, pw, ph;
- var d = Element.getDimensions(element);
- w = d.width;
- h = d.height;
- Position.prepare();
- if (!parent) {
- var ws = Position.GetWindowSize();
- pw = ws[0];
- ph = ws[1];
- } else {
- pw = parent.offsetWidth;
- ph = parent.offsetHeight;
- }
- element.style.top = (ph/2) - (h/2) - Position.deltaY + "px";
- element.style.left = (pw/2) - (w/2) - Position.deltaX + "px";
-};
-
-
-
diff --git a/lib/simplepie/simplepie.inc b/lib/simplepie/simplepie.inc
deleted file mode 100644
index 332c2e709..000000000
--- a/lib/simplepie/simplepie.inc
+++ /dev/null
@@ -1,17772 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Please note: This file is automatically generated by a build script. The
- * full original source is always available from http://simplepie.org/
- *
- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * * Neither the name of the SimplePie Team nor the names of its contributors may be used
- * to endorse or promote products derived from this software without specific prior
- * written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * SimplePie Name
- */
-define('SIMPLEPIE_NAME', 'SimplePie');
-
-/**
- * SimplePie Version
- */
-define('SIMPLEPIE_VERSION', '1.3.1');
-
-/**
- * SimplePie Build
- * @todo Hardcode for release (there's no need to have to call SimplePie_Misc::get_build() only every load of simplepie.inc)
- */
-define('SIMPLEPIE_BUILD', '20121030175911');
-
-/**
- * SimplePie Website URL
- */
-define('SIMPLEPIE_URL', 'http://simplepie.org');
-
-/**
- * SimplePie Useragent
- * @see SimplePie::set_useragent()
- */
-define('SIMPLEPIE_USERAGENT', SIMPLEPIE_NAME . '/' . SIMPLEPIE_VERSION . ' (Feed Parser; ' . SIMPLEPIE_URL . '; Allow like Gecko) Build/' . SIMPLEPIE_BUILD);
-
-/**
- * SimplePie Linkback
- */
-define('SIMPLEPIE_LINKBACK', '<a href="' . SIMPLEPIE_URL . '" title="' . SIMPLEPIE_NAME . ' ' . SIMPLEPIE_VERSION . '">' . SIMPLEPIE_NAME . '</a>');
-
-/**
- * No Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_NONE', 0);
-
-/**
- * Feed Link Element Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_AUTODISCOVERY', 1);
-
-/**
- * Local Feed Extension Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_LOCAL_EXTENSION', 2);
-
-/**
- * Local Feed Body Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_LOCAL_BODY', 4);
-
-/**
- * Remote Feed Extension Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_REMOTE_EXTENSION', 8);
-
-/**
- * Remote Feed Body Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_REMOTE_BODY', 16);
-
-/**
- * All Feed Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_ALL', 31);
-
-/**
- * No known feed type
- */
-define('SIMPLEPIE_TYPE_NONE', 0);
-
-/**
- * RSS 0.90
- */
-define('SIMPLEPIE_TYPE_RSS_090', 1);
-
-/**
- * RSS 0.91 (Netscape)
- */
-define('SIMPLEPIE_TYPE_RSS_091_NETSCAPE', 2);
-
-/**
- * RSS 0.91 (Userland)
- */
-define('SIMPLEPIE_TYPE_RSS_091_USERLAND', 4);
-
-/**
- * RSS 0.91 (both Netscape and Userland)
- */
-define('SIMPLEPIE_TYPE_RSS_091', 6);
-
-/**
- * RSS 0.92
- */
-define('SIMPLEPIE_TYPE_RSS_092', 8);
-
-/**
- * RSS 0.93
- */
-define('SIMPLEPIE_TYPE_RSS_093', 16);
-
-/**
- * RSS 0.94
- */
-define('SIMPLEPIE_TYPE_RSS_094', 32);
-
-/**
- * RSS 1.0
- */
-define('SIMPLEPIE_TYPE_RSS_10', 64);
-
-/**
- * RSS 2.0
- */
-define('SIMPLEPIE_TYPE_RSS_20', 128);
-
-/**
- * RDF-based RSS
- */
-define('SIMPLEPIE_TYPE_RSS_RDF', 65);
-
-/**
- * Non-RDF-based RSS (truly intended as syndication format)
- */
-define('SIMPLEPIE_TYPE_RSS_SYNDICATION', 190);
-
-/**
- * All RSS
- */
-define('SIMPLEPIE_TYPE_RSS_ALL', 255);
-
-/**
- * Atom 0.3
- */
-define('SIMPLEPIE_TYPE_ATOM_03', 256);
-
-/**
- * Atom 1.0
- */
-define('SIMPLEPIE_TYPE_ATOM_10', 512);
-
-/**
- * All Atom
- */
-define('SIMPLEPIE_TYPE_ATOM_ALL', 768);
-
-/**
- * All feed types
- */
-define('SIMPLEPIE_TYPE_ALL', 1023);
-
-/**
- * No construct
- */
-define('SIMPLEPIE_CONSTRUCT_NONE', 0);
-
-/**
- * Text construct
- */
-define('SIMPLEPIE_CONSTRUCT_TEXT', 1);
-
-/**
- * HTML construct
- */
-define('SIMPLEPIE_CONSTRUCT_HTML', 2);
-
-/**
- * XHTML construct
- */
-define('SIMPLEPIE_CONSTRUCT_XHTML', 4);
-
-/**
- * base64-encoded construct
- */
-define('SIMPLEPIE_CONSTRUCT_BASE64', 8);
-
-/**
- * IRI construct
- */
-define('SIMPLEPIE_CONSTRUCT_IRI', 16);
-
-/**
- * A construct that might be HTML
- */
-define('SIMPLEPIE_CONSTRUCT_MAYBE_HTML', 32);
-
-/**
- * All constructs
- */
-define('SIMPLEPIE_CONSTRUCT_ALL', 63);
-
-/**
- * Don't change case
- */
-define('SIMPLEPIE_SAME_CASE', 1);
-
-/**
- * Change to lowercase
- */
-define('SIMPLEPIE_LOWERCASE', 2);
-
-/**
- * Change to uppercase
- */
-define('SIMPLEPIE_UPPERCASE', 4);
-
-/**
- * PCRE for HTML attributes
- */
-define('SIMPLEPIE_PCRE_HTML_ATTRIBUTE', '((?:[\x09\x0A\x0B\x0C\x0D\x20]+[^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?)*)[\x09\x0A\x0B\x0C\x0D\x20]*');
-
-/**
- * PCRE for XML attributes
- */
-define('SIMPLEPIE_PCRE_XML_ATTRIBUTE', '((?:\s+(?:(?:[^\s:]+:)?[^\s:]+)\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'))*)\s*');
-
-/**
- * XML Namespace
- */
-define('SIMPLEPIE_NAMESPACE_XML', 'http://www.w3.org/XML/1998/namespace');
-
-/**
- * Atom 1.0 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_ATOM_10', 'http://www.w3.org/2005/Atom');
-
-/**
- * Atom 0.3 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_ATOM_03', 'http://purl.org/atom/ns#');
-
-/**
- * RDF Namespace
- */
-define('SIMPLEPIE_NAMESPACE_RDF', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
-
-/**
- * RSS 0.90 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_RSS_090', 'http://my.netscape.com/rdf/simple/0.9/');
-
-/**
- * RSS 1.0 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_RSS_10', 'http://purl.org/rss/1.0/');
-
-/**
- * RSS 1.0 Content Module Namespace
- */
-define('SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT', 'http://purl.org/rss/1.0/modules/content/');
-
-/**
- * RSS 2.0 Namespace
- * (Stupid, I know, but I'm certain it will confuse people less with support.)
- */
-define('SIMPLEPIE_NAMESPACE_RSS_20', '');
-
-/**
- * DC 1.0 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_DC_10', 'http://purl.org/dc/elements/1.0/');
-
-/**
- * DC 1.1 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_DC_11', 'http://purl.org/dc/elements/1.1/');
-
-/**
- * W3C Basic Geo (WGS84 lat/long) Vocabulary Namespace
- */
-define('SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO', 'http://www.w3.org/2003/01/geo/wgs84_pos#');
-
-/**
- * GeoRSS Namespace
- */
-define('SIMPLEPIE_NAMESPACE_GEORSS', 'http://www.georss.org/georss');
-
-/**
- * Media RSS Namespace
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS', 'http://search.yahoo.com/mrss/');
-
-/**
- * Wrong Media RSS Namespace. Caused by a long-standing typo in the spec.
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG', 'http://search.yahoo.com/mrss');
-
-/**
- * Wrong Media RSS Namespace #2. New namespace introduced in Media RSS 1.5.
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG2', 'http://video.search.yahoo.com/mrss');
-
-/**
- * Wrong Media RSS Namespace #3. A possible typo of the Media RSS 1.5 namespace.
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG3', 'http://video.search.yahoo.com/mrss/');
-
-/**
- * Wrong Media RSS Namespace #4. New spec location after the RSS Advisory Board takes it over, but not a valid namespace.
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG4', 'http://www.rssboard.org/media-rss');
-
-/**
- * Wrong Media RSS Namespace #5. A possible typo of the RSS Advisory Board URL.
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG5', 'http://www.rssboard.org/media-rss/');
-
-/**
- * iTunes RSS Namespace
- */
-define('SIMPLEPIE_NAMESPACE_ITUNES', 'http://www.itunes.com/dtds/podcast-1.0.dtd');
-
-/**
- * XHTML Namespace
- */
-define('SIMPLEPIE_NAMESPACE_XHTML', 'http://www.w3.org/1999/xhtml');
-
-/**
- * IANA Link Relations Registry
- */
-define('SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY', 'http://www.iana.org/assignments/relation/');
-
-/**
- * No file source
- */
-define('SIMPLEPIE_FILE_SOURCE_NONE', 0);
-
-/**
- * Remote file source
- */
-define('SIMPLEPIE_FILE_SOURCE_REMOTE', 1);
-
-/**
- * Local file source
- */
-define('SIMPLEPIE_FILE_SOURCE_LOCAL', 2);
-
-/**
- * fsockopen() file source
- */
-define('SIMPLEPIE_FILE_SOURCE_FSOCKOPEN', 4);
-
-/**
- * cURL file source
- */
-define('SIMPLEPIE_FILE_SOURCE_CURL', 8);
-
-/**
- * file_get_contents() file source
- */
-define('SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS', 16);
-
-/**
- * SimplePie
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie
-{
- /**
- * @var array Raw data
- * @access private
- */
- public $data = array();
-
- /**
- * @var mixed Error string
- * @access private
- */
- public $error;
-
- /**
- * @var object Instance of SimplePie_Sanitize (or other class)
- * @see SimplePie::set_sanitize_class()
- * @access private
- */
- public $sanitize;
-
- /**
- * @var string SimplePie Useragent
- * @see SimplePie::set_useragent()
- * @access private
- */
- public $useragent = SIMPLEPIE_USERAGENT;
-
- /**
- * @var string Feed URL
- * @see SimplePie::set_feed_url()
- * @access private
- */
- public $feed_url;
-
- /**
- * @var object Instance of SimplePie_File to use as a feed
- * @see SimplePie::set_file()
- * @access private
- */
- public $file;
-
- /**
- * @var string Raw feed data
- * @see SimplePie::set_raw_data()
- * @access private
- */
- public $raw_data;
-
- /**
- * @var int Timeout for fetching remote files
- * @see SimplePie::set_timeout()
- * @access private
- */
- public $timeout = 10;
-
- /**
- * @var bool Forces fsockopen() to be used for remote files instead
- * of cURL, even if a new enough version is installed
- * @see SimplePie::force_fsockopen()
- * @access private
- */
- public $force_fsockopen = false;
-
- /**
- * @var bool Force the given data/URL to be treated as a feed no matter what
- * it appears like
- * @see SimplePie::force_feed()
- * @access private
- */
- public $force_feed = false;
-
- /**
- * @var bool Enable/Disable Caching
- * @see SimplePie::enable_cache()
- * @access private
- */
- public $cache = true;
-
- /**
- * @var int Cache duration (in seconds)
- * @see SimplePie::set_cache_duration()
- * @access private
- */
- public $cache_duration = 3600;
-
- /**
- * @var int Auto-discovery cache duration (in seconds)
- * @see SimplePie::set_autodiscovery_cache_duration()
- * @access private
- */
- public $autodiscovery_cache_duration = 604800; // 7 Days.
-
- /**
- * @var string Cache location (relative to executing script)
- * @see SimplePie::set_cache_location()
- * @access private
- */
- public $cache_location = './cache';
-
- /**
- * @var string Function that creates the cache filename
- * @see SimplePie::set_cache_name_function()
- * @access private
- */
- public $cache_name_function = 'md5';
-
- /**
- * @var bool Reorder feed by date descending
- * @see SimplePie::enable_order_by_date()
- * @access private
- */
- public $order_by_date = true;
-
- /**
- * @var mixed Force input encoding to be set to the follow value
- * (false, or anything type-cast to false, disables this feature)
- * @see SimplePie::set_input_encoding()
- * @access private
- */
- public $input_encoding = false;
-
- /**
- * @var int Feed Autodiscovery Level
- * @see SimplePie::set_autodiscovery_level()
- * @access private
- */
- public $autodiscovery = SIMPLEPIE_LOCATOR_ALL;
-
- /**
- * Class registry object
- *
- * @var SimplePie_Registry
- */
- public $registry;
-
- /**
- * @var int Maximum number of feeds to check with autodiscovery
- * @see SimplePie::set_max_checked_feeds()
- * @access private
- */
- public $max_checked_feeds = 10;
-
- /**
- * @var array All the feeds found during the autodiscovery process
- * @see SimplePie::get_all_discovered_feeds()
- * @access private
- */
- public $all_discovered_feeds = array();
-
- /**
- * @var string Web-accessible path to the handler_image.php file.
- * @see SimplePie::set_image_handler()
- * @access private
- */
- public $image_handler = '';
-
- /**
- * @var array Stores the URLs when multiple feeds are being initialized.
- * @see SimplePie::set_feed_url()
- * @access private
- */
- public $multifeed_url = array();
-
- /**
- * @var array Stores SimplePie objects when multiple feeds initialized.
- * @access private
- */
- public $multifeed_objects = array();
-
- /**
- * @var array Stores the get_object_vars() array for use with multifeeds.
- * @see SimplePie::set_feed_url()
- * @access private
- */
- public $config_settings = null;
-
- /**
- * @var integer Stores the number of items to return per-feed with multifeeds.
- * @see SimplePie::set_item_limit()
- * @access private
- */
- public $item_limit = 0;
-
- /**
- * @var array Stores the default attributes to be stripped by strip_attributes().
- * @see SimplePie::strip_attributes()
- * @access private
- */
- public $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
-
- /**
- * @var array Stores the default tags to be stripped by strip_htmltags().
- * @see SimplePie::strip_htmltags()
- * @access private
- */
- public $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
-
- /**
- * The SimplePie class contains feed level data and options
- *
- * To use SimplePie, create the SimplePie object with no parameters. You can
- * then set configuration options using the provided methods. After setting
- * them, you must initialise the feed using $feed->init(). At that point the
- * object's methods and properties will be available to you.
- *
- * Previously, it was possible to pass in the feed URL along with cache
- * options directly into the constructor. This has been removed as of 1.3 as
- * it caused a lot of confusion.
- *
- * @since 1.0 Preview Release
- */
- public function __construct()
- {
- if (version_compare(PHP_VERSION, '5.2', '<'))
- {
- trigger_error('PHP 4.x, 5.0 and 5.1 are no longer supported. Please upgrade to PHP 5.2 or newer.');
- die();
- }
-
- // Other objects, instances created here so we can set options on them
- $this->sanitize = new SimplePie_Sanitize();
- $this->registry = new SimplePie_Registry();
-
- if (func_num_args() > 0)
- {
- $level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
- trigger_error('Passing parameters to the constructor is no longer supported. Please use set_feed_url(), set_cache_location(), and set_cache_location() directly.', $level);
-
- $args = func_get_args();
- switch (count($args)) {
- case 3:
- $this->set_cache_duration($args[2]);
- case 2:
- $this->set_cache_location($args[1]);
- case 1:
- $this->set_feed_url($args[0]);
- $this->init();
- }
- }
- }
-
- /**
- * Used for converting object to a string
- */
- public function __toString()
- {
- return md5(serialize($this->data));
- }
-
- /**
- * Remove items that link back to this before destroying this object
- */
- public function __destruct()
- {
- if ((version_compare(PHP_VERSION, '5.3', '<') || !gc_enabled()) && !ini_get('zend.ze1_compatibility_mode'))
- {
- if (!empty($this->data['items']))
- {
- foreach ($this->data['items'] as $item)
- {
- $item->__destruct();
- }
- unset($item, $this->data['items']);
- }
- if (!empty($this->data['ordered_items']))
- {
- foreach ($this->data['ordered_items'] as $item)
- {
- $item->__destruct();
- }
- unset($item, $this->data['ordered_items']);
- }
- }
- }
-
- /**
- * Force the given data/URL to be treated as a feed
- *
- * This tells SimplePie to ignore the content-type provided by the server.
- * Be careful when using this option, as it will also disable autodiscovery.
- *
- * @since 1.1
- * @param bool $enable Force the given data/URL to be treated as a feed
- */
- public function force_feed($enable = false)
- {
- $this->force_feed = (bool) $enable;
- }
-
- /**
- * Set the URL of the feed you want to parse
- *
- * This allows you to enter the URL of the feed you want to parse, or the
- * website you want to try to use auto-discovery on. This takes priority
- * over any set raw data.
- *
- * You can set multiple feeds to mash together by passing an array instead
- * of a string for the $url. Remember that with each additional feed comes
- * additional processing and resources.
- *
- * @since 1.0 Preview Release
- * @see set_raw_data()
- * @param string|array $url This is the URL (or array of URLs) that you want to parse.
- */
- public function set_feed_url($url)
- {
- $this->multifeed_url = array();
- if (is_array($url))
- {
- foreach ($url as $value)
- {
- $this->multifeed_url[] = $this->registry->call('Misc', 'fix_protocol', array($value, 1));
- }
- }
- else
- {
- $this->feed_url = $this->registry->call('Misc', 'fix_protocol', array($url, 1));
- }
- }
-
- /**
- * Set an instance of {@see SimplePie_File} to use as a feed
- *
- * @param SimplePie_File &$file
- * @return bool True on success, false on failure
- */
- public function set_file(&$file)
- {
- if ($file instanceof SimplePie_File)
- {
- $this->feed_url = $file->url;
- $this->file =& $file;
- return true;
- }
- return false;
- }
-
- /**
- * Set the raw XML data to parse
- *
- * Allows you to use a string of RSS/Atom data instead of a remote feed.
- *
- * If you have a feed available as a string in PHP, you can tell SimplePie
- * to parse that data string instead of a remote feed. Any set feed URL
- * takes precedence.
- *
- * @since 1.0 Beta 3
- * @param string $data RSS or Atom data as a string.
- * @see set_feed_url()
- */
- public function set_raw_data($data)
- {
- $this->raw_data = $data;
- }
-
- /**
- * Set the the default timeout for fetching remote feeds
- *
- * This allows you to change the maximum time the feed's server to respond
- * and send the feed back.
- *
- * @since 1.0 Beta 3
- * @param int $timeout The maximum number of seconds to spend waiting to retrieve a feed.
- */
- public function set_timeout($timeout = 10)
- {
- $this->timeout = (int) $timeout;
- }
-
- /**
- * Force SimplePie to use fsockopen() instead of cURL
- *
- * @since 1.0 Beta 3
- * @param bool $enable Force fsockopen() to be used
- */
- public function force_fsockopen($enable = false)
- {
- $this->force_fsockopen = (bool) $enable;
- }
-
- /**
- * Enable/disable caching in SimplePie.
- *
- * This option allows you to disable caching all-together in SimplePie.
- * However, disabling the cache can lead to longer load times.
- *
- * @since 1.0 Preview Release
- * @param bool $enable Enable caching
- */
- public function enable_cache($enable = true)
- {
- $this->cache = (bool) $enable;
- }
-
- /**
- * Set the length of time (in seconds) that the contents of a feed will be
- * cached
- *
- * @param int $seconds The feed content cache duration
- */
- public function set_cache_duration($seconds = 3600)
- {
- $this->cache_duration = (int) $seconds;
- }
-
- /**
- * Set the length of time (in seconds) that the autodiscovered feed URL will
- * be cached
- *
- * @param int $seconds The autodiscovered feed URL cache duration.
- */
- public function set_autodiscovery_cache_duration($seconds = 604800)
- {
- $this->autodiscovery_cache_duration = (int) $seconds;
- }
-
- /**
- * Set the file system location where the cached files should be stored
- *
- * @param string $location The file system location.
- */
- public function set_cache_location($location = './cache')
- {
- $this->cache_location = (string) $location;
- }
-
- /**
- * Set whether feed items should be sorted into reverse chronological order
- *
- * @param bool $enable Sort as reverse chronological order.
- */
- public function enable_order_by_date($enable = true)
- {
- $this->order_by_date = (bool) $enable;
- }
-
- /**
- * Set the character encoding used to parse the feed
- *
- * This overrides the encoding reported by the feed, however it will fall
- * back to the normal encoding detection if the override fails
- *
- * @param string $encoding Character encoding
- */
- public function set_input_encoding($encoding = false)
- {
- if ($encoding)
- {
- $this->input_encoding = (string) $encoding;
- }
- else
- {
- $this->input_encoding = false;
- }
- }
-
- /**
- * Set how much feed autodiscovery to do
- *
- * @see SIMPLEPIE_LOCATOR_NONE
- * @see SIMPLEPIE_LOCATOR_AUTODISCOVERY
- * @see SIMPLEPIE_LOCATOR_LOCAL_EXTENSION
- * @see SIMPLEPIE_LOCATOR_LOCAL_BODY
- * @see SIMPLEPIE_LOCATOR_REMOTE_EXTENSION
- * @see SIMPLEPIE_LOCATOR_REMOTE_BODY
- * @see SIMPLEPIE_LOCATOR_ALL
- * @param int $level Feed Autodiscovery Level (level can be a combination of the above constants, see bitwise OR operator)
- */
- public function set_autodiscovery_level($level = SIMPLEPIE_LOCATOR_ALL)
- {
- $this->autodiscovery = (int) $level;
- }
-
- /**
- * Get the class registry
- *
- * Use this to override SimplePie's default classes
- * @see SimplePie_Registry
- * @return SimplePie_Registry
- */
- public function &get_registry()
- {
- return $this->registry;
- }
-
- /**#@+
- * Useful when you are overloading or extending SimplePie's default classes.
- *
- * @deprecated Use {@see get_registry()} instead
- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
- * @param string $class Name of custom class
- * @return boolean True on success, false otherwise
- */
- /**
- * Set which class SimplePie uses for caching
- */
- public function set_cache_class($class = 'SimplePie_Cache')
- {
- return $this->registry->register('Cache', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for auto-discovery
- */
- public function set_locator_class($class = 'SimplePie_Locator')
- {
- return $this->registry->register('Locator', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for XML parsing
- */
- public function set_parser_class($class = 'SimplePie_Parser')
- {
- return $this->registry->register('Parser', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for remote file fetching
- */
- public function set_file_class($class = 'SimplePie_File')
- {
- return $this->registry->register('File', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for data sanitization
- */
- public function set_sanitize_class($class = 'SimplePie_Sanitize')
- {
- return $this->registry->register('Sanitize', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for handling feed items
- */
- public function set_item_class($class = 'SimplePie_Item')
- {
- return $this->registry->register('Item', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for handling author data
- */
- public function set_author_class($class = 'SimplePie_Author')
- {
- return $this->registry->register('Author', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for handling category data
- */
- public function set_category_class($class = 'SimplePie_Category')
- {
- return $this->registry->register('Category', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for feed enclosures
- */
- public function set_enclosure_class($class = 'SimplePie_Enclosure')
- {
- return $this->registry->register('Enclosure', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for `<media:text>` captions
- */
- public function set_caption_class($class = 'SimplePie_Caption')
- {
- return $this->registry->register('Caption', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for `<media:copyright>`
- */
- public function set_copyright_class($class = 'SimplePie_Copyright')
- {
- return $this->registry->register('Copyright', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for `<media:credit>`
- */
- public function set_credit_class($class = 'SimplePie_Credit')
- {
- return $this->registry->register('Credit', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for `<media:rating>`
- */
- public function set_rating_class($class = 'SimplePie_Rating')
- {
- return $this->registry->register('Rating', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for `<media:restriction>`
- */
- public function set_restriction_class($class = 'SimplePie_Restriction')
- {
- return $this->registry->register('Restriction', $class, true);
- }
-
- /**
- * Set which class SimplePie uses for content-type sniffing
- */
- public function set_content_type_sniffer_class($class = 'SimplePie_Content_Type_Sniffer')
- {
- return $this->registry->register('Content_Type_Sniffer', $class, true);
- }
-
- /**
- * Set which class SimplePie uses item sources
- */
- public function set_source_class($class = 'SimplePie_Source')
- {
- return $this->registry->register('Source', $class, true);
- }
- /**#@-*/
-
- /**
- * Set the user agent string
- *
- * @param string $ua New user agent string.
- */
- public function set_useragent($ua = SIMPLEPIE_USERAGENT)
- {
- $this->useragent = (string) $ua;
- }
-
- /**
- * Set callback function to create cache filename with
- *
- * @param mixed $function Callback function
- */
- public function set_cache_name_function($function = 'md5')
- {
- if (is_callable($function))
- {
- $this->cache_name_function = $function;
- }
- }
-
- /**
- * Set options to make SP as fast as possible
- *
- * Forgoes a substantial amount of data sanitization in favor of speed. This
- * turns SimplePie into a dumb parser of feeds.
- *
- * @param bool $set Whether to set them or not
- */
- public function set_stupidly_fast($set = false)
- {
- if ($set)
- {
- $this->enable_order_by_date(false);
- $this->remove_div(false);
- $this->strip_comments(false);
- $this->strip_htmltags(false);
- $this->strip_attributes(false);
- $this->set_image_handler(false);
- }
- }
-
- /**
- * Set maximum number of feeds to check with autodiscovery
- *
- * @param int $max Maximum number of feeds to check
- */
- public function set_max_checked_feeds($max = 10)
- {
- $this->max_checked_feeds = (int) $max;
- }
-
- public function remove_div($enable = true)
- {
- $this->sanitize->remove_div($enable);
- }
-
- public function strip_htmltags($tags = '', $encode = null)
- {
- if ($tags === '')
- {
- $tags = $this->strip_htmltags;
- }
- $this->sanitize->strip_htmltags($tags);
- if ($encode !== null)
- {
- $this->sanitize->encode_instead_of_strip($tags);
- }
- }
-
- public function encode_instead_of_strip($enable = true)
- {
- $this->sanitize->encode_instead_of_strip($enable);
- }
-
- public function strip_attributes($attribs = '')
- {
- if ($attribs === '')
- {
- $attribs = $this->strip_attributes;
- }
- $this->sanitize->strip_attributes($attribs);
- }
-
- /**
- * Set the output encoding
- *
- * Allows you to override SimplePie's output to match that of your webpage.
- * This is useful for times when your webpages are not being served as
- * UTF-8. This setting will be obeyed by {@see handle_content_type()}, and
- * is similar to {@see set_input_encoding()}.
- *
- * It should be noted, however, that not all character encodings can support
- * all characters. If your page is being served as ISO-8859-1 and you try
- * to display a Japanese feed, you'll likely see garbled characters.
- * Because of this, it is highly recommended to ensure that your webpages
- * are served as UTF-8.
- *
- * The number of supported character encodings depends on whether your web
- * host supports {@link http://php.net/mbstring mbstring},
- * {@link http://php.net/iconv iconv}, or both. See
- * {@link http://simplepie.org/wiki/faq/Supported_Character_Encodings} for
- * more information.
- *
- * @param string $encoding
- */
- public function set_output_encoding($encoding = 'UTF-8')
- {
- $this->sanitize->set_output_encoding($encoding);
- }
-
- public function strip_comments($strip = false)
- {
- $this->sanitize->strip_comments($strip);
- }
-
- /**
- * Set element/attribute key/value pairs of HTML attributes
- * containing URLs that need to be resolved relative to the feed
- *
- * Defaults to |a|@href, |area|@href, |blockquote|@cite, |del|@cite,
- * |form|@action, |img|@longdesc, |img|@src, |input|@src, |ins|@cite,
- * |q|@cite
- *
- * @since 1.0
- * @param array|null $element_attribute Element/attribute key/value pairs, null for default
- */
- public function set_url_replacements($element_attribute = null)
- {
- $this->sanitize->set_url_replacements($element_attribute);
- }
-
- /**
- * Set the handler to enable the display of cached images.
- *
- * @param str $page Web-accessible path to the handler_image.php file.
- * @param str $qs The query string that the value should be passed to.
- */
- public function set_image_handler($page = false, $qs = 'i')
- {
- if ($page !== false)
- {
- $this->sanitize->set_image_handler($page . '?' . $qs . '=');
- }
- else
- {
- $this->image_handler = '';
- }
- }
-
- /**
- * Set the limit for items returned per-feed with multifeeds
- *
- * @param integer $limit The maximum number of items to return.
- */
- public function set_item_limit($limit = 0)
- {
- $this->item_limit = (int) $limit;
- }
-
- /**
- * Initialize the feed object
- *
- * This is what makes everything happen. Period. This is where all of the
- * configuration options get processed, feeds are fetched, cached, and
- * parsed, and all of that other good stuff.
- *
- * @return boolean True if successful, false otherwise
- */
- public function init()
- {
- // Check absolute bare minimum requirements.
- if (!extension_loaded('xml') || !extension_loaded('pcre'))
- {
- return false;
- }
- // Then check the xml extension is sane (i.e., libxml 2.7.x issue on PHP < 5.2.9 and libxml 2.7.0 to 2.7.2 on any version) if we don't have xmlreader.
- elseif (!extension_loaded('xmlreader'))
- {
- static $xml_is_sane = null;
- if ($xml_is_sane === null)
- {
- $parser_check = xml_parser_create();
- xml_parse_into_struct($parser_check, '<foo>&amp;</foo>', $values);
- xml_parser_free($parser_check);
- $xml_is_sane = isset($values[0]['value']);
- }
- if (!$xml_is_sane)
- {
- return false;
- }
- }
-
- if (method_exists($this->sanitize, 'set_registry'))
- {
- $this->sanitize->set_registry($this->registry);
- }
-
- // Pass whatever was set with config options over to the sanitizer.
- // Pass the classes in for legacy support; new classes should use the registry instead
- $this->sanitize->pass_cache_data($this->cache, $this->cache_location, $this->cache_name_function, $this->registry->get_class('Cache'));
- $this->sanitize->pass_file_data($this->registry->get_class('File'), $this->timeout, $this->useragent, $this->force_fsockopen);
-
- if (!empty($this->multifeed_url))
- {
- $i = 0;
- $success = 0;
- $this->multifeed_objects = array();
- $this->error = array();
- foreach ($this->multifeed_url as $url)
- {
- $this->multifeed_objects[$i] = clone $this;
- $this->multifeed_objects[$i]->set_feed_url($url);
- $single_success = $this->multifeed_objects[$i]->init();
- $success |= $single_success;
- if (!$single_success)
- {
- $this->error[$i] = $this->multifeed_objects[$i]->error();
- }
- $i++;
- }
- return (bool) $success;
- }
- elseif ($this->feed_url === null && $this->raw_data === null)
- {
- return false;
- }
-
- $this->error = null;
- $this->data = array();
- $this->multifeed_objects = array();
- $cache = false;
-
- if ($this->feed_url !== null)
- {
- $parsed_feed_url = $this->registry->call('Misc', 'parse_url', array($this->feed_url));
-
- // Decide whether to enable caching
- if ($this->cache && $parsed_feed_url['scheme'] !== '')
- {
- $cache = $this->registry->call('Cache', 'get_handler', array($this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'));
- }
-
- // Fetch the data via SimplePie_File into $this->raw_data
- if (($fetched = $this->fetch_data($cache)) === true)
- {
- return true;
- }
- elseif ($fetched === false) {
- return false;
- }
-
- list($headers, $sniffed) = $fetched;
- }
-
- // Set up array of possible encodings
- $encodings = array();
-
- // First check to see if input has been overridden.
- if ($this->input_encoding !== false)
- {
- $encodings[] = $this->input_encoding;
- }
-
- $application_types = array('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity');
- $text_types = array('text/xml', 'text/xml-external-parsed-entity');
-
- // RFC 3023 (only applies to sniffed content)
- if (isset($sniffed))
- {
- if (in_array($sniffed, $application_types) || substr($sniffed, 0, 12) === 'application/' && substr($sniffed, -4) === '+xml')
- {
- if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset))
- {
- $encodings[] = strtoupper($charset[1]);
- }
- $encodings = array_merge($encodings, $this->registry->call('Misc', 'xml_encoding', array($this->raw_data, &$this->registry)));
- $encodings[] = 'UTF-8';
- }
- elseif (in_array($sniffed, $text_types) || substr($sniffed, 0, 5) === 'text/' && substr($sniffed, -4) === '+xml')
- {
- if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset))
- {
- $encodings[] = $charset[1];
- }
- $encodings[] = 'US-ASCII';
- }
- // Text MIME-type default
- elseif (substr($sniffed, 0, 5) === 'text/')
- {
- $encodings[] = 'US-ASCII';
- }
- }
-
- // Fallback to XML 1.0 Appendix F.1/UTF-8/ISO-8859-1
- $encodings = array_merge($encodings, $this->registry->call('Misc', 'xml_encoding', array($this->raw_data, &$this->registry)));
- $encodings[] = 'UTF-8';
- $encodings[] = 'ISO-8859-1';
-
- // There's no point in trying an encoding twice
- $encodings = array_unique($encodings);
-
- // Loop through each possible encoding, till we return something, or run out of possibilities
- foreach ($encodings as $encoding)
- {
- // Change the encoding to UTF-8 (as we always use UTF-8 internally)
- if ($utf8_data = $this->registry->call('Misc', 'change_encoding', array($this->raw_data, $encoding, 'UTF-8')))
- {
- // Create new parser
- $parser = $this->registry->create('Parser');
-
- // If it's parsed fine
- if ($parser->parse($utf8_data, 'UTF-8'))
- {
- $this->data = $parser->get_data();
- if (!($this->get_type() & ~SIMPLEPIE_TYPE_NONE))
- {
- $this->error = "A feed could not be found at $this->feed_url. This does not appear to be a valid RSS or Atom feed.";
- $this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, __FILE__, __LINE__));
- return false;
- }
-
- if (isset($headers))
- {
- $this->data['headers'] = $headers;
- }
- $this->data['build'] = SIMPLEPIE_BUILD;
-
- // Cache the file if caching is enabled
- if ($cache && !$cache->save($this))
- {
- trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
- }
- return true;
- }
- }
- }
-
- if (isset($parser))
- {
- // We have an error, just set SimplePie_Misc::error to it and quit
- $this->error = sprintf('This XML document is invalid, likely due to invalid characters. XML error: %s at line %d, column %d', $parser->get_error_string(), $parser->get_current_line(), $parser->get_current_column());
- }
- else
- {
- $this->error = 'The data could not be converted to UTF-8. You MUST have either the iconv or mbstring extension installed. Upgrading to PHP 5.x (which includes iconv) is highly recommended.';
- }
-
- $this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, __FILE__, __LINE__));
-
- return false;
- }
-
- /**
- * Fetch the data via SimplePie_File
- *
- * If the data is already cached, attempt to fetch it from there instead
- * @param SimplePie_Cache|false $cache Cache handler, or false to not load from the cache
- * @return array|true Returns true if the data was loaded from the cache, or an array of HTTP headers and sniffed type
- */
- protected function fetch_data(&$cache)
- {
- // If it's enabled, use the cache
- if ($cache)
- {
- // Load the Cache
- $this->data = $cache->load();
- if (!empty($this->data))
- {
- // If the cache is for an outdated build of SimplePie
- if (!isset($this->data['build']) || $this->data['build'] !== SIMPLEPIE_BUILD)
- {
- $cache->unlink();
- $this->data = array();
- }
- // If we've hit a collision just rerun it with caching disabled
- elseif (isset($this->data['url']) && $this->data['url'] !== $this->feed_url)
- {
- $cache = false;
- $this->data = array();
- }
- // If we've got a non feed_url stored (if the page isn't actually a feed, or is a redirect) use that URL.
- elseif (isset($this->data['feed_url']))
- {
- // If the autodiscovery cache is still valid use it.
- if ($cache->mtime() + $this->autodiscovery_cache_duration > time())
- {
- // Do not need to do feed autodiscovery yet.
- if ($this->data['feed_url'] !== $this->data['url'])
- {
- $this->set_feed_url($this->data['feed_url']);
- return $this->init();
- }
-
- $cache->unlink();
- $this->data = array();
- }
- }
- // Check if the cache has been updated
- elseif ($cache->mtime() + $this->cache_duration < time())
- {
- // If we have last-modified and/or etag set
- if (isset($this->data['headers']['last-modified']) || isset($this->data['headers']['etag']))
- {
- $headers = array(
- 'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
- );
- if (isset($this->data['headers']['last-modified']))
- {
- $headers['if-modified-since'] = $this->data['headers']['last-modified'];
- }
- if (isset($this->data['headers']['etag']))
- {
- $headers['if-none-match'] = $this->data['headers']['etag'];
- }
-
- $file = $this->registry->create('File', array($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen));
-
- if ($file->success)
- {
- if ($file->status_code === 304)
- {
- $cache->touch();
- return true;
- }
- }
- else
- {
- unset($file);
- }
- }
- }
- // If the cache is still valid, just return true
- else
- {
- $this->raw_data = false;
- return true;
- }
- }
- // If the cache is empty, delete it
- else
- {
- $cache->unlink();
- $this->data = array();
- }
- }
- // If we don't already have the file (it'll only exist if we've opened it to check if the cache has been modified), open it.
- if (!isset($file))
- {
- if ($this->file instanceof SimplePie_File && $this->file->url === $this->feed_url)
- {
- $file =& $this->file;
- }
- else
- {
- $headers = array(
- 'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
- );
- $file = $this->registry->create('File', array($this->feed_url, $this->timeout, 5, $headers, $this->useragent, $this->force_fsockopen));
- }
- }
- // If the file connection has an error, set SimplePie::error to that and quit
- if (!$file->success && !($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)))
- {
- $this->error = $file->error;
- return !empty($this->data);
- }
-
- if (!$this->force_feed)
- {
- // Check if the supplied URL is a feed, if it isn't, look for it.
- $locate = $this->registry->create('Locator', array(&$file, $this->timeout, $this->useragent, $this->max_checked_feeds));
-
- if (!$locate->is_feed($file))
- {
- // We need to unset this so that if SimplePie::set_file() has been called that object is untouched
- unset($file);
- try
- {
- if (!($file = $locate->find($this->autodiscovery, $this->all_discovered_feeds)))
- {
- $this->error = "A feed could not be found at $this->feed_url. A feed with an invalid mime type may fall victim to this error, or " . SIMPLEPIE_NAME . " was unable to auto-discover it.. Use force_feed() if you are certain this URL is a real feed.";
- $this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, __FILE__, __LINE__));
- return false;
- }
- }
- catch (SimplePie_Exception $e)
- {
- // This is usually because DOMDocument doesn't exist
- $this->error = $e->getMessage();
- $this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, $e->getFile(), $e->getLine()));
- return false;
- }
- if ($cache)
- {
- $this->data = array('url' => $this->feed_url, 'feed_url' => $file->url, 'build' => SIMPLEPIE_BUILD);
- if (!$cache->save($this))
- {
- trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
- }
- $cache = $this->registry->call('Cache', 'get_handler', array($this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc'));
- }
- $this->feed_url = $file->url;
- }
- $locate = null;
- }
-
- $this->raw_data = $file->body;
-
- $headers = $file->headers;
- $sniffer = $this->registry->create('Content_Type_Sniffer', array(&$file));
- $sniffed = $sniffer->get_type();
-
- return array($headers, $sniffed);
- }
-
- /**
- * Get the error message for the occured error
- *
- * @return string|array Error message, or array of messages for multifeeds
- */
- public function error()
- {
- return $this->error;
- }
-
- /**
- * Get the raw XML
- *
- * This is the same as the old `$feed->enable_xml_dump(true)`, but returns
- * the data instead of printing it.
- *
- * @return string|boolean Raw XML data, false if the cache is used
- */
- public function get_raw_data()
- {
- return $this->raw_data;
- }
-
- /**
- * Get the character encoding used for output
- *
- * @since Preview Release
- * @return string
- */
- public function get_encoding()
- {
- return $this->sanitize->output_encoding;
- }
-
- /**
- * Send the content-type header with correct encoding
- *
- * This method ensures that the SimplePie-enabled page is being served with
- * the correct {@link http://www.iana.org/assignments/media-types/ mime-type}
- * and character encoding HTTP headers (character encoding determined by the
- * {@see set_output_encoding} config option).
- *
- * This won't work properly if any content or whitespace has already been
- * sent to the browser, because it relies on PHP's
- * {@link http://php.net/header header()} function, and these are the
- * circumstances under which the function works.
- *
- * Because it's setting these settings for the entire page (as is the nature
- * of HTTP headers), this should only be used once per page (again, at the
- * top).
- *
- * @param string $mime MIME type to serve the page as
- */
- public function handle_content_type($mime = 'text/html')
- {
- if (!headers_sent())
- {
- $header = "Content-type: $mime;";
- if ($this->get_encoding())
- {
- $header .= ' charset=' . $this->get_encoding();
- }
- else
- {
- $header .= ' charset=UTF-8';
- }
- header($header);
- }
- }
-
- /**
- * Get the type of the feed
- *
- * This returns a SIMPLEPIE_TYPE_* constant, which can be tested against
- * using {@link http://php.net/language.operators.bitwise bitwise operators}
- *
- * @since 0.8 (usage changed to using constants in 1.0)
- * @see SIMPLEPIE_TYPE_NONE Unknown.
- * @see SIMPLEPIE_TYPE_RSS_090 RSS 0.90.
- * @see SIMPLEPIE_TYPE_RSS_091_NETSCAPE RSS 0.91 (Netscape).
- * @see SIMPLEPIE_TYPE_RSS_091_USERLAND RSS 0.91 (Userland).
- * @see SIMPLEPIE_TYPE_RSS_091 RSS 0.91.
- * @see SIMPLEPIE_TYPE_RSS_092 RSS 0.92.
- * @see SIMPLEPIE_TYPE_RSS_093 RSS 0.93.
- * @see SIMPLEPIE_TYPE_RSS_094 RSS 0.94.
- * @see SIMPLEPIE_TYPE_RSS_10 RSS 1.0.
- * @see SIMPLEPIE_TYPE_RSS_20 RSS 2.0.x.
- * @see SIMPLEPIE_TYPE_RSS_RDF RDF-based RSS.
- * @see SIMPLEPIE_TYPE_RSS_SYNDICATION Non-RDF-based RSS (truly intended as syndication format).
- * @see SIMPLEPIE_TYPE_RSS_ALL Any version of RSS.
- * @see SIMPLEPIE_TYPE_ATOM_03 Atom 0.3.
- * @see SIMPLEPIE_TYPE_ATOM_10 Atom 1.0.
- * @see SIMPLEPIE_TYPE_ATOM_ALL Any version of Atom.
- * @see SIMPLEPIE_TYPE_ALL Any known/supported feed type.
- * @return int SIMPLEPIE_TYPE_* constant
- */
- public function get_type()
- {
- if (!isset($this->data['type']))
- {
- $this->data['type'] = SIMPLEPIE_TYPE_ALL;
- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed']))
- {
- $this->data['type'] &= SIMPLEPIE_TYPE_ATOM_10;
- }
- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed']))
- {
- $this->data['type'] &= SIMPLEPIE_TYPE_ATOM_03;
- }
- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF']))
- {
- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['channel'])
- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['image'])
- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item'])
- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['textinput']))
- {
- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_10;
- }
- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['channel'])
- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['image'])
- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item'])
- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['textinput']))
- {
- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_090;
- }
- }
- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss']))
- {
- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_ALL;
- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['attribs']['']['version']))
- {
- switch (trim($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['attribs']['']['version']))
- {
- case '0.91':
- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091;
- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['skiphours']['hour'][0]['data']))
- {
- switch (trim($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['skiphours']['hour'][0]['data']))
- {
- case '0':
- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091_NETSCAPE;
- break;
-
- case '24':
- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091_USERLAND;
- break;
- }
- }
- break;
-
- case '0.92':
- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_092;
- break;
-
- case '0.93':
- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_093;
- break;
-
- case '0.94':
- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_094;
- break;
-
- case '2.0':
- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_20;
- break;
- }
- }
- }
- else
- {
- $this->data['type'] = SIMPLEPIE_TYPE_NONE;
- }
- }
- return $this->data['type'];
- }
-
- /**
- * Get the URL for the feed
- *
- * May or may not be different from the URL passed to {@see set_feed_url()},
- * depending on whether auto-discovery was used.
- *
- * @since Preview Release (previously called `get_feed_url()` since SimplePie 0.8.)
- * @todo If we have a perm redirect we should return the new URL
- * @todo When we make the above change, let's support <itunes:new-feed-url> as well
- * @todo Also, |atom:link|@rel=self
- * @return string|null
- */
- public function subscribe_url()
- {
- if ($this->feed_url !== null)
- {
- return $this->sanitize($this->feed_url, SIMPLEPIE_CONSTRUCT_IRI);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get data for an feed-level element
- *
- * This method allows you to get access to ANY element/attribute that is a
- * sub-element of the opening feed tag.
- *
- * The return value is an indexed array of elements matching the given
- * namespace and tag name. Each element has `attribs`, `data` and `child`
- * subkeys. For `attribs` and `child`, these contain namespace subkeys.
- * `attribs` then has one level of associative name => value data (where
- * `value` is a string) after the namespace. `child` has tag-indexed keys
- * after the namespace, each member of which is an indexed array matching
- * this same format.
- *
- * For example:
- * <pre>
- * // This is probably a bad example because we already support
- * // <media:content> natively, but it shows you how to parse through
- * // the nodes.
- * $group = $item->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'group');
- * $content = $group[0]['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'];
- * $file = $content[0]['attribs']['']['url'];
- * echo $file;
- * </pre>
- *
- * @since 1.0
- * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
- * @param string $namespace The URL of the XML namespace of the elements you're trying to access
- * @param string $tag Tag name
- * @return array
- */
- public function get_feed_tags($namespace, $tag)
- {
- $type = $this->get_type();
- if ($type & SIMPLEPIE_TYPE_ATOM_10)
- {
- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['child'][$namespace][$tag]))
- {
- return $this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['child'][$namespace][$tag];
- }
- }
- if ($type & SIMPLEPIE_TYPE_ATOM_03)
- {
- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['child'][$namespace][$tag]))
- {
- return $this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['child'][$namespace][$tag];
- }
- }
- if ($type & SIMPLEPIE_TYPE_RSS_RDF)
- {
- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][$namespace][$tag]))
- {
- return $this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][$namespace][$tag];
- }
- }
- if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION)
- {
- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][$namespace][$tag]))
- {
- return $this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][$namespace][$tag];
- }
- }
- return null;
- }
-
- /**
- * Get data for an channel-level element
- *
- * This method allows you to get access to ANY element/attribute in the
- * channel/header section of the feed.
- *
- * See {@see SimplePie::get_feed_tags()} for a description of the return value
- *
- * @since 1.0
- * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
- * @param string $namespace The URL of the XML namespace of the elements you're trying to access
- * @param string $tag Tag name
- * @return array
- */
- public function get_channel_tags($namespace, $tag)
- {
- $type = $this->get_type();
- if ($type & SIMPLEPIE_TYPE_ATOM_ALL)
- {
- if ($return = $this->get_feed_tags($namespace, $tag))
- {
- return $return;
- }
- }
- if ($type & SIMPLEPIE_TYPE_RSS_10)
- {
- if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'channel'))
- {
- if (isset($channel[0]['child'][$namespace][$tag]))
- {
- return $channel[0]['child'][$namespace][$tag];
- }
- }
- }
- if ($type & SIMPLEPIE_TYPE_RSS_090)
- {
- if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'channel'))
- {
- if (isset($channel[0]['child'][$namespace][$tag]))
- {
- return $channel[0]['child'][$namespace][$tag];
- }
- }
- }
- if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION)
- {
- if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'channel'))
- {
- if (isset($channel[0]['child'][$namespace][$tag]))
- {
- return $channel[0]['child'][$namespace][$tag];
- }
- }
- }
- return null;
- }
-
- /**
- * Get data for an channel-level element
- *
- * This method allows you to get access to ANY element/attribute in the
- * image/logo section of the feed.
- *
- * See {@see SimplePie::get_feed_tags()} for a description of the return value
- *
- * @since 1.0
- * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
- * @param string $namespace The URL of the XML namespace of the elements you're trying to access
- * @param string $tag Tag name
- * @return array
- */
- public function get_image_tags($namespace, $tag)
- {
- $type = $this->get_type();
- if ($type & SIMPLEPIE_TYPE_RSS_10)
- {
- if ($image = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'image'))
- {
- if (isset($image[0]['child'][$namespace][$tag]))
- {
- return $image[0]['child'][$namespace][$tag];
- }
- }
- }
- if ($type & SIMPLEPIE_TYPE_RSS_090)
- {
- if ($image = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'image'))
- {
- if (isset($image[0]['child'][$namespace][$tag]))
- {
- return $image[0]['child'][$namespace][$tag];
- }
- }
- }
- if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION)
- {
- if ($image = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'image'))
- {
- if (isset($image[0]['child'][$namespace][$tag]))
- {
- return $image[0]['child'][$namespace][$tag];
- }
- }
- }
- return null;
- }
-
- /**
- * Get the base URL value from the feed
- *
- * Uses `<xml:base>` if available, otherwise uses the first link in the
- * feed, or failing that, the URL of the feed itself.
- *
- * @see get_link
- * @see subscribe_url
- *
- * @param array $element
- * @return string
- */
- public function get_base($element = array())
- {
- if (!($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION) && !empty($element['xml_base_explicit']) && isset($element['xml_base']))
- {
- return $element['xml_base'];
- }
- elseif ($this->get_link() !== null)
- {
- return $this->get_link();
- }
- else
- {
- return $this->subscribe_url();
- }
- }
-
- /**
- * Sanitize feed data
- *
- * @access private
- * @see SimplePie_Sanitize::sanitize()
- * @param string $data Data to sanitize
- * @param int $type One of the SIMPLEPIE_CONSTRUCT_* constants
- * @param string $base Base URL to resolve URLs against
- * @return string Sanitized data
- */
- public function sanitize($data, $type, $base = '')
- {
- return $this->sanitize->sanitize($data, $type, $base);
- }
-
- /**
- * Get the title of the feed
- *
- * Uses `<atom:title>`, `<title>` or `<dc:title>`
- *
- * @since 1.0 (previously called `get_feed_title` since 0.8)
- * @return string|null
- */
- public function get_title()
- {
- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a category for the feed
- *
- * @since Unknown
- * @param int $key The category that you want to return. Remember that arrays begin with 0, not 1
- * @return SimplePie_Category|null
- */
- public function get_category($key = 0)
- {
- $categories = $this->get_categories();
- if (isset($categories[$key]))
- {
- return $categories[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all categories for the feed
- *
- * Uses `<atom:category>`, `<category>` or `<dc:subject>`
- *
- * @since Unknown
- * @return array|null List of {@see SimplePie_Category} objects
- */
- public function get_categories()
- {
- $categories = array();
-
- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
- {
- $term = null;
- $scheme = null;
- $label = null;
- if (isset($category['attribs']['']['term']))
- {
- $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['scheme']))
- {
- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['label']))
- {
- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $categories[] = $this->registry->create('Category', array($term, $scheme, $label));
- }
- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
- {
- // This is really the label, but keep this as the term also for BC.
- // Label will also work on retrieving because that falls back to term.
- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- if (isset($category['attribs']['']['domain']))
- {
- $scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $scheme = null;
- }
- $categories[] = $this->registry->create('Category', array($term, $scheme, null));
- }
- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
- {
- $categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
- {
- $categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
-
- if (!empty($categories))
- {
- return array_unique($categories);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get an author for the feed
- *
- * @since 1.1
- * @param int $key The author that you want to return. Remember that arrays begin with 0, not 1
- * @return SimplePie_Author|null
- */
- public function get_author($key = 0)
- {
- $authors = $this->get_authors();
- if (isset($authors[$key]))
- {
- return $authors[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all authors for the feed
- *
- * Uses `<atom:author>`, `<author>`, `<dc:creator>` or `<itunes:author>`
- *
- * @since 1.1
- * @return array|null List of {@see SimplePie_Author} objects
- */
- public function get_authors()
- {
- $authors = array();
- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
- {
- $name = null;
- $uri = null;
- $email = null;
- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
- {
- $name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
- {
- $uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
- }
- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
- {
- $email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $uri !== null)
- {
- $authors[] = $this->registry->create('Author', array($name, $uri, $email));
- }
- }
- if ($author = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
- {
- $name = null;
- $url = null;
- $email = null;
- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
- {
- $name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
- {
- $url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
- }
- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
- {
- $email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $url !== null)
- {
- $authors[] = $this->registry->create('Author', array($name, $url, $email));
- }
- }
- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
- {
- $authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
- {
- $authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
- {
- $authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
-
- if (!empty($authors))
- {
- return array_unique($authors);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a contributor for the feed
- *
- * @since 1.1
- * @param int $key The contrbutor that you want to return. Remember that arrays begin with 0, not 1
- * @return SimplePie_Author|null
- */
- public function get_contributor($key = 0)
- {
- $contributors = $this->get_contributors();
- if (isset($contributors[$key]))
- {
- return $contributors[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all contributors for the feed
- *
- * Uses `<atom:contributor>`
- *
- * @since 1.1
- * @return array|null List of {@see SimplePie_Author} objects
- */
- public function get_contributors()
- {
- $contributors = array();
- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
- {
- $name = null;
- $uri = null;
- $email = null;
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
- {
- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
- {
- $uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
- {
- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $uri !== null)
- {
- $contributors[] = $this->registry->create('Author', array($name, $uri, $email));
- }
- }
- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
- {
- $name = null;
- $url = null;
- $email = null;
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
- {
- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
- {
- $url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
- {
- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $url !== null)
- {
- $contributors[] = $this->registry->create('Author', array($name, $url, $email));
- }
- }
-
- if (!empty($contributors))
- {
- return array_unique($contributors);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a single link for the feed
- *
- * @since 1.0 (previously called `get_feed_link` since Preview Release, `get_feed_permalink()` since 0.8)
- * @param int $key The link that you want to return. Remember that arrays begin with 0, not 1
- * @param string $rel The relationship of the link to return
- * @return string|null Link URL
- */
- public function get_link($key = 0, $rel = 'alternate')
- {
- $links = $this->get_links($rel);
- if (isset($links[$key]))
- {
- return $links[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the permalink for the item
- *
- * Returns the first link available with a relationship of "alternate".
- * Identical to {@see get_link()} with key 0
- *
- * @see get_link
- * @since 1.0 (previously called `get_feed_link` since Preview Release, `get_feed_permalink()` since 0.8)
- * @internal Added for parity between the parent-level and the item/entry-level.
- * @return string|null Link URL
- */
- public function get_permalink()
- {
- return $this->get_link(0);
- }
-
- /**
- * Get all links for the feed
- *
- * Uses `<atom:link>` or `<link>`
- *
- * @since Beta 2
- * @param string $rel The relationship of links to return
- * @return array|null Links found for the feed (strings)
- */
- public function get_links($rel = 'alternate')
- {
- if (!isset($this->data['links']))
- {
- $this->data['links'] = array();
- if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link'))
- {
- foreach ($links as $link)
- {
- if (isset($link['attribs']['']['href']))
- {
- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
- }
- }
- }
- if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link'))
- {
- foreach ($links as $link)
- {
- if (isset($link['attribs']['']['href']))
- {
- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-
- }
- }
- }
- if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
- {
- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
- }
- if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
- {
- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
- }
- if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
- {
- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
- }
-
- $keys = array_keys($this->data['links']);
- foreach ($keys as $key)
- {
- if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key)))
- {
- if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
- {
- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
- $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
- }
- else
- {
- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
- }
- }
- elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
- {
- $this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
- }
- $this->data['links'][$key] = array_unique($this->data['links'][$key]);
- }
- }
-
- if (isset($this->data['links'][$rel]))
- {
- return $this->data['links'][$rel];
- }
- else
- {
- return null;
- }
- }
-
- public function get_all_discovered_feeds()
- {
- return $this->all_discovered_feeds;
- }
-
- /**
- * Get the content for the item
- *
- * Uses `<atom:subtitle>`, `<atom:tagline>`, `<description>`,
- * `<dc:description>`, `<itunes:summary>` or `<itunes:subtitle>`
- *
- * @since 1.0 (previously called `get_feed_description()` since 0.8)
- * @return string|null
- */
- public function get_description()
- {
- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the copyright info for the feed
- *
- * Uses `<atom:rights>`, `<atom:copyright>` or `<dc:rights>`
- *
- * @since 1.0 (previously called `get_feed_copyright()` since 0.8)
- * @return string|null
- */
- public function get_copyright()
- {
- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'copyright'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the language for the feed
- *
- * Uses `<language>`, `<dc:language>`, or @xml_lang
- *
- * @since 1.0 (previously called `get_feed_language()` since 0.8)
- * @return string|null
- */
- public function get_language()
- {
- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'language'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['xml_lang']))
- {
- return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['xml_lang']))
- {
- return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['xml_lang']))
- {
- return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif (isset($this->data['headers']['content-language']))
- {
- return $this->sanitize($this->data['headers']['content-language'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the latitude coordinates for the item
- *
- * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
- *
- * Uses `<geo:lat>` or `<georss:point>`
- *
- * @since 1.0
- * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
- * @link http://www.georss.org/ GeoRSS
- * @return string|null
- */
- public function get_latitude()
- {
-
- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
- {
- return (float) $return[0]['data'];
- }
- elseif (($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
- {
- return (float) $match[1];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the longitude coordinates for the feed
- *
- * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
- *
- * Uses `<geo:long>`, `<geo:lon>` or `<georss:point>`
- *
- * @since 1.0
- * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
- * @link http://www.georss.org/ GeoRSS
- * @return string|null
- */
- public function get_longitude()
- {
- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
- {
- return (float) $return[0]['data'];
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
- {
- return (float) $return[0]['data'];
- }
- elseif (($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
- {
- return (float) $match[2];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the feed logo's title
- *
- * RSS 0.9.0, 1.0 and 2.0 feeds are allowed to have a "feed logo" title.
- *
- * Uses `<image><title>` or `<image><dc:title>`
- *
- * @return string|null
- */
- public function get_image_title()
- {
- if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the feed logo's URL
- *
- * RSS 0.9.0, 2.0, Atom 1.0, and feeds with iTunes RSS tags are allowed to
- * have a "feed logo" URL. This points directly to the image itself.
- *
- * Uses `<itunes:image>`, `<atom:logo>`, `<atom:icon>`,
- * `<image><title>` or `<image><dc:title>`
- *
- * @return string|null
- */
- public function get_image_url()
- {
- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image'))
- {
- return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'url'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'url'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'url'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the feed logo's link
- *
- * RSS 0.9.0, 1.0 and 2.0 feeds are allowed to have a "feed logo" link. This
- * points to a human-readable page that the image should link to.
- *
- * Uses `<itunes:image>`, `<atom:logo>`, `<atom:icon>`,
- * `<image><title>` or `<image><dc:title>`
- *
- * @return string|null
- */
- public function get_image_link()
- {
- if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the feed logo's link
- *
- * RSS 2.0 feeds are allowed to have a "feed logo" width.
- *
- * Uses `<image><width>` or defaults to 88.0 if no width is specified and
- * the feed is an RSS 2.0 feed.
- *
- * @return int|float|null
- */
- public function get_image_width()
- {
- if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'width'))
- {
- return round($return[0]['data']);
- }
- elseif ($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION && $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'url'))
- {
- return 88.0;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the feed logo's height
- *
- * RSS 2.0 feeds are allowed to have a "feed logo" height.
- *
- * Uses `<image><height>` or defaults to 31.0 if no height is specified and
- * the feed is an RSS 2.0 feed.
- *
- * @return int|float|null
- */
- public function get_image_height()
- {
- if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'height'))
- {
- return round($return[0]['data']);
- }
- elseif ($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION && $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'url'))
- {
- return 31.0;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the number of items in the feed
- *
- * This is well-suited for {@link http://php.net/for for()} loops with
- * {@see get_item()}
- *
- * @param int $max Maximum value to return. 0 for no limit
- * @return int Number of items in the feed
- */
- public function get_item_quantity($max = 0)
- {
- $max = (int) $max;
- $qty = count($this->get_items());
- if ($max === 0)
- {
- return $qty;
- }
- else
- {
- return ($qty > $max) ? $max : $qty;
- }
- }
-
- /**
- * Get a single item from the feed
- *
- * This is better suited for {@link http://php.net/for for()} loops, whereas
- * {@see get_items()} is better suited for
- * {@link http://php.net/foreach foreach()} loops.
- *
- * @see get_item_quantity()
- * @since Beta 2
- * @param int $key The item that you want to return. Remember that arrays begin with 0, not 1
- * @return SimplePie_Item|null
- */
- public function get_item($key = 0)
- {
- $items = $this->get_items();
- if (isset($items[$key]))
- {
- return $items[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all items from the feed
- *
- * This is better suited for {@link http://php.net/for for()} loops, whereas
- * {@see get_items()} is better suited for
- * {@link http://php.net/foreach foreach()} loops.
- *
- * @see get_item_quantity
- * @since Beta 2
- * @param int $start Index to start at
- * @param int $end Number of items to return. 0 for all items after `$start`
- * @return array|null List of {@see SimplePie_Item} objects
- */
- public function get_items($start = 0, $end = 0)
- {
- if (!isset($this->data['items']))
- {
- if (!empty($this->multifeed_objects))
- {
- $this->data['items'] = SimplePie::merge_items($this->multifeed_objects, $start, $end, $this->item_limit);
- }
- else
- {
- $this->data['items'] = array();
- if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'entry'))
- {
- $keys = array_keys($items);
- foreach ($keys as $key)
- {
- $this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
- }
- }
- if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'entry'))
- {
- $keys = array_keys($items);
- foreach ($keys as $key)
- {
- $this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
- }
- }
- if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'item'))
- {
- $keys = array_keys($items);
- foreach ($keys as $key)
- {
- $this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
- }
- }
- if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'item'))
- {
- $keys = array_keys($items);
- foreach ($keys as $key)
- {
- $this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
- }
- }
- if ($items = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'item'))
- {
- $keys = array_keys($items);
- foreach ($keys as $key)
- {
- $this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
- }
- }
- }
- }
-
- if (!empty($this->data['items']))
- {
- // If we want to order it by date, check if all items have a date, and then sort it
- if ($this->order_by_date && empty($this->multifeed_objects))
- {
- if (!isset($this->data['ordered_items']))
- {
- $do_sort = true;
- foreach ($this->data['items'] as $item)
- {
- if (!$item->get_date('U'))
- {
- $do_sort = false;
- break;
- }
- }
- $item = null;
- $this->data['ordered_items'] = $this->data['items'];
- if ($do_sort)
- {
- usort($this->data['ordered_items'], array(get_class($this), 'sort_items'));
- }
- }
- $items = $this->data['ordered_items'];
- }
- else
- {
- $items = $this->data['items'];
- }
-
- // Slice the data as desired
- if ($end === 0)
- {
- return array_slice($items, $start);
- }
- else
- {
- return array_slice($items, $start, $end);
- }
- }
- else
- {
- return array();
- }
- }
-
- /**
- * Set the favicon handler
- *
- * @deprecated Use your own favicon handling instead
- */
- public function set_favicon_handler($page = false, $qs = 'i')
- {
- $level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
- trigger_error('Favicon handling has been removed, please use your own handling', $level);
- return false;
- }
-
- /**
- * Get the favicon for the current feed
- *
- * @deprecated Use your own favicon handling instead
- */
- public function get_favicon()
- {
- $level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
- trigger_error('Favicon handling has been removed, please use your own handling', $level);
-
- if (($url = $this->get_link()) !== null)
- {
- return 'http://g.etfv.co/' . urlencode($url);
- }
-
- return false;
- }
-
- /**
- * Magic method handler
- *
- * @param string $method Method name
- * @param array $args Arguments to the method
- * @return mixed
- */
- public function __call($method, $args)
- {
- if (strpos($method, 'subscribe_') === 0)
- {
- $level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
- trigger_error('subscribe_*() has been deprecated, implement the callback yourself', $level);
- return '';
- }
- if ($method === 'enable_xml_dump')
- {
- $level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
- trigger_error('enable_xml_dump() has been deprecated, use get_raw_data() instead', $level);
- return false;
- }
-
- $class = get_class($this);
- $trace = debug_backtrace();
- $file = $trace[0]['file'];
- $line = $trace[0]['line'];
- trigger_error("Call to undefined method $class::$method() in $file on line $line", E_USER_ERROR);
- }
-
- /**
- * Sorting callback for items
- *
- * @access private
- * @param SimplePie $a
- * @param SimplePie $b
- * @return boolean
- */
- public static function sort_items($a, $b)
- {
- return $a->get_date('U') <= $b->get_date('U');
- }
-
- /**
- * Merge items from several feeds into one
- *
- * If you're merging multiple feeds together, they need to all have dates
- * for the items or else SimplePie will refuse to sort them.
- *
- * @link http://simplepie.org/wiki/tutorial/sort_multiple_feeds_by_time_and_date#if_feeds_require_separate_per-feed_settings
- * @param array $urls List of SimplePie feed objects to merge
- * @param int $start Starting item
- * @param int $end Number of items to return
- * @param int $limit Maximum number of items per feed
- * @return array
- */
- public static function merge_items($urls, $start = 0, $end = 0, $limit = 0)
- {
- if (is_array($urls) && sizeof($urls) > 0)
- {
- $items = array();
- foreach ($urls as $arg)
- {
- if ($arg instanceof SimplePie)
- {
- $items = array_merge($items, $arg->get_items(0, $limit));
- }
- else
- {
- trigger_error('Arguments must be SimplePie objects', E_USER_WARNING);
- }
- }
-
- $do_sort = true;
- foreach ($items as $item)
- {
- if (!$item->get_date('U'))
- {
- $do_sort = false;
- break;
- }
- }
- $item = null;
- if ($do_sort)
- {
- usort($items, array(get_class($urls[0]), 'sort_items'));
- }
-
- if ($end === 0)
- {
- return array_slice($items, $start);
- }
- else
- {
- return array_slice($items, $start, $end);
- }
- }
- else
- {
- trigger_error('Cannot merge zero SimplePie objects', E_USER_WARNING);
- return array();
- }
- }
-}
-
-/**
- * Manages all author-related data
- *
- * Used by {@see SimplePie_Item::get_author()} and {@see SimplePie::get_authors()}
- *
- * This class can be overloaded with {@see SimplePie::set_author_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Author
-{
- /**
- * Author's name
- *
- * @var string
- * @see get_name()
- */
- var $name;
-
- /**
- * Author's link
- *
- * @var string
- * @see get_link()
- */
- var $link;
-
- /**
- * Author's email address
- *
- * @var string
- * @see get_email()
- */
- var $email;
-
- /**
- * Constructor, used to input the data
- *
- * @param string $name
- * @param string $link
- * @param string $email
- */
- public function __construct($name = null, $link = null, $email = null)
- {
- $this->name = $name;
- $this->link = $link;
- $this->email = $email;
- }
-
- /**
- * String-ified version
- *
- * @return string
- */
- public function __toString()
- {
- // There is no $this->data here
- return md5(serialize($this));
- }
-
- /**
- * Author's name
- *
- * @return string|null
- */
- public function get_name()
- {
- if ($this->name !== null)
- {
- return $this->name;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Author's link
- *
- * @return string|null
- */
- public function get_link()
- {
- if ($this->link !== null)
- {
- return $this->link;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Author's email address
- *
- * @return string|null
- */
- public function get_email()
- {
- if ($this->email !== null)
- {
- return $this->email;
- }
- else
- {
- return null;
- }
- }
-}
-
-/**
- * Base for cache objects
- *
- * Classes to be used with {@see SimplePie_Cache::register()} are expected
- * to implement this interface.
- *
- * @package SimplePie
- * @subpackage Caching
- */
-interface SimplePie_Cache_Base
-{
- /**
- * Feed cache type
- *
- * @var string
- */
- const TYPE_FEED = 'spc';
-
- /**
- * Image cache type
- *
- * @var string
- */
- const TYPE_IMAGE = 'spi';
-
- /**
- * Create a new cache object
- *
- * @param string $location Location string (from SimplePie::$cache_location)
- * @param string $name Unique ID for the cache
- * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
- */
- public function __construct($location, $name, $type);
-
- /**
- * Save data to the cache
- *
- * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
- * @return bool Successfulness
- */
- public function save($data);
-
- /**
- * Retrieve the data saved to the cache
- *
- * @return array Data for SimplePie::$data
- */
- public function load();
-
- /**
- * Retrieve the last modified time for the cache
- *
- * @return int Timestamp
- */
- public function mtime();
-
- /**
- * Set the last modified time to the current time
- *
- * @return bool Success status
- */
- public function touch();
-
- /**
- * Remove the cache
- *
- * @return bool Success status
- */
- public function unlink();
-}
-
-/**
- * Base class for database-based caches
- *
- * @package SimplePie
- * @subpackage Caching
- */
-abstract class SimplePie_Cache_DB implements SimplePie_Cache_Base
-{
- /**
- * Helper for database conversion
- *
- * Converts a given {@see SimplePie} object into data to be stored
- *
- * @param SimplePie $data
- * @return array First item is the serialized data for storage, second item is the unique ID for this item
- */
- protected static function prepare_simplepie_object_for_cache($data)
- {
- $items = $data->get_items();
- $items_by_id = array();
-
- if (!empty($items))
- {
- foreach ($items as $item)
- {
- $items_by_id[$item->get_id()] = $item;
- }
-
- if (count($items_by_id) !== count($items))
- {
- $items_by_id = array();
- foreach ($items as $item)
- {
- $items_by_id[$item->get_id(true)] = $item;
- }
- }
-
- if (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]))
- {
- $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0];
- }
- elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]))
- {
- $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0];
- }
- elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]))
- {
- $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0];
- }
- elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0]))
- {
- $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0];
- }
- else
- {
- $channel = null;
- }
-
- if ($channel !== null)
- {
- if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']))
- {
- unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']);
- }
- if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']))
- {
- unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']);
- }
- if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']))
- {
- unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']);
- }
- if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']))
- {
- unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']);
- }
- if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']))
- {
- unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']);
- }
- }
- if (isset($data->data['items']))
- {
- unset($data->data['items']);
- }
- if (isset($data->data['ordered_items']))
- {
- unset($data->data['ordered_items']);
- }
- }
- return array(serialize($data->data), $items_by_id);
- }
-}
-
-/**
- * Caches data to the filesystem
- *
- * @package SimplePie
- * @subpackage Caching
- */
-class SimplePie_Cache_File implements SimplePie_Cache_Base
-{
- /**
- * Location string
- *
- * @see SimplePie::$cache_location
- * @var string
- */
- protected $location;
-
- /**
- * Filename
- *
- * @var string
- */
- protected $filename;
-
- /**
- * File extension
- *
- * @var string
- */
- protected $extension;
-
- /**
- * File path
- *
- * @var string
- */
- protected $name;
-
- /**
- * Create a new cache object
- *
- * @param string $location Location string (from SimplePie::$cache_location)
- * @param string $name Unique ID for the cache
- * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
- */
- public function __construct($location, $name, $type)
- {
- $this->location = $location;
- $this->filename = $name;
- $this->extension = $type;
- $this->name = "$this->location/$this->filename.$this->extension";
- }
-
- /**
- * Save data to the cache
- *
- * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
- * @return bool Successfulness
- */
- public function save($data)
- {
- if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location))
- {
- if ($data instanceof SimplePie)
- {
- $data = $data->data;
- }
-
- $data = serialize($data);
- return (bool) file_put_contents($this->name, $data);
- }
- return false;
- }
-
- /**
- * Retrieve the data saved to the cache
- *
- * @return array Data for SimplePie::$data
- */
- public function load()
- {
- if (file_exists($this->name) && is_readable($this->name))
- {
- return unserialize(file_get_contents($this->name));
- }
- return false;
- }
-
- /**
- * Retrieve the last modified time for the cache
- *
- * @return int Timestamp
- */
- public function mtime()
- {
- if (file_exists($this->name))
- {
- return filemtime($this->name);
- }
- return false;
- }
-
- /**
- * Set the last modified time to the current time
- *
- * @return bool Success status
- */
- public function touch()
- {
- if (file_exists($this->name))
- {
- return touch($this->name);
- }
- return false;
- }
-
- /**
- * Remove the cache
- *
- * @return bool Success status
- */
- public function unlink()
- {
- if (file_exists($this->name))
- {
- return unlink($this->name);
- }
- return false;
- }
-}
-
-/**
- * Caches data to memcache
- *
- * Registered for URLs with the "memcache" protocol
- *
- * For example, `memcache://localhost:11211/?timeout=3600&prefix=sp_` will
- * connect to memcache on `localhost` on port 11211. All tables will be
- * prefixed with `sp_` and data will expire after 3600 seconds
- *
- * @package SimplePie
- * @subpackage Caching
- * @uses Memcache
- */
-class SimplePie_Cache_Memcache implements SimplePie_Cache_Base
-{
- /**
- * Memcache instance
- *
- * @var Memcache
- */
- protected $cache;
-
- /**
- * Options
- *
- * @var array
- */
- protected $options;
-
- /**
- * Cache name
- *
- * @var string
- */
- protected $name;
-
- /**
- * Create a new cache object
- *
- * @param string $location Location string (from SimplePie::$cache_location)
- * @param string $name Unique ID for the cache
- * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
- */
- public function __construct($location, $name, $type)
- {
- $this->options = array(
- 'host' => '127.0.0.1',
- 'port' => 11211,
- 'extras' => array(
- 'timeout' => 3600, // one hour
- 'prefix' => 'simplepie_',
- ),
- );
- $parsed = SimplePie_Cache::parse_URL($location);
- $this->options['host'] = empty($parsed['host']) ? $this->options['host'] : $parsed['host'];
- $this->options['port'] = empty($parsed['port']) ? $this->options['port'] : $parsed['port'];
- $this->options['extras'] = array_merge($this->options['extras'], $parsed['extras']);
- $this->name = $this->options['extras']['prefix'] . md5("$name:$type");
-
- $this->cache = new Memcache();
- $this->cache->addServer($this->options['host'], (int) $this->options['port']);
- }
-
- /**
- * Save data to the cache
- *
- * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
- * @return bool Successfulness
- */
- public function save($data)
- {
- if ($data instanceof SimplePie)
- {
- $data = $data->data;
- }
- return $this->cache->set($this->name, serialize($data), MEMCACHE_COMPRESSED, (int) $this->options['extras']['timeout']);
- }
-
- /**
- * Retrieve the data saved to the cache
- *
- * @return array Data for SimplePie::$data
- */
- public function load()
- {
- $data = $this->cache->get($this->name);
-
- if ($data !== false)
- {
- return unserialize($data);
- }
- return false;
- }
-
- /**
- * Retrieve the last modified time for the cache
- *
- * @return int Timestamp
- */
- public function mtime()
- {
- $data = $this->cache->get($this->name);
-
- if ($data !== false)
- {
- // essentially ignore the mtime because Memcache expires on it's own
- return time();
- }
-
- return false;
- }
-
- /**
- * Set the last modified time to the current time
- *
- * @return bool Success status
- */
- public function touch()
- {
- $data = $this->cache->get($this->name);
-
- if ($data !== false)
- {
- return $this->cache->set($this->name, $data, MEMCACHE_COMPRESSED, (int) $this->duration);
- }
-
- return false;
- }
-
- /**
- * Remove the cache
- *
- * @return bool Success status
- */
- public function unlink()
- {
- return $this->cache->delete($this->name, 0);
- }
-}
-
-/**
- * Caches data to a MySQL database
- *
- * Registered for URLs with the "mysql" protocol
- *
- * For example, `mysql://root:password@localhost:3306/mydb?prefix=sp_` will
- * connect to the `mydb` database on `localhost` on port 3306, with the user
- * `root` and the password `password`. All tables will be prefixed with `sp_`
- *
- * @package SimplePie
- * @subpackage Caching
- */
-class SimplePie_Cache_MySQL extends SimplePie_Cache_DB
-{
- /**
- * PDO instance
- *
- * @var PDO
- */
- protected $mysql;
-
- /**
- * Options
- *
- * @var array
- */
- protected $options;
-
- /**
- * Cache ID
- *
- * @var string
- */
- protected $id;
-
- /**
- * Create a new cache object
- *
- * @param string $location Location string (from SimplePie::$cache_location)
- * @param string $name Unique ID for the cache
- * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
- */
- public function __construct($location, $name, $type)
- {
- $this->options = array(
- 'user' => null,
- 'pass' => null,
- 'host' => '127.0.0.1',
- 'port' => '3306',
- 'path' => '',
- 'extras' => array(
- 'prefix' => '',
- ),
- );
- $this->options = array_merge_recursive($this->options, SimplePie_Cache::parse_URL($location));
-
- // Path is prefixed with a "/"
- $this->options['dbname'] = substr($this->options['path'], 1);
-
- try
- {
- $this->mysql = new PDO("mysql:dbname={$this->options['dbname']};host={$this->options['host']};port={$this->options['port']}", $this->options['user'], $this->options['pass'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
- }
- catch (PDOException $e)
- {
- $this->mysql = null;
- return;
- }
-
- $this->id = $name . $type;
-
- if (!$query = $this->mysql->query('SHOW TABLES'))
- {
- $this->mysql = null;
- return;
- }
-
- $db = array();
- while ($row = $query->fetchColumn())
- {
- $db[] = $row;
- }
-
- if (!in_array($this->options['extras']['prefix'] . 'cache_data', $db))
- {
- $query = $this->mysql->exec('CREATE TABLE `' . $this->options['extras']['prefix'] . 'cache_data` (`id` TEXT CHARACTER SET utf8 NOT NULL, `items` SMALLINT NOT NULL DEFAULT 0, `data` BLOB NOT NULL, `mtime` INT UNSIGNED NOT NULL, UNIQUE (`id`(125)))');
- if ($query === false)
- {
- $this->mysql = null;
- }
- }
-
- if (!in_array($this->options['extras']['prefix'] . 'items', $db))
- {
- $query = $this->mysql->exec('CREATE TABLE `' . $this->options['extras']['prefix'] . 'items` (`feed_id` TEXT CHARACTER SET utf8 NOT NULL, `id` TEXT CHARACTER SET utf8 NOT NULL, `data` TEXT CHARACTER SET utf8 NOT NULL, `posted` INT UNSIGNED NOT NULL, INDEX `feed_id` (`feed_id`(125)))');
- if ($query === false)
- {
- $this->mysql = null;
- }
- }
- }
-
- /**
- * Save data to the cache
- *
- * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
- * @return bool Successfulness
- */
- public function save($data)
- {
- if ($this->mysql === null)
- {
- return false;
- }
-
- if ($data instanceof SimplePie)
- {
- $data = clone $data;
-
- $prepared = self::prepare_simplepie_object_for_cache($data);
-
- $query = $this->mysql->prepare('SELECT COUNT(*) FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :feed');
- $query->bindValue(':feed', $this->id);
- if ($query->execute())
- {
- if ($query->fetchColumn() > 0)
- {
- $items = count($prepared[1]);
- if ($items)
- {
- $sql = 'UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `items` = :items, `data` = :data, `mtime` = :time WHERE `id` = :feed';
- $query = $this->mysql->prepare($sql);
- $query->bindValue(':items', $items);
- }
- else
- {
- $sql = 'UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `data` = :data, `mtime` = :time WHERE `id` = :feed';
- $query = $this->mysql->prepare($sql);
- }
-
- $query->bindValue(':data', $prepared[0]);
- $query->bindValue(':time', time());
- $query->bindValue(':feed', $this->id);
- if (!$query->execute())
- {
- return false;
- }
- }
- else
- {
- $query = $this->mysql->prepare('INSERT INTO `' . $this->options['extras']['prefix'] . 'cache_data` (`id`, `items`, `data`, `mtime`) VALUES(:feed, :count, :data, :time)');
- $query->bindValue(':feed', $this->id);
- $query->bindValue(':count', count($prepared[1]));
- $query->bindValue(':data', $prepared[0]);
- $query->bindValue(':time', time());
- if (!$query->execute())
- {
- return false;
- }
- }
-
- $ids = array_keys($prepared[1]);
- if (!empty($ids))
- {
- foreach ($ids as $id)
- {
- $database_ids[] = $this->mysql->quote($id);
- }
-
- $query = $this->mysql->prepare('SELECT `id` FROM `' . $this->options['extras']['prefix'] . 'items` WHERE `id` = ' . implode(' OR `id` = ', $database_ids) . ' AND `feed_id` = :feed');
- $query->bindValue(':feed', $this->id);
-
- if ($query->execute())
- {
- $existing_ids = array();
- while ($row = $query->fetchColumn())
- {
- $existing_ids[] = $row;
- }
-
- $new_ids = array_diff($ids, $existing_ids);
-
- foreach ($new_ids as $new_id)
- {
- if (!($date = $prepared[1][$new_id]->get_date('U')))
- {
- $date = time();
- }
-
- $query = $this->mysql->prepare('INSERT INTO `' . $this->options['extras']['prefix'] . 'items` (`feed_id`, `id`, `data`, `posted`) VALUES(:feed, :id, :data, :date)');
- $query->bindValue(':feed', $this->id);
- $query->bindValue(':id', $new_id);
- $query->bindValue(':data', serialize($prepared[1][$new_id]->data));
- $query->bindValue(':date', $date);
- if (!$query->execute())
- {
- return false;
- }
- }
- return true;
- }
- }
- else
- {
- return true;
- }
- }
- }
- else
- {
- $query = $this->mysql->prepare('SELECT `id` FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :feed');
- $query->bindValue(':feed', $this->id);
- if ($query->execute())
- {
- if ($query->rowCount() > 0)
- {
- $query = $this->mysql->prepare('UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `items` = 0, `data` = :data, `mtime` = :time WHERE `id` = :feed');
- $query->bindValue(':data', serialize($data));
- $query->bindValue(':time', time());
- $query->bindValue(':feed', $this->id);
- if ($this->execute())
- {
- return true;
- }
- }
- else
- {
- $query = $this->mysql->prepare('INSERT INTO `' . $this->options['extras']['prefix'] . 'cache_data` (`id`, `items`, `data`, `mtime`) VALUES(:id, 0, :data, :time)');
- $query->bindValue(':id', $this->id);
- $query->bindValue(':data', serialize($data));
- $query->bindValue(':time', time());
- if ($query->execute())
- {
- return true;
- }
- }
- }
- }
- return false;
- }
-
- /**
- * Retrieve the data saved to the cache
- *
- * @return array Data for SimplePie::$data
- */
- public function load()
- {
- if ($this->mysql === null)
- {
- return false;
- }
-
- $query = $this->mysql->prepare('SELECT `items`, `data` FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :id');
- $query->bindValue(':id', $this->id);
- if ($query->execute() && ($row = $query->fetch()))
- {
- $data = unserialize($row[1]);
-
- if (isset($this->options['items'][0]))
- {
- $items = (int) $this->options['items'][0];
- }
- else
- {
- $items = (int) $row[0];
- }
-
- if ($items !== 0)
- {
- if (isset($data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]))
- {
- $feed =& $data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0];
- }
- elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]))
- {
- $feed =& $data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0];
- }
- elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]))
- {
- $feed =& $data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0];
- }
- elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]))
- {
- $feed =& $data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0];
- }
- else
- {
- $feed = null;
- }
-
- if ($feed !== null)
- {
- $sql = 'SELECT `data` FROM `' . $this->options['extras']['prefix'] . 'items` WHERE `feed_id` = :feed ORDER BY `posted` DESC';
- if ($items > 0)
- {
- $sql .= ' LIMIT ' . $items;
- }
-
- $query = $this->mysql->prepare($sql);
- $query->bindValue(':feed', $this->id);
- if ($query->execute())
- {
- while ($row = $query->fetchColumn())
- {
- $feed['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry'][] = unserialize($row);
- }
- }
- else
- {
- return false;
- }
- }
- }
- return $data;
- }
- return false;
- }
-
- /**
- * Retrieve the last modified time for the cache
- *
- * @return int Timestamp
- */
- public function mtime()
- {
- if ($this->mysql === null)
- {
- return false;
- }
-
- $query = $this->mysql->prepare('SELECT `mtime` FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :id');
- $query->bindValue(':id', $this->id);
- if ($query->execute() && ($time = $query->fetchColumn()))
- {
- return $time;
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Set the last modified time to the current time
- *
- * @return bool Success status
- */
- public function touch()
- {
- if ($this->mysql === null)
- {
- return false;
- }
-
- $query = $this->mysql->prepare('UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `mtime` = :time WHERE `id` = :id');
- $query->bindValue(':time', time());
- $query->bindValue(':id', $this->id);
- if ($query->execute() && $query->rowCount() > 0)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Remove the cache
- *
- * @return bool Success status
- */
- public function unlink()
- {
- if ($this->mysql === null)
- {
- return false;
- }
-
- $query = $this->mysql->prepare('DELETE FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :id');
- $query->bindValue(':id', $this->id);
- $query2 = $this->mysql->prepare('DELETE FROM `' . $this->options['extras']['prefix'] . 'items` WHERE `feed_id` = :id');
- $query2->bindValue(':id', $this->id);
- if ($query->execute() && $query2->execute())
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-}
-
-/**
- * Used to create cache objects
- *
- * This class can be overloaded with {@see SimplePie::set_cache_class()},
- * although the preferred way is to create your own handler
- * via {@see register()}
- *
- * @package SimplePie
- * @subpackage Caching
- */
-class SimplePie_Cache
-{
- /**
- * Cache handler classes
- *
- * These receive 3 parameters to their constructor, as documented in
- * {@see register()}
- * @var array
- */
- protected static $handlers = array(
- 'mysql' => 'SimplePie_Cache_MySQL',
- 'memcache' => 'SimplePie_Cache_Memcache',
- );
-
- /**
- * Don't call the constructor. Please.
- */
- private function __construct() { }
-
- /**
- * Create a new SimplePie_Cache object
- *
- * @param string $location URL location (scheme is used to determine handler)
- * @param string $filename Unique identifier for cache object
- * @param string $extension 'spi' or 'spc'
- * @return SimplePie_Cache_Base Type of object depends on scheme of `$location`
- */
- public static function get_handler($location, $filename, $extension)
- {
- $type = explode(':', $location, 2);
- $type = $type[0];
- if (!empty(self::$handlers[$type]))
- {
- $class = self::$handlers[$type];
- return new $class($location, $filename, $extension);
- }
-
- return new SimplePie_Cache_File($location, $filename, $extension);
- }
-
- /**
- * Create a new SimplePie_Cache object
- *
- * @deprecated Use {@see get_handler} instead
- */
- public function create($location, $filename, $extension)
- {
- trigger_error('Cache::create() has been replaced with Cache::get_handler(). Switch to the registry system to use this.', E_USER_DEPRECATED);
- return self::get_handler($location, $filename, $extension);
- }
-
- /**
- * Register a handler
- *
- * @param string $type DSN type to register for
- * @param string $class Name of handler class. Must implement SimplePie_Cache_Base
- */
- public static function register($type, $class)
- {
- self::$handlers[$type] = $class;
- }
-
- /**
- * Parse a URL into an array
- *
- * @param string $url
- * @return array
- */
- public static function parse_URL($url)
- {
- $params = parse_url($url);
- $params['extras'] = array();
- if (isset($params['query']))
- {
- parse_str($params['query'], $params['extras']);
- }
- return $params;
- }
-}
-
-/**
- * Handles `<media:text>` captions as defined in Media RSS.
- *
- * Used by {@see SimplePie_Enclosure::get_caption()} and {@see SimplePie_Enclosure::get_captions()}
- *
- * This class can be overloaded with {@see SimplePie::set_caption_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Caption
-{
- /**
- * Content type
- *
- * @var string
- * @see get_type()
- */
- var $type;
-
- /**
- * Language
- *
- * @var string
- * @see get_language()
- */
- var $lang;
-
- /**
- * Start time
- *
- * @var string
- * @see get_starttime()
- */
- var $startTime;
-
- /**
- * End time
- *
- * @var string
- * @see get_endtime()
- */
- var $endTime;
-
- /**
- * Caption text
- *
- * @var string
- * @see get_text()
- */
- var $text;
-
- /**
- * Constructor, used to input the data
- *
- * For documentation on all the parameters, see the corresponding
- * properties and their accessors
- */
- public function __construct($type = null, $lang = null, $startTime = null, $endTime = null, $text = null)
- {
- $this->type = $type;
- $this->lang = $lang;
- $this->startTime = $startTime;
- $this->endTime = $endTime;
- $this->text = $text;
- }
-
- /**
- * String-ified version
- *
- * @return string
- */
- public function __toString()
- {
- // There is no $this->data here
- return md5(serialize($this));
- }
-
- /**
- * Get the end time
- *
- * @return string|null Time in the format 'hh:mm:ss.SSS'
- */
- public function get_endtime()
- {
- if ($this->endTime !== null)
- {
- return $this->endTime;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the language
- *
- * @link http://tools.ietf.org/html/rfc3066
- * @return string|null Language code as per RFC 3066
- */
- public function get_language()
- {
- if ($this->lang !== null)
- {
- return $this->lang;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the start time
- *
- * @return string|null Time in the format 'hh:mm:ss.SSS'
- */
- public function get_starttime()
- {
- if ($this->startTime !== null)
- {
- return $this->startTime;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the text of the caption
- *
- * @return string|null
- */
- public function get_text()
- {
- if ($this->text !== null)
- {
- return $this->text;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the content type (not MIME type)
- *
- * @return string|null Either 'text' or 'html'
- */
- public function get_type()
- {
- if ($this->type !== null)
- {
- return $this->type;
- }
- else
- {
- return null;
- }
- }
-}
-
-/**
- * Manages all category-related data
- *
- * Used by {@see SimplePie_Item::get_category()} and {@see SimplePie_Item::get_categories()}
- *
- * This class can be overloaded with {@see SimplePie::set_category_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Category
-{
- /**
- * Category identifier
- *
- * @var string
- * @see get_term
- */
- var $term;
-
- /**
- * Categorization scheme identifier
- *
- * @var string
- * @see get_scheme()
- */
- var $scheme;
-
- /**
- * Human readable label
- *
- * @var string
- * @see get_label()
- */
- var $label;
-
- /**
- * Constructor, used to input the data
- *
- * @param string $term
- * @param string $scheme
- * @param string $label
- */
- public function __construct($term = null, $scheme = null, $label = null)
- {
- $this->term = $term;
- $this->scheme = $scheme;
- $this->label = $label;
- }
-
- /**
- * String-ified version
- *
- * @return string
- */
- public function __toString()
- {
- // There is no $this->data here
- return md5(serialize($this));
- }
-
- /**
- * Get the category identifier
- *
- * @return string|null
- */
- public function get_term()
- {
- if ($this->term !== null)
- {
- return $this->term;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the categorization scheme identifier
- *
- * @return string|null
- */
- public function get_scheme()
- {
- if ($this->scheme !== null)
- {
- return $this->scheme;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the human readable label
- *
- * @return string|null
- */
- public function get_label()
- {
- if ($this->label !== null)
- {
- return $this->label;
- }
- else
- {
- return $this->get_term();
- }
- }
-}
-
-/**
- * Content-type sniffing
- *
- * Based on the rules in http://tools.ietf.org/html/draft-abarth-mime-sniff-06
- *
- * This is used since we can't always trust Content-Type headers, and is based
- * upon the HTML5 parsing rules.
- *
- *
- * This class can be overloaded with {@see SimplePie::set_content_type_sniffer_class()}
- *
- * @package SimplePie
- * @subpackage HTTP
- */
-class SimplePie_Content_Type_Sniffer
-{
- /**
- * File object
- *
- * @var SimplePie_File
- */
- var $file;
-
- /**
- * Create an instance of the class with the input file
- *
- * @param SimplePie_Content_Type_Sniffer $file Input file
- */
- public function __construct($file)
- {
- $this->file = $file;
- }
-
- /**
- * Get the Content-Type of the specified file
- *
- * @return string Actual Content-Type
- */
- public function get_type()
- {
- if (isset($this->file->headers['content-type']))
- {
- if (!isset($this->file->headers['content-encoding'])
- && ($this->file->headers['content-type'] === 'text/plain'
- || $this->file->headers['content-type'] === 'text/plain; charset=ISO-8859-1'
- || $this->file->headers['content-type'] === 'text/plain; charset=iso-8859-1'
- || $this->file->headers['content-type'] === 'text/plain; charset=UTF-8'))
- {
- return $this->text_or_binary();
- }
-
- if (($pos = strpos($this->file->headers['content-type'], ';')) !== false)
- {
- $official = substr($this->file->headers['content-type'], 0, $pos);
- }
- else
- {
- $official = $this->file->headers['content-type'];
- }
- $official = trim(strtolower($official));
-
- if ($official === 'unknown/unknown'
- || $official === 'application/unknown')
- {
- return $this->unknown();
- }
- elseif (substr($official, -4) === '+xml'
- || $official === 'text/xml'
- || $official === 'application/xml')
- {
- return $official;
- }
- elseif (substr($official, 0, 6) === 'image/')
- {
- if ($return = $this->image())
- {
- return $return;
- }
- else
- {
- return $official;
- }
- }
- elseif ($official === 'text/html')
- {
- return $this->feed_or_html();
- }
- else
- {
- return $official;
- }
- }
- else
- {
- return $this->unknown();
- }
- }
-
- /**
- * Sniff text or binary
- *
- * @return string Actual Content-Type
- */
- public function text_or_binary()
- {
- if (substr($this->file->body, 0, 2) === "\xFE\xFF"
- || substr($this->file->body, 0, 2) === "\xFF\xFE"
- || substr($this->file->body, 0, 4) === "\x00\x00\xFE\xFF"
- || substr($this->file->body, 0, 3) === "\xEF\xBB\xBF")
- {
- return 'text/plain';
- }
- elseif (preg_match('/[\x00-\x08\x0E-\x1A\x1C-\x1F]/', $this->file->body))
- {
- return 'application/octect-stream';
- }
- else
- {
- return 'text/plain';
- }
- }
-
- /**
- * Sniff unknown
- *
- * @return string Actual Content-Type
- */
- public function unknown()
- {
- $ws = strspn($this->file->body, "\x09\x0A\x0B\x0C\x0D\x20");
- if (strtolower(substr($this->file->body, $ws, 14)) === '<!doctype html'
- || strtolower(substr($this->file->body, $ws, 5)) === '<html'
- || strtolower(substr($this->file->body, $ws, 7)) === '<script')
- {
- return 'text/html';
- }
- elseif (substr($this->file->body, 0, 5) === '%PDF-')
- {
- return 'application/pdf';
- }
- elseif (substr($this->file->body, 0, 11) === '%!PS-Adobe-')
- {
- return 'application/postscript';
- }
- elseif (substr($this->file->body, 0, 6) === 'GIF87a'
- || substr($this->file->body, 0, 6) === 'GIF89a')
- {
- return 'image/gif';
- }
- elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
- {
- return 'image/png';
- }
- elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF")
- {
- return 'image/jpeg';
- }
- elseif (substr($this->file->body, 0, 2) === "\x42\x4D")
- {
- return 'image/bmp';
- }
- elseif (substr($this->file->body, 0, 4) === "\x00\x00\x01\x00")
- {
- return 'image/vnd.microsoft.icon';
- }
- else
- {
- return $this->text_or_binary();
- }
- }
-
- /**
- * Sniff images
- *
- * @return string Actual Content-Type
- */
- public function image()
- {
- if (substr($this->file->body, 0, 6) === 'GIF87a'
- || substr($this->file->body, 0, 6) === 'GIF89a')
- {
- return 'image/gif';
- }
- elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
- {
- return 'image/png';
- }
- elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF")
- {
- return 'image/jpeg';
- }
- elseif (substr($this->file->body, 0, 2) === "\x42\x4D")
- {
- return 'image/bmp';
- }
- elseif (substr($this->file->body, 0, 4) === "\x00\x00\x01\x00")
- {
- return 'image/vnd.microsoft.icon';
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Sniff HTML
- *
- * @return string Actual Content-Type
- */
- public function feed_or_html()
- {
- $len = strlen($this->file->body);
- $pos = strspn($this->file->body, "\x09\x0A\x0D\x20");
-
- while ($pos < $len)
- {
- switch ($this->file->body[$pos])
- {
- case "\x09":
- case "\x0A":
- case "\x0D":
- case "\x20":
- $pos += strspn($this->file->body, "\x09\x0A\x0D\x20", $pos);
- continue 2;
-
- case '<':
- $pos++;
- break;
-
- default:
- return 'text/html';
- }
-
- if (substr($this->file->body, $pos, 3) === '!--')
- {
- $pos += 3;
- if ($pos < $len && ($pos = strpos($this->file->body, '-->', $pos)) !== false)
- {
- $pos += 3;
- }
- else
- {
- return 'text/html';
- }
- }
- elseif (substr($this->file->body, $pos, 1) === '!')
- {
- if ($pos < $len && ($pos = strpos($this->file->body, '>', $pos)) !== false)
- {
- $pos++;
- }
- else
- {
- return 'text/html';
- }
- }
- elseif (substr($this->file->body, $pos, 1) === '?')
- {
- if ($pos < $len && ($pos = strpos($this->file->body, '?>', $pos)) !== false)
- {
- $pos += 2;
- }
- else
- {
- return 'text/html';
- }
- }
- elseif (substr($this->file->body, $pos, 3) === 'rss'
- || substr($this->file->body, $pos, 7) === 'rdf:RDF')
- {
- return 'application/rss+xml';
- }
- elseif (substr($this->file->body, $pos, 4) === 'feed')
- {
- return 'application/atom+xml';
- }
- else
- {
- return 'text/html';
- }
- }
-
- return 'text/html';
- }
-}
-
-/**
- * Manages `<media:copyright>` copyright tags as defined in Media RSS
- *
- * Used by {@see SimplePie_Enclosure::get_copyright()}
- *
- * This class can be overloaded with {@see SimplePie::set_copyright_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Copyright
-{
- /**
- * Copyright URL
- *
- * @var string
- * @see get_url()
- */
- var $url;
-
- /**
- * Attribution
- *
- * @var string
- * @see get_attribution()
- */
- var $label;
-
- /**
- * Constructor, used to input the data
- *
- * For documentation on all the parameters, see the corresponding
- * properties and their accessors
- */
- public function __construct($url = null, $label = null)
- {
- $this->url = $url;
- $this->label = $label;
- }
-
- /**
- * String-ified version
- *
- * @return string
- */
- public function __toString()
- {
- // There is no $this->data here
- return md5(serialize($this));
- }
-
- /**
- * Get the copyright URL
- *
- * @return string|null URL to copyright information
- */
- public function get_url()
- {
- if ($this->url !== null)
- {
- return $this->url;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the attribution text
- *
- * @return string|null
- */
- public function get_attribution()
- {
- if ($this->label !== null)
- {
- return $this->label;
- }
- else
- {
- return null;
- }
- }
-}
-
-/**
- * SimplePie class.
- *
- * Class for backward compatibility.
- *
- * @deprecated Use {@see SimplePie} directly
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Core extends SimplePie
-{
-
-}
-
-/**
- * Handles `<media:credit>` as defined in Media RSS
- *
- * Used by {@see SimplePie_Enclosure::get_credit()} and {@see SimplePie_Enclosure::get_credits()}
- *
- * This class can be overloaded with {@see SimplePie::set_credit_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Credit
-{
- /**
- * Credited role
- *
- * @var string
- * @see get_role()
- */
- var $role;
-
- /**
- * Organizational scheme
- *
- * @var string
- * @see get_scheme()
- */
- var $scheme;
-
- /**
- * Credited name
- *
- * @var string
- * @see get_name()
- */
- var $name;
-
- /**
- * Constructor, used to input the data
- *
- * For documentation on all the parameters, see the corresponding
- * properties and their accessors
- */
- public function __construct($role = null, $scheme = null, $name = null)
- {
- $this->role = $role;
- $this->scheme = $scheme;
- $this->name = $name;
- }
-
- /**
- * String-ified version
- *
- * @return string
- */
- public function __toString()
- {
- // There is no $this->data here
- return md5(serialize($this));
- }
-
- /**
- * Get the role of the person receiving credit
- *
- * @return string|null
- */
- public function get_role()
- {
- if ($this->role !== null)
- {
- return $this->role;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the organizational scheme
- *
- * @return string|null
- */
- public function get_scheme()
- {
- if ($this->scheme !== null)
- {
- return $this->scheme;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the credited person/entity's name
- *
- * @return string|null
- */
- public function get_name()
- {
- if ($this->name !== null)
- {
- return $this->name;
- }
- else
- {
- return null;
- }
- }
-}
-
-/**
- * Decode HTML Entities
- *
- * This implements HTML5 as of revision 967 (2007-06-28)
- *
- * @deprecated Use DOMDocument instead!
- * @package SimplePie
- */
-class SimplePie_Decode_HTML_Entities
-{
- /**
- * Data to be parsed
- *
- * @access private
- * @var string
- */
- var $data = '';
-
- /**
- * Currently consumed bytes
- *
- * @access private
- * @var string
- */
- var $consumed = '';
-
- /**
- * Position of the current byte being parsed
- *
- * @access private
- * @var int
- */
- var $position = 0;
-
- /**
- * Create an instance of the class with the input data
- *
- * @access public
- * @param string $data Input data
- */
- public function __construct($data)
- {
- $this->data = $data;
- }
-
- /**
- * Parse the input data
- *
- * @access public
- * @return string Output data
- */
- public function parse()
- {
- while (($this->position = strpos($this->data, '&', $this->position)) !== false)
- {
- $this->consume();
- $this->entity();
- $this->consumed = '';
- }
- return $this->data;
- }
-
- /**
- * Consume the next byte
- *
- * @access private
- * @return mixed The next byte, or false, if there is no more data
- */
- public function consume()
- {
- if (isset($this->data[$this->position]))
- {
- $this->consumed .= $this->data[$this->position];
- return $this->data[$this->position++];
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Consume a range of characters
- *
- * @access private
- * @param string $chars Characters to consume
- * @return mixed A series of characters that match the range, or false
- */
- public function consume_range($chars)
- {
- if ($len = strspn($this->data, $chars, $this->position))
- {
- $data = substr($this->data, $this->position, $len);
- $this->consumed .= $data;
- $this->position += $len;
- return $data;
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Unconsume one byte
- *
- * @access private
- */
- public function unconsume()
- {
- $this->consumed = substr($this->consumed, 0, -1);
- $this->position--;
- }
-
- /**
- * Decode an entity
- *
- * @access private
- */
- public function entity()
- {
- switch ($this->consume())
- {
- case "\x09":
- case "\x0A":
- case "\x0B":
- case "\x0B":
- case "\x0C":
- case "\x20":
- case "\x3C":
- case "\x26":
- case false:
- break;
-
- case "\x23":
- switch ($this->consume())
- {
- case "\x78":
- case "\x58":
- $range = '0123456789ABCDEFabcdef';
- $hex = true;
- break;
-
- default:
- $range = '0123456789';
- $hex = false;
- $this->unconsume();
- break;
- }
-
- if ($codepoint = $this->consume_range($range))
- {
- static $windows_1252_specials = array(0x0D => "\x0A", 0x80 => "\xE2\x82\xAC", 0x81 => "\xEF\xBF\xBD", 0x82 => "\xE2\x80\x9A", 0x83 => "\xC6\x92", 0x84 => "\xE2\x80\x9E", 0x85 => "\xE2\x80\xA6", 0x86 => "\xE2\x80\xA0", 0x87 => "\xE2\x80\xA1", 0x88 => "\xCB\x86", 0x89 => "\xE2\x80\xB0", 0x8A => "\xC5\xA0", 0x8B => "\xE2\x80\xB9", 0x8C => "\xC5\x92", 0x8D => "\xEF\xBF\xBD", 0x8E => "\xC5\xBD", 0x8F => "\xEF\xBF\xBD", 0x90 => "\xEF\xBF\xBD", 0x91 => "\xE2\x80\x98", 0x92 => "\xE2\x80\x99", 0x93 => "\xE2\x80\x9C", 0x94 => "\xE2\x80\x9D", 0x95 => "\xE2\x80\xA2", 0x96 => "\xE2\x80\x93", 0x97 => "\xE2\x80\x94", 0x98 => "\xCB\x9C", 0x99 => "\xE2\x84\xA2", 0x9A => "\xC5\xA1", 0x9B => "\xE2\x80\xBA", 0x9C => "\xC5\x93", 0x9D => "\xEF\xBF\xBD", 0x9E => "\xC5\xBE", 0x9F => "\xC5\xB8");
-
- if ($hex)
- {
- $codepoint = hexdec($codepoint);
- }
- else
- {
- $codepoint = intval($codepoint);
- }
-
- if (isset($windows_1252_specials[$codepoint]))
- {
- $replacement = $windows_1252_specials[$codepoint];
- }
- else
- {
- $replacement = SimplePie_Misc::codepoint_to_utf8($codepoint);
- }
-
- if (!in_array($this->consume(), array(';', false), true))
- {
- $this->unconsume();
- }
-
- $consumed_length = strlen($this->consumed);
- $this->data = substr_replace($this->data, $replacement, $this->position - $consumed_length, $consumed_length);
- $this->position += strlen($replacement) - $consumed_length;
- }
- break;
-
- default:
- static $entities = array(
- 'Aacute' => "\xC3\x81",
- 'aacute' => "\xC3\xA1",
- 'Aacute;' => "\xC3\x81",
- 'aacute;' => "\xC3\xA1",
- 'Acirc' => "\xC3\x82",
- 'acirc' => "\xC3\xA2",
- 'Acirc;' => "\xC3\x82",
- 'acirc;' => "\xC3\xA2",
- 'acute' => "\xC2\xB4",
- 'acute;' => "\xC2\xB4",
- 'AElig' => "\xC3\x86",
- 'aelig' => "\xC3\xA6",
- 'AElig;' => "\xC3\x86",
- 'aelig;' => "\xC3\xA6",
- 'Agrave' => "\xC3\x80",
- 'agrave' => "\xC3\xA0",
- 'Agrave;' => "\xC3\x80",
- 'agrave;' => "\xC3\xA0",
- 'alefsym;' => "\xE2\x84\xB5",
- 'Alpha;' => "\xCE\x91",
- 'alpha;' => "\xCE\xB1",
- 'AMP' => "\x26",
- 'amp' => "\x26",
- 'AMP;' => "\x26",
- 'amp;' => "\x26",
- 'and;' => "\xE2\x88\xA7",
- 'ang;' => "\xE2\x88\xA0",
- 'apos;' => "\x27",
- 'Aring' => "\xC3\x85",
- 'aring' => "\xC3\xA5",
- 'Aring;' => "\xC3\x85",
- 'aring;' => "\xC3\xA5",
- 'asymp;' => "\xE2\x89\x88",
- 'Atilde' => "\xC3\x83",
- 'atilde' => "\xC3\xA3",
- 'Atilde;' => "\xC3\x83",
- 'atilde;' => "\xC3\xA3",
- 'Auml' => "\xC3\x84",
- 'auml' => "\xC3\xA4",
- 'Auml;' => "\xC3\x84",
- 'auml;' => "\xC3\xA4",
- 'bdquo;' => "\xE2\x80\x9E",
- 'Beta;' => "\xCE\x92",
- 'beta;' => "\xCE\xB2",
- 'brvbar' => "\xC2\xA6",
- 'brvbar;' => "\xC2\xA6",
- 'bull;' => "\xE2\x80\xA2",
- 'cap;' => "\xE2\x88\xA9",
- 'Ccedil' => "\xC3\x87",
- 'ccedil' => "\xC3\xA7",
- 'Ccedil;' => "\xC3\x87",
- 'ccedil;' => "\xC3\xA7",
- 'cedil' => "\xC2\xB8",
- 'cedil;' => "\xC2\xB8",
- 'cent' => "\xC2\xA2",
- 'cent;' => "\xC2\xA2",
- 'Chi;' => "\xCE\xA7",
- 'chi;' => "\xCF\x87",
- 'circ;' => "\xCB\x86",
- 'clubs;' => "\xE2\x99\xA3",
- 'cong;' => "\xE2\x89\x85",
- 'COPY' => "\xC2\xA9",
- 'copy' => "\xC2\xA9",
- 'COPY;' => "\xC2\xA9",
- 'copy;' => "\xC2\xA9",
- 'crarr;' => "\xE2\x86\xB5",
- 'cup;' => "\xE2\x88\xAA",
- 'curren' => "\xC2\xA4",
- 'curren;' => "\xC2\xA4",
- 'Dagger;' => "\xE2\x80\xA1",
- 'dagger;' => "\xE2\x80\xA0",
- 'dArr;' => "\xE2\x87\x93",
- 'darr;' => "\xE2\x86\x93",
- 'deg' => "\xC2\xB0",
- 'deg;' => "\xC2\xB0",
- 'Delta;' => "\xCE\x94",
- 'delta;' => "\xCE\xB4",
- 'diams;' => "\xE2\x99\xA6",
- 'divide' => "\xC3\xB7",
- 'divide;' => "\xC3\xB7",
- 'Eacute' => "\xC3\x89",
- 'eacute' => "\xC3\xA9",
- 'Eacute;' => "\xC3\x89",
- 'eacute;' => "\xC3\xA9",
- 'Ecirc' => "\xC3\x8A",
- 'ecirc' => "\xC3\xAA",
- 'Ecirc;' => "\xC3\x8A",
- 'ecirc;' => "\xC3\xAA",
- 'Egrave' => "\xC3\x88",
- 'egrave' => "\xC3\xA8",
- 'Egrave;' => "\xC3\x88",
- 'egrave;' => "\xC3\xA8",
- 'empty;' => "\xE2\x88\x85",
- 'emsp;' => "\xE2\x80\x83",
- 'ensp;' => "\xE2\x80\x82",
- 'Epsilon;' => "\xCE\x95",
- 'epsilon;' => "\xCE\xB5",
- 'equiv;' => "\xE2\x89\xA1",
- 'Eta;' => "\xCE\x97",
- 'eta;' => "\xCE\xB7",
- 'ETH' => "\xC3\x90",
- 'eth' => "\xC3\xB0",
- 'ETH;' => "\xC3\x90",
- 'eth;' => "\xC3\xB0",
- 'Euml' => "\xC3\x8B",
- 'euml' => "\xC3\xAB",
- 'Euml;' => "\xC3\x8B",
- 'euml;' => "\xC3\xAB",
- 'euro;' => "\xE2\x82\xAC",
- 'exist;' => "\xE2\x88\x83",
- 'fnof;' => "\xC6\x92",
- 'forall;' => "\xE2\x88\x80",
- 'frac12' => "\xC2\xBD",
- 'frac12;' => "\xC2\xBD",
- 'frac14' => "\xC2\xBC",
- 'frac14;' => "\xC2\xBC",
- 'frac34' => "\xC2\xBE",
- 'frac34;' => "\xC2\xBE",
- 'frasl;' => "\xE2\x81\x84",
- 'Gamma;' => "\xCE\x93",
- 'gamma;' => "\xCE\xB3",
- 'ge;' => "\xE2\x89\xA5",
- 'GT' => "\x3E",
- 'gt' => "\x3E",
- 'GT;' => "\x3E",
- 'gt;' => "\x3E",
- 'hArr;' => "\xE2\x87\x94",
- 'harr;' => "\xE2\x86\x94",
- 'hearts;' => "\xE2\x99\xA5",
- 'hellip;' => "\xE2\x80\xA6",
- 'Iacute' => "\xC3\x8D",
- 'iacute' => "\xC3\xAD",
- 'Iacute;' => "\xC3\x8D",
- 'iacute;' => "\xC3\xAD",
- 'Icirc' => "\xC3\x8E",
- 'icirc' => "\xC3\xAE",
- 'Icirc;' => "\xC3\x8E",
- 'icirc;' => "\xC3\xAE",
- 'iexcl' => "\xC2\xA1",
- 'iexcl;' => "\xC2\xA1",
- 'Igrave' => "\xC3\x8C",
- 'igrave' => "\xC3\xAC",
- 'Igrave;' => "\xC3\x8C",
- 'igrave;' => "\xC3\xAC",
- 'image;' => "\xE2\x84\x91",
- 'infin;' => "\xE2\x88\x9E",
- 'int;' => "\xE2\x88\xAB",
- 'Iota;' => "\xCE\x99",
- 'iota;' => "\xCE\xB9",
- 'iquest' => "\xC2\xBF",
- 'iquest;' => "\xC2\xBF",
- 'isin;' => "\xE2\x88\x88",
- 'Iuml' => "\xC3\x8F",
- 'iuml' => "\xC3\xAF",
- 'Iuml;' => "\xC3\x8F",
- 'iuml;' => "\xC3\xAF",
- 'Kappa;' => "\xCE\x9A",
- 'kappa;' => "\xCE\xBA",
- 'Lambda;' => "\xCE\x9B",
- 'lambda;' => "\xCE\xBB",
- 'lang;' => "\xE3\x80\x88",
- 'laquo' => "\xC2\xAB",
- 'laquo;' => "\xC2\xAB",
- 'lArr;' => "\xE2\x87\x90",
- 'larr;' => "\xE2\x86\x90",
- 'lceil;' => "\xE2\x8C\x88",
- 'ldquo;' => "\xE2\x80\x9C",
- 'le;' => "\xE2\x89\xA4",
- 'lfloor;' => "\xE2\x8C\x8A",
- 'lowast;' => "\xE2\x88\x97",
- 'loz;' => "\xE2\x97\x8A",
- 'lrm;' => "\xE2\x80\x8E",
- 'lsaquo;' => "\xE2\x80\xB9",
- 'lsquo;' => "\xE2\x80\x98",
- 'LT' => "\x3C",
- 'lt' => "\x3C",
- 'LT;' => "\x3C",
- 'lt;' => "\x3C",
- 'macr' => "\xC2\xAF",
- 'macr;' => "\xC2\xAF",
- 'mdash;' => "\xE2\x80\x94",
- 'micro' => "\xC2\xB5",
- 'micro;' => "\xC2\xB5",
- 'middot' => "\xC2\xB7",
- 'middot;' => "\xC2\xB7",
- 'minus;' => "\xE2\x88\x92",
- 'Mu;' => "\xCE\x9C",
- 'mu;' => "\xCE\xBC",
- 'nabla;' => "\xE2\x88\x87",
- 'nbsp' => "\xC2\xA0",
- 'nbsp;' => "\xC2\xA0",
- 'ndash;' => "\xE2\x80\x93",
- 'ne;' => "\xE2\x89\xA0",
- 'ni;' => "\xE2\x88\x8B",
- 'not' => "\xC2\xAC",
- 'not;' => "\xC2\xAC",
- 'notin;' => "\xE2\x88\x89",
- 'nsub;' => "\xE2\x8A\x84",
- 'Ntilde' => "\xC3\x91",
- 'ntilde' => "\xC3\xB1",
- 'Ntilde;' => "\xC3\x91",
- 'ntilde;' => "\xC3\xB1",
- 'Nu;' => "\xCE\x9D",
- 'nu;' => "\xCE\xBD",
- 'Oacute' => "\xC3\x93",
- 'oacute' => "\xC3\xB3",
- 'Oacute;' => "\xC3\x93",
- 'oacute;' => "\xC3\xB3",
- 'Ocirc' => "\xC3\x94",
- 'ocirc' => "\xC3\xB4",
- 'Ocirc;' => "\xC3\x94",
- 'ocirc;' => "\xC3\xB4",
- 'OElig;' => "\xC5\x92",
- 'oelig;' => "\xC5\x93",
- 'Ograve' => "\xC3\x92",
- 'ograve' => "\xC3\xB2",
- 'Ograve;' => "\xC3\x92",
- 'ograve;' => "\xC3\xB2",
- 'oline;' => "\xE2\x80\xBE",
- 'Omega;' => "\xCE\xA9",
- 'omega;' => "\xCF\x89",
- 'Omicron;' => "\xCE\x9F",
- 'omicron;' => "\xCE\xBF",
- 'oplus;' => "\xE2\x8A\x95",
- 'or;' => "\xE2\x88\xA8",
- 'ordf' => "\xC2\xAA",
- 'ordf;' => "\xC2\xAA",
- 'ordm' => "\xC2\xBA",
- 'ordm;' => "\xC2\xBA",
- 'Oslash' => "\xC3\x98",
- 'oslash' => "\xC3\xB8",
- 'Oslash;' => "\xC3\x98",
- 'oslash;' => "\xC3\xB8",
- 'Otilde' => "\xC3\x95",
- 'otilde' => "\xC3\xB5",
- 'Otilde;' => "\xC3\x95",
- 'otilde;' => "\xC3\xB5",
- 'otimes;' => "\xE2\x8A\x97",
- 'Ouml' => "\xC3\x96",
- 'ouml' => "\xC3\xB6",
- 'Ouml;' => "\xC3\x96",
- 'ouml;' => "\xC3\xB6",
- 'para' => "\xC2\xB6",
- 'para;' => "\xC2\xB6",
- 'part;' => "\xE2\x88\x82",
- 'permil;' => "\xE2\x80\xB0",
- 'perp;' => "\xE2\x8A\xA5",
- 'Phi;' => "\xCE\xA6",
- 'phi;' => "\xCF\x86",
- 'Pi;' => "\xCE\xA0",
- 'pi;' => "\xCF\x80",
- 'piv;' => "\xCF\x96",
- 'plusmn' => "\xC2\xB1",
- 'plusmn;' => "\xC2\xB1",
- 'pound' => "\xC2\xA3",
- 'pound;' => "\xC2\xA3",
- 'Prime;' => "\xE2\x80\xB3",
- 'prime;' => "\xE2\x80\xB2",
- 'prod;' => "\xE2\x88\x8F",
- 'prop;' => "\xE2\x88\x9D",
- 'Psi;' => "\xCE\xA8",
- 'psi;' => "\xCF\x88",
- 'QUOT' => "\x22",
- 'quot' => "\x22",
- 'QUOT;' => "\x22",
- 'quot;' => "\x22",
- 'radic;' => "\xE2\x88\x9A",
- 'rang;' => "\xE3\x80\x89",
- 'raquo' => "\xC2\xBB",
- 'raquo;' => "\xC2\xBB",
- 'rArr;' => "\xE2\x87\x92",
- 'rarr;' => "\xE2\x86\x92",
- 'rceil;' => "\xE2\x8C\x89",
- 'rdquo;' => "\xE2\x80\x9D",
- 'real;' => "\xE2\x84\x9C",
- 'REG' => "\xC2\xAE",
- 'reg' => "\xC2\xAE",
- 'REG;' => "\xC2\xAE",
- 'reg;' => "\xC2\xAE",
- 'rfloor;' => "\xE2\x8C\x8B",
- 'Rho;' => "\xCE\xA1",
- 'rho;' => "\xCF\x81",
- 'rlm;' => "\xE2\x80\x8F",
- 'rsaquo;' => "\xE2\x80\xBA",
- 'rsquo;' => "\xE2\x80\x99",
- 'sbquo;' => "\xE2\x80\x9A",
- 'Scaron;' => "\xC5\xA0",
- 'scaron;' => "\xC5\xA1",
- 'sdot;' => "\xE2\x8B\x85",
- 'sect' => "\xC2\xA7",
- 'sect;' => "\xC2\xA7",
- 'shy' => "\xC2\xAD",
- 'shy;' => "\xC2\xAD",
- 'Sigma;' => "\xCE\xA3",
- 'sigma;' => "\xCF\x83",
- 'sigmaf;' => "\xCF\x82",
- 'sim;' => "\xE2\x88\xBC",
- 'spades;' => "\xE2\x99\xA0",
- 'sub;' => "\xE2\x8A\x82",
- 'sube;' => "\xE2\x8A\x86",
- 'sum;' => "\xE2\x88\x91",
- 'sup;' => "\xE2\x8A\x83",
- 'sup1' => "\xC2\xB9",
- 'sup1;' => "\xC2\xB9",
- 'sup2' => "\xC2\xB2",
- 'sup2;' => "\xC2\xB2",
- 'sup3' => "\xC2\xB3",
- 'sup3;' => "\xC2\xB3",
- 'supe;' => "\xE2\x8A\x87",
- 'szlig' => "\xC3\x9F",
- 'szlig;' => "\xC3\x9F",
- 'Tau;' => "\xCE\xA4",
- 'tau;' => "\xCF\x84",
- 'there4;' => "\xE2\x88\xB4",
- 'Theta;' => "\xCE\x98",
- 'theta;' => "\xCE\xB8",
- 'thetasym;' => "\xCF\x91",
- 'thinsp;' => "\xE2\x80\x89",
- 'THORN' => "\xC3\x9E",
- 'thorn' => "\xC3\xBE",
- 'THORN;' => "\xC3\x9E",
- 'thorn;' => "\xC3\xBE",
- 'tilde;' => "\xCB\x9C",
- 'times' => "\xC3\x97",
- 'times;' => "\xC3\x97",
- 'TRADE;' => "\xE2\x84\xA2",
- 'trade;' => "\xE2\x84\xA2",
- 'Uacute' => "\xC3\x9A",
- 'uacute' => "\xC3\xBA",
- 'Uacute;' => "\xC3\x9A",
- 'uacute;' => "\xC3\xBA",
- 'uArr;' => "\xE2\x87\x91",
- 'uarr;' => "\xE2\x86\x91",
- 'Ucirc' => "\xC3\x9B",
- 'ucirc' => "\xC3\xBB",
- 'Ucirc;' => "\xC3\x9B",
- 'ucirc;' => "\xC3\xBB",
- 'Ugrave' => "\xC3\x99",
- 'ugrave' => "\xC3\xB9",
- 'Ugrave;' => "\xC3\x99",
- 'ugrave;' => "\xC3\xB9",
- 'uml' => "\xC2\xA8",
- 'uml;' => "\xC2\xA8",
- 'upsih;' => "\xCF\x92",
- 'Upsilon;' => "\xCE\xA5",
- 'upsilon;' => "\xCF\x85",
- 'Uuml' => "\xC3\x9C",
- 'uuml' => "\xC3\xBC",
- 'Uuml;' => "\xC3\x9C",
- 'uuml;' => "\xC3\xBC",
- 'weierp;' => "\xE2\x84\x98",
- 'Xi;' => "\xCE\x9E",
- 'xi;' => "\xCE\xBE",
- 'Yacute' => "\xC3\x9D",
- 'yacute' => "\xC3\xBD",
- 'Yacute;' => "\xC3\x9D",
- 'yacute;' => "\xC3\xBD",
- 'yen' => "\xC2\xA5",
- 'yen;' => "\xC2\xA5",
- 'yuml' => "\xC3\xBF",
- 'Yuml;' => "\xC5\xB8",
- 'yuml;' => "\xC3\xBF",
- 'Zeta;' => "\xCE\x96",
- 'zeta;' => "\xCE\xB6",
- 'zwj;' => "\xE2\x80\x8D",
- 'zwnj;' => "\xE2\x80\x8C"
- );
-
- for ($i = 0, $match = null; $i < 9 && $this->consume() !== false; $i++)
- {
- $consumed = substr($this->consumed, 1);
- if (isset($entities[$consumed]))
- {
- $match = $consumed;
- }
- }
-
- if ($match !== null)
- {
- $this->data = substr_replace($this->data, $entities[$match], $this->position - strlen($consumed) - 1, strlen($match) + 1);
- $this->position += strlen($entities[$match]) - strlen($consumed) - 1;
- }
- break;
- }
- }
-}
-
-/**
- * Handles everything related to enclosures (including Media RSS and iTunes RSS)
- *
- * Used by {@see SimplePie_Item::get_enclosure()} and {@see SimplePie_Item::get_enclosures()}
- *
- * This class can be overloaded with {@see SimplePie::set_enclosure_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Enclosure
-{
- /**
- * @var string
- * @see get_bitrate()
- */
- var $bitrate;
-
- /**
- * @var array
- * @see get_captions()
- */
- var $captions;
-
- /**
- * @var array
- * @see get_categories()
- */
- var $categories;
-
- /**
- * @var int
- * @see get_channels()
- */
- var $channels;
-
- /**
- * @var SimplePie_Copyright
- * @see get_copyright()
- */
- var $copyright;
-
- /**
- * @var array
- * @see get_credits()
- */
- var $credits;
-
- /**
- * @var string
- * @see get_description()
- */
- var $description;
-
- /**
- * @var int
- * @see get_duration()
- */
- var $duration;
-
- /**
- * @var string
- * @see get_expression()
- */
- var $expression;
-
- /**
- * @var string
- * @see get_framerate()
- */
- var $framerate;
-
- /**
- * @var string
- * @see get_handler()
- */
- var $handler;
-
- /**
- * @var array
- * @see get_hashes()
- */
- var $hashes;
-
- /**
- * @var string
- * @see get_height()
- */
- var $height;
-
- /**
- * @deprecated
- * @var null
- */
- var $javascript;
-
- /**
- * @var array
- * @see get_keywords()
- */
- var $keywords;
-
- /**
- * @var string
- * @see get_language()
- */
- var $lang;
-
- /**
- * @var string
- * @see get_length()
- */
- var $length;
-
- /**
- * @var string
- * @see get_link()
- */
- var $link;
-
- /**
- * @var string
- * @see get_medium()
- */
- var $medium;
-
- /**
- * @var string
- * @see get_player()
- */
- var $player;
-
- /**
- * @var array
- * @see get_ratings()
- */
- var $ratings;
-
- /**
- * @var array
- * @see get_restrictions()
- */
- var $restrictions;
-
- /**
- * @var string
- * @see get_sampling_rate()
- */
- var $samplingrate;
-
- /**
- * @var array
- * @see get_thumbnails()
- */
- var $thumbnails;
-
- /**
- * @var string
- * @see get_title()
- */
- var $title;
-
- /**
- * @var string
- * @see get_type()
- */
- var $type;
-
- /**
- * @var string
- * @see get_width()
- */
- var $width;
-
- /**
- * Constructor, used to input the data
- *
- * For documentation on all the parameters, see the corresponding
- * properties and their accessors
- *
- * @uses idna_convert If available, this will convert an IDN
- */
- public function __construct($link = null, $type = null, $length = null, $javascript = null, $bitrate = null, $captions = null, $categories = null, $channels = null, $copyright = null, $credits = null, $description = null, $duration = null, $expression = null, $framerate = null, $hashes = null, $height = null, $keywords = null, $lang = null, $medium = null, $player = null, $ratings = null, $restrictions = null, $samplingrate = null, $thumbnails = null, $title = null, $width = null)
- {
- $this->bitrate = $bitrate;
- $this->captions = $captions;
- $this->categories = $categories;
- $this->channels = $channels;
- $this->copyright = $copyright;
- $this->credits = $credits;
- $this->description = $description;
- $this->duration = $duration;
- $this->expression = $expression;
- $this->framerate = $framerate;
- $this->hashes = $hashes;
- $this->height = $height;
- $this->keywords = $keywords;
- $this->lang = $lang;
- $this->length = $length;
- $this->link = $link;
- $this->medium = $medium;
- $this->player = $player;
- $this->ratings = $ratings;
- $this->restrictions = $restrictions;
- $this->samplingrate = $samplingrate;
- $this->thumbnails = $thumbnails;
- $this->title = $title;
- $this->type = $type;
- $this->width = $width;
-
- if (class_exists('idna_convert'))
- {
- $idn = new idna_convert();
- $parsed = SimplePie_Misc::parse_url($link);
- $this->link = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
- }
- $this->handler = $this->get_handler(); // Needs to load last
- }
-
- /**
- * String-ified version
- *
- * @return string
- */
- public function __toString()
- {
- // There is no $this->data here
- return md5(serialize($this));
- }
-
- /**
- * Get the bitrate
- *
- * @return string|null
- */
- public function get_bitrate()
- {
- if ($this->bitrate !== null)
- {
- return $this->bitrate;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a single caption
- *
- * @param int $key
- * @return SimplePie_Caption|null
- */
- public function get_caption($key = 0)
- {
- $captions = $this->get_captions();
- if (isset($captions[$key]))
- {
- return $captions[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all captions
- *
- * @return array|null Array of {@see SimplePie_Caption} objects
- */
- public function get_captions()
- {
- if ($this->captions !== null)
- {
- return $this->captions;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a single category
- *
- * @param int $key
- * @return SimplePie_Category|null
- */
- public function get_category($key = 0)
- {
- $categories = $this->get_categories();
- if (isset($categories[$key]))
- {
- return $categories[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all categories
- *
- * @return array|null Array of {@see SimplePie_Category} objects
- */
- public function get_categories()
- {
- if ($this->categories !== null)
- {
- return $this->categories;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the number of audio channels
- *
- * @return int|null
- */
- public function get_channels()
- {
- if ($this->channels !== null)
- {
- return $this->channels;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the copyright information
- *
- * @return SimplePie_Copyright|null
- */
- public function get_copyright()
- {
- if ($this->copyright !== null)
- {
- return $this->copyright;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a single credit
- *
- * @param int $key
- * @return SimplePie_Credit|null
- */
- public function get_credit($key = 0)
- {
- $credits = $this->get_credits();
- if (isset($credits[$key]))
- {
- return $credits[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all credits
- *
- * @return array|null Array of {@see SimplePie_Credit} objects
- */
- public function get_credits()
- {
- if ($this->credits !== null)
- {
- return $this->credits;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the description of the enclosure
- *
- * @return string|null
- */
- public function get_description()
- {
- if ($this->description !== null)
- {
- return $this->description;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the duration of the enclosure
- *
- * @param string $convert Convert seconds into hh:mm:ss
- * @return string|int|null 'hh:mm:ss' string if `$convert` was specified, otherwise integer (or null if none found)
- */
- public function get_duration($convert = false)
- {
- if ($this->duration !== null)
- {
- if ($convert)
- {
- $time = SimplePie_Misc::time_hms($this->duration);
- return $time;
- }
- else
- {
- return $this->duration;
- }
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the expression
- *
- * @return string Probably one of 'sample', 'full', 'nonstop', 'clip'. Defaults to 'full'
- */
- public function get_expression()
- {
- if ($this->expression !== null)
- {
- return $this->expression;
- }
- else
- {
- return 'full';
- }
- }
-
- /**
- * Get the file extension
- *
- * @return string|null
- */
- public function get_extension()
- {
- if ($this->link !== null)
- {
- $url = SimplePie_Misc::parse_url($this->link);
- if ($url['path'] !== '')
- {
- return pathinfo($url['path'], PATHINFO_EXTENSION);
- }
- }
- return null;
- }
-
- /**
- * Get the framerate (in frames-per-second)
- *
- * @return string|null
- */
- public function get_framerate()
- {
- if ($this->framerate !== null)
- {
- return $this->framerate;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the preferred handler
- *
- * @return string|null One of 'flash', 'fmedia', 'quicktime', 'wmedia', 'mp3'
- */
- public function get_handler()
- {
- return $this->get_real_type(true);
- }
-
- /**
- * Get a single hash
- *
- * @link http://www.rssboard.org/media-rss#media-hash
- * @param int $key
- * @return string|null Hash as per `media:hash`, prefixed with "$algo:"
- */
- public function get_hash($key = 0)
- {
- $hashes = $this->get_hashes();
- if (isset($hashes[$key]))
- {
- return $hashes[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all credits
- *
- * @return array|null Array of strings, see {@see get_hash()}
- */
- public function get_hashes()
- {
- if ($this->hashes !== null)
- {
- return $this->hashes;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the height
- *
- * @return string|null
- */
- public function get_height()
- {
- if ($this->height !== null)
- {
- return $this->height;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the language
- *
- * @link http://tools.ietf.org/html/rfc3066
- * @return string|null Language code as per RFC 3066
- */
- public function get_language()
- {
- if ($this->lang !== null)
- {
- return $this->lang;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a single keyword
- *
- * @param int $key
- * @return string|null
- */
- public function get_keyword($key = 0)
- {
- $keywords = $this->get_keywords();
- if (isset($keywords[$key]))
- {
- return $keywords[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all keywords
- *
- * @return array|null Array of strings
- */
- public function get_keywords()
- {
- if ($this->keywords !== null)
- {
- return $this->keywords;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get length
- *
- * @return float Length in bytes
- */
- public function get_length()
- {
- if ($this->length !== null)
- {
- return $this->length;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the URL
- *
- * @return string|null
- */
- public function get_link()
- {
- if ($this->link !== null)
- {
- return urldecode($this->link);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the medium
- *
- * @link http://www.rssboard.org/media-rss#media-content
- * @return string|null Should be one of 'image', 'audio', 'video', 'document', 'executable'
- */
- public function get_medium()
- {
- if ($this->medium !== null)
- {
- return $this->medium;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the player URL
- *
- * Typically the same as {@see get_permalink()}
- * @return string|null Player URL
- */
- public function get_player()
- {
- if ($this->player !== null)
- {
- return $this->player;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a single rating
- *
- * @param int $key
- * @return SimplePie_Rating|null
- */
- public function get_rating($key = 0)
- {
- $ratings = $this->get_ratings();
- if (isset($ratings[$key]))
- {
- return $ratings[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all ratings
- *
- * @return array|null Array of {@see SimplePie_Rating} objects
- */
- public function get_ratings()
- {
- if ($this->ratings !== null)
- {
- return $this->ratings;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a single restriction
- *
- * @param int $key
- * @return SimplePie_Restriction|null
- */
- public function get_restriction($key = 0)
- {
- $restrictions = $this->get_restrictions();
- if (isset($restrictions[$key]))
- {
- return $restrictions[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all restrictions
- *
- * @return array|null Array of {@see SimplePie_Restriction} objects
- */
- public function get_restrictions()
- {
- if ($this->restrictions !== null)
- {
- return $this->restrictions;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the sampling rate (in kHz)
- *
- * @return string|null
- */
- public function get_sampling_rate()
- {
- if ($this->samplingrate !== null)
- {
- return $this->samplingrate;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the file size (in MiB)
- *
- * @return float|null File size in mebibytes (1048 bytes)
- */
- public function get_size()
- {
- $length = $this->get_length();
- if ($length !== null)
- {
- return round($length/1048576, 2);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a single thumbnail
- *
- * @param int $key
- * @return string|null Thumbnail URL
- */
- public function get_thumbnail($key = 0)
- {
- $thumbnails = $this->get_thumbnails();
- if (isset($thumbnails[$key]))
- {
- return $thumbnails[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all thumbnails
- *
- * @return array|null Array of thumbnail URLs
- */
- public function get_thumbnails()
- {
- if ($this->thumbnails !== null)
- {
- return $this->thumbnails;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the title
- *
- * @return string|null
- */
- public function get_title()
- {
- if ($this->title !== null)
- {
- return $this->title;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get mimetype of the enclosure
- *
- * @see get_real_type()
- * @return string|null MIME type
- */
- public function get_type()
- {
- if ($this->type !== null)
- {
- return $this->type;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the width
- *
- * @return string|null
- */
- public function get_width()
- {
- if ($this->width !== null)
- {
- return $this->width;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Embed the enclosure using `<embed>`
- *
- * @deprecated Use the second parameter to {@see embed} instead
- *
- * @param array|string $options See first paramter to {@see embed}
- * @return string HTML string to output
- */
- public function native_embed($options='')
- {
- return $this->embed($options, true);
- }
-
- /**
- * Embed the enclosure using Javascript
- *
- * `$options` is an array or comma-separated key:value string, with the
- * following properties:
- *
- * - `alt` (string): Alternate content for when an end-user does not have
- * the appropriate handler installed or when a file type is
- * unsupported. Can be any text or HTML. Defaults to blank.
- * - `altclass` (string): If a file type is unsupported, the end-user will
- * see the alt text (above) linked directly to the content. That link
- * will have this value as its class name. Defaults to blank.
- * - `audio` (string): This is an image that should be used as a
- * placeholder for audio files before they're loaded (QuickTime-only).
- * Can be any relative or absolute URL. Defaults to blank.
- * - `bgcolor` (string): The background color for the media, if not
- * already transparent. Defaults to `#ffffff`.
- * - `height` (integer): The height of the embedded media. Accepts any
- * numeric pixel value (such as `360`) or `auto`. Defaults to `auto`,
- * and it is recommended that you use this default.
- * - `loop` (boolean): Do you want the media to loop when its done?
- * Defaults to `false`.
- * - `mediaplayer` (string): The location of the included
- * `mediaplayer.swf` file. This allows for the playback of Flash Video
- * (`.flv`) files, and is the default handler for non-Odeo MP3's.
- * Defaults to blank.
- * - `video` (string): This is an image that should be used as a
- * placeholder for video files before they're loaded (QuickTime-only).
- * Can be any relative or absolute URL. Defaults to blank.
- * - `width` (integer): The width of the embedded media. Accepts any
- * numeric pixel value (such as `480`) or `auto`. Defaults to `auto`,
- * and it is recommended that you use this default.
- * - `widescreen` (boolean): Is the enclosure widescreen or standard?
- * This applies only to video enclosures, and will automatically resize
- * the content appropriately. Defaults to `false`, implying 4:3 mode.
- *
- * Note: Non-widescreen (4:3) mode with `width` and `height` set to `auto`
- * will default to 480x360 video resolution. Widescreen (16:9) mode with
- * `width` and `height` set to `auto` will default to 480x270 video resolution.
- *
- * @todo If the dimensions for media:content are defined, use them when width/height are set to 'auto'.
- * @param array|string $options Comma-separated key:value list, or array
- * @param bool $native Use `<embed>`
- * @return string HTML string to output
- */
- public function embed($options = '', $native = false)
- {
- // Set up defaults
- $audio = '';
- $video = '';
- $alt = '';
- $altclass = '';
- $loop = 'false';
- $width = 'auto';
- $height = 'auto';
- $bgcolor = '#ffffff';
- $mediaplayer = '';
- $widescreen = false;
- $handler = $this->get_handler();
- $type = $this->get_real_type();
-
- // Process options and reassign values as necessary
- if (is_array($options))
- {
- extract($options);
- }
- else
- {
- $options = explode(',', $options);
- foreach($options as $option)
- {
- $opt = explode(':', $option, 2);
- if (isset($opt[0], $opt[1]))
- {
- $opt[0] = trim($opt[0]);
- $opt[1] = trim($opt[1]);
- switch ($opt[0])
- {
- case 'audio':
- $audio = $opt[1];
- break;
-
- case 'video':
- $video = $opt[1];
- break;
-
- case 'alt':
- $alt = $opt[1];
- break;
-
- case 'altclass':
- $altclass = $opt[1];
- break;
-
- case 'loop':
- $loop = $opt[1];
- break;
-
- case 'width':
- $width = $opt[1];
- break;
-
- case 'height':
- $height = $opt[1];
- break;
-
- case 'bgcolor':
- $bgcolor = $opt[1];
- break;
-
- case 'mediaplayer':
- $mediaplayer = $opt[1];
- break;
-
- case 'widescreen':
- $widescreen = $opt[1];
- break;
- }
- }
- }
- }
-
- $mime = explode('/', $type, 2);
- $mime = $mime[0];
-
- // Process values for 'auto'
- if ($width === 'auto')
- {
- if ($mime === 'video')
- {
- if ($height === 'auto')
- {
- $width = 480;
- }
- elseif ($widescreen)
- {
- $width = round((intval($height)/9)*16);
- }
- else
- {
- $width = round((intval($height)/3)*4);
- }
- }
- else
- {
- $width = '100%';
- }
- }
-
- if ($height === 'auto')
- {
- if ($mime === 'audio')
- {
- $height = 0;
- }
- elseif ($mime === 'video')
- {
- if ($width === 'auto')
- {
- if ($widescreen)
- {
- $height = 270;
- }
- else
- {
- $height = 360;
- }
- }
- elseif ($widescreen)
- {
- $height = round((intval($width)/16)*9);
- }
- else
- {
- $height = round((intval($width)/4)*3);
- }
- }
- else
- {
- $height = 376;
- }
- }
- elseif ($mime === 'audio')
- {
- $height = 0;
- }
-
- // Set proper placeholder value
- if ($mime === 'audio')
- {
- $placeholder = $audio;
- }
- elseif ($mime === 'video')
- {
- $placeholder = $video;
- }
-
- $embed = '';
-
- // Flash
- if ($handler === 'flash')
- {
- if ($native)
- {
- $embed .= "<embed src=\"" . $this->get_link() . "\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"$type\" quality=\"high\" width=\"$width\" height=\"$height\" bgcolor=\"$bgcolor\" loop=\"$loop\"></embed>";
- }
- else
- {
- $embed .= "<script type='text/javascript'>embed_flash('$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$loop', '$type');</script>";
- }
- }
-
- // Flash Media Player file types.
- // Preferred handler for MP3 file types.
- elseif ($handler === 'fmedia' || ($handler === 'mp3' && $mediaplayer !== ''))
- {
- $height += 20;
- if ($native)
- {
- $embed .= "<embed src=\"$mediaplayer\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" quality=\"high\" width=\"$width\" height=\"$height\" wmode=\"transparent\" flashvars=\"file=" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "&autostart=false&repeat=$loop&showdigits=true&showfsbutton=false\"></embed>";
- }
- else
- {
- $embed .= "<script type='text/javascript'>embed_flv('$width', '$height', '" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "', '$placeholder', '$loop', '$mediaplayer');</script>";
- }
- }
-
- // QuickTime 7 file types. Need to test with QuickTime 6.
- // Only handle MP3's if the Flash Media Player is not present.
- elseif ($handler === 'quicktime' || ($handler === 'mp3' && $mediaplayer === ''))
- {
- $height += 16;
- if ($native)
- {
- if ($placeholder !== '')
- {
- $embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" href=\"" . $this->get_link() . "\" src=\"$placeholder\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"false\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
- }
- else
- {
- $embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" src=\"" . $this->get_link() . "\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"true\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
- }
- }
- else
- {
- $embed .= "<script type='text/javascript'>embed_quicktime('$type', '$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$placeholder', '$loop');</script>";
- }
- }
-
- // Windows Media
- elseif ($handler === 'wmedia')
- {
- $height += 45;
- if ($native)
- {
- $embed .= "<embed type=\"application/x-mplayer2\" src=\"" . $this->get_link() . "\" autosize=\"1\" width=\"$width\" height=\"$height\" showcontrols=\"1\" showstatusbar=\"0\" showdisplay=\"0\" autostart=\"0\"></embed>";
- }
- else
- {
- $embed .= "<script type='text/javascript'>embed_wmedia('$width', '$height', '" . $this->get_link() . "');</script>";
- }
- }
-
- // Everything else
- else $embed .= '<a href="' . $this->get_link() . '" class="' . $altclass . '">' . $alt . '</a>';
-
- return $embed;
- }
-
- /**
- * Get the real media type
- *
- * Often, feeds lie to us, necessitating a bit of deeper inspection. This
- * converts types to their canonical representations based on the file
- * extension
- *
- * @see get_type()
- * @param bool $find_handler Internal use only, use {@see get_handler()} instead
- * @return string MIME type
- */
- public function get_real_type($find_handler = false)
- {
- // Mime-types by handler.
- $types_flash = array('application/x-shockwave-flash', 'application/futuresplash'); // Flash
- $types_fmedia = array('video/flv', 'video/x-flv','flv-application/octet-stream'); // Flash Media Player
- $types_quicktime = array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video'); // QuickTime
- $types_wmedia = array('application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'); // Windows Media
- $types_mp3 = array('audio/mp3', 'audio/x-mp3', 'audio/mpeg', 'audio/x-mpeg'); // MP3
-
- if ($this->get_type() !== null)
- {
- $type = strtolower($this->type);
- }
- else
- {
- $type = null;
- }
-
- // If we encounter an unsupported mime-type, check the file extension and guess intelligently.
- if (!in_array($type, array_merge($types_flash, $types_fmedia, $types_quicktime, $types_wmedia, $types_mp3)))
- {
- switch (strtolower($this->get_extension()))
- {
- // Audio mime-types
- case 'aac':
- case 'adts':
- $type = 'audio/acc';
- break;
-
- case 'aif':
- case 'aifc':
- case 'aiff':
- case 'cdda':
- $type = 'audio/aiff';
- break;
-
- case 'bwf':
- $type = 'audio/wav';
- break;
-
- case 'kar':
- case 'mid':
- case 'midi':
- case 'smf':
- $type = 'audio/midi';
- break;
-
- case 'm4a':
- $type = 'audio/x-m4a';
- break;
-
- case 'mp3':
- case 'swa':
- $type = 'audio/mp3';
- break;
-
- case 'wav':
- $type = 'audio/wav';
- break;
-
- case 'wax':
- $type = 'audio/x-ms-wax';
- break;
-
- case 'wma':
- $type = 'audio/x-ms-wma';
- break;
-
- // Video mime-types
- case '3gp':
- case '3gpp':
- $type = 'video/3gpp';
- break;
-
- case '3g2':
- case '3gp2':
- $type = 'video/3gpp2';
- break;
-
- case 'asf':
- $type = 'video/x-ms-asf';
- break;
-
- case 'flv':
- $type = 'video/x-flv';
- break;
-
- case 'm1a':
- case 'm1s':
- case 'm1v':
- case 'm15':
- case 'm75':
- case 'mp2':
- case 'mpa':
- case 'mpeg':
- case 'mpg':
- case 'mpm':
- case 'mpv':
- $type = 'video/mpeg';
- break;
-
- case 'm4v':
- $type = 'video/x-m4v';
- break;
-
- case 'mov':
- case 'qt':
- $type = 'video/quicktime';
- break;
-
- case 'mp4':
- case 'mpg4':
- $type = 'video/mp4';
- break;
-
- case 'sdv':
- $type = 'video/sd-video';
- break;
-
- case 'wm':
- $type = 'video/x-ms-wm';
- break;
-
- case 'wmv':
- $type = 'video/x-ms-wmv';
- break;
-
- case 'wvx':
- $type = 'video/x-ms-wvx';
- break;
-
- // Flash mime-types
- case 'spl':
- $type = 'application/futuresplash';
- break;
-
- case 'swf':
- $type = 'application/x-shockwave-flash';
- break;
- }
- }
-
- if ($find_handler)
- {
- if (in_array($type, $types_flash))
- {
- return 'flash';
- }
- elseif (in_array($type, $types_fmedia))
- {
- return 'fmedia';
- }
- elseif (in_array($type, $types_quicktime))
- {
- return 'quicktime';
- }
- elseif (in_array($type, $types_wmedia))
- {
- return 'wmedia';
- }
- elseif (in_array($type, $types_mp3))
- {
- return 'mp3';
- }
- else
- {
- return null;
- }
- }
- else
- {
- return $type;
- }
- }
-}
-
-/**
- * General SimplePie exception class
- *
- * @package SimplePie
- */
-class SimplePie_Exception extends Exception
-{
-}
-
-/**
- * Used for fetching remote files and reading local files
- *
- * Supports HTTP 1.0 via cURL or fsockopen, with spotty HTTP 1.1 support
- *
- * This class can be overloaded with {@see SimplePie::set_file_class()}
- *
- * @package SimplePie
- * @subpackage HTTP
- * @todo Move to properly supporting RFC2616 (HTTP/1.1)
- */
-class SimplePie_File
-{
- var $url;
- var $useragent;
- var $success = true;
- var $headers = array();
- var $body;
- var $status_code;
- var $redirects = 0;
- var $error;
- var $method = SIMPLEPIE_FILE_SOURCE_NONE;
-
- public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false)
- {
- if (class_exists('idna_convert'))
- {
- $idn = new idna_convert();
- $parsed = SimplePie_Misc::parse_url($url);
- $url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
- }
- $this->url = $url;
- $this->useragent = $useragent;
- if (preg_match('/^http(s)?:\/\//i', $url))
- {
- if ($useragent === null)
- {
- $useragent = ini_get('user_agent');
- $this->useragent = $useragent;
- }
- if (!is_array($headers))
- {
- $headers = array();
- }
- if (!$force_fsockopen && function_exists('curl_exec'))
- {
- $this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_CURL;
- $fp = curl_init();
- $headers2 = array();
- foreach ($headers as $key => $value)
- {
- $headers2[] = "$key: $value";
- }
- if (version_compare(SimplePie_Misc::get_curl_version(), '7.10.5', '>='))
- {
- curl_setopt($fp, CURLOPT_ENCODING, '');
- }
- curl_setopt($fp, CURLOPT_URL, $url);
- curl_setopt($fp, CURLOPT_HEADER, 1);
- curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($fp, CURLOPT_TIMEOUT, $timeout);
- curl_setopt($fp, CURLOPT_CONNECTTIMEOUT, $timeout);
- curl_setopt($fp, CURLOPT_REFERER, $url);
- curl_setopt($fp, CURLOPT_USERAGENT, $useragent);
- curl_setopt($fp, CURLOPT_HTTPHEADER, $headers2);
- if (!ini_get('open_basedir') && !ini_get('safe_mode') && version_compare(SimplePie_Misc::get_curl_version(), '7.15.2', '>='))
- {
- curl_setopt($fp, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($fp, CURLOPT_MAXREDIRS, $redirects);
- }
-
- /* Enable Digest authentication and SSL -fox */
- curl_setopt($fp, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($fp, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
-
- $this->headers = curl_exec($fp);
- if (curl_errno($fp) === 23 || curl_errno($fp) === 61)
- {
- curl_setopt($fp, CURLOPT_ENCODING, 'none');
- $this->headers = curl_exec($fp);
- }
- if (curl_errno($fp))
- {
- $this->error = 'cURL error ' . curl_errno($fp) . ': ' . curl_error($fp);
- $this->success = false;
- }
- else
- {
- $info = curl_getinfo($fp);
- curl_close($fp);
- $this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 1);
- $this->headers = array_pop($this->headers);
- $parser = new SimplePie_HTTP_Parser($this->headers);
- if ($parser->parse())
- {
- $this->headers = $parser->headers;
- $this->body = $parser->body;
- $this->status_code = $parser->status_code;
- if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
- {
- $this->redirects++;
- $location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
- return $this->__construct($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
- }
- }
- }
- }
- else
- {
- $this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_FSOCKOPEN;
- $url_parts = parse_url($url);
- $socket_host = $url_parts['host'];
- if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https')
- {
- $socket_host = "ssl://$url_parts[host]";
- $url_parts['port'] = 443;
- }
- if (!isset($url_parts['port']))
- {
- $url_parts['port'] = 80;
- }
- $fp = @fsockopen($socket_host, $url_parts['port'], $errno, $errstr, $timeout);
- if (!$fp)
- {
- $this->error = 'fsockopen error: ' . $errstr;
- $this->success = false;
- }
- else
- {
- stream_set_timeout($fp, $timeout);
- if (isset($url_parts['path']))
- {
- if (isset($url_parts['query']))
- {
- $get = "$url_parts[path]?$url_parts[query]";
- }
- else
- {
- $get = $url_parts['path'];
- }
- }
- else
- {
- $get = '/';
- }
- $out = "GET $get HTTP/1.1\r\n";
- $out .= "Host: $url_parts[host]\r\n";
- $out .= "User-Agent: $useragent\r\n";
- if (extension_loaded('zlib'))
- {
- $out .= "Accept-Encoding: x-gzip,gzip,deflate\r\n";
- }
-
- if (isset($url_parts['user']) && isset($url_parts['pass']))
- {
- $out .= "Authorization: Basic " . base64_encode("$url_parts[user]:$url_parts[pass]") . "\r\n";
- }
- foreach ($headers as $key => $value)
- {
- $out .= "$key: $value\r\n";
- }
- $out .= "Connection: Close\r\n\r\n";
- fwrite($fp, $out);
-
- $info = stream_get_meta_data($fp);
-
- $this->headers = '';
- while (!$info['eof'] && !$info['timed_out'])
- {
- $this->headers .= fread($fp, 1160);
- $info = stream_get_meta_data($fp);
- }
- if (!$info['timed_out'])
- {
- $parser = new SimplePie_HTTP_Parser($this->headers);
- if ($parser->parse())
- {
- $this->headers = $parser->headers;
- $this->body = $parser->body;
- $this->status_code = $parser->status_code;
- if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
- {
- $this->redirects++;
- $location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
- return $this->__construct($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
- }
- if (isset($this->headers['content-encoding']))
- {
- // Hey, we act dumb elsewhere, so let's do that here too
- switch (strtolower(trim($this->headers['content-encoding'], "\x09\x0A\x0D\x20")))
- {
- case 'gzip':
- case 'x-gzip':
- $decoder = new SimplePie_gzdecode($this->body);
- if (!$decoder->parse())
- {
- $this->error = 'Unable to decode HTTP "gzip" stream';
- $this->success = false;
- }
- else
- {
- $this->body = $decoder->data;
- }
- break;
-
- case 'deflate':
- if (($decompressed = gzinflate($this->body)) !== false)
- {
- $this->body = $decompressed;
- }
- else if (($decompressed = gzuncompress($this->body)) !== false)
- {
- $this->body = $decompressed;
- }
- else if (function_exists('gzdecode') && ($decompressed = gzdecode($this->body)) !== false)
- {
- $this->body = $decompressed;
- }
- else
- {
- $this->error = 'Unable to decode HTTP "deflate" stream';
- $this->success = false;
- }
- break;
-
- default:
- $this->error = 'Unknown content coding';
- $this->success = false;
- }
- }
- }
- }
- else
- {
- $this->error = 'fsocket timed out';
- $this->success = false;
- }
- fclose($fp);
- }
- }
- }
- else
- {
- $this->method = SIMPLEPIE_FILE_SOURCE_LOCAL | SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS;
- if (!$this->body = file_get_contents($url))
- {
- $this->error = 'file_get_contents could not read the file';
- $this->success = false;
- }
- }
- }
-}
-
-/**
- * Decode 'gzip' encoded HTTP data
- *
- * @package SimplePie
- * @subpackage HTTP
- * @link http://www.gzip.org/format.txt
- */
-class SimplePie_gzdecode
-{
- /**
- * Compressed data
- *
- * @access private
- * @var string
- * @see gzdecode::$data
- */
- var $compressed_data;
-
- /**
- * Size of compressed data
- *
- * @access private
- * @var int
- */
- var $compressed_size;
-
- /**
- * Minimum size of a valid gzip string
- *
- * @access private
- * @var int
- */
- var $min_compressed_size = 18;
-
- /**
- * Current position of pointer
- *
- * @access private
- * @var int
- */
- var $position = 0;
-
- /**
- * Flags (FLG)
- *
- * @access private
- * @var int
- */
- var $flags;
-
- /**
- * Uncompressed data
- *
- * @access public
- * @see gzdecode::$compressed_data
- * @var string
- */
- var $data;
-
- /**
- * Modified time
- *
- * @access public
- * @var int
- */
- var $MTIME;
-
- /**
- * Extra Flags
- *
- * @access public
- * @var int
- */
- var $XFL;
-
- /**
- * Operating System
- *
- * @access public
- * @var int
- */
- var $OS;
-
- /**
- * Subfield ID 1
- *
- * @access public
- * @see gzdecode::$extra_field
- * @see gzdecode::$SI2
- * @var string
- */
- var $SI1;
-
- /**
- * Subfield ID 2
- *
- * @access public
- * @see gzdecode::$extra_field
- * @see gzdecode::$SI1
- * @var string
- */
- var $SI2;
-
- /**
- * Extra field content
- *
- * @access public
- * @see gzdecode::$SI1
- * @see gzdecode::$SI2
- * @var string
- */
- var $extra_field;
-
- /**
- * Original filename
- *
- * @access public
- * @var string
- */
- var $filename;
-
- /**
- * Human readable comment
- *
- * @access public
- * @var string
- */
- var $comment;
-
- /**
- * Don't allow anything to be set
- *
- * @param string $name
- * @param mixed $value
- */
- public function __set($name, $value)
- {
- trigger_error("Cannot write property $name", E_USER_ERROR);
- }
-
- /**
- * Set the compressed string and related properties
- *
- * @param string $data
- */
- public function __construct($data)
- {
- $this->compressed_data = $data;
- $this->compressed_size = strlen($data);
- }
-
- /**
- * Decode the GZIP stream
- *
- * @return bool Successfulness
- */
- public function parse()
- {
- if ($this->compressed_size >= $this->min_compressed_size)
- {
- // Check ID1, ID2, and CM
- if (substr($this->compressed_data, 0, 3) !== "\x1F\x8B\x08")
- {
- return false;
- }
-
- // Get the FLG (FLaGs)
- $this->flags = ord($this->compressed_data[3]);
-
- // FLG bits above (1 << 4) are reserved
- if ($this->flags > 0x1F)
- {
- return false;
- }
-
- // Advance the pointer after the above
- $this->position += 4;
-
- // MTIME
- $mtime = substr($this->compressed_data, $this->position, 4);
- // Reverse the string if we're on a big-endian arch because l is the only signed long and is machine endianness
- if (current(unpack('S', "\x00\x01")) === 1)
- {
- $mtime = strrev($mtime);
- }
- $this->MTIME = current(unpack('l', $mtime));
- $this->position += 4;
-
- // Get the XFL (eXtra FLags)
- $this->XFL = ord($this->compressed_data[$this->position++]);
-
- // Get the OS (Operating System)
- $this->OS = ord($this->compressed_data[$this->position++]);
-
- // Parse the FEXTRA
- if ($this->flags & 4)
- {
- // Read subfield IDs
- $this->SI1 = $this->compressed_data[$this->position++];
- $this->SI2 = $this->compressed_data[$this->position++];
-
- // SI2 set to zero is reserved for future use
- if ($this->SI2 === "\x00")
- {
- return false;
- }
-
- // Get the length of the extra field
- $len = current(unpack('v', substr($this->compressed_data, $this->position, 2)));
- $this->position += 2;
-
- // Check the length of the string is still valid
- $this->min_compressed_size += $len + 4;
- if ($this->compressed_size >= $this->min_compressed_size)
- {
- // Set the extra field to the given data
- $this->extra_field = substr($this->compressed_data, $this->position, $len);
- $this->position += $len;
- }
- else
- {
- return false;
- }
- }
-
- // Parse the FNAME
- if ($this->flags & 8)
- {
- // Get the length of the filename
- $len = strcspn($this->compressed_data, "\x00", $this->position);
-
- // Check the length of the string is still valid
- $this->min_compressed_size += $len + 1;
- if ($this->compressed_size >= $this->min_compressed_size)
- {
- // Set the original filename to the given string
- $this->filename = substr($this->compressed_data, $this->position, $len);
- $this->position += $len + 1;
- }
- else
- {
- return false;
- }
- }
-
- // Parse the FCOMMENT
- if ($this->flags & 16)
- {
- // Get the length of the comment
- $len = strcspn($this->compressed_data, "\x00", $this->position);
-
- // Check the length of the string is still valid
- $this->min_compressed_size += $len + 1;
- if ($this->compressed_size >= $this->min_compressed_size)
- {
- // Set the original comment to the given string
- $this->comment = substr($this->compressed_data, $this->position, $len);
- $this->position += $len + 1;
- }
- else
- {
- return false;
- }
- }
-
- // Parse the FHCRC
- if ($this->flags & 2)
- {
- // Check the length of the string is still valid
- $this->min_compressed_size += $len + 2;
- if ($this->compressed_size >= $this->min_compressed_size)
- {
- // Read the CRC
- $crc = current(unpack('v', substr($this->compressed_data, $this->position, 2)));
-
- // Check the CRC matches
- if ((crc32(substr($this->compressed_data, 0, $this->position)) & 0xFFFF) === $crc)
- {
- $this->position += 2;
- }
- else
- {
- return false;
- }
- }
- else
- {
- return false;
- }
- }
-
- // Decompress the actual data
- if (($this->data = gzinflate(substr($this->compressed_data, $this->position, -8))) === false)
- {
- return false;
- }
- else
- {
- $this->position = $this->compressed_size - 8;
- }
-
- // Check CRC of data
- $crc = current(unpack('V', substr($this->compressed_data, $this->position, 4)));
- $this->position += 4;
- /*if (extension_loaded('hash') && sprintf('%u', current(unpack('V', hash('crc32b', $this->data)))) !== sprintf('%u', $crc))
- {
- return false;
- }*/
-
- // Check ISIZE of data
- $isize = current(unpack('V', substr($this->compressed_data, $this->position, 4)));
- $this->position += 4;
- if (sprintf('%u', strlen($this->data) & 0xFFFFFFFF) !== sprintf('%u', $isize))
- {
- return false;
- }
-
- // Wow, against all odds, we've actually got a valid gzip string
- return true;
- }
- else
- {
- return false;
- }
- }
-}
-
-/**
- * HTTP Response Parser
- *
- * @package SimplePie
- * @subpackage HTTP
- */
-class SimplePie_HTTP_Parser
-{
- /**
- * HTTP Version
- *
- * @var float
- */
- public $http_version = 0.0;
-
- /**
- * Status code
- *
- * @var int
- */
- public $status_code = 0;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- public $reason = '';
-
- /**
- * Key/value pairs of the headers
- *
- * @var array
- */
- public $headers = array();
-
- /**
- * Body of the response
- *
- * @var string
- */
- public $body = '';
-
- /**
- * Current state of the state machine
- *
- * @var string
- */
- protected $state = 'http_version';
-
- /**
- * Input data
- *
- * @var string
- */
- protected $data = '';
-
- /**
- * Input data length (to avoid calling strlen() everytime this is needed)
- *
- * @var int
- */
- protected $data_length = 0;
-
- /**
- * Current position of the pointer
- *
- * @var int
- */
- protected $position = 0;
-
- /**
- * Name of the hedaer currently being parsed
- *
- * @var string
- */
- protected $name = '';
-
- /**
- * Value of the hedaer currently being parsed
- *
- * @var string
- */
- protected $value = '';
-
- /**
- * Create an instance of the class with the input data
- *
- * @param string $data Input data
- */
- public function __construct($data)
- {
- $this->data = $data;
- $this->data_length = strlen($this->data);
- }
-
- /**
- * Parse the input data
- *
- * @return bool true on success, false on failure
- */
- public function parse()
- {
- while ($this->state && $this->state !== 'emit' && $this->has_data())
- {
- $state = $this->state;
- $this->$state();
- }
- $this->data = '';
- if ($this->state === 'emit' || $this->state === 'body')
- {
- return true;
- }
- else
- {
- $this->http_version = '';
- $this->status_code = '';
- $this->reason = '';
- $this->headers = array();
- $this->body = '';
- return false;
- }
- }
-
- /**
- * Check whether there is data beyond the pointer
- *
- * @return bool true if there is further data, false if not
- */
- protected function has_data()
- {
- return (bool) ($this->position < $this->data_length);
- }
-
- /**
- * See if the next character is LWS
- *
- * @return bool true if the next character is LWS, false if not
- */
- protected function is_linear_whitespace()
- {
- return (bool) ($this->data[$this->position] === "\x09"
- || $this->data[$this->position] === "\x20"
- || ($this->data[$this->position] === "\x0A"
- && isset($this->data[$this->position + 1])
- && ($this->data[$this->position + 1] === "\x09" || $this->data[$this->position + 1] === "\x20")));
- }
-
- /**
- * Parse the HTTP version
- */
- protected function http_version()
- {
- if (strpos($this->data, "\x0A") !== false && strtoupper(substr($this->data, 0, 5)) === 'HTTP/')
- {
- $len = strspn($this->data, '0123456789.', 5);
- $this->http_version = substr($this->data, 5, $len);
- $this->position += 5 + $len;
- if (substr_count($this->http_version, '.') <= 1)
- {
- $this->http_version = (float) $this->http_version;
- $this->position += strspn($this->data, "\x09\x20", $this->position);
- $this->state = 'status';
- }
- else
- {
- $this->state = false;
- }
- }
- else
- {
- $this->state = false;
- }
- }
-
- /**
- * Parse the status code
- */
- protected function status()
- {
- if ($len = strspn($this->data, '0123456789', $this->position))
- {
- $this->status_code = (int) substr($this->data, $this->position, $len);
- $this->position += $len;
- $this->state = 'reason';
- }
- else
- {
- $this->state = false;
- }
- }
-
- /**
- * Parse the reason phrase
- */
- protected function reason()
- {
- $len = strcspn($this->data, "\x0A", $this->position);
- $this->reason = trim(substr($this->data, $this->position, $len), "\x09\x0D\x20");
- $this->position += $len + 1;
- $this->state = 'new_line';
- }
-
- /**
- * Deal with a new line, shifting data around as needed
- */
- protected function new_line()
- {
- $this->value = trim($this->value, "\x0D\x20");
- if ($this->name !== '' && $this->value !== '')
- {
- $this->name = strtolower($this->name);
- // We should only use the last Content-Type header. c.f. issue #1
- if (isset($this->headers[$this->name]) && $this->name !== 'content-type')
- {
- $this->headers[$this->name] .= ', ' . $this->value;
- }
- else
- {
- $this->headers[$this->name] = $this->value;
- }
- }
- $this->name = '';
- $this->value = '';
- if (substr($this->data[$this->position], 0, 2) === "\x0D\x0A")
- {
- $this->position += 2;
- $this->state = 'body';
- }
- elseif ($this->data[$this->position] === "\x0A")
- {
- $this->position++;
- $this->state = 'body';
- }
- else
- {
- $this->state = 'name';
- }
- }
-
- /**
- * Parse a header name
- */
- protected function name()
- {
- $len = strcspn($this->data, "\x0A:", $this->position);
- if (isset($this->data[$this->position + $len]))
- {
- if ($this->data[$this->position + $len] === "\x0A")
- {
- $this->position += $len;
- $this->state = 'new_line';
- }
- else
- {
- $this->name = substr($this->data, $this->position, $len);
- $this->position += $len + 1;
- $this->state = 'value';
- }
- }
- else
- {
- $this->state = false;
- }
- }
-
- /**
- * Parse LWS, replacing consecutive LWS characters with a single space
- */
- protected function linear_whitespace()
- {
- do
- {
- if (substr($this->data, $this->position, 2) === "\x0D\x0A")
- {
- $this->position += 2;
- }
- elseif ($this->data[$this->position] === "\x0A")
- {
- $this->position++;
- }
- $this->position += strspn($this->data, "\x09\x20", $this->position);
- } while ($this->has_data() && $this->is_linear_whitespace());
- $this->value .= "\x20";
- }
-
- /**
- * See what state to move to while within non-quoted header values
- */
- protected function value()
- {
- if ($this->is_linear_whitespace())
- {
- $this->linear_whitespace();
- }
- else
- {
- switch ($this->data[$this->position])
- {
- case '"':
- // Workaround for ETags: we have to include the quotes as
- // part of the tag.
- if (strtolower($this->name) === 'etag')
- {
- $this->value .= '"';
- $this->position++;
- $this->state = 'value_char';
- break;
- }
- $this->position++;
- $this->state = 'quote';
- break;
-
- case "\x0A":
- $this->position++;
- $this->state = 'new_line';
- break;
-
- default:
- $this->state = 'value_char';
- break;
- }
- }
- }
-
- /**
- * Parse a header value while outside quotes
- */
- protected function value_char()
- {
- $len = strcspn($this->data, "\x09\x20\x0A\"", $this->position);
- $this->value .= substr($this->data, $this->position, $len);
- $this->position += $len;
- $this->state = 'value';
- }
-
- /**
- * See what state to move to while within quoted header values
- */
- protected function quote()
- {
- if ($this->is_linear_whitespace())
- {
- $this->linear_whitespace();
- }
- else
- {
- switch ($this->data[$this->position])
- {
- case '"':
- $this->position++;
- $this->state = 'value';
- break;
-
- case "\x0A":
- $this->position++;
- $this->state = 'new_line';
- break;
-
- case '\\':
- $this->position++;
- $this->state = 'quote_escaped';
- break;
-
- default:
- $this->state = 'quote_char';
- break;
- }
- }
- }
-
- /**
- * Parse a header value while within quotes
- */
- protected function quote_char()
- {
- $len = strcspn($this->data, "\x09\x20\x0A\"\\", $this->position);
- $this->value .= substr($this->data, $this->position, $len);
- $this->position += $len;
- $this->state = 'value';
- }
-
- /**
- * Parse an escaped character within quotes
- */
- protected function quote_escaped()
- {
- $this->value .= $this->data[$this->position];
- $this->position++;
- $this->state = 'quote';
- }
-
- /**
- * Parse the body
- */
- protected function body()
- {
- $this->body = substr($this->data, $this->position);
- if (!empty($this->headers['transfer-encoding']))
- {
- unset($this->headers['transfer-encoding']);
- $this->state = 'chunked';
- }
- else
- {
- $this->state = 'emit';
- }
- }
-
- /**
- * Parsed a "Transfer-Encoding: chunked" body
- */
- protected function chunked()
- {
- if (!preg_match('/^([0-9a-f]+)[^\r\n]*\r\n/i', trim($this->body)))
- {
- $this->state = 'emit';
- return;
- }
-
- $decoded = '';
- $encoded = $this->body;
-
- while (true)
- {
- $is_chunked = (bool) preg_match( '/^([0-9a-f]+)[^\r\n]*\r\n/i', $encoded, $matches );
- if (!$is_chunked)
- {
- // Looks like it's not chunked after all
- $this->state = 'emit';
- return;
- }
-
- $length = hexdec(trim($matches[1]));
- if ($length === 0)
- {
- // Ignore trailer headers
- $this->state = 'emit';
- $this->body = $decoded;
- return;
- }
-
- $chunk_length = strlen($matches[0]);
- $decoded .= $part = substr($encoded, $chunk_length, $length);
- $encoded = substr($encoded, $chunk_length + $length + 2);
-
- if (trim($encoded) === '0' || empty($encoded))
- {
- $this->state = 'emit';
- $this->body = $decoded;
- return;
- }
- }
- }
-}
-
-/**
- * IRI parser/serialiser/normaliser
- *
- * @package SimplePie
- * @subpackage HTTP
- * @author Geoffrey Sneddon
- * @author Steve Minutillo
- * @author Ryan McCue
- * @copyright 2007-2012 Geoffrey Sneddon, Steve Minutillo, Ryan McCue
- * @license http://www.opensource.org/licenses/bsd-license.php
- */
-class SimplePie_IRI
-{
- /**
- * Scheme
- *
- * @var string
- */
- protected $scheme = null;
-
- /**
- * User Information
- *
- * @var string
- */
- protected $iuserinfo = null;
-
- /**
- * ihost
- *
- * @var string
- */
- protected $ihost = null;
-
- /**
- * Port
- *
- * @var string
- */
- protected $port = null;
-
- /**
- * ipath
- *
- * @var string
- */
- protected $ipath = '';
-
- /**
- * iquery
- *
- * @var string
- */
- protected $iquery = null;
-
- /**
- * ifragment
- *
- * @var string
- */
- protected $ifragment = null;
-
- /**
- * Normalization database
- *
- * Each key is the scheme, each value is an array with each key as the IRI
- * part and value as the default value for that part.
- */
- protected $normalization = array(
- 'acap' => array(
- 'port' => 674
- ),
- 'dict' => array(
- 'port' => 2628
- ),
- 'file' => array(
- 'ihost' => 'localhost'
- ),
- 'http' => array(
- 'port' => 80,
- 'ipath' => '/'
- ),
- 'https' => array(
- 'port' => 443,
- 'ipath' => '/'
- ),
- );
-
- /**
- * Return the entire IRI when you try and read the object as a string
- *
- * @return string
- */
- public function __toString()
- {
- return $this->get_iri();
- }
-
- /**
- * Overload __set() to provide access via properties
- *
- * @param string $name Property name
- * @param mixed $value Property value
- */
- public function __set($name, $value)
- {
- if (method_exists($this, 'set_' . $name))
- {
- call_user_func(array($this, 'set_' . $name), $value);
- }
- elseif (
- $name === 'iauthority'
- || $name === 'iuserinfo'
- || $name === 'ihost'
- || $name === 'ipath'
- || $name === 'iquery'
- || $name === 'ifragment'
- )
- {
- call_user_func(array($this, 'set_' . substr($name, 1)), $value);
- }
- }
-
- /**
- * Overload __get() to provide access via properties
- *
- * @param string $name Property name
- * @return mixed
- */
- public function __get($name)
- {
- // isset() returns false for null, we don't want to do that
- // Also why we use array_key_exists below instead of isset()
- $props = get_object_vars($this);
-
- if (
- $name === 'iri' ||
- $name === 'uri' ||
- $name === 'iauthority' ||
- $name === 'authority'
- )
- {
- $return = $this->{"get_$name"}();
- }
- elseif (array_key_exists($name, $props))
- {
- $return = $this->$name;
- }
- // host -> ihost
- elseif (($prop = 'i' . $name) && array_key_exists($prop, $props))
- {
- $name = $prop;
- $return = $this->$prop;
- }
- // ischeme -> scheme
- elseif (($prop = substr($name, 1)) && array_key_exists($prop, $props))
- {
- $name = $prop;
- $return = $this->$prop;
- }
- else
- {
- trigger_error('Undefined property: ' . get_class($this) . '::' . $name, E_USER_NOTICE);
- $return = null;
- }
-
- if ($return === null && isset($this->normalization[$this->scheme][$name]))
- {
- return $this->normalization[$this->scheme][$name];
- }
- else
- {
- return $return;
- }
- }
-
- /**
- * Overload __isset() to provide access via properties
- *
- * @param string $name Property name
- * @return bool
- */
- public function __isset($name)
- {
- if (method_exists($this, 'get_' . $name) || isset($this->$name))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Overload __unset() to provide access via properties
- *
- * @param string $name Property name
- */
- public function __unset($name)
- {
- if (method_exists($this, 'set_' . $name))
- {
- call_user_func(array($this, 'set_' . $name), '');
- }
- }
-
- /**
- * Create a new IRI object, from a specified string
- *
- * @param string $iri
- */
- public function __construct($iri = null)
- {
- $this->set_iri($iri);
- }
-
- /**
- * Create a new IRI object by resolving a relative IRI
- *
- * Returns false if $base is not absolute, otherwise an IRI.
- *
- * @param IRI|string $base (Absolute) Base IRI
- * @param IRI|string $relative Relative IRI
- * @return IRI|false
- */
- public static function absolutize($base, $relative)
- {
- if (!($relative instanceof SimplePie_IRI))
- {
- $relative = new SimplePie_IRI($relative);
- }
- if (!$relative->is_valid())
- {
- return false;
- }
- elseif ($relative->scheme !== null)
- {
- return clone $relative;
- }
- else
- {
- if (!($base instanceof SimplePie_IRI))
- {
- $base = new SimplePie_IRI($base);
- }
- if ($base->scheme !== null && $base->is_valid())
- {
- if ($relative->get_iri() !== '')
- {
- if ($relative->iuserinfo !== null || $relative->ihost !== null || $relative->port !== null)
- {
- $target = clone $relative;
- $target->scheme = $base->scheme;
- }
- else
- {
- $target = new SimplePie_IRI;
- $target->scheme = $base->scheme;
- $target->iuserinfo = $base->iuserinfo;
- $target->ihost = $base->ihost;
- $target->port = $base->port;
- if ($relative->ipath !== '')
- {
- if ($relative->ipath[0] === '/')
- {
- $target->ipath = $relative->ipath;
- }
- elseif (($base->iuserinfo !== null || $base->ihost !== null || $base->port !== null) && $base->ipath === '')
- {
- $target->ipath = '/' . $relative->ipath;
- }
- elseif (($last_segment = strrpos($base->ipath, '/')) !== false)
- {
- $target->ipath = substr($base->ipath, 0, $last_segment + 1) . $relative->ipath;
- }
- else
- {
- $target->ipath = $relative->ipath;
- }
- $target->ipath = $target->remove_dot_segments($target->ipath);
- $target->iquery = $relative->iquery;
- }
- else
- {
- $target->ipath = $base->ipath;
- if ($relative->iquery !== null)
- {
- $target->iquery = $relative->iquery;
- }
- elseif ($base->iquery !== null)
- {
- $target->iquery = $base->iquery;
- }
- }
- $target->ifragment = $relative->ifragment;
- }
- }
- else
- {
- $target = clone $base;
- $target->ifragment = null;
- }
- $target->scheme_normalization();
- return $target;
- }
- else
- {
- return false;
- }
- }
- }
-
- /**
- * Parse an IRI into scheme/authority/path/query/fragment segments
- *
- * @param string $iri
- * @return array
- */
- protected function parse_iri($iri)
- {
- $iri = trim($iri, "\x20\x09\x0A\x0C\x0D");
- if (preg_match('/^((?P<scheme>[^:\/?#]+):)?(\/\/(?P<authority>[^\/?#]*))?(?P<path>[^?#]*)(\?(?P<query>[^#]*))?(#(?P<fragment>.*))?$/', $iri, $match))
- {
- if ($match[1] === '')
- {
- $match['scheme'] = null;
- }
- if (!isset($match[3]) || $match[3] === '')
- {
- $match['authority'] = null;
- }
- if (!isset($match[5]))
- {
- $match['path'] = '';
- }
- if (!isset($match[6]) || $match[6] === '')
- {
- $match['query'] = null;
- }
- if (!isset($match[8]) || $match[8] === '')
- {
- $match['fragment'] = null;
- }
- return $match;
- }
- else
- {
- // This can occur when a paragraph is accidentally parsed as a URI
- return false;
- }
- }
-
- /**
- * Remove dot segments from a path
- *
- * @param string $input
- * @return string
- */
- protected function remove_dot_segments($input)
- {
- $output = '';
- while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..')
- {
- // A: If the input buffer begins with a prefix of "../" or "./", then remove that prefix from the input buffer; otherwise,
- if (strpos($input, '../') === 0)
- {
- $input = substr($input, 3);
- }
- elseif (strpos($input, './') === 0)
- {
- $input = substr($input, 2);
- }
- // B: if the input buffer begins with a prefix of "/./" or "/.", where "." is a complete path segment, then replace that prefix with "/" in the input buffer; otherwise,
- elseif (strpos($input, '/./') === 0)
- {
- $input = substr($input, 2);
- }
- elseif ($input === '/.')
- {
- $input = '/';
- }
- // C: if the input buffer begins with a prefix of "/../" or "/..", where ".." is a complete path segment, then replace that prefix with "/" in the input buffer and remove the last segment and its preceding "/" (if any) from the output buffer; otherwise,
- elseif (strpos($input, '/../') === 0)
- {
- $input = substr($input, 3);
- $output = substr_replace($output, '', strrpos($output, '/'));
- }
- elseif ($input === '/..')
- {
- $input = '/';
- $output = substr_replace($output, '', strrpos($output, '/'));
- }
- // D: if the input buffer consists only of "." or "..", then remove that from the input buffer; otherwise,
- elseif ($input === '.' || $input === '..')
- {
- $input = '';
- }
- // E: move the first path segment in the input buffer to the end of the output buffer, including the initial "/" character (if any) and any subsequent characters up to, but not including, the next "/" character or the end of the input buffer
- elseif (($pos = strpos($input, '/', 1)) !== false)
- {
- $output .= substr($input, 0, $pos);
- $input = substr_replace($input, '', 0, $pos);
- }
- else
- {
- $output .= $input;
- $input = '';
- }
- }
- return $output . $input;
- }
-
- /**
- * Replace invalid character with percent encoding
- *
- * @param string $string Input string
- * @param string $extra_chars Valid characters not in iunreserved or
- * iprivate (this is ASCII-only)
- * @param bool $iprivate Allow iprivate
- * @return string
- */
- protected function replace_invalid_with_pct_encoding($string, $extra_chars, $iprivate = false)
- {
- // Normalize as many pct-encoded sections as possible
- $string = preg_replace_callback('/(?:%[A-Fa-f0-9]{2})+/', array($this, 'remove_iunreserved_percent_encoded'), $string);
-
- // Replace invalid percent characters
- $string = preg_replace('/%(?![A-Fa-f0-9]{2})/', '%25', $string);
-
- // Add unreserved and % to $extra_chars (the latter is safe because all
- // pct-encoded sections are now valid).
- $extra_chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~%';
-
- // Now replace any bytes that aren't allowed with their pct-encoded versions
- $position = 0;
- $strlen = strlen($string);
- while (($position += strspn($string, $extra_chars, $position)) < $strlen)
- {
- $value = ord($string[$position]);
-
- // Start position
- $start = $position;
-
- // By default we are valid
- $valid = true;
-
- // No one byte sequences are valid due to the while.
- // Two byte sequence:
- if (($value & 0xE0) === 0xC0)
- {
- $character = ($value & 0x1F) << 6;
- $length = 2;
- $remaining = 1;
- }
- // Three byte sequence:
- elseif (($value & 0xF0) === 0xE0)
- {
- $character = ($value & 0x0F) << 12;
- $length = 3;
- $remaining = 2;
- }
- // Four byte sequence:
- elseif (($value & 0xF8) === 0xF0)
- {
- $character = ($value & 0x07) << 18;
- $length = 4;
- $remaining = 3;
- }
- // Invalid byte:
- else
- {
- $valid = false;
- $length = 1;
- $remaining = 0;
- }
-
- if ($remaining)
- {
- if ($position + $length <= $strlen)
- {
- for ($position++; $remaining; $position++)
- {
- $value = ord($string[$position]);
-
- // Check that the byte is valid, then add it to the character:
- if (($value & 0xC0) === 0x80)
- {
- $character |= ($value & 0x3F) << (--$remaining * 6);
- }
- // If it is invalid, count the sequence as invalid and reprocess the current byte:
- else
- {
- $valid = false;
- $position--;
- break;
- }
- }
- }
- else
- {
- $position = $strlen - 1;
- $valid = false;
- }
- }
-
- // Percent encode anything invalid or not in ucschar
- if (
- // Invalid sequences
- !$valid
- // Non-shortest form sequences are invalid
- || $length > 1 && $character <= 0x7F
- || $length > 2 && $character <= 0x7FF
- || $length > 3 && $character <= 0xFFFF
- // Outside of range of ucschar codepoints
- // Noncharacters
- || ($character & 0xFFFE) === 0xFFFE
- || $character >= 0xFDD0 && $character <= 0xFDEF
- || (
- // Everything else not in ucschar
- $character > 0xD7FF && $character < 0xF900
- || $character < 0xA0
- || $character > 0xEFFFD
- )
- && (
- // Everything not in iprivate, if it applies
- !$iprivate
- || $character < 0xE000
- || $character > 0x10FFFD
- )
- )
- {
- // If we were a character, pretend we weren't, but rather an error.
- if ($valid)
- $position--;
-
- for ($j = $start; $j <= $position; $j++)
- {
- $string = substr_replace($string, sprintf('%%%02X', ord($string[$j])), $j, 1);
- $j += 2;
- $position += 2;
- $strlen += 2;
- }
- }
- }
-
- return $string;
- }
-
- /**
- * Callback function for preg_replace_callback.
- *
- * Removes sequences of percent encoded bytes that represent UTF-8
- * encoded characters in iunreserved
- *
- * @param array $match PCRE match
- * @return string Replacement
- */
- protected function remove_iunreserved_percent_encoded($match)
- {
- // As we just have valid percent encoded sequences we can just explode
- // and ignore the first member of the returned array (an empty string).
- $bytes = explode('%', $match[0]);
-
- // Initialize the new string (this is what will be returned) and that
- // there are no bytes remaining in the current sequence (unsurprising
- // at the first byte!).
- $string = '';
- $remaining = 0;
-
- // Loop over each and every byte, and set $value to its value
- for ($i = 1, $len = count($bytes); $i < $len; $i++)
- {
- $value = hexdec($bytes[$i]);
-
- // If we're the first byte of sequence:
- if (!$remaining)
- {
- // Start position
- $start = $i;
-
- // By default we are valid
- $valid = true;
-
- // One byte sequence:
- if ($value <= 0x7F)
- {
- $character = $value;
- $length = 1;
- }
- // Two byte sequence:
- elseif (($value & 0xE0) === 0xC0)
- {
- $character = ($value & 0x1F) << 6;
- $length = 2;
- $remaining = 1;
- }
- // Three byte sequence:
- elseif (($value & 0xF0) === 0xE0)
- {
- $character = ($value & 0x0F) << 12;
- $length = 3;
- $remaining = 2;
- }
- // Four byte sequence:
- elseif (($value & 0xF8) === 0xF0)
- {
- $character = ($value & 0x07) << 18;
- $length = 4;
- $remaining = 3;
- }
- // Invalid byte:
- else
- {
- $valid = false;
- $remaining = 0;
- }
- }
- // Continuation byte:
- else
- {
- // Check that the byte is valid, then add it to the character:
- if (($value & 0xC0) === 0x80)
- {
- $remaining--;
- $character |= ($value & 0x3F) << ($remaining * 6);
- }
- // If it is invalid, count the sequence as invalid and reprocess the current byte as the start of a sequence:
- else
- {
- $valid = false;
- $remaining = 0;
- $i--;
- }
- }
-
- // If we've reached the end of the current byte sequence, append it to Unicode::$data
- if (!$remaining)
- {
- // Percent encode anything invalid or not in iunreserved
- if (
- // Invalid sequences
- !$valid
- // Non-shortest form sequences are invalid
- || $length > 1 && $character <= 0x7F
- || $length > 2 && $character <= 0x7FF
- || $length > 3 && $character <= 0xFFFF
- // Outside of range of iunreserved codepoints
- || $character < 0x2D
- || $character > 0xEFFFD
- // Noncharacters
- || ($character & 0xFFFE) === 0xFFFE
- || $character >= 0xFDD0 && $character <= 0xFDEF
- // Everything else not in iunreserved (this is all BMP)
- || $character === 0x2F
- || $character > 0x39 && $character < 0x41
- || $character > 0x5A && $character < 0x61
- || $character > 0x7A && $character < 0x7E
- || $character > 0x7E && $character < 0xA0
- || $character > 0xD7FF && $character < 0xF900
- )
- {
- for ($j = $start; $j <= $i; $j++)
- {
- $string .= '%' . strtoupper($bytes[$j]);
- }
- }
- else
- {
- for ($j = $start; $j <= $i; $j++)
- {
- $string .= chr(hexdec($bytes[$j]));
- }
- }
- }
- }
-
- // If we have any bytes left over they are invalid (i.e., we are
- // mid-way through a multi-byte sequence)
- if ($remaining)
- {
- for ($j = $start; $j < $len; $j++)
- {
- $string .= '%' . strtoupper($bytes[$j]);
- }
- }
-
- return $string;
- }
-
- protected function scheme_normalization()
- {
- if (isset($this->normalization[$this->scheme]['iuserinfo']) && $this->iuserinfo === $this->normalization[$this->scheme]['iuserinfo'])
- {
- $this->iuserinfo = null;
- }
- if (isset($this->normalization[$this->scheme]['ihost']) && $this->ihost === $this->normalization[$this->scheme]['ihost'])
- {
- $this->ihost = null;
- }
- if (isset($this->normalization[$this->scheme]['port']) && $this->port === $this->normalization[$this->scheme]['port'])
- {
- $this->port = null;
- }
- if (isset($this->normalization[$this->scheme]['ipath']) && $this->ipath === $this->normalization[$this->scheme]['ipath'])
- {
- $this->ipath = '';
- }
- if (isset($this->normalization[$this->scheme]['iquery']) && $this->iquery === $this->normalization[$this->scheme]['iquery'])
- {
- $this->iquery = null;
- }
- if (isset($this->normalization[$this->scheme]['ifragment']) && $this->ifragment === $this->normalization[$this->scheme]['ifragment'])
- {
- $this->ifragment = null;
- }
- }
-
- /**
- * Check if the object represents a valid IRI. This needs to be done on each
- * call as some things change depending on another part of the IRI.
- *
- * @return bool
- */
- public function is_valid()
- {
- $isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null;
- if ($this->ipath !== '' &&
- (
- $isauthority && (
- $this->ipath[0] !== '/' ||
- substr($this->ipath, 0, 2) === '//'
- ) ||
- (
- $this->scheme === null &&
- !$isauthority &&
- strpos($this->ipath, ':') !== false &&
- (strpos($this->ipath, '/') === false ? true : strpos($this->ipath, ':') < strpos($this->ipath, '/'))
- )
- )
- )
- {
- return false;
- }
-
- return true;
- }
-
- /**
- * Set the entire IRI. Returns true on success, false on failure (if there
- * are any invalid characters).
- *
- * @param string $iri
- * @return bool
- */
- public function set_iri($iri)
- {
- static $cache;
- if (!$cache)
- {
- $cache = array();
- }
-
- if ($iri === null)
- {
- return true;
- }
- elseif (isset($cache[$iri]))
- {
- list($this->scheme,
- $this->iuserinfo,
- $this->ihost,
- $this->port,
- $this->ipath,
- $this->iquery,
- $this->ifragment,
- $return) = $cache[$iri];
- return $return;
- }
- else
- {
- $parsed = $this->parse_iri((string) $iri);
- if (!$parsed)
- {
- return false;
- }
-
- $return = $this->set_scheme($parsed['scheme'])
- && $this->set_authority($parsed['authority'])
- && $this->set_path($parsed['path'])
- && $this->set_query($parsed['query'])
- && $this->set_fragment($parsed['fragment']);
-
- $cache[$iri] = array($this->scheme,
- $this->iuserinfo,
- $this->ihost,
- $this->port,
- $this->ipath,
- $this->iquery,
- $this->ifragment,
- $return);
- return $return;
- }
- }
-
- /**
- * Set the scheme. Returns true on success, false on failure (if there are
- * any invalid characters).
- *
- * @param string $scheme
- * @return bool
- */
- public function set_scheme($scheme)
- {
- if ($scheme === null)
- {
- $this->scheme = null;
- }
- elseif (!preg_match('/^[A-Za-z][0-9A-Za-z+\-.]*$/', $scheme))
- {
- $this->scheme = null;
- return false;
- }
- else
- {
- $this->scheme = strtolower($scheme);
- }
- return true;
- }
-
- /**
- * Set the authority. Returns true on success, false on failure (if there are
- * any invalid characters).
- *
- * @param string $authority
- * @return bool
- */
- public function set_authority($authority)
- {
- static $cache;
- if (!$cache)
- $cache = array();
-
- if ($authority === null)
- {
- $this->iuserinfo = null;
- $this->ihost = null;
- $this->port = null;
- return true;
- }
- elseif (isset($cache[$authority]))
- {
- list($this->iuserinfo,
- $this->ihost,
- $this->port,
- $return) = $cache[$authority];
-
- return $return;
- }
- else
- {
- $remaining = $authority;
- if (($iuserinfo_end = strrpos($remaining, '@')) !== false)
- {
- $iuserinfo = substr($remaining, 0, $iuserinfo_end);
- $remaining = substr($remaining, $iuserinfo_end + 1);
- }
- else
- {
- $iuserinfo = null;
- }
- if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false)
- {
- if (($port = substr($remaining, $port_start + 1)) === false)
- {
- $port = null;
- }
- $remaining = substr($remaining, 0, $port_start);
- }
- else
- {
- $port = null;
- }
-
- $return = $this->set_userinfo($iuserinfo) &&
- $this->set_host($remaining) &&
- $this->set_port($port);
-
- $cache[$authority] = array($this->iuserinfo,
- $this->ihost,
- $this->port,
- $return);
-
- return $return;
- }
- }
-
- /**
- * Set the iuserinfo.
- *
- * @param string $iuserinfo
- * @return bool
- */
- public function set_userinfo($iuserinfo)
- {
- if ($iuserinfo === null)
- {
- $this->iuserinfo = null;
- }
- else
- {
- $this->iuserinfo = $this->replace_invalid_with_pct_encoding($iuserinfo, '!$&\'()*+,;=:');
- $this->scheme_normalization();
- }
-
- return true;
- }
-
- /**
- * Set the ihost. Returns true on success, false on failure (if there are
- * any invalid characters).
- *
- * @param string $ihost
- * @return bool
- */
- public function set_host($ihost)
- {
- if ($ihost === null)
- {
- $this->ihost = null;
- return true;
- }
- elseif (substr($ihost, 0, 1) === '[' && substr($ihost, -1) === ']')
- {
- if (SimplePie_Net_IPv6::check_ipv6(substr($ihost, 1, -1)))
- {
- $this->ihost = '[' . SimplePie_Net_IPv6::compress(substr($ihost, 1, -1)) . ']';
- }
- else
- {
- $this->ihost = null;
- return false;
- }
- }
- else
- {
- $ihost = $this->replace_invalid_with_pct_encoding($ihost, '!$&\'()*+,;=');
-
- // Lowercase, but ignore pct-encoded sections (as they should
- // remain uppercase). This must be done after the previous step
- // as that can add unescaped characters.
- $position = 0;
- $strlen = strlen($ihost);
- while (($position += strcspn($ihost, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ%', $position)) < $strlen)
- {
- if ($ihost[$position] === '%')
- {
- $position += 3;
- }
- else
- {
- $ihost[$position] = strtolower($ihost[$position]);
- $position++;
- }
- }
-
- $this->ihost = $ihost;
- }
-
- $this->scheme_normalization();
-
- return true;
- }
-
- /**
- * Set the port. Returns true on success, false on failure (if there are
- * any invalid characters).
- *
- * @param string $port
- * @return bool
- */
- public function set_port($port)
- {
- if ($port === null)
- {
- $this->port = null;
- return true;
- }
- elseif (strspn($port, '0123456789') === strlen($port))
- {
- $this->port = (int) $port;
- $this->scheme_normalization();
- return true;
- }
- else
- {
- $this->port = null;
- return false;
- }
- }
-
- /**
- * Set the ipath.
- *
- * @param string $ipath
- * @return bool
- */
- public function set_path($ipath)
- {
- static $cache;
- if (!$cache)
- {
- $cache = array();
- }
-
- $ipath = (string) $ipath;
-
- if (isset($cache[$ipath]))
- {
- $this->ipath = $cache[$ipath][(int) ($this->scheme !== null)];
- }
- else
- {
- $valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/');
- $removed = $this->remove_dot_segments($valid);
-
- $cache[$ipath] = array($valid, $removed);
- $this->ipath = ($this->scheme !== null) ? $removed : $valid;
- }
-
- $this->scheme_normalization();
- return true;
- }
-
- /**
- * Set the iquery.
- *
- * @param string $iquery
- * @return bool
- */
- public function set_query($iquery)
- {
- if ($iquery === null)
- {
- $this->iquery = null;
- }
- else
- {
- $this->iquery = $this->replace_invalid_with_pct_encoding($iquery, '!$&\'()*+,;=:@/?', true);
- $this->scheme_normalization();
- }
- return true;
- }
-
- /**
- * Set the ifragment.
- *
- * @param string $ifragment
- * @return bool
- */
- public function set_fragment($ifragment)
- {
- if ($ifragment === null)
- {
- $this->ifragment = null;
- }
- else
- {
- $this->ifragment = $this->replace_invalid_with_pct_encoding($ifragment, '!$&\'()*+,;=:@/?');
- $this->scheme_normalization();
- }
- return true;
- }
-
- /**
- * Convert an IRI to a URI (or parts thereof)
- *
- * @return string
- */
- public function to_uri($string)
- {
- static $non_ascii;
- if (!$non_ascii)
- {
- $non_ascii = implode('', range("\x80", "\xFF"));
- }
-
- $position = 0;
- $strlen = strlen($string);
- while (($position += strcspn($string, $non_ascii, $position)) < $strlen)
- {
- $string = substr_replace($string, sprintf('%%%02X', ord($string[$position])), $position, 1);
- $position += 3;
- $strlen += 2;
- }
-
- return $string;
- }
-
- /**
- * Get the complete IRI
- *
- * @return string
- */
- public function get_iri()
- {
- if (!$this->is_valid())
- {
- return false;
- }
-
- $iri = '';
- if ($this->scheme !== null)
- {
- $iri .= $this->scheme . ':';
- }
- if (($iauthority = $this->get_iauthority()) !== null)
- {
- $iri .= '//' . $iauthority;
- }
- if ($this->ipath !== '')
- {
- $iri .= $this->ipath;
- }
- elseif (!empty($this->normalization[$this->scheme]['ipath']) && $iauthority !== null && $iauthority !== '')
- {
- $iri .= $this->normalization[$this->scheme]['ipath'];
- }
- if ($this->iquery !== null)
- {
- $iri .= '?' . $this->iquery;
- }
- if ($this->ifragment !== null)
- {
- $iri .= '#' . $this->ifragment;
- }
-
- return $iri;
- }
-
- /**
- * Get the complete URI
- *
- * @return string
- */
- public function get_uri()
- {
- return $this->to_uri($this->get_iri());
- }
-
- /**
- * Get the complete iauthority
- *
- * @return string
- */
- protected function get_iauthority()
- {
- if ($this->iuserinfo !== null || $this->ihost !== null || $this->port !== null)
- {
- $iauthority = '';
- if ($this->iuserinfo !== null)
- {
- $iauthority .= $this->iuserinfo . '@';
- }
- if ($this->ihost !== null)
- {
- $iauthority .= $this->ihost;
- }
- if ($this->port !== null)
- {
- $iauthority .= ':' . $this->port;
- }
- return $iauthority;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the complete authority
- *
- * @return string
- */
- protected function get_authority()
- {
- $iauthority = $this->get_iauthority();
- if (is_string($iauthority))
- return $this->to_uri($iauthority);
- else
- return $iauthority;
- }
-}
-
-/**
- * Manages all item-related data
- *
- * Used by {@see SimplePie::get_item()} and {@see SimplePie::get_items()}
- *
- * This class can be overloaded with {@see SimplePie::set_item_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Item
-{
- /**
- * Parent feed
- *
- * @access private
- * @var SimplePie
- */
- var $feed;
-
- /**
- * Raw data
- *
- * @access private
- * @var array
- */
- var $data = array();
-
- /**
- * Registry object
- *
- * @see set_registry
- * @var SimplePie_Registry
- */
- protected $registry;
-
- /**
- * Create a new item object
- *
- * This is usually used by {@see SimplePie::get_items} and
- * {@see SimplePie::get_item}. Avoid creating this manually.
- *
- * @param SimplePie $feed Parent feed
- * @param array $data Raw data
- */
- public function __construct($feed, $data)
- {
- $this->feed = $feed;
- $this->data = $data;
- }
-
- /**
- * Set the registry handler
- *
- * This is usually used by {@see SimplePie_Registry::create}
- *
- * @since 1.3
- * @param SimplePie_Registry $registry
- */
- public function set_registry(SimplePie_Registry $registry)
- {
- $this->registry = $registry;
- }
-
- /**
- * Get a string representation of the item
- *
- * @return string
- */
- public function __toString()
- {
- return md5(serialize($this->data));
- }
-
- /**
- * Remove items that link back to this before destroying this object
- */
- public function __destruct()
- {
- if ((version_compare(PHP_VERSION, '5.3', '<') || !gc_enabled()) && !ini_get('zend.ze1_compatibility_mode'))
- {
- unset($this->feed);
- }
- }
-
- /**
- * Get data for an item-level element
- *
- * This method allows you to get access to ANY element/attribute that is a
- * sub-element of the item/entry tag.
- *
- * See {@see SimplePie::get_feed_tags()} for a description of the return value
- *
- * @since 1.0
- * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
- * @param string $namespace The URL of the XML namespace of the elements you're trying to access
- * @param string $tag Tag name
- * @return array
- */
- public function get_item_tags($namespace, $tag)
- {
- if (isset($this->data['child'][$namespace][$tag]))
- {
- return $this->data['child'][$namespace][$tag];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the base URL value from the parent feed
- *
- * Uses `<xml:base>`
- *
- * @param array $element
- * @return string
- */
- public function get_base($element = array())
- {
- return $this->feed->get_base($element);
- }
-
- /**
- * Sanitize feed data
- *
- * @access private
- * @see SimplePie::sanitize()
- * @param string $data Data to sanitize
- * @param int $type One of the SIMPLEPIE_CONSTRUCT_* constants
- * @param string $base Base URL to resolve URLs against
- * @return string Sanitized data
- */
- public function sanitize($data, $type, $base = '')
- {
- return $this->feed->sanitize($data, $type, $base);
- }
-
- /**
- * Get the parent feed
- *
- * Note: this may not work as you think for multifeeds!
- *
- * @link http://simplepie.org/faq/typical_multifeed_gotchas#missing_data_from_feed
- * @since 1.0
- * @return SimplePie
- */
- public function get_feed()
- {
- return $this->feed;
- }
-
- /**
- * Get the unique identifier for the item
- *
- * This is usually used when writing code to check for new items in a feed.
- *
- * Uses `<atom:id>`, `<guid>`, `<dc:identifier>` or the `about` attribute
- * for RDF. If none of these are supplied (or `$hash` is true), creates an
- * MD5 hash based on the permalink and title. If either of those are not
- * supplied, creates a hash based on the full feed data.
- *
- * @since Beta 2
- * @param boolean $hash Should we force using a hash instead of the supplied ID?
- * @return string
- */
- public function get_id($hash = false)
- {
- if (!$hash)
- {
- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'id'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'id'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'guid'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'identifier'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'identifier'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif (isset($this->data['attribs'][SIMPLEPIE_NAMESPACE_RDF]['about']))
- {
- return $this->sanitize($this->data['attribs'][SIMPLEPIE_NAMESPACE_RDF]['about'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif (($return = $this->get_permalink()) !== null)
- {
- return $return;
- }
- elseif (($return = $this->get_title()) !== null)
- {
- return $return;
- }
- }
- if ($this->get_permalink() !== null || $this->get_title() !== null)
- {
- return md5($this->get_permalink() . $this->get_title());
- }
- else
- {
- return md5(serialize($this->data));
- }
- }
-
- /**
- * Get the title of the item
- *
- * Uses `<atom:title>`, `<title>` or `<dc:title>`
- *
- * @since Beta 2 (previously called `get_item_title` since 0.8)
- * @return string|null
- */
- public function get_title()
- {
- if (!isset($this->data['title']))
- {
- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
- {
- $this->data['title'] = $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
- {
- $this->data['title'] = $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
- {
- $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
- {
- $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
- {
- $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
- {
- $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
- {
- $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $this->data['title'] = null;
- }
- }
- return $this->data['title'];
- }
-
- /**
- * Get the content for the item
- *
- * Prefers summaries over full content , but will return full content if a
- * summary does not exist.
- *
- * To prefer full content instead, use {@see get_content}
- *
- * Uses `<atom:summary>`, `<description>`, `<dc:description>` or
- * `<itunes:subtitle>`
- *
- * @since 0.8
- * @param boolean $description_only Should we avoid falling back to the content?
- * @return string|null
- */
- public function get_description($description_only = false)
- {
- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'summary'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'summary'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML);
- }
-
- elseif (!$description_only)
- {
- return $this->get_content(true);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the content for the item
- *
- * Prefers full content over summaries, but will return a summary if full
- * content does not exist.
- *
- * To prefer summaries instead, use {@see get_description}
- *
- * Uses `<atom:content>` or `<content:encoded>` (RSS 1.0 Content Module)
- *
- * @since 1.0
- * @param boolean $content_only Should we avoid falling back to the description?
- * @return string|null
- */
- public function get_content($content_only = false)
- {
- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'content'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_content_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'content'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT, 'encoded'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
- }
- elseif (!$content_only)
- {
- return $this->get_description(true);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a category for the item
- *
- * @since Beta 3 (previously called `get_categories()` since Beta 2)
- * @param int $key The category that you want to return. Remember that arrays begin with 0, not 1
- * @return SimplePie_Category|null
- */
- public function get_category($key = 0)
- {
- $categories = $this->get_categories();
- if (isset($categories[$key]))
- {
- return $categories[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all categories for the item
- *
- * Uses `<atom:category>`, `<category>` or `<dc:subject>`
- *
- * @since Beta 3
- * @return array|null List of {@see SimplePie_Category} objects
- */
- public function get_categories()
- {
- $categories = array();
-
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
- {
- $term = null;
- $scheme = null;
- $label = null;
- if (isset($category['attribs']['']['term']))
- {
- $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['scheme']))
- {
- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['label']))
- {
- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $categories[] = $this->registry->create('Category', array($term, $scheme, $label));
- }
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
- {
- // This is really the label, but keep this as the term also for BC.
- // Label will also work on retrieving because that falls back to term.
- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- if (isset($category['attribs']['']['domain']))
- {
- $scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $scheme = null;
- }
- $categories[] = $this->registry->create('Category', array($term, $scheme, null));
- }
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
- {
- $categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
- {
- $categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
-
- if (!empty($categories))
- {
- return array_unique($categories);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get an author for the item
- *
- * @since Beta 2
- * @param int $key The author that you want to return. Remember that arrays begin with 0, not 1
- * @return SimplePie_Author|null
- */
- public function get_author($key = 0)
- {
- $authors = $this->get_authors();
- if (isset($authors[$key]))
- {
- return $authors[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a contributor for the item
- *
- * @since 1.1
- * @param int $key The contrbutor that you want to return. Remember that arrays begin with 0, not 1
- * @return SimplePie_Author|null
- */
- public function get_contributor($key = 0)
- {
- $contributors = $this->get_contributors();
- if (isset($contributors[$key]))
- {
- return $contributors[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all contributors for the item
- *
- * Uses `<atom:contributor>`
- *
- * @since 1.1
- * @return array|null List of {@see SimplePie_Author} objects
- */
- public function get_contributors()
- {
- $contributors = array();
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
- {
- $name = null;
- $uri = null;
- $email = null;
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
- {
- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
- {
- $uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
- {
- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $uri !== null)
- {
- $contributors[] = $this->registry->create('Author', array($name, $uri, $email));
- }
- }
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
- {
- $name = null;
- $url = null;
- $email = null;
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
- {
- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
- {
- $url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
- {
- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $url !== null)
- {
- $contributors[] = $this->registry->create('Author', array($name, $url, $email));
- }
- }
-
- if (!empty($contributors))
- {
- return array_unique($contributors);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all authors for the item
- *
- * Uses `<atom:author>`, `<author>`, `<dc:creator>` or `<itunes:author>`
- *
- * @since Beta 2
- * @return array|null List of {@see SimplePie_Author} objects
- */
- public function get_authors()
- {
- $authors = array();
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
- {
- $name = null;
- $uri = null;
- $email = null;
- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
- {
- $name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
- {
- $uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
- }
- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
- {
- $email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $uri !== null)
- {
- $authors[] = $this->registry->create('Author', array($name, $uri, $email));
- }
- }
- if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
- {
- $name = null;
- $url = null;
- $email = null;
- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
- {
- $name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
- {
- $url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
- }
- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
- {
- $email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $url !== null)
- {
- $authors[] = $this->registry->create('Author', array($name, $url, $email));
- }
- }
- if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'author'))
- {
- $authors[] = $this->registry->create('Author', array(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)));
- }
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
- {
- $authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
- {
- $authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
- {
- $authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
-
- if (!empty($authors))
- {
- return array_unique($authors);
- }
- elseif (($source = $this->get_source()) && ($authors = $source->get_authors()))
- {
- return $authors;
- }
- elseif ($authors = $this->feed->get_authors())
- {
- return $authors;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the copyright info for the item
- *
- * Uses `<atom:rights>` or `<dc:rights>`
- *
- * @since 1.1
- * @return string
- */
- public function get_copyright()
- {
- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the posting date/time for the item
- *
- * Uses `<atom:published>`, `<atom:updated>`, `<atom:issued>`,
- * `<atom:modified>`, `<pubDate>` or `<dc:date>`
- *
- * Note: obeys PHP's timezone setting. To get a UTC date/time, use
- * {@see get_gmdate}
- *
- * @since Beta 2 (previously called `get_item_date` since 0.8)
- *
- * @param string $date_format Supports any PHP date format from {@see http://php.net/date} (empty for the raw data)
- * @return int|string|null
- */
- public function get_date($date_format = 'j F Y, g:i a')
- {
- if (!isset($this->data['date']))
- {
- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'published'))
- {
- $this->data['date']['raw'] = $return[0]['data'];
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated'))
- {
- $this->data['date']['raw'] = $return[0]['data'];
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'issued'))
- {
- $this->data['date']['raw'] = $return[0]['data'];
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'created'))
- {
- $this->data['date']['raw'] = $return[0]['data'];
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'modified'))
- {
- $this->data['date']['raw'] = $return[0]['data'];
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'pubDate'))
- {
- $this->data['date']['raw'] = $return[0]['data'];
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'date'))
- {
- $this->data['date']['raw'] = $return[0]['data'];
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'date'))
- {
- $this->data['date']['raw'] = $return[0]['data'];
- }
-
- if (!empty($this->data['date']['raw']))
- {
- $parser = $this->registry->call('Parse_Date', 'get');
- $this->data['date']['parsed'] = $parser->parse($this->data['date']['raw']);
- }
- else
- {
- $this->data['date'] = null;
- }
- }
- if ($this->data['date'])
- {
- $date_format = (string) $date_format;
- switch ($date_format)
- {
- case '':
- return $this->sanitize($this->data['date']['raw'], SIMPLEPIE_CONSTRUCT_TEXT);
-
- case 'U':
- return $this->data['date']['parsed'];
-
- default:
- return date($date_format, $this->data['date']['parsed']);
- }
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the update date/time for the item
- *
- * Uses `<atom:updated>`
- *
- * Note: obeys PHP's timezone setting. To get a UTC date/time, use
- * {@see get_gmdate}
- *
- * @param string $date_format Supports any PHP date format from {@see http://php.net/date} (empty for the raw data)
- * @return int|string|null
- */
- public function get_updated_date($date_format = 'j F Y, g:i a')
- {
- if (!isset($this->data['updated']))
- {
- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated'))
- {
- $this->data['updated']['raw'] = $return[0]['data'];
- }
-
- if (!empty($this->data['updated']['raw']))
- {
- $parser = $this->registry->call('Parse_Date', 'get');
- $this->data['updated']['parsed'] = $parser->parse($this->data['date']['raw']);
- }
- else
- {
- $this->data['updated'] = null;
- }
- }
- if ($this->data['updated'])
- {
- $date_format = (string) $date_format;
- switch ($date_format)
- {
- case '':
- return $this->sanitize($this->data['updated']['raw'], SIMPLEPIE_CONSTRUCT_TEXT);
-
- case 'U':
- return $this->data['updated']['parsed'];
-
- default:
- return date($date_format, $this->data['updated']['parsed']);
- }
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the localized posting date/time for the item
- *
- * Returns the date formatted in the localized language. To display in
- * languages other than the server's default, you need to change the locale
- * with {@link http://php.net/setlocale setlocale()}. The available
- * localizations depend on which ones are installed on your web server.
- *
- * @since 1.0
- *
- * @param string $date_format Supports any PHP date format from {@see http://php.net/strftime} (empty for the raw data)
- * @return int|string|null
- */
- public function get_local_date($date_format = '%c')
- {
- if (!$date_format)
- {
- return $this->sanitize($this->get_date(''), SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif (($date = $this->get_date('U')) !== null && $date !== false)
- {
- return strftime($date_format, $date);
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the posting date/time for the item (UTC time)
- *
- * @see get_date
- * @param string $date_format Supports any PHP date format from {@see http://php.net/date}
- * @return int|string|null
- */
- public function get_gmdate($date_format = 'j F Y, g:i a')
- {
- $date = $this->get_date('U');
- if ($date === null)
- {
- return null;
- }
-
- return gmdate($date_format, $date);
- }
-
- /**
- * Get the update date/time for the item (UTC time)
- *
- * @see get_updated_date
- * @param string $date_format Supports any PHP date format from {@see http://php.net/date}
- * @return int|string|null
- */
- public function get_updated_gmdate($date_format = 'j F Y, g:i a')
- {
- $date = $this->get_updated_date('U');
- if ($date === null)
- {
- return null;
- }
-
- return gmdate($date_format, $date);
- }
-
- /**
- * Get the permalink for the item
- *
- * Returns the first link available with a relationship of "alternate".
- * Identical to {@see get_link()} with key 0
- *
- * @see get_link
- * @since 0.8
- * @return string|null Permalink URL
- */
- public function get_permalink()
- {
- $link = $this->get_link();
- $enclosure = $this->get_enclosure(0);
- if ($link !== null)
- {
- return $link;
- }
- elseif ($enclosure !== null)
- {
- return $enclosure->get_link();
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get a single link for the item
- *
- * @since Beta 3
- * @param int $key The link that you want to return. Remember that arrays begin with 0, not 1
- * @param string $rel The relationship of the link to return
- * @return string|null Link URL
- */
- public function get_link($key = 0, $rel = 'alternate')
- {
- $links = $this->get_links($rel);
- if ($links[$key] !== null)
- {
- return $links[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all links for the item
- *
- * Uses `<atom:link>`, `<link>` or `<guid>`
- *
- * @since Beta 2
- * @param string $rel The relationship of links to return
- * @return array|null Links found for the item (strings)
- */
- public function get_links($rel = 'alternate')
- {
- if (!isset($this->data['links']))
- {
- $this->data['links'] = array();
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link)
- {
- if (isset($link['attribs']['']['href']))
- {
- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-
- }
- }
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link)
- {
- if (isset($link['attribs']['']['href']))
- {
- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
- }
- }
- if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
- {
- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
- }
- if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
- {
- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
- }
- if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
- {
- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
- }
- if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'guid'))
- {
- if (!isset($links[0]['attribs']['']['isPermaLink']) || strtolower(trim($links[0]['attribs']['']['isPermaLink'])) === 'true')
- {
- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
- }
- }
-
- $keys = array_keys($this->data['links']);
- foreach ($keys as $key)
- {
- if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key)))
- {
- if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
- {
- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
- $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
- }
- else
- {
- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
- }
- }
- elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
- {
- $this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
- }
- $this->data['links'][$key] = array_unique($this->data['links'][$key]);
- }
- }
- if (isset($this->data['links'][$rel]))
- {
- return $this->data['links'][$rel];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get an enclosure from the item
- *
- * Supports the <enclosure> RSS tag, as well as Media RSS and iTunes RSS.
- *
- * @since Beta 2
- * @todo Add ability to prefer one type of content over another (in a media group).
- * @param int $key The enclosure that you want to return. Remember that arrays begin with 0, not 1
- * @return SimplePie_Enclosure|null
- */
- public function get_enclosure($key = 0, $prefer = null)
- {
- $enclosures = $this->get_enclosures();
- if (isset($enclosures[$key]))
- {
- return $enclosures[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get all available enclosures (podcasts, etc.)
- *
- * Supports the <enclosure> RSS tag, as well as Media RSS and iTunes RSS.
- *
- * At this point, we're pretty much assuming that all enclosures for an item
- * are the same content. Anything else is too complicated to
- * properly support.
- *
- * @since Beta 2
- * @todo Add support for end-user defined sorting of enclosures by type/handler (so we can prefer the faster-loading FLV over MP4).
- * @todo If an element exists at a level, but it's value is empty, we should fall back to the value from the parent (if it exists).
- * @return array|null List of SimplePie_Enclosure items
- */
- public function get_enclosures()
- {
- if (!isset($this->data['enclosures']))
- {
- $this->data['enclosures'] = array();
-
- // Elements
- $captions_parent = null;
- $categories_parent = null;
- $copyrights_parent = null;
- $credits_parent = null;
- $description_parent = null;
- $duration_parent = null;
- $hashes_parent = null;
- $keywords_parent = null;
- $player_parent = null;
- $ratings_parent = null;
- $restrictions_parent = null;
- $thumbnails_parent = null;
- $title_parent = null;
-
- // Let's do the channel and item-level ones first, and just re-use them if we need to.
- $parent = $this->get_feed();
-
- // CAPTIONS
- if ($captions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text'))
- {
- foreach ($captions as $caption)
- {
- $caption_type = null;
- $caption_lang = null;
- $caption_startTime = null;
- $caption_endTime = null;
- $caption_text = null;
- if (isset($caption['attribs']['']['type']))
- {
- $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['lang']))
- {
- $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['start']))
- {
- $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['end']))
- {
- $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['data']))
- {
- $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $captions_parent[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
- }
- }
- elseif ($captions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text'))
- {
- foreach ($captions as $caption)
- {
- $caption_type = null;
- $caption_lang = null;
- $caption_startTime = null;
- $caption_endTime = null;
- $caption_text = null;
- if (isset($caption['attribs']['']['type']))
- {
- $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['lang']))
- {
- $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['start']))
- {
- $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['end']))
- {
- $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['data']))
- {
- $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $captions_parent[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
- }
- }
- if (is_array($captions_parent))
- {
- $captions_parent = array_values(array_unique($captions_parent));
- }
-
- // CATEGORIES
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category)
- {
- $term = null;
- $scheme = null;
- $label = null;
- if (isset($category['data']))
- {
- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['scheme']))
- {
- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $scheme = 'http://search.yahoo.com/mrss/category_schema';
- }
- if (isset($category['attribs']['']['label']))
- {
- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
- }
- foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category)
- {
- $term = null;
- $scheme = null;
- $label = null;
- if (isset($category['data']))
- {
- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['scheme']))
- {
- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $scheme = 'http://search.yahoo.com/mrss/category_schema';
- }
- if (isset($category['attribs']['']['label']))
- {
- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
- }
- foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'category') as $category)
- {
- $term = null;
- $scheme = 'http://www.itunes.com/dtds/podcast-1.0.dtd';
- $label = null;
- if (isset($category['attribs']['']['text']))
- {
- $label = $this->sanitize($category['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
-
- if (isset($category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category']))
- {
- foreach ((array) $category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'] as $subcategory)
- {
- if (isset($subcategory['attribs']['']['text']))
- {
- $label = $this->sanitize($subcategory['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
- }
- }
- }
- if (is_array($categories_parent))
- {
- $categories_parent = array_values(array_unique($categories_parent));
- }
-
- // COPYRIGHT
- if ($copyright = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright'))
- {
- $copyright_url = null;
- $copyright_label = null;
- if (isset($copyright[0]['attribs']['']['url']))
- {
- $copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($copyright[0]['data']))
- {
- $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $copyrights_parent = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
- }
- elseif ($copyright = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright'))
- {
- $copyright_url = null;
- $copyright_label = null;
- if (isset($copyright[0]['attribs']['']['url']))
- {
- $copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($copyright[0]['data']))
- {
- $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $copyrights_parent = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
- }
-
- // CREDITS
- if ($credits = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit'))
- {
- foreach ($credits as $credit)
- {
- $credit_role = null;
- $credit_scheme = null;
- $credit_name = null;
- if (isset($credit['attribs']['']['role']))
- {
- $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($credit['attribs']['']['scheme']))
- {
- $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $credit_scheme = 'urn:ebu';
- }
- if (isset($credit['data']))
- {
- $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $credits_parent[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
- }
- }
- elseif ($credits = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit'))
- {
- foreach ($credits as $credit)
- {
- $credit_role = null;
- $credit_scheme = null;
- $credit_name = null;
- if (isset($credit['attribs']['']['role']))
- {
- $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($credit['attribs']['']['scheme']))
- {
- $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $credit_scheme = 'urn:ebu';
- }
- if (isset($credit['data']))
- {
- $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $credits_parent[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
- }
- }
- if (is_array($credits_parent))
- {
- $credits_parent = array_values(array_unique($credits_parent));
- }
-
- // DESCRIPTION
- if ($description_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description'))
- {
- if (isset($description_parent[0]['data']))
- {
- $description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- }
- elseif ($description_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description'))
- {
- if (isset($description_parent[0]['data']))
- {
- $description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- }
-
- // DURATION
- if ($duration_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'duration'))
- {
- $seconds = null;
- $minutes = null;
- $hours = null;
- if (isset($duration_parent[0]['data']))
- {
- $temp = explode(':', $this->sanitize($duration_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
- if (sizeof($temp) > 0)
- {
- $seconds = (int) array_pop($temp);
- }
- if (sizeof($temp) > 0)
- {
- $minutes = (int) array_pop($temp);
- $seconds += $minutes * 60;
- }
- if (sizeof($temp) > 0)
- {
- $hours = (int) array_pop($temp);
- $seconds += $hours * 3600;
- }
- unset($temp);
- $duration_parent = $seconds;
- }
- }
-
- // HASHES
- if ($hashes_iterator = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash'))
- {
- foreach ($hashes_iterator as $hash)
- {
- $value = null;
- $algo = null;
- if (isset($hash['data']))
- {
- $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($hash['attribs']['']['algo']))
- {
- $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $algo = 'md5';
- }
- $hashes_parent[] = $algo.':'.$value;
- }
- }
- elseif ($hashes_iterator = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash'))
- {
- foreach ($hashes_iterator as $hash)
- {
- $value = null;
- $algo = null;
- if (isset($hash['data']))
- {
- $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($hash['attribs']['']['algo']))
- {
- $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $algo = 'md5';
- }
- $hashes_parent[] = $algo.':'.$value;
- }
- }
- if (is_array($hashes_parent))
- {
- $hashes_parent = array_values(array_unique($hashes_parent));
- }
-
- // KEYWORDS
- if ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords'))
- {
- if (isset($keywords[0]['data']))
- {
- $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
- foreach ($temp as $word)
- {
- $keywords_parent[] = trim($word);
- }
- }
- unset($temp);
- }
- elseif ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords'))
- {
- if (isset($keywords[0]['data']))
- {
- $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
- foreach ($temp as $word)
- {
- $keywords_parent[] = trim($word);
- }
- }
- unset($temp);
- }
- elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords'))
- {
- if (isset($keywords[0]['data']))
- {
- $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
- foreach ($temp as $word)
- {
- $keywords_parent[] = trim($word);
- }
- }
- unset($temp);
- }
- elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords'))
- {
- if (isset($keywords[0]['data']))
- {
- $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
- foreach ($temp as $word)
- {
- $keywords_parent[] = trim($word);
- }
- }
- unset($temp);
- }
- if (is_array($keywords_parent))
- {
- $keywords_parent = array_values(array_unique($keywords_parent));
- }
-
- // PLAYER
- if ($player_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player'))
- {
- if (isset($player_parent[0]['attribs']['']['url']))
- {
- $player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- }
- elseif ($player_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player'))
- {
- if (isset($player_parent[0]['attribs']['']['url']))
- {
- $player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- }
-
- // RATINGS
- if ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating'))
- {
- foreach ($ratings as $rating)
- {
- $rating_scheme = null;
- $rating_value = null;
- if (isset($rating['attribs']['']['scheme']))
- {
- $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $rating_scheme = 'urn:simple';
- }
- if (isset($rating['data']))
- {
- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
- }
- }
- elseif ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit'))
- {
- foreach ($ratings as $rating)
- {
- $rating_scheme = 'urn:itunes';
- $rating_value = null;
- if (isset($rating['data']))
- {
- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
- }
- }
- elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating'))
- {
- foreach ($ratings as $rating)
- {
- $rating_scheme = null;
- $rating_value = null;
- if (isset($rating['attribs']['']['scheme']))
- {
- $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $rating_scheme = 'urn:simple';
- }
- if (isset($rating['data']))
- {
- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
- }
- }
- elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit'))
- {
- foreach ($ratings as $rating)
- {
- $rating_scheme = 'urn:itunes';
- $rating_value = null;
- if (isset($rating['data']))
- {
- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
- }
- }
- if (is_array($ratings_parent))
- {
- $ratings_parent = array_values(array_unique($ratings_parent));
- }
-
- // RESTRICTIONS
- if ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction'))
- {
- foreach ($restrictions as $restriction)
- {
- $restriction_relationship = null;
- $restriction_type = null;
- $restriction_value = null;
- if (isset($restriction['attribs']['']['relationship']))
- {
- $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($restriction['attribs']['']['type']))
- {
- $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($restriction['data']))
- {
- $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
- }
- }
- elseif ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block'))
- {
- foreach ($restrictions as $restriction)
- {
- $restriction_relationship = 'allow';
- $restriction_type = null;
- $restriction_value = 'itunes';
- if (isset($restriction['data']) && strtolower($restriction['data']) === 'yes')
- {
- $restriction_relationship = 'deny';
- }
- $restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
- }
- }
- elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction'))
- {
- foreach ($restrictions as $restriction)
- {
- $restriction_relationship = null;
- $restriction_type = null;
- $restriction_value = null;
- if (isset($restriction['attribs']['']['relationship']))
- {
- $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($restriction['attribs']['']['type']))
- {
- $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($restriction['data']))
- {
- $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
- }
- }
- elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block'))
- {
- foreach ($restrictions as $restriction)
- {
- $restriction_relationship = 'allow';
- $restriction_type = null;
- $restriction_value = 'itunes';
- if (isset($restriction['data']) && strtolower($restriction['data']) === 'yes')
- {
- $restriction_relationship = 'deny';
- }
- $restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
- }
- }
- if (is_array($restrictions_parent))
- {
- $restrictions_parent = array_values(array_unique($restrictions_parent));
- }
- else
- {
- $restrictions_parent = array(new SimplePie_Restriction('allow', null, 'default'));
- }
-
- // THUMBNAILS
- if ($thumbnails = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
- {
- foreach ($thumbnails as $thumbnail)
- {
- if (isset($thumbnail['attribs']['']['url']))
- {
- $thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- }
- }
- elseif ($thumbnails = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
- {
- foreach ($thumbnails as $thumbnail)
- {
- if (isset($thumbnail['attribs']['']['url']))
- {
- $thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- }
- }
-
- // TITLES
- if ($title_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title'))
- {
- if (isset($title_parent[0]['data']))
- {
- $title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- }
- elseif ($title_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title'))
- {
- if (isset($title_parent[0]['data']))
- {
- $title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- }
-
- // Clear the memory
- unset($parent);
-
- // Attributes
- $bitrate = null;
- $channels = null;
- $duration = null;
- $expression = null;
- $framerate = null;
- $height = null;
- $javascript = null;
- $lang = null;
- $length = null;
- $medium = null;
- $samplingrate = null;
- $type = null;
- $url = null;
- $width = null;
-
- // Elements
- $captions = null;
- $categories = null;
- $copyrights = null;
- $credits = null;
- $description = null;
- $hashes = null;
- $keywords = null;
- $player = null;
- $ratings = null;
- $restrictions = null;
- $thumbnails = null;
- $title = null;
-
- // If we have media:group tags, loop through them.
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'group') as $group)
- {
- if(isset($group['child']) && isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content']))
- {
- // If we have media:content tags, loop through them.
- foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content)
- {
- if (isset($content['attribs']['']['url']))
- {
- // Attributes
- $bitrate = null;
- $channels = null;
- $duration = null;
- $expression = null;
- $framerate = null;
- $height = null;
- $javascript = null;
- $lang = null;
- $length = null;
- $medium = null;
- $samplingrate = null;
- $type = null;
- $url = null;
- $width = null;
-
- // Elements
- $captions = null;
- $categories = null;
- $copyrights = null;
- $credits = null;
- $description = null;
- $hashes = null;
- $keywords = null;
- $player = null;
- $ratings = null;
- $restrictions = null;
- $thumbnails = null;
- $title = null;
-
- // Start checking the attributes of media:content
- if (isset($content['attribs']['']['bitrate']))
- {
- $bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['channels']))
- {
- $channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['duration']))
- {
- $duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $duration = $duration_parent;
- }
- if (isset($content['attribs']['']['expression']))
- {
- $expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['framerate']))
- {
- $framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['height']))
- {
- $height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['lang']))
- {
- $lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['fileSize']))
- {
- $length = ceil($content['attribs']['']['fileSize']);
- }
- if (isset($content['attribs']['']['medium']))
- {
- $medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['samplingrate']))
- {
- $samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['type']))
- {
- $type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['width']))
- {
- $width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-
- // Checking the other optional media: elements. Priority: media:content, media:group, item, channel
-
- // CAPTIONS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
- {
- $caption_type = null;
- $caption_lang = null;
- $caption_startTime = null;
- $caption_endTime = null;
- $caption_text = null;
- if (isset($caption['attribs']['']['type']))
- {
- $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['lang']))
- {
- $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['start']))
- {
- $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['end']))
- {
- $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['data']))
- {
- $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $captions[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
- }
- if (is_array($captions))
- {
- $captions = array_values(array_unique($captions));
- }
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
- {
- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
- {
- $caption_type = null;
- $caption_lang = null;
- $caption_startTime = null;
- $caption_endTime = null;
- $caption_text = null;
- if (isset($caption['attribs']['']['type']))
- {
- $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['lang']))
- {
- $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['start']))
- {
- $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['end']))
- {
- $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['data']))
- {
- $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $captions[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
- }
- if (is_array($captions))
- {
- $captions = array_values(array_unique($captions));
- }
- }
- else
- {
- $captions = $captions_parent;
- }
-
- // CATEGORIES
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
- {
- foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
- {
- $term = null;
- $scheme = null;
- $label = null;
- if (isset($category['data']))
- {
- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['scheme']))
- {
- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $scheme = 'http://search.yahoo.com/mrss/category_schema';
- }
- if (isset($category['attribs']['']['label']))
- {
- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $categories[] = $this->registry->create('Category', array($term, $scheme, $label));
- }
- }
- if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
- {
- foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
- {
- $term = null;
- $scheme = null;
- $label = null;
- if (isset($category['data']))
- {
- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['scheme']))
- {
- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $scheme = 'http://search.yahoo.com/mrss/category_schema';
- }
- if (isset($category['attribs']['']['label']))
- {
- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $categories[] = $this->registry->create('Category', array($term, $scheme, $label));
- }
- }
- if (is_array($categories) && is_array($categories_parent))
- {
- $categories = array_values(array_unique(array_merge($categories, $categories_parent)));
- }
- elseif (is_array($categories))
- {
- $categories = array_values(array_unique($categories));
- }
- elseif (is_array($categories_parent))
- {
- $categories = array_values(array_unique($categories_parent));
- }
-
- // COPYRIGHTS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
- {
- $copyright_url = null;
- $copyright_label = null;
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
- {
- $copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
- {
- $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $copyrights = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
- {
- $copyright_url = null;
- $copyright_label = null;
- if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
- {
- $copyright_url = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
- {
- $copyright_label = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $copyrights = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
- }
- else
- {
- $copyrights = $copyrights_parent;
- }
-
- // CREDITS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
- {
- $credit_role = null;
- $credit_scheme = null;
- $credit_name = null;
- if (isset($credit['attribs']['']['role']))
- {
- $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($credit['attribs']['']['scheme']))
- {
- $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $credit_scheme = 'urn:ebu';
- }
- if (isset($credit['data']))
- {
- $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $credits[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
- }
- if (is_array($credits))
- {
- $credits = array_values(array_unique($credits));
- }
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
- {
- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
- {
- $credit_role = null;
- $credit_scheme = null;
- $credit_name = null;
- if (isset($credit['attribs']['']['role']))
- {
- $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($credit['attribs']['']['scheme']))
- {
- $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $credit_scheme = 'urn:ebu';
- }
- if (isset($credit['data']))
- {
- $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $credits[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
- }
- if (is_array($credits))
- {
- $credits = array_values(array_unique($credits));
- }
- }
- else
- {
- $credits = $credits_parent;
- }
-
- // DESCRIPTION
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
- {
- $description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
- {
- $description = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $description = $description_parent;
- }
-
- // HASHES
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
- {
- $value = null;
- $algo = null;
- if (isset($hash['data']))
- {
- $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($hash['attribs']['']['algo']))
- {
- $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $algo = 'md5';
- }
- $hashes[] = $algo.':'.$value;
- }
- if (is_array($hashes))
- {
- $hashes = array_values(array_unique($hashes));
- }
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
- {
- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
- {
- $value = null;
- $algo = null;
- if (isset($hash['data']))
- {
- $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($hash['attribs']['']['algo']))
- {
- $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $algo = 'md5';
- }
- $hashes[] = $algo.':'.$value;
- }
- if (is_array($hashes))
- {
- $hashes = array_values(array_unique($hashes));
- }
- }
- else
- {
- $hashes = $hashes_parent;
- }
-
- // KEYWORDS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
- {
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
- {
- $temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
- foreach ($temp as $word)
- {
- $keywords[] = trim($word);
- }
- unset($temp);
- }
- if (is_array($keywords))
- {
- $keywords = array_values(array_unique($keywords));
- }
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
- {
- if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
- {
- $temp = explode(',', $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
- foreach ($temp as $word)
- {
- $keywords[] = trim($word);
- }
- unset($temp);
- }
- if (is_array($keywords))
- {
- $keywords = array_values(array_unique($keywords));
- }
- }
- else
- {
- $keywords = $keywords_parent;
- }
-
- // PLAYER
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
- {
- $player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
- {
- $player = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- else
- {
- $player = $player_parent;
- }
-
- // RATINGS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
- {
- $rating_scheme = null;
- $rating_value = null;
- if (isset($rating['attribs']['']['scheme']))
- {
- $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $rating_scheme = 'urn:simple';
- }
- if (isset($rating['data']))
- {
- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $ratings[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
- }
- if (is_array($ratings))
- {
- $ratings = array_values(array_unique($ratings));
- }
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
- {
- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
- {
- $rating_scheme = null;
- $rating_value = null;
- if (isset($rating['attribs']['']['scheme']))
- {
- $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $rating_scheme = 'urn:simple';
- }
- if (isset($rating['data']))
- {
- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $ratings[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
- }
- if (is_array($ratings))
- {
- $ratings = array_values(array_unique($ratings));
- }
- }
- else
- {
- $ratings = $ratings_parent;
- }
-
- // RESTRICTIONS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
- {
- $restriction_relationship = null;
- $restriction_type = null;
- $restriction_value = null;
- if (isset($restriction['attribs']['']['relationship']))
- {
- $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($restriction['attribs']['']['type']))
- {
- $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($restriction['data']))
- {
- $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $restrictions[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
- }
- if (is_array($restrictions))
- {
- $restrictions = array_values(array_unique($restrictions));
- }
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
- {
- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
- {
- $restriction_relationship = null;
- $restriction_type = null;
- $restriction_value = null;
- if (isset($restriction['attribs']['']['relationship']))
- {
- $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($restriction['attribs']['']['type']))
- {
- $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($restriction['data']))
- {
- $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $restrictions[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
- }
- if (is_array($restrictions))
- {
- $restrictions = array_values(array_unique($restrictions));
- }
- }
- else
- {
- $restrictions = $restrictions_parent;
- }
-
- // THUMBNAILS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
- {
- $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- if (is_array($thumbnails))
- {
- $thumbnails = array_values(array_unique($thumbnails));
- }
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
- {
- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
- {
- $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- if (is_array($thumbnails))
- {
- $thumbnails = array_values(array_unique($thumbnails));
- }
- }
- else
- {
- $thumbnails = $thumbnails_parent;
- }
-
- // TITLES
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
- {
- $title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
- {
- $title = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $title = $title_parent;
- }
-
- $this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width));
- }
- }
- }
- }
-
- // If we have standalone media:content tags, loop through them.
- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content']))
- {
- foreach ((array) $this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content)
- {
- if (isset($content['attribs']['']['url']) || isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
- {
- // Attributes
- $bitrate = null;
- $channels = null;
- $duration = null;
- $expression = null;
- $framerate = null;
- $height = null;
- $javascript = null;
- $lang = null;
- $length = null;
- $medium = null;
- $samplingrate = null;
- $type = null;
- $url = null;
- $width = null;
-
- // Elements
- $captions = null;
- $categories = null;
- $copyrights = null;
- $credits = null;
- $description = null;
- $hashes = null;
- $keywords = null;
- $player = null;
- $ratings = null;
- $restrictions = null;
- $thumbnails = null;
- $title = null;
-
- // Start checking the attributes of media:content
- if (isset($content['attribs']['']['bitrate']))
- {
- $bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['channels']))
- {
- $channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['duration']))
- {
- $duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $duration = $duration_parent;
- }
- if (isset($content['attribs']['']['expression']))
- {
- $expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['framerate']))
- {
- $framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['height']))
- {
- $height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['lang']))
- {
- $lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['fileSize']))
- {
- $length = ceil($content['attribs']['']['fileSize']);
- }
- if (isset($content['attribs']['']['medium']))
- {
- $medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['samplingrate']))
- {
- $samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['type']))
- {
- $type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['width']))
- {
- $width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['attribs']['']['url']))
- {
- $url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- // Checking the other optional media: elements. Priority: media:content, media:group, item, channel
-
- // CAPTIONS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
- {
- $caption_type = null;
- $caption_lang = null;
- $caption_startTime = null;
- $caption_endTime = null;
- $caption_text = null;
- if (isset($caption['attribs']['']['type']))
- {
- $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['lang']))
- {
- $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['start']))
- {
- $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['attribs']['']['end']))
- {
- $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($caption['data']))
- {
- $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $captions[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
- }
- if (is_array($captions))
- {
- $captions = array_values(array_unique($captions));
- }
- }
- else
- {
- $captions = $captions_parent;
- }
-
- // CATEGORIES
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
- {
- foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
- {
- $term = null;
- $scheme = null;
- $label = null;
- if (isset($category['data']))
- {
- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['scheme']))
- {
- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $scheme = 'http://search.yahoo.com/mrss/category_schema';
- }
- if (isset($category['attribs']['']['label']))
- {
- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $categories[] = $this->registry->create('Category', array($term, $scheme, $label));
- }
- }
- if (is_array($categories) && is_array($categories_parent))
- {
- $categories = array_values(array_unique(array_merge($categories, $categories_parent)));
- }
- elseif (is_array($categories))
- {
- $categories = array_values(array_unique($categories));
- }
- elseif (is_array($categories_parent))
- {
- $categories = array_values(array_unique($categories_parent));
- }
- else
- {
- $categories = null;
- }
-
- // COPYRIGHTS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
- {
- $copyright_url = null;
- $copyright_label = null;
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
- {
- $copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
- {
- $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $copyrights = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
- }
- else
- {
- $copyrights = $copyrights_parent;
- }
-
- // CREDITS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
- {
- $credit_role = null;
- $credit_scheme = null;
- $credit_name = null;
- if (isset($credit['attribs']['']['role']))
- {
- $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($credit['attribs']['']['scheme']))
- {
- $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $credit_scheme = 'urn:ebu';
- }
- if (isset($credit['data']))
- {
- $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $credits[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
- }
- if (is_array($credits))
- {
- $credits = array_values(array_unique($credits));
- }
- }
- else
- {
- $credits = $credits_parent;
- }
-
- // DESCRIPTION
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
- {
- $description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $description = $description_parent;
- }
-
- // HASHES
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
- {
- $value = null;
- $algo = null;
- if (isset($hash['data']))
- {
- $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($hash['attribs']['']['algo']))
- {
- $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $algo = 'md5';
- }
- $hashes[] = $algo.':'.$value;
- }
- if (is_array($hashes))
- {
- $hashes = array_values(array_unique($hashes));
- }
- }
- else
- {
- $hashes = $hashes_parent;
- }
-
- // KEYWORDS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
- {
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
- {
- $temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
- foreach ($temp as $word)
- {
- $keywords[] = trim($word);
- }
- unset($temp);
- }
- if (is_array($keywords))
- {
- $keywords = array_values(array_unique($keywords));
- }
- }
- else
- {
- $keywords = $keywords_parent;
- }
-
- // PLAYER
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
- {
- $player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- else
- {
- $player = $player_parent;
- }
-
- // RATINGS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
- {
- $rating_scheme = null;
- $rating_value = null;
- if (isset($rating['attribs']['']['scheme']))
- {
- $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $rating_scheme = 'urn:simple';
- }
- if (isset($rating['data']))
- {
- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $ratings[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
- }
- if (is_array($ratings))
- {
- $ratings = array_values(array_unique($ratings));
- }
- }
- else
- {
- $ratings = $ratings_parent;
- }
-
- // RESTRICTIONS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
- {
- $restriction_relationship = null;
- $restriction_type = null;
- $restriction_value = null;
- if (isset($restriction['attribs']['']['relationship']))
- {
- $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($restriction['attribs']['']['type']))
- {
- $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($restriction['data']))
- {
- $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $restrictions[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
- }
- if (is_array($restrictions))
- {
- $restrictions = array_values(array_unique($restrictions));
- }
- }
- else
- {
- $restrictions = $restrictions_parent;
- }
-
- // THUMBNAILS
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
- {
- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
- {
- $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- if (is_array($thumbnails))
- {
- $thumbnails = array_values(array_unique($thumbnails));
- }
- }
- else
- {
- $thumbnails = $thumbnails_parent;
- }
-
- // TITLES
- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
- {
- $title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $title = $title_parent;
- }
-
- $this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width));
- }
- }
- }
-
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link)
- {
- if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] === 'enclosure')
- {
- // Attributes
- $bitrate = null;
- $channels = null;
- $duration = null;
- $expression = null;
- $framerate = null;
- $height = null;
- $javascript = null;
- $lang = null;
- $length = null;
- $medium = null;
- $samplingrate = null;
- $type = null;
- $url = null;
- $width = null;
-
- $url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
- if (isset($link['attribs']['']['type']))
- {
- $type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($link['attribs']['']['length']))
- {
- $length = ceil($link['attribs']['']['length']);
- }
-
- // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
- $this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
- }
- }
-
- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link)
- {
- if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] === 'enclosure')
- {
- // Attributes
- $bitrate = null;
- $channels = null;
- $duration = null;
- $expression = null;
- $framerate = null;
- $height = null;
- $javascript = null;
- $lang = null;
- $length = null;
- $medium = null;
- $samplingrate = null;
- $type = null;
- $url = null;
- $width = null;
-
- $url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
- if (isset($link['attribs']['']['type']))
- {
- $type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($link['attribs']['']['length']))
- {
- $length = ceil($link['attribs']['']['length']);
- }
-
- // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
- $this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
- }
- }
-
- if ($enclosure = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'enclosure'))
- {
- if (isset($enclosure[0]['attribs']['']['url']))
- {
- // Attributes
- $bitrate = null;
- $channels = null;
- $duration = null;
- $expression = null;
- $framerate = null;
- $height = null;
- $javascript = null;
- $lang = null;
- $length = null;
- $medium = null;
- $samplingrate = null;
- $type = null;
- $url = null;
- $width = null;
-
- $url = $this->sanitize($enclosure[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($enclosure[0]));
- if (isset($enclosure[0]['attribs']['']['type']))
- {
- $type = $this->sanitize($enclosure[0]['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($enclosure[0]['attribs']['']['length']))
- {
- $length = ceil($enclosure[0]['attribs']['']['length']);
- }
-
- // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
- $this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
- }
- }
-
- if (sizeof($this->data['enclosures']) === 0 && ($url || $type || $length || $bitrate || $captions_parent || $categories_parent || $channels || $copyrights_parent || $credits_parent || $description_parent || $duration_parent || $expression || $framerate || $hashes_parent || $height || $keywords_parent || $lang || $medium || $player_parent || $ratings_parent || $restrictions_parent || $samplingrate || $thumbnails_parent || $title_parent || $width))
- {
- // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
- $this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
- }
-
- $this->data['enclosures'] = array_values(array_unique($this->data['enclosures']));
- }
- if (!empty($this->data['enclosures']))
- {
- return $this->data['enclosures'];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the latitude coordinates for the item
- *
- * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
- *
- * Uses `<geo:lat>` or `<georss:point>`
- *
- * @since 1.0
- * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
- * @link http://www.georss.org/ GeoRSS
- * @return string|null
- */
- public function get_latitude()
- {
- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
- {
- return (float) $return[0]['data'];
- }
- elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
- {
- return (float) $match[1];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the longitude coordinates for the item
- *
- * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
- *
- * Uses `<geo:long>`, `<geo:lon>` or `<georss:point>`
- *
- * @since 1.0
- * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
- * @link http://www.georss.org/ GeoRSS
- * @return string|null
- */
- public function get_longitude()
- {
- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
- {
- return (float) $return[0]['data'];
- }
- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
- {
- return (float) $return[0]['data'];
- }
- elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
- {
- return (float) $match[2];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the `<atom:source>` for the item
- *
- * @since 1.1
- * @return SimplePie_Source|null
- */
- public function get_source()
- {
- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'source'))
- {
- return $this->registry->create('Source', array($this, $return[0]));
- }
- else
- {
- return null;
- }
- }
-}
-
-/**
- * Used for feed auto-discovery
- *
- *
- * This class can be overloaded with {@see SimplePie::set_locator_class()}
- *
- * @package SimplePie
- */
-class SimplePie_Locator
-{
- var $useragent;
- var $timeout;
- var $file;
- var $local = array();
- var $elsewhere = array();
- var $cached_entities = array();
- var $http_base;
- var $base;
- var $base_location = 0;
- var $checked_feeds = 0;
- var $max_checked_feeds = 10;
- protected $registry;
-
- public function __construct(SimplePie_File $file, $timeout = 10, $useragent = null, $max_checked_feeds = 10)
- {
- $this->file = $file;
- $this->useragent = $useragent;
- $this->timeout = $timeout;
- $this->max_checked_feeds = $max_checked_feeds;
-
- if (class_exists('DOMDocument'))
- {
- $this->dom = new DOMDocument();
-
- set_error_handler(array('SimplePie_Misc', 'silence_errors'));
- $this->dom->loadHTML($this->file->body);
- restore_error_handler();
- }
- else
- {
- $this->dom = null;
- }
- }
-
- public function set_registry(SimplePie_Registry $registry)
- {
- $this->registry = $registry;
- }
-
- public function find($type = SIMPLEPIE_LOCATOR_ALL, &$working)
- {
- if ($this->is_feed($this->file))
- {
- return $this->file;
- }
-
- if ($this->file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
- {
- $sniffer = $this->registry->create('Content_Type_Sniffer', array($this->file));
- if ($sniffer->get_type() !== 'text/html')
- {
- return null;
- }
- }
-
- if ($type & ~SIMPLEPIE_LOCATOR_NONE)
- {
- $this->get_base();
- }
-
- if ($type & SIMPLEPIE_LOCATOR_AUTODISCOVERY && $working = $this->autodiscovery())
- {
- return $working[0];
- }
-
- if ($type & (SIMPLEPIE_LOCATOR_LOCAL_EXTENSION | SIMPLEPIE_LOCATOR_LOCAL_BODY | SIMPLEPIE_LOCATOR_REMOTE_EXTENSION | SIMPLEPIE_LOCATOR_REMOTE_BODY) && $this->get_links())
- {
- if ($type & SIMPLEPIE_LOCATOR_LOCAL_EXTENSION && $working = $this->extension($this->local))
- {
- return $working;
- }
-
- if ($type & SIMPLEPIE_LOCATOR_LOCAL_BODY && $working = $this->body($this->local))
- {
- return $working;
- }
-
- if ($type & SIMPLEPIE_LOCATOR_REMOTE_EXTENSION && $working = $this->extension($this->elsewhere))
- {
- return $working;
- }
-
- if ($type & SIMPLEPIE_LOCATOR_REMOTE_BODY && $working = $this->body($this->elsewhere))
- {
- return $working;
- }
- }
- return null;
- }
-
- public function is_feed($file)
- {
- if ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
- {
- $sniffer = $this->registry->create('Content_Type_Sniffer', array($file));
- $sniffed = $sniffer->get_type();
- if (in_array($sniffed, array('application/rss+xml', 'application/rdf+xml', 'text/rdf', 'application/atom+xml', 'text/xml', 'application/xml')))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- elseif ($file->method & SIMPLEPIE_FILE_SOURCE_LOCAL)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- public function get_base()
- {
- if ($this->dom === null)
- {
- throw new SimplePie_Exception('DOMDocument not found, unable to use locator');
- }
- $this->http_base = $this->file->url;
- $this->base = $this->http_base;
- $elements = $this->dom->getElementsByTagName('base');
- foreach ($elements as $element)
- {
- if ($element->hasAttribute('href'))
- {
- $base = $this->registry->call('Misc', 'absolutize_url', array(trim($element->getAttribute('href')), $this->http_base));
- if ($base === false)
- {
- continue;
- }
- $this->base = $base;
- $this->base_location = method_exists($element, 'getLineNo') ? $element->getLineNo() : 0;
- break;
- }
- }
- }
-
- public function autodiscovery()
- {
- $done = array();
- $feeds = array();
- $feeds = array_merge($feeds, $this->search_elements_by_tag('link', $done, $feeds));
- $feeds = array_merge($feeds, $this->search_elements_by_tag('a', $done, $feeds));
- $feeds = array_merge($feeds, $this->search_elements_by_tag('area', $done, $feeds));
-
- if (!empty($feeds))
- {
- return array_values($feeds);
- }
- else
- {
- return null;
- }
- }
-
- protected function search_elements_by_tag($name, &$done, $feeds)
- {
- if ($this->dom === null)
- {
- throw new SimplePie_Exception('DOMDocument not found, unable to use locator');
- }
-
- $links = $this->dom->getElementsByTagName($name);
- foreach ($links as $link)
- {
- if ($this->checked_feeds === $this->max_checked_feeds)
- {
- break;
- }
- if ($link->hasAttribute('href') && $link->hasAttribute('rel'))
- {
- $rel = array_unique($this->registry->call('Misc', 'space_seperated_tokens', array(strtolower($link->getAttribute('rel')))));
- $line = method_exists($link, 'getLineNo') ? $link->getLineNo() : 1;
-
- if ($this->base_location < $line)
- {
- $href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->base));
- }
- else
- {
- $href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->http_base));
- }
- if ($href === false)
- {
- continue;
- }
-
- if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !in_array('stylesheet', $rel) && $link->hasAttribute('type') && in_array(strtolower($this->registry->call('Misc', 'parse_mime', array($link->getAttribute('type')))), array('application/rss+xml', 'application/atom+xml'))) && !isset($feeds[$href]))
- {
- $this->checked_feeds++;
- $headers = array(
- 'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
- );
- $feed = $this->registry->create('File', array($href, $this->timeout, 5, $headers, $this->useragent));
- if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
- {
- $feeds[$href] = $feed;
- }
- }
- $done[] = $href;
- }
- }
-
- return $feeds;
- }
-
- public function get_links()
- {
- if ($this->dom === null)
- {
- throw new SimplePie_Exception('DOMDocument not found, unable to use locator');
- }
-
- $links = $this->dom->getElementsByTagName('a');
- foreach ($links as $link)
- {
- if ($link->hasAttribute('href'))
- {
- $href = trim($link->getAttribute('href'));
- $parsed = $this->registry->call('Misc', 'parse_url', array($href));
- if ($parsed['scheme'] === '' || preg_match('/^(http(s)|feed)?$/i', $parsed['scheme']))
- {
- if ($this->base_location < $link->getLineNo())
- {
- $href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->base));
- }
- else
- {
- $href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->http_base));
- }
- if ($href === false)
- {
- continue;
- }
-
- $current = $this->registry->call('Misc', 'parse_url', array($this->file->url));
-
- if ($parsed['authority'] === '' || $parsed['authority'] === $current['authority'])
- {
- $this->local[] = $href;
- }
- else
- {
- $this->elsewhere[] = $href;
- }
- }
- }
- }
- $this->local = array_unique($this->local);
- $this->elsewhere = array_unique($this->elsewhere);
- if (!empty($this->local) || !empty($this->elsewhere))
- {
- return true;
- }
- return null;
- }
-
- public function extension(&$array)
- {
- foreach ($array as $key => $value)
- {
- if ($this->checked_feeds === $this->max_checked_feeds)
- {
- break;
- }
- if (in_array(strtolower(strrchr($value, '.')), array('.rss', '.rdf', '.atom', '.xml')))
- {
- $this->checked_feeds++;
-
- $headers = array(
- 'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
- );
- $feed = $this->registry->create('File', array($value, $this->timeout, 5, $headers, $this->useragent));
- if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
- {
- return $feed;
- }
- else
- {
- unset($array[$key]);
- }
- }
- }
- return null;
- }
-
- public function body(&$array)
- {
- foreach ($array as $key => $value)
- {
- if ($this->checked_feeds === $this->max_checked_feeds)
- {
- break;
- }
- if (preg_match('/(rss|rdf|atom|xml)/i', $value))
- {
- $this->checked_feeds++;
- $headers = array(
- 'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
- );
- $feed = $this->registry->create('File', array($value, $this->timeout, 5, null, $this->useragent));
- if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
- {
- return $feed;
- }
- else
- {
- unset($array[$key]);
- }
- }
- }
- return null;
- }
-}
-
-/**
- * Miscellanous utilities
- *
- * @package SimplePie
- */
-class SimplePie_Misc
-{
- public static function time_hms($seconds)
- {
- $time = '';
-
- $hours = floor($seconds / 3600);
- $remainder = $seconds % 3600;
- if ($hours > 0)
- {
- $time .= $hours.':';
- }
-
- $minutes = floor($remainder / 60);
- $seconds = $remainder % 60;
- if ($minutes < 10 && $hours > 0)
- {
- $minutes = '0' . $minutes;
- }
- if ($seconds < 10)
- {
- $seconds = '0' . $seconds;
- }
-
- $time .= $minutes.':';
- $time .= $seconds;
-
- return $time;
- }
-
- public static function absolutize_url($relative, $base)
- {
- $iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative);
- if ($iri === false)
- {
- return false;
- }
- return $iri->get_uri();
- }
-
- /**
- * Get a HTML/XML element from a HTML string
- *
- * @deprecated Use DOMDocument instead (parsing HTML with regex is bad!)
- * @param string $realname Element name (including namespace prefix if applicable)
- * @param string $string HTML document
- * @return array
- */
- public static function get_element($realname, $string)
- {
- $return = array();
- $name = preg_quote($realname, '/');
- if (preg_match_all("/<($name)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$name>|(\/)?>)/siU", $string, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE))
- {
- for ($i = 0, $total_matches = count($matches); $i < $total_matches; $i++)
- {
- $return[$i]['tag'] = $realname;
- $return[$i]['full'] = $matches[$i][0][0];
- $return[$i]['offset'] = $matches[$i][0][1];
- if (strlen($matches[$i][3][0]) <= 2)
- {
- $return[$i]['self_closing'] = true;
- }
- else
- {
- $return[$i]['self_closing'] = false;
- $return[$i]['content'] = $matches[$i][4][0];
- }
- $return[$i]['attribs'] = array();
- if (isset($matches[$i][2][0]) && preg_match_all('/[\x09\x0A\x0B\x0C\x0D\x20]+([^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*)(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"([^"]*)"|\'([^\']*)\'|([^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?/', ' ' . $matches[$i][2][0] . ' ', $attribs, PREG_SET_ORDER))
- {
- for ($j = 0, $total_attribs = count($attribs); $j < $total_attribs; $j++)
- {
- if (count($attribs[$j]) === 2)
- {
- $attribs[$j][2] = $attribs[$j][1];
- }
- $return[$i]['attribs'][strtolower($attribs[$j][1])]['data'] = SimplePie_Misc::entities_decode(end($attribs[$j]), 'UTF-8');
- }
- }
- }
- }
- return $return;
- }
-
- public static function element_implode($element)
- {
- $full = "<$element[tag]";
- foreach ($element['attribs'] as $key => $value)
- {
- $key = strtolower($key);
- $full .= " $key=\"" . htmlspecialchars($value['data']) . '"';
- }
- if ($element['self_closing'])
- {
- $full .= ' />';
- }
- else
- {
- $full .= ">$element[content]</$element[tag]>";
- }
- return $full;
- }
-
- public static function error($message, $level, $file, $line)
- {
- if ((ini_get('error_reporting') & $level) > 0)
- {
- switch ($level)
- {
- case E_USER_ERROR:
- $note = 'PHP Error';
- break;
- case E_USER_WARNING:
- $note = 'PHP Warning';
- break;
- case E_USER_NOTICE:
- $note = 'PHP Notice';
- break;
- default:
- $note = 'Unknown Error';
- break;
- }
-
- $log_error = true;
- if (!function_exists('error_log'))
- {
- $log_error = false;
- }
-
- $log_file = @ini_get('error_log');
- if (!empty($log_file) && ('syslog' !== $log_file) && !@is_writable($log_file))
- {
- $log_error = false;
- }
-
- if ($log_error)
- {
- @error_log("$note: $message in $file on line $line", 0);
- }
- }
-
- return $message;
- }
-
- public static function fix_protocol($url, $http = 1)
- {
- $url = SimplePie_Misc::normalize_url($url);
- $parsed = SimplePie_Misc::parse_url($url);
- if ($parsed['scheme'] !== '' && $parsed['scheme'] !== 'http' && $parsed['scheme'] !== 'https')
- {
- return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['authority'], $parsed['path'], $parsed['query'], $parsed['fragment']), $http);
- }
-
- if ($parsed['scheme'] === '' && $parsed['authority'] === '' && !file_exists($url))
- {
- return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['path'], '', $parsed['query'], $parsed['fragment']), $http);
- }
-
- if ($http === 2 && $parsed['scheme'] !== '')
- {
- return "feed:$url";
- }
- elseif ($http === 3 && strtolower($parsed['scheme']) === 'http')
- {
- return substr_replace($url, 'podcast', 0, 4);
- }
- elseif ($http === 4 && strtolower($parsed['scheme']) === 'http')
- {
- return substr_replace($url, 'itpc', 0, 4);
- }
- else
- {
- return $url;
- }
- }
-
- public static function parse_url($url)
- {
- $iri = new SimplePie_IRI($url);
- return array(
- 'scheme' => (string) $iri->scheme,
- 'authority' => (string) $iri->authority,
- 'path' => (string) $iri->path,
- 'query' => (string) $iri->query,
- 'fragment' => (string) $iri->fragment
- );
- }
-
- public static function compress_parse_url($scheme = '', $authority = '', $path = '', $query = '', $fragment = '')
- {
- $iri = new SimplePie_IRI('');
- $iri->scheme = $scheme;
- $iri->authority = $authority;
- $iri->path = $path;
- $iri->query = $query;
- $iri->fragment = $fragment;
- return $iri->get_uri();
- }
-
- public static function normalize_url($url)
- {
- $iri = new SimplePie_IRI($url);
- return $iri->get_uri();
- }
-
- public static function percent_encoding_normalization($match)
- {
- $integer = hexdec($match[1]);
- if ($integer >= 0x41 && $integer <= 0x5A || $integer >= 0x61 && $integer <= 0x7A || $integer >= 0x30 && $integer <= 0x39 || $integer === 0x2D || $integer === 0x2E || $integer === 0x5F || $integer === 0x7E)
- {
- return chr($integer);
- }
- else
- {
- return strtoupper($match[0]);
- }
- }
-
- /**
- * Converts a Windows-1252 encoded string to a UTF-8 encoded string
- *
- * @static
- * @param string $string Windows-1252 encoded string
- * @return string UTF-8 encoded string
- */
- public static function windows_1252_to_utf8($string)
- {
- static $convert_table = array("\x80" => "\xE2\x82\xAC", "\x81" => "\xEF\xBF\xBD", "\x82" => "\xE2\x80\x9A", "\x83" => "\xC6\x92", "\x84" => "\xE2\x80\x9E", "\x85" => "\xE2\x80\xA6", "\x86" => "\xE2\x80\xA0", "\x87" => "\xE2\x80\xA1", "\x88" => "\xCB\x86", "\x89" => "\xE2\x80\xB0", "\x8A" => "\xC5\xA0", "\x8B" => "\xE2\x80\xB9", "\x8C" => "\xC5\x92", "\x8D" => "\xEF\xBF\xBD", "\x8E" => "\xC5\xBD", "\x8F" => "\xEF\xBF\xBD", "\x90" => "\xEF\xBF\xBD", "\x91" => "\xE2\x80\x98", "\x92" => "\xE2\x80\x99", "\x93" => "\xE2\x80\x9C", "\x94" => "\xE2\x80\x9D", "\x95" => "\xE2\x80\xA2", "\x96" => "\xE2\x80\x93", "\x97" => "\xE2\x80\x94", "\x98" => "\xCB\x9C", "\x99" => "\xE2\x84\xA2", "\x9A" => "\xC5\xA1", "\x9B" => "\xE2\x80\xBA", "\x9C" => "\xC5\x93", "\x9D" => "\xEF\xBF\xBD", "\x9E" => "\xC5\xBE", "\x9F" => "\xC5\xB8", "\xA0" => "\xC2\xA0", "\xA1" => "\xC2\xA1", "\xA2" => "\xC2\xA2", "\xA3" => "\xC2\xA3", "\xA4" => "\xC2\xA4", "\xA5" => "\xC2\xA5", "\xA6" => "\xC2\xA6", "\xA7" => "\xC2\xA7", "\xA8" => "\xC2\xA8", "\xA9" => "\xC2\xA9", "\xAA" => "\xC2\xAA", "\xAB" => "\xC2\xAB", "\xAC" => "\xC2\xAC", "\xAD" => "\xC2\xAD", "\xAE" => "\xC2\xAE", "\xAF" => "\xC2\xAF", "\xB0" => "\xC2\xB0", "\xB1" => "\xC2\xB1", "\xB2" => "\xC2\xB2", "\xB3" => "\xC2\xB3", "\xB4" => "\xC2\xB4", "\xB5" => "\xC2\xB5", "\xB6" => "\xC2\xB6", "\xB7" => "\xC2\xB7", "\xB8" => "\xC2\xB8", "\xB9" => "\xC2\xB9", "\xBA" => "\xC2\xBA", "\xBB" => "\xC2\xBB", "\xBC" => "\xC2\xBC", "\xBD" => "\xC2\xBD", "\xBE" => "\xC2\xBE", "\xBF" => "\xC2\xBF", "\xC0" => "\xC3\x80", "\xC1" => "\xC3\x81", "\xC2" => "\xC3\x82", "\xC3" => "\xC3\x83", "\xC4" => "\xC3\x84", "\xC5" => "\xC3\x85", "\xC6" => "\xC3\x86", "\xC7" => "\xC3\x87", "\xC8" => "\xC3\x88", "\xC9" => "\xC3\x89", "\xCA" => "\xC3\x8A", "\xCB" => "\xC3\x8B", "\xCC" => "\xC3\x8C", "\xCD" => "\xC3\x8D", "\xCE" => "\xC3\x8E", "\xCF" => "\xC3\x8F", "\xD0" => "\xC3\x90", "\xD1" => "\xC3\x91", "\xD2" => "\xC3\x92", "\xD3" => "\xC3\x93", "\xD4" => "\xC3\x94", "\xD5" => "\xC3\x95", "\xD6" => "\xC3\x96", "\xD7" => "\xC3\x97", "\xD8" => "\xC3\x98", "\xD9" => "\xC3\x99", "\xDA" => "\xC3\x9A", "\xDB" => "\xC3\x9B", "\xDC" => "\xC3\x9C", "\xDD" => "\xC3\x9D", "\xDE" => "\xC3\x9E", "\xDF" => "\xC3\x9F", "\xE0" => "\xC3\xA0", "\xE1" => "\xC3\xA1", "\xE2" => "\xC3\xA2", "\xE3" => "\xC3\xA3", "\xE4" => "\xC3\xA4", "\xE5" => "\xC3\xA5", "\xE6" => "\xC3\xA6", "\xE7" => "\xC3\xA7", "\xE8" => "\xC3\xA8", "\xE9" => "\xC3\xA9", "\xEA" => "\xC3\xAA", "\xEB" => "\xC3\xAB", "\xEC" => "\xC3\xAC", "\xED" => "\xC3\xAD", "\xEE" => "\xC3\xAE", "\xEF" => "\xC3\xAF", "\xF0" => "\xC3\xB0", "\xF1" => "\xC3\xB1", "\xF2" => "\xC3\xB2", "\xF3" => "\xC3\xB3", "\xF4" => "\xC3\xB4", "\xF5" => "\xC3\xB5", "\xF6" => "\xC3\xB6", "\xF7" => "\xC3\xB7", "\xF8" => "\xC3\xB8", "\xF9" => "\xC3\xB9", "\xFA" => "\xC3\xBA", "\xFB" => "\xC3\xBB", "\xFC" => "\xC3\xBC", "\xFD" => "\xC3\xBD", "\xFE" => "\xC3\xBE", "\xFF" => "\xC3\xBF");
-
- return strtr($string, $convert_table);
- }
-
- /**
- * Change a string from one encoding to another
- *
- * @param string $data Raw data in $input encoding
- * @param string $input Encoding of $data
- * @param string $output Encoding you want
- * @return string|boolean False if we can't convert it
- */
- public static function change_encoding($data, $input, $output)
- {
- $input = SimplePie_Misc::encoding($input);
- $output = SimplePie_Misc::encoding($output);
-
- // We fail to fail on non US-ASCII bytes
- if ($input === 'US-ASCII')
- {
- static $non_ascii_octects = '';
- if (!$non_ascii_octects)
- {
- for ($i = 0x80; $i <= 0xFF; $i++)
- {
- $non_ascii_octects .= chr($i);
- }
- }
- $data = substr($data, 0, strcspn($data, $non_ascii_octects));
- }
-
- // This is first, as behaviour of this is completely predictable
- if ($input === 'windows-1252' && $output === 'UTF-8')
- {
- return SimplePie_Misc::windows_1252_to_utf8($data);
- }
- // This is second, as behaviour of this varies only with PHP version (the middle part of this expression checks the encoding is supported).
- elseif (function_exists('mb_convert_encoding') && ($return = SimplePie_Misc::change_encoding_mbstring($data, $input, $output)))
- {
- return $return;
- }
- // This is last, as behaviour of this varies with OS userland and PHP version
- elseif (function_exists('iconv') && ($return = SimplePie_Misc::change_encoding_iconv($data, $input, $output)))
- {
- return $return;
- }
- // If we can't do anything, just fail
- else
- {
- return false;
- }
- }
-
- protected static function change_encoding_mbstring($data, $input, $output)
- {
- if ($input === 'windows-949')
- {
- $input = 'EUC-KR';
- }
- if ($output === 'windows-949')
- {
- $output = 'EUC-KR';
- }
- if ($input === 'Windows-31J')
- {
- $input = 'SJIS';
- }
- if ($output === 'Windows-31J')
- {
- $output = 'SJIS';
- }
-
- // Check that the encoding is supported
- if (@mb_convert_encoding("\x80", 'UTF-16BE', $input) === "\x00\x80")
- {
- return false;
- }
- if (!in_array($input, mb_list_encodings()))
- {
- return false;
- }
-
- // Let's do some conversion
- if ($return = @mb_convert_encoding($data, $output, $input))
- {
- return $return;
- }
-
- return false;
- }
-
- protected static function change_encoding_iconv($data, $input, $output)
- {
- return @iconv($input, $output, $data);
- }
-
- /**
- * Normalize an encoding name
- *
- * This is automatically generated by create.php
- *
- * To generate it, run `php create.php` on the command line, and copy the
- * output to replace this function.
- *
- * @param string $charset Character set to standardise
- * @return string Standardised name
- */
- public static function encoding($charset)
- {
- // Normalization from UTS #22
- switch (strtolower(preg_replace('/(?:[^a-zA-Z0-9]+|([^0-9])0+)/', '\1', $charset)))
- {
- case 'adobestandardencoding':
- case 'csadobestandardencoding':
- return 'Adobe-Standard-Encoding';
-
- case 'adobesymbolencoding':
- case 'cshppsmath':
- return 'Adobe-Symbol-Encoding';
-
- case 'ami1251':
- case 'amiga1251':
- return 'Amiga-1251';
-
- case 'ansix31101983':
- case 'csat5001983':
- case 'csiso99naplps':
- case 'isoir99':
- case 'naplps':
- return 'ANSI_X3.110-1983';
-
- case 'arabic7':
- case 'asmo449':
- case 'csiso89asmo449':
- case 'iso9036':
- case 'isoir89':
- return 'ASMO_449';
-
- case 'big5':
- case 'csbig5':
- return 'Big5';
-
- case 'big5hkscs':
- return 'Big5-HKSCS';
-
- case 'bocu1':
- case 'csbocu1':
- return 'BOCU-1';
-
- case 'brf':
- case 'csbrf':
- return 'BRF';
-
- case 'bs4730':
- case 'csiso4unitedkingdom':
- case 'gb':
- case 'iso646gb':
- case 'isoir4':
- case 'uk':
- return 'BS_4730';
-
- case 'bsviewdata':
- case 'csiso47bsviewdata':
- case 'isoir47':
- return 'BS_viewdata';
-
- case 'cesu8':
- case 'cscesu8':
- return 'CESU-8';
-
- case 'ca':
- case 'csa71':
- case 'csaz243419851':
- case 'csiso121canadian1':
- case 'iso646ca':
- case 'isoir121':
- return 'CSA_Z243.4-1985-1';
-
- case 'csa72':
- case 'csaz243419852':
- case 'csiso122canadian2':
- case 'iso646ca2':
- case 'isoir122':
- return 'CSA_Z243.4-1985-2';
-
- case 'csaz24341985gr':
- case 'csiso123csaz24341985gr':
- case 'isoir123':
- return 'CSA_Z243.4-1985-gr';
-
- case 'csiso139csn369103':
- case 'csn369103':
- case 'isoir139':
- return 'CSN_369103';
-
- case 'csdecmcs':
- case 'dec':
- case 'decmcs':
- return 'DEC-MCS';
-
- case 'csiso21german':
- case 'de':
- case 'din66003':
- case 'iso646de':
- case 'isoir21':
- return 'DIN_66003';
-
- case 'csdkus':
- case 'dkus':
- return 'dk-us';
-
- case 'csiso646danish':
- case 'dk':
- case 'ds2089':
- case 'iso646dk':
- return 'DS_2089';
-
- case 'csibmebcdicatde':
- case 'ebcdicatde':
- return 'EBCDIC-AT-DE';
-
- case 'csebcdicatdea':
- case 'ebcdicatdea':
- return 'EBCDIC-AT-DE-A';
-
- case 'csebcdiccafr':
- case 'ebcdiccafr':
- return 'EBCDIC-CA-FR';
-
- case 'csebcdicdkno':
- case 'ebcdicdkno':
- return 'EBCDIC-DK-NO';
-
- case 'csebcdicdknoa':
- case 'ebcdicdknoa':
- return 'EBCDIC-DK-NO-A';
-
- case 'csebcdices':
- case 'ebcdices':
- return 'EBCDIC-ES';
-
- case 'csebcdicesa':
- case 'ebcdicesa':
- return 'EBCDIC-ES-A';
-
- case 'csebcdicess':
- case 'ebcdicess':
- return 'EBCDIC-ES-S';
-
- case 'csebcdicfise':
- case 'ebcdicfise':
- return 'EBCDIC-FI-SE';
-
- case 'csebcdicfisea':
- case 'ebcdicfisea':
- return 'EBCDIC-FI-SE-A';
-
- case 'csebcdicfr':
- case 'ebcdicfr':
- return 'EBCDIC-FR';
-
- case 'csebcdicit':
- case 'ebcdicit':
- return 'EBCDIC-IT';
-
- case 'csebcdicpt':
- case 'ebcdicpt':
- return 'EBCDIC-PT';
-
- case 'csebcdicuk':
- case 'ebcdicuk':
- return 'EBCDIC-UK';
-
- case 'csebcdicus':
- case 'ebcdicus':
- return 'EBCDIC-US';
-
- case 'csiso111ecmacyrillic':
- case 'ecmacyrillic':
- case 'isoir111':
- case 'koi8e':
- return 'ECMA-cyrillic';
-
- case 'csiso17spanish':
- case 'es':
- case 'iso646es':
- case 'isoir17':
- return 'ES';
-
- case 'csiso85spanish2':
- case 'es2':
- case 'iso646es2':
- case 'isoir85':
- return 'ES2';
-
- case 'cseucpkdfmtjapanese':
- case 'eucjp':
- case 'extendedunixcodepackedformatforjapanese':
- return 'EUC-JP';
-
- case 'cseucfixwidjapanese':
- case 'extendedunixcodefixedwidthforjapanese':
- return 'Extended_UNIX_Code_Fixed_Width_for_Japanese';
-
- case 'gb18030':
- return 'GB18030';
-
- case 'chinese':
- case 'cp936':
- case 'csgb2312':
- case 'csiso58gb231280':
- case 'gb2312':
- case 'gb231280':
- case 'gbk':
- case 'isoir58':
- case 'ms936':
- case 'windows936':
- return 'GBK';
-
- case 'cn':
- case 'csiso57gb1988':
- case 'gb198880':
- case 'iso646cn':
- case 'isoir57':
- return 'GB_1988-80';
-
- case 'csiso153gost1976874':
- case 'gost1976874':
- case 'isoir153':
- case 'stsev35888':
- return 'GOST_19768-74';
-
- case 'csiso150':
- case 'csiso150greekccitt':
- case 'greekccitt':
- case 'isoir150':
- return 'greek-ccitt';
-
- case 'csiso88greek7':
- case 'greek7':
- case 'isoir88':
- return 'greek7';
-
- case 'csiso18greek7old':
- case 'greek7old':
- case 'isoir18':
- return 'greek7-old';
-
- case 'cshpdesktop':
- case 'hpdesktop':
- return 'HP-DeskTop';
-
- case 'cshplegal':
- case 'hplegal':
- return 'HP-Legal';
-
- case 'cshpmath8':
- case 'hpmath8':
- return 'HP-Math8';
-
- case 'cshppifont':
- case 'hppifont':
- return 'HP-Pi-font';
-
- case 'cshproman8':
- case 'hproman8':
- case 'r8':
- case 'roman8':
- return 'hp-roman8';
-
- case 'hzgb2312':
- return 'HZ-GB-2312';
-
- case 'csibmsymbols':
- case 'ibmsymbols':
- return 'IBM-Symbols';
-
- case 'csibmthai':
- case 'ibmthai':
- return 'IBM-Thai';
-
- case 'cp37':
- case 'csibm37':
- case 'ebcdiccpca':
- case 'ebcdiccpnl':
- case 'ebcdiccpus':
- case 'ebcdiccpwt':
- case 'ibm37':
- return 'IBM037';
-
- case 'cp38':
- case 'csibm38':
- case 'ebcdicint':
- case 'ibm38':
- return 'IBM038';
-
- case 'cp273':
- case 'csibm273':
- case 'ibm273':
- return 'IBM273';
-
- case 'cp274':
- case 'csibm274':
- case 'ebcdicbe':
- case 'ibm274':
- return 'IBM274';
-
- case 'cp275':
- case 'csibm275':
- case 'ebcdicbr':
- case 'ibm275':
- return 'IBM275';
-
- case 'csibm277':
- case 'ebcdiccpdk':
- case 'ebcdiccpno':
- case 'ibm277':
- return 'IBM277';
-
- case 'cp278':
- case 'csibm278':
- case 'ebcdiccpfi':
- case 'ebcdiccpse':
- case 'ibm278':
- return 'IBM278';
-
- case 'cp280':
- case 'csibm280':
- case 'ebcdiccpit':
- case 'ibm280':
- return 'IBM280';
-
- case 'cp281':
- case 'csibm281':
- case 'ebcdicjpe':
- case 'ibm281':
- return 'IBM281';
-
- case 'cp284':
- case 'csibm284':
- case 'ebcdiccpes':
- case 'ibm284':
- return 'IBM284';
-
- case 'cp285':
- case 'csibm285':
- case 'ebcdiccpgb':
- case 'ibm285':
- return 'IBM285';
-
- case 'cp290':
- case 'csibm290':
- case 'ebcdicjpkana':
- case 'ibm290':
- return 'IBM290';
-
- case 'cp297':
- case 'csibm297':
- case 'ebcdiccpfr':
- case 'ibm297':
- return 'IBM297';
-
- case 'cp420':
- case 'csibm420':
- case 'ebcdiccpar1':
- case 'ibm420':
- return 'IBM420';
-
- case 'cp423':
- case 'csibm423':
- case 'ebcdiccpgr':
- case 'ibm423':
- return 'IBM423';
-
- case 'cp424':
- case 'csibm424':
- case 'ebcdiccphe':
- case 'ibm424':
- return 'IBM424';
-
- case '437':
- case 'cp437':
- case 'cspc8codepage437':
- case 'ibm437':
- return 'IBM437';
-
- case 'cp500':
- case 'csibm500':
- case 'ebcdiccpbe':
- case 'ebcdiccpch':
- case 'ibm500':
- return 'IBM500';
-
- case 'cp775':
- case 'cspc775baltic':
- case 'ibm775':
- return 'IBM775';
-
- case '850':
- case 'cp850':
- case 'cspc850multilingual':
- case 'ibm850':
- return 'IBM850';
-
- case '851':
- case 'cp851':
- case 'csibm851':
- case 'ibm851':
- return 'IBM851';
-
- case '852':
- case 'cp852':
- case 'cspcp852':
- case 'ibm852':
- return 'IBM852';
-
- case '855':
- case 'cp855':
- case 'csibm855':
- case 'ibm855':
- return 'IBM855';
-
- case '857':
- case 'cp857':
- case 'csibm857':
- case 'ibm857':
- return 'IBM857';
-
- case 'ccsid858':
- case 'cp858':
- case 'ibm858':
- case 'pcmultilingual850euro':
- return 'IBM00858';
-
- case '860':
- case 'cp860':
- case 'csibm860':
- case 'ibm860':
- return 'IBM860';
-
- case '861':
- case 'cp861':
- case 'cpis':
- case 'csibm861':
- case 'ibm861':
- return 'IBM861';
-
- case '862':
- case 'cp862':
- case 'cspc862latinhebrew':
- case 'ibm862':
- return 'IBM862';
-
- case '863':
- case 'cp863':
- case 'csibm863':
- case 'ibm863':
- return 'IBM863';
-
- case 'cp864':
- case 'csibm864':
- case 'ibm864':
- return 'IBM864';
-
- case '865':
- case 'cp865':
- case 'csibm865':
- case 'ibm865':
- return 'IBM865';
-
- case '866':
- case 'cp866':
- case 'csibm866':
- case 'ibm866':
- return 'IBM866';
-
- case 'cp868':
- case 'cpar':
- case 'csibm868':
- case 'ibm868':
- return 'IBM868';
-
- case '869':
- case 'cp869':
- case 'cpgr':
- case 'csibm869':
- case 'ibm869':
- return 'IBM869';
-
- case 'cp870':
- case 'csibm870':
- case 'ebcdiccproece':
- case 'ebcdiccpyu':
- case 'ibm870':
- return 'IBM870';
-
- case 'cp871':
- case 'csibm871':
- case 'ebcdiccpis':
- case 'ibm871':
- return 'IBM871';
-
- case 'cp880':
- case 'csibm880':
- case 'ebcdiccyrillic':
- case 'ibm880':
- return 'IBM880';
-
- case 'cp891':
- case 'csibm891':
- case 'ibm891':
- return 'IBM891';
-
- case 'cp903':
- case 'csibm903':
- case 'ibm903':
- return 'IBM903';
-
- case '904':
- case 'cp904':
- case 'csibbm904':
- case 'ibm904':
- return 'IBM904';
-
- case 'cp905':
- case 'csibm905':
- case 'ebcdiccptr':
- case 'ibm905':
- return 'IBM905';
-
- case 'cp918':
- case 'csibm918':
- case 'ebcdiccpar2':
- case 'ibm918':
- return 'IBM918';
-
- case 'ccsid924':
- case 'cp924':
- case 'ebcdiclatin9euro':
- case 'ibm924':
- return 'IBM00924';
-
- case 'cp1026':
- case 'csibm1026':
- case 'ibm1026':
- return 'IBM1026';
-
- case 'ibm1047':
- return 'IBM1047';
-
- case 'ccsid1140':
- case 'cp1140':
- case 'ebcdicus37euro':
- case 'ibm1140':
- return 'IBM01140';
-
- case 'ccsid1141':
- case 'cp1141':
- case 'ebcdicde273euro':
- case 'ibm1141':
- return 'IBM01141';
-
- case 'ccsid1142':
- case 'cp1142':
- case 'ebcdicdk277euro':
- case 'ebcdicno277euro':
- case 'ibm1142':
- return 'IBM01142';
-
- case 'ccsid1143':
- case 'cp1143':
- case 'ebcdicfi278euro':
- case 'ebcdicse278euro':
- case 'ibm1143':
- return 'IBM01143';
-
- case 'ccsid1144':
- case 'cp1144':
- case 'ebcdicit280euro':
- case 'ibm1144':
- return 'IBM01144';
-
- case 'ccsid1145':
- case 'cp1145':
- case 'ebcdices284euro':
- case 'ibm1145':
- return 'IBM01145';
-
- case 'ccsid1146':
- case 'cp1146':
- case 'ebcdicgb285euro':
- case 'ibm1146':
- return 'IBM01146';
-
- case 'ccsid1147':
- case 'cp1147':
- case 'ebcdicfr297euro':
- case 'ibm1147':
- return 'IBM01147';
-
- case 'ccsid1148':
- case 'cp1148':
- case 'ebcdicinternational500euro':
- case 'ibm1148':
- return 'IBM01148';
-
- case 'ccsid1149':
- case 'cp1149':
- case 'ebcdicis871euro':
- case 'ibm1149':
- return 'IBM01149';
-
- case 'csiso143iecp271':
- case 'iecp271':
- case 'isoir143':
- return 'IEC_P27-1';
-
- case 'csiso49inis':
- case 'inis':
- case 'isoir49':
- return 'INIS';
-
- case 'csiso50inis8':
- case 'inis8':
- case 'isoir50':
- return 'INIS-8';
-
- case 'csiso51iniscyrillic':
- case 'iniscyrillic':
- case 'isoir51':
- return 'INIS-cyrillic';
-
- case 'csinvariant':
- case 'invariant':
- return 'INVARIANT';
-
- case 'iso2022cn':
- return 'ISO-2022-CN';
-
- case 'iso2022cnext':
- return 'ISO-2022-CN-EXT';
-
- case 'csiso2022jp':
- case 'iso2022jp':
- return 'ISO-2022-JP';
-
- case 'csiso2022jp2':
- case 'iso2022jp2':
- return 'ISO-2022-JP-2';
-
- case 'csiso2022kr':
- case 'iso2022kr':
- return 'ISO-2022-KR';
-
- case 'cswindows30latin1':
- case 'iso88591windows30latin1':
- return 'ISO-8859-1-Windows-3.0-Latin-1';
-
- case 'cswindows31latin1':
- case 'iso88591windows31latin1':
- return 'ISO-8859-1-Windows-3.1-Latin-1';
-
- case 'csisolatin2':
- case 'iso88592':
- case 'iso885921987':
- case 'isoir101':
- case 'l2':
- case 'latin2':
- return 'ISO-8859-2';
-
- case 'cswindows31latin2':
- case 'iso88592windowslatin2':
- return 'ISO-8859-2-Windows-Latin-2';
-
- case 'csisolatin3':
- case 'iso88593':
- case 'iso885931988':
- case 'isoir109':
- case 'l3':
- case 'latin3':
- return 'ISO-8859-3';
-
- case 'csisolatin4':
- case 'iso88594':
- case 'iso885941988':
- case 'isoir110':
- case 'l4':
- case 'latin4':
- return 'ISO-8859-4';
-
- case 'csisolatincyrillic':
- case 'cyrillic':
- case 'iso88595':
- case 'iso885951988':
- case 'isoir144':
- return 'ISO-8859-5';
-
- case 'arabic':
- case 'asmo708':
- case 'csisolatinarabic':
- case 'ecma114':
- case 'iso88596':
- case 'iso885961987':
- case 'isoir127':
- return 'ISO-8859-6';
-
- case 'csiso88596e':
- case 'iso88596e':
- return 'ISO-8859-6-E';
-
- case 'csiso88596i':
- case 'iso88596i':
- return 'ISO-8859-6-I';
-
- case 'csisolatingreek':
- case 'ecma118':
- case 'elot928':
- case 'greek':
- case 'greek8':
- case 'iso88597':
- case 'iso885971987':
- case 'isoir126':
- return 'ISO-8859-7';
-
- case 'csisolatinhebrew':
- case 'hebrew':
- case 'iso88598':
- case 'iso885981988':
- case 'isoir138':
- return 'ISO-8859-8';
-
- case 'csiso88598e':
- case 'iso88598e':
- return 'ISO-8859-8-E';
-
- case 'csiso88598i':
- case 'iso88598i':
- return 'ISO-8859-8-I';
-
- case 'cswindows31latin5':
- case 'iso88599windowslatin5':
- return 'ISO-8859-9-Windows-Latin-5';
-
- case 'csisolatin6':
- case 'iso885910':
- case 'iso8859101992':
- case 'isoir157':
- case 'l6':
- case 'latin6':
- return 'ISO-8859-10';
-
- case 'iso885913':
- return 'ISO-8859-13';
-
- case 'iso885914':
- case 'iso8859141998':
- case 'isoceltic':
- case 'isoir199':
- case 'l8':
- case 'latin8':
- return 'ISO-8859-14';
-
- case 'iso885915':
- case 'latin9':
- return 'ISO-8859-15';
-
- case 'iso885916':
- case 'iso8859162001':
- case 'isoir226':
- case 'l10':
- case 'latin10':
- return 'ISO-8859-16';
-
- case 'iso10646j1':
- return 'ISO-10646-J-1';
-
- case 'csunicode':
- case 'iso10646ucs2':
- return 'ISO-10646-UCS-2';
-
- case 'csucs4':
- case 'iso10646ucs4':
- return 'ISO-10646-UCS-4';
-
- case 'csunicodeascii':
- case 'iso10646ucsbasic':
- return 'ISO-10646-UCS-Basic';
-
- case 'csunicodelatin1':
- case 'iso10646':
- case 'iso10646unicodelatin1':
- return 'ISO-10646-Unicode-Latin1';
-
- case 'csiso10646utf1':
- case 'iso10646utf1':
- return 'ISO-10646-UTF-1';
-
- case 'csiso115481':
- case 'iso115481':
- case 'isotr115481':
- return 'ISO-11548-1';
-
- case 'csiso90':
- case 'isoir90':
- return 'iso-ir-90';
-
- case 'csunicodeibm1261':
- case 'isounicodeibm1261':
- return 'ISO-Unicode-IBM-1261';
-
- case 'csunicodeibm1264':
- case 'isounicodeibm1264':
- return 'ISO-Unicode-IBM-1264';
-
- case 'csunicodeibm1265':
- case 'isounicodeibm1265':
- return 'ISO-Unicode-IBM-1265';
-
- case 'csunicodeibm1268':
- case 'isounicodeibm1268':
- return 'ISO-Unicode-IBM-1268';
-
- case 'csunicodeibm1276':
- case 'isounicodeibm1276':
- return 'ISO-Unicode-IBM-1276';
-
- case 'csiso646basic1983':
- case 'iso646basic1983':
- case 'ref':
- return 'ISO_646.basic:1983';
-
- case 'csiso2intlrefversion':
- case 'irv':
- case 'iso646irv1983':
- case 'isoir2':
- return 'ISO_646.irv:1983';
-
- case 'csiso2033':
- case 'e13b':
- case 'iso20331983':
- case 'isoir98':
- return 'ISO_2033-1983';
-
- case 'csiso5427cyrillic':
- case 'iso5427':
- case 'isoir37':
- return 'ISO_5427';
-
- case 'iso5427cyrillic1981':
- case 'iso54271981':
- case 'isoir54':
- return 'ISO_5427:1981';
-
- case 'csiso5428greek':
- case 'iso54281980':
- case 'isoir55':
- return 'ISO_5428:1980';
-
- case 'csiso6937add':
- case 'iso6937225':
- case 'isoir152':
- return 'ISO_6937-2-25';
-
- case 'csisotextcomm':
- case 'iso69372add':
- case 'isoir142':
- return 'ISO_6937-2-add';
-
- case 'csiso8859supp':
- case 'iso8859supp':
- case 'isoir154':
- case 'latin125':
- return 'ISO_8859-supp';
-
- case 'csiso10367box':
- case 'iso10367box':
- case 'isoir155':
- return 'ISO_10367-box';
-
- case 'csiso15italian':
- case 'iso646it':
- case 'isoir15':
- case 'it':
- return 'IT';
-
- case 'csiso13jisc6220jp':
- case 'isoir13':
- case 'jisc62201969':
- case 'jisc62201969jp':
- case 'katakana':
- case 'x2017':
- return 'JIS_C6220-1969-jp';
-
- case 'csiso14jisc6220ro':
- case 'iso646jp':
- case 'isoir14':
- case 'jisc62201969ro':
- case 'jp':
- return 'JIS_C6220-1969-ro';
-
- case 'csiso42jisc62261978':
- case 'isoir42':
- case 'jisc62261978':
- return 'JIS_C6226-1978';
-
- case 'csiso87jisx208':
- case 'isoir87':
- case 'jisc62261983':
- case 'jisx2081983':
- case 'x208':
- return 'JIS_C6226-1983';
-
- case 'csiso91jisc62291984a':
- case 'isoir91':
- case 'jisc62291984a':
- case 'jpocra':
- return 'JIS_C6229-1984-a';
-
- case 'csiso92jisc62991984b':
- case 'iso646jpocrb':
- case 'isoir92':
- case 'jisc62291984b':
- case 'jpocrb':
- return 'JIS_C6229-1984-b';
-
- case 'csiso93jis62291984badd':
- case 'isoir93':
- case 'jisc62291984badd':
- case 'jpocrbadd':
- return 'JIS_C6229-1984-b-add';
-
- case 'csiso94jis62291984hand':
- case 'isoir94':
- case 'jisc62291984hand':
- case 'jpocrhand':
- return 'JIS_C6229-1984-hand';
-
- case 'csiso95jis62291984handadd':
- case 'isoir95':
- case 'jisc62291984handadd':
- case 'jpocrhandadd':
- return 'JIS_C6229-1984-hand-add';
-
- case 'csiso96jisc62291984kana':
- case 'isoir96':
- case 'jisc62291984kana':
- return 'JIS_C6229-1984-kana';
-
- case 'csjisencoding':
- case 'jisencoding':
- return 'JIS_Encoding';
-
- case 'cshalfwidthkatakana':
- case 'jisx201':
- case 'x201':
- return 'JIS_X0201';
-
- case 'csiso159jisx2121990':
- case 'isoir159':
- case 'jisx2121990':
- case 'x212':
- return 'JIS_X0212-1990';
-
- case 'csiso141jusib1002':
- case 'iso646yu':
- case 'isoir141':
- case 'js':
- case 'jusib1002':
- case 'yu':
- return 'JUS_I.B1.002';
-
- case 'csiso147macedonian':
- case 'isoir147':
- case 'jusib1003mac':
- case 'macedonian':
- return 'JUS_I.B1.003-mac';
-
- case 'csiso146serbian':
- case 'isoir146':
- case 'jusib1003serb':
- case 'serbian':
- return 'JUS_I.B1.003-serb';
-
- case 'koi7switched':
- return 'KOI7-switched';
-
- case 'cskoi8r':
- case 'koi8r':
- return 'KOI8-R';
-
- case 'koi8u':
- return 'KOI8-U';
-
- case 'csksc5636':
- case 'iso646kr':
- case 'ksc5636':
- return 'KSC5636';
-
- case 'cskz1048':
- case 'kz1048':
- case 'rk1048':
- case 'strk10482002':
- return 'KZ-1048';
-
- case 'csiso19latingreek':
- case 'isoir19':
- case 'latingreek':
- return 'latin-greek';
-
- case 'csiso27latingreek1':
- case 'isoir27':
- case 'latingreek1':
- return 'Latin-greek-1';
-
- case 'csiso158lap':
- case 'isoir158':
- case 'lap':
- case 'latinlap':
- return 'latin-lap';
-
- case 'csmacintosh':
- case 'mac':
- case 'macintosh':
- return 'macintosh';
-
- case 'csmicrosoftpublishing':
- case 'microsoftpublishing':
- return 'Microsoft-Publishing';
-
- case 'csmnem':
- case 'mnem':
- return 'MNEM';
-
- case 'csmnemonic':
- case 'mnemonic':
- return 'MNEMONIC';
-
- case 'csiso86hungarian':
- case 'hu':
- case 'iso646hu':
- case 'isoir86':
- case 'msz77953':
- return 'MSZ_7795.3';
-
- case 'csnatsdano':
- case 'isoir91':
- case 'natsdano':
- return 'NATS-DANO';
-
- case 'csnatsdanoadd':
- case 'isoir92':
- case 'natsdanoadd':
- return 'NATS-DANO-ADD';
-
- case 'csnatssefi':
- case 'isoir81':
- case 'natssefi':
- return 'NATS-SEFI';
-
- case 'csnatssefiadd':
- case 'isoir82':
- case 'natssefiadd':
- return 'NATS-SEFI-ADD';
-
- case 'csiso151cuba':
- case 'cuba':
- case 'iso646cu':
- case 'isoir151':
- case 'ncnc1081':
- return 'NC_NC00-10:81';
-
- case 'csiso69french':
- case 'fr':
- case 'iso646fr':
- case 'isoir69':
- case 'nfz62010':
- return 'NF_Z_62-010';
-
- case 'csiso25french':
- case 'iso646fr1':
- case 'isoir25':
- case 'nfz620101973':
- return 'NF_Z_62-010_(1973)';
-
- case 'csiso60danishnorwegian':
- case 'csiso60norwegian1':
- case 'iso646no':
- case 'isoir60':
- case 'no':
- case 'ns45511':
- return 'NS_4551-1';
-
- case 'csiso61norwegian2':
- case 'iso646no2':
- case 'isoir61':
- case 'no2':
- case 'ns45512':
- return 'NS_4551-2';
-
- case 'osdebcdicdf3irv':
- return 'OSD_EBCDIC_DF03_IRV';
-
- case 'osdebcdicdf41':
- return 'OSD_EBCDIC_DF04_1';
-
- case 'osdebcdicdf415':
- return 'OSD_EBCDIC_DF04_15';
-
- case 'cspc8danishnorwegian':
- case 'pc8danishnorwegian':
- return 'PC8-Danish-Norwegian';
-
- case 'cspc8turkish':
- case 'pc8turkish':
- return 'PC8-Turkish';
-
- case 'csiso16portuguese':
- case 'iso646pt':
- case 'isoir16':
- case 'pt':
- return 'PT';
-
- case 'csiso84portuguese2':
- case 'iso646pt2':
- case 'isoir84':
- case 'pt2':
- return 'PT2';
-
- case 'cp154':
- case 'csptcp154':
- case 'cyrillicasian':
- case 'pt154':
- case 'ptcp154':
- return 'PTCP154';
-
- case 'scsu':
- return 'SCSU';
-
- case 'csiso10swedish':
- case 'fi':
- case 'iso646fi':
- case 'iso646se':
- case 'isoir10':
- case 'se':
- case 'sen850200b':
- return 'SEN_850200_B';
-
- case 'csiso11swedishfornames':
- case 'iso646se2':
- case 'isoir11':
- case 'se2':
- case 'sen850200c':
- return 'SEN_850200_C';
-
- case 'csiso102t617bit':
- case 'isoir102':
- case 't617bit':
- return 'T.61-7bit';
-
- case 'csiso103t618bit':
- case 'isoir103':
- case 't61':
- case 't618bit':
- return 'T.61-8bit';
-
- case 'csiso128t101g2':
- case 'isoir128':
- case 't101g2':
- return 'T.101-G2';
-
- case 'cstscii':
- case 'tscii':
- return 'TSCII';
-
- case 'csunicode11':
- case 'unicode11':
- return 'UNICODE-1-1';
-
- case 'csunicode11utf7':
- case 'unicode11utf7':
- return 'UNICODE-1-1-UTF-7';
-
- case 'csunknown8bit':
- case 'unknown8bit':
- return 'UNKNOWN-8BIT';
-
- case 'ansix341968':
- case 'ansix341986':
- case 'ascii':
- case 'cp367':
- case 'csascii':
- case 'ibm367':
- case 'iso646irv1991':
- case 'iso646us':
- case 'isoir6':
- case 'us':
- case 'usascii':
- return 'US-ASCII';
-
- case 'csusdk':
- case 'usdk':
- return 'us-dk';
-
- case 'utf7':
- return 'UTF-7';
-
- case 'utf8':
- return 'UTF-8';
-
- case 'utf16':
- return 'UTF-16';
-
- case 'utf16be':
- return 'UTF-16BE';
-
- case 'utf16le':
- return 'UTF-16LE';
-
- case 'utf32':
- return 'UTF-32';
-
- case 'utf32be':
- return 'UTF-32BE';
-
- case 'utf32le':
- return 'UTF-32LE';
-
- case 'csventurainternational':
- case 'venturainternational':
- return 'Ventura-International';
-
- case 'csventuramath':
- case 'venturamath':
- return 'Ventura-Math';
-
- case 'csventuraus':
- case 'venturaus':
- return 'Ventura-US';
-
- case 'csiso70videotexsupp1':
- case 'isoir70':
- case 'videotexsuppl':
- return 'videotex-suppl';
-
- case 'csviqr':
- case 'viqr':
- return 'VIQR';
-
- case 'csviscii':
- case 'viscii':
- return 'VISCII';
-
- case 'csshiftjis':
- case 'cswindows31j':
- case 'mskanji':
- case 'shiftjis':
- case 'windows31j':
- return 'Windows-31J';
-
- case 'iso885911':
- case 'tis620':
- return 'windows-874';
-
- case 'cseuckr':
- case 'csksc56011987':
- case 'euckr':
- case 'isoir149':
- case 'korean':
- case 'ksc5601':
- case 'ksc56011987':
- case 'ksc56011989':
- case 'windows949':
- return 'windows-949';
-
- case 'windows1250':
- return 'windows-1250';
-
- case 'windows1251':
- return 'windows-1251';
-
- case 'cp819':
- case 'csisolatin1':
- case 'ibm819':
- case 'iso88591':
- case 'iso885911987':
- case 'isoir100':
- case 'l1':
- case 'latin1':
- case 'windows1252':
- return 'windows-1252';
-
- case 'windows1253':
- return 'windows-1253';
-
- case 'csisolatin5':
- case 'iso88599':
- case 'iso885991989':
- case 'isoir148':
- case 'l5':
- case 'latin5':
- case 'windows1254':
- return 'windows-1254';
-
- case 'windows1255':
- return 'windows-1255';
-
- case 'windows1256':
- return 'windows-1256';
-
- case 'windows1257':
- return 'windows-1257';
-
- case 'windows1258':
- return 'windows-1258';
-
- default:
- return $charset;
- }
- }
-
- public static function get_curl_version()
- {
- if (is_array($curl = curl_version()))
- {
- $curl = $curl['version'];
- }
- elseif (substr($curl, 0, 5) === 'curl/')
- {
- $curl = substr($curl, 5, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 5));
- }
- elseif (substr($curl, 0, 8) === 'libcurl/')
- {
- $curl = substr($curl, 8, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 8));
- }
- else
- {
- $curl = 0;
- }
- return $curl;
- }
-
- /**
- * Strip HTML comments
- *
- * @param string $data Data to strip comments from
- * @return string Comment stripped string
- */
- public static function strip_comments($data)
- {
- $output = '';
- while (($start = strpos($data, '<!--')) !== false)
- {
- $output .= substr($data, 0, $start);
- if (($end = strpos($data, '-->', $start)) !== false)
- {
- $data = substr_replace($data, '', 0, $end + 3);
- }
- else
- {
- $data = '';
- }
- }
- return $output . $data;
- }
-
- public static function parse_date($dt)
- {
- $parser = SimplePie_Parse_Date::get();
- return $parser->parse($dt);
- }
-
- /**
- * Decode HTML entities
- *
- * @deprecated Use DOMDocument instead
- * @param string $data Input data
- * @return string Output data
- */
- public static function entities_decode($data)
- {
- $decoder = new SimplePie_Decode_HTML_Entities($data);
- return $decoder->parse();
- }
-
- /**
- * Remove RFC822 comments
- *
- * @param string $data Data to strip comments from
- * @return string Comment stripped string
- */
- public static function uncomment_rfc822($string)
- {
- $string = (string) $string;
- $position = 0;
- $length = strlen($string);
- $depth = 0;
-
- $output = '';
-
- while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
- {
- $output .= substr($string, $position, $pos - $position);
- $position = $pos + 1;
- if ($string[$pos - 1] !== '\\')
- {
- $depth++;
- while ($depth && $position < $length)
- {
- $position += strcspn($string, '()', $position);
- if ($string[$position - 1] === '\\')
- {
- $position++;
- continue;
- }
- elseif (isset($string[$position]))
- {
- switch ($string[$position])
- {
- case '(':
- $depth++;
- break;
-
- case ')':
- $depth--;
- break;
- }
- $position++;
- }
- else
- {
- break;
- }
- }
- }
- else
- {
- $output .= '(';
- }
- }
- $output .= substr($string, $position);
-
- return $output;
- }
-
- public static function parse_mime($mime)
- {
- if (($pos = strpos($mime, ';')) === false)
- {
- return trim($mime);
- }
- else
- {
- return trim(substr($mime, 0, $pos));
- }
- }
-
- public static function atom_03_construct_type($attribs)
- {
- if (isset($attribs['']['mode']) && strtolower(trim($attribs['']['mode']) === 'base64'))
- {
- $mode = SIMPLEPIE_CONSTRUCT_BASE64;
- }
- else
- {
- $mode = SIMPLEPIE_CONSTRUCT_NONE;
- }
- if (isset($attribs['']['type']))
- {
- switch (strtolower(trim($attribs['']['type'])))
- {
- case 'text':
- case 'text/plain':
- return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
-
- case 'html':
- case 'text/html':
- return SIMPLEPIE_CONSTRUCT_HTML | $mode;
-
- case 'xhtml':
- case 'application/xhtml+xml':
- return SIMPLEPIE_CONSTRUCT_XHTML | $mode;
-
- default:
- return SIMPLEPIE_CONSTRUCT_NONE | $mode;
- }
- }
- else
- {
- return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
- }
- }
-
- public static function atom_10_construct_type($attribs)
- {
- if (isset($attribs['']['type']))
- {
- switch (strtolower(trim($attribs['']['type'])))
- {
- case 'text':
- return SIMPLEPIE_CONSTRUCT_TEXT;
-
- case 'html':
- return SIMPLEPIE_CONSTRUCT_HTML;
-
- case 'xhtml':
- return SIMPLEPIE_CONSTRUCT_XHTML;
-
- default:
- return SIMPLEPIE_CONSTRUCT_NONE;
- }
- }
- return SIMPLEPIE_CONSTRUCT_TEXT;
- }
-
- public static function atom_10_content_construct_type($attribs)
- {
- if (isset($attribs['']['type']))
- {
- $type = strtolower(trim($attribs['']['type']));
- switch ($type)
- {
- case 'text':
- return SIMPLEPIE_CONSTRUCT_TEXT;
-
- case 'html':
- return SIMPLEPIE_CONSTRUCT_HTML;
-
- case 'xhtml':
- return SIMPLEPIE_CONSTRUCT_XHTML;
- }
- if (in_array(substr($type, -4), array('+xml', '/xml')) || substr($type, 0, 5) === 'text/')
- {
- return SIMPLEPIE_CONSTRUCT_NONE;
- }
- else
- {
- return SIMPLEPIE_CONSTRUCT_BASE64;
- }
- }
- else
- {
- return SIMPLEPIE_CONSTRUCT_TEXT;
- }
- }
-
- public static function is_isegment_nz_nc($string)
- {
- return (bool) preg_match('/^([A-Za-z0-9\-._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!$&\'()*+,;=@]|(%[0-9ABCDEF]{2}))+$/u', $string);
- }
-
- public static function space_seperated_tokens($string)
- {
- $space_characters = "\x20\x09\x0A\x0B\x0C\x0D";
- $string_length = strlen($string);
-
- $position = strspn($string, $space_characters);
- $tokens = array();
-
- while ($position < $string_length)
- {
- $len = strcspn($string, $space_characters, $position);
- $tokens[] = substr($string, $position, $len);
- $position += $len;
- $position += strspn($string, $space_characters, $position);
- }
-
- return $tokens;
- }
-
- /**
- * Converts a unicode codepoint to a UTF-8 character
- *
- * @static
- * @param int $codepoint Unicode codepoint
- * @return string UTF-8 character
- */
- public static function codepoint_to_utf8($codepoint)
- {
- $codepoint = (int) $codepoint;
- if ($codepoint < 0)
- {
- return false;
- }
- else if ($codepoint <= 0x7f)
- {
- return chr($codepoint);
- }
- else if ($codepoint <= 0x7ff)
- {
- return chr(0xc0 | ($codepoint >> 6)) . chr(0x80 | ($codepoint & 0x3f));
- }
- else if ($codepoint <= 0xffff)
- {
- return chr(0xe0 | ($codepoint >> 12)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
- }
- else if ($codepoint <= 0x10ffff)
- {
- return chr(0xf0 | ($codepoint >> 18)) . chr(0x80 | (($codepoint >> 12) & 0x3f)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
- }
- else
- {
- // U+FFFD REPLACEMENT CHARACTER
- return "\xEF\xBF\xBD";
- }
- }
-
- /**
- * Similar to parse_str()
- *
- * Returns an associative array of name/value pairs, where the value is an
- * array of values that have used the same name
- *
- * @static
- * @param string $str The input string.
- * @return array
- */
- public static function parse_str($str)
- {
- $return = array();
- $str = explode('&', $str);
-
- foreach ($str as $section)
- {
- if (strpos($section, '=') !== false)
- {
- list($name, $value) = explode('=', $section, 2);
- $return[urldecode($name)][] = urldecode($value);
- }
- else
- {
- $return[urldecode($section)][] = null;
- }
- }
-
- return $return;
- }
-
- /**
- * Detect XML encoding, as per XML 1.0 Appendix F.1
- *
- * @todo Add support for EBCDIC
- * @param string $data XML data
- * @param SimplePie_Registry $registry Class registry
- * @return array Possible encodings
- */
- public static function xml_encoding($data, $registry)
- {
- // UTF-32 Big Endian BOM
- if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
- {
- $encoding[] = 'UTF-32BE';
- }
- // UTF-32 Little Endian BOM
- elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
- {
- $encoding[] = 'UTF-32LE';
- }
- // UTF-16 Big Endian BOM
- elseif (substr($data, 0, 2) === "\xFE\xFF")
- {
- $encoding[] = 'UTF-16BE';
- }
- // UTF-16 Little Endian BOM
- elseif (substr($data, 0, 2) === "\xFF\xFE")
- {
- $encoding[] = 'UTF-16LE';
- }
- // UTF-8 BOM
- elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
- {
- $encoding[] = 'UTF-8';
- }
- // UTF-32 Big Endian Without BOM
- elseif (substr($data, 0, 20) === "\x00\x00\x00\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C")
- {
- if ($pos = strpos($data, "\x00\x00\x00\x3F\x00\x00\x00\x3E"))
- {
- $parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32BE', 'UTF-8')));
- if ($parser->parse())
- {
- $encoding[] = $parser->encoding;
- }
- }
- $encoding[] = 'UTF-32BE';
- }
- // UTF-32 Little Endian Without BOM
- elseif (substr($data, 0, 20) === "\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C\x00\x00\x00")
- {
- if ($pos = strpos($data, "\x3F\x00\x00\x00\x3E\x00\x00\x00"))
- {
- $parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32LE', 'UTF-8')));
- if ($parser->parse())
- {
- $encoding[] = $parser->encoding;
- }
- }
- $encoding[] = 'UTF-32LE';
- }
- // UTF-16 Big Endian Without BOM
- elseif (substr($data, 0, 10) === "\x00\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C")
- {
- if ($pos = strpos($data, "\x00\x3F\x00\x3E"))
- {
- $parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16BE', 'UTF-8')));
- if ($parser->parse())
- {
- $encoding[] = $parser->encoding;
- }
- }
- $encoding[] = 'UTF-16BE';
- }
- // UTF-16 Little Endian Without BOM
- elseif (substr($data, 0, 10) === "\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C\x00")
- {
- if ($pos = strpos($data, "\x3F\x00\x3E\x00"))
- {
- $parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16LE', 'UTF-8')));
- if ($parser->parse())
- {
- $encoding[] = $parser->encoding;
- }
- }
- $encoding[] = 'UTF-16LE';
- }
- // US-ASCII (or superset)
- elseif (substr($data, 0, 5) === "\x3C\x3F\x78\x6D\x6C")
- {
- if ($pos = strpos($data, "\x3F\x3E"))
- {
- $parser = $registry->create('XML_Declaration_Parser', array(substr($data, 5, $pos - 5)));
- if ($parser->parse())
- {
- $encoding[] = $parser->encoding;
- }
- }
- $encoding[] = 'UTF-8';
- }
- // Fallback to UTF-8
- else
- {
- $encoding[] = 'UTF-8';
- }
- return $encoding;
- }
-
- public static function output_javascript()
- {
- if (function_exists('ob_gzhandler'))
- {
- ob_start('ob_gzhandler');
- }
- header('Content-type: text/javascript; charset: UTF-8');
- header('Cache-Control: must-revalidate');
- header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days
- ?>
-function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) {
- if (placeholder != '') {
- document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" href="'+link+'" src="'+placeholder+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="false" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>');
- }
- else {
- document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" src="'+link+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="true" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>');
- }
-}
-
-function embed_flash(bgcolor, width, height, link, loop, type) {
- document.writeln('<embed src="'+link+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="'+type+'" quality="high" width="'+width+'" height="'+height+'" bgcolor="'+bgcolor+'" loop="'+loop+'"></embed>');
-}
-
-function embed_flv(width, height, link, placeholder, loop, player) {
- document.writeln('<embed src="'+player+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="'+width+'" height="'+height+'" wmode="transparent" flashvars="file='+link+'&autostart=false&repeat='+loop+'&showdigits=true&showfsbutton=false"></embed>');
-}
-
-function embed_wmedia(width, height, link) {
- document.writeln('<embed type="application/x-mplayer2" src="'+link+'" autosize="1" width="'+width+'" height="'+height+'" showcontrols="1" showstatusbar="0" showdisplay="0" autostart="0"></embed>');
-}
- <?php
- }
-
- /**
- * Get the SimplePie build timestamp
- *
- * Uses the git index if it exists, otherwise uses the modification time
- * of the newest file.
- */
- public static function get_build()
- {
- $root = dirname(dirname(__FILE__));
- if (file_exists($root . '/.git/index'))
- {
- return filemtime($root . '/.git/index');
- }
- elseif (file_exists($root . '/SimplePie'))
- {
- $time = 0;
- foreach (glob($root . '/SimplePie/*.php') as $file)
- {
- if (($mtime = filemtime($file)) > $time)
- {
- $time = $mtime;
- }
- }
- return $time;
- }
- elseif (file_exists(dirname(__FILE__) . '/Core.php'))
- {
- return filemtime(dirname(__FILE__) . '/Core.php');
- }
- else
- {
- return filemtime(__FILE__);
- }
- }
-
- /**
- * Format debugging information
- */
- public static function debug(&$sp)
- {
- $info = 'SimplePie ' . SIMPLEPIE_VERSION . ' Build ' . SIMPLEPIE_BUILD . "\n";
- $info .= 'PHP ' . PHP_VERSION . "\n";
- if ($sp->error() !== null)
- {
- $info .= 'Error occurred: ' . $sp->error() . "\n";
- }
- else
- {
- $info .= "No error found.\n";
- }
- $info .= "Extensions:\n";
- $extensions = array('pcre', 'curl', 'zlib', 'mbstring', 'iconv', 'xmlreader', 'xml');
- foreach ($extensions as $ext)
- {
- if (extension_loaded($ext))
- {
- $info .= " $ext loaded\n";
- switch ($ext)
- {
- case 'pcre':
- $info .= ' Version ' . PCRE_VERSION . "\n";
- break;
- case 'curl':
- $version = curl_version();
- $info .= ' Version ' . $version['version'] . "\n";
- break;
- case 'mbstring':
- $info .= ' Overloading: ' . mb_get_info('func_overload') . "\n";
- break;
- case 'iconv':
- $info .= ' Version ' . ICONV_VERSION . "\n";
- break;
- case 'xml':
- $info .= ' Version ' . LIBXML_DOTTED_VERSION . "\n";
- break;
- }
- }
- else
- {
- $info .= " $ext not loaded\n";
- }
- }
- return $info;
- }
-
- public static function silence_errors($num, $str)
- {
- // No-op
- }
-}
-
-/**
- * Class to validate and to work with IPv6 addresses.
- *
- * @package SimplePie
- * @subpackage HTTP
- * @copyright 2003-2005 The PHP Group
- * @license http://www.opensource.org/licenses/bsd-license.php
- * @link http://pear.php.net/package/Net_IPv6
- * @author Alexander Merz <[email protected]>
- * @author elfrink at introweb dot nl
- * @author Josh Peck <jmp at joshpeck dot org>
- * @author Geoffrey Sneddon <[email protected]>
- */
-class SimplePie_Net_IPv6
-{
- /**
- * Uncompresses an IPv6 address
- *
- * RFC 4291 allows you to compress concecutive zero pieces in an address to
- * '::'. This method expects a valid IPv6 address and expands the '::' to
- * the required number of zero pieces.
- *
- * Example: FF01::101 -> FF01:0:0:0:0:0:0:101
- * ::1 -> 0:0:0:0:0:0:0:1
- *
- * @author Alexander Merz <[email protected]>
- * @author elfrink at introweb dot nl
- * @author Josh Peck <jmp at joshpeck dot org>
- * @copyright 2003-2005 The PHP Group
- * @license http://www.opensource.org/licenses/bsd-license.php
- * @param string $ip An IPv6 address
- * @return string The uncompressed IPv6 address
- */
- public static function uncompress($ip)
- {
- $c1 = -1;
- $c2 = -1;
- if (substr_count($ip, '::') === 1)
- {
- list($ip1, $ip2) = explode('::', $ip);
- if ($ip1 === '')
- {
- $c1 = -1;
- }
- else
- {
- $c1 = substr_count($ip1, ':');
- }
- if ($ip2 === '')
- {
- $c2 = -1;
- }
- else
- {
- $c2 = substr_count($ip2, ':');
- }
- if (strpos($ip2, '.') !== false)
- {
- $c2++;
- }
- // ::
- if ($c1 === -1 && $c2 === -1)
- {
- $ip = '0:0:0:0:0:0:0:0';
- }
- // ::xxx
- else if ($c1 === -1)
- {
- $fill = str_repeat('0:', 7 - $c2);
- $ip = str_replace('::', $fill, $ip);
- }
- // xxx::
- else if ($c2 === -1)
- {
- $fill = str_repeat(':0', 7 - $c1);
- $ip = str_replace('::', $fill, $ip);
- }
- // xxx::xxx
- else
- {
- $fill = ':' . str_repeat('0:', 6 - $c2 - $c1);
- $ip = str_replace('::', $fill, $ip);
- }
- }
- return $ip;
- }
-
- /**
- * Compresses an IPv6 address
- *
- * RFC 4291 allows you to compress concecutive zero pieces in an address to
- * '::'. This method expects a valid IPv6 address and compresses consecutive
- * zero pieces to '::'.
- *
- * Example: FF01:0:0:0:0:0:0:101 -> FF01::101
- * 0:0:0:0:0:0:0:1 -> ::1
- *
- * @see uncompress()
- * @param string $ip An IPv6 address
- * @return string The compressed IPv6 address
- */
- public static function compress($ip)
- {
- // Prepare the IP to be compressed
- $ip = self::uncompress($ip);
- $ip_parts = self::split_v6_v4($ip);
-
- // Replace all leading zeros
- $ip_parts[0] = preg_replace('/(^|:)0+([0-9])/', '\1\2', $ip_parts[0]);
-
- // Find bunches of zeros
- if (preg_match_all('/(?:^|:)(?:0(?::|$))+/', $ip_parts[0], $matches, PREG_OFFSET_CAPTURE))
- {
- $max = 0;
- $pos = null;
- foreach ($matches[0] as $match)
- {
- if (strlen($match[0]) > $max)
- {
- $max = strlen($match[0]);
- $pos = $match[1];
- }
- }
-
- $ip_parts[0] = substr_replace($ip_parts[0], '::', $pos, $max);
- }
-
- if ($ip_parts[1] !== '')
- {
- return implode(':', $ip_parts);
- }
- else
- {
- return $ip_parts[0];
- }
- }
-
- /**
- * Splits an IPv6 address into the IPv6 and IPv4 representation parts
- *
- * RFC 4291 allows you to represent the last two parts of an IPv6 address
- * using the standard IPv4 representation
- *
- * Example: 0:0:0:0:0:0:13.1.68.3
- * 0:0:0:0:0:FFFF:129.144.52.38
- *
- * @param string $ip An IPv6 address
- * @return array [0] contains the IPv6 represented part, and [1] the IPv4 represented part
- */
- private static function split_v6_v4($ip)
- {
- if (strpos($ip, '.') !== false)
- {
- $pos = strrpos($ip, ':');
- $ipv6_part = substr($ip, 0, $pos);
- $ipv4_part = substr($ip, $pos + 1);
- return array($ipv6_part, $ipv4_part);
- }
- else
- {
- return array($ip, '');
- }
- }
-
- /**
- * Checks an IPv6 address
- *
- * Checks if the given IP is a valid IPv6 address
- *
- * @param string $ip An IPv6 address
- * @return bool true if $ip is a valid IPv6 address
- */
- public static function check_ipv6($ip)
- {
- $ip = self::uncompress($ip);
- list($ipv6, $ipv4) = self::split_v6_v4($ip);
- $ipv6 = explode(':', $ipv6);
- $ipv4 = explode('.', $ipv4);
- if (count($ipv6) === 8 && count($ipv4) === 1 || count($ipv6) === 6 && count($ipv4) === 4)
- {
- foreach ($ipv6 as $ipv6_part)
- {
- // The section can't be empty
- if ($ipv6_part === '')
- return false;
-
- // Nor can it be over four characters
- if (strlen($ipv6_part) > 4)
- return false;
-
- // Remove leading zeros (this is safe because of the above)
- $ipv6_part = ltrim($ipv6_part, '0');
- if ($ipv6_part === '')
- $ipv6_part = '0';
-
- // Check the value is valid
- $value = hexdec($ipv6_part);
- if (dechex($value) !== strtolower($ipv6_part) || $value < 0 || $value > 0xFFFF)
- return false;
- }
- if (count($ipv4) === 4)
- {
- foreach ($ipv4 as $ipv4_part)
- {
- $value = (int) $ipv4_part;
- if ((string) $value !== $ipv4_part || $value < 0 || $value > 0xFF)
- return false;
- }
- }
- return true;
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Checks if the given IP is a valid IPv6 address
- *
- * @codeCoverageIgnore
- * @deprecated Use {@see SimplePie_Net_IPv6::check_ipv6()} instead
- * @see check_ipv6
- * @param string $ip An IPv6 address
- * @return bool true if $ip is a valid IPv6 address
- */
- public static function checkIPv6($ip)
- {
- return self::check_ipv6($ip);
- }
-}
-
-/**
- * Date Parser
- *
- * @package SimplePie
- * @subpackage Parsing
- */
-class SimplePie_Parse_Date
-{
- /**
- * Input data
- *
- * @access protected
- * @var string
- */
- var $date;
-
- /**
- * List of days, calendar day name => ordinal day number in the week
- *
- * @access protected
- * @var array
- */
- var $day = array(
- // English
- 'mon' => 1,
- 'monday' => 1,
- 'tue' => 2,
- 'tuesday' => 2,
- 'wed' => 3,
- 'wednesday' => 3,
- 'thu' => 4,
- 'thursday' => 4,
- 'fri' => 5,
- 'friday' => 5,
- 'sat' => 6,
- 'saturday' => 6,
- 'sun' => 7,
- 'sunday' => 7,
- // Dutch
- 'maandag' => 1,
- 'dinsdag' => 2,
- 'woensdag' => 3,
- 'donderdag' => 4,
- 'vrijdag' => 5,
- 'zaterdag' => 6,
- 'zondag' => 7,
- // French
- 'lundi' => 1,
- 'mardi' => 2,
- 'mercredi' => 3,
- 'jeudi' => 4,
- 'vendredi' => 5,
- 'samedi' => 6,
- 'dimanche' => 7,
- // German
- 'montag' => 1,
- 'dienstag' => 2,
- 'mittwoch' => 3,
- 'donnerstag' => 4,
- 'freitag' => 5,
- 'samstag' => 6,
- 'sonnabend' => 6,
- 'sonntag' => 7,
- // Italian
- 'lunedì' => 1,
- 'martedì' => 2,
- 'mercoledì' => 3,
- 'giovedì' => 4,
- 'venerdì' => 5,
- 'sabato' => 6,
- 'domenica' => 7,
- // Spanish
- 'lunes' => 1,
- 'martes' => 2,
- 'miércoles' => 3,
- 'jueves' => 4,
- 'viernes' => 5,
- 'sábado' => 6,
- 'domingo' => 7,
- // Finnish
- 'maanantai' => 1,
- 'tiistai' => 2,
- 'keskiviikko' => 3,
- 'torstai' => 4,
- 'perjantai' => 5,
- 'lauantai' => 6,
- 'sunnuntai' => 7,
- // Hungarian
- 'hétfő' => 1,
- 'kedd' => 2,
- 'szerda' => 3,
- 'csütörtok' => 4,
- 'péntek' => 5,
- 'szombat' => 6,
- 'vasárnap' => 7,
- // Greek
- 'Δευ' => 1,
- 'Τρι' => 2,
- 'Τετ' => 3,
- 'Πεμ' => 4,
- 'Παρ' => 5,
- 'Σαβ' => 6,
- 'Κυρ' => 7,
- );
-
- /**
- * List of months, calendar month name => calendar month number
- *
- * @access protected
- * @var array
- */
- var $month = array(
- // English
- 'jan' => 1,
- 'january' => 1,
- 'feb' => 2,
- 'february' => 2,
- 'mar' => 3,
- 'march' => 3,
- 'apr' => 4,
- 'april' => 4,
- 'may' => 5,
- // No long form of May
- 'jun' => 6,
- 'june' => 6,
- 'jul' => 7,
- 'july' => 7,
- 'aug' => 8,
- 'august' => 8,
- 'sep' => 9,
- 'september' => 8,
- 'oct' => 10,
- 'october' => 10,
- 'nov' => 11,
- 'november' => 11,
- 'dec' => 12,
- 'december' => 12,
- // Dutch
- 'januari' => 1,
- 'februari' => 2,
- 'maart' => 3,
- 'april' => 4,
- 'mei' => 5,
- 'juni' => 6,
- 'juli' => 7,
- 'augustus' => 8,
- 'september' => 9,
- 'oktober' => 10,
- 'november' => 11,
- 'december' => 12,
- // French
- 'janvier' => 1,
- 'février' => 2,
- 'mars' => 3,
- 'avril' => 4,
- 'mai' => 5,
- 'juin' => 6,
- 'juillet' => 7,
- 'août' => 8,
- 'septembre' => 9,
- 'octobre' => 10,
- 'novembre' => 11,
- 'décembre' => 12,
- // German
- 'januar' => 1,
- 'februar' => 2,
- 'märz' => 3,
- 'april' => 4,
- 'mai' => 5,
- 'juni' => 6,
- 'juli' => 7,
- 'august' => 8,
- 'september' => 9,
- 'oktober' => 10,
- 'november' => 11,
- 'dezember' => 12,
- // Italian
- 'gennaio' => 1,
- 'febbraio' => 2,
- 'marzo' => 3,
- 'aprile' => 4,
- 'maggio' => 5,
- 'giugno' => 6,
- 'luglio' => 7,
- 'agosto' => 8,
- 'settembre' => 9,
- 'ottobre' => 10,
- 'novembre' => 11,
- 'dicembre' => 12,
- // Spanish
- 'enero' => 1,
- 'febrero' => 2,
- 'marzo' => 3,
- 'abril' => 4,
- 'mayo' => 5,
- 'junio' => 6,
- 'julio' => 7,
- 'agosto' => 8,
- 'septiembre' => 9,
- 'setiembre' => 9,
- 'octubre' => 10,
- 'noviembre' => 11,
- 'diciembre' => 12,
- // Finnish
- 'tammikuu' => 1,
- 'helmikuu' => 2,
- 'maaliskuu' => 3,
- 'huhtikuu' => 4,
- 'toukokuu' => 5,
- 'kesäkuu' => 6,
- 'heinäkuu' => 7,
- 'elokuu' => 8,
- 'suuskuu' => 9,
- 'lokakuu' => 10,
- 'marras' => 11,
- 'joulukuu' => 12,
- // Hungarian
- 'január' => 1,
- 'február' => 2,
- 'március' => 3,
- 'április' => 4,
- 'május' => 5,
- 'június' => 6,
- 'július' => 7,
- 'augusztus' => 8,
- 'szeptember' => 9,
- 'október' => 10,
- 'november' => 11,
- 'december' => 12,
- // Greek
- 'Ιαν' => 1,
- 'Φεβ' => 2,
- 'Μάώ' => 3,
- 'Μαώ' => 3,
- 'Απρ' => 4,
- 'Μάι' => 5,
- 'Μαϊ' => 5,
- 'Μαι' => 5,
- 'Ιούν' => 6,
- 'Ιον' => 6,
- 'Ιούλ' => 7,
- 'Ιολ' => 7,
- 'Αύγ' => 8,
- 'Αυγ' => 8,
- 'Σεπ' => 9,
- 'Οκτ' => 10,
- 'Νοέ' => 11,
- 'Δεκ' => 12,
- );
-
- /**
- * List of timezones, abbreviation => offset from UTC
- *
- * @access protected
- * @var array
- */
- var $timezone = array(
- 'ACDT' => 37800,
- 'ACIT' => 28800,
- 'ACST' => 34200,
- 'ACT' => -18000,
- 'ACWDT' => 35100,
- 'ACWST' => 31500,
- 'AEDT' => 39600,
- 'AEST' => 36000,
- 'AFT' => 16200,
- 'AKDT' => -28800,
- 'AKST' => -32400,
- 'AMDT' => 18000,
- 'AMT' => -14400,
- 'ANAST' => 46800,
- 'ANAT' => 43200,
- 'ART' => -10800,
- 'AZOST' => -3600,
- 'AZST' => 18000,
- 'AZT' => 14400,
- 'BIOT' => 21600,
- 'BIT' => -43200,
- 'BOT' => -14400,
- 'BRST' => -7200,
- 'BRT' => -10800,
- 'BST' => 3600,
- 'BTT' => 21600,
- 'CAST' => 18000,
- 'CAT' => 7200,
- 'CCT' => 23400,
- 'CDT' => -18000,
- 'CEDT' => 7200,
- 'CET' => 3600,
- 'CGST' => -7200,
- 'CGT' => -10800,
- 'CHADT' => 49500,
- 'CHAST' => 45900,
- 'CIST' => -28800,
- 'CKT' => -36000,
- 'CLDT' => -10800,
- 'CLST' => -14400,
- 'COT' => -18000,
- 'CST' => -21600,
- 'CVT' => -3600,
- 'CXT' => 25200,
- 'DAVT' => 25200,
- 'DTAT' => 36000,
- 'EADT' => -18000,
- 'EAST' => -21600,
- 'EAT' => 10800,
- 'ECT' => -18000,
- 'EDT' => -14400,
- 'EEST' => 10800,
- 'EET' => 7200,
- 'EGT' => -3600,
- 'EKST' => 21600,
- 'EST' => -18000,
- 'FJT' => 43200,
- 'FKDT' => -10800,
- 'FKST' => -14400,
- 'FNT' => -7200,
- 'GALT' => -21600,
- 'GEDT' => 14400,
- 'GEST' => 10800,
- 'GFT' => -10800,
- 'GILT' => 43200,
- 'GIT' => -32400,
- 'GST' => 14400,
- 'GST' => -7200,
- 'GYT' => -14400,
- 'HAA' => -10800,
- 'HAC' => -18000,
- 'HADT' => -32400,
- 'HAE' => -14400,
- 'HAP' => -25200,
- 'HAR' => -21600,
- 'HAST' => -36000,
- 'HAT' => -9000,
- 'HAY' => -28800,
- 'HKST' => 28800,
- 'HMT' => 18000,
- 'HNA' => -14400,
- 'HNC' => -21600,
- 'HNE' => -18000,
- 'HNP' => -28800,
- 'HNR' => -25200,
- 'HNT' => -12600,
- 'HNY' => -32400,
- 'IRDT' => 16200,
- 'IRKST' => 32400,
- 'IRKT' => 28800,
- 'IRST' => 12600,
- 'JFDT' => -10800,
- 'JFST' => -14400,
- 'JST' => 32400,
- 'KGST' => 21600,
- 'KGT' => 18000,
- 'KOST' => 39600,
- 'KOVST' => 28800,
- 'KOVT' => 25200,
- 'KRAST' => 28800,
- 'KRAT' => 25200,
- 'KST' => 32400,
- 'LHDT' => 39600,
- 'LHST' => 37800,
- 'LINT' => 50400,
- 'LKT' => 21600,
- 'MAGST' => 43200,
- 'MAGT' => 39600,
- 'MAWT' => 21600,
- 'MDT' => -21600,
- 'MESZ' => 7200,
- 'MEZ' => 3600,
- 'MHT' => 43200,
- 'MIT' => -34200,
- 'MNST' => 32400,
- 'MSDT' => 14400,
- 'MSST' => 10800,
- 'MST' => -25200,
- 'MUT' => 14400,
- 'MVT' => 18000,
- 'MYT' => 28800,
- 'NCT' => 39600,
- 'NDT' => -9000,
- 'NFT' => 41400,
- 'NMIT' => 36000,
- 'NOVST' => 25200,
- 'NOVT' => 21600,
- 'NPT' => 20700,
- 'NRT' => 43200,
- 'NST' => -12600,
- 'NUT' => -39600,
- 'NZDT' => 46800,
- 'NZST' => 43200,
- 'OMSST' => 25200,
- 'OMST' => 21600,
- 'PDT' => -25200,
- 'PET' => -18000,
- 'PETST' => 46800,
- 'PETT' => 43200,
- 'PGT' => 36000,
- 'PHOT' => 46800,
- 'PHT' => 28800,
- 'PKT' => 18000,
- 'PMDT' => -7200,
- 'PMST' => -10800,
- 'PONT' => 39600,
- 'PST' => -28800,
- 'PWT' => 32400,
- 'PYST' => -10800,
- 'PYT' => -14400,
- 'RET' => 14400,
- 'ROTT' => -10800,
- 'SAMST' => 18000,
- 'SAMT' => 14400,
- 'SAST' => 7200,
- 'SBT' => 39600,
- 'SCDT' => 46800,
- 'SCST' => 43200,
- 'SCT' => 14400,
- 'SEST' => 3600,
- 'SGT' => 28800,
- 'SIT' => 28800,
- 'SRT' => -10800,
- 'SST' => -39600,
- 'SYST' => 10800,
- 'SYT' => 7200,
- 'TFT' => 18000,
- 'THAT' => -36000,
- 'TJT' => 18000,
- 'TKT' => -36000,
- 'TMT' => 18000,
- 'TOT' => 46800,
- 'TPT' => 32400,
- 'TRUT' => 36000,
- 'TVT' => 43200,
- 'TWT' => 28800,
- 'UYST' => -7200,
- 'UYT' => -10800,
- 'UZT' => 18000,
- 'VET' => -14400,
- 'VLAST' => 39600,
- 'VLAT' => 36000,
- 'VOST' => 21600,
- 'VUT' => 39600,
- 'WAST' => 7200,
- 'WAT' => 3600,
- 'WDT' => 32400,
- 'WEST' => 3600,
- 'WFT' => 43200,
- 'WIB' => 25200,
- 'WIT' => 32400,
- 'WITA' => 28800,
- 'WKST' => 18000,
- 'WST' => 28800,
- 'YAKST' => 36000,
- 'YAKT' => 32400,
- 'YAPT' => 36000,
- 'YEKST' => 21600,
- 'YEKT' => 18000,
- );
-
- /**
- * Cached PCRE for SimplePie_Parse_Date::$day
- *
- * @access protected
- * @var string
- */
- var $day_pcre;
-
- /**
- * Cached PCRE for SimplePie_Parse_Date::$month
- *
- * @access protected
- * @var string
- */
- var $month_pcre;
-
- /**
- * Array of user-added callback methods
- *
- * @access private
- * @var array
- */
- var $built_in = array();
-
- /**
- * Array of user-added callback methods
- *
- * @access private
- * @var array
- */
- var $user = array();
-
- /**
- * Create new SimplePie_Parse_Date object, and set self::day_pcre,
- * self::month_pcre, and self::built_in
- *
- * @access private
- */
- public function __construct()
- {
- $this->day_pcre = '(' . implode(array_keys($this->day), '|') . ')';
- $this->month_pcre = '(' . implode(array_keys($this->month), '|') . ')';
-
- static $cache;
- if (!isset($cache[get_class($this)]))
- {
- $all_methods = get_class_methods($this);
-
- foreach ($all_methods as $method)
- {
- if (strtolower(substr($method, 0, 5)) === 'date_')
- {
- $cache[get_class($this)][] = $method;
- }
- }
- }
-
- foreach ($cache[get_class($this)] as $method)
- {
- $this->built_in[] = $method;
- }
- }
-
- /**
- * Get the object
- *
- * @access public
- */
- public static function get()
- {
- static $object;
- if (!$object)
- {
- $object = new SimplePie_Parse_Date;
- }
- return $object;
- }
-
- /**
- * Parse a date
- *
- * @final
- * @access public
- * @param string $date Date to parse
- * @return int Timestamp corresponding to date string, or false on failure
- */
- public function parse($date)
- {
- foreach ($this->user as $method)
- {
- if (($returned = call_user_func($method, $date)) !== false)
- {
- return $returned;
- }
- }
-
- foreach ($this->built_in as $method)
- {
- if (($returned = call_user_func(array($this, $method), $date)) !== false)
- {
- return $returned;
- }
- }
-
- return false;
- }
-
- /**
- * Add a callback method to parse a date
- *
- * @final
- * @access public
- * @param callback $callback
- */
- public function add_callback($callback)
- {
- if (is_callable($callback))
- {
- $this->user[] = $callback;
- }
- else
- {
- trigger_error('User-supplied function must be a valid callback', E_USER_WARNING);
- }
- }
-
- /**
- * Parse a superset of W3C-DTF (allows hyphens and colons to be omitted, as
- * well as allowing any of upper or lower case "T", horizontal tabs, or
- * spaces to be used as the time seperator (including more than one))
- *
- * @access protected
- * @return int Timestamp
- */
- public function date_w3cdtf($date)
- {
- static $pcre;
- if (!$pcre)
- {
- $year = '([0-9]{4})';
- $month = $day = $hour = $minute = $second = '([0-9]{2})';
- $decimal = '([0-9]*)';
- $zone = '(?:(Z)|([+\-])([0-9]{1,2}):?([0-9]{1,2}))';
- $pcre = '/^' . $year . '(?:-?' . $month . '(?:-?' . $day . '(?:[Tt\x09\x20]+' . $hour . '(?::?' . $minute . '(?::?' . $second . '(?:.' . $decimal . ')?)?)?' . $zone . ')?)?)?$/';
- }
- if (preg_match($pcre, $date, $match))
- {
- /*
- Capturing subpatterns:
- 1: Year
- 2: Month
- 3: Day
- 4: Hour
- 5: Minute
- 6: Second
- 7: Decimal fraction of a second
- 8: Zulu
- 9: Timezone ±
- 10: Timezone hours
- 11: Timezone minutes
- */
-
- // Fill in empty matches
- for ($i = count($match); $i <= 3; $i++)
- {
- $match[$i] = '1';
- }
-
- for ($i = count($match); $i <= 7; $i++)
- {
- $match[$i] = '0';
- }
-
- // Numeric timezone
- if (isset($match[9]) && $match[9] !== '')
- {
- $timezone = $match[10] * 3600;
- $timezone += $match[11] * 60;
- if ($match[9] === '-')
- {
- $timezone = 0 - $timezone;
- }
- }
- else
- {
- $timezone = 0;
- }
-
- // Convert the number of seconds to an integer, taking decimals into account
- $second = round($match[6] + $match[7] / pow(10, strlen($match[7])));
-
- return gmmktime($match[4], $match[5], $second, $match[2], $match[3], $match[1]) - $timezone;
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Remove RFC822 comments
- *
- * @access protected
- * @param string $data Data to strip comments from
- * @return string Comment stripped string
- */
- public function remove_rfc2822_comments($string)
- {
- $string = (string) $string;
- $position = 0;
- $length = strlen($string);
- $depth = 0;
-
- $output = '';
-
- while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
- {
- $output .= substr($string, $position, $pos - $position);
- $position = $pos + 1;
- if ($string[$pos - 1] !== '\\')
- {
- $depth++;
- while ($depth && $position < $length)
- {
- $position += strcspn($string, '()', $position);
- if ($string[$position - 1] === '\\')
- {
- $position++;
- continue;
- }
- elseif (isset($string[$position]))
- {
- switch ($string[$position])
- {
- case '(':
- $depth++;
- break;
-
- case ')':
- $depth--;
- break;
- }
- $position++;
- }
- else
- {
- break;
- }
- }
- }
- else
- {
- $output .= '(';
- }
- }
- $output .= substr($string, $position);
-
- return $output;
- }
-
- /**
- * Parse RFC2822's date format
- *
- * @access protected
- * @return int Timestamp
- */
- public function date_rfc2822($date)
- {
- static $pcre;
- if (!$pcre)
- {
- $wsp = '[\x09\x20]';
- $fws = '(?:' . $wsp . '+|' . $wsp . '*(?:\x0D\x0A' . $wsp . '+)+)';
- $optional_fws = $fws . '?';
- $day_name = $this->day_pcre;
- $month = $this->month_pcre;
- $day = '([0-9]{1,2})';
- $hour = $minute = $second = '([0-9]{2})';
- $year = '([0-9]{2,4})';
- $num_zone = '([+\-])([0-9]{2})([0-9]{2})';
- $character_zone = '([A-Z]{1,5})';
- $zone = '(?:' . $num_zone . '|' . $character_zone . ')';
- $pcre = '/(?:' . $optional_fws . $day_name . $optional_fws . ',)?' . $optional_fws . $day . $fws . $month . $fws . $year . $fws . $hour . $optional_fws . ':' . $optional_fws . $minute . '(?:' . $optional_fws . ':' . $optional_fws . $second . ')?' . $fws . $zone . '/i';
- }
- if (preg_match($pcre, $this->remove_rfc2822_comments($date), $match))
- {
- /*
- Capturing subpatterns:
- 1: Day name
- 2: Day
- 3: Month
- 4: Year
- 5: Hour
- 6: Minute
- 7: Second
- 8: Timezone ±
- 9: Timezone hours
- 10: Timezone minutes
- 11: Alphabetic timezone
- */
-
- // Find the month number
- $month = $this->month[strtolower($match[3])];
-
- // Numeric timezone
- if ($match[8] !== '')
- {
- $timezone = $match[9] * 3600;
- $timezone += $match[10] * 60;
- if ($match[8] === '-')
- {
- $timezone = 0 - $timezone;
- }
- }
- // Character timezone
- elseif (isset($this->timezone[strtoupper($match[11])]))
- {
- $timezone = $this->timezone[strtoupper($match[11])];
- }
- // Assume everything else to be -0000
- else
- {
- $timezone = 0;
- }
-
- // Deal with 2/3 digit years
- if ($match[4] < 50)
- {
- $match[4] += 2000;
- }
- elseif ($match[4] < 1000)
- {
- $match[4] += 1900;
- }
-
- // Second is optional, if it is empty set it to zero
- if ($match[7] !== '')
- {
- $second = $match[7];
- }
- else
- {
- $second = 0;
- }
-
- return gmmktime($match[5], $match[6], $second, $month, $match[2], $match[4]) - $timezone;
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Parse RFC850's date format
- *
- * @access protected
- * @return int Timestamp
- */
- public function date_rfc850($date)
- {
- static $pcre;
- if (!$pcre)
- {
- $space = '[\x09\x20]+';
- $day_name = $this->day_pcre;
- $month = $this->month_pcre;
- $day = '([0-9]{1,2})';
- $year = $hour = $minute = $second = '([0-9]{2})';
- $zone = '([A-Z]{1,5})';
- $pcre = '/^' . $day_name . ',' . $space . $day . '-' . $month . '-' . $year . $space . $hour . ':' . $minute . ':' . $second . $space . $zone . '$/i';
- }
- if (preg_match($pcre, $date, $match))
- {
- /*
- Capturing subpatterns:
- 1: Day name
- 2: Day
- 3: Month
- 4: Year
- 5: Hour
- 6: Minute
- 7: Second
- 8: Timezone
- */
-
- // Month
- $month = $this->month[strtolower($match[3])];
-
- // Character timezone
- if (isset($this->timezone[strtoupper($match[8])]))
- {
- $timezone = $this->timezone[strtoupper($match[8])];
- }
- // Assume everything else to be -0000
- else
- {
- $timezone = 0;
- }
-
- // Deal with 2 digit year
- if ($match[4] < 50)
- {
- $match[4] += 2000;
- }
- else
- {
- $match[4] += 1900;
- }
-
- return gmmktime($match[5], $match[6], $match[7], $month, $match[2], $match[4]) - $timezone;
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Parse C99's asctime()'s date format
- *
- * @access protected
- * @return int Timestamp
- */
- public function date_asctime($date)
- {
- static $pcre;
- if (!$pcre)
- {
- $space = '[\x09\x20]+';
- $wday_name = $this->day_pcre;
- $mon_name = $this->month_pcre;
- $day = '([0-9]{1,2})';
- $hour = $sec = $min = '([0-9]{2})';
- $year = '([0-9]{4})';
- $terminator = '\x0A?\x00?';
- $pcre = '/^' . $wday_name . $space . $mon_name . $space . $day . $space . $hour . ':' . $min . ':' . $sec . $space . $year . $terminator . '$/i';
- }
- if (preg_match($pcre, $date, $match))
- {
- /*
- Capturing subpatterns:
- 1: Day name
- 2: Month
- 3: Day
- 4: Hour
- 5: Minute
- 6: Second
- 7: Year
- */
-
- $month = $this->month[strtolower($match[2])];
- return gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]);
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Parse dates using strtotime()
- *
- * @access protected
- * @return int Timestamp
- */
- public function date_strtotime($date)
- {
- $strtotime = strtotime($date);
- if ($strtotime === -1 || $strtotime === false)
- {
- return false;
- }
- else
- {
- return $strtotime;
- }
- }
-}
-
-/**
- * Parses XML into something sane
- *
- *
- * This class can be overloaded with {@see SimplePie::set_parser_class()}
- *
- * @package SimplePie
- * @subpackage Parsing
- */
-class SimplePie_Parser
-{
- var $error_code;
- var $error_string;
- var $current_line;
- var $current_column;
- var $current_byte;
- var $separator = ' ';
- var $namespace = array('');
- var $element = array('');
- var $xml_base = array('');
- var $xml_base_explicit = array(false);
- var $xml_lang = array('');
- var $data = array();
- var $datas = array(array());
- var $current_xhtml_construct = -1;
- var $encoding;
- protected $registry;
-
- public function set_registry(SimplePie_Registry $registry)
- {
- $this->registry = $registry;
- }
-
- public function parse(&$data, $encoding)
- {
- // Use UTF-8 if we get passed US-ASCII, as every US-ASCII character is a UTF-8 character
- if (strtoupper($encoding) === 'US-ASCII')
- {
- $this->encoding = 'UTF-8';
- }
- else
- {
- $this->encoding = $encoding;
- }
-
- // Strip BOM:
- // UTF-32 Big Endian BOM
- if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
- {
- $data = substr($data, 4);
- }
- // UTF-32 Little Endian BOM
- elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
- {
- $data = substr($data, 4);
- }
- // UTF-16 Big Endian BOM
- elseif (substr($data, 0, 2) === "\xFE\xFF")
- {
- $data = substr($data, 2);
- }
- // UTF-16 Little Endian BOM
- elseif (substr($data, 0, 2) === "\xFF\xFE")
- {
- $data = substr($data, 2);
- }
- // UTF-8 BOM
- elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
- {
- $data = substr($data, 3);
- }
-
- if (substr($data, 0, 5) === '<?xml' && strspn(substr($data, 5, 1), "\x09\x0A\x0D\x20") && ($pos = strpos($data, '?>')) !== false)
- {
- $declaration = $this->registry->create('XML_Declaration_Parser', array(substr($data, 5, $pos - 5)));
- if ($declaration->parse())
- {
- $data = substr($data, $pos + 2);
- $data = '<?xml version="' . $declaration->version . '" encoding="' . $encoding . '" standalone="' . (($declaration->standalone) ? 'yes' : 'no') . '"?>' . $data;
- }
- else
- {
- $this->error_string = 'SimplePie bug! Please report this!';
- return false;
- }
- }
-
- $return = true;
-
- static $xml_is_sane = null;
- if ($xml_is_sane === null)
- {
- $parser_check = xml_parser_create();
- xml_parse_into_struct($parser_check, '<foo>&amp;</foo>', $values);
- xml_parser_free($parser_check);
- $xml_is_sane = isset($values[0]['value']);
- }
-
- // Create the parser
- if ($xml_is_sane)
- {
- $xml = xml_parser_create_ns($this->encoding, $this->separator);
- xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE, 1);
- xml_parser_set_option($xml, XML_OPTION_CASE_FOLDING, 0);
- xml_set_object($xml, $this);
- xml_set_character_data_handler($xml, 'cdata');
- xml_set_element_handler($xml, 'tag_open', 'tag_close');
-
- // Parse!
- if (!xml_parse($xml, $data, true))
- {
- $this->error_code = xml_get_error_code($xml);
- $this->error_string = xml_error_string($this->error_code);
- $return = false;
- }
- $this->current_line = xml_get_current_line_number($xml);
- $this->current_column = xml_get_current_column_number($xml);
- $this->current_byte = xml_get_current_byte_index($xml);
- xml_parser_free($xml);
- return $return;
- }
- else
- {
- libxml_clear_errors();
- $xml = new XMLReader();
- $xml->xml($data);
- while (@$xml->read())
- {
- switch ($xml->nodeType)
- {
-
- case constant('XMLReader::END_ELEMENT'):
- if ($xml->namespaceURI !== '')
- {
- $tagName = $xml->namespaceURI . $this->separator . $xml->localName;
- }
- else
- {
- $tagName = $xml->localName;
- }
- $this->tag_close(null, $tagName);
- break;
- case constant('XMLReader::ELEMENT'):
- $empty = $xml->isEmptyElement;
- if ($xml->namespaceURI !== '')
- {
- $tagName = $xml->namespaceURI . $this->separator . $xml->localName;
- }
- else
- {
- $tagName = $xml->localName;
- }
- $attributes = array();
- while ($xml->moveToNextAttribute())
- {
- if ($xml->namespaceURI !== '')
- {
- $attrName = $xml->namespaceURI . $this->separator . $xml->localName;
- }
- else
- {
- $attrName = $xml->localName;
- }
- $attributes[$attrName] = $xml->value;
- }
- $this->tag_open(null, $tagName, $attributes);
- if ($empty)
- {
- $this->tag_close(null, $tagName);
- }
- break;
- case constant('XMLReader::TEXT'):
-
- case constant('XMLReader::CDATA'):
- $this->cdata(null, $xml->value);
- break;
- }
- }
- if ($error = libxml_get_last_error())
- {
- $this->error_code = $error->code;
- $this->error_string = $error->message;
- $this->current_line = $error->line;
- $this->current_column = $error->column;
- return false;
- }
- else
- {
- return true;
- }
- }
- }
-
- public function get_error_code()
- {
- return $this->error_code;
- }
-
- public function get_error_string()
- {
- return $this->error_string;
- }
-
- public function get_current_line()
- {
- return $this->current_line;
- }
-
- public function get_current_column()
- {
- return $this->current_column;
- }
-
- public function get_current_byte()
- {
- return $this->current_byte;
- }
-
- public function get_data()
- {
- return $this->data;
- }
-
- public function tag_open($parser, $tag, $attributes)
- {
- list($this->namespace[], $this->element[]) = $this->split_ns($tag);
-
- $attribs = array();
- foreach ($attributes as $name => $value)
- {
- list($attrib_namespace, $attribute) = $this->split_ns($name);
- $attribs[$attrib_namespace][$attribute] = $value;
- }
-
- if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['base']))
- {
- $base = $this->registry->call('Misc', 'absolutize_url', array($attribs[SIMPLEPIE_NAMESPACE_XML]['base'], end($this->xml_base)));
- if ($base !== false)
- {
- $this->xml_base[] = $base;
- $this->xml_base_explicit[] = true;
- }
- }
- else
- {
- $this->xml_base[] = end($this->xml_base);
- $this->xml_base_explicit[] = end($this->xml_base_explicit);
- }
-
- if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['lang']))
- {
- $this->xml_lang[] = $attribs[SIMPLEPIE_NAMESPACE_XML]['lang'];
- }
- else
- {
- $this->xml_lang[] = end($this->xml_lang);
- }
-
- if ($this->current_xhtml_construct >= 0)
- {
- $this->current_xhtml_construct++;
- if (end($this->namespace) === SIMPLEPIE_NAMESPACE_XHTML)
- {
- $this->data['data'] .= '<' . end($this->element);
- if (isset($attribs['']))
- {
- foreach ($attribs[''] as $name => $value)
- {
- $this->data['data'] .= ' ' . $name . '="' . htmlspecialchars($value, ENT_COMPAT, $this->encoding) . '"';
- }
- }
- $this->data['data'] .= '>';
- }
- }
- else
- {
- $this->datas[] =& $this->data;
- $this->data =& $this->data['child'][end($this->namespace)][end($this->element)][];
- $this->data = array('data' => '', 'attribs' => $attribs, 'xml_base' => end($this->xml_base), 'xml_base_explicit' => end($this->xml_base_explicit), 'xml_lang' => end($this->xml_lang));
- if ((end($this->namespace) === SIMPLEPIE_NAMESPACE_ATOM_03 && in_array(end($this->element), array('title', 'tagline', 'copyright', 'info', 'summary', 'content')) && isset($attribs['']['mode']) && $attribs['']['mode'] === 'xml')
- || (end($this->namespace) === SIMPLEPIE_NAMESPACE_ATOM_10 && in_array(end($this->element), array('rights', 'subtitle', 'summary', 'info', 'title', 'content')) && isset($attribs['']['type']) && $attribs['']['type'] === 'xhtml')
- || (end($this->namespace) === SIMPLEPIE_NAMESPACE_RSS_20 && in_array(end($this->element), array('title')))
- || (end($this->namespace) === SIMPLEPIE_NAMESPACE_RSS_090 && in_array(end($this->element), array('title')))
- || (end($this->namespace) === SIMPLEPIE_NAMESPACE_RSS_10 && in_array(end($this->element), array('title'))))
- {
- $this->current_xhtml_construct = 0;
- }
- }
- }
-
- public function cdata($parser, $cdata)
- {
- if ($this->current_xhtml_construct >= 0)
- {
- $this->data['data'] .= htmlspecialchars($cdata, ENT_QUOTES, $this->encoding);
- }
- else
- {
- $this->data['data'] .= $cdata;
- }
- }
-
- public function tag_close($parser, $tag)
- {
- if ($this->current_xhtml_construct >= 0)
- {
- $this->current_xhtml_construct--;
- if (end($this->namespace) === SIMPLEPIE_NAMESPACE_XHTML && !in_array(end($this->element), array('area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', 'img', 'input', 'isindex', 'link', 'meta', 'param')))
- {
- $this->data['data'] .= '</' . end($this->element) . '>';
- }
- }
- if ($this->current_xhtml_construct === -1)
- {
- $this->data =& $this->datas[count($this->datas) - 1];
- array_pop($this->datas);
- }
-
- array_pop($this->element);
- array_pop($this->namespace);
- array_pop($this->xml_base);
- array_pop($this->xml_base_explicit);
- array_pop($this->xml_lang);
- }
-
- public function split_ns($string)
- {
- static $cache = array();
- if (!isset($cache[$string]))
- {
- if ($pos = strpos($string, $this->separator))
- {
- static $separator_length;
- if (!$separator_length)
- {
- $separator_length = strlen($this->separator);
- }
- $namespace = substr($string, 0, $pos);
- $local_name = substr($string, $pos + $separator_length);
- if (strtolower($namespace) === SIMPLEPIE_NAMESPACE_ITUNES)
- {
- $namespace = SIMPLEPIE_NAMESPACE_ITUNES;
- }
-
- // Normalize the Media RSS namespaces
- if ($namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG ||
- $namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG2 ||
- $namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG3 ||
- $namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG4 ||
- $namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG5 )
- {
- $namespace = SIMPLEPIE_NAMESPACE_MEDIARSS;
- }
- $cache[$string] = array($namespace, $local_name);
- }
- else
- {
- $cache[$string] = array('', $string);
- }
- }
- return $cache[$string];
- }
-}
-
-/**
- * Handles `<media:rating>` or `<itunes:explicit>` tags as defined in Media RSS and iTunes RSS respectively
- *
- * Used by {@see SimplePie_Enclosure::get_rating()} and {@see SimplePie_Enclosure::get_ratings()}
- *
- * This class can be overloaded with {@see SimplePie::set_rating_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Rating
-{
- /**
- * Rating scheme
- *
- * @var string
- * @see get_scheme()
- */
- var $scheme;
-
- /**
- * Rating value
- *
- * @var string
- * @see get_value()
- */
- var $value;
-
- /**
- * Constructor, used to input the data
- *
- * For documentation on all the parameters, see the corresponding
- * properties and their accessors
- */
- public function __construct($scheme = null, $value = null)
- {
- $this->scheme = $scheme;
- $this->value = $value;
- }
-
- /**
- * String-ified version
- *
- * @return string
- */
- public function __toString()
- {
- // There is no $this->data here
- return md5(serialize($this));
- }
-
- /**
- * Get the organizational scheme for the rating
- *
- * @return string|null
- */
- public function get_scheme()
- {
- if ($this->scheme !== null)
- {
- return $this->scheme;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the value of the rating
- *
- * @return string|null
- */
- public function get_value()
- {
- if ($this->value !== null)
- {
- return $this->value;
- }
- else
- {
- return null;
- }
- }
-}
-
-/**
- * Handles creating objects and calling methods
- *
- * Access this via {@see SimplePie::get_registry()}
- *
- * @package SimplePie
- */
-class SimplePie_Registry
-{
- /**
- * Default class mapping
- *
- * Overriding classes *must* subclass these.
- *
- * @var array
- */
- protected $default = array(
- 'Cache' => 'SimplePie_Cache',
- 'Locator' => 'SimplePie_Locator',
- 'Parser' => 'SimplePie_Parser',
- 'File' => 'SimplePie_File',
- 'Sanitize' => 'SimplePie_Sanitize',
- 'Item' => 'SimplePie_Item',
- 'Author' => 'SimplePie_Author',
- 'Category' => 'SimplePie_Category',
- 'Enclosure' => 'SimplePie_Enclosure',
- 'Caption' => 'SimplePie_Caption',
- 'Copyright' => 'SimplePie_Copyright',
- 'Credit' => 'SimplePie_Credit',
- 'Rating' => 'SimplePie_Rating',
- 'Restriction' => 'SimplePie_Restriction',
- 'Content_Type_Sniffer' => 'SimplePie_Content_Type_Sniffer',
- 'Source' => 'SimplePie_Source',
- 'Misc' => 'SimplePie_Misc',
- 'XML_Declaration_Parser' => 'SimplePie_XML_Declaration_Parser',
- 'Parse_Date' => 'SimplePie_Parse_Date',
- );
-
- /**
- * Class mapping
- *
- * @see register()
- * @var array
- */
- protected $classes = array();
-
- /**
- * Legacy classes
- *
- * @see register()
- * @var array
- */
- protected $legacy = array();
-
- /**
- * Constructor
- *
- * No-op
- */
- public function __construct() { }
-
- /**
- * Register a class
- *
- * @param string $type See {@see $default} for names
- * @param string $class Class name, must subclass the corresponding default
- * @param bool $legacy Whether to enable legacy support for this class
- * @return bool Successfulness
- */
- public function register($type, $class, $legacy = false)
- {
- if (!is_subclass_of($class, $this->default[$type]))
- {
- return false;
- }
-
- $this->classes[$type] = $class;
-
- if ($legacy)
- {
- $this->legacy[] = $class;
- }
-
- return true;
- }
-
- /**
- * Get the class registered for a type
- *
- * Where possible, use {@see create()} or {@see call()} instead
- *
- * @param string $type
- * @return string|null
- */
- public function get_class($type)
- {
- if (!empty($this->classes[$type]))
- {
- return $this->classes[$type];
- }
- if (!empty($this->default[$type]))
- {
- return $this->default[$type];
- }
-
- return null;
- }
-
- /**
- * Create a new instance of a given type
- *
- * @param string $type
- * @param array $parameters Parameters to pass to the constructor
- * @return object Instance of class
- */
- public function &create($type, $parameters = array())
- {
- $class = $this->get_class($type);
-
- if (in_array($class, $this->legacy))
- {
- switch ($type)
- {
- case 'locator':
- // Legacy: file, timeout, useragent, file_class, max_checked_feeds, content_type_sniffer_class
- // Specified: file, timeout, useragent, max_checked_feeds
- $replacement = array($this->get_class('file'), $parameters[3], $this->get_class('content_type_sniffer'));
- array_splice($parameters, 3, 1, $replacement);
- break;
- }
- }
-
- if (!method_exists($class, '__construct'))
- {
- $instance = new $class;
- }
- else
- {
- $reflector = new ReflectionClass($class);
- $instance = $reflector->newInstanceArgs($parameters);
- }
-
- if (method_exists($instance, 'set_registry'))
- {
- $instance->set_registry($this);
- }
- return $instance;
- }
-
- /**
- * Call a static method for a type
- *
- * @param string $type
- * @param string $method
- * @param array $parameters
- * @return mixed
- */
- public function &call($type, $method, $parameters = array())
- {
- $class = $this->get_class($type);
-
- if (in_array($class, $this->legacy))
- {
- switch ($type)
- {
- case 'Cache':
- // For backwards compatibility with old non-static
- // Cache::create() methods
- if ($method === 'get_handler')
- {
- $result = @call_user_func_array(array($class, 'create'), $parameters);
- return $result;
- }
- break;
- }
- }
-
- $result = call_user_func_array(array($class, $method), $parameters);
- return $result;
- }
-}
-
-/**
- * Handles `<media:restriction>` as defined in Media RSS
- *
- * Used by {@see SimplePie_Enclosure::get_restriction()} and {@see SimplePie_Enclosure::get_restrictions()}
- *
- * This class can be overloaded with {@see SimplePie::set_restriction_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Restriction
-{
- /**
- * Relationship ('allow'/'deny')
- *
- * @var string
- * @see get_relationship()
- */
- var $relationship;
-
- /**
- * Type of restriction
- *
- * @var string
- * @see get_type()
- */
- var $type;
-
- /**
- * Restricted values
- *
- * @var string
- * @see get_value()
- */
- var $value;
-
- /**
- * Constructor, used to input the data
- *
- * For documentation on all the parameters, see the corresponding
- * properties and their accessors
- */
- public function __construct($relationship = null, $type = null, $value = null)
- {
- $this->relationship = $relationship;
- $this->type = $type;
- $this->value = $value;
- }
-
- /**
- * String-ified version
- *
- * @return string
- */
- public function __toString()
- {
- // There is no $this->data here
- return md5(serialize($this));
- }
-
- /**
- * Get the relationship
- *
- * @return string|null Either 'allow' or 'deny'
- */
- public function get_relationship()
- {
- if ($this->relationship !== null)
- {
- return $this->relationship;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the type
- *
- * @return string|null
- */
- public function get_type()
- {
- if ($this->type !== null)
- {
- return $this->type;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get the list of restricted things
- *
- * @return string|null
- */
- public function get_value()
- {
- if ($this->value !== null)
- {
- return $this->value;
- }
- else
- {
- return null;
- }
- }
-}
-
-/**
- * Used for data cleanup and post-processing
- *
- *
- * This class can be overloaded with {@see SimplePie::set_sanitize_class()}
- *
- * @package SimplePie
- * @todo Move to using an actual HTML parser (this will allow tags to be properly stripped, and to switch between HTML and XHTML), this will also make it easier to shorten a string while preserving HTML tags
- */
-class SimplePie_Sanitize
-{
- // Private vars
- var $base;
-
- // Options
- var $remove_div = true;
- var $image_handler = '';
- var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
- var $encode_instead_of_strip = false;
- var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
- var $strip_comments = false;
- var $output_encoding = 'UTF-8';
- var $enable_cache = true;
- var $cache_location = './cache';
- var $cache_name_function = 'md5';
- var $timeout = 10;
- var $useragent = '';
- var $force_fsockopen = false;
- var $replace_url_attributes = null;
-
- public function __construct()
- {
- // Set defaults
- $this->set_url_replacements(null);
- }
-
- public function remove_div($enable = true)
- {
- $this->remove_div = (bool) $enable;
- }
-
- public function set_image_handler($page = false)
- {
- if ($page)
- {
- $this->image_handler = (string) $page;
- }
- else
- {
- $this->image_handler = false;
- }
- }
-
- public function set_registry(SimplePie_Registry $registry)
- {
- $this->registry = $registry;
- }
-
- public function pass_cache_data($enable_cache = true, $cache_location = './cache', $cache_name_function = 'md5', $cache_class = 'SimplePie_Cache')
- {
- if (isset($enable_cache))
- {
- $this->enable_cache = (bool) $enable_cache;
- }
-
- if ($cache_location)
- {
- $this->cache_location = (string) $cache_location;
- }
-
- if ($cache_name_function)
- {
- $this->cache_name_function = (string) $cache_name_function;
- }
- }
-
- public function pass_file_data($file_class = 'SimplePie_File', $timeout = 10, $useragent = '', $force_fsockopen = false)
- {
- if ($timeout)
- {
- $this->timeout = (string) $timeout;
- }
-
- if ($useragent)
- {
- $this->useragent = (string) $useragent;
- }
-
- if ($force_fsockopen)
- {
- $this->force_fsockopen = (string) $force_fsockopen;
- }
- }
-
- public function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'))
- {
- if ($tags)
- {
- if (is_array($tags))
- {
- $this->strip_htmltags = $tags;
- }
- else
- {
- $this->strip_htmltags = explode(',', $tags);
- }
- }
- else
- {
- $this->strip_htmltags = false;
- }
- }
-
- public function encode_instead_of_strip($encode = false)
- {
- $this->encode_instead_of_strip = (bool) $encode;
- }
-
- public function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))
- {
- if ($attribs)
- {
- if (is_array($attribs))
- {
- $this->strip_attributes = $attribs;
- }
- else
- {
- $this->strip_attributes = explode(',', $attribs);
- }
- }
- else
- {
- $this->strip_attributes = false;
- }
- }
-
- public function strip_comments($strip = false)
- {
- $this->strip_comments = (bool) $strip;
- }
-
- public function set_output_encoding($encoding = 'UTF-8')
- {
- $this->output_encoding = (string) $encoding;
- }
-
- /**
- * Set element/attribute key/value pairs of HTML attributes
- * containing URLs that need to be resolved relative to the feed
- *
- * Defaults to |a|@href, |area|@href, |blockquote|@cite, |del|@cite,
- * |form|@action, |img|@longdesc, |img|@src, |input|@src, |ins|@cite,
- * |q|@cite
- *
- * @since 1.0
- * @param array|null $element_attribute Element/attribute key/value pairs, null for default
- */
- public function set_url_replacements($element_attribute = null)
- {
- if ($element_attribute === null)
- {
- $element_attribute = array(
- 'a' => 'href',
- 'area' => 'href',
- 'blockquote' => 'cite',
- 'del' => 'cite',
- 'form' => 'action',
- 'img' => array(
- 'longdesc',
- 'src'
- ),
- 'input' => 'src',
- 'ins' => 'cite',
- 'q' => 'cite'
- );
- }
- $this->replace_url_attributes = (array) $element_attribute;
- }
-
- public function sanitize($data, $type, $base = '')
- {
- $data = trim($data);
- if ($data !== '' || $type & SIMPLEPIE_CONSTRUCT_IRI)
- {
- if ($type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML)
- {
- if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data))
- {
- $type |= SIMPLEPIE_CONSTRUCT_HTML;
- }
- else
- {
- $type |= SIMPLEPIE_CONSTRUCT_TEXT;
- }
- }
-
- if ($type & SIMPLEPIE_CONSTRUCT_BASE64)
- {
- $data = base64_decode($data);
- }
-
- if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML))
- {
-
- $document = new DOMDocument();
- $document->encoding = 'UTF-8';
- $data = $this->preprocess($data, $type);
-
- set_error_handler(array('SimplePie_Misc', 'silence_errors'));
- $document->loadHTML($data);
- restore_error_handler();
-
- // Strip comments
- if ($this->strip_comments)
- {
- $xpath = new DOMXPath($document);
- $comments = $xpath->query('//comment()');
-
- foreach ($comments as $comment)
- {
- $comment->parentNode->removeChild($comment);
- }
- }
-
- // Strip out HTML tags and attributes that might cause various security problems.
- // Based on recommendations by Mark Pilgrim at:
- // http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely
- if ($this->strip_htmltags)
- {
- foreach ($this->strip_htmltags as $tag)
- {
- $this->strip_tag($tag, $document, $type);
- }
- }
-
- if ($this->strip_attributes)
- {
- foreach ($this->strip_attributes as $attrib)
- {
- $this->strip_attr($attrib, $document);
- }
- }
-
- // Replace relative URLs
- $this->base = $base;
- foreach ($this->replace_url_attributes as $element => $attributes)
- {
- $this->replace_urls($document, $element, $attributes);
- }
-
- // If image handling (caching, etc.) is enabled, cache and rewrite all the image tags.
- if (isset($this->image_handler) && ((string) $this->image_handler) !== '' && $this->enable_cache)
- {
- $images = $document->getElementsByTagName('img');
- foreach ($images as $img)
- {
- if ($img->hasAttribute('src'))
- {
- $image_url = call_user_func($this->cache_name_function, $img->getAttribute('src'));
- $cache = $this->registry->call('Cache', 'get_handler', array($this->cache_location, $image_url, 'spi'));
-
- if ($cache->load())
- {
- $img->setAttribute('src', $this->image_handler . $image_url);
- }
- else
- {
- $file = $this->registry->create('File', array($img['attribs']['src']['data'], $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen));
- $headers = $file->headers;
-
- if ($file->success && ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)))
- {
- if ($cache->save(array('headers' => $file->headers, 'body' => $file->body)))
- {
- $img->setAttribute('src', $this->image_handler . $image_url);
- }
- else
- {
- trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
- }
- }
- }
- }
- }
- }
-
- // Remove the DOCTYPE
- // Seems to cause segfaulting if we don't do this
- if ($document->firstChild instanceof DOMDocumentType)
- {
- $document->removeChild($document->firstChild);
- }
-
- // Move everything from the body to the root
- $real_body = $document->getElementsByTagName('body')->item(0)->childNodes->item(0);
- $document->replaceChild($real_body, $document->firstChild);
-
- // Finally, convert to a HTML string
- $data = trim($document->saveHTML());
-
- if ($this->remove_div)
- {
- $data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '', $data);
- $data = preg_replace('/<\/div>$/', '', $data);
- }
- else
- {
- $data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '<div>', $data);
- }
- }
-
- if ($type & SIMPLEPIE_CONSTRUCT_IRI)
- {
- $absolute = $this->registry->call('Misc', 'absolutize_url', array($data, $base));
- if ($absolute !== false)
- {
- $data = $absolute;
- }
- }
-
- if ($type & (SIMPLEPIE_CONSTRUCT_TEXT | SIMPLEPIE_CONSTRUCT_IRI))
- {
- $data = htmlspecialchars($data, ENT_COMPAT, 'UTF-8');
- }
-
- if ($this->output_encoding !== 'UTF-8')
- {
- $data = $this->registry->call('Misc', 'change_encoding', array($data, 'UTF-8', $this->output_encoding));
- }
- }
- return $data;
- }
-
- protected function preprocess($html, $type)
- {
- $ret = '';
- if ($type & ~SIMPLEPIE_CONSTRUCT_XHTML)
- {
- // Atom XHTML constructs are wrapped with a div by default
- // Note: No protection if $html contains a stray </div>!
- $html = '<div>' . $html . '</div>';
- $ret .= '<!DOCTYPE html>';
- $content_type = 'text/html';
- }
- else
- {
- $ret .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
- $content_type = 'application/xhtml+xml';
- }
-
- $ret .= '<html><head>';
- $ret .= '<meta http-equiv="Content-Type" content="' . $content_type . '; charset=utf-8" />';
- $ret .= '</head><body>' . $html . '</body></html>';
- return $ret;
- }
-
- public function replace_urls($document, $tag, $attributes)
- {
- if (!is_array($attributes))
- {
- $attributes = array($attributes);
- }
-
- if (!is_array($this->strip_htmltags) || !in_array($tag, $this->strip_htmltags))
- {
- $elements = $document->getElementsByTagName($tag);
- foreach ($elements as $element)
- {
- foreach ($attributes as $attribute)
- {
- if ($element->hasAttribute($attribute))
- {
- $value = $this->registry->call('Misc', 'absolutize_url', array($element->getAttribute($attribute), $this->base));
- if ($value !== false)
- {
- $element->setAttribute($attribute, $value);
- }
- }
- }
- }
- }
- }
-
- public function do_strip_htmltags($match)
- {
- if ($this->encode_instead_of_strip)
- {
- if (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
- {
- $match[1] = htmlspecialchars($match[1], ENT_COMPAT, 'UTF-8');
- $match[2] = htmlspecialchars($match[2], ENT_COMPAT, 'UTF-8');
- return "&lt;$match[1]$match[2]&gt;$match[3]&lt;/$match[1]&gt;";
- }
- else
- {
- return htmlspecialchars($match[0], ENT_COMPAT, 'UTF-8');
- }
- }
- elseif (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
- {
- return $match[4];
- }
- else
- {
- return '';
- }
- }
-
- protected function strip_tag($tag, $document, $type)
- {
- $xpath = new DOMXPath($document);
- $elements = $xpath->query('body//' . $tag);
- if ($this->encode_instead_of_strip)
- {
- foreach ($elements as $element)
- {
- $fragment = $document->createDocumentFragment();
-
- // For elements which aren't script or style, include the tag itself
- if (!in_array($tag, array('script', 'style')))
- {
- $text = '<' . $tag;
- if ($element->hasAttributes())
- {
- $attrs = array();
- foreach ($element->attributes as $name => $attr)
- {
- $value = $attr->value;
-
- // In XHTML, empty values should never exist, so we repeat the value
- if (empty($value) && ($type & SIMPLEPIE_CONSTRUCT_XHTML))
- {
- $value = $name;
- }
- // For HTML, empty is fine
- elseif (empty($value) && ($type & SIMPLEPIE_CONSTRUCT_HTML))
- {
- $attrs[] = $name;
- continue;
- }
-
- // Standard attribute text
- $attrs[] = $name . '="' . $attr->value . '"';
- }
- $text .= ' ' . implode(' ', $attrs);
- }
- $text .= '>';
- $fragment->appendChild(new DOMText($text));
- }
-
- $number = $element->childNodes->length;
- for ($i = $number; $i > 0; $i--)
- {
- $child = $element->childNodes->item(0);
- $fragment->appendChild($child);
- }
-
- if (!in_array($tag, array('script', 'style')))
- {
- $fragment->appendChild(new DOMText('</' . $tag . '>'));
- }
-
- $element->parentNode->replaceChild($fragment, $element);
- }
-
- return;
- }
- elseif (in_array($tag, array('script', 'style')))
- {
- foreach ($elements as $element)
- {
- $element->parentNode->removeChild($element);
- }
-
- return;
- }
- else
- {
- foreach ($elements as $element)
- {
- $fragment = $document->createDocumentFragment();
- $number = $element->childNodes->length;
- for ($i = $number; $i > 0; $i--)
- {
- $child = $element->childNodes->item(0);
- $fragment->appendChild($child);
- }
-
- $element->parentNode->replaceChild($fragment, $element);
- }
- }
- }
-
- protected function strip_attr($attrib, $document)
- {
- $xpath = new DOMXPath($document);
- $elements = $xpath->query('//*[@' . $attrib . ']');
-
- foreach ($elements as $element)
- {
- $element->removeAttribute($attrib);
- }
- }
-}
-
-/**
- * Handles `<atom:source>`
- *
- * Used by {@see SimplePie_Item::get_source()}
- *
- * This class can be overloaded with {@see SimplePie::set_source_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Source
-{
- var $item;
- var $data = array();
- protected $registry;
-
- public function __construct($item, $data)
- {
- $this->item = $item;
- $this->data = $data;
- }
-
- public function set_registry(SimplePie_Registry $registry)
- {
- $this->registry = $registry;
- }
-
- public function __toString()
- {
- return md5(serialize($this->data));
- }
-
- public function get_source_tags($namespace, $tag)
- {
- if (isset($this->data['child'][$namespace][$tag]))
- {
- return $this->data['child'][$namespace][$tag];
- }
- else
- {
- return null;
- }
- }
-
- public function get_base($element = array())
- {
- return $this->item->get_base($element);
- }
-
- public function sanitize($data, $type, $base = '')
- {
- return $this->item->sanitize($data, $type, $base);
- }
-
- public function get_item()
- {
- return $this->item;
- }
-
- public function get_title()
- {
- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- return null;
- }
- }
-
- public function get_category($key = 0)
- {
- $categories = $this->get_categories();
- if (isset($categories[$key]))
- {
- return $categories[$key];
- }
- else
- {
- return null;
- }
- }
-
- public function get_categories()
- {
- $categories = array();
-
- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
- {
- $term = null;
- $scheme = null;
- $label = null;
- if (isset($category['attribs']['']['term']))
- {
- $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['scheme']))
- {
- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($category['attribs']['']['label']))
- {
- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- $categories[] = $this->registry->create('Category', array($term, $scheme, $label));
- }
- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
- {
- // This is really the label, but keep this as the term also for BC.
- // Label will also work on retrieving because that falls back to term.
- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- if (isset($category['attribs']['']['domain']))
- {
- $scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- $scheme = null;
- }
- $categories[] = $this->registry->create('Category', array($term, $scheme, null));
- }
- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
- {
- $categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
- {
- $categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
-
- if (!empty($categories))
- {
- return array_unique($categories);
- }
- else
- {
- return null;
- }
- }
-
- public function get_author($key = 0)
- {
- $authors = $this->get_authors();
- if (isset($authors[$key]))
- {
- return $authors[$key];
- }
- else
- {
- return null;
- }
- }
-
- public function get_authors()
- {
- $authors = array();
- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
- {
- $name = null;
- $uri = null;
- $email = null;
- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
- {
- $name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
- {
- $uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
- }
- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
- {
- $email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $uri !== null)
- {
- $authors[] = $this->registry->create('Author', array($name, $uri, $email));
- }
- }
- if ($author = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
- {
- $name = null;
- $url = null;
- $email = null;
- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
- {
- $name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
- {
- $url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
- }
- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
- {
- $email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $url !== null)
- {
- $authors[] = $this->registry->create('Author', array($name, $url, $email));
- }
- }
- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
- {
- $authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
- {
- $authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
- {
- $authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
- }
-
- if (!empty($authors))
- {
- return array_unique($authors);
- }
- else
- {
- return null;
- }
- }
-
- public function get_contributor($key = 0)
- {
- $contributors = $this->get_contributors();
- if (isset($contributors[$key]))
- {
- return $contributors[$key];
- }
- else
- {
- return null;
- }
- }
-
- public function get_contributors()
- {
- $contributors = array();
- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
- {
- $name = null;
- $uri = null;
- $email = null;
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
- {
- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
- {
- $uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
- {
- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $uri !== null)
- {
- $contributors[] = $this->registry->create('Author', array($name, $uri, $email));
- }
- }
- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
- {
- $name = null;
- $url = null;
- $email = null;
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
- {
- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
- {
- $url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
- }
- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
- {
- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- if ($name !== null || $email !== null || $url !== null)
- {
- $contributors[] = $this->registry->create('Author', array($name, $url, $email));
- }
- }
-
- if (!empty($contributors))
- {
- return array_unique($contributors);
- }
- else
- {
- return null;
- }
- }
-
- public function get_link($key = 0, $rel = 'alternate')
- {
- $links = $this->get_links($rel);
- if (isset($links[$key]))
- {
- return $links[$key];
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Added for parity between the parent-level and the item/entry-level.
- */
- public function get_permalink()
- {
- return $this->get_link(0);
- }
-
- public function get_links($rel = 'alternate')
- {
- if (!isset($this->data['links']))
- {
- $this->data['links'] = array();
- if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link'))
- {
- foreach ($links as $link)
- {
- if (isset($link['attribs']['']['href']))
- {
- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
- }
- }
- }
- if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link'))
- {
- foreach ($links as $link)
- {
- if (isset($link['attribs']['']['href']))
- {
- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-
- }
- }
- }
- if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
- {
- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
- }
- if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
- {
- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
- }
- if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
- {
- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
- }
-
- $keys = array_keys($this->data['links']);
- foreach ($keys as $key)
- {
- if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key)))
- {
- if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
- {
- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
- $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
- }
- else
- {
- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
- }
- }
- elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
- {
- $this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
- }
- $this->data['links'][$key] = array_unique($this->data['links'][$key]);
- }
- }
-
- if (isset($this->data['links'][$rel]))
- {
- return $this->data['links'][$rel];
- }
- else
- {
- return null;
- }
- }
-
- public function get_description()
- {
- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
- }
- else
- {
- return null;
- }
- }
-
- public function get_copyright()
- {
- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright'))
- {
- return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'copyright'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- return null;
- }
- }
-
- public function get_language()
- {
- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'language'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- elseif (isset($this->data['xml_lang']))
- {
- return $this->sanitize($this->data['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
- }
- else
- {
- return null;
- }
- }
-
- public function get_latitude()
- {
- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
- {
- return (float) $return[0]['data'];
- }
- elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
- {
- return (float) $match[1];
- }
- else
- {
- return null;
- }
- }
-
- public function get_longitude()
- {
- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
- {
- return (float) $return[0]['data'];
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
- {
- return (float) $return[0]['data'];
- }
- elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
- {
- return (float) $match[2];
- }
- else
- {
- return null;
- }
- }
-
- public function get_image_url()
- {
- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image'))
- {
- return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI);
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
- }
- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon'))
- {
- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
- }
- else
- {
- return null;
- }
- }
-}
-
-/**
- * Parses the XML Declaration
- *
- * @package SimplePie
- * @subpackage Parsing
- */
-class SimplePie_XML_Declaration_Parser
-{
- /**
- * XML Version
- *
- * @access public
- * @var string
- */
- var $version = '1.0';
-
- /**
- * Encoding
- *
- * @access public
- * @var string
- */
- var $encoding = 'UTF-8';
-
- /**
- * Standalone
- *
- * @access public
- * @var bool
- */
- var $standalone = false;
-
- /**
- * Current state of the state machine
- *
- * @access private
- * @var string
- */
- var $state = 'before_version_name';
-
- /**
- * Input data
- *
- * @access private
- * @var string
- */
- var $data = '';
-
- /**
- * Input data length (to avoid calling strlen() everytime this is needed)
- *
- * @access private
- * @var int
- */
- var $data_length = 0;
-
- /**
- * Current position of the pointer
- *
- * @var int
- * @access private
- */
- var $position = 0;
-
- /**
- * Create an instance of the class with the input data
- *
- * @access public
- * @param string $data Input data
- */
- public function __construct($data)
- {
- $this->data = $data;
- $this->data_length = strlen($this->data);
- }
-
- /**
- * Parse the input data
- *
- * @access public
- * @return bool true on success, false on failure
- */
- public function parse()
- {
- while ($this->state && $this->state !== 'emit' && $this->has_data())
- {
- $state = $this->state;
- $this->$state();
- }
- $this->data = '';
- if ($this->state === 'emit')
- {
- return true;
- }
- else
- {
- $this->version = '';
- $this->encoding = '';
- $this->standalone = '';
- return false;
- }
- }
-
- /**
- * Check whether there is data beyond the pointer
- *
- * @access private
- * @return bool true if there is further data, false if not
- */
- public function has_data()
- {
- return (bool) ($this->position < $this->data_length);
- }
-
- /**
- * Advance past any whitespace
- *
- * @return int Number of whitespace characters passed
- */
- public function skip_whitespace()
- {
- $whitespace = strspn($this->data, "\x09\x0A\x0D\x20", $this->position);
- $this->position += $whitespace;
- return $whitespace;
- }
-
- /**
- * Read value
- */
- public function get_value()
- {
- $quote = substr($this->data, $this->position, 1);
- if ($quote === '"' || $quote === "'")
- {
- $this->position++;
- $len = strcspn($this->data, $quote, $this->position);
- if ($this->has_data())
- {
- $value = substr($this->data, $this->position, $len);
- $this->position += $len + 1;
- return $value;
- }
- }
- return false;
- }
-
- public function before_version_name()
- {
- if ($this->skip_whitespace())
- {
- $this->state = 'version_name';
- }
- else
- {
- $this->state = false;
- }
- }
-
- public function version_name()
- {
- if (substr($this->data, $this->position, 7) === 'version')
- {
- $this->position += 7;
- $this->skip_whitespace();
- $this->state = 'version_equals';
- }
- else
- {
- $this->state = false;
- }
- }
-
- public function version_equals()
- {
- if (substr($this->data, $this->position, 1) === '=')
- {
- $this->position++;
- $this->skip_whitespace();
- $this->state = 'version_value';
- }
- else
- {
- $this->state = false;
- }
- }
-
- public function version_value()
- {
- if ($this->version = $this->get_value())
- {
- $this->skip_whitespace();
- if ($this->has_data())
- {
- $this->state = 'encoding_name';
- }
- else
- {
- $this->state = 'emit';
- }
- }
- else
- {
- $this->state = false;
- }
- }
-
- public function encoding_name()
- {
- if (substr($this->data, $this->position, 8) === 'encoding')
- {
- $this->position += 8;
- $this->skip_whitespace();
- $this->state = 'encoding_equals';
- }
- else
- {
- $this->state = 'standalone_name';
- }
- }
-
- public function encoding_equals()
- {
- if (substr($this->data, $this->position, 1) === '=')
- {
- $this->position++;
- $this->skip_whitespace();
- $this->state = 'encoding_value';
- }
- else
- {
- $this->state = false;
- }
- }
-
- public function encoding_value()
- {
- if ($this->encoding = $this->get_value())
- {
- $this->skip_whitespace();
- if ($this->has_data())
- {
- $this->state = 'standalone_name';
- }
- else
- {
- $this->state = 'emit';
- }
- }
- else
- {
- $this->state = false;
- }
- }
-
- public function standalone_name()
- {
- if (substr($this->data, $this->position, 10) === 'standalone')
- {
- $this->position += 10;
- $this->skip_whitespace();
- $this->state = 'standalone_equals';
- }
- else
- {
- $this->state = false;
- }
- }
-
- public function standalone_equals()
- {
- if (substr($this->data, $this->position, 1) === '=')
- {
- $this->position++;
- $this->skip_whitespace();
- $this->state = 'standalone_value';
- }
- else
- {
- $this->state = false;
- }
- }
-
- public function standalone_value()
- {
- if ($standalone = $this->get_value())
- {
- switch ($standalone)
- {
- case 'yes':
- $this->standalone = true;
- break;
-
- case 'no':
- $this->standalone = false;
- break;
-
- default:
- $this->state = false;
- return;
- }
-
- $this->skip_whitespace();
- if ($this->has_data())
- {
- $this->state = false;
- }
- else
- {
- $this->state = 'emit';
- }
- }
- else
- {
- $this->state = false;
- }
- }
-}
-
diff --git a/lib/timezones.txt b/lib/timezones.txt
index 66824ec93..58108f031 100644
--- a/lib/timezones.txt
+++ b/lib/timezones.txt
@@ -1,3 +1,4 @@
+Automatic
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
diff --git a/locale/.htaccess b/locale/.htaccess
new file mode 100644
index 000000000..93169e4eb
--- /dev/null
+++ b/locale/.htaccess
@@ -0,0 +1,2 @@
+Order deny,allow
+Deny from all
diff --git a/locale/cs_CZ/LC_MESSAGES/messages.mo b/locale/cs_CZ/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..2e4806958
--- /dev/null
+++ b/locale/cs_CZ/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/cs_CZ/LC_MESSAGES/messages.po b/locale/cs_CZ/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..5cffd58d1
--- /dev/null
+++ b/locale/cs_CZ/LC_MESSAGES/messages.po
@@ -0,0 +1,3689 @@
+# Copyright (C) 2005 - 2013.
+# This file is distributed under the same license as the tt-rss package.
+#
+# Tomáš Chvátal <[email protected]>, 2013.
+# Michal Stanke <[email protected]>, 2013.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-05-14 09:35+0400\n"
+"PO-Revision-Date: 2013-05-13 18:50+0200\n"
+"Last-Translator: Tomáš Chvátal <[email protected]>\n"
+"Language-Team: Czech <[email protected]>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Lokalize 1.5\n"
+
+#: backend.php:73
+msgid "Use default"
+msgstr "Použít výchozí"
+
+#: backend.php:74
+msgid "Never purge"
+msgstr "Nikdy nečistit"
+
+#: backend.php:75
+msgid "1 week old"
+msgstr "starší než týden"
+
+#: backend.php:76
+msgid "2 weeks old"
+msgstr "starší než 2 týdny"
+
+#: backend.php:77
+msgid "1 month old"
+msgstr "starší než měsíc"
+
+#: backend.php:78
+msgid "2 months old"
+msgstr "starší než 2 měsíce"
+
+#: backend.php:79
+msgid "3 months old"
+msgstr "starší než 3 měsíce"
+
+#: backend.php:82
+msgid "Default interval"
+msgstr "Výchozí interval"
+
+#: backend.php:83
+#: backend.php:93
+msgid "Disable updates"
+msgstr "Zakázat aktualizace"
+
+#: backend.php:84
+#: backend.php:94
+msgid "Each 15 minutes"
+msgstr "Každých 15 minut"
+
+#: backend.php:85
+#: backend.php:95
+msgid "Each 30 minutes"
+msgstr "Každých 30 minut"
+
+#: backend.php:86
+#: backend.php:96
+msgid "Hourly"
+msgstr "Každou hodinu"
+
+#: backend.php:87
+#: backend.php:97
+msgid "Each 4 hours"
+msgstr "Každé 4 hodiny"
+
+#: backend.php:88
+#: backend.php:98
+msgid "Each 12 hours"
+msgstr "Každých 12 hodin"
+
+#: backend.php:89
+#: backend.php:99
+msgid "Daily"
+msgstr "Denně"
+
+#: backend.php:90
+#: backend.php:100
+msgid "Weekly"
+msgstr "Týdně"
+
+#: backend.php:103
+#: classes/pref/users.php:119
+#: classes/pref/system.php:51
+msgid "User"
+msgstr "Uživatel"
+
+#: backend.php:104
+msgid "Power User"
+msgstr "Uživatel s rozšířenými pravomocemi"
+
+#: backend.php:105
+msgid "Administrator"
+msgstr "Administrátor"
+
+#: errors.php:9
+msgid "This program requires XmlHttpRequest to function properly. Your browser doesn't seem to support it."
+msgstr "Program vyžaduje pro správnou funkci XmlHttpRequest. Váš prohlížeč ji zřejmě nepodporuje."
+
+#: errors.php:12
+msgid "This program requires cookies to function properly. Your browser doesn't seem to support them."
+msgstr "Program vyžaduje pro správnou funkci povolené cookies. Váš prohlížeč je zřejmě nepodporuje."
+
+#: errors.php:15
+msgid "Backend sanity check failed."
+msgstr "Kontrola podpůrné vrstvy selhala."
+
+#: errors.php:17
+msgid "Frontend sanity check failed."
+msgstr "Kontrola rozhraní selhala."
+
+#: errors.php:19
+msgid "Incorrect database schema version. &lt;a href='db-updater.php'&gt;Please update&lt;/a&gt;."
+msgstr "Nesprávná verze schématu databáze. &lt;a href='db-updater.php'&gt;Aktualizujte jej prosím&lt;/a&gt;."
+
+#: errors.php:21
+msgid "Request not authorized."
+msgstr "Požadavek nepovolen."
+
+#: errors.php:23
+msgid "No operation to perform."
+msgstr "Nic k provedení."
+
+#: errors.php:25
+msgid "Could not display feed: query failed. Please check label match syntax or local configuration."
+msgstr "Nelze zobrazit kanál: dotaz selhal. Zkontrolujte syntaxi detekce schody štítků a místní nastavení."
+
+#: errors.php:27
+msgid "Denied. Your access level is insufficient to access this page."
+msgstr "Zamítnuto. Vaše práva nejsou dostatečná pro zobrazení stránky."
+
+#: errors.php:29
+msgid "Configuration check failed"
+msgstr "Kontrola nastavení selhala"
+
+#: errors.php:31
+msgid "Your version of MySQL is not currently supported. Please see official site for more information."
+msgstr "Vaše verze MySQL není podporována. Více informací najdete na oficiálních stránkách."
+
+#: errors.php:35
+msgid "SQL escaping test failed, check your database and PHP configuration"
+msgstr "Test ochrany proti podvratným SQL dotazům (SQL Injection) selhal, zkontrolujte nastavení databáze a PHP"
+
+#: index.php:128
+#: index.php:145
+#: index.php:265
+#: prefs.php:98
+#: classes/backend.php:5
+#: classes/pref/labels.php:296
+#: classes/pref/filters.php:678
+#: classes/pref/feeds.php:1372
+#: js/feedlist.js:128
+#: js/feedlist.js:441
+#: js/functions.js:446
+#: js/functions.js:784
+#: js/functions.js:1194
+#: js/functions.js:1330
+#: js/functions.js:1642
+#: js/prefs.js:86
+#: js/prefs.js:576
+#: js/prefs.js:666
+#: js/prefs.js:867
+#: js/prefs.js:1454
+#: js/prefs.js:1507
+#: js/prefs.js:1566
+#: js/prefs.js:1583
+#: js/prefs.js:1599
+#: js/prefs.js:1619
+#: js/prefs.js:1792
+#: js/prefs.js:1808
+#: js/prefs.js:1826
+#: js/tt-rss.js:507
+#: js/tt-rss.js:524
+#: js/viewfeed.js:816
+#: js/viewfeed.js:1245
+#: plugins/import_export/import_export.js:17
+#: plugins/updater/updater.js:17
+msgid "Loading, please wait..."
+msgstr "Načítám, čekejte prosím..."
+
+#: index.php:159
+msgid "Collapse feedlist"
+msgstr "Sbalit seznam kanálů"
+
+#: index.php:162
+msgid "Show articles"
+msgstr "Zobrazit články"
+
+#: index.php:165
+msgid "Adaptive"
+msgstr "Adaptivní"
+
+#: index.php:166
+msgid "All Articles"
+msgstr "Všechny články"
+
+#: index.php:167
+#: include/functions.php:2008
+#: classes/feeds.php:98
+msgid "Starred"
+msgstr "S hvězdičkou"
+
+#: index.php:168
+#: include/functions.php:2009
+#: classes/feeds.php:99
+msgid "Published"
+msgstr "Publikováno"
+
+#: index.php:169
+#: classes/feeds.php:85
+#: classes/feeds.php:97
+msgid "Unread"
+msgstr "Nepřečteno"
+
+#: index.php:170
+msgid "Unread First"
+msgstr "Nejprve nepřečtené"
+
+#: index.php:171
+msgid "With Note"
+msgstr "S poznámkou"
+
+#: index.php:172
+msgid "Ignore Scoring"
+msgstr "Ignorovat hodnocení"
+
+#: index.php:175
+msgid "Sort articles"
+msgstr "Seřadit články"
+
+#: index.php:178
+msgid "Default"
+msgstr "Výchozí"
+
+#: index.php:179
+msgid "Newest first"
+msgstr "Nejprve nejnovější"
+
+#: index.php:180
+msgid "Oldest first"
+msgstr "Nejprve nejstarší"
+
+#: index.php:181
+msgid "Title"
+msgstr "Název"
+
+#: index.php:185
+#: index.php:233
+#: include/functions.php:1998
+#: classes/feeds.php:103
+#: classes/feeds.php:424
+#: js/FeedTree.js:128
+#: js/FeedTree.js:156
+msgid "Mark as read"
+msgstr "Označit jako přečtené"
+
+#: index.php:188
+msgid "Older than one day"
+msgstr "Starší než jeden den"
+
+#: index.php:191
+msgid "Older than one week"
+msgstr "Starší než jeden týden"
+
+#: index.php:194
+msgid "Older than two weeks"
+msgstr "Starší než dva týdny"
+
+#: index.php:210
+msgid "Communication problem with server."
+msgstr "Chyba při komunikaci se serverem."
+
+#: index.php:218
+msgid "New version of Tiny Tiny RSS is available!"
+msgstr "Je dostupná nová verze Tiny Tiny RSS."
+
+#: index.php:223
+msgid "Actions..."
+msgstr "Činnosti..."
+
+#: index.php:225
+msgid "Preferences..."
+msgstr "Nastavení..."
+
+#: index.php:226
+msgid "Search..."
+msgstr "Hledat..."
+
+#: index.php:227
+msgid "Feed actions:"
+msgstr "Činnosti kanálů:"
+
+#: index.php:228
+#: classes/handler/public.php:562
+msgid "Subscribe to feed..."
+msgstr "Přihlásit se k odběru..."
+
+#: index.php:229
+msgid "Edit this feed..."
+msgstr "Upravit kanál..."
+
+#: index.php:230
+msgid "Rescore feed"
+msgstr "Přehodnotit kanál"
+
+#: index.php:231
+#: classes/pref/feeds.php:746
+#: classes/pref/feeds.php:1327
+#: js/PrefFeedTree.js:73
+msgid "Unsubscribe"
+msgstr "Zrušit odběr"
+
+#: index.php:232
+msgid "All feeds:"
+msgstr "Všechny kanály:"
+
+#: index.php:234
+msgid "(Un)hide read feeds"
+msgstr "Zobrazit/Skrýt přečtené kanály"
+
+#: index.php:235
+msgid "Other actions:"
+msgstr "Ostatní činnosti:"
+
+#: index.php:236
+#: include/functions.php:1984
+msgid "Toggle widescreen mode"
+msgstr "Přepnout širokoúhlý režim"
+
+#: index.php:237
+msgid "Select by tags..."
+msgstr "Vybrat podle značek..."
+
+#: index.php:238
+msgid "Create label..."
+msgstr "Vytvořit štítek..."
+
+#: index.php:239
+msgid "Create filter..."
+msgstr "Vytvořit filtr..."
+
+#: index.php:240
+msgid "Keyboard shortcuts help"
+msgstr "Nápověda ke klávesovým zkratkám"
+
+#: index.php:249
+msgid "Logout"
+msgstr "Odhlásit se"
+
+#: prefs.php:33
+#: prefs.php:116
+#: include/functions.php:2011
+#: classes/pref/prefs.php:440
+msgid "Preferences"
+msgstr "Nastavení"
+
+#: prefs.php:107
+msgid "Keyboard shortcuts"
+msgstr "Klávesové zkratky"
+
+#: prefs.php:108
+msgid "Exit preferences"
+msgstr "Opustit nastavení"
+
+#: prefs.php:119
+#: classes/pref/feeds.php:106
+#: classes/pref/feeds.php:1253
+#: classes/pref/feeds.php:1316
+msgid "Feeds"
+msgstr "Kanály"
+
+#: prefs.php:122
+#: classes/pref/filters.php:154
+msgid "Filters"
+msgstr "Filtry"
+
+#: prefs.php:125
+#: include/functions.php:1176
+#: include/functions.php:1832
+#: classes/pref/labels.php:90
+msgid "Labels"
+msgstr "Štítky"
+
+#: prefs.php:129
+msgid "Users"
+msgstr "Uživatelé"
+
+#: prefs.php:132
+msgid "System"
+msgstr "Systém"
+
+#: register.php:184
+#: include/login_form.php:238
+msgid "Create new account"
+msgstr "Vytvořit nový účet"
+
+#: register.php:190
+msgid "New user registrations are administratively disabled."
+msgstr "Registrace nových uživatelů jsou zakázány správcem."
+
+#: register.php:194
+#: register.php:239
+#: register.php:252
+#: register.php:267
+#: register.php:286
+#: register.php:334
+#: register.php:344
+#: register.php:356
+#: classes/handler/public.php:632
+#: classes/handler/public.php:723
+#: classes/handler/public.php:805
+#: classes/handler/public.php:880
+#: classes/handler/public.php:894
+#: classes/handler/public.php:901
+#: classes/handler/public.php:926
+msgid "Return to Tiny Tiny RSS"
+msgstr "Zpět do Tiny Tiny RSS"
+
+#: register.php:215
+msgid "Your temporary password will be sent to the specified email. Accounts, which were not logged in once, are erased automatically 24 hours after temporary password is sent."
+msgstr "Vaše dočasné heslo bude odesláno na zadaný e-mail. Účet, který se do 24 hodin od odeslání dočasného hesla nepřihlásí, bude smazán."
+
+#: register.php:221
+msgid "Desired login:"
+msgstr "Požadované přihlašovací jméno:"
+
+#: register.php:224
+msgid "Check availability"
+msgstr "Ověřit dostupnost"
+
+#: register.php:226
+#: classes/handler/public.php:763
+msgid "Email:"
+msgstr "E-mail:"
+
+#: register.php:229
+#: classes/handler/public.php:768
+msgid "How much is two plus two:"
+msgstr "Kolik je dva plus dva:"
+
+#: register.php:232
+msgid "Submit registration"
+msgstr "Odeslat registraci"
+
+#: register.php:250
+msgid "Your registration information is incomplete."
+msgstr "Vaše registrační údaje nejsou úplné."
+
+#: register.php:265
+msgid "Sorry, this username is already taken."
+msgstr "Lituji, uživatelské jméno se již používá."
+
+#: register.php:284
+msgid "Registration failed."
+msgstr "Registrace selhala."
+
+#: register.php:331
+msgid "Account created successfully."
+msgstr "Účet byl úspěšně vytvořen."
+
+#: register.php:353
+msgid "New user registrations are currently closed."
+msgstr "Registrace nových uživatelů nyní nejsou povoleny."
+
+#: update.php:55
+msgid "Tiny Tiny RSS data update script."
+msgstr "Skript aktualizace dat Tiny Tiny RSS."
+
+#: include/digest.php:109
+#: include/functions.php:1185
+#: include/functions.php:1733
+#: include/functions.php:1818
+#: include/functions.php:1840
+#: classes/opml.php:416
+#: classes/pref/feeds.php:218
+msgid "Uncategorized"
+msgstr "Bez zařazení"
+
+#: include/feedbrowser.php:83
+#, php-format
+msgid "%d archived article"
+msgid_plural "%d archived articles"
+msgstr[0] "%d archivovaný článek"
+msgstr[1] "%d archivované články"
+msgstr[2] "%d archivovaných článků"
+
+#: include/feedbrowser.php:107
+msgid "No feeds found."
+msgstr "Nenalezeny žádné kanály."
+
+#: include/functions.php:1174
+#: include/functions.php:1830
+msgid "Special"
+msgstr "Speciální"
+
+#: include/functions.php:1681
+#: classes/feeds.php:1097
+#: classes/pref/filters.php:425
+msgid "All feeds"
+msgstr "Všechny kanály"
+
+#: include/functions.php:1885
+msgid "Starred articles"
+msgstr "Články s hvězdičkou"
+
+#: include/functions.php:1887
+msgid "Published articles"
+msgstr "Publikované články"
+
+#: include/functions.php:1889
+msgid "Fresh articles"
+msgstr "Nové články"
+
+#: include/functions.php:1891
+#: include/functions.php:2006
+msgid "All articles"
+msgstr "Všechny články"
+
+#: include/functions.php:1893
+msgid "Archived articles"
+msgstr "Archivované články"
+
+#: include/functions.php:1895
+msgid "Recently read"
+msgstr "Nedávno přečtené"
+
+#: include/functions.php:1958
+msgid "Navigation"
+msgstr "Navigace"
+
+#: include/functions.php:1959
+msgid "Open next feed"
+msgstr "Otevřít následující kanál"
+
+#: include/functions.php:1960
+msgid "Open previous feed"
+msgstr "Otevřít předchozí kanál"
+
+#: include/functions.php:1961
+msgid "Open next article"
+msgstr "Otevřít následující článek"
+
+#: include/functions.php:1962
+msgid "Open previous article"
+msgstr "Otevřít předchozí článek"
+
+#: include/functions.php:1963
+msgid "Open next article (don't scroll long articles)"
+msgstr "Otevřít následující článek (neposouvat dlouhé články)"
+
+#: include/functions.php:1964
+msgid "Open previous article (don't scroll long articles)"
+msgstr "Otevřít předchozí článek (neposouvat dlouhé články)"
+
+#: include/functions.php:1965
+msgid "Move to next article (don't expand or mark read)"
+msgstr "Přejít na následující článek (nerozbalovat ani neoznačovat jako přečtené)"
+
+#: include/functions.php:1966
+msgid "Move to previous article (don't expand or mark read)"
+msgstr "Přejít na předchozí článek (nerozbalovat ani neoznačovat jako přečtené)"
+
+#: include/functions.php:1967
+msgid "Show search dialog"
+msgstr "Zobrazit dialog hledání"
+
+#: include/functions.php:1968
+msgid "Article"
+msgstr "Článek"
+
+#: include/functions.php:1969
+msgid "Toggle starred"
+msgstr "Přepnout hvězdičku"
+
+#: include/functions.php:1970
+#: js/viewfeed.js:1906
+msgid "Toggle published"
+msgstr "Přepnout publikováno"
+
+#: include/functions.php:1971
+#: js/viewfeed.js:1884
+msgid "Toggle unread"
+msgstr "Přepnout přečteno"
+
+#: include/functions.php:1972
+msgid "Edit tags"
+msgstr "Upravit značky"
+
+#: include/functions.php:1973
+msgid "Dismiss selected"
+msgstr ""
+
+#: include/functions.php:1974
+msgid "Dismiss read"
+msgstr ""
+
+#: include/functions.php:1975
+msgid "Open in new window"
+msgstr "Otevřít v novém okně"
+
+#: include/functions.php:1976
+#: js/viewfeed.js:1925
+msgid "Mark below as read"
+msgstr "Označit níže jako přečtené"
+
+#: include/functions.php:1977
+#: js/viewfeed.js:1919
+msgid "Mark above as read"
+msgstr "Označit výše jako přečtené"
+
+#: include/functions.php:1978
+msgid "Scroll down"
+msgstr "Posunout dolů"
+
+#: include/functions.php:1979
+msgid "Scroll up"
+msgstr "Posunout nahoru"
+
+#: include/functions.php:1980
+msgid "Select article under cursor"
+msgstr "Vybrat článek pod kurzorem"
+
+#: include/functions.php:1981
+msgid "Email article"
+msgstr "Odeslat článek e-mailem"
+
+#: include/functions.php:1982
+msgid "Close/collapse article"
+msgstr "Zavřít/sbalit článek"
+
+#: include/functions.php:1983
+msgid "Toggle article expansion (combined mode)"
+msgstr "Přepnout automatické rozbalení článku (kombinovaný režim)"
+
+#: include/functions.php:1985
+#: plugins/embed_original/init.php:31
+msgid "Toggle embed original"
+msgstr "Přepnout vložený originál"
+
+#: include/functions.php:1986
+msgid "Article selection"
+msgstr "Výběr článků"
+
+#: include/functions.php:1987
+msgid "Select all articles"
+msgstr "Vybrat všechny články"
+
+#: include/functions.php:1988
+msgid "Select unread"
+msgstr "Vybrat nepřečtené"
+
+#: include/functions.php:1989
+msgid "Select starred"
+msgstr "Vybrat s hvězdičkou"
+
+#: include/functions.php:1990
+msgid "Select published"
+msgstr "Vybrat publikované"
+
+#: include/functions.php:1991
+msgid "Invert selection"
+msgstr "Obrátit výběr"
+
+#: include/functions.php:1992
+msgid "Deselect everything"
+msgstr "Zrušit výběr"
+
+#: include/functions.php:1993
+#: classes/pref/feeds.php:540
+#: classes/pref/feeds.php:783
+msgid "Feed"
+msgstr "Kanál"
+
+#: include/functions.php:1994
+msgid "Refresh current feed"
+msgstr "Obnovit současný kanál"
+
+#: include/functions.php:1995
+msgid "Un/hide read feeds"
+msgstr "Zobrazit/Skrýt přečtené kanály"
+
+#: include/functions.php:1996
+#: classes/pref/feeds.php:1319
+msgid "Subscribe to feed"
+msgstr "Přihlásit se k odběru"
+
+#: include/functions.php:1997
+#: js/FeedTree.js:135
+#: js/PrefFeedTree.js:67
+msgid "Edit feed"
+msgstr "Upravit kanál"
+
+#: include/functions.php:1999
+msgid "Reverse headlines"
+msgstr "Obrácené řazení nadpisů "
+
+#: include/functions.php:2000
+msgid "Debug feed update"
+msgstr "Ladit aktualizaci kanálů"
+
+#: include/functions.php:2001
+#: js/FeedTree.js:178
+msgid "Mark all feeds as read"
+msgstr "Označit všechny kanály za přečtené"
+
+#: include/functions.php:2002
+msgid "Un/collapse current category"
+msgstr "Rozbalit/sbalit aktuální kategorii"
+
+#: include/functions.php:2003
+msgid "Toggle combined mode"
+msgstr "Přepnout kombinovaný režim"
+
+#: include/functions.php:2004
+msgid "Toggle auto expand in combined mode"
+msgstr "Přepnout automatické rozbalení kombinovaném režimu"
+
+#: include/functions.php:2005
+msgid "Go to"
+msgstr "Přejít na"
+
+#: include/functions.php:2007
+msgid "Fresh"
+msgstr "Nové"
+
+#: include/functions.php:2010
+#: js/tt-rss.js:457
+#: js/tt-rss.js:642
+msgid "Tag cloud"
+msgstr "Seznam značek"
+
+#: include/functions.php:2012
+msgid "Other"
+msgstr "Ostatní"
+
+#: include/functions.php:2013
+#: classes/pref/labels.php:281
+msgid "Create label"
+msgstr "Vytvořit štítek"
+
+#: include/functions.php:2014
+#: classes/pref/filters.php:652
+msgid "Create filter"
+msgstr "Vytvořit filtr"
+
+#: include/functions.php:2015
+msgid "Un/collapse sidebar"
+msgstr "Rozbalit/sbalit postranní lištu"
+
+#: include/functions.php:2016
+msgid "Show help dialog"
+msgstr "Zobrazit nápovědu"
+
+#: include/functions.php:2537
+#, php-format
+msgid "Search results: %s"
+msgstr "Výsledky hledání: %s"
+
+#: include/functions.php:3132
+msgid " - "
+msgstr " - "
+
+#: include/functions.php:3154
+#: include/functions.php:3395
+#: classes/article.php:281
+msgid "no tags"
+msgstr "žádné značky"
+
+#: include/functions.php:3164
+#: classes/feeds.php:676
+msgid "Edit tags for this article"
+msgstr "Upravit značky pro článek"
+
+#: include/functions.php:3196
+#: classes/feeds.php:628
+msgid "Originally from:"
+msgstr "Původně z:"
+
+#: include/functions.php:3209
+#: classes/feeds.php:641
+#: classes/pref/feeds.php:559
+msgid "Feed URL"
+msgstr "URL kanálu"
+
+#: include/functions.php:3241
+#: classes/dlg.php:37
+#: classes/dlg.php:60
+#: classes/dlg.php:93
+#: classes/dlg.php:159
+#: classes/dlg.php:190
+#: classes/dlg.php:217
+#: classes/dlg.php:250
+#: classes/dlg.php:262
+#: classes/backend.php:105
+#: classes/pref/users.php:95
+#: classes/pref/filters.php:145
+#: classes/pref/prefs.php:1096
+#: classes/pref/feeds.php:1626
+#: classes/pref/feeds.php:1694
+#: plugins/import_export/init.php:407
+#: plugins/import_export/init.php:452
+#: plugins/googlereaderimport/init.php:193
+#: plugins/share/init.php:65
+#: plugins/updater/init.php:368
+msgid "Close this window"
+msgstr "Zavřít toto okno"
+
+#: include/functions.php:3432
+msgid "(edit note)"
+msgstr "(upravit poznámku)"
+
+#: include/functions.php:3667
+msgid "unknown type"
+msgstr "neznámý typ"
+
+#: include/functions.php:3723
+msgid "Attachments"
+msgstr "Přílohy"
+
+#: include/functions.php:4222
+#, php-format
+msgid "LibXML error %s at line %d (column %d): %s"
+msgstr "Chyba LibXML %s na řádku %d (sloupec %d): %s"
+
+#: include/login_form.php:183
+#: classes/handler/public.php:475
+#: classes/handler/public.php:758
+msgid "Login:"
+msgstr "Přihlášení:"
+
+#: include/login_form.php:194
+#: classes/handler/public.php:478
+msgid "Password:"
+msgstr "Heslo:"
+
+#: include/login_form.php:199
+msgid "I forgot my password"
+msgstr "Zapomněl jsem heslo"
+
+#: include/login_form.php:205
+msgid "Profile:"
+msgstr "Profil:"
+
+#: include/login_form.php:209
+#: classes/handler/public.php:233
+#: classes/rpc.php:63
+#: classes/pref/prefs.php:1034
+msgid "Default profile"
+msgstr "Výchozí profil"
+
+#: include/login_form.php:217
+msgid "Use less traffic"
+msgstr "Generovat méně provozu"
+
+#: include/login_form.php:221
+msgid "Does not display images in articles, reduces automatic refreshes."
+msgstr "Nezobrazuje obrázky v článcích a tak snižuje potřebu pro automatické obnovení."
+
+#: include/login_form.php:229
+msgid "Remember me"
+msgstr "Zapamatovat"
+
+#: include/login_form.php:235
+#: classes/handler/public.php:483
+msgid "Log in"
+msgstr "Přihlásit"
+
+#: include/sessions.php:61
+msgid "Session failed to validate (incorrect IP)"
+msgstr "Nezdařilo se ověřit sezení (neplatné IP)"
+
+#: classes/article.php:25
+msgid "Article not found."
+msgstr "Článek nenalezen"
+
+#: classes/article.php:179
+msgid "Tags for this article (separated by commas):"
+msgstr "Značky článku (oddělené čárkami):"
+
+#: classes/article.php:204
+#: classes/pref/users.php:172
+#: classes/pref/labels.php:79
+#: classes/pref/filters.php:403
+#: classes/pref/prefs.php:980
+#: classes/pref/feeds.php:762
+#: classes/pref/feeds.php:910
+#: plugins/nsfw/init.php:83
+#: plugins/note/init.php:51
+#: plugins/instances/init.php:245
+msgid "Save"
+msgstr "Uložit"
+
+#: classes/article.php:206
+#: classes/handler/public.php:452
+#: classes/handler/public.php:486
+#: classes/feeds.php:1024
+#: classes/feeds.php:1076
+#: classes/feeds.php:1136
+#: classes/pref/users.php:174
+#: classes/pref/labels.php:81
+#: classes/pref/filters.php:406
+#: classes/pref/filters.php:801
+#: classes/pref/filters.php:877
+#: classes/pref/filters.php:944
+#: classes/pref/prefs.php:982
+#: classes/pref/feeds.php:763
+#: classes/pref/feeds.php:913
+#: classes/pref/feeds.php:1834
+#: plugins/mail/init.php:124
+#: plugins/note/init.php:53
+#: plugins/instances/init.php:248
+#: plugins/instances/init.php:436
+msgid "Cancel"
+msgstr "Zrušit"
+
+#: classes/handler/public.php:416
+#: plugins/bookmarklets/init.php:40
+msgid "Share with Tiny Tiny RSS"
+msgstr "Sdílet s Tiny Tiny RSS"
+
+#: classes/handler/public.php:424
+msgid "Title:"
+msgstr "Název:"
+
+#: classes/handler/public.php:426
+#: classes/pref/feeds.php:557
+#: classes/pref/feeds.php:798
+#: plugins/instances/init.php:212
+#: plugins/instances/init.php:401
+msgid "URL:"
+msgstr "URL:"
+
+#: classes/handler/public.php:428
+msgid "Content:"
+msgstr "Obsah:"
+
+#: classes/handler/public.php:430
+msgid "Labels:"
+msgstr "Štítky:"
+
+#: classes/handler/public.php:449
+msgid "Shared article will appear in the Published feed."
+msgstr "Sdílený článek se objeví v kanálu \"Publikováno\"."
+
+#: classes/handler/public.php:451
+msgid "Share"
+msgstr "Sdílet"
+
+#: classes/handler/public.php:473
+msgid "Not logged in"
+msgstr "Nepřihlášený"
+
+#: classes/handler/public.php:532
+msgid "Incorrect username or password"
+msgstr "Neplatné uživatelské jméno nebo heslo"
+
+#: classes/handler/public.php:568
+#: classes/handler/public.php:666
+#, php-format
+msgid "Already subscribed to <b>%s</b>."
+msgstr "Již odebíráte <b>%s</b>."
+
+#: classes/handler/public.php:571
+#: classes/handler/public.php:657
+#, php-format
+msgid "Subscribed to <b>%s</b>."
+msgstr "Zahájen odběr <b>%s</b>."
+
+#: classes/handler/public.php:574
+#: classes/handler/public.php:660
+#, php-format
+msgid "Could not subscribe to <b>%s</b>."
+msgstr "Nelze zahájit odběr <b>%s</b>."
+
+#: classes/handler/public.php:577
+#: classes/handler/public.php:663
+#, php-format
+msgid "No feeds found in <b>%s</b>."
+msgstr "Nenalezeny žádné kanály v <b>%s</b>."
+
+#: classes/handler/public.php:580
+#: classes/handler/public.php:669
+msgid "Multiple feed URLs found."
+msgstr "Nalezeno více URL kanálů."
+
+#: classes/handler/public.php:584
+#: classes/handler/public.php:676
+#, php-format
+msgid "Could not subscribe to <b>%s</b>.<br>Can't download the Feed URL."
+msgstr "Nelze zahájit odběr <b>%s</b>.<br>Nelze stáhnout URL kanálu."
+
+#: classes/handler/public.php:602
+#: classes/handler/public.php:694
+msgid "Subscribe to selected feed"
+msgstr "Zahájit odběr vybraných kanálů"
+
+#: classes/handler/public.php:627
+#: classes/handler/public.php:718
+msgid "Edit subscription options"
+msgstr "Upravit možnosti odebírání"
+
+#: classes/handler/public.php:745
+msgid "Password recovery"
+msgstr "Obnova hesla"
+
+#: classes/handler/public.php:751
+msgid "You will need to provide valid account name and email. New password will be sent on your email address."
+msgstr "Musíte zadat platný název účtu a e-mailovou adresu. Nové heslo bude zasláno na vaši e-mailovou adresu."
+
+#: classes/handler/public.php:773
+#: classes/pref/users.php:356
+msgid "Reset password"
+msgstr "Obnovit heslo"
+
+#: classes/handler/public.php:783
+msgid "Some of the required form parameters are missing or incorrect."
+msgstr "Některý z požadovaných parametrů chybí nebo je neplatný."
+
+#: classes/handler/public.php:787
+#: classes/handler/public.php:813
+msgid "Go back"
+msgstr "Jít zpět"
+
+#: classes/handler/public.php:809
+msgid "Sorry, login and email combination not found."
+msgstr "Lituji, kombinace e-mailové adresy a přihlašovacího jména nenalezena."
+
+#: classes/handler/public.php:829
+msgid "Your access level is insufficient to run this script."
+msgstr "Vaše přístupová práva nejsou dostatečná pro spuštění skriptu."
+
+#: classes/handler/public.php:853
+msgid "Database Updater"
+msgstr "Aktualizační nástroj databáze"
+
+#: classes/handler/public.php:918
+msgid "Perform updates"
+msgstr "Provést aktualizace"
+
+#: classes/dlg.php:16
+msgid "If you have imported labels and/or filters, you might need to reload preferences to see your new data."
+msgstr "Pokud jste importovali štítky, či filtry, budete možná muset znovu načíst nastavení pro zobrazení nových dat."
+
+#: classes/dlg.php:48
+msgid "Your Public OPML URL is:"
+msgstr "Vaše veřejná URL OPML je:"
+
+#: classes/dlg.php:57
+#: classes/dlg.php:214
+msgid "Generate new URL"
+msgstr "Generovat novou URL"
+
+#: classes/dlg.php:71
+msgid "Update daemon is enabled in configuration, but daemon process is not running, which prevents all feeds from updating. Please start the daemon process or contact instance owner."
+msgstr ""
+
+#: classes/dlg.php:75
+#: classes/dlg.php:84
+msgid "Last update:"
+msgstr "Poslední aktualizace:"
+
+#: classes/dlg.php:80
+msgid "Update daemon is taking too long to perform a feed update. This could indicate a problem like crash or a hang. Please check the daemon process or contact instance owner."
+msgstr "Démonu aktualizací trvá příliš dlouho aktualizace kanálu. Existuje možnost že se zasekl a nebo spadl. Zkontrolujte, prosím, stav procesu a nebo kontaktujte správce instance."
+
+#: classes/dlg.php:166
+msgid "Match:"
+msgstr "Odpovídá:"
+
+#: classes/dlg.php:168
+msgid "Any"
+msgstr "Cokoliv"
+
+#: classes/dlg.php:171
+msgid "All tags."
+msgstr "Všechny značky."
+
+#: classes/dlg.php:173
+msgid "Which Tags?"
+msgstr "Jaké značky?"
+
+#: classes/dlg.php:186
+msgid "Display entries"
+msgstr "Zobrazit položky"
+
+#: classes/dlg.php:205
+msgid "You can view this feed as RSS using the following URL:"
+msgstr "Můžete zobrazit kanál jako RSS pomocí následující URL:"
+
+#: classes/dlg.php:233
+#: plugins/updater/init.php:331
+#, php-format
+msgid "New version of Tiny Tiny RSS is available (%s)."
+msgstr "Je dostupná nová verze Tiny Tiny RSS (%s)."
+
+#: classes/dlg.php:241
+msgid "You can update using built-in updater in the Preferences or by using update.php"
+msgstr "Aktualizovat můžete pomocí zabudovaného nástroje v Nastavení, nebo pomocí update.php"
+
+#: classes/dlg.php:245
+#: plugins/updater/init.php:335
+msgid "See the release notes"
+msgstr "Zobrazit poznámky k vydání"
+
+#: classes/dlg.php:247
+msgid "Download"
+msgstr "Stáhnout"
+
+#: classes/dlg.php:255
+msgid "Error receiving version information or no new version available."
+msgstr "Chyba při získávání informací o verzi, nebo není dostupná novější verze."
+
+#: classes/feeds.php:56
+#, php-format
+msgid "Last updated: %s"
+msgstr "Poslední aktualizace: %s"
+
+#: classes/feeds.php:75
+msgid "View as RSS feed"
+msgstr "Zobrazit jako kanál RSS"
+
+#: classes/feeds.php:76
+#: classes/feeds.php:128
+#: classes/pref/feeds.php:1478
+msgid "View as RSS"
+msgstr "Zobrazit jako RSS"
+
+#: classes/feeds.php:83
+msgid "Select:"
+msgstr "Vybrat:"
+
+#: classes/feeds.php:84
+#: classes/pref/users.php:341
+#: classes/pref/labels.php:275
+#: classes/pref/filters.php:280
+#: classes/pref/filters.php:328
+#: classes/pref/filters.php:646
+#: classes/pref/filters.php:734
+#: classes/pref/filters.php:761
+#: classes/pref/prefs.php:994
+#: classes/pref/feeds.php:1310
+#: classes/pref/feeds.php:1575
+#: classes/pref/feeds.php:1641
+#: plugins/instances/init.php:287
+msgid "All"
+msgstr "Vše"
+
+#: classes/feeds.php:86
+msgid "Invert"
+msgstr "Invertovat"
+
+#: classes/feeds.php:87
+#: classes/pref/users.php:343
+#: classes/pref/labels.php:277
+#: classes/pref/filters.php:282
+#: classes/pref/filters.php:330
+#: classes/pref/filters.php:648
+#: classes/pref/filters.php:736
+#: classes/pref/filters.php:763
+#: classes/pref/prefs.php:996
+#: classes/pref/feeds.php:1312
+#: classes/pref/feeds.php:1577
+#: classes/pref/feeds.php:1643
+#: plugins/instances/init.php:289
+msgid "None"
+msgstr "Žádný"
+
+#: classes/feeds.php:93
+msgid "More..."
+msgstr "Více..."
+
+#: classes/feeds.php:95
+msgid "Selection toggle:"
+msgstr "Přepínač výběru:"
+
+#: classes/feeds.php:101
+msgid "Selection:"
+msgstr "Výběr:"
+
+#: classes/feeds.php:104
+msgid "Set score"
+msgstr "Zadat hodnocení"
+
+#: classes/feeds.php:107
+msgid "Archive"
+msgstr "Archivovat"
+
+#: classes/feeds.php:109
+msgid "Move back"
+msgstr "Zpět"
+
+#: classes/feeds.php:110
+#: classes/pref/filters.php:289
+#: classes/pref/filters.php:337
+#: classes/pref/filters.php:743
+#: classes/pref/filters.php:770
+msgid "Delete"
+msgstr "Smazat"
+
+#: classes/feeds.php:115
+#: classes/feeds.php:120
+#: plugins/mailto/init.php:25
+#: plugins/mail/init.php:26
+msgid "Forward by email"
+msgstr "Přeposlat e-mailem"
+
+#: classes/feeds.php:124
+msgid "Feed:"
+msgstr "Kanál:"
+
+#: classes/feeds.php:197
+#: classes/feeds.php:824
+msgid "Feed not found."
+msgstr "Kanál nenalezen."
+
+#: classes/feeds.php:254
+msgid "Never"
+msgstr "Nikdy"
+
+#: classes/feeds.php:360
+#, php-format
+msgid "Imported at %s"
+msgstr "Importováno v %s"
+
+#: classes/feeds.php:520
+msgid "mark as read"
+msgstr "označit jako přečtené"
+
+#: classes/feeds.php:570
+msgid "Collapse article"
+msgstr "Sbalit článek"
+
+#: classes/feeds.php:725
+msgid "No unread articles found to display."
+msgstr "Nenalezeny žádné nepřečtené články k zobrazení."
+
+#: classes/feeds.php:728
+msgid "No updated articles found to display."
+msgstr "Nenalezeny žádné aktualizované články k zobrazení."
+
+#: classes/feeds.php:731
+msgid "No starred articles found to display."
+msgstr "Nenalezeny žádné články s hvězdičkou k zobrazení."
+
+#: classes/feeds.php:735
+msgid "No articles found to display. You can assign articles to labels manually from article header context menu (applies to all selected articles) or use a filter."
+msgstr "Žádné zobrazitelné články. Můžete článkům přiřadit štítky ručně z kontextové nabídky v hlavičce článku (platí pro všechny vybrané články) a nebo použít filtr."
+
+#: classes/feeds.php:737
+msgid "No articles found to display."
+msgstr "Nenalezeny žádné články ke zobrazení."
+
+#: classes/feeds.php:752
+#: classes/feeds.php:919
+#, php-format
+msgid "Feeds last updated at %s"
+msgstr "Kanál naposledy aktualizován v %s"
+
+#: classes/feeds.php:762
+#: classes/feeds.php:929
+msgid "Some feeds have update errors (click for details)"
+msgstr "Některé kanály měly problémy při aktualizaci (klikněte pro podrobnosti)"
+
+#: classes/feeds.php:909
+msgid "No feed selected."
+msgstr "Není vybrán žádný kanál."
+
+#: classes/feeds.php:962
+#: classes/feeds.php:970
+msgid "Feed or site URL"
+msgstr "Kanál nebo URL stránky"
+
+#: classes/feeds.php:976
+#: classes/pref/feeds.php:579
+#: classes/pref/feeds.php:811
+#: classes/pref/feeds.php:1798
+msgid "Place in category:"
+msgstr "Umístit v kategorii:"
+
+#: classes/feeds.php:984
+msgid "Available feeds"
+msgstr "Dostupné kanály"
+
+#: classes/feeds.php:996
+#: classes/pref/users.php:135
+#: classes/pref/feeds.php:609
+#: classes/pref/feeds.php:847
+msgid "Authentication"
+msgstr "Ověření"
+
+#: classes/feeds.php:1000
+#: classes/pref/users.php:398
+#: classes/pref/feeds.php:615
+#: classes/pref/feeds.php:851
+#: classes/pref/feeds.php:1812
+msgid "Login"
+msgstr "Přihlášení"
+
+#: classes/feeds.php:1003
+#: classes/pref/prefs.php:260
+#: classes/pref/feeds.php:628
+#: classes/pref/feeds.php:857
+#: classes/pref/feeds.php:1815
+msgid "Password"
+msgstr "Heslo"
+
+#: classes/feeds.php:1013
+msgid "This feed requires authentication."
+msgstr "Tento kanál vyžaduje ověření."
+
+#: classes/feeds.php:1018
+#: classes/feeds.php:1074
+#: classes/pref/feeds.php:1833
+msgid "Subscribe"
+msgstr "Odebírat"
+
+#: classes/feeds.php:1021
+msgid "More feeds"
+msgstr "Více kanálů"
+
+#: classes/feeds.php:1044
+#: classes/feeds.php:1135
+#: classes/pref/users.php:328
+#: classes/pref/filters.php:639
+#: classes/pref/feeds.php:1303
+#: js/tt-rss.js:174
+msgid "Search"
+msgstr "Hledat"
+
+#: classes/feeds.php:1048
+msgid "Popular feeds"
+msgstr "Oblíbené kanály"
+
+#: classes/feeds.php:1049
+msgid "Feed archive"
+msgstr "Archív kanálů"
+
+#: classes/feeds.php:1052
+msgid "limit:"
+msgstr "omezení:"
+
+#: classes/feeds.php:1075
+#: classes/pref/users.php:354
+#: classes/pref/labels.php:284
+#: classes/pref/filters.php:396
+#: classes/pref/filters.php:665
+#: classes/pref/feeds.php:733
+#: plugins/instances/init.php:294
+msgid "Remove"
+msgstr "Odstranit"
+
+#: classes/feeds.php:1086
+msgid "Look for"
+msgstr "Hledat"
+
+#: classes/feeds.php:1094
+msgid "Limit search to:"
+msgstr "Omezit hledání na:"
+
+#: classes/feeds.php:1110
+msgid "This feed"
+msgstr "Tento kanál"
+
+#: classes/backend.php:33
+msgid "Other interface tips are available in the Tiny Tiny RSS wiki."
+msgstr "Další tipy k používání rozhraní jsou dostupné ve wiki Tiny Tiny RSS."
+
+#: classes/backend.php:38
+msgid "Keyboard Shortcuts"
+msgstr "Klávesové zkratky"
+
+#: classes/backend.php:61
+msgid "Shift"
+msgstr "Shift"
+
+#: classes/backend.php:64
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: classes/backend.php:99
+msgid "Help topic not found."
+msgstr "Téma nápovědy nenalezeno."
+
+#: classes/opml.php:28
+#: classes/opml.php:33
+msgid "OPML Utility"
+msgstr "Nástroj OPML"
+
+#: classes/opml.php:37
+msgid "Importing OPML..."
+msgstr "Importuji OPML..."
+
+#: classes/opml.php:41
+msgid "Return to preferences"
+msgstr "Zpět do nastavení"
+
+#: classes/opml.php:270
+#, php-format
+msgid "Adding feed: %s"
+msgstr "Přidávám kanál: %s"
+
+#: classes/opml.php:281
+#, php-format
+msgid "Duplicate feed: %s"
+msgstr "Duplicitní kanál: %s"
+
+#: classes/opml.php:295
+#, php-format
+msgid "Adding label %s"
+msgstr "Přidávám štítek %s"
+
+#: classes/opml.php:298
+#, php-format
+msgid "Duplicate label: %s"
+msgstr "Duplicitní štítek: %s"
+
+#: classes/opml.php:310
+#, php-format
+msgid "Setting preference key %s to %s"
+msgstr "Nastavuji klíč předvoleb %s na %s"
+
+#: classes/opml.php:339
+msgid "Adding filter..."
+msgstr "Přidávám filtr..."
+
+#: classes/opml.php:416
+#, php-format
+msgid "Processing category: %s"
+msgstr "Zpracovávám kategorii: %s"
+
+#: classes/opml.php:465
+#: plugins/import_export/init.php:420
+#: plugins/googlereaderimport/init.php:66
+#, php-format
+msgid "Upload failed with error code %d"
+msgstr "Odesílání selhalo s chybovým kódem %d"
+
+#: classes/opml.php:479
+#: plugins/import_export/init.php:434
+#: plugins/googlereaderimport/init.php:80
+msgid "Unable to move uploaded file."
+msgstr "Nelze přesunout odeslaný soubor."
+
+#: classes/opml.php:483
+#: plugins/import_export/init.php:438
+#: plugins/googlereaderimport/init.php:84
+msgid "Error: please upload OPML file."
+msgstr "Chyba: nahrajte prosím soubor OPML."
+
+#: classes/opml.php:492
+msgid "Error: unable to find moved OPML file."
+msgstr "Chyba: nelze nalézt přesunutý soubor OPML."
+
+#: classes/opml.php:499
+#: plugins/googlereaderimport/init.php:186
+msgid "Error while parsing document."
+msgstr "Chyba při zpracování dokumentu."
+
+#: classes/pref/users.php:6
+#: classes/pref/system.php:8
+#: plugins/instances/init.php:154
+msgid "Your access level is insufficient to open this tab."
+msgstr "Nemáte dostatečná oprávnění pro zobrazení této záložky."
+
+#: classes/pref/users.php:34
+msgid "User not found"
+msgstr "Uživatel nebyl nalezen"
+
+#: classes/pref/users.php:53
+#: classes/pref/users.php:400
+msgid "Registered"
+msgstr "Registrován"
+
+#: classes/pref/users.php:54
+msgid "Last logged in"
+msgstr "Naposledy přihlášen"
+
+#: classes/pref/users.php:61
+msgid "Subscribed feeds count"
+msgstr "Počet odebíraných kanálů"
+
+#: classes/pref/users.php:65
+msgid "Subscribed feeds"
+msgstr "Odebírané kanály"
+
+#: classes/pref/users.php:138
+msgid "Access level: "
+msgstr "Úroveň přístupu: "
+
+#: classes/pref/users.php:151
+msgid "Change password to"
+msgstr "Změnit heslo na"
+
+#: classes/pref/users.php:157
+#: classes/pref/feeds.php:636
+#: classes/pref/feeds.php:863
+msgid "Options"
+msgstr "Možnosti"
+
+#: classes/pref/users.php:160
+msgid "E-mail: "
+msgstr "E-mail: "
+
+#: classes/pref/users.php:236
+#, php-format
+msgid "Added user <b>%s</b> with password <b>%s</b>"
+msgstr "Přidán uživatel <b>%s</b> s heslem <b>%s</b>"
+
+#: classes/pref/users.php:243
+#, php-format
+msgid "Could not create user <b>%s</b>"
+msgstr "Nelze vytvořit uživatele <b>%s</b>"
+
+#: classes/pref/users.php:247
+#, php-format
+msgid "User <b>%s</b> already exists."
+msgstr "Uživatel <b>%s</b> již existuje."
+
+#: classes/pref/users.php:269
+#, php-format
+msgid "Changed password of user <b>%s</b> to <b>%s</b>"
+msgstr "Změněno heslo uživatele <b>%s</b> na <b>%s</b>"
+
+#: classes/pref/users.php:271
+#, php-format
+msgid "Sending new password of user <b>%s</b> to <b>%s</b>"
+msgstr "Zasílám nové heslo uživatele <b>%s</b> na <b>%s</b>"
+
+#: classes/pref/users.php:295
+msgid "[tt-rss] Password change notification"
+msgstr "[tt-rss] Oznámení o změně hesla"
+
+#: classes/pref/users.php:338
+#: classes/pref/labels.php:272
+#: classes/pref/filters.php:277
+#: classes/pref/filters.php:325
+#: classes/pref/filters.php:643
+#: classes/pref/filters.php:731
+#: classes/pref/filters.php:758
+#: classes/pref/prefs.php:991
+#: classes/pref/feeds.php:1307
+#: classes/pref/feeds.php:1572
+#: classes/pref/feeds.php:1638
+#: plugins/instances/init.php:284
+msgid "Select"
+msgstr "Vybrat"
+
+#: classes/pref/users.php:346
+msgid "Create user"
+msgstr "Vytvořit uživatele"
+
+#: classes/pref/users.php:350
+msgid "Details"
+msgstr "Podrobnosti"
+
+#: classes/pref/users.php:352
+#: classes/pref/filters.php:658
+#: plugins/instances/init.php:293
+msgid "Edit"
+msgstr "Upravit"
+
+#: classes/pref/users.php:399
+msgid "Access Level"
+msgstr "Úroveň přístupu"
+
+#: classes/pref/users.php:401
+msgid "Last login"
+msgstr "Poslední přihlášení"
+
+#: classes/pref/users.php:420
+#: plugins/instances/init.php:334
+msgid "Click to edit"
+msgstr "Klikněte pro úpravy"
+
+#: classes/pref/users.php:440
+msgid "No users defined."
+msgstr "Není definován žádný uživatel."
+
+#: classes/pref/users.php:442
+msgid "No matching users found."
+msgstr "Nebyl nalezen žádný odpovídající uživatel."
+
+#: classes/pref/labels.php:22
+#: classes/pref/filters.php:266
+#: classes/pref/filters.php:722
+msgid "Caption"
+msgstr "Titulek"
+
+#: classes/pref/labels.php:37
+msgid "Colors"
+msgstr "Barvy"
+
+#: classes/pref/labels.php:42
+msgid "Foreground:"
+msgstr "Popředí:"
+
+#: classes/pref/labels.php:42
+msgid "Background:"
+msgstr "Pozadí:"
+
+#: classes/pref/labels.php:232
+#, php-format
+msgid "Created label <b>%s</b>"
+msgstr "Vytvořen štítek <b>%s</b>"
+
+#: classes/pref/labels.php:287
+msgid "Clear colors"
+msgstr "Vymazat barvy"
+
+#: classes/pref/filters.php:94
+msgid "Articles matching this filter:"
+msgstr "Články odpovídající filtru:"
+
+#: classes/pref/filters.php:131
+msgid "No recent articles matching this filter have been found."
+msgstr "Nebyly nalezeny žádné nedávné články odpovídající filtru."
+
+#: classes/pref/filters.php:135
+msgid "Complex expressions might not give results while testing due to issues with database server regexp implementation."
+msgstr "Komplexní výrazy nemusejí navrátit výsledky při testování kvůli problémům s implementací regulárních výrazů databázového serveru."
+
+#: classes/pref/filters.php:272
+#: classes/pref/filters.php:726
+#: classes/pref/filters.php:841
+msgid "Match"
+msgstr "Odpovídá"
+
+#: classes/pref/filters.php:286
+#: classes/pref/filters.php:334
+#: classes/pref/filters.php:740
+#: classes/pref/filters.php:767
+msgid "Add"
+msgstr "Přidat"
+
+#: classes/pref/filters.php:320
+#: classes/pref/filters.php:753
+msgid "Apply actions"
+msgstr "Vykonat činnosti"
+
+#: classes/pref/filters.php:370
+#: classes/pref/filters.php:782
+msgid "Enabled"
+msgstr "Povoleno"
+
+#: classes/pref/filters.php:379
+#: classes/pref/filters.php:785
+msgid "Match any rule"
+msgstr "Odpovídá kterémukoliv pravidlu"
+
+#: classes/pref/filters.php:388
+#: classes/pref/filters.php:788
+msgid "Inverse matching"
+msgstr ""
+
+#: classes/pref/filters.php:400
+#: classes/pref/filters.php:795
+msgid "Test"
+msgstr "Test"
+
+#: classes/pref/filters.php:433
+msgid "(inverse)"
+msgstr "(inverzní)"
+
+#: classes/pref/filters.php:432
+#, php-format
+msgid "%s on %s in %s %s"
+msgstr "%s na %s v %s %s"
+
+#: classes/pref/filters.php:655
+msgid "Combine"
+msgstr "Kombinovat"
+
+#: classes/pref/filters.php:661
+#: classes/pref/feeds.php:1323
+#: classes/pref/feeds.php:1337
+msgid "Reset sort order"
+msgstr "Zrušit pořadí řazení"
+
+#: classes/pref/filters.php:669
+#: classes/pref/feeds.php:1359
+msgid "Rescore articles"
+msgstr "Přehodnotit články"
+
+#: classes/pref/filters.php:798
+msgid "Create"
+msgstr "Vytvořit"
+
+#: classes/pref/filters.php:853
+msgid "Inverse regular expression matching"
+msgstr ""
+
+#: classes/pref/filters.php:855
+msgid "on field"
+msgstr "pole"
+
+#: classes/pref/filters.php:861
+#: js/PrefFilterTree.js:45
+msgid "in"
+msgstr "v"
+
+#: classes/pref/filters.php:874
+msgid "Save rule"
+msgstr "Uložit pravidlo"
+
+#: classes/pref/filters.php:874
+#: js/functions.js:1013
+msgid "Add rule"
+msgstr "Přidat pravidlo"
+
+#: classes/pref/filters.php:897
+msgid "Perform Action"
+msgstr "Provést činnost"
+
+#: classes/pref/filters.php:923
+msgid "with parameters:"
+msgstr "s parametry:"
+
+#: classes/pref/filters.php:941
+msgid "Save action"
+msgstr "Uložit činnost"
+
+#: classes/pref/filters.php:941
+#: js/functions.js:1039
+msgid "Add action"
+msgstr "Přidat činnost"
+
+#: classes/pref/filters.php:964
+msgid "[No caption]"
+msgstr "[Bez titulku]"
+
+#: classes/pref/prefs.php:18
+msgid "General"
+msgstr "Obecné"
+
+#: classes/pref/prefs.php:19
+msgid "Interface"
+msgstr "Rozhraní"
+
+#: classes/pref/prefs.php:20
+msgid "Advanced"
+msgstr "Pokročilé"
+
+#: classes/pref/prefs.php:21
+msgid "Digest"
+msgstr "Souhrn"
+
+#: classes/pref/prefs.php:25
+msgid "Allow duplicate articles"
+msgstr "Povolit duplicitní články"
+
+#: classes/pref/prefs.php:26
+msgid "Assign articles to labels automatically"
+msgstr "Přiřadit automaticky články ke štítkům"
+
+#: classes/pref/prefs.php:27
+msgid "Blacklisted tags"
+msgstr "Zakázané značky"
+
+#: classes/pref/prefs.php:27
+msgid "When auto-detecting tags in articles these tags will not be applied (comma-separated list)."
+msgstr "Při detekci značek v článcích nebudou použity tyto značky (seznam oddělený čárkami)."
+
+#: classes/pref/prefs.php:28
+msgid "Automatically mark articles as read"
+msgstr "Automaticky označit články jako přečtené"
+
+#: classes/pref/prefs.php:28
+msgid "This option enables marking articles as read automatically while you scroll article list."
+msgstr "Volba umožňující automatické označování článků jako přečtených při jejich procházení v seznamu článků."
+
+#: classes/pref/prefs.php:29
+msgid "Automatically expand articles in combined mode"
+msgstr "Automaticky rozbalovat články v kombinovaném režimu"
+
+#: classes/pref/prefs.php:30
+msgid "Combined feed display"
+msgstr "Zobrazení v kombinovaném režimu"
+
+#: classes/pref/prefs.php:30
+msgid "Display expanded list of feed articles, instead of separate displays for headlines and article content"
+msgstr "Zobrazit rozbalený seznam článků z kanálu, místo odděleného zobrazení nadpisů a obsahů článku"
+
+#: classes/pref/prefs.php:31
+msgid "Confirm marking feed as read"
+msgstr "Potvrdit označení kanálu jako přečteného"
+
+#: classes/pref/prefs.php:32
+msgid "Amount of articles to display at once"
+msgstr "Počet naráz zobrazovaných článků"
+
+#: classes/pref/prefs.php:33
+msgid "Default feed update interval"
+msgstr "Výchozí interval aktualizace kanálů"
+
+#: classes/pref/prefs.php:33
+msgid "Shortest interval at which a feed will be checked for updates regardless of update method"
+msgstr "Nejkratší interval kontroly aktualizací kanálu bez ohledu na metodu aktualizace"
+
+#: classes/pref/prefs.php:34
+msgid "Mark articles in e-mail digest as read"
+msgstr "Označit články v e-mailovém souhrnu jako přečtené"
+
+#: classes/pref/prefs.php:35
+msgid "Enable e-mail digest"
+msgstr "Povolit e-mailový souhrn"
+
+#: classes/pref/prefs.php:35
+msgid "This option enables sending daily digest of new (and unread) headlines on your configured e-mail address"
+msgstr "Umožňuje odesílání denních souhrnů nových (a nepřečtených) článků na vaší nastavenou e-mailovou adresu"
+
+#: classes/pref/prefs.php:36
+msgid "Try to send digests around specified time"
+msgstr "Pokusit se odeslat souhrn v zadaný čas"
+
+#: classes/pref/prefs.php:36
+msgid "Uses UTC timezone"
+msgstr "Používá časovou zónu UTC"
+
+#: classes/pref/prefs.php:37
+msgid "Enable API access"
+msgstr "Povolit přístup skrze API"
+
+#: classes/pref/prefs.php:37
+msgid "Allows external clients to access this account through the API"
+msgstr "Povolit externím klientům přistupovat k aplikaci pomocí API"
+
+#: classes/pref/prefs.php:38
+msgid "Enable feed categories"
+msgstr "Povolit kategorie kanálů"
+
+#: classes/pref/prefs.php:39
+msgid "Sort feeds by unread articles count"
+msgstr "Řadit kanály dle počtu nepřečtených článků"
+
+#: classes/pref/prefs.php:40
+msgid "Maximum age of fresh articles (in hours)"
+msgstr "Maximální stáří nových článků (v hodinách)"
+
+#: classes/pref/prefs.php:41
+msgid "Hide feeds with no unread articles"
+msgstr "Skrýt kanály bez nepřečtených článků"
+
+#: classes/pref/prefs.php:42
+msgid "Show special feeds when hiding read feeds"
+msgstr "Zobrazit speciální kanály při skrývání přečtených kanálů"
+
+#: classes/pref/prefs.php:43
+msgid "Long date format"
+msgstr "Dlouhý formát data"
+
+#: classes/pref/prefs.php:44
+msgid "On catchup show next feed"
+msgstr "Při procházení zobrazit další kanál"
+
+#: classes/pref/prefs.php:44
+msgid "Automatically open next feed with unread articles after marking one as read"
+msgstr "Automaticky otevřít následující kanál s nepřečtenými články po označení posledního jako přečteného"
+
+#: classes/pref/prefs.php:45
+msgid "Purge articles after this number of days (0 - disables)"
+msgstr "Vymazat články podle stáří ve dnech (0 - nikdy nemazat)"
+
+#: classes/pref/prefs.php:46
+msgid "Purge unread articles"
+msgstr "Čistit nepřečtené články"
+
+#: classes/pref/prefs.php:47
+msgid "Reverse headline order (oldest first)"
+msgstr "Obrácené řazení nadpisů (nejstarší jako první)"
+
+#: classes/pref/prefs.php:48
+msgid "Short date format"
+msgstr "Krátký formát data"
+
+#: classes/pref/prefs.php:49
+msgid "Show content preview in headlines list"
+msgstr "Zobrazit náhled obsahu v seznamu s nadpisy"
+
+#: classes/pref/prefs.php:50
+msgid "Sort headlines by feed date"
+msgstr "Řadit nadpisy podle data kanálu"
+
+#: classes/pref/prefs.php:50
+msgid "Use feed-specified date to sort headlines instead of local import date."
+msgstr "Použít datum specifikované kanálem místo data místního importu pro řazení článků."
+
+#: classes/pref/prefs.php:51
+msgid "Login with an SSL certificate"
+msgstr "Přihlásit s certifikátem SSL"
+
+#: classes/pref/prefs.php:51
+msgid "Click to register your SSL client certificate with tt-rss"
+msgstr "Klikněte pro registraci klientského certifikátu SSL s tt-rss"
+
+#: classes/pref/prefs.php:52
+msgid "Do not embed images in articles"
+msgstr "Nevkládat obrázky do článků"
+
+#: classes/pref/prefs.php:53
+msgid "Strip unsafe tags from articles"
+msgstr "Odebrat nebezpečné značky z článků"
+
+#: classes/pref/prefs.php:53
+msgid "Strip all but most common HTML tags when reading articles."
+msgstr "Při čtení článků odstranit všechny HTML značky, kromě základních."
+
+#: classes/pref/prefs.php:54
+#: js/prefs.js:1719
+msgid "Customize stylesheet"
+msgstr "Upravit soubor motivu"
+
+#: classes/pref/prefs.php:54
+msgid "Customize CSS stylesheet to your liking"
+msgstr "Přizpůsobit soubor vzhledu CSS dle vašich představ"
+
+#: classes/pref/prefs.php:55
+msgid "Time zone"
+msgstr "Časová zóna"
+
+#: classes/pref/prefs.php:56
+msgid "Group headlines in virtual feeds"
+msgstr "Sdružovat nadpisy ve virtuálních kanálech"
+
+#: classes/pref/prefs.php:56
+msgid "Special feeds, labels, and categories are grouped by originating feeds"
+msgstr "Speciální kanály, popisky a kategorie jsou sdruženy podle původních kanálů"
+
+#: classes/pref/prefs.php:57
+msgid "Language"
+msgstr "Jazyk"
+
+#: classes/pref/prefs.php:58
+msgid "Theme"
+msgstr "Motiv"
+
+#: classes/pref/prefs.php:58
+msgid "Select one of the available CSS themes"
+msgstr "Vybrat jeden z dostupných motivů CSS"
+
+#: classes/pref/prefs.php:69
+msgid "Old password cannot be blank."
+msgstr "Staré heslo nemůže být prázdné."
+
+#: classes/pref/prefs.php:74
+msgid "New password cannot be blank."
+msgstr "Nové heslo nemůže být prázdné."
+
+#: classes/pref/prefs.php:79
+msgid "Entered passwords do not match."
+msgstr "Zadaná hesla nejsou shodná."
+
+#: classes/pref/prefs.php:88
+msgid "Function not supported by authentication module."
+msgstr "Funkce není podporována modulem ověření."
+
+#: classes/pref/prefs.php:127
+msgid "The configuration was saved."
+msgstr "Nastavení bylo uloženo."
+
+#: classes/pref/prefs.php:142
+#, php-format
+msgid "Unknown option: %s"
+msgstr "Neznámá možnost: %s"
+
+#: classes/pref/prefs.php:156
+msgid "Your personal data has been saved."
+msgstr "Vaše osobní data byla uložena."
+
+#: classes/pref/prefs.php:176
+msgid "Your preferences are now set to default values."
+msgstr "Vaše nastavení jsou nastavena na výchozí hodnoty."
+
+#: classes/pref/prefs.php:198
+msgid "Personal data / Authentication"
+msgstr "Osobní data / ověření"
+
+#: classes/pref/prefs.php:218
+msgid "Personal data"
+msgstr "Osobní informace"
+
+#: classes/pref/prefs.php:228
+msgid "Full name"
+msgstr "Celé jméno"
+
+#: classes/pref/prefs.php:232
+msgid "E-mail"
+msgstr "E-mail"
+
+#: classes/pref/prefs.php:238
+msgid "Access level"
+msgstr "Úroveň přístupu"
+
+#: classes/pref/prefs.php:248
+msgid "Save data"
+msgstr "Uložit data"
+
+#: classes/pref/prefs.php:267
+msgid "Your password is at default value, please change it."
+msgstr "Vaše heslo má výchozí hodnotu, změňte jej prosím."
+
+#: classes/pref/prefs.php:294
+msgid "Changing your current password will disable OTP."
+msgstr "Změněna hesla zakáže heslo na jedno použití."
+
+#: classes/pref/prefs.php:299
+msgid "Old password"
+msgstr "Staré heslo"
+
+#: classes/pref/prefs.php:302
+msgid "New password"
+msgstr "Nové heslo"
+
+#: classes/pref/prefs.php:307
+msgid "Confirm password"
+msgstr "Potvrdit heslo"
+
+#: classes/pref/prefs.php:317
+msgid "Change password"
+msgstr "Změnit heslo"
+
+#: classes/pref/prefs.php:323
+msgid "One time passwords / Authenticator"
+msgstr "Heslo na jedno použití / Ověření"
+
+#: classes/pref/prefs.php:327
+msgid "One time passwords are currently enabled. Enter your current password below to disable."
+msgstr "Hesla na jedno použití jsou povolena. Zadejte své současné heslo pro zakázání."
+
+#: classes/pref/prefs.php:352
+#: classes/pref/prefs.php:403
+msgid "Enter your password"
+msgstr "Zadejte své heslo"
+
+#: classes/pref/prefs.php:363
+msgid "Disable OTP"
+msgstr "Zakázat OTP"
+
+#: classes/pref/prefs.php:369
+msgid "You will need a compatible Authenticator to use this. Changing your password would automatically disable OTP."
+msgstr "Pro použití potřebujete kompatibilní nástroj ověření. Změnou hesla automaticky zakážete OTP."
+
+#: classes/pref/prefs.php:371
+msgid "Scan the following code by the Authenticator application:"
+msgstr "Načtěte následující kód ověřující aplikací:"
+
+#: classes/pref/prefs.php:408
+msgid "Enter the generated one time password"
+msgstr "Zadejte vaše heslo na jedno použití:"
+
+#: classes/pref/prefs.php:422
+msgid "Enable OTP"
+msgstr "Povolit OTP"
+
+#: classes/pref/prefs.php:428
+msgid "PHP GD functions are required for OTP support."
+msgstr "Funkce PHP GD jsou požadovány pro podporu OTP."
+
+#: classes/pref/prefs.php:471
+msgid "Some preferences are only available in default profile."
+msgstr "Některá nastavení jsou dostupná pouze ve výchozím profilu."
+
+#: classes/pref/prefs.php:569
+msgid "Customize"
+msgstr "Přizpůsobit"
+
+#: classes/pref/prefs.php:629
+msgid "Register"
+msgstr "Registrovat"
+
+#: classes/pref/prefs.php:633
+msgid "Clear"
+msgstr "Vyčistit"
+
+#: classes/pref/prefs.php:639
+#, php-format
+msgid "Current server time: %s (UTC)"
+msgstr "Aktuální čas na serveru: %s (UTC)"
+
+#: classes/pref/prefs.php:671
+msgid "Save configuration"
+msgstr "Uložit nastavení"
+
+#: classes/pref/prefs.php:675
+msgid "Save and exit preferences"
+msgstr "Uložit a opustit nastavení"
+
+#: classes/pref/prefs.php:680
+msgid "Manage profiles"
+msgstr "Spravovat profily"
+
+#: classes/pref/prefs.php:683
+msgid "Reset to defaults"
+msgstr "Obnovit výchozí hodnoty"
+
+#: classes/pref/prefs.php:706
+msgid "Plugins"
+msgstr "Moduly"
+
+#: classes/pref/prefs.php:708
+msgid "You will need to reload Tiny Tiny RSS for plugin changes to take effect."
+msgstr "Pro provedení změn v modulech musíte znovu načíst Tiny Tiny RSS."
+
+#: classes/pref/prefs.php:710
+msgid "Download more plugins at tt-rss.org <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/forum/viewforum.php?f=22\">forums</a> or <a target=\"_blank\" class=\"visibleLink\" href=\"http://tt-rss.org/wiki/Plugins\">wiki</a>."
+msgstr "Stáhnout více modulů na <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/forum/viewforum.php?f=22\">foréch</a>, nebo <a target=\"_blank\" class=\"visibleLink\" href=\"http://tt-rss.org/wiki/Plugins\">wiki</a> tt-rss.org."
+
+#: classes/pref/prefs.php:736
+msgid "System plugins"
+msgstr "Systémové moduly"
+
+#: classes/pref/prefs.php:740
+#: classes/pref/prefs.php:794
+msgid "Plugin"
+msgstr "Modul"
+
+#: classes/pref/prefs.php:741
+#: classes/pref/prefs.php:795
+msgid "Description"
+msgstr "Popis"
+
+#: classes/pref/prefs.php:742
+#: classes/pref/prefs.php:796
+msgid "Version"
+msgstr "Verze"
+
+#: classes/pref/prefs.php:743
+#: classes/pref/prefs.php:797
+msgid "Author"
+msgstr "Autor"
+
+#: classes/pref/prefs.php:772
+#: classes/pref/prefs.php:829
+msgid "more info"
+msgstr "více informací"
+
+#: classes/pref/prefs.php:781
+#: classes/pref/prefs.php:838
+msgid "Clear data"
+msgstr "Smazat data"
+
+#: classes/pref/prefs.php:790
+msgid "User plugins"
+msgstr "Uživatelské moduly"
+
+#: classes/pref/prefs.php:853
+msgid "Enable selected plugins"
+msgstr "Povolit vybrané moduly"
+
+#: classes/pref/prefs.php:920
+msgid "Incorrect one time password"
+msgstr "Chybné heslo na jedno použití"
+
+#: classes/pref/prefs.php:923
+#: classes/pref/prefs.php:940
+msgid "Incorrect password"
+msgstr "Špatné heslo"
+
+#: classes/pref/prefs.php:965
+#, php-format
+msgid "You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">This file</a> can be used as a baseline."
+msgstr "Můžete změnit bary, font a rozvržení vybraného motivu s vlastním nastavením CSS. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">Tento soubor</a> vám poslouží jako základ."
+
+#: classes/pref/prefs.php:1005
+msgid "Create profile"
+msgstr "Vytvořit profil"
+
+#: classes/pref/prefs.php:1028
+#: classes/pref/prefs.php:1056
+msgid "(active)"
+msgstr "(aktivní)"
+
+#: classes/pref/prefs.php:1090
+msgid "Remove selected profiles"
+msgstr "Odstranit vybrané profily"
+
+#: classes/pref/prefs.php:1092
+msgid "Activate profile"
+msgstr "Aktivovat profil"
+
+#: classes/pref/feeds.php:13
+msgid "Check to enable field"
+msgstr "Zaškrtněte pro povolení pole"
+
+#: classes/pref/feeds.php:546
+msgid "Feed Title"
+msgstr "Název kanálu"
+
+#: classes/pref/feeds.php:587
+#: classes/pref/feeds.php:822
+msgid "Update"
+msgstr "Aktualizovat"
+
+#: classes/pref/feeds.php:602
+#: classes/pref/feeds.php:838
+msgid "Article purging:"
+msgstr "Čištění článků:"
+
+#: classes/pref/feeds.php:632
+msgid "<b>Hint:</b> you need to fill in your login information if your feed requires authentication, except for Twitter feeds."
+msgstr "<b>Rada:</b> pokud váš kanál vyžaduje ověření, musíte zadat přihlašovací údaje, s výjimkou pro kanály Twitter."
+
+#: classes/pref/feeds.php:648
+#: classes/pref/feeds.php:867
+msgid "Hide from Popular feeds"
+msgstr "Skrýt před populárními kanály"
+
+#: classes/pref/feeds.php:660
+#: classes/pref/feeds.php:873
+msgid "Include in e-mail digest"
+msgstr "Začlenit do e-mailových souhrnů"
+
+#: classes/pref/feeds.php:673
+#: classes/pref/feeds.php:879
+msgid "Always display image attachments"
+msgstr "Vždy zobrazovat obrázkové přílohy"
+
+#: classes/pref/feeds.php:686
+#: classes/pref/feeds.php:887
+msgid "Do not embed images"
+msgstr "Nevkládat obrázky"
+
+#: classes/pref/feeds.php:699
+#: classes/pref/feeds.php:895
+msgid "Cache images locally"
+msgstr "Uchovávat obrázky na serveru"
+
+#: classes/pref/feeds.php:711
+#: classes/pref/feeds.php:901
+msgid "Mark updated articles as unread"
+msgstr "Označit aktualizované články jako nepřečtené"
+
+#: classes/pref/feeds.php:717
+msgid "Icon"
+msgstr "Ikona"
+
+#: classes/pref/feeds.php:731
+msgid "Replace"
+msgstr "Nahradit"
+
+#: classes/pref/feeds.php:753
+msgid "Resubscribe to push updates"
+msgstr ""
+
+#: classes/pref/feeds.php:760
+msgid "Resets PubSubHubbub subscription status for push-enabled feeds."
+msgstr ""
+
+#: classes/pref/feeds.php:1156
+#: classes/pref/feeds.php:1209
+msgid "All done."
+msgstr "Vše hotovo."
+
+#: classes/pref/feeds.php:1264
+msgid "Feeds with errors"
+msgstr "Kanály s chybami"
+
+#: classes/pref/feeds.php:1284
+msgid "Inactive feeds"
+msgstr "Neaktivní kanály"
+
+#: classes/pref/feeds.php:1321
+msgid "Edit selected feeds"
+msgstr "Upravit vybrané kanály"
+
+#: classes/pref/feeds.php:1325
+#: js/prefs.js:1764
+msgid "Batch subscribe"
+msgstr "Dávkové zahájení odběru"
+
+#: classes/pref/feeds.php:1332
+msgid "Categories"
+msgstr "Kategorie"
+
+#: classes/pref/feeds.php:1335
+msgid "Add category"
+msgstr "Přidat kategorii"
+
+#: classes/pref/feeds.php:1339
+msgid "Remove selected"
+msgstr "Odstranit vybrané"
+
+#: classes/pref/feeds.php:1350
+msgid "More actions..."
+msgstr "Další činnost..."
+
+#: classes/pref/feeds.php:1354
+msgid "Manual purge"
+msgstr "Ruční čištění"
+
+#: classes/pref/feeds.php:1358
+msgid "Clear feed data"
+msgstr "Vyčistit data kanálu"
+
+#: classes/pref/feeds.php:1409
+msgid "OPML"
+msgstr "OPML"
+
+#: classes/pref/feeds.php:1411
+msgid "Using OPML you can export and import your feeds, filters, labels and Tiny Tiny RSS settings."
+msgstr "Pomocí OPML můžete exportovat a importovat své kanály, filtry, štítky a nastavení Tiny Tiny RSS."
+
+#: classes/pref/feeds.php:1411
+msgid "Only main settings profile can be migrated using OPML."
+msgstr "Pomocí OPML může být migrován pouze profil hlavního nastavení."
+
+#: classes/pref/feeds.php:1424
+msgid "Import my OPML"
+msgstr "Importovat moji OPML"
+
+#: classes/pref/feeds.php:1428
+msgid "Filename:"
+msgstr "Název souboru:"
+
+#: classes/pref/feeds.php:1430
+msgid "Include settings"
+msgstr ""
+
+#: classes/pref/feeds.php:1434
+msgid "Export OPML"
+msgstr "Exportovat OPML"
+
+#: classes/pref/feeds.php:1438
+msgid "Your OPML can be published publicly and can be subscribed by anyone who knows the URL below."
+msgstr "Vaše OPML může být publikováno a použito kýmkoliv kdo zná následující URL."
+
+#: classes/pref/feeds.php:1440
+msgid "Published OPML does not include your Tiny Tiny RSS settings, feeds that require authentication or feeds hidden from Popular feeds."
+msgstr "Publikovaná OPML neobsahují vaše nastavení Tiny Tiny RSS a kanály které vyžadují ověření, nebo jsou skryty před Oblíbenými kanály."
+
+#: classes/pref/feeds.php:1442
+msgid "Public OPML URL"
+msgstr "Veřejná URL OPML"
+
+#: classes/pref/feeds.php:1443
+msgid "Display published OPML URL"
+msgstr "Zobrazit URL publikovaných OPML"
+
+#: classes/pref/feeds.php:1452
+msgid "Firefox integration"
+msgstr "Integrace s Firefoxem"
+
+#: classes/pref/feeds.php:1454
+msgid "This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the link below."
+msgstr "Stránka Tiny Tiny RSS může být použita jako Čtečka kanálů Firefox následujícím odkazem."
+
+#: classes/pref/feeds.php:1461
+msgid "Click here to register this site as a feed reader."
+msgstr "Klikněte pro registraci této stránky jako čtečky kanálů."
+
+#: classes/pref/feeds.php:1469
+msgid "Published & shared articles / Generated feeds"
+msgstr "Publikované a sdílené články / Generované kanály"
+
+#: classes/pref/feeds.php:1471
+msgid "Published articles are exported as a public RSS feed and can be subscribed by anyone who knows the URL specified below."
+msgstr "Publikované články jsou exportované jako veřejný kanál RSS, který může odebírat kdokoliv kdo zná následující URL."
+
+#: classes/pref/feeds.php:1479
+msgid "Display URL"
+msgstr "Zobrazit URL"
+
+#: classes/pref/feeds.php:1482
+msgid "Clear all generated URLs"
+msgstr "Vyčistit všechny vygenerované URL"
+
+#: classes/pref/feeds.php:1486
+msgid "You can disable all articles shared by unique URLs here."
+msgstr "Zde můžete zakázat sdílení článků pomocí unikátních URL."
+
+#: classes/pref/feeds.php:1491
+msgid "Unshare all articles"
+msgstr "Zrušit sdílení všech článků"
+
+#: classes/pref/feeds.php:1568
+msgid "These feeds have not been updated with new content for 3 months (oldest first):"
+msgstr "Tyto kanály nebyly aktualizovány s novým obsahem po tři měsíce (nejprve nejstarší):"
+
+#: classes/pref/feeds.php:1604
+#: classes/pref/feeds.php:1670
+msgid "Click to edit feed"
+msgstr "Klikněte pro úpravu kanálu"
+
+#: classes/pref/feeds.php:1622
+#: classes/pref/feeds.php:1690
+msgid "Unsubscribe from selected feeds"
+msgstr "Zrušit odběr vybraných kanálů"
+
+#: classes/pref/feeds.php:1795
+msgid "Add one valid RSS feed per line (no feed detection is done)"
+msgstr "Přidávejte jeden platný RSS kanál na řádku (neprobíhá detekce kanálu)"
+
+#: classes/pref/feeds.php:1804
+msgid "Feeds to subscribe, One per line"
+msgstr "Kanály k odebírání, jeden na řádku"
+
+#: classes/pref/feeds.php:1826
+msgid "Feeds require authentication."
+msgstr "Kanály vyžadují ověření."
+
+#: classes/pref/system.php:29
+msgid "Error Log"
+msgstr "Záznam o chybách"
+
+#: classes/pref/system.php:40
+msgid "Refresh"
+msgstr "Obnovit"
+
+#: classes/pref/system.php:43
+msgid "Clear log"
+msgstr "Vyčistit záznam"
+
+#: classes/pref/system.php:48
+msgid "Error"
+msgstr "Chyba"
+
+#: classes/pref/system.php:49
+msgid "Filename"
+msgstr "Název souboru"
+
+#: classes/pref/system.php:50
+msgid "Message"
+msgstr "Zpráva"
+
+#: classes/pref/system.php:52
+msgid "Date"
+msgstr "Datum"
+
+#: plugins/close_button/init.php:22
+msgid "Close article"
+msgstr "Zavřít článek"
+
+#: plugins/nsfw/init.php:29
+#: plugins/nsfw/init.php:40
+msgid "Not work safe (click to toggle)"
+msgstr "Není bezpečné pro práci (kliknutím přepnout)"
+
+#: plugins/nsfw/init.php:50
+msgid "NSFW Plugin"
+msgstr "Modul NSFW"
+
+#: plugins/nsfw/init.php:77
+msgid "Tags to consider NSFW (comma-separated)"
+msgstr "Značky považované za nevhodné k práci (oddělené čárkou)"
+
+#: plugins/nsfw/init.php:98
+msgid "Configuration saved."
+msgstr "Nastavení uloženo."
+
+#: plugins/auth_internal/init.php:62
+msgid "Please enter your one time password:"
+msgstr "Zadejte prosím vaše heslo na jedno použití:"
+
+#: plugins/auth_internal/init.php:185
+msgid "Password has been changed."
+msgstr "Heslo bylo změněno."
+
+#: plugins/auth_internal/init.php:187
+msgid "Old password is incorrect."
+msgstr "Staré heslo je chybné."
+
+#: plugins/mailto/init.php:49
+#: plugins/mailto/init.php:55
+#: plugins/mail/init.php:64
+#: plugins/mail/init.php:70
+msgid "[Forwarded]"
+msgstr "[Přeposláno]"
+
+#: plugins/mailto/init.php:49
+#: plugins/mail/init.php:64
+msgid "Multiple articles"
+msgstr "Více článků"
+
+#: plugins/mailto/init.php:71
+msgid "Clicking the following link to invoke your mail client:"
+msgstr "Klikněte na následující odkaz pro spuštění poštovního klienta:"
+
+#: plugins/mailto/init.php:75
+msgid "Forward selected article(s) by email."
+msgstr "Přeposlat vybrané články e-mailem."
+
+#: plugins/mailto/init.php:78
+msgid "You should be able to edit the message before sending in your mail client."
+msgstr "Měli byste být schopni upravit zprávu před odesláním ve vašem poštovním klientu."
+
+#: plugins/mailto/init.php:83
+msgid "Close this dialog"
+msgstr "Uzavřít tento dialog"
+
+#: plugins/bookmarklets/init.php:20
+msgid "Bookmarklets"
+msgstr "Záložky"
+
+#: plugins/bookmarklets/init.php:22
+msgid "Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it."
+msgstr ""
+
+#: plugins/bookmarklets/init.php:26
+#, php-format
+msgid "Subscribe to %s in Tiny Tiny RSS?"
+msgstr "Odebírat %s v Tiny Tiny RSS?"
+
+#: plugins/bookmarklets/init.php:31
+msgid "Subscribe in Tiny Tiny RSS"
+msgstr "Odebírat v Tiny Tiny RSS"
+
+#: plugins/bookmarklets/init.php:34
+msgid "Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS"
+msgstr ""
+
+#: plugins/import_export/init.php:58
+msgid "Import and export"
+msgstr "Import a export"
+
+#: plugins/import_export/init.php:60
+msgid "You can export and import your Starred and Archived articles for safekeeping or when migrating between tt-rss instances of same version."
+msgstr "Můžete exportovat a importovat vaše články s hvězdičkou a archivované články pro uložení, a nebo při migraci mezi stejnými verzemi instancí tt-rss."
+
+#: plugins/import_export/init.php:65
+msgid "Export my data"
+msgstr "Exportovat má data"
+
+#: plugins/import_export/init.php:81
+msgid "Import"
+msgstr "Importovat"
+
+#: plugins/import_export/init.php:219
+msgid "Could not import: incorrect schema version."
+msgstr "Nelze importovat: neplatná verze schématu."
+
+#: plugins/import_export/init.php:224
+msgid "Could not import: unrecognized document format."
+msgstr "Nelze importovat: nerozpoznaný formát dokumentu."
+
+#: plugins/import_export/init.php:383
+msgid "Finished: "
+msgstr "Dokončeno: "
+
+#: plugins/import_export/init.php:384
+#, php-format
+msgid "%d article processed, "
+msgid_plural "%d articles processed, "
+msgstr[0] "zpracován %d článek, "
+msgstr[1] "zpracovány %d články, "
+msgstr[2] "zpracováno %d článků, "
+
+#: plugins/import_export/init.php:385
+#, php-format
+msgid "%d imported, "
+msgid_plural "%d imported, "
+msgstr[0] "%d importován, "
+msgstr[1] "%d importovány, "
+msgstr[2] "%d importováno, "
+
+#: plugins/import_export/init.php:386
+#, php-format
+msgid "%d feed created."
+msgid_plural "%d feeds created."
+msgstr[0] "vytvořen %d kanál."
+msgstr[1] "vytvořeny %d kanály."
+msgstr[2] "vytvořeno %d kanálů."
+
+#: plugins/import_export/init.php:391
+msgid "Could not load XML document."
+msgstr "Nelze načíst dokument XML."
+
+#: plugins/import_export/init.php:403
+msgid "Prepare data"
+msgstr "Připravit data"
+
+#: plugins/import_export/init.php:446
+#: plugins/googlereaderimport/init.php:92
+msgid "No file uploaded."
+msgstr "Žádný soubor nebyl odeslán."
+
+#: plugins/mail/init.php:85
+msgid "From:"
+msgstr "Od:"
+
+#: plugins/mail/init.php:94
+msgid "To:"
+msgstr "Do:"
+
+#: plugins/mail/init.php:107
+msgid "Subject:"
+msgstr "Předmět:"
+
+#: plugins/mail/init.php:123
+msgid "Send e-mail"
+msgstr "Odeslat zprávu"
+
+#: plugins/note/init.php:26
+#: plugins/note/note.js:11
+msgid "Edit article note"
+msgstr "Upravit poznámky článku"
+
+#: plugins/googlereaderimport/init.php:178
+#, php-format
+msgid "All done. %d out of %d articles imported."
+msgstr "Vše dokončeno. %d z %d článků importováno."
+
+#: plugins/googlereaderimport/init.php:182
+msgid "The document has incorrect format."
+msgstr "Dokument nemá platný formát."
+
+#: plugins/googlereaderimport/init.php:353
+msgid "Import starred or shared items from Google Reader"
+msgstr "Importovat sdílené a nebo s hvězdičkou z Google Readeru"
+
+#: plugins/googlereaderimport/init.php:357
+msgid "Paste your starred.json or shared.json into the form below."
+msgstr "Vložte do následujícího formuláře váš soubor starred.json, nebo shared.json."
+
+#: plugins/googlereaderimport/init.php:371
+msgid "Import my Starred items"
+msgstr "Importovat mé položky s hvězdičkou"
+
+#: plugins/instances/init.php:141
+msgid "Linked"
+msgstr ""
+
+#: plugins/instances/init.php:204
+#: plugins/instances/init.php:395
+msgid "Instance"
+msgstr "Instance"
+
+#: plugins/instances/init.php:215
+#: plugins/instances/init.php:312
+#: plugins/instances/init.php:404
+msgid "Instance URL"
+msgstr "URL instance"
+
+#: plugins/instances/init.php:226
+#: plugins/instances/init.php:414
+msgid "Access key:"
+msgstr "Přístupový klíč:"
+
+#: plugins/instances/init.php:229
+#: plugins/instances/init.php:313
+#: plugins/instances/init.php:417
+msgid "Access key"
+msgstr "Přístupový klíč"
+
+#: plugins/instances/init.php:233
+#: plugins/instances/init.php:421
+msgid "Use one access key for both linked instances."
+msgstr "Použít jeden přístupový klíč pro obě propojené instance."
+
+#: plugins/instances/init.php:241
+#: plugins/instances/init.php:429
+msgid "Generate new key"
+msgstr "Generovat nový klíč"
+
+#: plugins/instances/init.php:292
+msgid "Link instance"
+msgstr "Propojit instance"
+
+#: plugins/instances/init.php:304
+msgid "You can connect other instances of Tiny Tiny RSS to this one to share Popular feeds. Link to this instance of Tiny Tiny RSS by using this URL:"
+msgstr "Můžete spojit další instance Tiny Tiny RSS pro sdílení oblíbených kanálů. S touto instancí Tiny Tiny RSS se spojíte pomocí následující URL:"
+
+#: plugins/instances/init.php:314
+msgid "Last connected"
+msgstr "Naposledy připojen"
+
+#: plugins/instances/init.php:315
+msgid "Status"
+msgstr "Stav"
+
+#: plugins/instances/init.php:316
+msgid "Stored feeds"
+msgstr "Uložené kanály"
+
+#: plugins/instances/init.php:433
+msgid "Create link"
+msgstr "Vytvořit odkaz"
+
+#: plugins/share/init.php:25
+msgid "Share by URL"
+msgstr "Sdílet pomocí URL"
+
+#: plugins/share/init.php:47
+msgid "You can share this article by the following unique URL:"
+msgstr "Můžete článek sdílet pomocí následující unikátní URL:"
+
+#: plugins/updater/init.php:321
+#: plugins/updater/init.php:338
+#: plugins/updater/updater.js:10
+msgid "Update Tiny Tiny RSS"
+msgstr "Aktualizovat Tiny Tiny RSS"
+
+#: plugins/updater/init.php:341
+msgid "Your Tiny Tiny RSS installation is up to date."
+msgstr "Vaše instalace Tiny Tiny RSS je aktuální."
+
+#: plugins/updater/init.php:349
+msgid "Do not close this dialog until updating is finished."
+msgstr "Nezavírejte tento dialog dokud není aktualizace dokončena."
+
+#: plugins/updater/init.php:358
+msgid "It is suggested to backup your tt-rss directory first."
+msgstr "Je doporučeno nejprve zálohovat adresář tt-rss."
+
+#: plugins/updater/init.php:359
+msgid "Your database will not be modified."
+msgstr "Vaše databáze nebude změněna."
+
+#: plugins/updater/init.php:360
+msgid "Your current tt-rss installation directory will not be modified. It will be renamed and left in the parent directory. You will be able to migrate all your customized files after update finishes."
+msgstr ""
+
+#: plugins/updater/init.php:361
+msgid "Ready to update."
+msgstr "Připraveno k aktualizaci."
+
+#: plugins/updater/init.php:366
+msgid "Start update"
+msgstr "Zahájit aktualizaci"
+
+#: js/PrefFeedTree.js:47
+msgid "Edit category"
+msgstr "Upravit kategorii"
+
+#: js/PrefFeedTree.js:54
+msgid "Remove category"
+msgstr "Odstranit kategorii"
+
+#: js/PrefFilterTree.js:48
+msgid "Inverse"
+msgstr "Inverzní"
+
+#: js/feedlist.js:397
+#: js/feedlist.js:425
+msgid "Mark all articles in %s as read?"
+msgstr "Označit všechny články v %s jako přečtené?"
+
+#: js/feedlist.js:416
+msgid "Mark all articles in %s older than 1 day as read?"
+msgstr "Označit všechny články starší než 1 den v %s jako přečtené?"
+
+#: js/feedlist.js:419
+msgid "Mark all articles in %s older than 1 week as read?"
+msgstr "Označit všechny články starší než 1 týden v %s jako přečtené?"
+
+#: js/feedlist.js:422
+msgid "Mark all articles in %s older than 2 weeks as read?"
+msgstr "Označit všechny články starší než 2 týdny v %s jako přečtené?"
+
+#: js/functions.js:65
+msgid "The error will be reported to the configured log destination."
+msgstr "Chyba bude nahlášena do nastaveného cíle záznamu."
+
+#: js/functions.js:107
+msgid "Are you sure to report this exception to tt-rss.org? The report will include your browser information. Your IP would be saved in the database."
+msgstr "Opravdu si přejete nahlásit výjimku na tt-rss.org? Hlášení bude obsahovat informace o vašem prohlížeči a vaše adresa IP bude uložena v databázi."
+
+#: js/functions.js:236
+msgid "Click to close"
+msgstr "Kliknutím zavřít"
+
+#: js/functions.js:612
+msgid "Error explained"
+msgstr ""
+
+#: js/functions.js:694
+msgid "Upload complete."
+msgstr "Odeslání dokončeno."
+
+#: js/functions.js:718
+msgid "Remove stored feed icon?"
+msgstr "Odstranit ikonu uloženého kanálu?"
+
+#: js/functions.js:723
+msgid "Removing feed icon..."
+msgstr "Odstraňuji ikonu kanálu..."
+
+#: js/functions.js:728
+msgid "Feed icon removed."
+msgstr "Ikona kanálu odstraněna."
+
+#: js/functions.js:750
+msgid "Please select an image file to upload."
+msgstr "Prosím vyberte obrázek k odeslání."
+
+#: js/functions.js:752
+msgid "Upload new icon for this feed?"
+msgstr "Nahrát novou ikonu pro kanál?"
+
+#: js/functions.js:753
+msgid "Uploading, please wait..."
+msgstr "Odesílám, čekejte prosím..."
+
+#: js/functions.js:769
+msgid "Please enter label caption:"
+msgstr "Zadejte, prosím, titulek štítku:"
+
+#: js/functions.js:774
+msgid "Can't create label: missing caption."
+msgstr "Nelze vytvořit štítek: chybí titulek."
+
+#: js/functions.js:817
+msgid "Subscribe to Feed"
+msgstr "Přihlásit se k odběru"
+
+#: js/functions.js:844
+msgid "Subscribed to %s"
+msgstr "Zahájen odběr %s"
+
+#: js/functions.js:849
+msgid "Specified URL seems to be invalid."
+msgstr "Zadaná URL nevypadá platně."
+
+#: js/functions.js:852
+msgid "Specified URL doesn't seem to contain any feeds."
+msgstr "Zadaná URL nevypadá jako by obsahovala jakékoliv kanály."
+
+#: js/functions.js:862
+msgid "Expand to select feed"
+msgstr ""
+
+#: js/functions.js:874
+msgid "Couldn't download the specified URL: %s"
+msgstr "Nelze stáhnout zadanou URL: %s"
+
+#: js/functions.js:878
+msgid "XML validation failed: %s"
+msgstr "Validace XML selhala: %s"
+
+#: js/functions.js:883
+msgid "You are already subscribed to this feed."
+msgstr "Tento kanál již odebíráte."
+
+#: js/functions.js:1013
+msgid "Edit rule"
+msgstr "Upravit pravidlo"
+
+#: js/functions.js:1039
+msgid "Edit action"
+msgstr "Upravit činnost"
+
+#: js/functions.js:1076
+msgid "Create Filter"
+msgstr "Vytvořit filtr"
+
+#: js/functions.js:1191
+msgid "Reset subscription? Tiny Tiny RSS will try to subscribe to the notification hub again on next feed update."
+msgstr "Obnovit odběr? Tiny Tiny RSS se pokusí znovu přihlásit k odběru při další aktualizaci kanálu."
+
+#: js/functions.js:1202
+msgid "Subscription reset."
+msgstr "Odběr obnoven."
+
+#: js/functions.js:1212
+#: js/tt-rss.js:677
+msgid "Unsubscribe from %s?"
+msgstr "Zrušit odběr %s?"
+
+#: js/functions.js:1215
+msgid "Removing feed..."
+msgstr "Odebírám kanál..."
+
+#: js/functions.js:1324
+msgid "Please enter category title:"
+msgstr "Zadejte prosím název kategorie:"
+
+#: js/functions.js:1355
+msgid "Generate new syndication address for this feed?"
+msgstr ""
+
+#: js/functions.js:1359
+#: js/prefs.js:1231
+msgid "Trying to change address..."
+msgstr "Zkouším změnit adresu..."
+
+#: js/functions.js:1546
+#: js/tt-rss.js:422
+#: js/tt-rss.js:658
+msgid "You can't edit this kind of feed."
+msgstr "Nemůžete upravit tento typ kanálu."
+
+#: js/functions.js:1561
+msgid "Edit Feed"
+msgstr "Upravit kanál"
+
+#: js/functions.js:1567
+#: js/prefs.js:194
+#: js/prefs.js:749
+msgid "Saving data..."
+msgstr "Ukládám data..."
+
+#: js/functions.js:1599
+msgid "More Feeds"
+msgstr "Více kanálů"
+
+#: js/functions.js:1660
+#: js/functions.js:1770
+#: js/prefs.js:397
+#: js/prefs.js:427
+#: js/prefs.js:459
+#: js/prefs.js:642
+#: js/prefs.js:662
+#: js/prefs.js:1207
+#: js/prefs.js:1352
+msgid "No feeds are selected."
+msgstr "Nejsou vybrány žádné kanály."
+
+#: js/functions.js:1702
+msgid "Remove selected feeds from the archive? Feeds with stored articles will not be removed."
+msgstr "Odstranit vybrané kanály z archivu? Kanály s uloženými články nebudou odebrány."
+
+#: js/functions.js:1741
+msgid "Feeds with update errors"
+msgstr "Kanály s chybami při aktualizaci"
+
+#: js/functions.js:1752
+#: js/prefs.js:1189
+msgid "Remove selected feeds?"
+msgstr "Odstranit vybrané kanály?"
+
+#: js/functions.js:1755
+#: js/prefs.js:1192
+msgid "Removing selected feeds..."
+msgstr "Odebírám vybrané kanály..."
+
+#: js/functions.js:1853
+msgid "Help"
+msgstr "Nápověda"
+
+#: js/prefs.js:55
+msgid "Please enter login:"
+msgstr "Prosím zadejte přihlašovací jméno:"
+
+#: js/prefs.js:62
+msgid "Can't create user: no login specified."
+msgstr "Nelze vytvořit uživatele: nezadáno přihlašovací jméno."
+
+#: js/prefs.js:66
+msgid "Adding user..."
+msgstr "Přidávám uživatele..."
+
+#: js/prefs.js:94
+msgid "User Editor"
+msgstr "Editor uživatelů"
+
+#: js/prefs.js:117
+msgid "Edit Filter"
+msgstr "Upravit filtr"
+
+#: js/prefs.js:164
+msgid "Remove filter?"
+msgstr "Odstranit filtr?"
+
+#: js/prefs.js:169
+msgid "Removing filter..."
+msgstr "Odebírám filtr..."
+
+#: js/prefs.js:279
+msgid "Remove selected labels?"
+msgstr "Odstranit vybrané štítky?"
+
+#: js/prefs.js:282
+msgid "Removing selected labels..."
+msgstr "Odebírám vybrané štítky..."
+
+#: js/prefs.js:295
+#: js/prefs.js:1393
+msgid "No labels are selected."
+msgstr "Nejsou vybrány žádné štítky"
+
+#: js/prefs.js:309
+msgid "Remove selected users? Neither default admin nor your account will be removed."
+msgstr "Odstranit vybrané uživatele? Váš účet ani výchozí účet správce nelze odstranit."
+
+#: js/prefs.js:312
+msgid "Removing selected users..."
+msgstr "Odebírám vybrané uživatele..."
+
+#: js/prefs.js:326
+#: js/prefs.js:507
+#: js/prefs.js:528
+#: js/prefs.js:567
+msgid "No users are selected."
+msgstr "Nejsou vybráni žádní uživatelé"
+
+#: js/prefs.js:344
+msgid "Remove selected filters?"
+msgstr "Odstranit vybrané filtry?"
+
+#: js/prefs.js:347
+msgid "Removing selected filters..."
+msgstr "Odebírám vybrané filtry..."
+
+#: js/prefs.js:359
+#: js/prefs.js:597
+#: js/prefs.js:616
+msgid "No filters are selected."
+msgstr "Nejsou vybrány žádné filtry."
+
+#: js/prefs.js:378
+msgid "Unsubscribe from selected feeds?"
+msgstr "Zrušit odběr vybraných kanálů?"
+
+#: js/prefs.js:382
+msgid "Unsubscribing from selected feeds..."
+msgstr "Ruším odebírání vybraných kanálů..."
+
+#: js/prefs.js:412
+msgid "Please select only one feed."
+msgstr "Vyberte prosím pouze jeden kanál."
+
+#: js/prefs.js:418
+msgid "Erase all non-starred articles in selected feed?"
+msgstr "Vymazat z vybraného kanálu všechny články bez hvězdičky?"
+
+#: js/prefs.js:421
+msgid "Clearing selected feed..."
+msgstr "Čistím vybrané kanály..."
+
+#: js/prefs.js:440
+msgid "How many days of articles to keep (0 - use default)?"
+msgstr "Kolik dnů článků zachovat (0 - výchozí)?"
+
+#: js/prefs.js:443
+msgid "Purging selected feed..."
+msgstr "Čistím vybrané kanály..."
+
+#: js/prefs.js:478
+msgid "Login field cannot be blank."
+msgstr "Pole se jménem uživatele nesmí být prázdné."
+
+#: js/prefs.js:482
+msgid "Saving user..."
+msgstr "Ukládám uživatele..."
+
+#: js/prefs.js:512
+#: js/prefs.js:533
+#: js/prefs.js:572
+msgid "Please select only one user."
+msgstr "Vyberte prosím pouze jednoho uživatele."
+
+#: js/prefs.js:537
+msgid "Reset password of selected user?"
+msgstr "Obnovit heslo vybraného uživatele?"
+
+#: js/prefs.js:540
+msgid "Resetting password for selected user..."
+msgstr "Obnovuji heslo vybraného uživatele..."
+
+#: js/prefs.js:585
+msgid "User details"
+msgstr "Podrobnosti uživatele"
+
+#: js/prefs.js:602
+msgid "Please select only one filter."
+msgstr "Vyberte prosím pouze jeden filtr."
+
+#: js/prefs.js:620
+msgid "Combine selected filters?"
+msgstr "Zkombinovat vybrané filtry?"
+
+#: js/prefs.js:623
+msgid "Joining filters..."
+msgstr "Kombinuji filtry..."
+
+#: js/prefs.js:684
+msgid "Edit Multiple Feeds"
+msgstr "Upravit více kanálů"
+
+#: js/prefs.js:708
+msgid "Save changes to selected feeds?"
+msgstr "Uložit změny ve vybraných kanálech?"
+
+#: js/prefs.js:785
+msgid "OPML Import"
+msgstr "Import OPML"
+
+#: js/prefs.js:812
+msgid "Please choose an OPML file first."
+msgstr "Vyberte prosím nejprve soubor OPML."
+
+#: js/prefs.js:815
+#: plugins/import_export/import_export.js:115
+#: plugins/googlereaderimport/init.js:45
+msgid "Importing, please wait..."
+msgstr "Importuji, čekejte prosím..."
+
+#: js/prefs.js:982
+msgid "Reset to defaults?"
+msgstr "Obnovit výchozí hodnoty?"
+
+#: js/prefs.js:1096
+msgid "Remove category %s? Any nested feeds would be placed into Uncategorized."
+msgstr "Odstranit kategorii %s? Všechny vnořené kanály budou umístěny do kategorie Nezařazeno."
+
+#: js/prefs.js:1102
+msgid "Removing category..."
+msgstr "Odebírám kategorii..."
+
+#: js/prefs.js:1123
+msgid "Remove selected categories?"
+msgstr "Odstranit vybrané kategorie?"
+
+#: js/prefs.js:1126
+msgid "Removing selected categories..."
+msgstr "Odebírám vybrané kategorie..."
+
+#: js/prefs.js:1139
+msgid "No categories are selected."
+msgstr "Nejsou vybrány žádné kategorie."
+
+#: js/prefs.js:1147
+msgid "Category title:"
+msgstr "Název kategorie:"
+
+#: js/prefs.js:1151
+msgid "Creating category..."
+msgstr "Vytvářím kategorii..."
+
+#: js/prefs.js:1178
+msgid "Feeds without recent updates"
+msgstr "Kanály bez nedávných aktualizací"
+
+#: js/prefs.js:1227
+msgid "Replace current OPML publishing address with a new one?"
+msgstr "Nahradit současnou publikační adresu OPML novou?"
+
+#: js/prefs.js:1316
+msgid "Clearing feed..."
+msgstr "Čistím kanál..."
+
+#: js/prefs.js:1336
+msgid "Rescore articles in selected feeds?"
+msgstr "Přehodnotit články ve vybraných kanálech?"
+
+#: js/prefs.js:1339
+msgid "Rescoring selected feeds..."
+msgstr "Přehodnocuji vybrané kanály..."
+
+#: js/prefs.js:1359
+msgid "Rescore all articles? This operation may take a lot of time."
+msgstr "Přehodnotit všechny články? Tato operace může chvíli trvat."
+
+#: js/prefs.js:1362
+msgid "Rescoring feeds..."
+msgstr "Přehodnocuji kanály..."
+
+#: js/prefs.js:1379
+msgid "Reset selected labels to default colors?"
+msgstr "Obnovit výchozí barvy vybraných štítků?"
+
+#: js/prefs.js:1416
+msgid "Settings Profiles"
+msgstr "Profily nastavení"
+
+#: js/prefs.js:1425
+msgid "Remove selected profiles? Active and default profiles will not be removed."
+msgstr "Odstranit vybrané profily? Aktivní a výchozí profil nebude odebrán."
+
+#: js/prefs.js:1428
+msgid "Removing selected profiles..."
+msgstr "Odebírám vybrané profily..."
+
+#: js/prefs.js:1443
+msgid "No profiles are selected."
+msgstr "Nejsou vybrány žádné profily."
+
+#: js/prefs.js:1451
+#: js/prefs.js:1504
+msgid "Activate selected profile?"
+msgstr "Aktivovat vybraný profil?"
+
+#: js/prefs.js:1467
+#: js/prefs.js:1520
+msgid "Please choose a profile to activate."
+msgstr "Vyberte prosím profil k aktivaci."
+
+#: js/prefs.js:1472
+msgid "Creating profile..."
+msgstr "Vytvářím profil..."
+
+#: js/prefs.js:1528
+msgid "This will invalidate all previously generated feed URLs. Continue?"
+msgstr "Zneplatní všechny předchozí generované URL kanálů. Pokračovat?"
+
+#: js/prefs.js:1531
+#: js/prefs.js:1550
+msgid "Clearing URLs..."
+msgstr "Čistím URL..."
+
+#: js/prefs.js:1538
+msgid "Generated URLs cleared."
+msgstr "Generované URL vyčištěny."
+
+#: js/prefs.js:1547
+msgid "This will invalidate all previously shared article URLs. Continue?"
+msgstr "Zneplatní všechny předchozí generované URL sdílených článků. Pokračovat?"
+
+#: js/prefs.js:1557
+msgid "Shared URLs cleared."
+msgstr "Sdílené URL vyčištěny."
+
+#: js/prefs.js:1648
+msgid "Label Editor"
+msgstr "Editor štítků"
+
+#: js/prefs.js:1770
+msgid "Subscribing to feeds..."
+msgstr "Přihlašuji se k odběru kanálů..."
+
+#: js/prefs.js:1807
+msgid "Clear stored data for this plugin?"
+msgstr "Smazat uložená data modulu?"
+
+#: js/prefs.js:1824
+msgid "Clear all messages in the error log?"
+msgstr "Vymazat všechny zprávy ze záznamu chyb?"
+
+#: js/tt-rss.js:127
+msgid "Mark all articles as read?"
+msgstr "Označit všechny články jako přečtené?"
+
+#: js/tt-rss.js:133
+msgid "Marking all feeds as read..."
+msgstr "Označuji všechny kanály jako přečtené..."
+
+#: js/tt-rss.js:381
+msgid "Please enable mail plugin first."
+msgstr "Nejprve si prosím povolte modul odesílání e-mailů."
+
+#: js/tt-rss.js:493
+msgid "Please enable embed_original plugin first."
+msgstr "Nejprve si prosím povolte modul embed_original."
+
+#: js/tt-rss.js:645
+msgid "Select item(s) by tags"
+msgstr "Vybrat položky podle značek"
+
+#: js/tt-rss.js:666
+msgid "You can't unsubscribe from the category."
+msgstr "Nelze zrušit odběr kategorie."
+
+#: js/tt-rss.js:671
+#: js/tt-rss.js:825
+msgid "Please select some feed first."
+msgstr "Nejprve si prosím vyberte kanál."
+
+#: js/tt-rss.js:820
+msgid "You can't rescore this kind of feed."
+msgstr "Tento druh kanálu nemůžete přehodnotit."
+
+#: js/tt-rss.js:830
+msgid "Rescore articles in %s?"
+msgstr "Přehodnotit články v %s?"
+
+#: js/tt-rss.js:833
+msgid "Rescoring articles..."
+msgstr "Přehodnocuji články..."
+
+#: js/tt-rss.js:967
+msgid "New version available!"
+msgstr "Je dostupná nová verze."
+
+#: js/viewfeed.js:100
+msgid "Cancel search"
+msgstr "Zrušit hledání"
+
+#: js/viewfeed.js:449
+msgid "Unstar article"
+msgstr "Odebrat článku hvězdičku"
+
+#: js/viewfeed.js:453
+msgid "Star article"
+msgstr "Přidat článku hvězdičku"
+
+#: js/viewfeed.js:493
+msgid "Unpublish article"
+msgstr "Zrušit publikování článku"
+
+#: js/viewfeed.js:497
+msgid "Publish article"
+msgstr "Publikovat článek"
+
+#: js/viewfeed.js:649
+msgid "%d article selected"
+msgid_plural "%d articles selected"
+msgstr[0] "%d vybraný článek"
+msgstr[1] "%d vybrané články"
+msgstr[2] "%d vybraných článků"
+
+#: js/viewfeed.js:721
+#: js/viewfeed.js:749
+#: js/viewfeed.js:776
+#: js/viewfeed.js:839
+#: js/viewfeed.js:873
+#: js/viewfeed.js:993
+#: js/viewfeed.js:1036
+#: js/viewfeed.js:1089
+#: js/viewfeed.js:2066
+#: plugins/mailto/init.js:7
+#: plugins/mail/mail.js:7
+msgid "No articles are selected."
+msgstr "Nejsou vybrány žádné články."
+
+#: js/viewfeed.js:1001
+msgid "Delete %d selected article in %s?"
+msgid_plural "Delete %d selected articles in %s?"
+msgstr[0] "Smazat %d vybraný článek v %s?"
+msgstr[1] "Smazat %d vybrané články v %s?"
+msgstr[2] "Smazat %d vybraných článků v %s?"
+
+#: js/viewfeed.js:1003
+msgid "Delete %d selected article?"
+msgid_plural "Delete %d selected articles?"
+msgstr[0] "Smazat %d vybraný článek?"
+msgstr[1] "Smazat %d vybrané články?"
+msgstr[2] "Smazat %d vybraných článků?"
+
+#: js/viewfeed.js:1045
+msgid "Archive %d selected article in %s?"
+msgid_plural "Archive %d selected articles in %s?"
+msgstr[0] "Archivovat %d vybraný článek v %s?"
+msgstr[1] "Archivovat %d vybrané články v %s?"
+msgstr[2] "Archivovat %d vybraných článků v %s?"
+
+#: js/viewfeed.js:1048
+msgid "Move %d archived article back?"
+msgid_plural "Move %d archived articles back?"
+msgstr[0] "Přesunout zpět %d archivovaný článek?"
+msgstr[1] "Přesunout zpět %d archivované články?"
+msgstr[2] "Přesunout zpět %d archivovaných článků?"
+
+#: js/viewfeed.js:1050
+msgid "Please note that unstarred articles might get purged on next feed update."
+msgstr "Vezměte na vědomí, že články bez hvězdičky můžou být odstraněny při následující aktualizaci kanálu."
+
+#: js/viewfeed.js:1095
+msgid "Mark %d selected article in %s as read?"
+msgid_plural "Mark %d selected articles in %s as read?"
+msgstr[0] "Označit %d článek v %s jako přečtený?"
+msgstr[1] "Označit %d články v %s jako přečtené?"
+msgstr[2] "Označit %d článků v %s jako přečtené?"
+
+#: js/viewfeed.js:1119
+msgid "Edit article Tags"
+msgstr "Upravit značky článku"
+
+#: js/viewfeed.js:1125
+msgid "Saving article tags..."
+msgstr "Ukládám značky článku..."
+
+#: js/viewfeed.js:1331
+msgid "No article is selected."
+msgstr "Není vybrán žádný článek."
+
+#: js/viewfeed.js:1366
+msgid "No articles found to mark"
+msgstr "Nenalezeny žádné články k označení"
+
+#: js/viewfeed.js:1368
+msgid "Mark %d article as read?"
+msgid_plural "Mark %d articles as read?"
+msgstr[0] "Označit %d článek jako přečtený?"
+msgstr[1] "Označit %d články jako přečtené?"
+msgstr[2] "Označit %d článků jako přečtené?"
+
+#: js/viewfeed.js:1870
+msgid "Open original article"
+msgstr "Otevřít původní článek"
+
+#: js/viewfeed.js:1876
+msgid "Display article URL"
+msgstr "Zobrazit URL článku"
+
+#: js/viewfeed.js:1895
+msgid "Toggle marked"
+msgstr "Přepnout označené"
+
+#: js/viewfeed.js:1976
+msgid "Assign label"
+msgstr "Přiřadit štítek"
+
+#: js/viewfeed.js:1981
+msgid "Remove label"
+msgstr "Odstranit štítek"
+
+#: js/viewfeed.js:2035
+msgid "Please enter new score for selected articles:"
+msgstr "Zadejte prosím nové hodnocení vybraných článků:"
+
+#: js/viewfeed.js:2077
+msgid "Please enter new score for this article:"
+msgstr "Zadejte prosím nové hodnocení článku:"
+
+#: js/viewfeed.js:2110
+msgid "Article URL:"
+msgstr "URL článku:"
+
+#: plugins/embed_original/init.js:6
+msgid "Sorry, your browser does not support sandboxed iframes."
+msgstr "Lituji, váš prohlížeč nepodporuje iframe sandbox."
+
+#: plugins/mailto/init.js:21
+#: plugins/mail/mail.js:21
+msgid "Forward article by email"
+msgstr "Přeposlat článek e-mailem"
+
+#: plugins/import_export/import_export.js:13
+msgid "Export Data"
+msgstr "Exportovat data"
+
+#: plugins/import_export/import_export.js:40
+msgid "Finished, exported %d article. You can download the data <a class='visibleLink' href='%u'>here</a>."
+msgid_plural "Finished, exported %d articles. You can download the data <a class='visibleLink' href='%u'>here</a>."
+msgstr[0] "Dokončeno, exportován %d článek. a class='visibleLink' href='%u'>Zde</a> můžete stáhnout data."
+msgstr[1] "Dokončeno, exportovány %d články. a class='visibleLink' href='%u'>Zde</a> můžete stáhnout data."
+msgstr[2] "Dokončeno, exportováno %d článků. a class='visibleLink' href='%u'>Zde</a> můžete stáhnout data."
+
+#: plugins/import_export/import_export.js:93
+msgid "Data Import"
+msgstr "Import dat"
+
+#: plugins/import_export/import_export.js:112
+msgid "Please choose the file first."
+msgstr "Prosím, nejdříve vyberte soubor."
+
+#: plugins/note/note.js:17
+msgid "Saving article note..."
+msgstr "Ukládám poznámku článku..."
+
+#: plugins/googlereaderimport/init.js:18
+msgid "Google Reader Import"
+msgstr "Import z Google Reader"
+
+#: plugins/googlereaderimport/init.js:42
+msgid "Please choose a file first."
+msgstr "Prosím, nejdříve vyberte soubor."
+
+#: plugins/instances/instances.js:10
+msgid "Link Instance"
+msgstr "Propojit instance"
+
+#: plugins/instances/instances.js:73
+msgid "Edit Instance"
+msgstr "Upravit instanci"
+
+#: plugins/instances/instances.js:122
+msgid "Remove selected instances?"
+msgstr "Odstranit vybrané instance?"
+
+#: plugins/instances/instances.js:125
+msgid "Removing selected instances..."
+msgstr "Odebírám vybrané instance..."
+
+#: plugins/instances/instances.js:139
+#: plugins/instances/instances.js:151
+msgid "No instances are selected."
+msgstr "Není vybrána žádná instance."
+
+#: plugins/instances/instances.js:156
+msgid "Please select only one instance."
+msgstr "Prosím zvolte pouze jednu instanci."
+
+#: plugins/share/share.js:10
+msgid "Share article by URL"
+msgstr "Sdílet článek pomocí URL"
+
+#: plugins/updater/updater.js:58
+msgid "Backup your tt-rss directory before continuing. Please type 'yes' to continue."
+msgstr "Před pokračováním zálohujte svůj adresář tt-rss. Napište prosím 'yes' pro pokračování."
+
+#~ msgid "(Un)hide empty categories"
+#~ msgstr "Zobrazit/Skrýt prázdné kategorie"
+
+#~ msgid "Published articles and generated feeds"
+#~ msgstr "Publikované články a generované kanály"
+
+#~ msgid "Articles shared by URL"
+#~ msgstr "Články sdílené pomocí URL"
+
+#~ msgid "These feeds have not been updated because of errors:"
+#~ msgstr "Kanály, které nebyly aktualizovány kvůli chybám:"
+
+#~ msgid "Your browser doesn't support Javascript, which is required for this application to function properly. Please check your browser settings."
+#~ msgstr "Váš prohlížeč nepodporuje Javascript, který je vyžadován pro správnou funkci aplikace. Zkontrolujte prosím nastavení prohlížeče."
+
+#~ msgid "Hello,"
+#~ msgstr "Ahoj,"
+
+#~ msgid "Regular version"
+#~ msgstr "Normální verze"
+
+#~ msgid "Home"
+#~ msgstr "Domů"
+
+#~ msgid "Nothing found (click to reload feed)."
+#~ msgstr "Nic nenalezeno (klikněte pro obnovení kanálu)."
+
+#~ msgid "Open regular version"
+#~ msgstr "Otevřít normální verzi"
+
+#~ msgid "Enable categories"
+#~ msgstr "Povolit kategorie"
+
+#~ msgid "ON"
+#~ msgstr "Zapnuto"
+
+#~ msgid "OFF"
+#~ msgstr "Vypnuto"
+
+#~ msgid "Browse categories like folders"
+#~ msgstr "Procházet kategorie jako složky"
+
+#~ msgid "Show images in posts"
+#~ msgstr "Zobrazit obrázky v příspěvcích"
+
+#~ msgid "Hide read articles and feeds"
+#~ msgstr "Skrýt přečtené články a kanály"
+
+#~ msgid "Sort feeds by unread count"
+#~ msgstr "Řadit kanály dle počtu nepřečtených článků"
+
+#~ msgid "Article archive"
+#~ msgstr "Archiv článků"
+
+#~ msgid "Example Pane"
+#~ msgstr "Ukázková výplň"
+
+#~ msgid "Sample value"
+#~ msgstr "Ukázková hodnota"
+
+#~ msgid "Set value"
+#~ msgstr "Nastavit hodnotu"
+
+#~ msgid "Mark %d displayed article as read?"
+#~ msgid_plural "Mark %d displayed articles as read?"
+#~ msgstr[0] "Označit %d zobrazený článek jako přečtený?"
+#~ msgstr[1] "Označit %d zobrazené články jako přečtené?"
+#~ msgstr[2] "Označit %d zobrazených článků jako přečtené?"
+
+#~ msgid "Error: unable to load article."
+#~ msgstr "Chyba: nelze načíst článek."
+
+#~ msgid "Click to expand article."
+#~ msgstr "Klikněte pro rozbalení článku."
+
+#~ msgid "%d more..."
+#~ msgid_plural "%d more..."
+#~ msgstr[0] "%d další..."
+#~ msgstr[1] "%d další..."
+#~ msgstr[2] "%d dalších..."
+
+#~ msgid "No unread feeds."
+#~ msgstr "Žádné nepřečtené kanály."
+
+#~ msgid "Load more..."
+#~ msgstr "Načíst další..."
+
+#~ msgid "Switch to digest..."
+#~ msgstr "Přepnout na souhrn..."
+
+#~ msgid "Show tag cloud..."
+#~ msgstr "Zobrazit seznam značek..."
+
+#~ msgid "Click to play"
+#~ msgstr "Klikněte pro přehrání"
+
+#~ msgid "Play"
+#~ msgstr "Přehrát"
+
+#~ msgid "Visit the website"
+#~ msgstr "Navštívit webové stránky"
+
+#~ msgid "Select theme"
+#~ msgstr "Zvolit motiv"
+
+#~ msgid "I have scanned the code and would like to enable OTP"
+#~ msgstr "Načetl jsem kód do aplikace a chtěl bych povolit OTP"
+
+#~ msgid "close"
+#~ msgstr "zavřít"
+
+#~ msgid "Playing..."
+#~ msgstr "Přehrává se..."
+
+#~ msgid "Could not upload file. You might need to adjust upload_max_filesize in PHP.ini (current value = %s)"
+#~ msgstr "Nelze odeslat soubor. Možná musíte upravit hodnotu upload_max_filesize v php.ini (současná hodnota: %s)"
+
+#~ msgid "Default interval between feed updates"
+#~ msgstr "Výchozí interval mezi aktualizacemi kanálů"
+
+#~ msgid "Could not update database"
+#~ msgstr "Nelze aktualizovat databázi"
+
+#~ msgid "Could not find necessary schema file, need version:"
+#~ msgstr "Nelze nalézt potřebný soubor schématu, požadovaná verze:"
+
+#~ msgid ", found: "
+#~ msgstr ", nalezeno: "
+
+#~ msgid "Tiny Tiny RSS database is up to date."
+#~ msgstr "Databáze Tiny Tiny RSS je aktuální."
+
+#~ msgid "Please backup your database before proceeding."
+#~ msgstr "Před pokračováním prosím zazálohujte databázi."
+
+#~ msgid "Your Tiny Tiny RSS database needs update to the latest version (<b>%d</b> to <b>%d</b>)."
+#~ msgstr "Vaše databáze Tiny Tiny RSS potřebuje aktualizaci na poslední verzi (<b>%d</b> na <b>%d</b>)."
+
+#~ msgid "Performing updates..."
+#~ msgstr "Provádím aktualizace..."
+
+#~ msgid "Updating to version %d..."
+#~ msgstr "Aktualizuji na verzi %d..."
+
+#~ msgid "Checking version... "
+#~ msgstr "Kontroluji verzi... "
+
+#~ msgid "OK!"
+#~ msgstr "OK"
+
+#~ msgid "ERROR!"
+#~ msgstr "CHYBA"
+
+#~ msgid "Finished. Performed <b>%d</b> update up to schema version <b>%d</b>."
+#~ msgid_plural "Finished. Performed <b>%d</b> updates up to schema version <b>%d</b>."
+#~ msgstr[0] "Dokončeno. Provedena <b>%d</b> aktualizace na schéma verze <b>%d</b>."
+#~ msgstr[1] "Dokončeno. Provedeny <b>%d</b> aktualizace na schéma verze <b>%d</b>."
+#~ msgstr[2] "Dokončeno. Provedeno <b>%d</b> aktualizací na schéma verze <b>%d</b>."
+
+#~ msgid "Your database schema is from a newer version of Tiny Tiny RSS."
+#~ msgstr "Schéma vaší databáze je z novější verze Tiny Tiny RSS."
+
+#~ msgid "Found schema version: <b>%d</b>, required: <b>%d</b>."
+#~ msgstr "Nalezeno schéma verze: <b>%d</b>, vyžadováno: <b>%d</b>."
+
+#~ msgid "Schema upgrade impossible. Please update Tiny Tiny RSS files to the newer version and continue."
+#~ msgstr "Aktualizace schématu není možná. Aktualizujte Tiny Tiny RSS na novější verzi a pokračujte."
+
+#~ msgid "Mark feed as read"
+#~ msgstr "Označit kanál jako přečtený"
+
+#~ msgid "Title or Content"
+#~ msgstr "Nadpis nebo obsah"
+
+#~ msgid "Link"
+#~ msgstr "Odkaz"
+
+#~ msgid "Content"
+#~ msgstr "Obsah"
+
+#~ msgid "Article Date"
+#~ msgstr "Datum článku"
+
+#~ msgid "Delete article"
+#~ msgstr "Smazat článek"
+
+#~ msgid "Set starred"
+#~ msgstr "Nastavit hvězdičku"
+
+#~ msgid "Assign tags"
+#~ msgstr "Přiřadit značky"
+
+#~ msgid "Modify score"
+#~ msgstr "Upravit hodnocení"
+
+#~ msgid "This option is useful when you are reading several planet-type aggregators with partially colliding userbase. When disabled, it forces same posts from different feeds to appear only once."
+#~ msgstr "Volba užitečná pro sledování několika agregátorů s částečně prolínající databází uživatelů. Pokud je vypnuta, sloučí stejné příspěvky z různých zdrojů a zobrazí je jako jeden."
+
+#~ msgid "When this option is enabled, headlines in Special feeds and Labels are grouped by feeds"
+#~ msgstr "Pokud povoleno, tak budou nadpisy ve Speciálních kanálech a Štítky seskupeny dle kanálů"
+
+#~ msgid "Enable external API"
+#~ msgstr "Povolit externí API"
+
+#~ msgid "Date syntax appears to be correct:"
+#~ msgstr "Formát data vypadá v pořádku:"
+
+#~ msgid "Date syntax is incorrect."
+#~ msgstr "Formát data je neplatný."
diff --git a/locale/fi_FI/LC_MESSAGES/messages.mo b/locale/fi_FI/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..cbc261d5a
--- /dev/null
+++ b/locale/fi_FI/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/fi_FI/LC_MESSAGES/messages.po b/locale/fi_FI/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..a0ce307a1
--- /dev/null
+++ b/locale/fi_FI/LC_MESSAGES/messages.po
@@ -0,0 +1,3601 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tt-rss 1.7.6\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-05-14 09:35+0400\n"
+"PO-Revision-Date: 2013-04-20 10:44+0200\n"
+"Last-Translator: Arto Tolonen <[email protected]>\n"
+"Language-Team: \n"
+"Language: fi_FI\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: backend.php:73
+msgid "Use default"
+msgstr "Oletus"
+
+#: backend.php:74
+msgid "Never purge"
+msgstr "Älä poista koskaan"
+
+#: backend.php:75
+msgid "1 week old"
+msgstr "Viikkoa vanhemmat"
+
+#: backend.php:76
+msgid "2 weeks old"
+msgstr "2 viikkoa vanhemmat"
+
+#: backend.php:77
+msgid "1 month old"
+msgstr "Kuukautta vanhemmat"
+
+#: backend.php:78
+msgid "2 months old"
+msgstr "2 kuukautta vanhemmat"
+
+#: backend.php:79
+msgid "3 months old"
+msgstr "3 kuukautta vanhemmat"
+
+#: backend.php:82
+msgid "Default interval"
+msgstr "Oletusaikaväli"
+
+#: backend.php:83
+#: backend.php:93
+msgid "Disable updates"
+msgstr "Ei päivitystä"
+
+#: backend.php:84
+#: backend.php:94
+msgid "Each 15 minutes"
+msgstr "15 minuutin välein"
+
+#: backend.php:85
+#: backend.php:95
+msgid "Each 30 minutes"
+msgstr "30 minuutin välein"
+
+#: backend.php:86
+#: backend.php:96
+msgid "Hourly"
+msgstr "Kerran tunnissa"
+
+#: backend.php:87
+#: backend.php:97
+msgid "Each 4 hours"
+msgstr "4 tunnin välein"
+
+#: backend.php:88
+#: backend.php:98
+msgid "Each 12 hours"
+msgstr "12 tunnin välein"
+
+#: backend.php:89
+#: backend.php:99
+msgid "Daily"
+msgstr "Päivittäin"
+
+#: backend.php:90
+#: backend.php:100
+msgid "Weekly"
+msgstr "Viikoittain"
+
+#: backend.php:103
+#: classes/pref/users.php:119
+#: classes/pref/system.php:51
+msgid "User"
+msgstr "Käyttäjä"
+
+#: backend.php:104
+msgid "Power User"
+msgstr "Edistynyt käyttäjä"
+
+#: backend.php:105
+msgid "Administrator"
+msgstr "Ylläpitäjä"
+
+#: errors.php:9
+msgid "This program requires XmlHttpRequest to function properly. Your browser doesn't seem to support it."
+msgstr "Tämä sovellus edellyttää XmlHttpRequest-toimintoa. Selaimesi ei vaikuta tukevan sitä."
+
+#: errors.php:12
+msgid "This program requires cookies to function properly. Your browser doesn't seem to support them."
+msgstr "Tämä sovellus edellyttää evästeiden toimivan oikein. Selaimesi ei vaikuta tukevan evästeitä."
+
+#: errors.php:15
+msgid "Backend sanity check failed."
+msgstr ""
+
+#: errors.php:17
+msgid "Frontend sanity check failed."
+msgstr ""
+
+#: errors.php:19
+msgid "Incorrect database schema version. &lt;a href='db-updater.php'&gt;Please update&lt;/a&gt;."
+msgstr ""
+
+#: errors.php:21
+msgid "Request not authorized."
+msgstr ""
+
+#: errors.php:23
+msgid "No operation to perform."
+msgstr ""
+
+#: errors.php:25
+msgid "Could not display feed: query failed. Please check label match syntax or local configuration."
+msgstr ""
+
+#: errors.php:27
+msgid "Denied. Your access level is insufficient to access this page."
+msgstr "Käyttäjäoikeutesi eivät riitä tämän sivun näyttämiseen."
+
+#: errors.php:29
+msgid "Configuration check failed"
+msgstr ""
+
+#: errors.php:31
+msgid "Your version of MySQL is not currently supported. Please see official site for more information."
+msgstr ""
+
+#: errors.php:35
+msgid "SQL escaping test failed, check your database and PHP configuration"
+msgstr ""
+
+#: index.php:128
+#: index.php:145
+#: index.php:265
+#: prefs.php:98
+#: classes/backend.php:5
+#: classes/pref/labels.php:296
+#: classes/pref/filters.php:678
+#: classes/pref/feeds.php:1372
+#: js/feedlist.js:128
+#: js/feedlist.js:441
+#: js/functions.js:446
+#: js/functions.js:784
+#: js/functions.js:1194
+#: js/functions.js:1330
+#: js/functions.js:1642
+#: js/prefs.js:86
+#: js/prefs.js:576
+#: js/prefs.js:666
+#: js/prefs.js:867
+#: js/prefs.js:1454
+#: js/prefs.js:1507
+#: js/prefs.js:1566
+#: js/prefs.js:1583
+#: js/prefs.js:1599
+#: js/prefs.js:1619
+#: js/prefs.js:1792
+#: js/prefs.js:1808
+#: js/prefs.js:1826
+#: js/tt-rss.js:507
+#: js/tt-rss.js:524
+#: js/viewfeed.js:816
+#: js/viewfeed.js:1245
+#: plugins/import_export/import_export.js:17
+#: plugins/updater/updater.js:17
+msgid "Loading, please wait..."
+msgstr "Ladataan, odota..."
+
+#: index.php:159
+msgid "Collapse feedlist"
+msgstr "Sulje syöteluettelo"
+
+#: index.php:162
+msgid "Show articles"
+msgstr "Näytä artikkelit"
+
+#: index.php:165
+msgid "Adaptive"
+msgstr "Mukautuva"
+
+#: index.php:166
+msgid "All Articles"
+msgstr "Kaikki artikkelit"
+
+#: index.php:167
+#: include/functions.php:2008
+#: classes/feeds.php:98
+msgid "Starred"
+msgstr "Tähdelliset"
+
+#: index.php:168
+#: include/functions.php:2009
+#: classes/feeds.php:99
+msgid "Published"
+msgstr "Julkiset"
+
+#: index.php:169
+#: classes/feeds.php:85
+#: classes/feeds.php:97
+msgid "Unread"
+msgstr "Lukemattomat"
+
+#: index.php:170
+msgid "Unread First"
+msgstr "Lukemattomat ensin"
+
+#: index.php:171
+msgid "With Note"
+msgstr "Huomattavat"
+
+#: index.php:172
+msgid "Ignore Scoring"
+msgstr "Ohita pisteytys"
+
+#: index.php:175
+msgid "Sort articles"
+msgstr "Järjestä artikkelit"
+
+#: index.php:178
+msgid "Default"
+msgstr "Oletus"
+
+#: index.php:179
+msgid "Newest first"
+msgstr "Uusin ensin"
+
+#: index.php:180
+msgid "Oldest first"
+msgstr "Vanhin ensin"
+
+#: index.php:181
+msgid "Title"
+msgstr "Otsikko"
+
+#: index.php:185
+#: index.php:233
+#: include/functions.php:1998
+#: classes/feeds.php:103
+#: classes/feeds.php:424
+#: js/FeedTree.js:128
+#: js/FeedTree.js:156
+msgid "Mark as read"
+msgstr "Merkitse luetuiksi"
+
+#: index.php:188
+msgid "Older than one day"
+msgstr "1 pv vanhemmat"
+
+#: index.php:191
+msgid "Older than one week"
+msgstr "1 vko vanhemmat"
+
+#: index.php:194
+msgid "Older than two weeks"
+msgstr "2 vko vanhemmat"
+
+#: index.php:210
+msgid "Communication problem with server."
+msgstr "Palvelimeen ei saada yhteyttä"
+
+#: index.php:218
+msgid "New version of Tiny Tiny RSS is available!"
+msgstr "Uusi versio Tiny Tiny RSS:stä saatavilla!"
+
+#: index.php:223
+msgid "Actions..."
+msgstr "Toiminnot..."
+
+#: index.php:225
+msgid "Preferences..."
+msgstr "Asetukset"
+
+#: index.php:226
+msgid "Search..."
+msgstr "Etsi..."
+
+#: index.php:227
+msgid "Feed actions:"
+msgstr "Syötetoiminnot:"
+
+#: index.php:228
+#: classes/handler/public.php:562
+msgid "Subscribe to feed..."
+msgstr "Tilaa syöte..."
+
+#: index.php:229
+msgid "Edit this feed..."
+msgstr "Muokkaa tätä syötettä..."
+
+#: index.php:230
+msgid "Rescore feed"
+msgstr "Uudelleenpisteytä syöte"
+
+#: index.php:231
+#: classes/pref/feeds.php:746
+#: classes/pref/feeds.php:1327
+#: js/PrefFeedTree.js:73
+msgid "Unsubscribe"
+msgstr "Peru tilaus"
+
+#: index.php:232
+msgid "All feeds:"
+msgstr "Kaikki syötteet:"
+
+#: index.php:234
+msgid "(Un)hide read feeds"
+msgstr "Piilota/näytä luetut syötteet"
+
+#: index.php:235
+msgid "Other actions:"
+msgstr "Muut toiminnot:"
+
+#: index.php:236
+#: include/functions.php:1984
+msgid "Toggle widescreen mode"
+msgstr "Vaihda näkymä"
+
+#: index.php:237
+msgid "Select by tags..."
+msgstr "Valitse avainsanoilla"
+
+#: index.php:238
+msgid "Create label..."
+msgstr "Luo tunniste..."
+
+#: index.php:239
+msgid "Create filter..."
+msgstr "Luo suodatin..."
+
+#: index.php:240
+msgid "Keyboard shortcuts help"
+msgstr "Näytä pikanäppäimet"
+
+#: index.php:249
+msgid "Logout"
+msgstr "Kirjaudu ulos"
+
+#: prefs.php:33
+#: prefs.php:116
+#: include/functions.php:2011
+#: classes/pref/prefs.php:440
+msgid "Preferences"
+msgstr "Asetukset"
+
+#: prefs.php:107
+msgid "Keyboard shortcuts"
+msgstr "Pikanäppäimet"
+
+#: prefs.php:108
+msgid "Exit preferences"
+msgstr "Poistu asetuksista"
+
+#: prefs.php:119
+#: classes/pref/feeds.php:106
+#: classes/pref/feeds.php:1253
+#: classes/pref/feeds.php:1316
+msgid "Feeds"
+msgstr "Syötteet"
+
+#: prefs.php:122
+#: classes/pref/filters.php:154
+msgid "Filters"
+msgstr "Suodattimet"
+
+#: prefs.php:125
+#: include/functions.php:1176
+#: include/functions.php:1832
+#: classes/pref/labels.php:90
+msgid "Labels"
+msgstr "Tunnisteet"
+
+#: prefs.php:129
+msgid "Users"
+msgstr "Käyttäjät"
+
+#: prefs.php:132
+#, fuzzy
+msgid "System"
+msgstr "Järjestelmän lisäosat"
+
+#: register.php:184
+#: include/login_form.php:238
+msgid "Create new account"
+msgstr "Luo uusi käyttäjätili"
+
+#: register.php:190
+msgid "New user registrations are administratively disabled."
+msgstr ""
+
+#: register.php:194
+#: register.php:239
+#: register.php:252
+#: register.php:267
+#: register.php:286
+#: register.php:334
+#: register.php:344
+#: register.php:356
+#: classes/handler/public.php:632
+#: classes/handler/public.php:723
+#: classes/handler/public.php:805
+#: classes/handler/public.php:880
+#: classes/handler/public.php:894
+#: classes/handler/public.php:901
+#: classes/handler/public.php:926
+msgid "Return to Tiny Tiny RSS"
+msgstr "Takaisin Tiny Tiny RSS:ään"
+
+#: register.php:215
+msgid "Your temporary password will be sent to the specified email. Accounts, which were not logged in once, are erased automatically 24 hours after temporary password is sent."
+msgstr ""
+
+#: register.php:221
+msgid "Desired login:"
+msgstr ""
+
+#: register.php:224
+msgid "Check availability"
+msgstr ""
+
+#: register.php:226
+#: classes/handler/public.php:763
+msgid "Email:"
+msgstr "Sähköposti:"
+
+#: register.php:229
+#: classes/handler/public.php:768
+msgid "How much is two plus two:"
+msgstr "Paljonko on kaksi plus kaksi:"
+
+#: register.php:232
+msgid "Submit registration"
+msgstr ""
+
+#: register.php:250
+msgid "Your registration information is incomplete."
+msgstr ""
+
+#: register.php:265
+msgid "Sorry, this username is already taken."
+msgstr ""
+
+#: register.php:284
+msgid "Registration failed."
+msgstr ""
+
+#: register.php:331
+msgid "Account created successfully."
+msgstr ""
+
+#: register.php:353
+msgid "New user registrations are currently closed."
+msgstr ""
+
+#: update.php:55
+msgid "Tiny Tiny RSS data update script."
+msgstr ""
+
+#: include/digest.php:109
+#: include/functions.php:1185
+#: include/functions.php:1733
+#: include/functions.php:1818
+#: include/functions.php:1840
+#: classes/opml.php:416
+#: classes/pref/feeds.php:218
+msgid "Uncategorized"
+msgstr ""
+
+#: include/feedbrowser.php:83
+#, php-format
+msgid "%d archived article"
+msgid_plural "%d archived articles"
+msgstr[0] ""
+msgstr[1] ""
+
+#: include/feedbrowser.php:107
+msgid "No feeds found."
+msgstr "Syötteitä ei löytynyt."
+
+#: include/functions.php:1174
+#: include/functions.php:1830
+msgid "Special"
+msgstr "Erikoiset"
+
+#: include/functions.php:1681
+#: classes/feeds.php:1097
+#: classes/pref/filters.php:425
+msgid "All feeds"
+msgstr "Kaikki syötteet"
+
+#: include/functions.php:1885
+msgid "Starred articles"
+msgstr "Tähdelliset artikkelit"
+
+#: include/functions.php:1887
+msgid "Published articles"
+msgstr "Julkiset artikkelit"
+
+#: include/functions.php:1889
+msgid "Fresh articles"
+msgstr "Tuoreet artikkelit"
+
+#: include/functions.php:1891
+#: include/functions.php:2006
+msgid "All articles"
+msgstr "Kaikki artikkelit"
+
+#: include/functions.php:1893
+msgid "Archived articles"
+msgstr "Arkistoidut artikkelit"
+
+#: include/functions.php:1895
+msgid "Recently read"
+msgstr "Viimeksi luetut"
+
+#: include/functions.php:1958
+msgid "Navigation"
+msgstr "Valikko"
+
+#: include/functions.php:1959
+msgid "Open next feed"
+msgstr "Avaa seuraava syöte"
+
+#: include/functions.php:1960
+msgid "Open previous feed"
+msgstr "Avaa edellinen syöte"
+
+#: include/functions.php:1961
+msgid "Open next article"
+msgstr "Avaa seuraava artikkeli"
+
+#: include/functions.php:1962
+msgid "Open previous article"
+msgstr "Avaa edellinen artikkeli"
+
+#: include/functions.php:1963
+msgid "Open next article (don't scroll long articles)"
+msgstr "Avaa seuraava artikkeli (älä vieritä pitkiä artikkeleita)"
+
+#: include/functions.php:1964
+msgid "Open previous article (don't scroll long articles)"
+msgstr "Avaa edellinen artikkeli (älä vieritä pitkiä artikkeleita)"
+
+#: include/functions.php:1965
+msgid "Move to next article (don't expand or mark read)"
+msgstr "Siirry seuraavaan artikkeliin (älä laajenna tai merkitse luetuksi)"
+
+#: include/functions.php:1966
+msgid "Move to previous article (don't expand or mark read)"
+msgstr "Siirry edelliseen artikkeliin (älä laajenna tai merkitse luetuksi)"
+
+#: include/functions.php:1967
+msgid "Show search dialog"
+msgstr "Etsi..."
+
+#: include/functions.php:1968
+msgid "Article"
+msgstr "Artikkeli"
+
+#: include/functions.php:1969
+msgid "Toggle starred"
+msgstr "Lisää/Poista tähti"
+
+#: include/functions.php:1970
+#: js/viewfeed.js:1906
+msgid "Toggle published"
+msgstr "Vaihda julkinen-tilaa"
+
+#: include/functions.php:1971
+#: js/viewfeed.js:1884
+msgid "Toggle unread"
+msgstr "Vaihda luettu/lukematon"
+
+#: include/functions.php:1972
+msgid "Edit tags"
+msgstr "Muokkaa avainsanoja"
+
+#: include/functions.php:1973
+msgid "Dismiss selected"
+msgstr "Piilota valittu"
+
+#: include/functions.php:1974
+msgid "Dismiss read"
+msgstr "Piilota luettu"
+
+#: include/functions.php:1975
+msgid "Open in new window"
+msgstr "Avaa uudessa ikkunassa"
+
+#: include/functions.php:1976
+#: js/viewfeed.js:1925
+msgid "Mark below as read"
+msgstr "Merkitse alla olevat luetuiksi"
+
+#: include/functions.php:1977
+#: js/viewfeed.js:1919
+msgid "Mark above as read"
+msgstr "Merkitse yllä olevat luetuiksi"
+
+#: include/functions.php:1978
+msgid "Scroll down"
+msgstr "Vieritä alas"
+
+#: include/functions.php:1979
+msgid "Scroll up"
+msgstr "Vieritä ylös"
+
+#: include/functions.php:1980
+msgid "Select article under cursor"
+msgstr "Valitse osoittimen kohdalla oleva artikkeli"
+
+#: include/functions.php:1981
+msgid "Email article"
+msgstr "Lähetä artikkeli sähköpostilla"
+
+#: include/functions.php:1982
+msgid "Close/collapse article"
+msgstr "Piilota/näytä artikkeli"
+
+#: include/functions.php:1983
+#, fuzzy
+msgid "Toggle article expansion (combined mode)"
+msgstr "Vaihda automaattilaajennuksen tila (yhdistelmänäkymässä)"
+
+#: include/functions.php:1985
+#: plugins/embed_original/init.php:31
+msgid "Toggle embed original"
+msgstr "Vaihda alkuperäinen liitetty"
+
+#: include/functions.php:1986
+msgid "Article selection"
+msgstr "Artikkelin valinta"
+
+#: include/functions.php:1987
+msgid "Select all articles"
+msgstr "Valitse kaikki artikkelit"
+
+#: include/functions.php:1988
+msgid "Select unread"
+msgstr "Valitse lukemattomat"
+
+#: include/functions.php:1989
+msgid "Select starred"
+msgstr "Valitse tähdellä merkityt"
+
+#: include/functions.php:1990
+msgid "Select published"
+msgstr "Valitse julkaistu"
+
+#: include/functions.php:1991
+msgid "Invert selection"
+msgstr "Vaihda valittujen tila"
+
+#: include/functions.php:1992
+msgid "Deselect everything"
+msgstr "Poista valinnat"
+
+#: include/functions.php:1993
+#: classes/pref/feeds.php:540
+#: classes/pref/feeds.php:783
+msgid "Feed"
+msgstr "Syöte"
+
+#: include/functions.php:1994
+msgid "Refresh current feed"
+msgstr "Päivitä tämänhetkinen syöte"
+
+#: include/functions.php:1995
+msgid "Un/hide read feeds"
+msgstr "Piilota/näytä luetut syötteet"
+
+#: include/functions.php:1996
+#: classes/pref/feeds.php:1319
+msgid "Subscribe to feed"
+msgstr "Tilaa syöte"
+
+#: include/functions.php:1997
+#: js/FeedTree.js:135
+#: js/PrefFeedTree.js:67
+msgid "Edit feed"
+msgstr "Muokkaa syötettä"
+
+#: include/functions.php:1999
+msgid "Reverse headlines"
+msgstr "Otsikot käänteisjärjestyksessä"
+
+#: include/functions.php:2000
+msgid "Debug feed update"
+msgstr "Syötepäivityksen vianetsintä"
+
+#: include/functions.php:2001
+#: js/FeedTree.js:178
+msgid "Mark all feeds as read"
+msgstr "Merkitse kaikki syötteet luetuiksi"
+
+#: include/functions.php:2002
+msgid "Un/collapse current category"
+msgstr "Piilota/näytä tämänhetkinen kansio"
+
+#: include/functions.php:2003
+msgid "Toggle combined mode"
+msgstr "Vaihda yhdistelmänäkymän tila"
+
+#: include/functions.php:2004
+msgid "Toggle auto expand in combined mode"
+msgstr "Vaihda automaattilaajennuksen tila yhdistelmänäkymässä"
+
+#: include/functions.php:2005
+msgid "Go to"
+msgstr "Mene"
+
+#: include/functions.php:2007
+msgid "Fresh"
+msgstr "Päivitä"
+
+#: include/functions.php:2010
+#: js/tt-rss.js:457
+#: js/tt-rss.js:642
+msgid "Tag cloud"
+msgstr "Avainsanapilvi"
+
+#: include/functions.php:2012
+msgid "Other"
+msgstr "Muu"
+
+#: include/functions.php:2013
+#: classes/pref/labels.php:281
+msgid "Create label"
+msgstr "Luo tunniste"
+
+#: include/functions.php:2014
+#: classes/pref/filters.php:652
+msgid "Create filter"
+msgstr "Luo suodatin"
+
+#: include/functions.php:2015
+msgid "Un/collapse sidebar"
+msgstr "Piilota/näytä sivupalkki"
+
+#: include/functions.php:2016
+msgid "Show help dialog"
+msgstr "Näytä ohjeikkuna"
+
+#: include/functions.php:2537
+#, php-format
+msgid "Search results: %s"
+msgstr "Hakutulokset: %s"
+
+#: include/functions.php:3132
+msgid " - "
+msgstr " - "
+
+#: include/functions.php:3154
+#: include/functions.php:3395
+#: classes/article.php:281
+msgid "no tags"
+msgstr "ei avainsanoja"
+
+#: include/functions.php:3164
+#: classes/feeds.php:676
+msgid "Edit tags for this article"
+msgstr "Muokkaa tämän artikkelin avainsanoja"
+
+#: include/functions.php:3196
+#: classes/feeds.php:628
+msgid "Originally from:"
+msgstr ""
+
+#: include/functions.php:3209
+#: classes/feeds.php:641
+#: classes/pref/feeds.php:559
+msgid "Feed URL"
+msgstr "Syötteen osoite"
+
+#: include/functions.php:3241
+#: classes/dlg.php:37
+#: classes/dlg.php:60
+#: classes/dlg.php:93
+#: classes/dlg.php:159
+#: classes/dlg.php:190
+#: classes/dlg.php:217
+#: classes/dlg.php:250
+#: classes/dlg.php:262
+#: classes/backend.php:105
+#: classes/pref/users.php:95
+#: classes/pref/filters.php:145
+#: classes/pref/prefs.php:1096
+#: classes/pref/feeds.php:1626
+#: classes/pref/feeds.php:1694
+#: plugins/import_export/init.php:407
+#: plugins/import_export/init.php:452
+#: plugins/googlereaderimport/init.php:193
+#: plugins/share/init.php:65
+#: plugins/updater/init.php:368
+msgid "Close this window"
+msgstr "Sulje"
+
+#: include/functions.php:3432
+msgid "(edit note)"
+msgstr ""
+
+#: include/functions.php:3667
+msgid "unknown type"
+msgstr "tuntematon tyyppi"
+
+#: include/functions.php:3723
+msgid "Attachments"
+msgstr "Litteet"
+
+#: include/functions.php:4222
+#, php-format
+msgid "LibXML error %s at line %d (column %d): %s"
+msgstr ""
+
+#: include/login_form.php:183
+#: classes/handler/public.php:475
+#: classes/handler/public.php:758
+msgid "Login:"
+msgstr "Käyttäjätunnus:"
+
+#: include/login_form.php:194
+#: classes/handler/public.php:478
+msgid "Password:"
+msgstr "Salasana:"
+
+#: include/login_form.php:199
+msgid "I forgot my password"
+msgstr "Unohdin salasanani"
+
+#: include/login_form.php:205
+msgid "Profile:"
+msgstr "Profiili:"
+
+#: include/login_form.php:209
+#: classes/handler/public.php:233
+#: classes/rpc.php:63
+#: classes/pref/prefs.php:1034
+msgid "Default profile"
+msgstr "Oletusprofiili"
+
+#: include/login_form.php:217
+msgid "Use less traffic"
+msgstr "Käytä vähemmän dataliikennettä"
+
+#: include/login_form.php:221
+msgid "Does not display images in articles, reduces automatic refreshes."
+msgstr ""
+
+#: include/login_form.php:229
+msgid "Remember me"
+msgstr "Muista kirjautumiseni"
+
+#: include/login_form.php:235
+#: classes/handler/public.php:483
+msgid "Log in"
+msgstr "Kirjaudu sisään"
+
+#: include/sessions.php:61
+msgid "Session failed to validate (incorrect IP)"
+msgstr ""
+
+#: classes/article.php:25
+msgid "Article not found."
+msgstr "Artikkelia ei löytynyt"
+
+#: classes/article.php:179
+msgid "Tags for this article (separated by commas):"
+msgstr "Tämän syötteen avainsanat (pilkulla erotettuina)"
+
+#: classes/article.php:204
+#: classes/pref/users.php:172
+#: classes/pref/labels.php:79
+#: classes/pref/filters.php:403
+#: classes/pref/prefs.php:980
+#: classes/pref/feeds.php:762
+#: classes/pref/feeds.php:910
+#: plugins/nsfw/init.php:83
+#: plugins/note/init.php:51
+#: plugins/instances/init.php:245
+msgid "Save"
+msgstr "Tallenna"
+
+#: classes/article.php:206
+#: classes/handler/public.php:452
+#: classes/handler/public.php:486
+#: classes/feeds.php:1024
+#: classes/feeds.php:1076
+#: classes/feeds.php:1136
+#: classes/pref/users.php:174
+#: classes/pref/labels.php:81
+#: classes/pref/filters.php:406
+#: classes/pref/filters.php:801
+#: classes/pref/filters.php:877
+#: classes/pref/filters.php:944
+#: classes/pref/prefs.php:982
+#: classes/pref/feeds.php:763
+#: classes/pref/feeds.php:913
+#: classes/pref/feeds.php:1834
+#: plugins/mail/init.php:124
+#: plugins/note/init.php:53
+#: plugins/instances/init.php:248
+#: plugins/instances/init.php:436
+msgid "Cancel"
+msgstr "Peru"
+
+#: classes/handler/public.php:416
+#: plugins/bookmarklets/init.php:40
+msgid "Share with Tiny Tiny RSS"
+msgstr "Jaa Tiny Tiny RSS:llä"
+
+#: classes/handler/public.php:424
+msgid "Title:"
+msgstr "Otsikko:"
+
+#: classes/handler/public.php:426
+#: classes/pref/feeds.php:557
+#: classes/pref/feeds.php:798
+#: plugins/instances/init.php:212
+#: plugins/instances/init.php:401
+msgid "URL:"
+msgstr "URL:"
+
+#: classes/handler/public.php:428
+msgid "Content:"
+msgstr "Sisältö:"
+
+#: classes/handler/public.php:430
+msgid "Labels:"
+msgstr "Tunnisteet"
+
+#: classes/handler/public.php:449
+msgid "Shared article will appear in the Published feed."
+msgstr "Jaetut artikkelit näkyvät 'Julkisissa syötteissä'."
+
+#: classes/handler/public.php:451
+msgid "Share"
+msgstr "Jaa"
+
+#: classes/handler/public.php:473
+msgid "Not logged in"
+msgstr "Et ole kirjautunut"
+
+#: classes/handler/public.php:532
+msgid "Incorrect username or password"
+msgstr "Väärä käyttäjätunnus tai salasana"
+
+#: classes/handler/public.php:568
+#: classes/handler/public.php:666
+#, php-format
+msgid "Already subscribed to <b>%s</b>."
+msgstr "Olet jo tilannut syötteen <b>%s</b>."
+
+#: classes/handler/public.php:571
+#: classes/handler/public.php:657
+#, php-format
+msgid "Subscribed to <b>%s</b>."
+msgstr "Tilattu syöte <b>%s</b>."
+
+#: classes/handler/public.php:574
+#: classes/handler/public.php:660
+#, php-format
+msgid "Could not subscribe to <b>%s</b>."
+msgstr "Tätä syötettä ei voitu tilata <b>%s</b>."
+
+#: classes/handler/public.php:577
+#: classes/handler/public.php:663
+#, php-format
+msgid "No feeds found in <b>%s</b>."
+msgstr "<b>%s</b> ei sisällä syötteitä."
+
+#: classes/handler/public.php:580
+#: classes/handler/public.php:669
+msgid "Multiple feed URLs found."
+msgstr "Useita syöteosoitteita löytyi."
+
+#: classes/handler/public.php:584
+#: classes/handler/public.php:676
+#, php-format
+msgid "Could not subscribe to <b>%s</b>.<br>Can't download the Feed URL."
+msgstr "Syötettä <b>%s</b> ei voitu tilata.<br>Osoitetta ei voi ladata."
+
+#: classes/handler/public.php:602
+#: classes/handler/public.php:694
+msgid "Subscribe to selected feed"
+msgstr "Tilaa valittu syöte"
+
+#: classes/handler/public.php:627
+#: classes/handler/public.php:718
+msgid "Edit subscription options"
+msgstr "Muokkaa syötteen asetuksia"
+
+#: classes/handler/public.php:745
+msgid "Password recovery"
+msgstr "Salasanan palautus"
+
+#: classes/handler/public.php:751
+msgid "You will need to provide valid account name and email. New password will be sent on your email address."
+msgstr "Syötä tilisi sähköpostiosoite. Uusi salasana lähetetään sinulle sähköpostilla."
+
+#: classes/handler/public.php:773
+#: classes/pref/users.php:356
+msgid "Reset password"
+msgstr "Palauta salasana"
+
+#: classes/handler/public.php:783
+msgid "Some of the required form parameters are missing or incorrect."
+msgstr "Jotkin vaadituista parametreistä puuttuvat tai ovat väärin."
+
+#: classes/handler/public.php:787
+#: classes/handler/public.php:813
+msgid "Go back"
+msgstr "Takaisin"
+
+#: classes/handler/public.php:809
+msgid "Sorry, login and email combination not found."
+msgstr "Tätä käyttäjätunnus-sähköposti -yhdistelmää ei valitettavasti löydy."
+
+# Better this way...
+#: classes/handler/public.php:829
+msgid "Your access level is insufficient to run this script."
+msgstr "Käyttäjäoikeutesi eivät riitä päivitysscriptin suorittamiseen."
+
+#: classes/handler/public.php:853
+msgid "Database Updater"
+msgstr ""
+
+#: classes/handler/public.php:918
+msgid "Perform updates"
+msgstr ""
+
+#: classes/dlg.php:16
+msgid "If you have imported labels and/or filters, you might need to reload preferences to see your new data."
+msgstr ""
+
+#: classes/dlg.php:48
+msgid "Your Public OPML URL is:"
+msgstr ""
+
+#: classes/dlg.php:57
+#: classes/dlg.php:214
+msgid "Generate new URL"
+msgstr "Luo uusi URL"
+
+#: classes/dlg.php:71
+msgid "Update daemon is enabled in configuration, but daemon process is not running, which prevents all feeds from updating. Please start the daemon process or contact instance owner."
+msgstr ""
+
+#: classes/dlg.php:75
+#: classes/dlg.php:84
+msgid "Last update:"
+msgstr ""
+
+#: classes/dlg.php:80
+msgid "Update daemon is taking too long to perform a feed update. This could indicate a problem like crash or a hang. Please check the daemon process or contact instance owner."
+msgstr ""
+
+#: classes/dlg.php:166
+msgid "Match:"
+msgstr "Täsmää:"
+
+#: classes/dlg.php:168
+msgid "Any"
+msgstr "Mikä tahansa"
+
+#: classes/dlg.php:171
+msgid "All tags."
+msgstr "Kaikki avainsanat"
+
+#: classes/dlg.php:173
+msgid "Which Tags?"
+msgstr "Mitkä avainsanat?"
+
+#: classes/dlg.php:186
+msgid "Display entries"
+msgstr "Näytä"
+
+#: classes/dlg.php:205
+msgid "You can view this feed as RSS using the following URL:"
+msgstr "Tämän RSS-syötteen julkinen osoite on:"
+
+#: classes/dlg.php:233
+#: plugins/updater/init.php:331
+#, php-format
+msgid "New version of Tiny Tiny RSS is available (%s)."
+msgstr ""
+
+#: classes/dlg.php:241
+msgid "You can update using built-in updater in the Preferences or by using update.php"
+msgstr ""
+
+#: classes/dlg.php:245
+#: plugins/updater/init.php:335
+msgid "See the release notes"
+msgstr ""
+
+#: classes/dlg.php:247
+msgid "Download"
+msgstr "Lataa"
+
+#: classes/dlg.php:255
+msgid "Error receiving version information or no new version available."
+msgstr ""
+
+#: classes/feeds.php:56
+#, fuzzy, php-format
+msgid "Last updated: %s"
+msgstr "Syötteet päivitetty viimeksi %s"
+
+#: classes/feeds.php:75
+msgid "View as RSS feed"
+msgstr "Näytä RSS-syötteenä"
+
+#: classes/feeds.php:76
+#: classes/feeds.php:128
+#: classes/pref/feeds.php:1478
+msgid "View as RSS"
+msgstr "Näytä RSS-syötteenä"
+
+#: classes/feeds.php:83
+msgid "Select:"
+msgstr "Valitse:"
+
+#: classes/feeds.php:84
+#: classes/pref/users.php:341
+#: classes/pref/labels.php:275
+#: classes/pref/filters.php:280
+#: classes/pref/filters.php:328
+#: classes/pref/filters.php:646
+#: classes/pref/filters.php:734
+#: classes/pref/filters.php:761
+#: classes/pref/prefs.php:994
+#: classes/pref/feeds.php:1310
+#: classes/pref/feeds.php:1575
+#: classes/pref/feeds.php:1641
+#: plugins/instances/init.php:287
+msgid "All"
+msgstr "Kaikki"
+
+#: classes/feeds.php:86
+msgid "Invert"
+msgstr "Käännä"
+
+#: classes/feeds.php:87
+#: classes/pref/users.php:343
+#: classes/pref/labels.php:277
+#: classes/pref/filters.php:282
+#: classes/pref/filters.php:330
+#: classes/pref/filters.php:648
+#: classes/pref/filters.php:736
+#: classes/pref/filters.php:763
+#: classes/pref/prefs.php:996
+#: classes/pref/feeds.php:1312
+#: classes/pref/feeds.php:1577
+#: classes/pref/feeds.php:1643
+#: plugins/instances/init.php:289
+msgid "None"
+msgstr "Ei mikään"
+
+#: classes/feeds.php:93
+msgid "More..."
+msgstr "Lisää..."
+
+#: classes/feeds.php:95
+msgid "Selection toggle:"
+msgstr "Vaihda valittujen tila:"
+
+#: classes/feeds.php:101
+msgid "Selection:"
+msgstr "Valinta:"
+
+#: classes/feeds.php:104
+msgid "Set score"
+msgstr "Pisteytä"
+
+#: classes/feeds.php:107
+msgid "Archive"
+msgstr "Arkistoi"
+
+#: classes/feeds.php:109
+msgid "Move back"
+msgstr "Siirrä takaisin"
+
+#: classes/feeds.php:110
+#: classes/pref/filters.php:289
+#: classes/pref/filters.php:337
+#: classes/pref/filters.php:743
+#: classes/pref/filters.php:770
+msgid "Delete"
+msgstr "Poista"
+
+#: classes/feeds.php:115
+#: classes/feeds.php:120
+#: plugins/mailto/init.php:25
+#: plugins/mail/init.php:26
+msgid "Forward by email"
+msgstr "Lähetä sähköpostilla"
+
+#: classes/feeds.php:124
+msgid "Feed:"
+msgstr "Syöte:"
+
+#: classes/feeds.php:197
+#: classes/feeds.php:824
+msgid "Feed not found."
+msgstr "Syötettä ei löydy"
+
+#: classes/feeds.php:254
+#, fuzzy
+msgid "Never"
+msgstr "Älä poista koskaan"
+
+#: classes/feeds.php:360
+#, php-format
+msgid "Imported at %s"
+msgstr "Tuotu %s"
+
+#: classes/feeds.php:520
+msgid "mark as read"
+msgstr "merkitse luetuksi"
+
+#: classes/feeds.php:570
+msgid "Collapse article"
+msgstr "Sulje artikkeli"
+
+#: classes/feeds.php:725
+msgid "No unread articles found to display."
+msgstr "Lukemattomia artikkeleita ei ole näytettäväksi"
+
+#: classes/feeds.php:728
+msgid "No updated articles found to display."
+msgstr "Päivitettyjä artikkeleita ei ole näytettäväksi"
+
+#: classes/feeds.php:731
+msgid "No starred articles found to display."
+msgstr "Tähdellä merkittyjä artikkeleita ei ole näytettäväksi"
+
+#: classes/feeds.php:735
+#, fuzzy
+msgid "No articles found to display. You can assign articles to labels manually from article header context menu (applies to all selected articles) or use a filter."
+msgstr "Ei näytettäviä artikkeleita. Voit merkitä artikkeleita tunnisteilla käsin (Toiminnot-valikko yläreunassa) tai käytää suodattimia."
+
+#: classes/feeds.php:737
+msgid "No articles found to display."
+msgstr "Ei näytettäviä artikkeleita."
+
+#: classes/feeds.php:752
+#: classes/feeds.php:919
+#, php-format
+msgid "Feeds last updated at %s"
+msgstr "Syötteet päivitetty viimeksi %s"
+
+#: classes/feeds.php:762
+#: classes/feeds.php:929
+msgid "Some feeds have update errors (click for details)"
+msgstr "Osassa syötteistä oli päivitysongelmia (napsauta nähdäksesi lisätietoja)"
+
+#: classes/feeds.php:909
+msgid "No feed selected."
+msgstr "Yhtään syötettä ei ole valittuna"
+
+#: classes/feeds.php:962
+#: classes/feeds.php:970
+msgid "Feed or site URL"
+msgstr "Syötteen/sivuston osoite"
+
+#: classes/feeds.php:976
+#: classes/pref/feeds.php:579
+#: classes/pref/feeds.php:811
+#: classes/pref/feeds.php:1798
+msgid "Place in category:"
+msgstr "Siirrä kansioon:"
+
+#: classes/feeds.php:984
+msgid "Available feeds"
+msgstr "Saatavilla olevat syötteet"
+
+#: classes/feeds.php:996
+#: classes/pref/users.php:135
+#: classes/pref/feeds.php:609
+#: classes/pref/feeds.php:847
+msgid "Authentication"
+msgstr "Tunnistautuminen"
+
+#: classes/feeds.php:1000
+#: classes/pref/users.php:398
+#: classes/pref/feeds.php:615
+#: classes/pref/feeds.php:851
+#: classes/pref/feeds.php:1812
+msgid "Login"
+msgstr "Käyttäjätunnus"
+
+#: classes/feeds.php:1003
+#: classes/pref/prefs.php:260
+#: classes/pref/feeds.php:628
+#: classes/pref/feeds.php:857
+#: classes/pref/feeds.php:1815
+msgid "Password"
+msgstr "Salasana"
+
+#: classes/feeds.php:1013
+msgid "This feed requires authentication."
+msgstr "Tämä syöte vaatii kirjautumisen"
+
+#: classes/feeds.php:1018
+#: classes/feeds.php:1074
+#: classes/pref/feeds.php:1833
+msgid "Subscribe"
+msgstr "Tilaa"
+
+#: classes/feeds.php:1021
+msgid "More feeds"
+msgstr "Lisää syötteitä"
+
+#: classes/feeds.php:1044
+#: classes/feeds.php:1135
+#: classes/pref/users.php:328
+#: classes/pref/filters.php:639
+#: classes/pref/feeds.php:1303
+#: js/tt-rss.js:174
+msgid "Search"
+msgstr "Etsi"
+
+#: classes/feeds.php:1048
+msgid "Popular feeds"
+msgstr "Suositut syötteet"
+
+#: classes/feeds.php:1049
+msgid "Feed archive"
+msgstr "Syötearkisto"
+
+#: classes/feeds.php:1052
+msgid "limit:"
+msgstr "raja:"
+
+#: classes/feeds.php:1075
+#: classes/pref/users.php:354
+#: classes/pref/labels.php:284
+#: classes/pref/filters.php:396
+#: classes/pref/filters.php:665
+#: classes/pref/feeds.php:733
+#: plugins/instances/init.php:294
+msgid "Remove"
+msgstr "Poista"
+
+#: classes/feeds.php:1086
+msgid "Look for"
+msgstr "Etsi"
+
+#: classes/feeds.php:1094
+msgid "Limit search to:"
+msgstr "Haun rajaus:"
+
+#: classes/feeds.php:1110
+msgid "This feed"
+msgstr "Tämä syöte"
+
+#: classes/backend.php:33
+msgid "Other interface tips are available in the Tiny Tiny RSS wiki."
+msgstr "Lisää käyttövinkkejä löydät Tiny Tiny RSS -wikistä."
+
+#: classes/backend.php:38
+msgid "Keyboard Shortcuts"
+msgstr "Pikanäppäimet"
+
+#: classes/backend.php:61
+msgid "Shift"
+msgstr "Shift"
+
+#: classes/backend.php:64
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: classes/backend.php:99
+msgid "Help topic not found."
+msgstr "Aiheesta ei löytynyt ohjeita."
+
+#: classes/opml.php:28
+#: classes/opml.php:33
+msgid "OPML Utility"
+msgstr "OPML-työkalu"
+
+#: classes/opml.php:37
+msgid "Importing OPML..."
+msgstr "Luetaan OPML-tiedostoa"
+
+#: classes/opml.php:41
+msgid "Return to preferences"
+msgstr "Palaa asetuksiin"
+
+#: classes/opml.php:270
+#, php-format
+msgid "Adding feed: %s"
+msgstr "Lisätään syöte: %s"
+
+#: classes/opml.php:281
+#, php-format
+msgid "Duplicate feed: %s"
+msgstr "Syötteen kaksoiskappale: %s"
+
+#: classes/opml.php:295
+#, php-format
+msgid "Adding label %s"
+msgstr "Lisätään tunniste %s"
+
+#: classes/opml.php:298
+#, php-format
+msgid "Duplicate label: %s"
+msgstr "Tunnisteen kaksoiskappale: %s"
+
+#: classes/opml.php:310
+#, php-format
+msgid "Setting preference key %s to %s"
+msgstr ""
+
+#: classes/opml.php:339
+msgid "Adding filter..."
+msgstr "Lisätään suodatin..."
+
+#: classes/opml.php:416
+#, php-format
+msgid "Processing category: %s"
+msgstr ""
+
+#: classes/opml.php:465
+#: plugins/import_export/init.php:420
+#: plugins/googlereaderimport/init.php:66
+#, php-format
+msgid "Upload failed with error code %d"
+msgstr ""
+
+#: classes/opml.php:479
+#: plugins/import_export/init.php:434
+#: plugins/googlereaderimport/init.php:80
+#, fuzzy
+msgid "Unable to move uploaded file."
+msgstr "Ladatun tiedoston siirtäminen epäonnistui."
+
+#: classes/opml.php:483
+#: plugins/import_export/init.php:438
+#: plugins/googlereaderimport/init.php:84
+msgid "Error: please upload OPML file."
+msgstr ""
+
+#: classes/opml.php:492
+#, fuzzy
+msgid "Error: unable to find moved OPML file."
+msgstr "Virhe: siirretty OPML-tiedosto katosi."
+
+#: classes/opml.php:499
+#: plugins/googlereaderimport/init.php:186
+msgid "Error while parsing document."
+msgstr ""
+
+#: classes/pref/users.php:6
+#: classes/pref/system.php:8
+#: plugins/instances/init.php:154
+msgid "Your access level is insufficient to open this tab."
+msgstr ""
+
+#: classes/pref/users.php:34
+msgid "User not found"
+msgstr "Käyttäjätunnusta ei löydy"
+
+#: classes/pref/users.php:53
+#: classes/pref/users.php:400
+msgid "Registered"
+msgstr "Rekisteröity"
+
+#: classes/pref/users.php:54
+msgid "Last logged in"
+msgstr "Viimeksi kirjautunut"
+
+#: classes/pref/users.php:61
+msgid "Subscribed feeds count"
+msgstr "Tilattujen syötteiden määrä"
+
+#: classes/pref/users.php:65
+msgid "Subscribed feeds"
+msgstr "Tilatut syötteet"
+
+#: classes/pref/users.php:138
+msgid "Access level: "
+msgstr "Käyttäjäoikeudet:"
+
+#: classes/pref/users.php:151
+msgid "Change password to"
+msgstr "Uusi salasana"
+
+#: classes/pref/users.php:157
+#: classes/pref/feeds.php:636
+#: classes/pref/feeds.php:863
+msgid "Options"
+msgstr "Valinnat"
+
+#: classes/pref/users.php:160
+msgid "E-mail: "
+msgstr "Sähköposti: "
+
+#: classes/pref/users.php:236
+#, php-format
+msgid "Added user <b>%s</b> with password <b>%s</b>"
+msgstr ""
+
+#: classes/pref/users.php:243
+#, php-format
+msgid "Could not create user <b>%s</b>"
+msgstr "Käyttäjää <b>%s</b> ei voitu luoda"
+
+#: classes/pref/users.php:247
+#, php-format
+msgid "User <b>%s</b> already exists."
+msgstr "Käyttäjätunnus <b>%s</b> on jo olemassa."
+
+#: classes/pref/users.php:269
+#, php-format
+msgid "Changed password of user <b>%s</b> to <b>%s</b>"
+msgstr ""
+
+#: classes/pref/users.php:271
+#, php-format
+msgid "Sending new password of user <b>%s</b> to <b>%s</b>"
+msgstr ""
+
+#: classes/pref/users.php:295
+msgid "[tt-rss] Password change notification"
+msgstr ""
+
+#: classes/pref/users.php:338
+#: classes/pref/labels.php:272
+#: classes/pref/filters.php:277
+#: classes/pref/filters.php:325
+#: classes/pref/filters.php:643
+#: classes/pref/filters.php:731
+#: classes/pref/filters.php:758
+#: classes/pref/prefs.php:991
+#: classes/pref/feeds.php:1307
+#: classes/pref/feeds.php:1572
+#: classes/pref/feeds.php:1638
+#: plugins/instances/init.php:284
+msgid "Select"
+msgstr "Valitse"
+
+#: classes/pref/users.php:346
+msgid "Create user"
+msgstr "Luo käyttäjätunnus"
+
+#: classes/pref/users.php:350
+msgid "Details"
+msgstr "Tarkemmat tiedot"
+
+#: classes/pref/users.php:352
+#: classes/pref/filters.php:658
+#: plugins/instances/init.php:293
+msgid "Edit"
+msgstr "Muokkaa"
+
+#: classes/pref/users.php:399
+msgid "Access Level"
+msgstr "Käyttäjäoikeudet"
+
+#: classes/pref/users.php:401
+msgid "Last login"
+msgstr "Viimeisin kirjautuminen"
+
+#: classes/pref/users.php:420
+#: plugins/instances/init.php:334
+msgid "Click to edit"
+msgstr "Napsauta muokataksesi"
+
+#: classes/pref/users.php:440
+msgid "No users defined."
+msgstr "Käyttäjätunnuksia ei määritelty."
+
+#: classes/pref/users.php:442
+msgid "No matching users found."
+msgstr "Hakua vastaavia käyttäjätunnuksia ei löytynyt"
+
+#: classes/pref/labels.php:22
+#: classes/pref/filters.php:266
+#: classes/pref/filters.php:722
+msgid "Caption"
+msgstr "Nimi"
+
+#: classes/pref/labels.php:37
+msgid "Colors"
+msgstr "Värit"
+
+#: classes/pref/labels.php:42
+msgid "Foreground:"
+msgstr "Kirjasin:"
+
+#: classes/pref/labels.php:42
+msgid "Background:"
+msgstr "Tausta:"
+
+#: classes/pref/labels.php:232
+#, php-format
+msgid "Created label <b>%s</b>"
+msgstr "Luotiin tunniste <b>%s</b>"
+
+#: classes/pref/labels.php:287
+msgid "Clear colors"
+msgstr "Poista värit"
+
+#: classes/pref/filters.php:94
+msgid "Articles matching this filter:"
+msgstr "Suodatinta vastaavat artikkelit:"
+
+#: classes/pref/filters.php:131
+msgid "No recent articles matching this filter have been found."
+msgstr "Suodatinta vastaavia artikkeleita ei löytynyt. "
+
+#: classes/pref/filters.php:135
+msgid "Complex expressions might not give results while testing due to issues with database server regexp implementation."
+msgstr ""
+
+#: classes/pref/filters.php:272
+#: classes/pref/filters.php:726
+#: classes/pref/filters.php:841
+msgid "Match"
+msgstr "Täsmäys"
+
+#: classes/pref/filters.php:286
+#: classes/pref/filters.php:334
+#: classes/pref/filters.php:740
+#: classes/pref/filters.php:767
+msgid "Add"
+msgstr "Lisää"
+
+#: classes/pref/filters.php:320
+#: classes/pref/filters.php:753
+msgid "Apply actions"
+msgstr "Suorita toiminnot"
+
+#: classes/pref/filters.php:370
+#: classes/pref/filters.php:782
+msgid "Enabled"
+msgstr "Aktivoitu"
+
+#: classes/pref/filters.php:379
+#: classes/pref/filters.php:785
+msgid "Match any rule"
+msgstr "Täsmää ainakin yhteen säännöistä"
+
+#: classes/pref/filters.php:388
+#: classes/pref/filters.php:788
+msgid "Inverse matching"
+msgstr "Käänteinen täsmäys"
+
+#: classes/pref/filters.php:400
+#: classes/pref/filters.php:795
+msgid "Test"
+msgstr "Kokeilu"
+
+#: classes/pref/filters.php:433
+msgid "(inverse)"
+msgstr "(käänteinen)"
+
+#: classes/pref/filters.php:432
+#, php-format
+msgid "%s on %s in %s %s"
+msgstr ""
+
+#: classes/pref/filters.php:655
+msgid "Combine"
+msgstr "Yhdistä"
+
+#: classes/pref/filters.php:661
+#: classes/pref/feeds.php:1323
+#: classes/pref/feeds.php:1337
+msgid "Reset sort order"
+msgstr "Järjestä oletuksen mukaisesti"
+
+#: classes/pref/filters.php:669
+#: classes/pref/feeds.php:1359
+msgid "Rescore articles"
+msgstr "Uudelleenpisteytä artikkelit"
+
+#: classes/pref/filters.php:798
+msgid "Create"
+msgstr "Luo"
+
+#: classes/pref/filters.php:853
+msgid "Inverse regular expression matching"
+msgstr "Käänteinen täsmäys säännöllisellä lausekkeella"
+
+#: classes/pref/filters.php:855
+msgid "on field"
+msgstr "kentässä"
+
+#: classes/pref/filters.php:861
+#: js/PrefFilterTree.js:45
+msgid "in"
+msgstr "kansiossa"
+
+#: classes/pref/filters.php:874
+msgid "Save rule"
+msgstr "Tallenna sääntö"
+
+#: classes/pref/filters.php:874
+#: js/functions.js:1013
+msgid "Add rule"
+msgstr "Lisää sääntö"
+
+#: classes/pref/filters.php:897
+msgid "Perform Action"
+msgstr "Suorita toiminto"
+
+#: classes/pref/filters.php:923
+msgid "with parameters:"
+msgstr "parametrit:"
+
+#: classes/pref/filters.php:941
+msgid "Save action"
+msgstr "Tallenna toiminto"
+
+#: classes/pref/filters.php:941
+#: js/functions.js:1039
+msgid "Add action"
+msgstr "Lisää toiminto"
+
+#: classes/pref/filters.php:964
+#, fuzzy
+msgid "[No caption]"
+msgstr "Nimi"
+
+#: classes/pref/prefs.php:18
+msgid "General"
+msgstr "Yleinen"
+
+#: classes/pref/prefs.php:19
+msgid "Interface"
+msgstr "Käyttöliittymä"
+
+#: classes/pref/prefs.php:20
+msgid "Advanced"
+msgstr "Lisäasetukset"
+
+#: classes/pref/prefs.php:21
+msgid "Digest"
+msgstr "Yhteenveto"
+
+#: classes/pref/prefs.php:25
+msgid "Allow duplicate articles"
+msgstr "Salli artikkeleiden kaksoiskappaleet"
+
+#: classes/pref/prefs.php:26
+msgid "Assign articles to labels automatically"
+msgstr "Liitä tunnisteet artikkeleihin automaattisesti"
+
+#: classes/pref/prefs.php:27
+msgid "Blacklisted tags"
+msgstr "Estetyt avainsanat"
+
+#: classes/pref/prefs.php:27
+msgid "When auto-detecting tags in articles these tags will not be applied (comma-separated list)."
+msgstr "Näitä avainsanoja ei liitetä automaattisesti (pilkulla eroteltujen luettelo)."
+
+#: classes/pref/prefs.php:28
+msgid "Automatically mark articles as read"
+msgstr "Merkitse syötteet automaattisesti luetuksi"
+
+#: classes/pref/prefs.php:28
+msgid "This option enables marking articles as read automatically while you scroll article list."
+msgstr "Artikkelit merkitään automaattisesti luetuiksi kun artikkeliluetteloa vieritetään."
+
+#: classes/pref/prefs.php:29
+msgid "Automatically expand articles in combined mode"
+msgstr "Laajenna artikkelit automaattisesti yhdistelmänäkymässä"
+
+#: classes/pref/prefs.php:30
+msgid "Combined feed display"
+msgstr "Syötteiden yhdistelmänäkymä"
+
+#: classes/pref/prefs.php:30
+msgid "Display expanded list of feed articles, instead of separate displays for headlines and article content"
+msgstr "Näytä artikkeliluettelo laajennettuna erillisten otsikko- ja artikkelinäkymien sijasta"
+
+#: classes/pref/prefs.php:31
+msgid "Confirm marking feed as read"
+msgstr "Varmista syötteen merkitseminen luetuksi"
+
+#: classes/pref/prefs.php:32
+msgid "Amount of articles to display at once"
+msgstr "Kerralla näytettävien artikkeleiden määrä"
+
+#: classes/pref/prefs.php:33
+msgid "Default feed update interval"
+msgstr "Oletusaikaväli"
+
+#: classes/pref/prefs.php:33
+msgid "Shortest interval at which a feed will be checked for updates regardless of update method"
+msgstr ""
+
+#: classes/pref/prefs.php:34
+msgid "Mark articles in e-mail digest as read"
+msgstr "Merkitse sähköpostitiivistelmänä lähetetyt artikkelit luetuksi"
+
+#: classes/pref/prefs.php:35
+msgid "Enable e-mail digest"
+msgstr "Aktivoi sähköpostitiivistelmän lähetys"
+
+#: classes/pref/prefs.php:35
+msgid "This option enables sending daily digest of new (and unread) headlines on your configured e-mail address"
+msgstr "Sähköpostiisi lähetetään päivittäin otsikot uusista (lukemattomista) artikkeleista"
+
+#: classes/pref/prefs.php:36
+msgid "Try to send digests around specified time"
+msgstr "Pyri lähettämään kooste tiettyyn aikaan"
+
+#: classes/pref/prefs.php:36
+msgid "Uses UTC timezone"
+msgstr "Käyttää UTC-aikavyöhykettä"
+
+#: classes/pref/prefs.php:37
+msgid "Enable API access"
+msgstr "Aktivoi API"
+
+#: classes/pref/prefs.php:37
+msgid "Allows external clients to access this account through the API"
+msgstr "Sallii pääsyn ulkoisille ohjelmille APIn kautta"
+
+#: classes/pref/prefs.php:38
+msgid "Enable feed categories"
+msgstr "Käytä syötekansioita"
+
+#: classes/pref/prefs.php:39
+msgid "Sort feeds by unread articles count"
+msgstr "Järjestä syötteet lukemattomien artikkelien määrän perusteella"
+
+#: classes/pref/prefs.php:40
+msgid "Maximum age of fresh articles (in hours)"
+msgstr "Enimmäisikä tuoreille artikkeleille (tunneissa)"
+
+#: classes/pref/prefs.php:41
+msgid "Hide feeds with no unread articles"
+msgstr "Piilota syötteet joissa ei ole lukemattomia artikkeleita"
+
+#: classes/pref/prefs.php:42
+#, fuzzy
+msgid "Show special feeds when hiding read feeds"
+msgstr "Näytä erikoissyötteet kun luetut artikkelit piilotetaan"
+
+#: classes/pref/prefs.php:43
+msgid "Long date format"
+msgstr "Päiväyksen pitempi muoto"
+
+#: classes/pref/prefs.php:44
+msgid "On catchup show next feed"
+msgstr "Näytä automaattisesti seuraava syöte"
+
+#: classes/pref/prefs.php:44
+msgid "Automatically open next feed with unread articles after marking one as read"
+msgstr "Avaa automaattisesti seuraava lukemattomia artikkeleita sisältävä syöte kun edellinen on merkitty luetuksi"
+
+#: classes/pref/prefs.php:45
+msgid "Purge articles after this number of days (0 - disables)"
+msgstr "Siivoa artikkelit näin monen päivän päästä (0 - poissa käytöstä)"
+
+#: classes/pref/prefs.php:46
+msgid "Purge unread articles"
+msgstr "Siivoa lukemattomat artikkelit"
+
+#: classes/pref/prefs.php:47
+msgid "Reverse headline order (oldest first)"
+msgstr "Käänteinen otsikkojärjestys (vanhimmat ensin)"
+
+#: classes/pref/prefs.php:48
+msgid "Short date format"
+msgstr "Päiväyksen lyhyempi muoto"
+
+#: classes/pref/prefs.php:49
+msgid "Show content preview in headlines list"
+msgstr "Näytä sisällön esikatselu otsikkoluettelossa"
+
+#: classes/pref/prefs.php:50
+msgid "Sort headlines by feed date"
+msgstr "Järjestä otsikot syötteen päivämäärän mukaan"
+
+#: classes/pref/prefs.php:50
+msgid "Use feed-specified date to sort headlines instead of local import date."
+msgstr ""
+
+#: classes/pref/prefs.php:51
+msgid "Login with an SSL certificate"
+msgstr "Kirjaudu SSL-varmenteella"
+
+#: classes/pref/prefs.php:51
+msgid "Click to register your SSL client certificate with tt-rss"
+msgstr "Napsauta rekisteröidäksesi SSL-varmenne tt-rss:ään "
+
+#: classes/pref/prefs.php:52
+msgid "Do not embed images in articles"
+msgstr "Älä sisällytä kuvia artikkeleihin"
+
+#: classes/pref/prefs.php:53
+msgid "Strip unsafe tags from articles"
+msgstr "Poista vaaralliset koodit artikkeleista"
+
+#: classes/pref/prefs.php:53
+msgid "Strip all but most common HTML tags when reading articles."
+msgstr "Karsi erikoiset HTML-koodit artikkeleita luettaessa."
+
+#: classes/pref/prefs.php:54
+#: js/prefs.js:1719
+msgid "Customize stylesheet"
+msgstr "Muokkaa CSS-tyylitiedostoa"
+
+#: classes/pref/prefs.php:54
+msgid "Customize CSS stylesheet to your liking"
+msgstr "Muokkaa lukijaa mieleiseksesi CSS-tyylitiedostolla"
+
+#: classes/pref/prefs.php:55
+#, fuzzy
+msgid "Time zone"
+msgstr "Käyttäjän aikavyöhyke"
+
+#: classes/pref/prefs.php:56
+msgid "Group headlines in virtual feeds"
+msgstr "Ryhmittele otsikot virtuaalisyötteiksi"
+
+#: classes/pref/prefs.php:56
+msgid "Special feeds, labels, and categories are grouped by originating feeds"
+msgstr "Erikoiset-syötteet, tunnisteet ja kansiot ryhmitellään alkuperäisen syötteen mukaan"
+
+#: classes/pref/prefs.php:57
+#, fuzzy
+msgid "Language"
+msgstr "Kieli:"
+
+#: classes/pref/prefs.php:58
+msgid "Theme"
+msgstr ""
+
+#: classes/pref/prefs.php:58
+msgid "Select one of the available CSS themes"
+msgstr "Valitse yksi tarjolla olevista CSS-teemoista"
+
+#: classes/pref/prefs.php:69
+msgid "Old password cannot be blank."
+msgstr "Vanha salasana ei saa olla tyhjä."
+
+#: classes/pref/prefs.php:74
+msgid "New password cannot be blank."
+msgstr "Uusi salasana ei saa olla tyhjä."
+
+#: classes/pref/prefs.php:79
+msgid "Entered passwords do not match."
+msgstr "Syötetyt salasanat eivät täsmää."
+
+#: classes/pref/prefs.php:88
+msgid "Function not supported by authentication module."
+msgstr ""
+
+#: classes/pref/prefs.php:127
+msgid "The configuration was saved."
+msgstr "Asetukset tallennettiin."
+
+#: classes/pref/prefs.php:142
+#, php-format
+msgid "Unknown option: %s"
+msgstr "Tuntematon valinta: %s"
+
+#: classes/pref/prefs.php:156
+msgid "Your personal data has been saved."
+msgstr "Tietosi tallennettiin."
+
+#: classes/pref/prefs.php:176
+msgid "Your preferences are now set to default values."
+msgstr ""
+
+#: classes/pref/prefs.php:198
+msgid "Personal data / Authentication"
+msgstr "Omat tiedot / Tunnistautuminen"
+
+#: classes/pref/prefs.php:218
+msgid "Personal data"
+msgstr "Omat tiedot"
+
+#: classes/pref/prefs.php:228
+msgid "Full name"
+msgstr "Koko nimi"
+
+#: classes/pref/prefs.php:232
+msgid "E-mail"
+msgstr "Sähköposti"
+
+#: classes/pref/prefs.php:238
+msgid "Access level"
+msgstr "Käyttäjäoikeudet"
+
+#: classes/pref/prefs.php:248
+msgid "Save data"
+msgstr "Tallenna tiedot"
+
+#: classes/pref/prefs.php:267
+msgid "Your password is at default value, please change it."
+msgstr "Käytät vieläkin oletussalasanaa, se kannattaa vaihtaa."
+
+#: classes/pref/prefs.php:294
+msgid "Changing your current password will disable OTP."
+msgstr "Salasanan vaihtaminen poistaa kertakäyttösalasanatunnistautumisen käytöstä."
+
+#: classes/pref/prefs.php:299
+msgid "Old password"
+msgstr "Vanha salasana"
+
+#: classes/pref/prefs.php:302
+msgid "New password"
+msgstr "Uusi salasana"
+
+#: classes/pref/prefs.php:307
+msgid "Confirm password"
+msgstr "Vahvista salasana"
+
+#: classes/pref/prefs.php:317
+msgid "Change password"
+msgstr "Vaihda salasana"
+
+#: classes/pref/prefs.php:323
+msgid "One time passwords / Authenticator"
+msgstr ""
+
+#: classes/pref/prefs.php:327
+msgid "One time passwords are currently enabled. Enter your current password below to disable."
+msgstr ""
+
+#: classes/pref/prefs.php:352
+#: classes/pref/prefs.php:403
+msgid "Enter your password"
+msgstr "Syötä salasanasi"
+
+#: classes/pref/prefs.php:363
+msgid "Disable OTP"
+msgstr "Poista OTP käytöstä"
+
+#: classes/pref/prefs.php:369
+msgid "You will need a compatible Authenticator to use this. Changing your password would automatically disable OTP."
+msgstr ""
+
+#: classes/pref/prefs.php:371
+msgid "Scan the following code by the Authenticator application:"
+msgstr ""
+
+#: classes/pref/prefs.php:408
+msgid "Enter the generated one time password"
+msgstr ""
+
+#: classes/pref/prefs.php:422
+msgid "Enable OTP"
+msgstr "Aktivoi kertakäyttösalasana"
+
+#: classes/pref/prefs.php:428
+msgid "PHP GD functions are required for OTP support."
+msgstr ""
+
+#: classes/pref/prefs.php:471
+msgid "Some preferences are only available in default profile."
+msgstr ""
+
+#: classes/pref/prefs.php:569
+msgid "Customize"
+msgstr "Muokkaa"
+
+#: classes/pref/prefs.php:629
+msgid "Register"
+msgstr "Rekisteröi"
+
+#: classes/pref/prefs.php:633
+msgid "Clear"
+msgstr "Tyhjennä"
+
+#: classes/pref/prefs.php:639
+#, php-format
+msgid "Current server time: %s (UTC)"
+msgstr "Palvelimen aika: %s (UTC)"
+
+#: classes/pref/prefs.php:671
+msgid "Save configuration"
+msgstr "Tallenna asetukset"
+
+#: classes/pref/prefs.php:675
+msgid "Save and exit preferences"
+msgstr "Tallenna ja poistu asetuksista"
+
+#: classes/pref/prefs.php:680
+msgid "Manage profiles"
+msgstr "Hallitse profiileita"
+
+#: classes/pref/prefs.php:683
+msgid "Reset to defaults"
+msgstr "Palauta oletusarvot"
+
+#: classes/pref/prefs.php:706
+msgid "Plugins"
+msgstr "Lisäosat"
+
+#: classes/pref/prefs.php:708
+msgid "You will need to reload Tiny Tiny RSS for plugin changes to take effect."
+msgstr "Päivitä sivu aktivoidaksesi lisäosiin tehdyt muutokset."
+
+#: classes/pref/prefs.php:710
+msgid "Download more plugins at tt-rss.org <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/forum/viewforum.php?f=22\">forums</a> or <a target=\"_blank\" class=\"visibleLink\" href=\"http://tt-rss.org/wiki/Plugins\">wiki</a>."
+msgstr ""
+
+#: classes/pref/prefs.php:736
+msgid "System plugins"
+msgstr "Järjestelmän lisäosat"
+
+#: classes/pref/prefs.php:740
+#: classes/pref/prefs.php:794
+msgid "Plugin"
+msgstr "Lisäosa"
+
+#: classes/pref/prefs.php:741
+#: classes/pref/prefs.php:795
+msgid "Description"
+msgstr "Kuvaus"
+
+#: classes/pref/prefs.php:742
+#: classes/pref/prefs.php:796
+msgid "Version"
+msgstr "Versio"
+
+#: classes/pref/prefs.php:743
+#: classes/pref/prefs.php:797
+msgid "Author"
+msgstr "Tekijä"
+
+#: classes/pref/prefs.php:772
+#: classes/pref/prefs.php:829
+msgid "more info"
+msgstr "lisätietoja"
+
+#: classes/pref/prefs.php:781
+#: classes/pref/prefs.php:838
+msgid "Clear data"
+msgstr "Tyhjennä tiedot"
+
+#: classes/pref/prefs.php:790
+msgid "User plugins"
+msgstr "Käyttäjän lisäosat"
+
+#: classes/pref/prefs.php:853
+msgid "Enable selected plugins"
+msgstr "Aktivoi valitut lisäosat"
+
+#: classes/pref/prefs.php:920
+#, fuzzy
+msgid "Incorrect one time password"
+msgstr "Väärä salasana"
+
+#: classes/pref/prefs.php:923
+#: classes/pref/prefs.php:940
+msgid "Incorrect password"
+msgstr "Väärä salasana"
+
+#: classes/pref/prefs.php:965
+#, php-format
+msgid "You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">This file</a> can be used as a baseline."
+msgstr "Kirjoita tähän ne CSS-määrittelyt, jotka korvaavat tämänhetkisen teemasi värejä, fontteja ja sijoittelua. Voit käyttää pohjana <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">tätä tiedostoa.</a>"
+
+#: classes/pref/prefs.php:1005
+msgid "Create profile"
+msgstr "Luo profiili"
+
+#: classes/pref/prefs.php:1028
+#: classes/pref/prefs.php:1056
+msgid "(active)"
+msgstr "(aktiivinen)"
+
+#: classes/pref/prefs.php:1090
+msgid "Remove selected profiles"
+msgstr "Poista valitut profiilit"
+
+#: classes/pref/prefs.php:1092
+msgid "Activate profile"
+msgstr "Aktivoi profiili"
+
+#: classes/pref/feeds.php:13
+msgid "Check to enable field"
+msgstr "Valitse aktivoidaksesi kenttä"
+
+#: classes/pref/feeds.php:546
+msgid "Feed Title"
+msgstr "Syötteen otsikko"
+
+#: classes/pref/feeds.php:587
+#: classes/pref/feeds.php:822
+msgid "Update"
+msgstr "Päivitä"
+
+#: classes/pref/feeds.php:602
+#: classes/pref/feeds.php:838
+msgid "Article purging:"
+msgstr "Artikkeleiden siivous"
+
+#: classes/pref/feeds.php:632
+msgid "<b>Hint:</b> you need to fill in your login information if your feed requires authentication, except for Twitter feeds."
+msgstr ""
+
+#: classes/pref/feeds.php:648
+#: classes/pref/feeds.php:867
+msgid "Hide from Popular feeds"
+msgstr "Piilota suosituista syötteistä"
+
+#: classes/pref/feeds.php:660
+#: classes/pref/feeds.php:873
+msgid "Include in e-mail digest"
+msgstr "Sisällytä sähköpostitiivistelmään"
+
+#: classes/pref/feeds.php:673
+#: classes/pref/feeds.php:879
+msgid "Always display image attachments"
+msgstr "Näytä aina kuvat"
+
+#: classes/pref/feeds.php:686
+#: classes/pref/feeds.php:887
+msgid "Do not embed images"
+msgstr "Älä näytä kuvia"
+
+#: classes/pref/feeds.php:699
+#: classes/pref/feeds.php:895
+msgid "Cache images locally"
+msgstr "Tallenna kuvat välimuistiin"
+
+#: classes/pref/feeds.php:711
+#: classes/pref/feeds.php:901
+msgid "Mark updated articles as unread"
+msgstr "Merkitse päivitetyt artikkelit lukemattomiksi"
+
+#: classes/pref/feeds.php:717
+msgid "Icon"
+msgstr "Suosikkikuvake"
+
+#: classes/pref/feeds.php:731
+msgid "Replace"
+msgstr "Vaihda"
+
+#: classes/pref/feeds.php:753
+msgid "Resubscribe to push updates"
+msgstr ""
+
+#: classes/pref/feeds.php:760
+msgid "Resets PubSubHubbub subscription status for push-enabled feeds."
+msgstr ""
+
+#: classes/pref/feeds.php:1156
+#: classes/pref/feeds.php:1209
+msgid "All done."
+msgstr "Valmis."
+
+#: classes/pref/feeds.php:1264
+msgid "Feeds with errors"
+msgstr "Virheelliset syötteet"
+
+#: classes/pref/feeds.php:1284
+msgid "Inactive feeds"
+msgstr "Passiiviset syötteet"
+
+#: classes/pref/feeds.php:1321
+msgid "Edit selected feeds"
+msgstr "Muokkaa valittuja syötteitä"
+
+#: classes/pref/feeds.php:1325
+#: js/prefs.js:1764
+msgid "Batch subscribe"
+msgstr "Tilaa useita"
+
+#: classes/pref/feeds.php:1332
+msgid "Categories"
+msgstr "Kansiot"
+
+#: classes/pref/feeds.php:1335
+msgid "Add category"
+msgstr "Lisää kansio"
+
+#: classes/pref/feeds.php:1339
+msgid "Remove selected"
+msgstr "Poista valittu"
+
+#: classes/pref/feeds.php:1350
+msgid "More actions..."
+msgstr "Lisää toimintoja..."
+
+#: classes/pref/feeds.php:1354
+msgid "Manual purge"
+msgstr ""
+
+#: classes/pref/feeds.php:1358
+msgid "Clear feed data"
+msgstr "Tyhjennnä syötetiedot"
+
+#: classes/pref/feeds.php:1409
+msgid "OPML"
+msgstr "OPML"
+
+#: classes/pref/feeds.php:1411
+msgid "Using OPML you can export and import your feeds, filters, labels and Tiny Tiny RSS settings."
+msgstr ""
+
+#: classes/pref/feeds.php:1411
+msgid "Only main settings profile can be migrated using OPML."
+msgstr ""
+
+#: classes/pref/feeds.php:1424
+msgid "Import my OPML"
+msgstr ""
+
+#: classes/pref/feeds.php:1428
+msgid "Filename:"
+msgstr "Tiedosto:"
+
+#: classes/pref/feeds.php:1430
+msgid "Include settings"
+msgstr ""
+
+#: classes/pref/feeds.php:1434
+msgid "Export OPML"
+msgstr ""
+
+#: classes/pref/feeds.php:1438
+msgid "Your OPML can be published publicly and can be subscribed by anyone who knows the URL below."
+msgstr ""
+
+#: classes/pref/feeds.php:1440
+msgid "Published OPML does not include your Tiny Tiny RSS settings, feeds that require authentication or feeds hidden from Popular feeds."
+msgstr ""
+
+#: classes/pref/feeds.php:1442
+msgid "Public OPML URL"
+msgstr ""
+
+#: classes/pref/feeds.php:1443
+msgid "Display published OPML URL"
+msgstr ""
+
+#: classes/pref/feeds.php:1452
+msgid "Firefox integration"
+msgstr ""
+
+#: classes/pref/feeds.php:1454
+msgid "This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the link below."
+msgstr ""
+
+#: classes/pref/feeds.php:1461
+msgid "Click here to register this site as a feed reader."
+msgstr ""
+
+#: classes/pref/feeds.php:1469
+msgid "Published & shared articles / Generated feeds"
+msgstr "Julkaistut ja jaetut artikkelit / Luodut syötteet"
+
+#: classes/pref/feeds.php:1471
+msgid "Published articles are exported as a public RSS feed and can be subscribed by anyone who knows the URL specified below."
+msgstr "Julkistetut artikkelit näkyvät julkisena RSS-syötteenä ja niitä voi lukea ja tilata jokainen, joka tietää alla annetun osoitteen"
+
+#: classes/pref/feeds.php:1479
+msgid "Display URL"
+msgstr "Näytä osoite"
+
+#: classes/pref/feeds.php:1482
+msgid "Clear all generated URLs"
+msgstr "Poista kaikki luodut osoitteet"
+
+#: classes/pref/feeds.php:1486
+msgid "You can disable all articles shared by unique URLs here."
+msgstr "Tässä voit perua kaikki osoitteen kautta jaettujen artikkeleiden julkistukset."
+
+#: classes/pref/feeds.php:1491
+msgid "Unshare all articles"
+msgstr "Poista kaikkien artikkeleiden jako"
+
+#: classes/pref/feeds.php:1568
+msgid "These feeds have not been updated with new content for 3 months (oldest first):"
+msgstr "Näihin syötteisiin ei ole tullut uusia artikkeleita 3 kuukauteen (vanhimmat ensin):"
+
+#: classes/pref/feeds.php:1604
+#: classes/pref/feeds.php:1670
+msgid "Click to edit feed"
+msgstr "Napsauta muokataksesi syötettä"
+
+#: classes/pref/feeds.php:1622
+#: classes/pref/feeds.php:1690
+msgid "Unsubscribe from selected feeds"
+msgstr "Lopeta valittujen syötteiden tilaukset"
+
+#: classes/pref/feeds.php:1795
+msgid "Add one valid RSS feed per line (no feed detection is done)"
+msgstr "Lisää RSS-syötteitä riveittäin (syötteitä ei yritetä tunnistaa)"
+
+#: classes/pref/feeds.php:1804
+msgid "Feeds to subscribe, One per line"
+msgstr "Tilattavat syötteet, yksi syöte riviä kohden"
+
+#: classes/pref/feeds.php:1826
+msgid "Feeds require authentication."
+msgstr "Syötteet vaativat kirjautumisen."
+
+#: classes/pref/system.php:29
+msgid "Error Log"
+msgstr ""
+
+#: classes/pref/system.php:40
+msgid "Refresh"
+msgstr "Päivitä"
+
+#: classes/pref/system.php:43
+#, fuzzy
+msgid "Clear log"
+msgstr "Poista värit"
+
+#: classes/pref/system.php:48
+msgid "Error"
+msgstr ""
+
+#: classes/pref/system.php:49
+#, fuzzy
+msgid "Filename"
+msgstr "Tiedosto:"
+
+#: classes/pref/system.php:50
+msgid "Message"
+msgstr ""
+
+#: classes/pref/system.php:52
+msgid "Date"
+msgstr ""
+
+#: plugins/close_button/init.php:22
+msgid "Close article"
+msgstr "Sulje artikkeli"
+
+#: plugins/nsfw/init.php:29
+#: plugins/nsfw/init.php:40
+msgid "Not work safe (click to toggle)"
+msgstr ""
+
+#: plugins/nsfw/init.php:50
+msgid "NSFW Plugin"
+msgstr ""
+
+#: plugins/nsfw/init.php:77
+msgid "Tags to consider NSFW (comma-separated)"
+msgstr ""
+
+#: plugins/nsfw/init.php:98
+msgid "Configuration saved."
+msgstr "Asetukset tallennettiin."
+
+#: plugins/auth_internal/init.php:62
+msgid "Please enter your one time password:"
+msgstr ""
+
+#: plugins/auth_internal/init.php:185
+msgid "Password has been changed."
+msgstr ""
+
+#: plugins/auth_internal/init.php:187
+msgid "Old password is incorrect."
+msgstr ""
+
+#: plugins/mailto/init.php:49
+#: plugins/mailto/init.php:55
+#: plugins/mail/init.php:64
+#: plugins/mail/init.php:70
+msgid "[Forwarded]"
+msgstr ""
+
+#: plugins/mailto/init.php:49
+#: plugins/mail/init.php:64
+msgid "Multiple articles"
+msgstr ""
+
+#: plugins/mailto/init.php:71
+msgid "Clicking the following link to invoke your mail client:"
+msgstr ""
+
+#: plugins/mailto/init.php:75
+msgid "Forward selected article(s) by email."
+msgstr ""
+
+#: plugins/mailto/init.php:78
+msgid "You should be able to edit the message before sending in your mail client."
+msgstr ""
+
+#: plugins/mailto/init.php:83
+msgid "Close this dialog"
+msgstr "Sulje"
+
+#: plugins/bookmarklets/init.php:20
+msgid "Bookmarklets"
+msgstr ""
+
+#: plugins/bookmarklets/init.php:22
+msgid "Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it."
+msgstr ""
+
+#: plugins/bookmarklets/init.php:26
+#, php-format
+msgid "Subscribe to %s in Tiny Tiny RSS?"
+msgstr ""
+
+#: plugins/bookmarklets/init.php:31
+msgid "Subscribe in Tiny Tiny RSS"
+msgstr ""
+
+#: plugins/bookmarklets/init.php:34
+msgid "Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS"
+msgstr ""
+
+#: plugins/import_export/init.php:58
+msgid "Import and export"
+msgstr "Tuonti ja vienti"
+
+#: plugins/import_export/init.php:60
+msgid "You can export and import your Starred and Archived articles for safekeeping or when migrating between tt-rss instances of same version."
+msgstr ""
+
+#: plugins/import_export/init.php:65
+msgid "Export my data"
+msgstr "Vie tietoni"
+
+#: plugins/import_export/init.php:81
+msgid "Import"
+msgstr "Tuo"
+
+#: plugins/import_export/init.php:219
+msgid "Could not import: incorrect schema version."
+msgstr ""
+
+#: plugins/import_export/init.php:224
+msgid "Could not import: unrecognized document format."
+msgstr ""
+
+#: plugins/import_export/init.php:383
+msgid "Finished: "
+msgstr "Valmis: "
+
+#: plugins/import_export/init.php:384
+#, php-format
+msgid "%d article processed, "
+msgid_plural "%d articles processed, "
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/import_export/init.php:385
+#, php-format
+msgid "%d imported, "
+msgid_plural "%d imported, "
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/import_export/init.php:386
+#, php-format
+msgid "%d feed created."
+msgid_plural "%d feeds created."
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/import_export/init.php:391
+msgid "Could not load XML document."
+msgstr ""
+
+#: plugins/import_export/init.php:403
+msgid "Prepare data"
+msgstr ""
+
+#: plugins/import_export/init.php:446
+#: plugins/googlereaderimport/init.php:92
+msgid "No file uploaded."
+msgstr ""
+
+#: plugins/mail/init.php:85
+msgid "From:"
+msgstr ""
+
+#: plugins/mail/init.php:94
+msgid "To:"
+msgstr ""
+
+#: plugins/mail/init.php:107
+msgid "Subject:"
+msgstr "Otsikko:"
+
+#: plugins/mail/init.php:123
+msgid "Send e-mail"
+msgstr "Lähetä sähköposti"
+
+#: plugins/note/init.php:26
+#: plugins/note/note.js:11
+msgid "Edit article note"
+msgstr ""
+
+#: plugins/googlereaderimport/init.php:178
+#, php-format
+msgid "All done. %d out of %d articles imported."
+msgstr ""
+
+#: plugins/googlereaderimport/init.php:182
+msgid "The document has incorrect format."
+msgstr ""
+
+#: plugins/googlereaderimport/init.php:353
+msgid "Import starred or shared items from Google Reader"
+msgstr ""
+
+#: plugins/googlereaderimport/init.php:357
+msgid "Paste your starred.json or shared.json into the form below."
+msgstr ""
+
+#: plugins/googlereaderimport/init.php:371
+msgid "Import my Starred items"
+msgstr ""
+
+#: plugins/instances/init.php:141
+msgid "Linked"
+msgstr "Linkitetty"
+
+#: plugins/instances/init.php:204
+#: plugins/instances/init.php:395
+msgid "Instance"
+msgstr ""
+
+#: plugins/instances/init.php:215
+#: plugins/instances/init.php:312
+#: plugins/instances/init.php:404
+msgid "Instance URL"
+msgstr ""
+
+#: plugins/instances/init.php:226
+#: plugins/instances/init.php:414
+msgid "Access key:"
+msgstr ""
+
+#: plugins/instances/init.php:229
+#: plugins/instances/init.php:313
+#: plugins/instances/init.php:417
+msgid "Access key"
+msgstr ""
+
+#: plugins/instances/init.php:233
+#: plugins/instances/init.php:421
+msgid "Use one access key for both linked instances."
+msgstr ""
+
+#: plugins/instances/init.php:241
+#: plugins/instances/init.php:429
+msgid "Generate new key"
+msgstr ""
+
+#: plugins/instances/init.php:292
+msgid "Link instance"
+msgstr ""
+
+#: plugins/instances/init.php:304
+msgid "You can connect other instances of Tiny Tiny RSS to this one to share Popular feeds. Link to this instance of Tiny Tiny RSS by using this URL:"
+msgstr ""
+
+#: plugins/instances/init.php:314
+msgid "Last connected"
+msgstr ""
+
+#: plugins/instances/init.php:315
+msgid "Status"
+msgstr "Tila"
+
+#: plugins/instances/init.php:316
+msgid "Stored feeds"
+msgstr ""
+
+#: plugins/instances/init.php:433
+msgid "Create link"
+msgstr "Luo linkki"
+
+#: plugins/share/init.php:25
+msgid "Share by URL"
+msgstr ""
+
+#: plugins/share/init.php:47
+msgid "You can share this article by the following unique URL:"
+msgstr ""
+
+#: plugins/updater/init.php:321
+#: plugins/updater/init.php:338
+#: plugins/updater/updater.js:10
+msgid "Update Tiny Tiny RSS"
+msgstr "Päivitä Tiny Tiny RSS"
+
+#: plugins/updater/init.php:341
+msgid "Your Tiny Tiny RSS installation is up to date."
+msgstr ""
+
+#: plugins/updater/init.php:349
+msgid "Do not close this dialog until updating is finished."
+msgstr ""
+
+#: plugins/updater/init.php:358
+msgid "It is suggested to backup your tt-rss directory first."
+msgstr ""
+
+#: plugins/updater/init.php:359
+msgid "Your database will not be modified."
+msgstr ""
+
+#: plugins/updater/init.php:360
+msgid "Your current tt-rss installation directory will not be modified. It will be renamed and left in the parent directory. You will be able to migrate all your customized files after update finishes."
+msgstr ""
+
+#: plugins/updater/init.php:361
+msgid "Ready to update."
+msgstr ""
+
+#: plugins/updater/init.php:366
+msgid "Start update"
+msgstr "Aloita päivitys"
+
+#: js/PrefFeedTree.js:47
+msgid "Edit category"
+msgstr "Muokkaa kansiota"
+
+#: js/PrefFeedTree.js:54
+msgid "Remove category"
+msgstr "Poista kansio"
+
+#: js/PrefFilterTree.js:48
+msgid "Inverse"
+msgstr "Käänteiset valinnat"
+
+#: js/feedlist.js:397
+#: js/feedlist.js:425
+msgid "Mark all articles in %s as read?"
+msgstr "Merkitäänkö kaikki artikkelit syötteessä %s luetuiksi?"
+
+#: js/feedlist.js:416
+msgid "Mark all articles in %s older than 1 day as read?"
+msgstr "Merkitäänkö kaikki päivää vanhemmat artikkelit syötteessä %s luetuiksi?"
+
+#: js/feedlist.js:419
+msgid "Mark all articles in %s older than 1 week as read?"
+msgstr "Merkitäänkö kaikki viikkoa vanhemmat artikkelit syötteessä %s luetuiksi?"
+
+#: js/feedlist.js:422
+msgid "Mark all articles in %s older than 2 weeks as read?"
+msgstr "Merkitäänkö kaikki kahta viikkoa vanhemmat artikkelit syötteessä %s luetuiksi?"
+
+#: js/functions.js:65
+msgid "The error will be reported to the configured log destination."
+msgstr ""
+
+#: js/functions.js:107
+msgid "Are you sure to report this exception to tt-rss.org? The report will include your browser information. Your IP would be saved in the database."
+msgstr ""
+
+#: js/functions.js:236
+#, fuzzy
+msgid "Click to close"
+msgstr "Napsauta muokataksesi"
+
+#: js/functions.js:612
+msgid "Error explained"
+msgstr ""
+
+#: js/functions.js:694
+msgid "Upload complete."
+msgstr "Lataus valmis."
+
+#: js/functions.js:718
+msgid "Remove stored feed icon?"
+msgstr "Poista suosikkikuvake?"
+
+#: js/functions.js:723
+msgid "Removing feed icon..."
+msgstr "Poistetaan suosikkikuvake..."
+
+#: js/functions.js:728
+msgid "Feed icon removed."
+msgstr "Suosikkikuvake poistettu."
+
+#: js/functions.js:750
+msgid "Please select an image file to upload."
+msgstr "Valitse ladattava kuvatiedosto."
+
+#: js/functions.js:752
+msgid "Upload new icon for this feed?"
+msgstr "Ladataanko uusi suosikkikuvake tälle syötteelle?"
+
+#: js/functions.js:753
+msgid "Uploading, please wait..."
+msgstr "Ladataan, odota..."
+
+#: js/functions.js:769
+msgid "Please enter label caption:"
+msgstr "Syötä tunnisteen nimi:"
+
+#: js/functions.js:774
+msgid "Can't create label: missing caption."
+msgstr "Tunnistetta ei luotu: nimi puuttuu."
+
+#: js/functions.js:817
+msgid "Subscribe to Feed"
+msgstr "Tilaa syöte"
+
+#: js/functions.js:844
+msgid "Subscribed to %s"
+msgstr "Tilattiin syöte %s"
+
+#: js/functions.js:849
+msgid "Specified URL seems to be invalid."
+msgstr "Antamasi osoite on viallinen."
+
+#: js/functions.js:852
+msgid "Specified URL doesn't seem to contain any feeds."
+msgstr "Antamassasi osoitteessa ei ole syötteitä."
+
+#: js/functions.js:862
+#, fuzzy
+msgid "Expand to select feed"
+msgstr "Muokkaa valittuja syötteitä"
+
+#: js/functions.js:874
+msgid "Couldn't download the specified URL: %s"
+msgstr "Osoitteen %s lataaminen epäonnistui"
+
+#: js/functions.js:878
+msgid "XML validation failed: %s"
+msgstr ""
+
+#: js/functions.js:883
+msgid "You are already subscribed to this feed."
+msgstr "Olet jo tilannut tämän syötteen."
+
+#: js/functions.js:1013
+msgid "Edit rule"
+msgstr "Muokkaa sääntöä"
+
+#: js/functions.js:1039
+msgid "Edit action"
+msgstr "Muokkaa toimintoa"
+
+#: js/functions.js:1076
+msgid "Create Filter"
+msgstr "Luo suodatin"
+
+#: js/functions.js:1191
+msgid "Reset subscription? Tiny Tiny RSS will try to subscribe to the notification hub again on next feed update."
+msgstr ""
+
+#: js/functions.js:1202
+msgid "Subscription reset."
+msgstr ""
+
+#: js/functions.js:1212
+#: js/tt-rss.js:677
+msgid "Unsubscribe from %s?"
+msgstr "Perutaanko syötteen %s tilaus?"
+
+#: js/functions.js:1215
+msgid "Removing feed..."
+msgstr "Poistetaan syöte..."
+
+#: js/functions.js:1324
+msgid "Please enter category title:"
+msgstr "Syötä kansion nimi:"
+
+#: js/functions.js:1355
+msgid "Generate new syndication address for this feed?"
+msgstr ""
+
+#: js/functions.js:1359
+#: js/prefs.js:1231
+msgid "Trying to change address..."
+msgstr "Vaihdetaan osoitetta..."
+
+#: js/functions.js:1546
+#: js/tt-rss.js:422
+#: js/tt-rss.js:658
+msgid "You can't edit this kind of feed."
+msgstr "Et voi muokata tämäntyyppistä syötettä."
+
+#: js/functions.js:1561
+msgid "Edit Feed"
+msgstr "Muokkaa syötettä"
+
+#: js/functions.js:1567
+#: js/prefs.js:194
+#: js/prefs.js:749
+msgid "Saving data..."
+msgstr "Tallennetaan tiedot..."
+
+#: js/functions.js:1599
+msgid "More Feeds"
+msgstr "Lisää syötteitä"
+
+#: js/functions.js:1660
+#: js/functions.js:1770
+#: js/prefs.js:397
+#: js/prefs.js:427
+#: js/prefs.js:459
+#: js/prefs.js:642
+#: js/prefs.js:662
+#: js/prefs.js:1207
+#: js/prefs.js:1352
+msgid "No feeds are selected."
+msgstr "Yhtään syötettä ei ole valittuna."
+
+#: js/functions.js:1702
+msgid "Remove selected feeds from the archive? Feeds with stored articles will not be removed."
+msgstr ""
+
+#: js/functions.js:1741
+msgid "Feeds with update errors"
+msgstr "Virheelliset syötteet"
+
+#: js/functions.js:1752
+#: js/prefs.js:1189
+msgid "Remove selected feeds?"
+msgstr "Poistetaanko valitut syötteet?"
+
+#: js/functions.js:1755
+#: js/prefs.js:1192
+msgid "Removing selected feeds..."
+msgstr "Poistetaan valitut syötteet..."
+
+#: js/functions.js:1853
+msgid "Help"
+msgstr "Apua"
+
+#: js/prefs.js:55
+msgid "Please enter login:"
+msgstr "Syötä käyttäjätunnus:"
+
+#: js/prefs.js:62
+msgid "Can't create user: no login specified."
+msgstr "Uutta käyttäjätunnusta ei voi luoda: käyttäjätunnus puuttuu."
+
+#: js/prefs.js:66
+msgid "Adding user..."
+msgstr "Lisätään käyttäjä"
+
+#: js/prefs.js:94
+msgid "User Editor"
+msgstr "Käyttäjätunnusten muokkaus"
+
+#: js/prefs.js:117
+msgid "Edit Filter"
+msgstr "Muokkaa suodatinta"
+
+#: js/prefs.js:164
+msgid "Remove filter?"
+msgstr "Poista suodatin?"
+
+#: js/prefs.js:169
+msgid "Removing filter..."
+msgstr "Poistetaan suodatin..."
+
+#: js/prefs.js:279
+msgid "Remove selected labels?"
+msgstr "Poistetaanko valitut tunnisteet?"
+
+#: js/prefs.js:282
+msgid "Removing selected labels..."
+msgstr ""
+
+#: js/prefs.js:295
+#: js/prefs.js:1393
+msgid "No labels are selected."
+msgstr "Yhtään tunnistetta ei ole valittuna"
+
+#: js/prefs.js:309
+msgid "Remove selected users? Neither default admin nor your account will be removed."
+msgstr ""
+
+#: js/prefs.js:312
+msgid "Removing selected users..."
+msgstr "Poistetaan valitut käyttäjätunnukset..."
+
+#: js/prefs.js:326
+#: js/prefs.js:507
+#: js/prefs.js:528
+#: js/prefs.js:567
+msgid "No users are selected."
+msgstr "Käyttäjätunnuksia ei ole valittu."
+
+#: js/prefs.js:344
+msgid "Remove selected filters?"
+msgstr "Poistetaanko valitut suodattimet?"
+
+#: js/prefs.js:347
+msgid "Removing selected filters..."
+msgstr "Poistetaan valitut suodattimet..."
+
+#: js/prefs.js:359
+#: js/prefs.js:597
+#: js/prefs.js:616
+msgid "No filters are selected."
+msgstr "Yhtään suodatinta ei ole valittuna."
+
+#: js/prefs.js:378
+msgid "Unsubscribe from selected feeds?"
+msgstr "Perutaanko valittujen syötteiden tilaukset?"
+
+#: js/prefs.js:382
+msgid "Unsubscribing from selected feeds..."
+msgstr "Perutaan valittujen syötteiden tilaukset..."
+
+#: js/prefs.js:412
+msgid "Please select only one feed."
+msgstr "Valitse vain yksi syöte."
+
+#: js/prefs.js:418
+msgid "Erase all non-starred articles in selected feed?"
+msgstr "Haluatko poistaa syötteestä kaikki tähdettömät artikkelit?"
+
+#: js/prefs.js:421
+msgid "Clearing selected feed..."
+msgstr "Poistetaan artikkeita..."
+
+#: js/prefs.js:440
+msgid "How many days of articles to keep (0 - use default)?"
+msgstr "Montako päivää artikkeleita säilytetään (0 - käytä oletusarvoa)?"
+
+#: js/prefs.js:443
+msgid "Purging selected feed..."
+msgstr "Siivotaan valittua syötettä..."
+
+#: js/prefs.js:478
+msgid "Login field cannot be blank."
+msgstr "Käyttäjätunnus ei voi olla tyhjä."
+
+#: js/prefs.js:482
+msgid "Saving user..."
+msgstr "Tallennetaan käyttäjä..."
+
+#: js/prefs.js:512
+#: js/prefs.js:533
+#: js/prefs.js:572
+msgid "Please select only one user."
+msgstr "Valitse ainakin yksi käyttäjätunnus."
+
+#: js/prefs.js:537
+msgid "Reset password of selected user?"
+msgstr "Nollaa valittujen käyttäjien salasanat?"
+
+#: js/prefs.js:540
+msgid "Resetting password for selected user..."
+msgstr "Nollataan valittujen käyttäjien salasanat..."
+
+#: js/prefs.js:585
+msgid "User details"
+msgstr "Käyttäjätiedot"
+
+#: js/prefs.js:602
+msgid "Please select only one filter."
+msgstr "Valitse vain yksi syöte"
+
+#: js/prefs.js:620
+msgid "Combine selected filters?"
+msgstr "Yhdistetäänkö valitut suodattimet?"
+
+#: js/prefs.js:623
+msgid "Joining filters..."
+msgstr "Yhdistetään suodattimet..."
+
+#: js/prefs.js:684
+msgid "Edit Multiple Feeds"
+msgstr "Muokkaa useampaa syötettä"
+
+#: js/prefs.js:708
+msgid "Save changes to selected feeds?"
+msgstr "Tallenna valittujen syötteiden muutokset?"
+
+#: js/prefs.js:785
+msgid "OPML Import"
+msgstr ""
+
+#: js/prefs.js:812
+msgid "Please choose an OPML file first."
+msgstr ""
+
+#: js/prefs.js:815
+#: plugins/import_export/import_export.js:115
+#: plugins/googlereaderimport/init.js:45
+msgid "Importing, please wait..."
+msgstr ""
+
+#: js/prefs.js:982
+msgid "Reset to defaults?"
+msgstr "Palautetaanko oletusasetukset?"
+
+#: js/prefs.js:1096
+msgid "Remove category %s? Any nested feeds would be placed into Uncategorized."
+msgstr ""
+
+#: js/prefs.js:1102
+msgid "Removing category..."
+msgstr "Poistetaan kansio..."
+
+#: js/prefs.js:1123
+msgid "Remove selected categories?"
+msgstr "Haluatko poistaa valitun kansion?"
+
+#: js/prefs.js:1126
+msgid "Removing selected categories..."
+msgstr "Poistetaan valitut kansiot..."
+
+#: js/prefs.js:1139
+msgid "No categories are selected."
+msgstr "Yhtään kansiota ei ole valittuna."
+
+#: js/prefs.js:1147
+msgid "Category title:"
+msgstr "Kansion nimi:"
+
+#: js/prefs.js:1151
+msgid "Creating category..."
+msgstr "Luodaan kansio..."
+
+#: js/prefs.js:1178
+msgid "Feeds without recent updates"
+msgstr "Syötteet joissa ei ole tuoreita artikkeleita"
+
+#: js/prefs.js:1227
+msgid "Replace current OPML publishing address with a new one?"
+msgstr ""
+
+#: js/prefs.js:1316
+msgid "Clearing feed..."
+msgstr "Siivotaan syöte..."
+
+#: js/prefs.js:1336
+msgid "Rescore articles in selected feeds?"
+msgstr "Uudelleenpisteytetäänkö valitun syötteen artikkelit?"
+
+#: js/prefs.js:1339
+msgid "Rescoring selected feeds..."
+msgstr "Uudelleenpisteytetään valitut syötteet..."
+
+#: js/prefs.js:1359
+msgid "Rescore all articles? This operation may take a lot of time."
+msgstr "Uudelleenpisteytetäänkö kaikki artikkelit? Toiminto voi kestää kauan."
+
+#: js/prefs.js:1362
+msgid "Rescoring feeds..."
+msgstr "Uudelleenpisteytetään syötteet..."
+
+#: js/prefs.js:1379
+msgid "Reset selected labels to default colors?"
+msgstr "Palautetaanko oletusväri valituille tunnisteille?"
+
+#: js/prefs.js:1416
+msgid "Settings Profiles"
+msgstr "Profiilien asetukset"
+
+#: js/prefs.js:1425
+msgid "Remove selected profiles? Active and default profiles will not be removed."
+msgstr "Poistetaanko valitut profiilit? Aktiivisia ja oletusprofiilia ei poisteta."
+
+#: js/prefs.js:1428
+msgid "Removing selected profiles..."
+msgstr "Poistetaan valitut profiilit..."
+
+#: js/prefs.js:1443
+msgid "No profiles are selected."
+msgstr "Yhtään profiilia ei ole valittuna."
+
+#: js/prefs.js:1451
+#: js/prefs.js:1504
+msgid "Activate selected profile?"
+msgstr "Aktivoidaanko valittu profiili?"
+
+#: js/prefs.js:1467
+#: js/prefs.js:1520
+msgid "Please choose a profile to activate."
+msgstr "Valitse profiili jonka haluat aktivoida."
+
+#: js/prefs.js:1472
+msgid "Creating profile..."
+msgstr "Luodaan profiili..."
+
+#: js/prefs.js:1528
+msgid "This will invalidate all previously generated feed URLs. Continue?"
+msgstr "Kaikki luodut syöteosoitteet poistetaan. Jatketaanko?"
+
+#: js/prefs.js:1531
+#: js/prefs.js:1550
+msgid "Clearing URLs..."
+msgstr "Poistetaan osoitteita..."
+
+#: js/prefs.js:1538
+msgid "Generated URLs cleared."
+msgstr "Luodut osoitteet poistettiin."
+
+#: js/prefs.js:1547
+msgid "This will invalidate all previously shared article URLs. Continue?"
+msgstr "Kaikki jaettujen artikkeleiden osoitteet poistetaan. Jatketaanko?"
+
+#: js/prefs.js:1557
+msgid "Shared URLs cleared."
+msgstr "Jaetut osoitteet poistettiin."
+
+#: js/prefs.js:1648
+msgid "Label Editor"
+msgstr "Tunnisteiden muokkaus"
+
+#: js/prefs.js:1770
+msgid "Subscribing to feeds..."
+msgstr "Tilataan syötteet..."
+
+#: js/prefs.js:1807
+msgid "Clear stored data for this plugin?"
+msgstr "Poistetaanko kaikki tämän lisäosan tallentamat tiedot?"
+
+#: js/prefs.js:1824
+msgid "Clear all messages in the error log?"
+msgstr ""
+
+#: js/tt-rss.js:127
+msgid "Mark all articles as read?"
+msgstr "Merkitäänkö kaikki artikkelit luetuksi?"
+
+#: js/tt-rss.js:133
+msgid "Marking all feeds as read..."
+msgstr "Merkitään kaikki syötteet luetuiksi..."
+
+#: js/tt-rss.js:381
+msgid "Please enable mail plugin first."
+msgstr "Aktivoi ensin email-lisäosa."
+
+#: js/tt-rss.js:493
+msgid "Please enable embed_original plugin first."
+msgstr ""
+
+#: js/tt-rss.js:645
+msgid "Select item(s) by tags"
+msgstr "Valitse avainsanojen perusteella"
+
+#: js/tt-rss.js:666
+msgid "You can't unsubscribe from the category."
+msgstr "Et voi perua tämän kansion tilausta."
+
+#: js/tt-rss.js:671
+#: js/tt-rss.js:825
+msgid "Please select some feed first."
+msgstr "Valitse syötteet ensin."
+
+#: js/tt-rss.js:820
+msgid "You can't rescore this kind of feed."
+msgstr ""
+
+#: js/tt-rss.js:830
+msgid "Rescore articles in %s?"
+msgstr "Uudelleenpisteytä artikkelit kansiossa %s?"
+
+#: js/tt-rss.js:833
+msgid "Rescoring articles..."
+msgstr "Uudelleenpisteytetään artikkelit..."
+
+#: js/tt-rss.js:967
+msgid "New version available!"
+msgstr "Uusi versio saatavilla!"
+
+#: js/viewfeed.js:100
+msgid "Cancel search"
+msgstr "Peru haku"
+
+#: js/viewfeed.js:449
+msgid "Unstar article"
+msgstr "Poista tähti artikkelista"
+
+#: js/viewfeed.js:453
+msgid "Star article"
+msgstr "Merkitse artikkeli tähdellä"
+
+#: js/viewfeed.js:493
+msgid "Unpublish article"
+msgstr "Aseta artikkeli yksityiseksi"
+
+#: js/viewfeed.js:497
+msgid "Publish article"
+msgstr "Julkista artikkeli"
+
+#: js/viewfeed.js:649
+#, fuzzy
+msgid "%d article selected"
+msgid_plural "%d articles selected"
+msgstr[0] "Yhtään artikkelia ei ole valittuna."
+msgstr[1] "Yhtään artikkelia ei ole valittuna."
+
+#: js/viewfeed.js:721
+#: js/viewfeed.js:749
+#: js/viewfeed.js:776
+#: js/viewfeed.js:839
+#: js/viewfeed.js:873
+#: js/viewfeed.js:993
+#: js/viewfeed.js:1036
+#: js/viewfeed.js:1089
+#: js/viewfeed.js:2066
+#: plugins/mailto/init.js:7
+#: plugins/mail/mail.js:7
+msgid "No articles are selected."
+msgstr "Yhtään artikkelia ei ole valittuna."
+
+#: js/viewfeed.js:1001
+msgid "Delete %d selected article in %s?"
+msgid_plural "Delete %d selected articles in %s?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/viewfeed.js:1003
+msgid "Delete %d selected article?"
+msgid_plural "Delete %d selected articles?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/viewfeed.js:1045
+msgid "Archive %d selected article in %s?"
+msgid_plural "Archive %d selected articles in %s?"
+msgstr[0] "Arkistoi %d valittu artikkeli syötteestä %s?"
+msgstr[1] "Arkistoi %d valittua artikkelia syötteestä %s?"
+
+#: js/viewfeed.js:1048
+msgid "Move %d archived article back?"
+msgid_plural "Move %d archived articles back?"
+msgstr[0] "Siirretäänkö %d arkistoitu artikkeli takaisin?"
+msgstr[1] "Siirretäänkö %d arkistoitua artikkelia takaisin?"
+
+#: js/viewfeed.js:1050
+msgid "Please note that unstarred articles might get purged on next feed update."
+msgstr ""
+
+#: js/viewfeed.js:1095
+msgid "Mark %d selected article in %s as read?"
+msgid_plural "Mark %d selected articles in %s as read?"
+msgstr[0] "Merkitäänkö %d valittu artikkeli syötteessä %s luetuksi?"
+msgstr[1] "Merkitäänkö %d valittua artikkelia syötteessä %s luetuiksi?"
+
+#: js/viewfeed.js:1119
+msgid "Edit article Tags"
+msgstr "Muokkaa artikkelin avainsanoja"
+
+#: js/viewfeed.js:1125
+msgid "Saving article tags..."
+msgstr "Tallennetaan artikkelin avainsanat..."
+
+#: js/viewfeed.js:1331
+msgid "No article is selected."
+msgstr "Yhtään artikkelia ei ole valittuna."
+
+#: js/viewfeed.js:1366
+msgid "No articles found to mark"
+msgstr "Artikkeleita ei ole merkittäväksi"
+
+#: js/viewfeed.js:1368
+msgid "Mark %d article as read?"
+msgid_plural "Mark %d articles as read?"
+msgstr[0] "Merkitäänkö %d artikkeli luetuksi?"
+msgstr[1] "Merkitäänkö %d artikkelia luetuiksi?"
+
+#: js/viewfeed.js:1870
+msgid "Open original article"
+msgstr "Avaa alkuperäinen artikkeli"
+
+#: js/viewfeed.js:1876
+msgid "Display article URL"
+msgstr "Näytä artikkelin osoite"
+
+#: js/viewfeed.js:1895
+msgid "Toggle marked"
+msgstr "Käännä valitun merkintä"
+
+#: js/viewfeed.js:1976
+msgid "Assign label"
+msgstr "Liitä tunniste"
+
+#: js/viewfeed.js:1981
+msgid "Remove label"
+msgstr "Poista tunniste"
+
+#: js/viewfeed.js:2035
+msgid "Please enter new score for selected articles:"
+msgstr "Anna uusi pistemäärä valituille artikkeleille:"
+
+#: js/viewfeed.js:2077
+msgid "Please enter new score for this article:"
+msgstr "Anna uusi pistemäärä tälle artikkelille:"
+
+#: js/viewfeed.js:2110
+msgid "Article URL:"
+msgstr "Artikkelin osoite:"
+
+#: plugins/embed_original/init.js:6
+msgid "Sorry, your browser does not support sandboxed iframes."
+msgstr ""
+
+#: plugins/mailto/init.js:21
+#: plugins/mail/mail.js:21
+msgid "Forward article by email"
+msgstr "Lähetä sähköpostilla"
+
+#: plugins/import_export/import_export.js:13
+msgid "Export Data"
+msgstr "Vie tiedot"
+
+#: plugins/import_export/import_export.js:40
+msgid "Finished, exported %d article. You can download the data <a class='visibleLink' href='%u'>here</a>."
+msgid_plural "Finished, exported %d articles. You can download the data <a class='visibleLink' href='%u'>here</a>."
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/import_export/import_export.js:93
+msgid "Data Import"
+msgstr "Tuo tiedot"
+
+#: plugins/import_export/import_export.js:112
+msgid "Please choose the file first."
+msgstr ""
+
+#: plugins/note/note.js:17
+msgid "Saving article note..."
+msgstr ""
+
+#: plugins/googlereaderimport/init.js:18
+msgid "Google Reader Import"
+msgstr ""
+
+#: plugins/googlereaderimport/init.js:42
+msgid "Please choose a file first."
+msgstr "Valitse ensin tiedosto."
+
+#: plugins/instances/instances.js:10
+msgid "Link Instance"
+msgstr ""
+
+#: plugins/instances/instances.js:73
+msgid "Edit Instance"
+msgstr ""
+
+#: plugins/instances/instances.js:122
+msgid "Remove selected instances?"
+msgstr ""
+
+#: plugins/instances/instances.js:125
+msgid "Removing selected instances..."
+msgstr ""
+
+#: plugins/instances/instances.js:139
+#: plugins/instances/instances.js:151
+msgid "No instances are selected."
+msgstr ""
+
+#: plugins/instances/instances.js:156
+msgid "Please select only one instance."
+msgstr ""
+
+#: plugins/share/share.js:10
+msgid "Share article by URL"
+msgstr ""
+
+#: plugins/updater/updater.js:58
+msgid "Backup your tt-rss directory before continuing. Please type 'yes' to continue."
+msgstr ""
+
+#~ msgid "(Un)hide empty categories"
+#~ msgstr "Piilota/näytä tyhjät kansiot"
+
+#~ msgid "Published articles and generated feeds"
+#~ msgstr "Julkaistut artikkelit ja luodut syötteet"
+
+#~ msgid "Articles shared by URL"
+#~ msgstr "Osoitteen kautta jaetut artikkelit"
+
+#~ msgid "These feeds have not been updated because of errors:"
+#~ msgstr "Näitä syötteitä ei ole päivitetty virheiden vuoksi:"
+
+#~ msgid "Hello,"
+#~ msgstr "Hei,"
+
+#~ msgid "Regular version"
+#~ msgstr "Tavallinen versio"
+
+#~ msgid "Enable categories"
+#~ msgstr "Käytä kansioita"
+
+#~ msgid "Article archive"
+#~ msgstr "Artikkeliarkisto"
+
+#~ msgid "Mark %d displayed article as read?"
+#~ msgid_plural "Mark %d displayed articles as read?"
+#~ msgstr[0] "Merkitäänkö %d näytetty artikkeli luetuksi?"
+#~ msgstr[1] "Merkitäänkö %d näytettyä artikkelia luetuiksi?"
+
+#~ msgid "Error: unable to load article."
+#~ msgstr "Virhe: artikkelia ei voida ladata."
+
+#~ msgid "Click to expand article."
+#~ msgstr "Napsauta nähdäksesi koko artikkelin."
+
+#~ msgid "%d more..."
+#~ msgid_plural "%d more..."
+#~ msgstr[0] "%d lisää..."
+#~ msgstr[1] "%d lisää..."
+
+#~ msgid "No unread feeds."
+#~ msgstr "Ei lukemattomia syötteitä."
+
+#~ msgid "Load more..."
+#~ msgstr "Lataa lisää..."
+
+#~ msgid "Switch to digest..."
+#~ msgstr "Vaihda tiivistelmään..."
+
+#~ msgid "Show tag cloud..."
+#~ msgstr "Näytä avainsanapilvi..."
+
+#~ msgid "Select theme"
+#~ msgstr "Valitse teema"
+
+#~ msgid "close"
+#~ msgstr "sulje"
+
+#~ msgid "Default interval between feed updates"
+#~ msgstr "Oletusaikaväli syötepäivityksille"
+
+#~ msgid "Could not update database"
+#~ msgstr "Tietokannan päivitys epäonnistui"
+
+#~ msgid "Checking version... "
+#~ msgstr "Tarkistetaan versio..."
+
+#~ msgid "OK!"
+#~ msgstr "OK!"
+
+#~ msgid "ERROR!"
+#~ msgstr "VIRHE!"
+
+#~ msgid "Mark feed as read"
+#~ msgstr "Merkitse syöte luetuksi"
+
+#~ msgid "Enable external API"
+#~ msgstr "Aktivoi ulkoinen API"
+
+#~ msgid "When this option is enabled, headlines in Special feeds and Labels are grouped by feeds"
+#~ msgstr "Otsikot Erikoissyötteissä ja Tunnisteissa ryhmitellään syötteittäin"
+
+#~ msgid "Title or Content"
+#~ msgstr "Otsikko tai sisältö"
+
+#~ msgid "Link"
+#~ msgstr "Linkki"
+
+#~ msgid "Content"
+#~ msgstr "Sisältö"
+
+#~ msgid "Article Date"
+#~ msgstr "Artikkelin päiväys"
+
+#~ msgid "Delete article"
+#~ msgstr "Poista artikkeli"
+
+#~ msgid "Set starred"
+#~ msgstr "Merkitse tähdellä"
+
+#~ msgid "Assign tags"
+#~ msgstr "Liitä avainsanoja"
+
+#~ msgid "Modify score"
+#~ msgstr "Muokkaa pisteytystä"
+
+#~ msgid "Date syntax appears to be correct:"
+#~ msgstr "Päiväyksen muoto on oikein:"
+
+#~ msgid "Date syntax is incorrect."
+#~ msgstr "Päiväyksen muoto on väärin."
+
+#~ msgid "Tag Cloud"
+#~ msgstr "Avainsanapilvi"
+
+#~ msgid "Mark all visible articles in %s as read?"
+#~ msgstr "Merkitse kaikki kansiossa %s näkyvät artikkelit luetuksi?"
diff --git a/locale/lv_LV/LC_MESSAGES/messages.mo b/locale/lv_LV/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..478cb408e
--- /dev/null
+++ b/locale/lv_LV/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/lv_LV/LC_MESSAGES/messages.po b/locale/lv_LV/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..5a5a8c04e
--- /dev/null
+++ b/locale/lv_LV/LC_MESSAGES/messages.po
@@ -0,0 +1,3965 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-05-14 09:35+0400\n"
+"PO-Revision-Date: 2013-03-18 22:55+0300\n"
+"Last-Translator: Valdis Vītoliņš <[email protected]>\n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: backend.php:73
+msgid "Use default"
+msgstr "Lietot noklusēto"
+
+#: backend.php:74
+msgid "Never purge"
+msgstr "Nekad nedzēst"
+
+#: backend.php:75
+msgid "1 week old"
+msgstr "1 nedēļu vecs"
+
+#: backend.php:76
+msgid "2 weeks old"
+msgstr "2 nedēļas vecs"
+
+#: backend.php:77
+msgid "1 month old"
+msgstr "1 mēnesi vecs"
+
+#: backend.php:78
+msgid "2 months old"
+msgstr "2 mēnešus vecs"
+
+#: backend.php:79
+msgid "3 months old"
+msgstr "3 mēnešus vecs"
+
+#: backend.php:82
+msgid "Default interval"
+msgstr "Noklusētais intervāls"
+
+#: backend.php:83
+#: backend.php:93
+msgid "Disable updates"
+msgstr "Atslēgt atjaunojumus"
+
+#: backend.php:84
+#: backend.php:94
+msgid "Each 15 minutes"
+msgstr "Katras 15 minūtes"
+
+#: backend.php:85
+#: backend.php:95
+msgid "Each 30 minutes"
+msgstr "Katras 30 minūtes"
+
+#: backend.php:86
+#: backend.php:96
+msgid "Hourly"
+msgstr "Ik stundu"
+
+#: backend.php:87
+#: backend.php:97
+msgid "Each 4 hours"
+msgstr "Katras 4 stundas"
+
+#: backend.php:88
+#: backend.php:98
+msgid "Each 12 hours"
+msgstr "Katras 12 stundas"
+
+#: backend.php:89
+#: backend.php:99
+msgid "Daily"
+msgstr "Ik dienas"
+
+#: backend.php:90
+#: backend.php:100
+msgid "Weekly"
+msgstr "Ik nedēļu"
+
+#: backend.php:103
+#: classes/pref/users.php:119
+#: classes/pref/system.php:51
+msgid "User"
+msgstr "Lietotājs"
+
+#: backend.php:104
+msgid "Power User"
+msgstr "Superlietotājs"
+
+#: backend.php:105
+msgid "Administrator"
+msgstr "Administrators"
+
+#: errors.php:9
+msgid "This program requires XmlHttpRequest to function properly. Your browser doesn't seem to support it."
+msgstr "Lai šī programma strādātu pareizi, ir nepieciešams XmlHttpRequest atbalsts. Šķiet, ka jūsu pārlūkprogramma to neatbalsta."
+
+#: errors.php:12
+msgid "This program requires cookies to function properly. Your browser doesn't seem to support them."
+msgstr "Lai šī programma strādātu pareizi, ir nepieciešams sīkfailu atbalsts. Šķiet, ka jūsu pārlūkprogramma tos neatbalsta."
+
+#: errors.php:15
+#, fuzzy
+msgid "Backend sanity check failed."
+msgstr "Neizdevās aizmugures pareizības pārbaude"
+
+#: errors.php:17
+msgid "Frontend sanity check failed."
+msgstr "Neizdevās priekšpuses pareizības pārbaude."
+
+#: errors.php:19
+msgid "Incorrect database schema version. &lt;a href='db-updater.php'&gt;Please update&lt;/a&gt;."
+msgstr "Nepareiza datu bāzes shēmas versija. &lt;a href='db-updater.php'&gt;Lūdzu atjaunojiet&lt;/a&gt;."
+
+#: errors.php:21
+msgid "Request not authorized."
+msgstr "Neautorizēts pieprasījums."
+
+#: errors.php:23
+msgid "No operation to perform."
+msgstr "Nav veicamās darbības."
+
+#: errors.php:25
+msgid "Could not display feed: query failed. Please check label match syntax or local configuration."
+msgstr "Pieprasījums neizdevās un neizdevās parādīt barotni. Lūdzu pārbaudiet iezīmes sintaksi vai arī lokālos iestatījumus."
+
+#: errors.php:27
+msgid "Denied. Your access level is insufficient to access this page."
+msgstr "Jums nav nepieciešamo tiesību šīs lapas aplūkošanai."
+
+#: errors.php:29
+msgid "Configuration check failed"
+msgstr "Neizdevās iestatījumu pārbaude."
+
+#: errors.php:31
+#, fuzzy
+msgid "Your version of MySQL is not currently supported. Please see official site for more information."
+msgstr ""
+"Jūsu izmantotā MySQL versija netiek atbalstīta. Lūdzu skatiet\n"
+"\t\tpapildu informāciju oficiālajā vietnē."
+
+#: errors.php:35
+msgid "SQL escaping test failed, check your database and PHP configuration"
+msgstr "Neizdevās SQL izņēmumu tests, pārbaudiet jūsu datu bāzes un PHP iestatījumus"
+
+#: index.php:128
+#: index.php:145
+#: index.php:265
+#: prefs.php:98
+#: classes/backend.php:5
+#: classes/pref/labels.php:296
+#: classes/pref/filters.php:678
+#: classes/pref/feeds.php:1372
+#: js/feedlist.js:128
+#: js/feedlist.js:441
+#: js/functions.js:446
+#: js/functions.js:784
+#: js/functions.js:1194
+#: js/functions.js:1330
+#: js/functions.js:1642
+#: js/prefs.js:86
+#: js/prefs.js:576
+#: js/prefs.js:666
+#: js/prefs.js:867
+#: js/prefs.js:1454
+#: js/prefs.js:1507
+#: js/prefs.js:1566
+#: js/prefs.js:1583
+#: js/prefs.js:1599
+#: js/prefs.js:1619
+#: js/prefs.js:1792
+#: js/prefs.js:1808
+#: js/prefs.js:1826
+#: js/tt-rss.js:507
+#: js/tt-rss.js:524
+#: js/viewfeed.js:816
+#: js/viewfeed.js:1245
+#: plugins/import_export/import_export.js:17
+#: plugins/updater/updater.js:17
+msgid "Loading, please wait..."
+msgstr "Ielādē, lūdzu gaidiet..."
+
+#: index.php:159
+msgid "Collapse feedlist"
+msgstr "Sakļaut barotņu sarakstu"
+
+#: index.php:162
+msgid "Show articles"
+msgstr "Rādīt rakstus"
+
+#: index.php:165
+msgid "Adaptive"
+msgstr "Adaptīvs"
+
+#: index.php:166
+msgid "All Articles"
+msgstr "Visus rakstus"
+
+#: index.php:167
+#: include/functions.php:2008
+#: classes/feeds.php:98
+msgid "Starred"
+msgstr "Zvaigžņotos"
+
+#: index.php:168
+#: include/functions.php:2009
+#: classes/feeds.php:99
+msgid "Published"
+msgstr "Publicētos"
+
+#: index.php:169
+#: classes/feeds.php:85
+#: classes/feeds.php:97
+msgid "Unread"
+msgstr "Nelasītos"
+
+#: index.php:170
+#, fuzzy
+msgid "Unread First"
+msgstr "Nelasītos"
+
+#: index.php:171
+msgid "With Note"
+msgstr ""
+
+#: index.php:172
+msgid "Ignore Scoring"
+msgstr "Ignorēt novērtējumu"
+
+#: index.php:175
+msgid "Sort articles"
+msgstr "Kārtot rakstus"
+
+#: index.php:178
+msgid "Default"
+msgstr "Noklusētais"
+
+#: index.php:179
+msgid "Newest first"
+msgstr ""
+
+#: index.php:180
+msgid "Oldest first"
+msgstr ""
+
+#: index.php:181
+msgid "Title"
+msgstr "Virsraksts"
+
+#: index.php:185
+#: index.php:233
+#: include/functions.php:1998
+#: classes/feeds.php:103
+#: classes/feeds.php:424
+#: js/FeedTree.js:128
+#: js/FeedTree.js:156
+msgid "Mark as read"
+msgstr "Atzīmēt kā lasītu"
+
+#: index.php:188
+msgid "Older than one day"
+msgstr ""
+
+#: index.php:191
+msgid "Older than one week"
+msgstr ""
+
+#: index.php:194
+msgid "Older than two weeks"
+msgstr ""
+
+#: index.php:210
+msgid "Communication problem with server."
+msgstr ""
+
+#: index.php:218
+msgid "New version of Tiny Tiny RSS is available!"
+msgstr "Ir pieejama jauna Tiny Tiny RSS versija!"
+
+#: index.php:223
+msgid "Actions..."
+msgstr "Darbības"
+
+#: index.php:225
+#, fuzzy
+msgid "Preferences..."
+msgstr "Iestatījumi"
+
+#: index.php:226
+msgid "Search..."
+msgstr "Meklēt"
+
+#: index.php:227
+msgid "Feed actions:"
+msgstr "Barotnes darbības"
+
+#: index.php:228
+#: classes/handler/public.php:562
+msgid "Subscribe to feed..."
+msgstr "Abonēt barotni..."
+
+#: index.php:229
+msgid "Edit this feed..."
+msgstr "Rediģēt šo barotni..."
+
+#: index.php:230
+msgid "Rescore feed"
+msgstr "Pārvērtēt barotni"
+
+#: index.php:231
+#: classes/pref/feeds.php:746
+#: classes/pref/feeds.php:1327
+#: js/PrefFeedTree.js:73
+msgid "Unsubscribe"
+msgstr "Atteikties"
+
+#: index.php:232
+msgid "All feeds:"
+msgstr "Visas barotnes:"
+
+#: index.php:234
+msgid "(Un)hide read feeds"
+msgstr "(Ne)rādīt lasītās barotnes"
+
+#: index.php:235
+msgid "Other actions:"
+msgstr "Citas darbības:"
+
+#: index.php:236
+#: include/functions.php:1984
+#, fuzzy
+msgid "Toggle widescreen mode"
+msgstr "Pārslēgt zvaigžņošanu"
+
+#: index.php:237
+msgid "Select by tags..."
+msgstr "Atlasīt pēc iezīmēm..."
+
+#: index.php:238
+msgid "Create label..."
+msgstr "Izveidot iezīmi"
+
+#: index.php:239
+msgid "Create filter..."
+msgstr "Izveidot filtru..."
+
+#: index.php:240
+msgid "Keyboard shortcuts help"
+msgstr "Isinājumtaustiņu palīdzība"
+
+#: index.php:249
+msgid "Logout"
+msgstr "Atteikties"
+
+#: prefs.php:33
+#: prefs.php:116
+#: include/functions.php:2011
+#: classes/pref/prefs.php:440
+msgid "Preferences"
+msgstr "Iestatījumi"
+
+#: prefs.php:107
+msgid "Keyboard shortcuts"
+msgstr "Īsinājumtaustiņi"
+
+#: prefs.php:108
+msgid "Exit preferences"
+msgstr "Iziet no iestatījumiem"
+
+#: prefs.php:119
+#: classes/pref/feeds.php:106
+#: classes/pref/feeds.php:1253
+#: classes/pref/feeds.php:1316
+msgid "Feeds"
+msgstr "Barotnes"
+
+#: prefs.php:122
+#: classes/pref/filters.php:154
+msgid "Filters"
+msgstr "Filtri"
+
+#: prefs.php:125
+#: include/functions.php:1176
+#: include/functions.php:1832
+#: classes/pref/labels.php:90
+msgid "Labels"
+msgstr "Iezīmes"
+
+#: prefs.php:129
+msgid "Users"
+msgstr "Lietotāji"
+
+#: prefs.php:132
+msgid "System"
+msgstr ""
+
+#: register.php:184
+#: include/login_form.php:238
+msgid "Create new account"
+msgstr "Izveidot jaunu kontu"
+
+#: register.php:190
+msgid "New user registrations are administratively disabled."
+msgstr "Jaunu lietotāju reģistrēšana ir administratīvi atcelta."
+
+#: register.php:194
+#: register.php:239
+#: register.php:252
+#: register.php:267
+#: register.php:286
+#: register.php:334
+#: register.php:344
+#: register.php:356
+#: classes/handler/public.php:632
+#: classes/handler/public.php:723
+#: classes/handler/public.php:805
+#: classes/handler/public.php:880
+#: classes/handler/public.php:894
+#: classes/handler/public.php:901
+#: classes/handler/public.php:926
+msgid "Return to Tiny Tiny RSS"
+msgstr "Atgriezties uz Tiny Tiny RSS"
+
+#: register.php:215
+msgid "Your temporary password will be sent to the specified email. Accounts, which were not logged in once, are erased automatically 24 hours after temporary password is sent."
+msgstr "Jūsu īslaicīgā parole tiks nosūtīta uz norādīto e-pastu. Konti, kuros ne neviens nav pieteicies, tiek automātiski izdzēsti 24 stundu laikā pēc īslaicīgās paroles nosūtīšanas."
+
+#: register.php:221
+msgid "Desired login:"
+msgstr "Vēlamais pieteikšanās vārds:"
+
+#: register.php:224
+msgid "Check availability"
+msgstr "Pārbaudīt pieejamību"
+
+#: register.php:226
+#: classes/handler/public.php:763
+msgid "Email:"
+msgstr "E-pasts:"
+
+#: register.php:229
+#: classes/handler/public.php:768
+msgid "How much is two plus two:"
+msgstr "Cik ir divi un divi:"
+
+#: register.php:232
+msgid "Submit registration"
+msgstr "Iesniegt reģistrāciju"
+
+#: register.php:250
+msgid "Your registration information is incomplete."
+msgstr "Jūsu reģistrācija ir nepilnīga."
+
+#: register.php:265
+msgid "Sorry, this username is already taken."
+msgstr "Piedodiet, lietotāja vārds jau tiek izmantots."
+
+#: register.php:284
+msgid "Registration failed."
+msgstr "Reģistrācija neizdevās."
+
+#: register.php:331
+msgid "Account created successfully."
+msgstr "Konts ir veiksmīgi izveidots."
+
+#: register.php:353
+msgid "New user registrations are currently closed."
+msgstr "Jaunu lietotāju reģistrācija šobrīd ir slēgta."
+
+#: update.php:55
+msgid "Tiny Tiny RSS data update script."
+msgstr "Tiny Tiny RSS datu atjaunošanas skripts."
+
+#: include/digest.php:109
+#: include/functions.php:1185
+#: include/functions.php:1733
+#: include/functions.php:1818
+#: include/functions.php:1840
+#: classes/opml.php:416
+#: classes/pref/feeds.php:218
+msgid "Uncategorized"
+msgstr "Nekategorizēts"
+
+#: include/feedbrowser.php:83
+#, fuzzy, php-format
+msgid "%d archived article"
+msgid_plural "%d archived articles"
+msgstr[0] "%d arhivēti raksti"
+msgstr[1] "%d arhivēti raksti"
+
+#: include/feedbrowser.php:107
+msgid "No feeds found."
+msgstr "Neatradu barotnes."
+
+#: include/functions.php:1174
+#: include/functions.php:1830
+msgid "Special"
+msgstr "Īpaši"
+
+#: include/functions.php:1681
+#: classes/feeds.php:1097
+#: classes/pref/filters.php:425
+msgid "All feeds"
+msgstr "Visas barotnes"
+
+#: include/functions.php:1885
+msgid "Starred articles"
+msgstr "Zvaigžņotie raksti"
+
+#: include/functions.php:1887
+msgid "Published articles"
+msgstr "Publicētie raksti"
+
+#: include/functions.php:1889
+msgid "Fresh articles"
+msgstr "Jaunākie raksti"
+
+#: include/functions.php:1891
+#: include/functions.php:2006
+msgid "All articles"
+msgstr "Visi raksti"
+
+#: include/functions.php:1893
+msgid "Archived articles"
+msgstr "Arhivētie raksti"
+
+#: include/functions.php:1895
+msgid "Recently read"
+msgstr "Nesen lasītie raksti"
+
+#: include/functions.php:1958
+msgid "Navigation"
+msgstr "Navigācija"
+
+#: include/functions.php:1959
+#, fuzzy
+msgid "Open next feed"
+msgstr "Pēc noķeršanas rādīt nākamo barotni"
+
+#: include/functions.php:1960
+msgid "Open previous feed"
+msgstr ""
+
+#: include/functions.php:1961
+#, fuzzy
+msgid "Open next article"
+msgstr "Atvērt sākotnējo rakstu"
+
+#: include/functions.php:1962
+#, fuzzy
+msgid "Open previous article"
+msgstr "Atvērt sākotnējo rakstu"
+
+#: include/functions.php:1963
+msgid "Open next article (don't scroll long articles)"
+msgstr ""
+
+#: include/functions.php:1964
+msgid "Open previous article (don't scroll long articles)"
+msgstr ""
+
+#: include/functions.php:1965
+msgid "Move to next article (don't expand or mark read)"
+msgstr ""
+
+#: include/functions.php:1966
+msgid "Move to previous article (don't expand or mark read)"
+msgstr ""
+
+#: include/functions.php:1967
+msgid "Show search dialog"
+msgstr "Rādīt meklēšanas logu"
+
+#: include/functions.php:1968
+#, fuzzy
+msgid "Article"
+msgstr "Visus rakstus"
+
+#: include/functions.php:1969
+msgid "Toggle starred"
+msgstr "Pārslēgt zvaigžņošanu"
+
+#: include/functions.php:1970
+#: js/viewfeed.js:1906
+msgid "Toggle published"
+msgstr "Pārslēgt publicēšanu"
+
+#: include/functions.php:1971
+#: js/viewfeed.js:1884
+msgid "Toggle unread"
+msgstr "Pārslēgt nelasītu"
+
+#: include/functions.php:1972
+msgid "Edit tags"
+msgstr "Rediģēt iezīmes"
+
+#: include/functions.php:1973
+#, fuzzy
+msgid "Dismiss selected"
+msgstr "Atmest atlasītos rakstus"
+
+#: include/functions.php:1974
+#, fuzzy
+msgid "Dismiss read"
+msgstr "Atmest lasītos rakstus"
+
+#: include/functions.php:1975
+#, fuzzy
+msgid "Open in new window"
+msgstr "Atvērt rakstu jaunā logā"
+
+#: include/functions.php:1976
+#: js/viewfeed.js:1925
+msgid "Mark below as read"
+msgstr "Iezīmēt lejup kā lasītus"
+
+#: include/functions.php:1977
+#: js/viewfeed.js:1919
+msgid "Mark above as read"
+msgstr "Iezīmēt augšup kā lasītus"
+
+#: include/functions.php:1978
+#, fuzzy
+msgid "Scroll down"
+msgstr "Viss izdarīts."
+
+#: include/functions.php:1979
+msgid "Scroll up"
+msgstr ""
+
+#: include/functions.php:1980
+#, fuzzy
+msgid "Select article under cursor"
+msgstr "Iezīmēt rakstu zem peles kursora"
+
+#: include/functions.php:1981
+msgid "Email article"
+msgstr "Nosūtīt rakstu uz e-pastu"
+
+#: include/functions.php:1982
+#, fuzzy
+msgid "Close/collapse article"
+msgstr "Aizvērt rakstu"
+
+#: include/functions.php:1983
+#, fuzzy
+msgid "Toggle article expansion (combined mode)"
+msgstr "Pārslēgt publicēšanu"
+
+#: include/functions.php:1985
+#: plugins/embed_original/init.php:31
+#, fuzzy
+msgid "Toggle embed original"
+msgstr "Pārslēgt publicēšanu"
+
+#: include/functions.php:1986
+#, fuzzy
+msgid "Article selection"
+msgstr "Apgriezt rakstu iezīmēšanu"
+
+#: include/functions.php:1987
+msgid "Select all articles"
+msgstr "Iezīmēt visus rakstus"
+
+#: include/functions.php:1988
+#, fuzzy
+msgid "Select unread"
+msgstr "Iezīmēt nelasītos rakstus"
+
+#: include/functions.php:1989
+#, fuzzy
+msgid "Select starred"
+msgstr "Uzlikt zvaigzni"
+
+#: include/functions.php:1990
+#, fuzzy
+msgid "Select published"
+msgstr "Iezīmēt publicētos rakstus"
+
+#: include/functions.php:1991
+#, fuzzy
+msgid "Invert selection"
+msgstr "Apgriezt rakstu iezīmēšanu"
+
+#: include/functions.php:1992
+#, fuzzy
+msgid "Deselect everything"
+msgstr "Neatzīmēt rakstus"
+
+#: include/functions.php:1993
+#: classes/pref/feeds.php:540
+#: classes/pref/feeds.php:783
+msgid "Feed"
+msgstr "Barotne"
+
+#: include/functions.php:1994
+#, fuzzy
+msgid "Refresh current feed"
+msgstr "Atjaunot aktīvo barotni"
+
+#: include/functions.php:1995
+#, fuzzy
+msgid "Un/hide read feeds"
+msgstr "(Ne)rādīt lasītās barotnes"
+
+#: include/functions.php:1996
+#: classes/pref/feeds.php:1319
+msgid "Subscribe to feed"
+msgstr "Abonēt barotni"
+
+#: include/functions.php:1997
+#: js/FeedTree.js:135
+#: js/PrefFeedTree.js:67
+msgid "Edit feed"
+msgstr "Rediģēt barotni"
+
+#: include/functions.php:1999
+#, fuzzy
+msgid "Reverse headlines"
+msgstr "Apgriezt virsrakstu secību"
+
+#: include/functions.php:2000
+#, fuzzy
+msgid "Debug feed update"
+msgstr "Atslēgt atjaunojumus"
+
+#: include/functions.php:2001
+#: js/FeedTree.js:178
+msgid "Mark all feeds as read"
+msgstr "Atzīmēt visas barotnes kā lasītas"
+
+#: include/functions.php:2002
+#, fuzzy
+msgid "Un/collapse current category"
+msgstr "Ievietot kategorijā:"
+
+#: include/functions.php:2003
+#, fuzzy
+msgid "Toggle combined mode"
+msgstr "Pārslēgt publicēšanu"
+
+#: include/functions.php:2004
+#, fuzzy
+msgid "Toggle auto expand in combined mode"
+msgstr "Pārslēgt publicēšanu"
+
+#: include/functions.php:2005
+#, fuzzy
+msgid "Go to"
+msgstr "Doties uz..."
+
+#: include/functions.php:2007
+msgid "Fresh"
+msgstr ""
+
+#: include/functions.php:2010
+#: js/tt-rss.js:457
+#: js/tt-rss.js:642
+msgid "Tag cloud"
+msgstr "Iezīmju mākonis"
+
+#: include/functions.php:2012
+#, fuzzy
+msgid "Other"
+msgstr "Citas barotnes"
+
+#: include/functions.php:2013
+#: classes/pref/labels.php:281
+msgid "Create label"
+msgstr "Izveidot etiķeti"
+
+#: include/functions.php:2014
+#: classes/pref/filters.php:652
+msgid "Create filter"
+msgstr "Izveidot filtru"
+
+#: include/functions.php:2015
+#, fuzzy
+msgid "Un/collapse sidebar"
+msgstr "Sakļaut sānjoslu"
+
+#: include/functions.php:2016
+#, fuzzy
+msgid "Show help dialog"
+msgstr "Rādīt meklēšanas logu"
+
+#: include/functions.php:2537
+#, php-format
+msgid "Search results: %s"
+msgstr "Meklēšanas rezultāti: %s"
+
+#: include/functions.php:3132
+msgid " - "
+msgstr "–"
+
+#: include/functions.php:3154
+#: include/functions.php:3395
+#: classes/article.php:281
+msgid "no tags"
+msgstr "nav iezīmju"
+
+#: include/functions.php:3164
+#: classes/feeds.php:676
+msgid "Edit tags for this article"
+msgstr "Rediģēt šī raksta iezīmes"
+
+#: include/functions.php:3196
+#: classes/feeds.php:628
+msgid "Originally from:"
+msgstr "Sākotnējais no:"
+
+#: include/functions.php:3209
+#: classes/feeds.php:641
+#: classes/pref/feeds.php:559
+msgid "Feed URL"
+msgstr "Barotnes URL"
+
+#: include/functions.php:3241
+#: classes/dlg.php:37
+#: classes/dlg.php:60
+#: classes/dlg.php:93
+#: classes/dlg.php:159
+#: classes/dlg.php:190
+#: classes/dlg.php:217
+#: classes/dlg.php:250
+#: classes/dlg.php:262
+#: classes/backend.php:105
+#: classes/pref/users.php:95
+#: classes/pref/filters.php:145
+#: classes/pref/prefs.php:1096
+#: classes/pref/feeds.php:1626
+#: classes/pref/feeds.php:1694
+#: plugins/import_export/init.php:407
+#: plugins/import_export/init.php:452
+#: plugins/googlereaderimport/init.php:193
+#: plugins/share/init.php:65
+#: plugins/updater/init.php:368
+msgid "Close this window"
+msgstr "Aizvērt šo logu"
+
+#: include/functions.php:3432
+msgid "(edit note)"
+msgstr "(rediģēt piezīmi)"
+
+#: include/functions.php:3667
+msgid "unknown type"
+msgstr "nezināms tips"
+
+#: include/functions.php:3723
+msgid "Attachments"
+msgstr "Pielikumi"
+
+#: include/functions.php:4222
+#, php-format
+msgid "LibXML error %s at line %d (column %d): %s"
+msgstr ""
+
+#: include/login_form.php:183
+#: classes/handler/public.php:475
+#: classes/handler/public.php:758
+msgid "Login:"
+msgstr "Pieteikties:"
+
+#: include/login_form.php:194
+#: classes/handler/public.php:478
+msgid "Password:"
+msgstr "Parole:"
+
+#: include/login_form.php:199
+#, fuzzy
+msgid "I forgot my password"
+msgstr "Nepareiza parole"
+
+#: include/login_form.php:205
+msgid "Profile:"
+msgstr "Profils:"
+
+#: include/login_form.php:209
+#: classes/handler/public.php:233
+#: classes/rpc.php:63
+#: classes/pref/prefs.php:1034
+msgid "Default profile"
+msgstr "Noklusētais profils"
+
+#: include/login_form.php:217
+msgid "Use less traffic"
+msgstr "Saspiest datu plūsmu"
+
+#: include/login_form.php:221
+msgid "Does not display images in articles, reduces automatic refreshes."
+msgstr ""
+
+#: include/login_form.php:229
+msgid "Remember me"
+msgstr ""
+
+#: include/login_form.php:235
+#: classes/handler/public.php:483
+msgid "Log in"
+msgstr "Pieteikties"
+
+#: include/sessions.php:61
+msgid "Session failed to validate (incorrect IP)"
+msgstr "Neizdevās validēt sesiju (mainījusies IP adrese)"
+
+#: classes/article.php:25
+msgid "Article not found."
+msgstr "Raksts netika atrasts."
+
+#: classes/article.php:179
+msgid "Tags for this article (separated by commas):"
+msgstr "Šī raksta iezīmes (atdalītas ar komatiem):"
+
+#: classes/article.php:204
+#: classes/pref/users.php:172
+#: classes/pref/labels.php:79
+#: classes/pref/filters.php:403
+#: classes/pref/prefs.php:980
+#: classes/pref/feeds.php:762
+#: classes/pref/feeds.php:910
+#: plugins/nsfw/init.php:83
+#: plugins/note/init.php:51
+#: plugins/instances/init.php:245
+msgid "Save"
+msgstr "Saglabāt"
+
+#: classes/article.php:206
+#: classes/handler/public.php:452
+#: classes/handler/public.php:486
+#: classes/feeds.php:1024
+#: classes/feeds.php:1076
+#: classes/feeds.php:1136
+#: classes/pref/users.php:174
+#: classes/pref/labels.php:81
+#: classes/pref/filters.php:406
+#: classes/pref/filters.php:801
+#: classes/pref/filters.php:877
+#: classes/pref/filters.php:944
+#: classes/pref/prefs.php:982
+#: classes/pref/feeds.php:763
+#: classes/pref/feeds.php:913
+#: classes/pref/feeds.php:1834
+#: plugins/mail/init.php:124
+#: plugins/note/init.php:53
+#: plugins/instances/init.php:248
+#: plugins/instances/init.php:436
+msgid "Cancel"
+msgstr "Atcelt"
+
+#: classes/handler/public.php:416
+#: plugins/bookmarklets/init.php:40
+msgid "Share with Tiny Tiny RSS"
+msgstr "Kopīgot ar Tiny Tiny RSS"
+
+#: classes/handler/public.php:424
+msgid "Title:"
+msgstr "Virsraksts:"
+
+#: classes/handler/public.php:426
+#: classes/pref/feeds.php:557
+#: classes/pref/feeds.php:798
+#: plugins/instances/init.php:212
+#: plugins/instances/init.php:401
+msgid "URL:"
+msgstr "URL:"
+
+#: classes/handler/public.php:428
+msgid "Content:"
+msgstr "Saturs:"
+
+#: classes/handler/public.php:430
+msgid "Labels:"
+msgstr "Etiķetes:"
+
+#: classes/handler/public.php:449
+msgid "Shared article will appear in the Published feed."
+msgstr "Kopīgotais raksts parādīsies Publicēts barotnē"
+
+#: classes/handler/public.php:451
+msgid "Share"
+msgstr "Kopīgot"
+
+#: classes/handler/public.php:473
+msgid "Not logged in"
+msgstr "Nav pieteicies"
+
+#: classes/handler/public.php:532
+msgid "Incorrect username or password"
+msgstr "Nepareizs lietotāja vārds vai parole"
+
+#: classes/handler/public.php:568
+#: classes/handler/public.php:666
+#, php-format
+msgid "Already subscribed to <b>%s</b>."
+msgstr "Jau ir pasūtījis <b>%s</b>."
+
+#: classes/handler/public.php:571
+#: classes/handler/public.php:657
+#, php-format
+msgid "Subscribed to <b>%s</b>."
+msgstr "Pasūtījis <b>%s</b>."
+
+#: classes/handler/public.php:574
+#: classes/handler/public.php:660
+#, php-format
+msgid "Could not subscribe to <b>%s</b>."
+msgstr "Neizdevās pasūtīt <b>%s</b>."
+
+#: classes/handler/public.php:577
+#: classes/handler/public.php:663
+#, php-format
+msgid "No feeds found in <b>%s</b>."
+msgstr "<b>%s</b> barotne netika atrasta."
+
+#: classes/handler/public.php:580
+#: classes/handler/public.php:669
+msgid "Multiple feed URLs found."
+msgstr "Atradu vairākus barotņu URLus."
+
+#: classes/handler/public.php:584
+#: classes/handler/public.php:676
+#, php-format
+msgid "Could not subscribe to <b>%s</b>.<br>Can't download the Feed URL."
+msgstr "Neizdevās pasūtīt <b>%s</b>.<br>Nevarēju lejuplādēt barotnes URL."
+
+#: classes/handler/public.php:602
+#: classes/handler/public.php:694
+msgid "Subscribe to selected feed"
+msgstr "Pasūtīt norādīto barotni"
+
+#: classes/handler/public.php:627
+#: classes/handler/public.php:718
+msgid "Edit subscription options"
+msgstr "Rediģēt barotnes iestatījumus"
+
+#: classes/handler/public.php:745
+#, fuzzy
+msgid "Password recovery"
+msgstr "Parole"
+
+#: classes/handler/public.php:751
+msgid "You will need to provide valid account name and email. New password will be sent on your email address."
+msgstr ""
+
+#: classes/handler/public.php:773
+#: classes/pref/users.php:356
+msgid "Reset password"
+msgstr "Atstatīt paroli"
+
+#: classes/handler/public.php:783
+msgid "Some of the required form parameters are missing or incorrect."
+msgstr ""
+
+#: classes/handler/public.php:787
+#: classes/handler/public.php:813
+#, fuzzy
+msgid "Go back"
+msgstr "Pārvietot atpakaļ"
+
+#: classes/handler/public.php:809
+msgid "Sorry, login and email combination not found."
+msgstr ""
+
+#: classes/handler/public.php:829
+msgid "Your access level is insufficient to run this script."
+msgstr "Jums nav nepieciešamo skripta palaišanas tiesību. "
+
+#: classes/handler/public.php:853
+msgid "Database Updater"
+msgstr "Datu bāzes atjaunotājs"
+
+#: classes/handler/public.php:918
+msgid "Perform updates"
+msgstr "Izpildīt atjaunojumus"
+
+#: classes/dlg.php:16
+msgid "If you have imported labels and/or filters, you might need to reload preferences to see your new data."
+msgstr "Ja esat importējis etiķetus vai filtrus, iespējams, ka jums nepieciešams pārlādēt iestatījumus, lai redzētu jaunos datus."
+
+#: classes/dlg.php:48
+msgid "Your Public OPML URL is:"
+msgstr "Jūsu publiskais OPML URL ir:"
+
+#: classes/dlg.php:57
+#: classes/dlg.php:214
+msgid "Generate new URL"
+msgstr "Izveidot jaunu URL"
+
+#: classes/dlg.php:71
+msgid "Update daemon is enabled in configuration, but daemon process is not running, which prevents all feeds from updating. Please start the daemon process or contact instance owner."
+msgstr "Atjaunošanas process iestatījumos ir iespējots, bet tas nedarbojas, tāpēc barotnes neatjaunojas. Lūdzu palaidiet atjaunošanas procesu vai arī sazinieties ar servera īpašnieku."
+
+#: classes/dlg.php:75
+#: classes/dlg.php:84
+msgid "Last update:"
+msgstr "Pēdējais atjaunojums:"
+
+#: classes/dlg.php:80
+msgid "Update daemon is taking too long to perform a feed update. This could indicate a problem like crash or a hang. Please check the daemon process or contact instance owner."
+msgstr "Atjaunošanas process aizņem pārāk ilgu laiku. Iespējams, ka tas ir tāpēc, ka process ir \"uzkāries\". Lūdzu pārbaudiet atjaunošanas procesu vai arī sazinieties ar servera īpašnieku."
+
+#: classes/dlg.php:166
+msgid "Match:"
+msgstr "Atbilstība:"
+
+#: classes/dlg.php:168
+msgid "Any"
+msgstr "Jebkurš"
+
+#: classes/dlg.php:171
+msgid "All tags."
+msgstr "Visas iezīmes."
+
+#: classes/dlg.php:173
+msgid "Which Tags?"
+msgstr "Kuras iezīmes?"
+
+#: classes/dlg.php:186
+msgid "Display entries"
+msgstr "Rādīt ierakstus"
+
+#: classes/dlg.php:205
+msgid "You can view this feed as RSS using the following URL:"
+msgstr "Jūs varat skatīt so baronti kā RSS ar sekojošu URL:"
+
+#: classes/dlg.php:233
+#: plugins/updater/init.php:331
+#, php-format
+msgid "New version of Tiny Tiny RSS is available (%s)."
+msgstr "Ir pieejama jauna Tiny Tiny RSS versija (%s)."
+
+#: classes/dlg.php:241
+msgid "You can update using built-in updater in the Preferences or by using update.php"
+msgstr "Jūs varat veikt atjaunojumus, izmantojot iestatījumos norādīto atjaunošanas procesu, vai arī atverot update.php lapu"
+
+#: classes/dlg.php:245
+#: plugins/updater/init.php:335
+msgid "See the release notes"
+msgstr ""
+
+#: classes/dlg.php:247
+msgid "Download"
+msgstr "Lejuplādēt"
+
+#: classes/dlg.php:255
+msgid "Error receiving version information or no new version available."
+msgstr ""
+
+#: classes/feeds.php:56
+#, fuzzy, php-format
+msgid "Last updated: %s"
+msgstr "Pēdējais atjaunojums:"
+
+#: classes/feeds.php:75
+msgid "View as RSS feed"
+msgstr "Skatīt RSS barotni"
+
+#: classes/feeds.php:76
+#: classes/feeds.php:128
+#: classes/pref/feeds.php:1478
+msgid "View as RSS"
+msgstr "Skatīt kā RSS"
+
+#: classes/feeds.php:83
+msgid "Select:"
+msgstr "Iezīmēt:"
+
+#: classes/feeds.php:84
+#: classes/pref/users.php:341
+#: classes/pref/labels.php:275
+#: classes/pref/filters.php:280
+#: classes/pref/filters.php:328
+#: classes/pref/filters.php:646
+#: classes/pref/filters.php:734
+#: classes/pref/filters.php:761
+#: classes/pref/prefs.php:994
+#: classes/pref/feeds.php:1310
+#: classes/pref/feeds.php:1575
+#: classes/pref/feeds.php:1641
+#: plugins/instances/init.php:287
+msgid "All"
+msgstr "Visus"
+
+#: classes/feeds.php:86
+msgid "Invert"
+msgstr "Apgriezt"
+
+#: classes/feeds.php:87
+#: classes/pref/users.php:343
+#: classes/pref/labels.php:277
+#: classes/pref/filters.php:282
+#: classes/pref/filters.php:330
+#: classes/pref/filters.php:648
+#: classes/pref/filters.php:736
+#: classes/pref/filters.php:763
+#: classes/pref/prefs.php:996
+#: classes/pref/feeds.php:1312
+#: classes/pref/feeds.php:1577
+#: classes/pref/feeds.php:1643
+#: plugins/instances/init.php:289
+msgid "None"
+msgstr "Nevienu"
+
+#: classes/feeds.php:93
+#, fuzzy
+msgid "More..."
+msgstr "Papildu iespējas..."
+
+#: classes/feeds.php:95
+msgid "Selection toggle:"
+msgstr "Izvēles pārslēgšana:"
+
+#: classes/feeds.php:101
+msgid "Selection:"
+msgstr "Izvēle:"
+
+#: classes/feeds.php:104
+msgid "Set score"
+msgstr "Iestatīr vērtējumu"
+
+#: classes/feeds.php:107
+msgid "Archive"
+msgstr "Arhivēt"
+
+#: classes/feeds.php:109
+msgid "Move back"
+msgstr "Pārvietot atpakaļ"
+
+#: classes/feeds.php:110
+#: classes/pref/filters.php:289
+#: classes/pref/filters.php:337
+#: classes/pref/filters.php:743
+#: classes/pref/filters.php:770
+msgid "Delete"
+msgstr "Dzēst"
+
+#: classes/feeds.php:115
+#: classes/feeds.php:120
+#: plugins/mailto/init.php:25
+#: plugins/mail/init.php:26
+msgid "Forward by email"
+msgstr "Pārsūtīt e-pastā"
+
+#: classes/feeds.php:124
+msgid "Feed:"
+msgstr "Barotne:"
+
+#: classes/feeds.php:197
+#: classes/feeds.php:824
+msgid "Feed not found."
+msgstr "Barotne netika atrasta."
+
+#: classes/feeds.php:254
+#, fuzzy
+msgid "Never"
+msgstr "Nekad nedzēst"
+
+#: classes/feeds.php:360
+#, fuzzy, php-format
+msgid "Imported at %s"
+msgstr "Imports"
+
+#: classes/feeds.php:520
+msgid "mark as read"
+msgstr "iezīmēt kā lasītu"
+
+#: classes/feeds.php:570
+#, fuzzy
+msgid "Collapse article"
+msgstr "Aizvērt rakstu"
+
+#: classes/feeds.php:725
+msgid "No unread articles found to display."
+msgstr "Nav neizlasītu rakstu, ko rādīt."
+
+#: classes/feeds.php:728
+msgid "No updated articles found to display."
+msgstr "Nav atjaunotu rakstu, ko rādīt."
+
+#: classes/feeds.php:731
+msgid "No starred articles found to display."
+msgstr "Nav zvaigžņotu rakstu, ko rādīt."
+
+#: classes/feeds.php:735
+#, fuzzy
+msgid "No articles found to display. You can assign articles to labels manually from article header context menu (applies to all selected articles) or use a filter."
+msgstr "Netika atrasti parādāmi raksti. Jūs varat pievienot rakstus etiķetēm manuāli (skatiet darbību izvēlni), vai arī ar filtru."
+
+#: classes/feeds.php:737
+msgid "No articles found to display."
+msgstr "Netika atrasti raksti, ko rādīt."
+
+#: classes/feeds.php:752
+#: classes/feeds.php:919
+#, php-format
+msgid "Feeds last updated at %s"
+msgstr "Barotnes pēdējo reizi atjaunotas %s."
+
+#: classes/feeds.php:762
+#: classes/feeds.php:929
+msgid "Some feeds have update errors (click for details)"
+msgstr "Dažas barotnes ir atjaunotas ar kļūdām (klikšķiniet lai skatītu vairāk)"
+
+#: classes/feeds.php:909
+msgid "No feed selected."
+msgstr "Nav izvēlēta barotne."
+
+#: classes/feeds.php:962
+#: classes/feeds.php:970
+msgid "Feed or site URL"
+msgstr "Barotnes vai vietnes URL"
+
+#: classes/feeds.php:976
+#: classes/pref/feeds.php:579
+#: classes/pref/feeds.php:811
+#: classes/pref/feeds.php:1798
+msgid "Place in category:"
+msgstr "Ievietot kategorijā:"
+
+#: classes/feeds.php:984
+msgid "Available feeds"
+msgstr "Pieejamās barotnes"
+
+#: classes/feeds.php:996
+#: classes/pref/users.php:135
+#: classes/pref/feeds.php:609
+#: classes/pref/feeds.php:847
+msgid "Authentication"
+msgstr "Autentifikācija"
+
+#: classes/feeds.php:1000
+#: classes/pref/users.php:398
+#: classes/pref/feeds.php:615
+#: classes/pref/feeds.php:851
+#: classes/pref/feeds.php:1812
+msgid "Login"
+msgstr "Pieteikšanās"
+
+#: classes/feeds.php:1003
+#: classes/pref/prefs.php:260
+#: classes/pref/feeds.php:628
+#: classes/pref/feeds.php:857
+#: classes/pref/feeds.php:1815
+msgid "Password"
+msgstr "Parole"
+
+#: classes/feeds.php:1013
+msgid "This feed requires authentication."
+msgstr "Šim laukam ir nepieciešams autentificēties."
+
+#: classes/feeds.php:1018
+#: classes/feeds.php:1074
+#: classes/pref/feeds.php:1833
+msgid "Subscribe"
+msgstr "Pasūtīt"
+
+#: classes/feeds.php:1021
+msgid "More feeds"
+msgstr "Vairāk barotnes"
+
+#: classes/feeds.php:1044
+#: classes/feeds.php:1135
+#: classes/pref/users.php:328
+#: classes/pref/filters.php:639
+#: classes/pref/feeds.php:1303
+#: js/tt-rss.js:174
+msgid "Search"
+msgstr "Meklēt"
+
+#: classes/feeds.php:1048
+msgid "Popular feeds"
+msgstr "Populārās barotnes"
+
+#: classes/feeds.php:1049
+msgid "Feed archive"
+msgstr "Barotņu arhīvs"
+
+#: classes/feeds.php:1052
+msgid "limit:"
+msgstr "ierobežojumi:"
+
+#: classes/feeds.php:1075
+#: classes/pref/users.php:354
+#: classes/pref/labels.php:284
+#: classes/pref/filters.php:396
+#: classes/pref/filters.php:665
+#: classes/pref/feeds.php:733
+#: plugins/instances/init.php:294
+msgid "Remove"
+msgstr "Novākt"
+
+#: classes/feeds.php:1086
+msgid "Look for"
+msgstr "Meklēt"
+
+#: classes/feeds.php:1094
+msgid "Limit search to:"
+msgstr "Ierobežot meklēšanu:"
+
+#: classes/feeds.php:1110
+msgid "This feed"
+msgstr "Šajā barotnē"
+
+#: classes/backend.php:33
+msgid "Other interface tips are available in the Tiny Tiny RSS wiki."
+msgstr "Citi saskarnes padomi ir pieejami Tiny Tiny RSS viki vietnē."
+
+#: classes/backend.php:38
+msgid "Keyboard Shortcuts"
+msgstr "Īsinājumtaustiņi"
+
+#: classes/backend.php:61
+msgid "Shift"
+msgstr ""
+
+#: classes/backend.php:64
+msgid "Ctrl"
+msgstr ""
+
+#: classes/backend.php:99
+msgid "Help topic not found."
+msgstr "Palīdzības tēma netika atrasta."
+
+#: classes/opml.php:28
+#: classes/opml.php:33
+msgid "OPML Utility"
+msgstr "OPML rīks"
+
+#: classes/opml.php:37
+msgid "Importing OPML..."
+msgstr "Importē OPML..."
+
+#: classes/opml.php:41
+msgid "Return to preferences"
+msgstr "Atgriezties uz iestatījumiem"
+
+#: classes/opml.php:270
+#, php-format
+msgid "Adding feed: %s"
+msgstr "Pievieno barotni: %s"
+
+#: classes/opml.php:281
+#, php-format
+msgid "Duplicate feed: %s"
+msgstr "Dublēta barotne: %s"
+
+#: classes/opml.php:295
+#, php-format
+msgid "Adding label %s"
+msgstr "Pievieno etiķeti %s"
+
+#: classes/opml.php:298
+#, php-format
+msgid "Duplicate label: %s"
+msgstr "Dublēta etiķete: %s"
+
+#: classes/opml.php:310
+#, php-format
+msgid "Setting preference key %s to %s"
+msgstr "Saglabā iestatījumu atslēgu %s līdz %s"
+
+#: classes/opml.php:339
+msgid "Adding filter..."
+msgstr "Pievieno filtru..."
+
+#: classes/opml.php:416
+#, php-format
+msgid "Processing category: %s"
+msgstr "Apstrādā kategoriju: %s"
+
+#: classes/opml.php:465
+#: plugins/import_export/init.php:420
+#: plugins/googlereaderimport/init.php:66
+#, php-format
+msgid "Upload failed with error code %d"
+msgstr ""
+
+#: classes/opml.php:479
+#: plugins/import_export/init.php:434
+#: plugins/googlereaderimport/init.php:80
+#, fuzzy
+msgid "Unable to move uploaded file."
+msgstr "Kļūda: lūdzu augšuplādējiet OPML failu."
+
+#: classes/opml.php:483
+#: plugins/import_export/init.php:438
+#: plugins/googlereaderimport/init.php:84
+msgid "Error: please upload OPML file."
+msgstr "Kļūda: lūdzu augšuplādējiet OPML failu."
+
+#: classes/opml.php:492
+#, fuzzy
+msgid "Error: unable to find moved OPML file."
+msgstr "Kļūda: lūdzu augšuplādējiet OPML failu."
+
+#: classes/opml.php:499
+#: plugins/googlereaderimport/init.php:186
+msgid "Error while parsing document."
+msgstr "Dokumenta apstrādes kļūda."
+
+#: classes/pref/users.php:6
+#: classes/pref/system.php:8
+#: plugins/instances/init.php:154
+msgid "Your access level is insufficient to open this tab."
+msgstr "Jums nav pietiekamas pieejas tiesības, lai atvērtu šo cilni."
+
+#: classes/pref/users.php:34
+msgid "User not found"
+msgstr "Lietotājs netika atrasts"
+
+#: classes/pref/users.php:53
+#: classes/pref/users.php:400
+msgid "Registered"
+msgstr "Reģistrēts"
+
+#: classes/pref/users.php:54
+msgid "Last logged in"
+msgstr "Pēdējo reizi pieteicies"
+
+#: classes/pref/users.php:61
+msgid "Subscribed feeds count"
+msgstr "Pasūtīto barotņu skaits"
+
+#: classes/pref/users.php:65
+msgid "Subscribed feeds"
+msgstr "Pasūtītās barotnes"
+
+#: classes/pref/users.php:138
+msgid "Access level: "
+msgstr "Pieejas līmenis:"
+
+#: classes/pref/users.php:151
+msgid "Change password to"
+msgstr "Nomainīt paroli uz"
+
+#: classes/pref/users.php:157
+#: classes/pref/feeds.php:636
+#: classes/pref/feeds.php:863
+msgid "Options"
+msgstr "Iespējas"
+
+#: classes/pref/users.php:160
+msgid "E-mail: "
+msgstr "E-pasts:"
+
+#: classes/pref/users.php:236
+#, php-format
+msgid "Added user <b>%s</b> with password <b>%s</b>"
+msgstr "Pievienoja lietotāju <b>%s</b> ar paroli <b>%s</b>"
+
+#: classes/pref/users.php:243
+#, php-format
+msgid "Could not create user <b>%s</b>"
+msgstr "Neizdevās izveidot lietotāju <b>%s</b>"
+
+#: classes/pref/users.php:247
+#, php-format
+msgid "User <b>%s</b> already exists."
+msgstr "Lietotājs <b>%s</b> jau pastāv."
+
+#: classes/pref/users.php:269
+#, fuzzy, php-format
+msgid "Changed password of user <b>%s</b> to <b>%s</b>"
+msgstr ""
+"Nomainīja lietotāja <b>%s</b> paroli\n"
+"\t\t\t\t uz <b>%s</b>"
+
+#: classes/pref/users.php:271
+#, fuzzy, php-format
+msgid "Sending new password of user <b>%s</b> to <b>%s</b>"
+msgstr ""
+"Nomainīja lietotāja <b>%s</b> paroli\n"
+"\t\t\t\t uz <b>%s</b>"
+
+#: classes/pref/users.php:295
+msgid "[tt-rss] Password change notification"
+msgstr "[tt-rss] paroles maiņas paziņojums"
+
+#: classes/pref/users.php:338
+#: classes/pref/labels.php:272
+#: classes/pref/filters.php:277
+#: classes/pref/filters.php:325
+#: classes/pref/filters.php:643
+#: classes/pref/filters.php:731
+#: classes/pref/filters.php:758
+#: classes/pref/prefs.php:991
+#: classes/pref/feeds.php:1307
+#: classes/pref/feeds.php:1572
+#: classes/pref/feeds.php:1638
+#: plugins/instances/init.php:284
+msgid "Select"
+msgstr "Iezīmēt"
+
+#: classes/pref/users.php:346
+msgid "Create user"
+msgstr "Izveidot lietotāju"
+
+#: classes/pref/users.php:350
+msgid "Details"
+msgstr "Detaļas"
+
+#: classes/pref/users.php:352
+#: classes/pref/filters.php:658
+#: plugins/instances/init.php:293
+msgid "Edit"
+msgstr "Rediģēt"
+
+#: classes/pref/users.php:399
+msgid "Access Level"
+msgstr "Pieejas līmenis"
+
+#: classes/pref/users.php:401
+msgid "Last login"
+msgstr "Pēdējā pieteikšanās"
+
+#: classes/pref/users.php:420
+#: plugins/instances/init.php:334
+msgid "Click to edit"
+msgstr "Klikšķiniet, lai rediģētu"
+
+#: classes/pref/users.php:440
+msgid "No users defined."
+msgstr "Nav definēti lietotāji."
+
+#: classes/pref/users.php:442
+msgid "No matching users found."
+msgstr "Neatradu atbilstošus lietotājus."
+
+#: classes/pref/labels.php:22
+#: classes/pref/filters.php:266
+#: classes/pref/filters.php:722
+msgid "Caption"
+msgstr "Uzraksts"
+
+#: classes/pref/labels.php:37
+msgid "Colors"
+msgstr "Krāsas"
+
+#: classes/pref/labels.php:42
+msgid "Foreground:"
+msgstr "Pamats:"
+
+#: classes/pref/labels.php:42
+msgid "Background:"
+msgstr "Virspuse:"
+
+#: classes/pref/labels.php:232
+#, php-format
+msgid "Created label <b>%s</b>"
+msgstr "Izveidoju etiķeti <b>%s</b>"
+
+#: classes/pref/labels.php:287
+msgid "Clear colors"
+msgstr "Attīrīt krāsas"
+
+#: classes/pref/filters.php:94
+msgid "Articles matching this filter:"
+msgstr "Raksti, kas atbilst šim filtram:"
+
+#: classes/pref/filters.php:131
+msgid "No recent articles matching this filter have been found."
+msgstr "Neseni raksti ar šādiem atlases nosacījumiem netika atrasti"
+
+#: classes/pref/filters.php:135
+msgid "Complex expressions might not give results while testing due to issues with database server regexp implementation."
+msgstr ""
+
+#: classes/pref/filters.php:272
+#: classes/pref/filters.php:726
+#: classes/pref/filters.php:841
+msgid "Match"
+msgstr "Atbilstība"
+
+#: classes/pref/filters.php:286
+#: classes/pref/filters.php:334
+#: classes/pref/filters.php:740
+#: classes/pref/filters.php:767
+msgid "Add"
+msgstr "Pievienot"
+
+#: classes/pref/filters.php:320
+#: classes/pref/filters.php:753
+msgid "Apply actions"
+msgstr "Pielietot darbības"
+
+#: classes/pref/filters.php:370
+#: classes/pref/filters.php:782
+msgid "Enabled"
+msgstr "Iespējots"
+
+#: classes/pref/filters.php:379
+#: classes/pref/filters.php:785
+msgid "Match any rule"
+msgstr "Atbilst jebkuram likumam"
+
+#: classes/pref/filters.php:388
+#: classes/pref/filters.php:788
+#, fuzzy
+msgid "Inverse matching"
+msgstr "Apgriezt rakstu iezīmēšanu"
+
+#: classes/pref/filters.php:400
+#: classes/pref/filters.php:795
+msgid "Test"
+msgstr "Pārbaudīt"
+
+#: classes/pref/filters.php:433
+#, fuzzy
+msgid "(inverse)"
+msgstr "Apgriezt"
+
+#: classes/pref/filters.php:432
+#, fuzzy, php-format
+msgid "%s on %s in %s %s"
+msgstr "%s kad %s kur %s"
+
+#: classes/pref/filters.php:655
+msgid "Combine"
+msgstr "Apvienot"
+
+#: classes/pref/filters.php:661
+#: classes/pref/feeds.php:1323
+#: classes/pref/feeds.php:1337
+msgid "Reset sort order"
+msgstr "Atstatīt kārtošanas secību"
+
+#: classes/pref/filters.php:669
+#: classes/pref/feeds.php:1359
+msgid "Rescore articles"
+msgstr "Pārvērtēt rakstus"
+
+#: classes/pref/filters.php:798
+msgid "Create"
+msgstr "Izveidot"
+
+#: classes/pref/filters.php:853
+msgid "Inverse regular expression matching"
+msgstr ""
+
+#: classes/pref/filters.php:855
+msgid "on field"
+msgstr "laukā"
+
+#: classes/pref/filters.php:861
+#: js/PrefFilterTree.js:45
+msgid "in"
+msgstr "kur"
+
+#: classes/pref/filters.php:874
+msgid "Save rule"
+msgstr "Saglabāt likumu"
+
+#: classes/pref/filters.php:874
+#: js/functions.js:1013
+msgid "Add rule"
+msgstr "Pievienot likumu"
+
+#: classes/pref/filters.php:897
+msgid "Perform Action"
+msgstr "Pielietot darbību"
+
+#: classes/pref/filters.php:923
+msgid "with parameters:"
+msgstr "ar parametriem:"
+
+#: classes/pref/filters.php:941
+msgid "Save action"
+msgstr "Saglabāt darbību"
+
+#: classes/pref/filters.php:941
+#: js/functions.js:1039
+msgid "Add action"
+msgstr "Pievienot darbību"
+
+#: classes/pref/filters.php:964
+#, fuzzy
+msgid "[No caption]"
+msgstr "Uzraksts"
+
+#: classes/pref/prefs.php:18
+msgid "General"
+msgstr "Vispārīgi"
+
+#: classes/pref/prefs.php:19
+msgid "Interface"
+msgstr "Saskarne"
+
+#: classes/pref/prefs.php:20
+msgid "Advanced"
+msgstr "Paplašināti"
+
+#: classes/pref/prefs.php:21
+msgid "Digest"
+msgstr ""
+
+#: classes/pref/prefs.php:25
+#, fuzzy
+msgid "Allow duplicate articles"
+msgstr "Atļaut dublētus ziņojumus"
+
+#: classes/pref/prefs.php:26
+msgid "Assign articles to labels automatically"
+msgstr "Pievienot rakstu iezīmes automātiski"
+
+#: classes/pref/prefs.php:27
+msgid "Blacklisted tags"
+msgstr "Tagu melnais saraksts"
+
+#: classes/pref/prefs.php:27
+#, fuzzy
+msgid "When auto-detecting tags in articles these tags will not be applied (comma-separated list)."
+msgstr "Kad tiek automātiski noteikti rakstu tagi, šie tagi netiks piemēroti (ar komatu atdalīts saraksts)."
+
+#: classes/pref/prefs.php:28
+msgid "Automatically mark articles as read"
+msgstr "Automātiski atzīmēt rakstus kā izlasītus"
+
+#: classes/pref/prefs.php:28
+#, fuzzy
+msgid "This option enables marking articles as read automatically while you scroll article list."
+msgstr "Šī iespēja ļauj automātiski atzīmēt rakstu kā lasītu, kad jūs pārtinat tā saturu."
+
+#: classes/pref/prefs.php:29
+msgid "Automatically expand articles in combined mode"
+msgstr "Automātiski rādīt rakstus kombinētajā režīmā"
+
+#: classes/pref/prefs.php:30
+msgid "Combined feed display"
+msgstr "Kombinēts barotņu skatījums"
+
+#: classes/pref/prefs.php:30
+msgid "Display expanded list of feed articles, instead of separate displays for headlines and article content"
+msgstr "Atsevišķa virsraksta un satura vietā parāda paplašinātu barotnes rakstu sarakstu"
+
+#: classes/pref/prefs.php:31
+msgid "Confirm marking feed as read"
+msgstr "Apstiprināt barotnes atzīmēšanu kā izlasītu"
+
+#: classes/pref/prefs.php:32
+msgid "Amount of articles to display at once"
+msgstr "Vienlaicīgi parādīto rakstu skaits"
+
+#: classes/pref/prefs.php:33
+#, fuzzy
+msgid "Default feed update interval"
+msgstr "Noklusētais intervāls"
+
+#: classes/pref/prefs.php:33
+msgid "Shortest interval at which a feed will be checked for updates regardless of update method"
+msgstr ""
+
+#: classes/pref/prefs.php:34
+msgid "Mark articles in e-mail digest as read"
+msgstr "Atzīmēt īssavilkuma rakstus e-pastā kā lasītus"
+
+#: classes/pref/prefs.php:35
+#, fuzzy
+msgid "Enable e-mail digest"
+msgstr "Iespējot īssavilkuma sūtīšanu pa e-pastu"
+
+#: classes/pref/prefs.php:35
+msgid "This option enables sending daily digest of new (and unread) headlines on your configured e-mail address"
+msgstr "Šī iespēja ļauj nosūtīt ikdienas jauno (vai nelasīto) rakstu īssavilkumu uz norādīto e-pasta adresi"
+
+#: classes/pref/prefs.php:36
+msgid "Try to send digests around specified time"
+msgstr "Censties nosūtīt īssavilkumus ap norādīto laiku"
+
+#: classes/pref/prefs.php:36
+msgid "Uses UTC timezone"
+msgstr "Izmanto UTC laika zonu"
+
+#: classes/pref/prefs.php:37
+msgid "Enable API access"
+msgstr ""
+
+#: classes/pref/prefs.php:37
+msgid "Allows external clients to access this account through the API"
+msgstr ""
+
+#: classes/pref/prefs.php:38
+msgid "Enable feed categories"
+msgstr "Iespējot barotņu kategorijas"
+
+#: classes/pref/prefs.php:39
+msgid "Sort feeds by unread articles count"
+msgstr "Kārtot barotnes pēc nelasīto ziņu skaita"
+
+#: classes/pref/prefs.php:40
+msgid "Maximum age of fresh articles (in hours)"
+msgstr "Maksimālais svaigo rakstu laiks (stundās)"
+
+#: classes/pref/prefs.php:41
+#, fuzzy
+msgid "Hide feeds with no unread articles"
+msgstr "Slēpt barotnes ar izlasītiem ziņojumiem"
+
+#: classes/pref/prefs.php:42
+#, fuzzy
+msgid "Show special feeds when hiding read feeds"
+msgstr "Rādīt īpašās barotnes kad tiek slēptas izlasītās"
+
+#: classes/pref/prefs.php:43
+msgid "Long date format"
+msgstr "Garais datumu formāts"
+
+#: classes/pref/prefs.php:44
+msgid "On catchup show next feed"
+msgstr "Pēc noķeršanas rādīt nākamo barotni"
+
+#: classes/pref/prefs.php:44
+msgid "Automatically open next feed with unread articles after marking one as read"
+msgstr "Automātiski atver nākamo barotni, kad vienā visi raksti ir atzīmēti kā lasīti"
+
+#: classes/pref/prefs.php:45
+msgid "Purge articles after this number of days (0 - disables)"
+msgstr "Dzēst rakstus pēc norādītā dienu skaita (0 – atceļ)"
+
+#: classes/pref/prefs.php:46
+msgid "Purge unread articles"
+msgstr "Dzēst nelasītos rakstus"
+
+#: classes/pref/prefs.php:47
+msgid "Reverse headline order (oldest first)"
+msgstr "Apgriezt virsrakstu secību (vecākos vispirms)"
+
+#: classes/pref/prefs.php:48
+msgid "Short date format"
+msgstr "Īsais datumu formāts"
+
+#: classes/pref/prefs.php:49
+msgid "Show content preview in headlines list"
+msgstr "Rādīt virsrakstu sarakstā satura priekšskatījumu"
+
+#: classes/pref/prefs.php:50
+msgid "Sort headlines by feed date"
+msgstr "Kārtot virsrakstus pēc barotnes laika"
+
+#: classes/pref/prefs.php:50
+msgid "Use feed-specified date to sort headlines instead of local import date."
+msgstr "Kārtošanai izmantot barotnē norādīto raksta laiku nevis tā importēšanas laiku"
+
+#: classes/pref/prefs.php:51
+msgid "Login with an SSL certificate"
+msgstr "Pieteikties ar SSL sertifikātu"
+
+#: classes/pref/prefs.php:51
+msgid "Click to register your SSL client certificate with tt-rss"
+msgstr "Klikšķiniet, lai reģistrētu jūsu klienta SSL sertifikātu tt-rss"
+
+#: classes/pref/prefs.php:52
+#, fuzzy
+msgid "Do not embed images in articles"
+msgstr "Nerādīt rakstos attēlus"
+
+#: classes/pref/prefs.php:53
+msgid "Strip unsafe tags from articles"
+msgstr "Izdzrest nedrošos tagus no rakstiem"
+
+#: classes/pref/prefs.php:53
+msgid "Strip all but most common HTML tags when reading articles."
+msgstr "Lasot rakstus, atmest visus, izņemot pašus svarīgākos HTML tagus."
+
+#: classes/pref/prefs.php:54
+#: js/prefs.js:1719
+msgid "Customize stylesheet"
+msgstr "Pielāgot stilu lapu"
+
+#: classes/pref/prefs.php:54
+msgid "Customize CSS stylesheet to your liking"
+msgstr "Pielāgot CSS stilu lapu"
+
+#: classes/pref/prefs.php:55
+#, fuzzy
+msgid "Time zone"
+msgstr "Lietotāja laika zona"
+
+#: classes/pref/prefs.php:56
+msgid "Group headlines in virtual feeds"
+msgstr "Apvienot virsrakstus virtuālās barotnēs"
+
+#: classes/pref/prefs.php:56
+msgid "Special feeds, labels, and categories are grouped by originating feeds"
+msgstr ""
+
+#: classes/pref/prefs.php:57
+#, fuzzy
+msgid "Language"
+msgstr "Valoda:"
+
+#: classes/pref/prefs.php:58
+msgid "Theme"
+msgstr ""
+
+#: classes/pref/prefs.php:58
+msgid "Select one of the available CSS themes"
+msgstr ""
+
+#: classes/pref/prefs.php:69
+msgid "Old password cannot be blank."
+msgstr "Vecā parole nedrīkst būt tukša"
+
+#: classes/pref/prefs.php:74
+msgid "New password cannot be blank."
+msgstr "Jaunā parole nedrīkst būt tukša"
+
+#: classes/pref/prefs.php:79
+msgid "Entered passwords do not match."
+msgstr "Ievadītās paroles nav vienādas."
+
+#: classes/pref/prefs.php:88
+msgid "Function not supported by authentication module."
+msgstr "Funkiju neatbalsta autentifikācijas modulis."
+
+#: classes/pref/prefs.php:127
+msgid "The configuration was saved."
+msgstr "Iestatījumi ir saglabāti."
+
+#: classes/pref/prefs.php:142
+#, php-format
+msgid "Unknown option: %s"
+msgstr "Nezināma iespēja %s."
+
+#: classes/pref/prefs.php:156
+msgid "Your personal data has been saved."
+msgstr "Jūsu personīgie dati ir saglabāti."
+
+#: classes/pref/prefs.php:176
+msgid "Your preferences are now set to default values."
+msgstr ""
+
+#: classes/pref/prefs.php:198
+msgid "Personal data / Authentication"
+msgstr "Personīgie dati/autentifikācija"
+
+#: classes/pref/prefs.php:218
+msgid "Personal data"
+msgstr "Personīgie dati"
+
+#: classes/pref/prefs.php:228
+msgid "Full name"
+msgstr "Vārds un uzvārds"
+
+#: classes/pref/prefs.php:232
+msgid "E-mail"
+msgstr "E-pasts"
+
+#: classes/pref/prefs.php:238
+msgid "Access level"
+msgstr "Pieejas līmenis"
+
+#: classes/pref/prefs.php:248
+msgid "Save data"
+msgstr "Saglabāt datus"
+
+#: classes/pref/prefs.php:267
+msgid "Your password is at default value, please change it."
+msgstr "Jums ir norādīta noklusētā parole, lūdzu nomainiet to."
+
+#: classes/pref/prefs.php:294
+msgid "Changing your current password will disable OTP."
+msgstr ""
+
+#: classes/pref/prefs.php:299
+msgid "Old password"
+msgstr "Vecā parole"
+
+#: classes/pref/prefs.php:302
+msgid "New password"
+msgstr "Jaunā parole"
+
+#: classes/pref/prefs.php:307
+msgid "Confirm password"
+msgstr "Apstipriniet paroli"
+
+#: classes/pref/prefs.php:317
+msgid "Change password"
+msgstr "Nomainīt paroli"
+
+#: classes/pref/prefs.php:323
+msgid "One time passwords / Authenticator"
+msgstr "Vienreizlietojamā parole/autentifikācija"
+
+#: classes/pref/prefs.php:327
+msgid "One time passwords are currently enabled. Enter your current password below to disable."
+msgstr ""
+
+#: classes/pref/prefs.php:352
+#: classes/pref/prefs.php:403
+msgid "Enter your password"
+msgstr "Ievadiet savu paroli"
+
+#: classes/pref/prefs.php:363
+msgid "Disable OTP"
+msgstr "Atslēgt vienreizlietojamo paroli"
+
+#: classes/pref/prefs.php:369
+msgid "You will need a compatible Authenticator to use this. Changing your password would automatically disable OTP."
+msgstr "Lai to lietotu, jums būs nepieciešams savietojams autentifikators. Jūsu paroles maiņa automātiski atslēgs vienreizlietojamo paroli."
+
+#: classes/pref/prefs.php:371
+msgid "Scan the following code by the Authenticator application:"
+msgstr "Ar autentifikācijas moduli noskenējiet sekojošo kodu:"
+
+#: classes/pref/prefs.php:408
+#, fuzzy
+msgid "Enter the generated one time password"
+msgstr "Lūdzu ievadiet vienreizlietojamo paroli:"
+
+#: classes/pref/prefs.php:422
+msgid "Enable OTP"
+msgstr "Iespējot vienreizlietojamo paroli"
+
+#: classes/pref/prefs.php:428
+msgid "PHP GD functions are required for OTP support."
+msgstr ""
+
+#: classes/pref/prefs.php:471
+msgid "Some preferences are only available in default profile."
+msgstr ""
+
+#: classes/pref/prefs.php:569
+msgid "Customize"
+msgstr "Pielāgot"
+
+#: classes/pref/prefs.php:629
+msgid "Register"
+msgstr "Reģistrēt"
+
+#: classes/pref/prefs.php:633
+msgid "Clear"
+msgstr "Attīrīt"
+
+#: classes/pref/prefs.php:639
+#, php-format
+msgid "Current server time: %s (UTC)"
+msgstr "Tekošā laika zona ir: %s (UTC)"
+
+#: classes/pref/prefs.php:671
+msgid "Save configuration"
+msgstr "Saglabāt iestatījumus"
+
+#: classes/pref/prefs.php:675
+#, fuzzy
+msgid "Save and exit preferences"
+msgstr "Iziet no iestatījumiem"
+
+#: classes/pref/prefs.php:680
+msgid "Manage profiles"
+msgstr "Pārvaldīt profilus"
+
+#: classes/pref/prefs.php:683
+msgid "Reset to defaults"
+msgstr "Atstatīt uz noklusētajiem"
+
+#: classes/pref/prefs.php:706
+msgid "Plugins"
+msgstr ""
+
+#: classes/pref/prefs.php:708
+msgid "You will need to reload Tiny Tiny RSS for plugin changes to take effect."
+msgstr ""
+
+#: classes/pref/prefs.php:710
+msgid "Download more plugins at tt-rss.org <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/forum/viewforum.php?f=22\">forums</a> or <a target=\"_blank\" class=\"visibleLink\" href=\"http://tt-rss.org/wiki/Plugins\">wiki</a>."
+msgstr ""
+
+#: classes/pref/prefs.php:736
+msgid "System plugins"
+msgstr ""
+
+#: classes/pref/prefs.php:740
+#: classes/pref/prefs.php:794
+msgid "Plugin"
+msgstr ""
+
+#: classes/pref/prefs.php:741
+#: classes/pref/prefs.php:795
+msgid "Description"
+msgstr ""
+
+#: classes/pref/prefs.php:742
+#: classes/pref/prefs.php:796
+msgid "Version"
+msgstr ""
+
+#: classes/pref/prefs.php:743
+#: classes/pref/prefs.php:797
+msgid "Author"
+msgstr ""
+
+#: classes/pref/prefs.php:772
+#: classes/pref/prefs.php:829
+msgid "more info"
+msgstr ""
+
+#: classes/pref/prefs.php:781
+#: classes/pref/prefs.php:838
+#, fuzzy
+msgid "Clear data"
+msgstr "Dzēst barotņu datus"
+
+#: classes/pref/prefs.php:790
+msgid "User plugins"
+msgstr ""
+
+#: classes/pref/prefs.php:853
+#, fuzzy
+msgid "Enable selected plugins"
+msgstr "Iespējot barotņu kategorijas"
+
+#: classes/pref/prefs.php:920
+#, fuzzy
+msgid "Incorrect one time password"
+msgstr "Nepareiza parole"
+
+#: classes/pref/prefs.php:923
+#: classes/pref/prefs.php:940
+msgid "Incorrect password"
+msgstr "Nepareiza parole"
+
+#: classes/pref/prefs.php:965
+#, php-format
+msgid "You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">This file</a> can be used as a baseline."
+msgstr "Jūs varat aizstāt krāsas, fontus un izklājumu, šobrīd izmantotā CSS vietā izmantojot savus pielāgojumus. Paraugu varat ņemt no <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">šī faila</a>."
+
+#: classes/pref/prefs.php:1005
+msgid "Create profile"
+msgstr "Izveidot profilu"
+
+#: classes/pref/prefs.php:1028
+#: classes/pref/prefs.php:1056
+msgid "(active)"
+msgstr "(aktīvs)"
+
+#: classes/pref/prefs.php:1090
+msgid "Remove selected profiles"
+msgstr "Dzēst iezīmētos profilus"
+
+#: classes/pref/prefs.php:1092
+msgid "Activate profile"
+msgstr "Aktivizēt profilu"
+
+#: classes/pref/feeds.php:13
+msgid "Check to enable field"
+msgstr "Iezīmējiet, lai iespējotu"
+
+#: classes/pref/feeds.php:546
+msgid "Feed Title"
+msgstr "Barotnes virsraksts"
+
+#: classes/pref/feeds.php:587
+#: classes/pref/feeds.php:822
+msgid "Update"
+msgstr "Atjaunot"
+
+#: classes/pref/feeds.php:602
+#: classes/pref/feeds.php:838
+msgid "Article purging:"
+msgstr "Dzēšu rakstu:"
+
+#: classes/pref/feeds.php:632
+msgid "<b>Hint:</b> you need to fill in your login information if your feed requires authentication, except for Twitter feeds."
+msgstr "<b>Ieteikums:</b> ja jūsu barotnei ir nepieciešama autentifikācija, jums ir jāievada pieteikšanās informācija. Vienīgais izņēmums ir Twitter barotnes."
+
+#: classes/pref/feeds.php:648
+#: classes/pref/feeds.php:867
+msgid "Hide from Popular feeds"
+msgstr "Nerādīt populārajās barotnēs"
+
+#: classes/pref/feeds.php:660
+#: classes/pref/feeds.php:873
+msgid "Include in e-mail digest"
+msgstr "Iekļaut e-pasta īssavilkumu"
+
+#: classes/pref/feeds.php:673
+#: classes/pref/feeds.php:879
+msgid "Always display image attachments"
+msgstr "Vienmēr rādīt attēlu pielikumus"
+
+#: classes/pref/feeds.php:686
+#: classes/pref/feeds.php:887
+msgid "Do not embed images"
+msgstr ""
+
+#: classes/pref/feeds.php:699
+#: classes/pref/feeds.php:895
+msgid "Cache images locally"
+msgstr "Kešot attēlus lokāli"
+
+#: classes/pref/feeds.php:711
+#: classes/pref/feeds.php:901
+msgid "Mark updated articles as unread"
+msgstr "Atzīmēt atjaunotos rakstus kā nelasītus"
+
+#: classes/pref/feeds.php:717
+msgid "Icon"
+msgstr "Ikona"
+
+#: classes/pref/feeds.php:731
+msgid "Replace"
+msgstr "Aizvietot"
+
+#: classes/pref/feeds.php:753
+msgid "Resubscribe to push updates"
+msgstr "Pārpasūtīt atjaunojumu grūšanu"
+
+#: classes/pref/feeds.php:760
+msgid "Resets PubSubHubbub subscription status for push-enabled feeds."
+msgstr "Atstata PubSubHubbub pasūtījumu statusu barotnēm ar iespējotu atjaunojumu grūšanu."
+
+#: classes/pref/feeds.php:1156
+#: classes/pref/feeds.php:1209
+msgid "All done."
+msgstr "Viss izdarīts."
+
+#: classes/pref/feeds.php:1264
+msgid "Feeds with errors"
+msgstr "Barotnes ar kļūdām"
+
+#: classes/pref/feeds.php:1284
+msgid "Inactive feeds"
+msgstr "Neaktīvās barotnes"
+
+#: classes/pref/feeds.php:1321
+msgid "Edit selected feeds"
+msgstr "Rediģēt izvēlētās barotnes"
+
+#: classes/pref/feeds.php:1325
+#: js/prefs.js:1764
+msgid "Batch subscribe"
+msgstr "Pasūtījuma pakotne"
+
+#: classes/pref/feeds.php:1332
+msgid "Categories"
+msgstr "Kategorijas"
+
+#: classes/pref/feeds.php:1335
+msgid "Add category"
+msgstr "Pievienot kategoriju"
+
+#: classes/pref/feeds.php:1339
+msgid "Remove selected"
+msgstr "Dzēst izvēlētās"
+
+#: classes/pref/feeds.php:1350
+msgid "More actions..."
+msgstr "Papildu iespējas..."
+
+#: classes/pref/feeds.php:1354
+msgid "Manual purge"
+msgstr "Manuāla dzēšana"
+
+#: classes/pref/feeds.php:1358
+msgid "Clear feed data"
+msgstr "Dzēst barotņu datus"
+
+#: classes/pref/feeds.php:1409
+msgid "OPML"
+msgstr "OPML"
+
+#: classes/pref/feeds.php:1411
+msgid "Using OPML you can export and import your feeds, filters, labels and Tiny Tiny RSS settings."
+msgstr "Izmantojot OPML jūs varat eksportēt un importēt savas barotnes, filtrus, etiķetes un Tiny Tiny RSS iestatījumus."
+
+#: classes/pref/feeds.php:1411
+msgid "Only main settings profile can be migrated using OPML."
+msgstr "Izmantojot OPML var migrēt tikai galvenos iestatījumus."
+
+#: classes/pref/feeds.php:1424
+msgid "Import my OPML"
+msgstr "Importēt manu OPML"
+
+#: classes/pref/feeds.php:1428
+msgid "Filename:"
+msgstr "Faila nosaukums:"
+
+#: classes/pref/feeds.php:1430
+msgid "Include settings"
+msgstr "Iekļaut iestatījumus"
+
+#: classes/pref/feeds.php:1434
+msgid "Export OPML"
+msgstr "Eksportēt OPML"
+
+#: classes/pref/feeds.php:1438
+msgid "Your OPML can be published publicly and can be subscribed by anyone who knows the URL below."
+msgstr "Jūsu OPML var publicēt un to var abonēt katrs, kas zin zemāk minēto saiti."
+
+#: classes/pref/feeds.php:1440
+msgid "Published OPML does not include your Tiny Tiny RSS settings, feeds that require authentication or feeds hidden from Popular feeds."
+msgstr "Publicētajā OPML nav iekļauti: jūsu Tiny Tiny RSS iestatījumi, barotnes, kurās nepieciešams autentificēties un arī barotnes, kas ir paslēptas no populārajām barotnēm."
+
+#: classes/pref/feeds.php:1442
+msgid "Public OPML URL"
+msgstr "Publiskā OPML URL (adrese)"
+
+#: classes/pref/feeds.php:1443
+msgid "Display published OPML URL"
+msgstr "Parādīt publicētā OPML URL"
+
+#: classes/pref/feeds.php:1452
+msgid "Firefox integration"
+msgstr "Firefox integrācija"
+
+#: classes/pref/feeds.php:1454
+msgid "This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the link below."
+msgstr "Šo Tiny Tiny RSS vietni var izmantot kā Firefox Feed Reader, klikšķinot uz zemākās saites."
+
+#: classes/pref/feeds.php:1461
+msgid "Click here to register this site as a feed reader."
+msgstr "Klikšķiniet šeit, lai reģistrētu šo vietni kā barotņu avotu."
+
+#: classes/pref/feeds.php:1469
+msgid "Published & shared articles / Generated feeds"
+msgstr "Publicētie un kopīgotie raksti / sagatavotās barotnes"
+
+#: classes/pref/feeds.php:1471
+msgid "Published articles are exported as a public RSS feed and can be subscribed by anyone who knows the URL specified below."
+msgstr "Publicētie raksti tiek eksportēti kā publiskas RSS barotnes un tās var izmantot katrs, kas zina zemāk minēto saiti."
+
+#: classes/pref/feeds.php:1479
+msgid "Display URL"
+msgstr "Parādīt URL"
+
+#: classes/pref/feeds.php:1482
+msgid "Clear all generated URLs"
+msgstr "Attīrīt visus ģenerētos URL"
+
+#: classes/pref/feeds.php:1486
+msgid "You can disable all articles shared by unique URLs here."
+msgstr "Jūs varat atcelt ar šo URL kopīgotos rakstus šeit."
+
+#: classes/pref/feeds.php:1491
+msgid "Unshare all articles"
+msgstr "Atcelt visu rakstu kopīgošanu"
+
+#: classes/pref/feeds.php:1568
+msgid "These feeds have not been updated with new content for 3 months (oldest first):"
+msgstr "Šajās barotnēs nav bijis jauns saturs vairāk kā 3 mēnešus (sākot ar vecākajām):"
+
+#: classes/pref/feeds.php:1604
+#: classes/pref/feeds.php:1670
+msgid "Click to edit feed"
+msgstr "Klikšķiniet, lai rediģētu"
+
+#: classes/pref/feeds.php:1622
+#: classes/pref/feeds.php:1690
+msgid "Unsubscribe from selected feeds"
+msgstr "Atcelt izvēlēto barotņu pasūtīšanu"
+
+#: classes/pref/feeds.php:1795
+msgid "Add one valid RSS feed per line (no feed detection is done)"
+msgstr "Pievienojiet vienu derīgu RSS barotni vienā rindā (barotnes netiek pārbaudītas)"
+
+#: classes/pref/feeds.php:1804
+msgid "Feeds to subscribe, One per line"
+msgstr "Pasūtāmās barotnes, pa vienai katrā rindā"
+
+#: classes/pref/feeds.php:1826
+msgid "Feeds require authentication."
+msgstr "Barotnēm nepieciešama autentifikācija"
+
+#: classes/pref/system.php:29
+msgid "Error Log"
+msgstr ""
+
+#: classes/pref/system.php:40
+msgid "Refresh"
+msgstr ""
+
+#: classes/pref/system.php:43
+#, fuzzy
+msgid "Clear log"
+msgstr "Attīrīt krāsas"
+
+#: classes/pref/system.php:48
+msgid "Error"
+msgstr ""
+
+#: classes/pref/system.php:49
+#, fuzzy
+msgid "Filename"
+msgstr "Faila nosaukums:"
+
+#: classes/pref/system.php:50
+msgid "Message"
+msgstr ""
+
+#: classes/pref/system.php:52
+msgid "Date"
+msgstr "Datums"
+
+#: plugins/close_button/init.php:22
+msgid "Close article"
+msgstr "Aizvērt rakstu"
+
+#: plugins/nsfw/init.php:29
+#: plugins/nsfw/init.php:40
+msgid "Not work safe (click to toggle)"
+msgstr ""
+
+#: plugins/nsfw/init.php:50
+msgid "NSFW Plugin"
+msgstr ""
+
+#: plugins/nsfw/init.php:77
+msgid "Tags to consider NSFW (comma-separated)"
+msgstr ""
+
+#: plugins/nsfw/init.php:98
+#, fuzzy
+msgid "Configuration saved."
+msgstr "Iestatījumi ir saglabāti."
+
+#: plugins/auth_internal/init.php:62
+msgid "Please enter your one time password:"
+msgstr "Lūdzu ievadiet vienreizlietojamo paroli:"
+
+#: plugins/auth_internal/init.php:185
+msgid "Password has been changed."
+msgstr "Parole ir nomainīta."
+
+#: plugins/auth_internal/init.php:187
+msgid "Old password is incorrect."
+msgstr "Vecā parole nav pareiza."
+
+#: plugins/mailto/init.php:49
+#: plugins/mailto/init.php:55
+#: plugins/mail/init.php:64
+#: plugins/mail/init.php:70
+msgid "[Forwarded]"
+msgstr "[Pārsūtīts]"
+
+#: plugins/mailto/init.php:49
+#: plugins/mail/init.php:64
+msgid "Multiple articles"
+msgstr "Vairāki raksti"
+
+#: plugins/mailto/init.php:71
+msgid "Clicking the following link to invoke your mail client:"
+msgstr ""
+
+#: plugins/mailto/init.php:75
+#, fuzzy
+msgid "Forward selected article(s) by email."
+msgstr "Pārsūtīt e-pastā"
+
+#: plugins/mailto/init.php:78
+msgid "You should be able to edit the message before sending in your mail client."
+msgstr ""
+
+#: plugins/mailto/init.php:83
+#, fuzzy
+msgid "Close this dialog"
+msgstr "Aizvērt šo logu"
+
+#: plugins/bookmarklets/init.php:20
+msgid "Bookmarklets"
+msgstr "Grāmatzīmes"
+
+#: plugins/bookmarklets/init.php:22
+msgid "Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it."
+msgstr "Velciet zemāk minēto saiti uz jūsu pārlūkprogrammas rīku joslu, tad atveriet jūs interesējošo saiti un klikšķiniet uz tās, lai pasūtītu tās jaunumus"
+
+#: plugins/bookmarklets/init.php:26
+#, php-format
+msgid "Subscribe to %s in Tiny Tiny RSS?"
+msgstr "Pasūtīt %s Tiny Tiny RSS?"
+
+#: plugins/bookmarklets/init.php:31
+msgid "Subscribe in Tiny Tiny RSS"
+msgstr "Pasūtīt Tiny Tiny RSS"
+
+#: plugins/bookmarklets/init.php:34
+msgid "Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS"
+msgstr "Izmantojiet grāmatzīmes lai publicētu izvēlētās lapas Tiny Tiny RSS"
+
+#: plugins/import_export/init.php:58
+msgid "Import and export"
+msgstr "Imports un eksports"
+
+#: plugins/import_export/init.php:60
+#, fuzzy
+msgid "You can export and import your Starred and Archived articles for safekeeping or when migrating between tt-rss instances of same version."
+msgstr "Jūs varat eksportēt un importēt jūsu zvaigžņotos un arhivētos rakstus, lai saglabātu tos pārejot uz citu tt-rss instanci."
+
+#: plugins/import_export/init.php:65
+msgid "Export my data"
+msgstr "Eksportēt manus datus"
+
+#: plugins/import_export/init.php:81
+msgid "Import"
+msgstr "Imports"
+
+#: plugins/import_export/init.php:219
+msgid "Could not import: incorrect schema version."
+msgstr "Neizdevās importēt: nepareiza shēmas versija."
+
+#: plugins/import_export/init.php:224
+msgid "Could not import: unrecognized document format."
+msgstr "Neizdevās importēt: neatpazīts dokumenta formāts."
+
+#: plugins/import_export/init.php:383
+msgid "Finished: "
+msgstr ""
+
+#: plugins/import_export/init.php:384
+#, fuzzy, php-format
+msgid "%d article processed, "
+msgid_plural "%d articles processed, "
+msgstr[0] "Rediģēt raksta piezīmes"
+msgstr[1] "Rediģēt raksta piezīmes"
+
+#: plugins/import_export/init.php:385
+#, php-format
+msgid "%d imported, "
+msgid_plural "%d imported, "
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/import_export/init.php:386
+#, fuzzy, php-format
+msgid "%d feed created."
+msgid_plural "%d feeds created."
+msgstr[0] "Nav izvēlēta barotne."
+msgstr[1] "Nav izvēlēta barotne."
+
+#: plugins/import_export/init.php:391
+msgid "Could not load XML document."
+msgstr "Neizdevās ielādēt XML dokumentu."
+
+#: plugins/import_export/init.php:403
+msgid "Prepare data"
+msgstr "Sagatavo datus"
+
+#: plugins/import_export/init.php:446
+#: plugins/googlereaderimport/init.php:92
+msgid "No file uploaded."
+msgstr ""
+
+#: plugins/mail/init.php:85
+msgid "From:"
+msgstr "No:"
+
+#: plugins/mail/init.php:94
+msgid "To:"
+msgstr "Uz:"
+
+#: plugins/mail/init.php:107
+msgid "Subject:"
+msgstr "Temats:"
+
+#: plugins/mail/init.php:123
+msgid "Send e-mail"
+msgstr "Nosūtīt e-pastu"
+
+#: plugins/note/init.php:26
+#: plugins/note/note.js:11
+msgid "Edit article note"
+msgstr "Rediģēt raksta piezīmes"
+
+#: plugins/googlereaderimport/init.php:178
+#, php-format
+msgid "All done. %d out of %d articles imported."
+msgstr ""
+
+#: plugins/googlereaderimport/init.php:182
+msgid "The document has incorrect format."
+msgstr ""
+
+#: plugins/googlereaderimport/init.php:353
+msgid "Import starred or shared items from Google Reader"
+msgstr ""
+
+#: plugins/googlereaderimport/init.php:357
+msgid "Paste your starred.json or shared.json into the form below."
+msgstr ""
+
+#: plugins/googlereaderimport/init.php:371
+msgid "Import my Starred items"
+msgstr ""
+
+#: plugins/instances/init.php:141
+msgid "Linked"
+msgstr "Saistīts"
+
+#: plugins/instances/init.php:204
+#: plugins/instances/init.php:395
+msgid "Instance"
+msgstr "Instance"
+
+#: plugins/instances/init.php:215
+#: plugins/instances/init.php:312
+#: plugins/instances/init.php:404
+msgid "Instance URL"
+msgstr "Instances URL"
+
+#: plugins/instances/init.php:226
+#: plugins/instances/init.php:414
+msgid "Access key:"
+msgstr "Pieejas atslēga:"
+
+#: plugins/instances/init.php:229
+#: plugins/instances/init.php:313
+#: plugins/instances/init.php:417
+msgid "Access key"
+msgstr "Pieejas aslēga"
+
+#: plugins/instances/init.php:233
+#: plugins/instances/init.php:421
+msgid "Use one access key for both linked instances."
+msgstr "Izmantot to pašu pieejas aslēgu abām saistītajām instancēm."
+
+#: plugins/instances/init.php:241
+#: plugins/instances/init.php:429
+msgid "Generate new key"
+msgstr "Ģenerēt jaunu atslēgu"
+
+#: plugins/instances/init.php:292
+msgid "Link instance"
+msgstr "Saites instance"
+
+#: plugins/instances/init.php:304
+msgid "You can connect other instances of Tiny Tiny RSS to this one to share Popular feeds. Link to this instance of Tiny Tiny RSS by using this URL:"
+msgstr "Jūs varat pievienot kopīgot populārās barotnes un pieslēgt tai citas Tiny Tiny RSS instances. Pievienoties šai Tiny Tiny RSS instancei var, izmantojot šo saiti:"
+
+#: plugins/instances/init.php:314
+msgid "Last connected"
+msgstr "Pēdējo reizi pieteicies"
+
+#: plugins/instances/init.php:315
+msgid "Status"
+msgstr "Statuss"
+
+#: plugins/instances/init.php:316
+msgid "Stored feeds"
+msgstr "Saglabātās barotnes"
+
+#: plugins/instances/init.php:433
+msgid "Create link"
+msgstr "Izveidot saiti"
+
+#: plugins/share/init.php:25
+msgid "Share by URL"
+msgstr "Kopīgot ar URL"
+
+#: plugins/share/init.php:47
+msgid "You can share this article by the following unique URL:"
+msgstr "Jūs varat kopīgot šo rakstu ar sekojošu unikālu URL:"
+
+#: plugins/updater/init.php:321
+#: plugins/updater/init.php:338
+#: plugins/updater/updater.js:10
+msgid "Update Tiny Tiny RSS"
+msgstr "Atjaunot Tiny Tiny RSS"
+
+#: plugins/updater/init.php:341
+msgid "Your Tiny Tiny RSS installation is up to date."
+msgstr "Jūsu Tiny Tiny RSS ir aktuāls."
+
+#: plugins/updater/init.php:349
+#, fuzzy
+msgid "Do not close this dialog until updating is finished."
+msgstr "Lūdzu neaizveriet logu līdz ir pabeigta atjaunošana. Pirms turpināt, izveidojiet jūsu tt-rss mapes rezerves kopiju."
+
+#: plugins/updater/init.php:358
+msgid "It is suggested to backup your tt-rss directory first."
+msgstr ""
+
+#: plugins/updater/init.php:359
+msgid "Your database will not be modified."
+msgstr ""
+
+#: plugins/updater/init.php:360
+msgid "Your current tt-rss installation directory will not be modified. It will be renamed and left in the parent directory. You will be able to migrate all your customized files after update finishes."
+msgstr ""
+
+#: plugins/updater/init.php:361
+msgid "Ready to update."
+msgstr "Gatavs atjaunošanai."
+
+#: plugins/updater/init.php:366
+msgid "Start update"
+msgstr "Sākt atjaunošanu"
+
+#: js/PrefFeedTree.js:47
+msgid "Edit category"
+msgstr "Rediģēt kategoriju"
+
+#: js/PrefFeedTree.js:54
+msgid "Remove category"
+msgstr "Dzēst kategoriju"
+
+#: js/PrefFilterTree.js:48
+msgid "Inverse"
+msgstr "Apgriezt"
+
+#: js/feedlist.js:397
+#: js/feedlist.js:425
+msgid "Mark all articles in %s as read?"
+msgstr "Vai atzīmēt visus rakstus %s kā lasītus?"
+
+#: js/feedlist.js:416
+#, fuzzy
+msgid "Mark all articles in %s older than 1 day as read?"
+msgstr "Vai atzīmēt visus rakstus %s kā lasītus?"
+
+#: js/feedlist.js:419
+#, fuzzy
+msgid "Mark all articles in %s older than 1 week as read?"
+msgstr "Vai atzīmēt visus rakstus %s kā lasītus?"
+
+#: js/feedlist.js:422
+#, fuzzy
+msgid "Mark all articles in %s older than 2 weeks as read?"
+msgstr "Vai atzīmēt visus rakstus %s kā lasītus?"
+
+#: js/functions.js:65
+msgid "The error will be reported to the configured log destination."
+msgstr ""
+
+#: js/functions.js:107
+msgid "Are you sure to report this exception to tt-rss.org? The report will include your browser information. Your IP would be saved in the database."
+msgstr "Vai tiešām vēlaties ziņot par šo izņēmumu tt-rss.org? Ziņojumā tiks iekļauta informācija par jūsu pārlūkprogrammu, un jūsu IP adrese tiks saglabāta datu bāzē."
+
+#: js/functions.js:236
+#, fuzzy
+msgid "Click to close"
+msgstr "Klikšķiniet, lai apturētu"
+
+#: js/functions.js:612
+msgid "Error explained"
+msgstr ""
+
+#: js/functions.js:694
+msgid "Upload complete."
+msgstr ""
+
+#: js/functions.js:718
+msgid "Remove stored feed icon?"
+msgstr "Dzēst saglabāto barotnes ikonu?"
+
+#: js/functions.js:723
+#, fuzzy
+msgid "Removing feed icon..."
+msgstr "Dzēst saglabāto barotnes ikonu?"
+
+#: js/functions.js:728
+#, fuzzy
+msgid "Feed icon removed."
+msgstr "Barotne netika atrasta."
+
+#: js/functions.js:750
+msgid "Please select an image file to upload."
+msgstr "Lūdzu norādiet augšuplādējamo attēla failu."
+
+#: js/functions.js:752
+msgid "Upload new icon for this feed?"
+msgstr "Augšuplādēt šai barotnei jaunu ikonu?"
+
+#: js/functions.js:753
+#, fuzzy
+msgid "Uploading, please wait..."
+msgstr "Ielādē, lūdzu gaidiet..."
+
+#: js/functions.js:769
+msgid "Please enter label caption:"
+msgstr "Lūdzu ievadiet etiķetes uzrakstu:"
+
+#: js/functions.js:774
+msgid "Can't create label: missing caption."
+msgstr "Neizdevās izveidot etiķeti: nav uzraksta."
+
+#: js/functions.js:817
+msgid "Subscribe to Feed"
+msgstr "Pasūtīt barotni"
+
+#: js/functions.js:844
+msgid "Subscribed to %s"
+msgstr "Pasūtīta barotne %s"
+
+#: js/functions.js:849
+msgid "Specified URL seems to be invalid."
+msgstr "Norādītais URL ir nepareizs."
+
+#: js/functions.js:852
+msgid "Specified URL doesn't seem to contain any feeds."
+msgstr "Norādītajā URL nav nevienas barotnes."
+
+#: js/functions.js:862
+#, fuzzy
+msgid "Expand to select feed"
+msgstr "Rediģēt izvēlētās barotnes"
+
+#: js/functions.js:874
+msgid "Couldn't download the specified URL: %s"
+msgstr "Neizdevās lejuplādēt norādīto URL: %s"
+
+#: js/functions.js:878
+msgid "XML validation failed: %s"
+msgstr ""
+
+#: js/functions.js:883
+msgid "You are already subscribed to this feed."
+msgstr "Jūs jau esat pasūtījis šo barotni."
+
+#: js/functions.js:1013
+msgid "Edit rule"
+msgstr "Rediģēt likumu"
+
+#: js/functions.js:1039
+msgid "Edit action"
+msgstr "Rediģēt darbību"
+
+#: js/functions.js:1076
+msgid "Create Filter"
+msgstr "Izveidot filtru"
+
+#: js/functions.js:1191
+msgid "Reset subscription? Tiny Tiny RSS will try to subscribe to the notification hub again on next feed update."
+msgstr "Atstatīt pasūtīšanu? Tiny Tiny RSS mēģinās savākt informāciju no šīs barotnes kārtējā atjaunojuma laikā."
+
+#: js/functions.js:1202
+#, fuzzy
+msgid "Subscription reset."
+msgstr "Abonēt barotni..."
+
+#: js/functions.js:1212
+#: js/tt-rss.js:677
+msgid "Unsubscribe from %s?"
+msgstr "Atteikt pasūtījumu %s?"
+
+#: js/functions.js:1215
+msgid "Removing feed..."
+msgstr ""
+
+#: js/functions.js:1324
+msgid "Please enter category title:"
+msgstr "Lūdzu ievadiet kategorijas virsrakstu:"
+
+#: js/functions.js:1355
+msgid "Generate new syndication address for this feed?"
+msgstr "Izveidot jaunu šīs barotnes sindikācijas adresi?"
+
+#: js/functions.js:1359
+#: js/prefs.js:1231
+msgid "Trying to change address..."
+msgstr ""
+
+#: js/functions.js:1546
+#: js/tt-rss.js:422
+#: js/tt-rss.js:658
+msgid "You can't edit this kind of feed."
+msgstr "Jūs nevarat rediģēt šāda veida barotni."
+
+#: js/functions.js:1561
+msgid "Edit Feed"
+msgstr "Rediģēt barotni"
+
+#: js/functions.js:1567
+#: js/prefs.js:194
+#: js/prefs.js:749
+#, fuzzy
+msgid "Saving data..."
+msgstr "Saglabāt datus"
+
+#: js/functions.js:1599
+msgid "More Feeds"
+msgstr "Vairāk barotnes"
+
+#: js/functions.js:1660
+#: js/functions.js:1770
+#: js/prefs.js:397
+#: js/prefs.js:427
+#: js/prefs.js:459
+#: js/prefs.js:642
+#: js/prefs.js:662
+#: js/prefs.js:1207
+#: js/prefs.js:1352
+msgid "No feeds are selected."
+msgstr "Nav izvēlēta barotne"
+
+#: js/functions.js:1702
+msgid "Remove selected feeds from the archive? Feeds with stored articles will not be removed."
+msgstr "Dzēst izvēlētās barotnes no arhīva? Barotnes, kurās ir raksti, netiks dzēstas."
+
+#: js/functions.js:1741
+msgid "Feeds with update errors"
+msgstr "Barotnes ar atjaunošanas kļūdām"
+
+#: js/functions.js:1752
+#: js/prefs.js:1189
+msgid "Remove selected feeds?"
+msgstr "Dzēst izvēlētās barotnes?"
+
+#: js/functions.js:1755
+#: js/prefs.js:1192
+#, fuzzy
+msgid "Removing selected feeds..."
+msgstr "Dzēst izvēlētās barotnes?"
+
+#: js/functions.js:1853
+msgid "Help"
+msgstr "Palīdzība"
+
+#: js/prefs.js:55
+msgid "Please enter login:"
+msgstr "Lūdzu ievadiet pieteikšanās vārdu:"
+
+#: js/prefs.js:62
+msgid "Can't create user: no login specified."
+msgstr "Neizdevās izveidot lietotāju: netika norādīts pieteikšanās vārds."
+
+#: js/prefs.js:66
+#, fuzzy
+msgid "Adding user..."
+msgstr "Pievieno filtru..."
+
+#: js/prefs.js:94
+msgid "User Editor"
+msgstr "Lietotāja redaktors"
+
+#: js/prefs.js:117
+msgid "Edit Filter"
+msgstr "Rediģēt filtru"
+
+#: js/prefs.js:164
+msgid "Remove filter?"
+msgstr "Dzēst filtru?"
+
+#: js/prefs.js:169
+#, fuzzy
+msgid "Removing filter..."
+msgstr "Pievieno filtru..."
+
+#: js/prefs.js:279
+msgid "Remove selected labels?"
+msgstr "Dzēst izvēlētās etiķetes?"
+
+#: js/prefs.js:282
+#, fuzzy
+msgid "Removing selected labels..."
+msgstr "Dzēst izvēlētās etiķetes?"
+
+#: js/prefs.js:295
+#: js/prefs.js:1393
+msgid "No labels are selected."
+msgstr "Nav izvēlēta etiķete."
+
+#: js/prefs.js:309
+msgid "Remove selected users? Neither default admin nor your account will be removed."
+msgstr "Dzēst izvēlētos lietotājus? Netiks dzēsts ne jūsu konts, ne arī noklusētais administratora konts."
+
+#: js/prefs.js:312
+#, fuzzy
+msgid "Removing selected users..."
+msgstr "Dzēst izvēlētos filtrus?"
+
+#: js/prefs.js:326
+#: js/prefs.js:507
+#: js/prefs.js:528
+#: js/prefs.js:567
+msgid "No users are selected."
+msgstr "Nav izvēlēts lietotājs."
+
+#: js/prefs.js:344
+msgid "Remove selected filters?"
+msgstr "Dzēst izvēlētos filtrus?"
+
+#: js/prefs.js:347
+#, fuzzy
+msgid "Removing selected filters..."
+msgstr "Dzēst izvēlētos filtrus?"
+
+#: js/prefs.js:359
+#: js/prefs.js:597
+#: js/prefs.js:616
+msgid "No filters are selected."
+msgstr "Nav izvēlēts filtrs."
+
+#: js/prefs.js:378
+msgid "Unsubscribe from selected feeds?"
+msgstr "Atteikties no izvēlētajām barotnēm?"
+
+#: js/prefs.js:382
+#, fuzzy
+msgid "Unsubscribing from selected feeds..."
+msgstr "Atcelt izvēlēto barotņu pasūtīšanu"
+
+#: js/prefs.js:412
+msgid "Please select only one feed."
+msgstr "Lūdzu norādiet tikai vienu barotni."
+
+#: js/prefs.js:418
+msgid "Erase all non-starred articles in selected feed?"
+msgstr "Dzēst visus nezvaigžņotos rakstus norādītajā barotnē?"
+
+#: js/prefs.js:421
+#, fuzzy
+msgid "Clearing selected feed..."
+msgstr "Rediģēt izvēlētās barotnes"
+
+#: js/prefs.js:440
+msgid "How many days of articles to keep (0 - use default)?"
+msgstr "Cik dienas saglabāt rakstus (0 – noklusētais laiks)?"
+
+#: js/prefs.js:443
+#, fuzzy
+msgid "Purging selected feed..."
+msgstr "Rediģēt izvēlētās barotnes"
+
+#: js/prefs.js:478
+msgid "Login field cannot be blank."
+msgstr "Pieteikšanās lauks nevar būt tukšs."
+
+#: js/prefs.js:482
+#, fuzzy
+msgid "Saving user..."
+msgstr "Pievieno filtru..."
+
+#: js/prefs.js:512
+#: js/prefs.js:533
+#: js/prefs.js:572
+msgid "Please select only one user."
+msgstr "Lūdzu izvēlieties tikai vienu lietotāju."
+
+#: js/prefs.js:537
+msgid "Reset password of selected user?"
+msgstr "Atstatīt izvēlētā lietotāja paroli?"
+
+#: js/prefs.js:540
+#, fuzzy
+msgid "Resetting password for selected user..."
+msgstr "Atstatīt izvēlētā lietotāja paroli?"
+
+#: js/prefs.js:585
+msgid "User details"
+msgstr "Lietotāja detaļas"
+
+#: js/prefs.js:602
+msgid "Please select only one filter."
+msgstr "Lūdzu izvēlieties tikai vienu filtru."
+
+#: js/prefs.js:620
+msgid "Combine selected filters?"
+msgstr "Apvienot izvēlētos filtrus?"
+
+#: js/prefs.js:623
+#, fuzzy
+msgid "Joining filters..."
+msgstr "Pievieno filtru..."
+
+#: js/prefs.js:684
+msgid "Edit Multiple Feeds"
+msgstr "Rediģēt vairākus filtrus"
+
+#: js/prefs.js:708
+msgid "Save changes to selected feeds?"
+msgstr "Saglabāt izvēlēto barotņu izmaiņas?"
+
+#: js/prefs.js:785
+msgid "OPML Import"
+msgstr "OPML imports"
+
+#: js/prefs.js:812
+msgid "Please choose an OPML file first."
+msgstr "Lūdzu vispirms norādiet OPML failu."
+
+#: js/prefs.js:815
+#: plugins/import_export/import_export.js:115
+#: plugins/googlereaderimport/init.js:45
+#, fuzzy
+msgid "Importing, please wait..."
+msgstr "Ielādē, lūdzu gaidiet..."
+
+#: js/prefs.js:982
+msgid "Reset to defaults?"
+msgstr "Atsatīt uz noklusēto?"
+
+#: js/prefs.js:1096
+msgid "Remove category %s? Any nested feeds would be placed into Uncategorized."
+msgstr "Dzēst kategoriju %s? Visas iekļautās barotnes tiks pārvietotas uz Nekategorizēts kategoriju."
+
+#: js/prefs.js:1102
+#, fuzzy
+msgid "Removing category..."
+msgstr "Dzēst kategoriju"
+
+#: js/prefs.js:1123
+msgid "Remove selected categories?"
+msgstr "Dzēst izvēlētās kategorijas?"
+
+#: js/prefs.js:1126
+#, fuzzy
+msgid "Removing selected categories..."
+msgstr "Dzēst izvēlētās kategorijas?"
+
+#: js/prefs.js:1139
+msgid "No categories are selected."
+msgstr "Nav izvēlēta kategorija."
+
+#: js/prefs.js:1147
+msgid "Category title:"
+msgstr "Kategorijas virsraksts:"
+
+#: js/prefs.js:1151
+#, fuzzy
+msgid "Creating category..."
+msgstr "Izveidot filtru..."
+
+#: js/prefs.js:1178
+msgid "Feeds without recent updates"
+msgstr "Barotnes bez neseniem jaunumiem"
+
+#: js/prefs.js:1227
+msgid "Replace current OPML publishing address with a new one?"
+msgstr "Aizvietot esošo OPML publicēto adresi ar jauno vērtību?"
+
+#: js/prefs.js:1316
+#, fuzzy
+msgid "Clearing feed..."
+msgstr "Dzēst barotņu datus"
+
+#: js/prefs.js:1336
+msgid "Rescore articles in selected feeds?"
+msgstr "Atjaunot rakstus izvēlētajās barotnēs?"
+
+#: js/prefs.js:1339
+#, fuzzy
+msgid "Rescoring selected feeds..."
+msgstr "Atjaunot rakstus izvēlētajās barotnēs?"
+
+#: js/prefs.js:1359
+msgid "Rescore all articles? This operation may take a lot of time."
+msgstr "Pārvērtēt visus rakstus? Tas var prasīt ilgu laiku."
+
+#: js/prefs.js:1362
+#, fuzzy
+msgid "Rescoring feeds..."
+msgstr "Pārvērtēt barotni"
+
+#: js/prefs.js:1379
+msgid "Reset selected labels to default colors?"
+msgstr "Atstatīt iezīmētās etiķetes uz noklusētajām krāsām?"
+
+#: js/prefs.js:1416
+msgid "Settings Profiles"
+msgstr "Profilu iestatījumi"
+
+#: js/prefs.js:1425
+msgid "Remove selected profiles? Active and default profiles will not be removed."
+msgstr "Dzēst izvēlētos profilus? Aktīvie un noklusētie profili netiks dzēsti."
+
+#: js/prefs.js:1428
+#, fuzzy
+msgid "Removing selected profiles..."
+msgstr "Dzēst iezīmētos profilus"
+
+#: js/prefs.js:1443
+msgid "No profiles are selected."
+msgstr "Nav izvēlēts profils."
+
+#: js/prefs.js:1451
+#: js/prefs.js:1504
+msgid "Activate selected profile?"
+msgstr "Aktivizēt izvēlēto profilu?"
+
+#: js/prefs.js:1467
+#: js/prefs.js:1520
+msgid "Please choose a profile to activate."
+msgstr "Lūdzu norādiet aktivizējamo profilu."
+
+#: js/prefs.js:1472
+#, fuzzy
+msgid "Creating profile..."
+msgstr "Izveidot profilu"
+
+#: js/prefs.js:1528
+msgid "This will invalidate all previously generated feed URLs. Continue?"
+msgstr "Tas padarīs nederīgus visu iepriekš izveidoto barotņu URLus. Turpināt?"
+
+#: js/prefs.js:1531
+#: js/prefs.js:1550
+msgid "Clearing URLs..."
+msgstr ""
+
+#: js/prefs.js:1538
+#, fuzzy
+msgid "Generated URLs cleared."
+msgstr "Izveidot jaunu URL"
+
+#: js/prefs.js:1547
+msgid "This will invalidate all previously shared article URLs. Continue?"
+msgstr "Tas padarīs nederīgus visu iepriekš izveidoto kopīgoto rakstu URLus. Turpināt?"
+
+#: js/prefs.js:1557
+msgid "Shared URLs cleared."
+msgstr ""
+
+#: js/prefs.js:1648
+msgid "Label Editor"
+msgstr "Etiķešu redaktors"
+
+#: js/prefs.js:1770
+msgid "Subscribing to feeds..."
+msgstr "Barotņu pasūtīšana"
+
+#: js/prefs.js:1807
+msgid "Clear stored data for this plugin?"
+msgstr "Attīrīt šī spraudņa saglabātos datus?"
+
+#: js/prefs.js:1824
+msgid "Clear all messages in the error log?"
+msgstr ""
+
+#: js/tt-rss.js:127
+msgid "Mark all articles as read?"
+msgstr "Vai atzīmēt visus rakstus kā lasītus?"
+
+#: js/tt-rss.js:133
+#, fuzzy
+msgid "Marking all feeds as read..."
+msgstr "Atzīmēt visas barotnes kā lasītas"
+
+#: js/tt-rss.js:381
+msgid "Please enable mail plugin first."
+msgstr "Lūdzu, vispirmi iespējojiet e-pasta spraudni."
+
+#: js/tt-rss.js:493
+#, fuzzy
+msgid "Please enable embed_original plugin first."
+msgstr "Lūdzu, vispirmi iespējojiet e-pasta spraudni."
+
+#: js/tt-rss.js:645
+msgid "Select item(s) by tags"
+msgstr "Atlasīt vienumus pēc iezīmēm"
+
+#: js/tt-rss.js:666
+msgid "You can't unsubscribe from the category."
+msgstr "Jūs nevarat atteikties no kategorijas."
+
+#: js/tt-rss.js:671
+#: js/tt-rss.js:825
+msgid "Please select some feed first."
+msgstr "Lūdzu, vispirms norādiet barotni."
+
+#: js/tt-rss.js:820
+msgid "You can't rescore this kind of feed."
+msgstr "Jūs nevarat pārvērtēt šī veida barotni."
+
+#: js/tt-rss.js:830
+msgid "Rescore articles in %s?"
+msgstr "Pārvērtēt rakstus %s?"
+
+#: js/tt-rss.js:833
+#, fuzzy
+msgid "Rescoring articles..."
+msgstr "Pārvērtēt rakstus"
+
+#: js/tt-rss.js:967
+msgid "New version available!"
+msgstr "Ir pieejama jauna versija!"
+
+#: js/viewfeed.js:100
+msgid "Cancel search"
+msgstr "Atcelt meklēšanu"
+
+#: js/viewfeed.js:449
+msgid "Unstar article"
+msgstr "Atzvaigžņot rakstu"
+
+#: js/viewfeed.js:453
+msgid "Star article"
+msgstr "Zvaigžņot rakstu"
+
+#: js/viewfeed.js:493
+msgid "Unpublish article"
+msgstr "Atpublicēt rakstu"
+
+#: js/viewfeed.js:497
+msgid "Publish article"
+msgstr "Publicēt rakstu"
+
+#: js/viewfeed.js:649
+#, fuzzy
+msgid "%d article selected"
+msgid_plural "%d articles selected"
+msgstr[0] "Nav izvēlēts raksts."
+msgstr[1] "Nav izvēlēts raksts."
+
+#: js/viewfeed.js:721
+#: js/viewfeed.js:749
+#: js/viewfeed.js:776
+#: js/viewfeed.js:839
+#: js/viewfeed.js:873
+#: js/viewfeed.js:993
+#: js/viewfeed.js:1036
+#: js/viewfeed.js:1089
+#: js/viewfeed.js:2066
+#: plugins/mailto/init.js:7
+#: plugins/mail/mail.js:7
+msgid "No articles are selected."
+msgstr "Nav norādīts raksts."
+
+#: js/viewfeed.js:1001
+#, fuzzy
+msgid "Delete %d selected article in %s?"
+msgid_plural "Delete %d selected articles in %s?"
+msgstr[0] "Dzēst %d izvēlētos rakstus %s?"
+msgstr[1] "Dzēst %d izvēlētos rakstus %s?"
+
+#: js/viewfeed.js:1003
+#, fuzzy
+msgid "Delete %d selected article?"
+msgid_plural "Delete %d selected articles?"
+msgstr[0] "Dzēst %d izvēlētos rakstus?"
+msgstr[1] "Dzēst %d izvēlētos rakstus?"
+
+#: js/viewfeed.js:1045
+#, fuzzy
+msgid "Archive %d selected article in %s?"
+msgid_plural "Archive %d selected articles in %s?"
+msgstr[0] "Arhivēt %d izvēlētos rakstus %s?"
+msgstr[1] "Arhivēt %d izvēlētos rakstus %s?"
+
+#: js/viewfeed.js:1048
+#, fuzzy
+msgid "Move %d archived article back?"
+msgid_plural "Move %d archived articles back?"
+msgstr[0] "Pārvietot %d arhivētos rakstus atpakaļ?"
+msgstr[1] "Pārvietot %d arhivētos rakstus atpakaļ?"
+
+#: js/viewfeed.js:1050
+msgid "Please note that unstarred articles might get purged on next feed update."
+msgstr ""
+
+#: js/viewfeed.js:1095
+#, fuzzy
+msgid "Mark %d selected article in %s as read?"
+msgid_plural "Mark %d selected articles in %s as read?"
+msgstr[0] "Atzīmēt %d izvēlētos rakstus %s kā lasītus?"
+msgstr[1] "Atzīmēt %d izvēlētos rakstus %s kā lasītus?"
+
+#: js/viewfeed.js:1119
+msgid "Edit article Tags"
+msgstr "Rediģēt rakstu iezīmes"
+
+#: js/viewfeed.js:1125
+#, fuzzy
+msgid "Saving article tags..."
+msgstr "Rediģēt rakstu iezīmes"
+
+#: js/viewfeed.js:1331
+msgid "No article is selected."
+msgstr "Nav izvēlēts raksts."
+
+#: js/viewfeed.js:1366
+msgid "No articles found to mark"
+msgstr "Nav atrasti iezīmējamie raksti"
+
+#: js/viewfeed.js:1368
+#, fuzzy
+msgid "Mark %d article as read?"
+msgid_plural "Mark %d articles as read?"
+msgstr[0] "Iezīmēt %d rakstus kā lasītus?"
+msgstr[1] "Iezīmēt %d rakstus kā lasītus?"
+
+#: js/viewfeed.js:1870
+msgid "Open original article"
+msgstr "Atvērt sākotnējo rakstu"
+
+#: js/viewfeed.js:1876
+#, fuzzy
+msgid "Display article URL"
+msgstr "Parādīt URL"
+
+#: js/viewfeed.js:1895
+#, fuzzy
+msgid "Toggle marked"
+msgstr "Pārslēgt zvaigžņošanu"
+
+#: js/viewfeed.js:1976
+msgid "Assign label"
+msgstr "Pievienot etiķeti"
+
+#: js/viewfeed.js:1981
+msgid "Remove label"
+msgstr "Dzēst etiķeti"
+
+#: js/viewfeed.js:2035
+msgid "Please enter new score for selected articles:"
+msgstr "Ievadiet jauno vērtējumu izvēlētajiem rakstiem:"
+
+#: js/viewfeed.js:2077
+msgid "Please enter new score for this article:"
+msgstr "Ievadiet jaunu vērtējumu šim rakstam:"
+
+#: js/viewfeed.js:2110
+#, fuzzy
+msgid "Article URL:"
+msgstr "Visus rakstus"
+
+#: plugins/embed_original/init.js:6
+msgid "Sorry, your browser does not support sandboxed iframes."
+msgstr ""
+
+#: plugins/mailto/init.js:21
+#: plugins/mail/mail.js:21
+#, fuzzy
+msgid "Forward article by email"
+msgstr "Pārsūtīt e-pastā"
+
+#: plugins/import_export/import_export.js:13
+msgid "Export Data"
+msgstr "Eksportēt datus"
+
+#: plugins/import_export/import_export.js:40
+#, fuzzy
+msgid "Finished, exported %d article. You can download the data <a class='visibleLink' href='%u'>here</a>."
+msgid_plural "Finished, exported %d articles. You can download the data <a class='visibleLink' href='%u'>here</a>."
+msgstr[0] "Pabeigts. Eksportēti %d raksti. Jūs varat lejuplādēt datus <a class='visibleLink' href='%u'>šeit</a>."
+msgstr[1] "Pabeigts. Eksportēti %d raksti. Jūs varat lejuplādēt datus <a class='visibleLink' href='%u'>šeit</a>."
+
+#: plugins/import_export/import_export.js:93
+msgid "Data Import"
+msgstr "Datu imports"
+
+#: plugins/import_export/import_export.js:112
+msgid "Please choose the file first."
+msgstr "Lūdzu vispirms norādiet failu."
+
+#: plugins/note/note.js:17
+#, fuzzy
+msgid "Saving article note..."
+msgstr "Rediģēt raksta piezīmes"
+
+#: plugins/googlereaderimport/init.js:18
+msgid "Google Reader Import"
+msgstr ""
+
+#: plugins/googlereaderimport/init.js:42
+#, fuzzy
+msgid "Please choose a file first."
+msgstr "Lūdzu vispirms norādiet failu."
+
+#: plugins/instances/instances.js:10
+#, fuzzy
+msgid "Link Instance"
+msgstr "Saites instance"
+
+#: plugins/instances/instances.js:73
+#, fuzzy
+msgid "Edit Instance"
+msgstr "Instance"
+
+#: plugins/instances/instances.js:122
+#, fuzzy
+msgid "Remove selected instances?"
+msgstr "Dzēst izvēlētos filtrus?"
+
+#: plugins/instances/instances.js:125
+#, fuzzy
+msgid "Removing selected instances..."
+msgstr "Dzēst izvēlētos filtrus?"
+
+#: plugins/instances/instances.js:139
+#: plugins/instances/instances.js:151
+#, fuzzy
+msgid "No instances are selected."
+msgstr "Nav izvēlēts filtrs."
+
+#: plugins/instances/instances.js:156
+#, fuzzy
+msgid "Please select only one instance."
+msgstr "Lūdzu izvēlieties tikai vienu filtru."
+
+#: plugins/share/share.js:10
+#, fuzzy
+msgid "Share article by URL"
+msgstr "Kopīgot ar URL"
+
+#: plugins/updater/updater.js:58
+#, fuzzy
+msgid "Backup your tt-rss directory before continuing. Please type 'yes' to continue."
+msgstr "Lūdzu neaizveriet logu līdz ir pabeigta atjaunošana. Pirms turpināt, izveidojiet jūsu tt-rss mapes rezerves kopiju."
+
+#~ msgid "(Un)hide empty categories"
+#~ msgstr "(Ne)slēpt tukšās kategorijas"
+
+#~ msgid "Published articles and generated feeds"
+#~ msgstr "Publicētie raksti un sagatavotās barotnes"
+
+#~ msgid "Articles shared by URL"
+#~ msgstr "Raksti, kas kopīgoti ar URL"
+
+#~ msgid "These feeds have not been updated because of errors:"
+#~ msgstr "Šīs barotnes netika atjaunotas sekojošu kļūdu dēļ:"
+
+#, fuzzy
+#~ msgid "Your browser doesn't support Javascript, which is required for this application to function properly. Please check your browser settings."
+#~ msgstr ""
+#~ "Jūsu pārlūkprogramma neatbalsta Javascript, kas ir nepieciešams\n"
+#~ "\t\t\tlai šī programma strādātu pareizi. Lūdzu pārbaudiet savas\n"
+#~ "\t\t\tpārlūkprogrammas iestatījumus."
+
+#~ msgid "Hello,"
+#~ msgstr "Sveicināti,"
+
+#~ msgid "Regular version"
+#~ msgstr "Regulārā versija"
+
+#~ msgid "Home"
+#~ msgstr "Mājas"
+
+#~ msgid "Nothing found (click to reload feed)."
+#~ msgstr "Nekas netika atrasts (klikšķiniet, lai pārlādētu barotni)."
+
+#~ msgid "Open regular version"
+#~ msgstr "Atvērt parasto versiju"
+
+#~ msgid "Enable categories"
+#~ msgstr "Iespējot kategorijas"
+
+#~ msgid "ON"
+#~ msgstr "IESL."
+
+#~ msgid "OFF"
+#~ msgstr "Izsl."
+
+#~ msgid "Browse categories like folders"
+#~ msgstr "Pārlūkt kategorijas kā mapes."
+
+#~ msgid "Show images in posts"
+#~ msgstr "Rādīt ziņās attēlus."
+
+#~ msgid "Hide read articles and feeds"
+#~ msgstr "Nerādīt lasītos rakstus barotnēs"
+
+#~ msgid "Sort feeds by unread count"
+#~ msgstr "Kārtot barotnes pēc nelasīto skaita"
+
+#~ msgid "Article archive"
+#~ msgstr "Raksta arhīvs"
+
+#~ msgid "Example Pane"
+#~ msgstr "Piemēra panelis"
+
+#~ msgid "Sample value"
+#~ msgstr "Piemēra vērtība"
+
+#~ msgid "Set value"
+#~ msgstr "Iestatīt vērtību"
+
+#, fuzzy
+#~ msgid "Mark %d displayed article as read?"
+#~ msgid_plural "Mark %d displayed articles as read?"
+#~ msgstr[0] "Iezīmēt %d rakstus kā lasītus?"
+#~ msgstr[1] "Iezīmēt %d rakstus kā lasītus?"
+
+#, fuzzy
+#~ msgid "Error: unable to load article."
+#~ msgstr "Kļūda: lūdzu augšuplādējiet OPML failu."
+
+#, fuzzy
+#~ msgid "Click to expand article."
+#~ msgstr "Iezīmēt nelasītos rakstus"
+
+#, fuzzy
+#~ msgid "No unread feeds."
+#~ msgstr "Saglabātās barotnes"
+
+#, fuzzy
+#~ msgid "Load more..."
+#~ msgstr "Ielādē..."
+
+#~ msgid "Switch to digest..."
+#~ msgstr "Pārslēgties uz īssavilkumu..."
+
+#~ msgid "Show tag cloud..."
+#~ msgstr "Radīt birku mākoni..."
+
+#~ msgid "Click to play"
+#~ msgstr "Klikšķiniet, lai atskaņotu"
+
+#~ msgid "Play"
+#~ msgstr "Atskaņot"
+
+#~ msgid "Visit the website"
+#~ msgstr "Apmeklēt vietni"
+
+#~ msgid "Select theme"
+#~ msgstr "Izvēlieties tēmu"
+
+#~ msgid "I have scanned the code and would like to enable OTP"
+#~ msgstr "Esmu noskenējis šo kodu un vēlos iespējot vienreizlietojamo paroli"
+
+#~ msgid "Playing..."
+#~ msgstr "Atskaņo..."
+
+#, fuzzy
+#~ msgid "Could not upload file. You might need to adjust upload_max_filesize in PHP.ini (current value = %s)"
+#~ msgstr ""
+#~ "Neizdevās augšuplādēt failu. Iespējams, jums ir jāpielāgo upload_max_filesize iestatījums\n"
+#~ "\t\t\t\tPHP.ini failā (tekošā vērtība = %s)"
+
+#~ msgid "Default interval between feed updates"
+#~ msgstr "Noklusētais barotņu atjaunošanas intervāls "
+
+#~ msgid "Could not update database"
+#~ msgstr "Neizdevās atjaunot datu bāzi"
+
+#~ msgid "Could not find necessary schema file, need version:"
+#~ msgstr "Neizdevās atrast nepieciešamo shēmas failu, nepieciešama versija:"
+
+#~ msgid ", found: "
+#~ msgstr ", atradu:"
+
+#~ msgid "Tiny Tiny RSS database is up to date."
+#~ msgstr "Tiny Tiny RSS datubāze ir aktuāla."
+
+#~ msgid "Please backup your database before proceeding."
+#~ msgstr "Lūdzu pirms turpināšanas atjaunojiet datu bāzi."
+
+#~ msgid "Your Tiny Tiny RSS database needs update to the latest version (<b>%d</b> to <b>%d</b>)."
+#~ msgstr "Jūsu Tiny Tiny RSS datubāzi ir nepieciešams atjaunot uz jaunāko versiju (no <b>%d</b> uz <b>%d</b>)."
+
+#~ msgid "Performing updates..."
+#~ msgstr "Izpildu atjaunojumus..."
+
+#~ msgid "Updating to version %d..."
+#~ msgstr "Atjaunoju uz versiju %d..."
+
+#~ msgid "Checking version... "
+#~ msgstr "Pārbaudu versiju..."
+
+#~ msgid "OK!"
+#~ msgstr "Kārtībā!"
+
+#~ msgid "ERROR!"
+#~ msgstr "Kļūda!"
+
+#, fuzzy
+#~ msgid "Finished. Performed <b>%d</b> update up to schema version <b>%d</b>."
+#~ msgid_plural "Finished. Performed <b>%d</b> updates up to schema version <b>%d</b>."
+#~ msgstr[0] ""
+#~ "Pabeigts. Izpildīju <b>%d</b> shēmas atjaunojumu(s)\n"
+#~ "\t\t\tversija <b>%d</b>."
+#~ msgstr[1] ""
+#~ "Pabeigts. Izpildīju <b>%d</b> shēmas atjaunojumu(s)\n"
+#~ "\t\t\tversija <b>%d</b>."
+
+#~ msgid "Your database schema is from a newer version of Tiny Tiny RSS."
+#~ msgstr "Jūsu datu bāzes shēma ir no jaunākas Tiny Tiny RSS versijas."
+
+#~ msgid "Found schema version: <b>%d</b>, required: <b>%d</b>."
+#~ msgstr "Atradu shēmu ar versiju: <b>%d</b>, nepieciešama: <b>%d</b>."
+
+#~ msgid "Schema upgrade impossible. Please update Tiny Tiny RSS files to the newer version and continue."
+#~ msgstr "Nav iespējams veikt shēmas atjaunošanu. Lūdzu, pirms turpiniet, atjaunojiet Tiny Tiny RSS failus uz jaunāku versiju."
+
+#~ msgid "Mark feed as read"
+#~ msgstr "Atzīmēt barotni kā lasītu"
+
+#~ msgid "Enable external API"
+#~ msgstr "Iespējot ārēju API"
+
+#~ msgid "When this option is enabled, headlines in Special feeds and Labels are grouped by feeds"
+#~ msgstr "Ja šī iespēja ir ieslēgta, īpašo barotņu un iezīmju virsraksti tiek grupēti pēc barotnēm"
+
+#~ msgid "Title or Content"
+#~ msgstr "Virsraksts vai saturs"
+
+#~ msgid "Link"
+#~ msgstr "Saite"
+
+#~ msgid "Content"
+#~ msgstr "Saturs"
+
+#~ msgid "Article Date"
+#~ msgstr "Raksta datums"
+
+#~ msgid "Delete article"
+#~ msgstr "Dzēst rakstu"
+
+#~ msgid "Set starred"
+#~ msgstr "Uzlikt zvaigzni"
+
+#~ msgid "Assign tags"
+#~ msgstr "Pievienot iezīmi"
+
+#~ msgid "Modify score"
+#~ msgstr "Mainīt novērtējumu"
+
+#~ msgid "This option is useful when you are reading several planet-type aggregators with partially colliding userbase. When disabled, it forces same posts from different feeds to appear only once."
+#~ msgstr "Šī ir vērtīga iespēja, ja izmantojat planētas tipa agregatorus ar parklājošiem datiem. Kad tas ir atslēgts, tas no visām līdzīgām barotnēm parāda tikai vienu unikālu rakstu."
+
+#~ msgid "Date syntax appears to be correct:"
+#~ msgstr "Datuma sintakse ir pareiza:"
+
+#~ msgid "Date syntax is incorrect."
+#~ msgstr "Datuma sintakse ir nepareiza."
+
+#, fuzzy
+#~ msgid "(%d feed)"
+#~ msgid_plural "(%d feeds)"
+#~ msgstr[0] "(%d barotnes)"
+#~ msgstr[1] "(%d barotnes)"
+
+#~ msgid "Notice"
+#~ msgstr "Piezīme"
+
+#~ msgid "Tag Cloud"
+#~ msgstr "Iezīmju mākonis"
+
+#~ msgid "Mark all visible articles in %s as read?"
+#~ msgstr "Vai atzīmēt redzamos rakstus %s kā lasītus?"
+
+#~ msgid "Score"
+#~ msgstr "Novērtējums"
+
+#~ msgid "Enable the options you wish to apply using checkboxes on the right:"
+#~ msgstr "Iespējojiet iespējas, iezīmējot izvēles rūtiņas labajā pusē:"
+
+#~ msgid "New articles available in this feed (click to show)"
+#~ msgstr "Šajā barotnē pieejami jauni raksti (klikšķiniet, lai parādītu)"
+
+#~ msgid "Pocket"
+#~ msgstr "Kabata"
+
+#~ msgid "Pinterest"
+#~ msgstr "Pinterest"
+
+#~ msgid "Share on identi.ca"
+#~ msgstr "Kopīgot identi.ca"
+
+#, fuzzy
+#~ msgid "Flattr this article."
+#~ msgstr "Flattr raksts"
+
+#~ msgid "Share on Google+"
+#~ msgstr "Kopīgot Google+"
+
+#, fuzzy
+#~ msgid "Share on Twitter"
+#~ msgstr "Kopīgot identi.ca"
+
+#~ msgid "Show additional preferences"
+#~ msgstr "Rādīt papildu iestatījumus"
+
+#~ msgid "Back to feeds"
+#~ msgstr "Atpakaļ uz barotnēm"
+
+#~ msgid "This will clear your stored authentication information for Twitter. Continue?"
+#~ msgstr "Tas izdēsīs jūsu Twitter autentifikācijas informāciju. Turpināt?"
+
+#~ msgid "Updated"
+#~ msgstr "Atjaunotos"
+
+#~ msgid "Finished: %d articles processed, %d imported, %d feeds created."
+#~ msgstr "Pabeigts: %d apstrādāti raksti, %d importēti, %d izveidotas barotnes."
+
+#~ msgid "Related"
+#~ msgstr "Saistīts"
+
+#~ msgid "Notifying <b>%s</b>."
+#~ msgstr "Ziņoju <b>%s</b>."
+
+#~ msgid "Yes"
+#~ msgstr "Jā"
+
+#~ msgid "No"
+#~ msgstr "Nē"
+
+#~ msgid "Comments?"
+#~ msgstr "Komentāri?"
+
+#~ msgid "News"
+#~ msgstr "Jaunumi"
+
+#~ msgid "Move between feeds"
+#~ msgstr "Pārvietoties starp barotnēm"
+
+#~ msgid "Move between articles"
+#~ msgstr "Pārvietoties starp rakstiem"
+
+#~ msgid "Active article actions"
+#~ msgstr "Aktīvā raksta darbības"
+
+#~ msgid "Mark articles below/above active one as read"
+#~ msgstr "Atzīmēt rakstus virs/zem aktīvā kā lasītus"
+
+#~ msgid "Scroll article content"
+#~ msgstr "Pārtīt raksta saturu"
+
+#~ msgid "Other actions"
+#~ msgstr "Citas darbības"
+
+#~ msgid "Display this help dialog"
+#~ msgstr "Parādīt palīdzības logu"
+
+#~ msgid "Multiple articles actions"
+#~ msgstr "Vairāku rakstu darbības"
+
+#~ msgid "Select starred articles"
+#~ msgstr "Iezīmēt zvaigžņotos rakstus"
+
+#~ msgid "Feed actions"
+#~ msgstr "Barotnes darbības"
+
+#~ msgid "If viewing category, (un)collapse it"
+#~ msgstr "Skatot kategoriju (at/sa)kļaut to"
+
+#~ msgid "Press any key to close this window."
+#~ msgstr "Spiediet jebkuru taustiņu, lai aizvērtu logu"
+
+#~ msgid "My Feeds"
+#~ msgstr "Manas barotnes"
+
+#~ msgid "Panel actions"
+#~ msgstr "Paneļa darbības"
+
+#~ msgid "Top 25 feeds"
+#~ msgstr "25 barotņu tops"
+
+#~ msgid "Edit feed categories"
+#~ msgstr "Rediģēt barotņu kategorijas"
+
+#~ msgid "Focus search (if present)"
+#~ msgstr "Fokusēt meklēšanu (ja ir)"
+
+#~ msgid "<b>Note:</b> not all actions may be available, depending on Tiny Tiny RSS configuration and your access level."
+#~ msgstr "<b>Piezīme:</b> iespējams, ka visas darbības nav pieejamas, atkarībā no Tiny Tiny RSS iestatījumiem un jūsu pieejas tiesībām."
+
+#~ msgid "Fatal: authentication module %s not found."
+#~ msgstr "Fatāla kļūda: netika atrasts autentifikācijas modulis %s."
+
+#~ msgid "Open article in new tab"
+#~ msgstr "Atvērt jaunā cilnē"
+
+#~ msgid "Right-to-left content"
+#~ msgstr "Saturs no labās uz kreiso pusi"
+
+#~ msgid "Cache content locally"
+#~ msgstr "Kešot attēlus lokāli"
+
+#~ msgid "Mark posts as updated on content change"
+#~ msgstr "Atzīmēt rakstus ar mainītu saturu kā nelasītus"
+
+#~ msgid "Loading..."
+#~ msgstr "Ielādē..."
+
+#~ msgid "View in a tt-rss tab"
+#~ msgstr "Skatīt tt-rss cilnē"
diff --git a/locale/nl_NL/LC_MESSAGES/messages.mo b/locale/nl_NL/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..e6653dfbd
--- /dev/null
+++ b/locale/nl_NL/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/nl_NL/LC_MESSAGES/messages.po b/locale/nl_NL/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..9d4969648
--- /dev/null
+++ b/locale/nl_NL/LC_MESSAGES/messages.po
@@ -0,0 +1,3758 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: TT-RSS\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-05-14 09:35+0400\n"
+"PO-Revision-Date: 2013-05-02 13:55+0100\n"
+"Last-Translator: ArmyOfPirates\n"
+"Language-Team: translations <[email protected]>\n"
+"Language: DUTCH\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.5\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-KeywordsList: _\n"
+"X-Poedit-Basepath: .\n"
+
+#: backend.php:73
+msgid "Use default"
+msgstr "Gebruik standaardwaarde"
+
+#: backend.php:74
+msgid "Never purge"
+msgstr "Nooit opschonen"
+
+#: backend.php:75
+msgid "1 week old"
+msgstr "1 week oud"
+
+#: backend.php:76
+msgid "2 weeks old"
+msgstr "2 weken oud"
+
+#: backend.php:77
+msgid "1 month old"
+msgstr "1 maand oud"
+
+#: backend.php:78
+msgid "2 months old"
+msgstr "2 maanden oud"
+
+#: backend.php:79
+msgid "3 months old"
+msgstr "3 maanden oud"
+
+#: backend.php:82
+msgid "Default interval"
+msgstr "Standaard interval"
+
+#: backend.php:83
+#: backend.php:93
+msgid "Disable updates"
+msgstr "updates uitschakelen"
+
+#: backend.php:84
+#: backend.php:94
+msgid "Each 15 minutes"
+msgstr "Elke 15 minuten"
+
+#: backend.php:85
+#: backend.php:95
+msgid "Each 30 minutes"
+msgstr "Elke 30 minuten"
+
+#: backend.php:86
+#: backend.php:96
+msgid "Hourly"
+msgstr "Ieder uur"
+
+#: backend.php:87
+#: backend.php:97
+msgid "Each 4 hours"
+msgstr "Om de 4 uur"
+
+#: backend.php:88
+#: backend.php:98
+msgid "Each 12 hours"
+msgstr "Om de 12 uur"
+
+#: backend.php:89
+#: backend.php:99
+msgid "Daily"
+msgstr "Dagelijks"
+
+#: backend.php:90
+#: backend.php:100
+msgid "Weekly"
+msgstr "Wekelijks"
+
+#: backend.php:103
+#: classes/pref/users.php:119
+#: classes/pref/system.php:51
+msgid "User"
+msgstr "Gebruiker"
+
+#: backend.php:104
+msgid "Power User"
+msgstr "Hoofdgebruiker"
+
+#: backend.php:105
+msgid "Administrator"
+msgstr "Beheerder"
+
+#: errors.php:9
+msgid "This program requires XmlHttpRequest to function properly. Your browser doesn't seem to support it."
+msgstr "Dit programma vereist XmlHttpRequest om goed te functioneren. Uw browser lijkt dit niet te ondersteunen."
+
+#: errors.php:12
+msgid "This program requires cookies to function properly. Your browser doesn't seem to support them."
+msgstr "Dit programma vereist cookies om goed te functioneren. Uw browser lijkt dit niet te ondersteunen."
+
+#: errors.php:15
+msgid "Backend sanity check failed."
+msgstr "Gezondheidscontrole server is mislukt."
+
+#: errors.php:17
+msgid "Frontend sanity check failed."
+msgstr "Frontend gezondheidscontrole mislukt."
+
+#: errors.php:19
+msgid "Incorrect database schema version. &lt;a href='db-updater.php'&gt;Please update&lt;/a&gt;."
+msgstr "Onjuiste database schema versie. &lt;a href='db-updater.php'&gt;Bijwerken aub!&lt;/a&gt;."
+
+#: errors.php:21
+msgid "Request not authorized."
+msgstr "Verzoek niet toegestaan."
+
+#: errors.php:23
+msgid "No operation to perform."
+msgstr "Geen uit te voeren opdracht."
+
+#: errors.php:25
+msgid "Could not display feed: query failed. Please check label match syntax or local configuration."
+msgstr "Kon feed niet weergeven: de zoekopdracht is mislukt. Controleer aub de syntax van de labelzoektekst of de lokale configuratie. "
+
+#: errors.php:27
+msgid "Denied. Your access level is insufficient to access this page."
+msgstr "Niet toegestaan. Uw toegangsniveau is onvoldoende voor deze pagina."
+
+#: errors.php:29
+msgid "Configuration check failed"
+msgstr "Configuratiecontrole mislukt"
+
+#: errors.php:31
+msgid "Your version of MySQL is not currently supported. Please see official site for more information."
+msgstr "Uw versie van MySQL wordt niet ondersteund. Zie de officiële website voor meer informatie."
+
+#: errors.php:35
+msgid "SQL escaping test failed, check your database and PHP configuration"
+msgstr "SQL escaping test mislukt. Controleer uw database en de PHP configuratie"
+
+#: index.php:128
+#: index.php:145
+#: index.php:265
+#: prefs.php:98
+#: classes/backend.php:5
+#: classes/pref/labels.php:296
+#: classes/pref/filters.php:678
+#: classes/pref/feeds.php:1372
+#: js/feedlist.js:128
+#: js/feedlist.js:441
+#: js/functions.js:446
+#: js/functions.js:784
+#: js/functions.js:1194
+#: js/functions.js:1330
+#: js/functions.js:1642
+#: js/prefs.js:86
+#: js/prefs.js:576
+#: js/prefs.js:666
+#: js/prefs.js:867
+#: js/prefs.js:1454
+#: js/prefs.js:1507
+#: js/prefs.js:1566
+#: js/prefs.js:1583
+#: js/prefs.js:1599
+#: js/prefs.js:1619
+#: js/prefs.js:1792
+#: js/prefs.js:1808
+#: js/prefs.js:1826
+#: js/tt-rss.js:507
+#: js/tt-rss.js:524
+#: js/viewfeed.js:816
+#: js/viewfeed.js:1245
+#: plugins/import_export/import_export.js:17
+#: plugins/updater/updater.js:17
+msgid "Loading, please wait..."
+msgstr "Aan 't laden, even wachten aub..."
+
+#: index.php:159
+msgid "Collapse feedlist"
+msgstr "Feedlijst inklappen"
+
+#: index.php:162
+msgid "Show articles"
+msgstr "Toon artikelen"
+
+#: index.php:165
+msgid "Adaptive"
+msgstr "Aangepast"
+
+#: index.php:166
+msgid "All Articles"
+msgstr "Alle artikelen"
+
+#: index.php:167
+#: include/functions.php:2008
+#: classes/feeds.php:98
+msgid "Starred"
+msgstr "Met ster"
+
+#: index.php:168
+#: include/functions.php:2009
+#: classes/feeds.php:99
+msgid "Published"
+msgstr "Gepubliceerd"
+
+#: index.php:169
+#: classes/feeds.php:85
+#: classes/feeds.php:97
+msgid "Unread"
+msgstr "Ongelezen"
+
+#: index.php:170
+msgid "Unread First"
+msgstr "Ongelezen eerst"
+
+#: index.php:171
+msgid "With Note"
+msgstr "Met notitie"
+
+#: index.php:172
+msgid "Ignore Scoring"
+msgstr "Scores negeren"
+
+#: index.php:175
+msgid "Sort articles"
+msgstr "Artikelen sorteren"
+
+#: index.php:178
+msgid "Default"
+msgstr "Standaard"
+
+#: index.php:179
+msgid "Newest first"
+msgstr "Nieuwste eerst"
+
+#: index.php:180
+msgid "Oldest first"
+msgstr "Oudste eerst"
+
+#: index.php:181
+msgid "Title"
+msgstr "Titel"
+
+#: index.php:185
+#: index.php:233
+#: include/functions.php:1998
+#: classes/feeds.php:103
+#: classes/feeds.php:424
+#: js/FeedTree.js:128
+#: js/FeedTree.js:156
+msgid "Mark as read"
+msgstr "Markeren als gelezen"
+
+#: index.php:188
+msgid "Older than one day"
+msgstr "Ouder dan een dag"
+
+#: index.php:191
+msgid "Older than one week"
+msgstr "Ouder dan een week"
+
+#: index.php:194
+msgid "Older than two weeks"
+msgstr "Ouder dan twee weken"
+
+#: index.php:210
+msgid "Communication problem with server."
+msgstr "Communicatieprobleem met de server."
+
+#: index.php:218
+msgid "New version of Tiny Tiny RSS is available!"
+msgstr "Er is een nieuwe versie van Tiny Tiny RSS beschikbaar!"
+
+#: index.php:223
+msgid "Actions..."
+msgstr "Acties..."
+
+#: index.php:225
+msgid "Preferences..."
+msgstr "Voorkeuren…"
+
+#: index.php:226
+msgid "Search..."
+msgstr "Zoeken..."
+
+#: index.php:227
+msgid "Feed actions:"
+msgstr "Feed acties:"
+
+#: index.php:228
+#: classes/handler/public.php:562
+msgid "Subscribe to feed..."
+msgstr "Abonneren op feed..."
+
+#: index.php:229
+msgid "Edit this feed..."
+msgstr "Bewerk deze feed..."
+
+#: index.php:230
+msgid "Rescore feed"
+msgstr "Feed opnieuw score geven"
+
+#: index.php:231
+#: classes/pref/feeds.php:746
+#: classes/pref/feeds.php:1327
+#: js/PrefFeedTree.js:73
+msgid "Unsubscribe"
+msgstr "Abonnement opzeggen"
+
+#: index.php:232
+msgid "All feeds:"
+msgstr "Alle feeds:"
+
+#: index.php:234
+msgid "(Un)hide read feeds"
+msgstr "Toon/Verberg gelezen feeds"
+
+#: index.php:235
+msgid "Other actions:"
+msgstr "Andere acties:"
+
+#: index.php:236
+#: include/functions.php:1984
+msgid "Toggle widescreen mode"
+msgstr "Wisselen breedbeeld modus"
+
+#: index.php:237
+msgid "Select by tags..."
+msgstr "Selectie met tags..."
+
+#: index.php:238
+msgid "Create label..."
+msgstr "Label aanmaken…"
+
+#: index.php:239
+msgid "Create filter..."
+msgstr "Filter aanmaken…"
+
+#: index.php:240
+msgid "Keyboard shortcuts help"
+msgstr "Hulp bij sneltoetscombinaties"
+
+#: index.php:249
+msgid "Logout"
+msgstr "Afmelden"
+
+#: prefs.php:33
+#: prefs.php:116
+#: include/functions.php:2011
+#: classes/pref/prefs.php:440
+msgid "Preferences"
+msgstr "Voorkeuren"
+
+#: prefs.php:107
+msgid "Keyboard shortcuts"
+msgstr "Sneltoetscombinaties"
+
+#: prefs.php:108
+msgid "Exit preferences"
+msgstr "Verlaat voorkeuren"
+
+#: prefs.php:119
+#: classes/pref/feeds.php:106
+#: classes/pref/feeds.php:1253
+#: classes/pref/feeds.php:1316
+msgid "Feeds"
+msgstr "Feeds"
+
+#: prefs.php:122
+#: classes/pref/filters.php:154
+msgid "Filters"
+msgstr "Filters"
+
+#: prefs.php:125
+#: include/functions.php:1176
+#: include/functions.php:1832
+#: classes/pref/labels.php:90
+msgid "Labels"
+msgstr "Labels"
+
+#: prefs.php:129
+msgid "Users"
+msgstr "Gebruikers"
+
+#: prefs.php:132
+msgid "System"
+msgstr "Systeem"
+
+#: register.php:184
+#: include/login_form.php:238
+msgid "Create new account"
+msgstr "Maak nieuw account aan"
+
+#: register.php:190
+msgid "New user registrations are administratively disabled."
+msgstr "Het registreren van nieuwe gebruikers is door de beheerder uitgeschakeld."
+
+#: register.php:194
+#: register.php:239
+#: register.php:252
+#: register.php:267
+#: register.php:286
+#: register.php:334
+#: register.php:344
+#: register.php:356
+#: classes/handler/public.php:632
+#: classes/handler/public.php:723
+#: classes/handler/public.php:805
+#: classes/handler/public.php:880
+#: classes/handler/public.php:894
+#: classes/handler/public.php:901
+#: classes/handler/public.php:926
+msgid "Return to Tiny Tiny RSS"
+msgstr "Ga terug naar Tiny Tiny RSS"
+
+#: register.php:215
+msgid "Your temporary password will be sent to the specified email. Accounts, which were not logged in once, are erased automatically 24 hours after temporary password is sent."
+msgstr "Uw tijdelijke wachtwoord wordt naar het vermelde e-mailadres verstuurd. Accounts waarin niet wordt ingelogd, worden automatisch 24 uur na het verzenden van het tijdelijk wachtwoord verwijderd."
+
+#: register.php:221
+msgid "Desired login:"
+msgstr "Gewenst loginID:"
+
+#: register.php:224
+msgid "Check availability"
+msgstr "Controleer beschikbaarheid"
+
+#: register.php:226
+#: classes/handler/public.php:763
+msgid "Email:"
+msgstr "E-mail:"
+
+#: register.php:229
+#: classes/handler/public.php:768
+msgid "How much is two plus two:"
+msgstr "Hoeveel is twee plus twee:"
+
+#: register.php:232
+msgid "Submit registration"
+msgstr "Registratie indienen"
+
+#: register.php:250
+msgid "Your registration information is incomplete."
+msgstr "Uw registratie informatie is incompleet."
+
+#: register.php:265
+msgid "Sorry, this username is already taken."
+msgstr "Sorry, deze naam is al in gebruik."
+
+#: register.php:284
+msgid "Registration failed."
+msgstr "Registratie is mislukt."
+
+#: register.php:331
+msgid "Account created successfully."
+msgstr "Het account is met succes aangemaakt."
+
+#: register.php:353
+msgid "New user registrations are currently closed."
+msgstr "Nieuwe gebruikersregistratie is op dit moment niet mogelijk."
+
+#: update.php:55
+msgid "Tiny Tiny RSS data update script."
+msgstr "Tiny Tiny RSS data update script."
+
+#: include/digest.php:109
+#: include/functions.php:1185
+#: include/functions.php:1733
+#: include/functions.php:1818
+#: include/functions.php:1840
+#: classes/opml.php:416
+#: classes/pref/feeds.php:218
+msgid "Uncategorized"
+msgstr "Ongecategoriseerd"
+
+#: include/feedbrowser.php:83
+#, php-format
+msgid "%d archived article"
+msgid_plural "%d archived articles"
+msgstr[0] "%d gearchiveerd artikel"
+msgstr[1] "%d gearchiveerde artikelen"
+
+#: include/feedbrowser.php:107
+msgid "No feeds found."
+msgstr "Geen feeds gevonden."
+
+#: include/functions.php:1174
+#: include/functions.php:1830
+msgid "Special"
+msgstr "Speciaal"
+
+#: include/functions.php:1681
+#: classes/feeds.php:1097
+#: classes/pref/filters.php:425
+msgid "All feeds"
+msgstr "Alle feeds"
+
+#: include/functions.php:1885
+msgid "Starred articles"
+msgstr "Artikelen met ster"
+
+#: include/functions.php:1887
+msgid "Published articles"
+msgstr "Gepubliceerde artikelen"
+
+#: include/functions.php:1889
+msgid "Fresh articles"
+msgstr "Nieuwe artikelen"
+
+#: include/functions.php:1891
+#: include/functions.php:2006
+msgid "All articles"
+msgstr "Alle artikelen"
+
+#: include/functions.php:1893
+msgid "Archived articles"
+msgstr "Gearchiveerde artikelen"
+
+#: include/functions.php:1895
+msgid "Recently read"
+msgstr "Recent gelezen"
+
+#: include/functions.php:1958
+msgid "Navigation"
+msgstr "Navigatie"
+
+#: include/functions.php:1959
+msgid "Open next feed"
+msgstr "Open volgende feed"
+
+#: include/functions.php:1960
+msgid "Open previous feed"
+msgstr "Open voorgaande feed"
+
+#: include/functions.php:1961
+msgid "Open next article"
+msgstr "Open volgende artikel"
+
+#: include/functions.php:1962
+msgid "Open previous article"
+msgstr "Open voorgaand artikel"
+
+#: include/functions.php:1963
+msgid "Open next article (don't scroll long articles)"
+msgstr "Open volgend artikel (lange artikelen niet scrollen)"
+
+#: include/functions.php:1964
+msgid "Open previous article (don't scroll long articles)"
+msgstr "Open vorig artikel (lange artikelen niet scrollen)"
+
+#: include/functions.php:1965
+msgid "Move to next article (don't expand or mark read)"
+msgstr "Open volgend artikel (niet uitklappen of markeren als gelezen)"
+
+#: include/functions.php:1966
+msgid "Move to previous article (don't expand or mark read)"
+msgstr "Open vorig artikel (niet uitklappen of markeren als gelezen)"
+
+#: include/functions.php:1967
+msgid "Show search dialog"
+msgstr "Toon zoekdialoogvenster"
+
+#: include/functions.php:1968
+msgid "Article"
+msgstr "Artikel"
+
+#: include/functions.php:1969
+msgid "Toggle starred"
+msgstr "In/uitschakelen sterren"
+
+#: include/functions.php:1970
+#: js/viewfeed.js:1906
+msgid "Toggle published"
+msgstr "In/uitschakelen gepubliceerd"
+
+#: include/functions.php:1971
+#: js/viewfeed.js:1884
+msgid "Toggle unread"
+msgstr "In/uitschakelen gelezen"
+
+#: include/functions.php:1972
+msgid "Edit tags"
+msgstr "Bewerk tags"
+
+#: include/functions.php:1973
+msgid "Dismiss selected"
+msgstr "Geselecteerde negeren"
+
+#: include/functions.php:1974
+msgid "Dismiss read"
+msgstr "Gelezene negeren"
+
+#: include/functions.php:1975
+msgid "Open in new window"
+msgstr "Open in nieuw venster"
+
+#: include/functions.php:1976
+#: js/viewfeed.js:1925
+msgid "Mark below as read"
+msgstr "Hieronder markeren als gelezen"
+
+#: include/functions.php:1977
+#: js/viewfeed.js:1919
+msgid "Mark above as read"
+msgstr "Hierboven markeren als gelezen"
+
+#: include/functions.php:1978
+msgid "Scroll down"
+msgstr "Omlaag scrollen"
+
+#: include/functions.php:1979
+msgid "Scroll up"
+msgstr "Omhoog scrollen"
+
+#: include/functions.php:1980
+msgid "Select article under cursor"
+msgstr "Selecteer artikel onder de cursor"
+
+#: include/functions.php:1981
+msgid "Email article"
+msgstr "E-mail artikel"
+
+#: include/functions.php:1982
+msgid "Close/collapse article"
+msgstr "Sluiten/inklappen artikel"
+
+#: include/functions.php:1983
+msgid "Toggle article expansion (combined mode)"
+msgstr "In/uitschakelen artikel uitklappen (gecombineerde modus)"
+
+#: include/functions.php:1985
+#: plugins/embed_original/init.php:31
+msgid "Toggle embed original"
+msgstr "In/uitschakelen origineel insluiten"
+
+#: include/functions.php:1986
+msgid "Article selection"
+msgstr "Artikelselectie"
+
+#: include/functions.php:1987
+msgid "Select all articles"
+msgstr "Selecteer alle artikelen"
+
+#: include/functions.php:1988
+msgid "Select unread"
+msgstr "Selecteer ongelezen"
+
+#: include/functions.php:1989
+msgid "Select starred"
+msgstr "Selecteer met ster"
+
+#: include/functions.php:1990
+msgid "Select published"
+msgstr "Selecteer gepubliceerde"
+
+#: include/functions.php:1991
+msgid "Invert selection"
+msgstr "Keer selectie om"
+
+#: include/functions.php:1992
+msgid "Deselect everything"
+msgstr "Deselecteer alles"
+
+#: include/functions.php:1993
+#: classes/pref/feeds.php:540
+#: classes/pref/feeds.php:783
+msgid "Feed"
+msgstr "Feed"
+
+#: include/functions.php:1994
+msgid "Refresh current feed"
+msgstr "Ververs huidige feed"
+
+#: include/functions.php:1995
+msgid "Un/hide read feeds"
+msgstr "Toon/Verberg gelezen feeds"
+
+#: include/functions.php:1996
+#: classes/pref/feeds.php:1319
+msgid "Subscribe to feed"
+msgstr "Abonneer op feed"
+
+#: include/functions.php:1997
+#: js/FeedTree.js:135
+#: js/PrefFeedTree.js:67
+msgid "Edit feed"
+msgstr "Bewerk feed"
+
+#: include/functions.php:1999
+msgid "Reverse headlines"
+msgstr "Draai kopteksten om"
+
+#: include/functions.php:2000
+msgid "Debug feed update"
+msgstr "Debug feed update"
+
+#: include/functions.php:2001
+#: js/FeedTree.js:178
+msgid "Mark all feeds as read"
+msgstr "Markeer alle feeds als gelezen"
+
+#: include/functions.php:2002
+msgid "Un/collapse current category"
+msgstr "Uit/Inklappen huidige categorie"
+
+#: include/functions.php:2003
+msgid "Toggle combined mode"
+msgstr "In/uitschakelen gecombineerde modus"
+
+#: include/functions.php:2004
+msgid "Toggle auto expand in combined mode"
+msgstr "In/uitschakelen automatisch uitklappen in gecombineerde modus"
+
+#: include/functions.php:2005
+msgid "Go to"
+msgstr "Ga naar"
+
+#: include/functions.php:2007
+msgid "Fresh"
+msgstr "Nieuw"
+
+#: include/functions.php:2010
+#: js/tt-rss.js:457
+#: js/tt-rss.js:642
+msgid "Tag cloud"
+msgstr "Tag wolk"
+
+#: include/functions.php:2012
+msgid "Other"
+msgstr "Andere"
+
+#: include/functions.php:2013
+#: classes/pref/labels.php:281
+msgid "Create label"
+msgstr "Maak label"
+
+#: include/functions.php:2014
+#: classes/pref/filters.php:652
+msgid "Create filter"
+msgstr "Maak filter"
+
+#: include/functions.php:2015
+msgid "Un/collapse sidebar"
+msgstr "Uit/Inklappen zijbalk"
+
+#: include/functions.php:2016
+msgid "Show help dialog"
+msgstr "Toon helpdialoogvenster"
+
+#: include/functions.php:2537
+#, php-format
+msgid "Search results: %s"
+msgstr "Zoekresultaten: %s"
+
+#: include/functions.php:3132
+msgid " - "
+msgstr " - "
+
+#: include/functions.php:3154
+#: include/functions.php:3395
+#: classes/article.php:281
+msgid "no tags"
+msgstr "geen tags"
+
+#: include/functions.php:3164
+#: classes/feeds.php:676
+msgid "Edit tags for this article"
+msgstr "Bewerk tags voor dit artikel"
+
+#: include/functions.php:3196
+#: classes/feeds.php:628
+msgid "Originally from:"
+msgstr "Oorspronkelijk uit:"
+
+#: include/functions.php:3209
+#: classes/feeds.php:641
+#: classes/pref/feeds.php:559
+msgid "Feed URL"
+msgstr "Feed URL"
+
+#: include/functions.php:3241
+#: classes/dlg.php:37
+#: classes/dlg.php:60
+#: classes/dlg.php:93
+#: classes/dlg.php:159
+#: classes/dlg.php:190
+#: classes/dlg.php:217
+#: classes/dlg.php:250
+#: classes/dlg.php:262
+#: classes/backend.php:105
+#: classes/pref/users.php:95
+#: classes/pref/filters.php:145
+#: classes/pref/prefs.php:1096
+#: classes/pref/feeds.php:1626
+#: classes/pref/feeds.php:1694
+#: plugins/import_export/init.php:407
+#: plugins/import_export/init.php:452
+#: plugins/googlereaderimport/init.php:193
+#: plugins/share/init.php:65
+#: plugins/updater/init.php:368
+msgid "Close this window"
+msgstr "Sluit dit venster"
+
+#: include/functions.php:3432
+msgid "(edit note)"
+msgstr "(bewerk notitie)"
+
+#: include/functions.php:3667
+msgid "unknown type"
+msgstr "onbekend type"
+
+#: include/functions.php:3723
+msgid "Attachments"
+msgstr "Bijlagen"
+
+#: include/functions.php:4222
+#, php-format
+msgid "LibXML error %s at line %d (column %d): %s"
+msgstr "LibXML fout %s op regel %d (kolom %d): %s"
+
+#: include/login_form.php:183
+#: classes/handler/public.php:475
+#: classes/handler/public.php:758
+msgid "Login:"
+msgstr "Aanmelden:"
+
+#: include/login_form.php:194
+#: classes/handler/public.php:478
+msgid "Password:"
+msgstr "Wachtwoord:"
+
+#: include/login_form.php:199
+msgid "I forgot my password"
+msgstr "Ik ben mijn wachtwoord vergeten"
+
+#: include/login_form.php:205
+msgid "Profile:"
+msgstr "Profiel:"
+
+#: include/login_form.php:209
+#: classes/handler/public.php:233
+#: classes/rpc.php:63
+#: classes/pref/prefs.php:1034
+msgid "Default profile"
+msgstr "Standaard profiel"
+
+#: include/login_form.php:217
+msgid "Use less traffic"
+msgstr "Gebruik minder dataverkeer"
+
+#: include/login_form.php:221
+msgid "Does not display images in articles, reduces automatic refreshes."
+msgstr "Geeft geen afbeeldingen weer in artikelen, vermindert automatisch herladen."
+
+#: include/login_form.php:229
+msgid "Remember me"
+msgstr "Onthoud mij"
+
+#: include/login_form.php:235
+#: classes/handler/public.php:483
+msgid "Log in"
+msgstr "Aanmelden"
+
+#: include/sessions.php:61
+msgid "Session failed to validate (incorrect IP)"
+msgstr "De sessie kon niet worden gevalideerd (onjuist IP)"
+
+#: classes/article.php:25
+msgid "Article not found."
+msgstr "Artikel niet gevonden."
+
+#: classes/article.php:179
+msgid "Tags for this article (separated by commas):"
+msgstr "Tags voor dit artikel (komma gescheiden):"
+
+#: classes/article.php:204
+#: classes/pref/users.php:172
+#: classes/pref/labels.php:79
+#: classes/pref/filters.php:403
+#: classes/pref/prefs.php:980
+#: classes/pref/feeds.php:762
+#: classes/pref/feeds.php:910
+#: plugins/nsfw/init.php:83
+#: plugins/note/init.php:51
+#: plugins/instances/init.php:245
+msgid "Save"
+msgstr "Opslaan"
+
+#: classes/article.php:206
+#: classes/handler/public.php:452
+#: classes/handler/public.php:486
+#: classes/feeds.php:1024
+#: classes/feeds.php:1076
+#: classes/feeds.php:1136
+#: classes/pref/users.php:174
+#: classes/pref/labels.php:81
+#: classes/pref/filters.php:406
+#: classes/pref/filters.php:801
+#: classes/pref/filters.php:877
+#: classes/pref/filters.php:944
+#: classes/pref/prefs.php:982
+#: classes/pref/feeds.php:763
+#: classes/pref/feeds.php:913
+#: classes/pref/feeds.php:1834
+#: plugins/mail/init.php:124
+#: plugins/note/init.php:53
+#: plugins/instances/init.php:248
+#: plugins/instances/init.php:436
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: classes/handler/public.php:416
+#: plugins/bookmarklets/init.php:40
+msgid "Share with Tiny Tiny RSS"
+msgstr "Deel met Tiny Tiny RSS"
+
+#: classes/handler/public.php:424
+msgid "Title:"
+msgstr "Titel:"
+
+#: classes/handler/public.php:426
+#: classes/pref/feeds.php:557
+#: classes/pref/feeds.php:798
+#: plugins/instances/init.php:212
+#: plugins/instances/init.php:401
+msgid "URL:"
+msgstr "URL:"
+
+#: classes/handler/public.php:428
+msgid "Content:"
+msgstr "Inhoud:"
+
+#: classes/handler/public.php:430
+msgid "Labels:"
+msgstr "Labels:"
+
+#: classes/handler/public.php:449
+msgid "Shared article will appear in the Published feed."
+msgstr "Gedeeld artikel zal verschijnen in de Gepubliceerd feed."
+
+#: classes/handler/public.php:451
+msgid "Share"
+msgstr "Delen"
+
+#: classes/handler/public.php:473
+msgid "Not logged in"
+msgstr "Niet ingelogd"
+
+#: classes/handler/public.php:532
+msgid "Incorrect username or password"
+msgstr "Onjuiste gebruikersnaam of wachtwoord"
+
+#: classes/handler/public.php:568
+#: classes/handler/public.php:666
+#, php-format
+msgid "Already subscribed to <b>%s</b>."
+msgstr "Reeds geabonneerd op <b>%s</b>."
+
+#: classes/handler/public.php:571
+#: classes/handler/public.php:657
+#, php-format
+msgid "Subscribed to <b>%s</b>."
+msgstr "Geabonneerd op <b>%s</b>."
+
+#: classes/handler/public.php:574
+#: classes/handler/public.php:660
+#, php-format
+msgid "Could not subscribe to <b>%s</b>."
+msgstr "Kon niet abonneren op <b>%s</b>."
+
+#: classes/handler/public.php:577
+#: classes/handler/public.php:663
+#, php-format
+msgid "No feeds found in <b>%s</b>."
+msgstr "Geen feeds gevonden in <b>%s</b>."
+
+#: classes/handler/public.php:580
+#: classes/handler/public.php:669
+msgid "Multiple feed URLs found."
+msgstr "Meerdere feed-URL's gevonden."
+
+#: classes/handler/public.php:584
+#: classes/handler/public.php:676
+#, php-format
+msgid "Could not subscribe to <b>%s</b>.<br>Can't download the Feed URL."
+msgstr "Kon niet abonneren op <b>%s</b>.<br>Kon de feed URL niet downloaden."
+
+#: classes/handler/public.php:602
+#: classes/handler/public.php:694
+msgid "Subscribe to selected feed"
+msgstr "Abonneren op de geselecteerde feed"
+
+#: classes/handler/public.php:627
+#: classes/handler/public.php:718
+msgid "Edit subscription options"
+msgstr "Bewerk abonnement opties"
+
+#: classes/handler/public.php:745
+msgid "Password recovery"
+msgstr "Wachtwoordherstel"
+
+#: classes/handler/public.php:751
+msgid "You will need to provide valid account name and email. New password will be sent on your email address."
+msgstr "Je moet een geldige naam en emailadres opgeven. Het nieuwe wachtwoord wordt naar je emailadres verzonden."
+
+#: classes/handler/public.php:773
+#: classes/pref/users.php:356
+msgid "Reset password"
+msgstr "Herstel wachtwoord"
+
+#: classes/handler/public.php:783
+msgid "Some of the required form parameters are missing or incorrect."
+msgstr "Sommige vereiste velden ontbreken of zijn onjuist."
+
+#: classes/handler/public.php:787
+#: classes/handler/public.php:813
+msgid "Go back"
+msgstr "Ga terug"
+
+#: classes/handler/public.php:809
+msgid "Sorry, login and email combination not found."
+msgstr "Sorry, deze combinatie van naam en wachtwoord is onbekend."
+
+#: classes/handler/public.php:829
+msgid "Your access level is insufficient to run this script."
+msgstr "Uw toegangsrechten zijn niet voldoende om dit script uit te voeren."
+
+#: classes/handler/public.php:853
+msgid "Database Updater"
+msgstr "Database updater"
+
+#: classes/handler/public.php:918
+msgid "Perform updates"
+msgstr "Voor de updates uit"
+
+#: classes/dlg.php:16
+msgid "If you have imported labels and/or filters, you might need to reload preferences to see your new data."
+msgstr "Indien u labels en/of filters heeft geïmporteerd moet u waarschijnlijk te voorkeuren herladen om uw bijgewerkte gegevens te zien."
+
+#: classes/dlg.php:48
+msgid "Your Public OPML URL is:"
+msgstr "Uw publieke OPML URL is:"
+
+#: classes/dlg.php:57
+#: classes/dlg.php:214
+msgid "Generate new URL"
+msgstr "Genereer nieuwe URL"
+
+#: classes/dlg.php:71
+msgid "Update daemon is enabled in configuration, but daemon process is not running, which prevents all feeds from updating. Please start the daemon process or contact instance owner."
+msgstr "De update daemon is ingeschakeld in de configuratie, maar het achtergrondproces loopt niet. Dit voorkomt dat alle feeds wordt bijgewerkt. Start het achtergrondproces of contacteer de eigenaar van deze instantie."
+
+#: classes/dlg.php:75
+#: classes/dlg.php:84
+msgid "Last update:"
+msgstr "Laatste update:"
+
+#: classes/dlg.php:80
+msgid "Update daemon is taking too long to perform a feed update. This could indicate a problem like crash or a hang. Please check the daemon process or contact instance owner."
+msgstr "De update daemon neemt te veel tijd om een feed bij te werken. Dit kan betekenen dat het proces is gescrashed of hangt. Controleer het achtergrondproces of contacteer de eigenaar van deze instantie."
+
+#: classes/dlg.php:166
+msgid "Match:"
+msgstr "Match:"
+
+#: classes/dlg.php:168
+msgid "Any"
+msgstr "Elke"
+
+#: classes/dlg.php:171
+msgid "All tags."
+msgstr "Alle tags."
+
+#: classes/dlg.php:173
+msgid "Which Tags?"
+msgstr "Welke tags?"
+
+#: classes/dlg.php:186
+msgid "Display entries"
+msgstr "Items weergeven"
+
+#: classes/dlg.php:205
+msgid "You can view this feed as RSS using the following URL:"
+msgstr "u kunt deze feed bekijken als RSS via de volgende URL:"
+
+#: classes/dlg.php:233
+#: plugins/updater/init.php:331
+#, php-format
+msgid "New version of Tiny Tiny RSS is available (%s)."
+msgstr "Nieuwe versie van Tiny Tiny RSS is beschikbaar (%s)."
+
+#: classes/dlg.php:241
+msgid "You can update using built-in updater in the Preferences or by using update.php"
+msgstr "U kunt updaten met behulp van de ingebouwde updater in de Voorkeuren of via update.php"
+
+#: classes/dlg.php:245
+#: plugins/updater/init.php:335
+msgid "See the release notes"
+msgstr "Zie de uitgave opmerkingen"
+
+#: classes/dlg.php:247
+msgid "Download"
+msgstr "Downloaden"
+
+#: classes/dlg.php:255
+msgid "Error receiving version information or no new version available."
+msgstr "Fout bij verkrijgen van versie informatie, of geen nieuwe versie beschikbaar."
+
+#: classes/feeds.php:56
+#, php-format
+msgid "Last updated: %s"
+msgstr "Laatst geüpdatet: %s"
+
+#: classes/feeds.php:75
+msgid "View as RSS feed"
+msgstr "Toon als RSS feed"
+
+#: classes/feeds.php:76
+#: classes/feeds.php:128
+#: classes/pref/feeds.php:1478
+msgid "View as RSS"
+msgstr "Toon als RSS"
+
+#: classes/feeds.php:83
+msgid "Select:"
+msgstr "Selecteer:"
+
+#: classes/feeds.php:84
+#: classes/pref/users.php:341
+#: classes/pref/labels.php:275
+#: classes/pref/filters.php:280
+#: classes/pref/filters.php:328
+#: classes/pref/filters.php:646
+#: classes/pref/filters.php:734
+#: classes/pref/filters.php:761
+#: classes/pref/prefs.php:994
+#: classes/pref/feeds.php:1310
+#: classes/pref/feeds.php:1575
+#: classes/pref/feeds.php:1641
+#: plugins/instances/init.php:287
+msgid "All"
+msgstr "Alles"
+
+#: classes/feeds.php:86
+msgid "Invert"
+msgstr "Omkeren"
+
+#: classes/feeds.php:87
+#: classes/pref/users.php:343
+#: classes/pref/labels.php:277
+#: classes/pref/filters.php:282
+#: classes/pref/filters.php:330
+#: classes/pref/filters.php:648
+#: classes/pref/filters.php:736
+#: classes/pref/filters.php:763
+#: classes/pref/prefs.php:996
+#: classes/pref/feeds.php:1312
+#: classes/pref/feeds.php:1577
+#: classes/pref/feeds.php:1643
+#: plugins/instances/init.php:289
+msgid "None"
+msgstr "Niets"
+
+#: classes/feeds.php:93
+msgid "More..."
+msgstr "Meer…"
+
+#: classes/feeds.php:95
+msgid "Selection toggle:"
+msgstr "Selectie schakelaar:"
+
+#: classes/feeds.php:101
+msgid "Selection:"
+msgstr "Selectie:"
+
+#: classes/feeds.php:104
+msgid "Set score"
+msgstr "Geef score"
+
+#: classes/feeds.php:107
+msgid "Archive"
+msgstr "Archiveer"
+
+#: classes/feeds.php:109
+msgid "Move back"
+msgstr "Terugzetten"
+
+#: classes/feeds.php:110
+#: classes/pref/filters.php:289
+#: classes/pref/filters.php:337
+#: classes/pref/filters.php:743
+#: classes/pref/filters.php:770
+msgid "Delete"
+msgstr "Verwijderen"
+
+#: classes/feeds.php:115
+#: classes/feeds.php:120
+#: plugins/mailto/init.php:25
+#: plugins/mail/init.php:26
+msgid "Forward by email"
+msgstr "Doorsturen per e-mail"
+
+#: classes/feeds.php:124
+msgid "Feed:"
+msgstr "Feed:"
+
+#: classes/feeds.php:197
+#: classes/feeds.php:824
+msgid "Feed not found."
+msgstr "Feed niet gevonden."
+
+#: classes/feeds.php:254
+msgid "Never"
+msgstr "Nooit"
+
+#: classes/feeds.php:360
+#, php-format
+msgid "Imported at %s"
+msgstr "Geïmporteerd op %s"
+
+#: classes/feeds.php:520
+msgid "mark as read"
+msgstr "markeer als gelezen"
+
+#: classes/feeds.php:570
+msgid "Collapse article"
+msgstr "Artikel inklappen"
+
+#: classes/feeds.php:725
+msgid "No unread articles found to display."
+msgstr "Er zijn geen ongelezen artikelen gevonden om weer te geven."
+
+#: classes/feeds.php:728
+msgid "No updated articles found to display."
+msgstr "Geen bijgewerkte artikelen gevonden om weer te geven."
+
+#: classes/feeds.php:731
+msgid "No starred articles found to display."
+msgstr "Er zijn geen artikelen met ster gevonden om weer te geven."
+
+#: classes/feeds.php:735
+msgid "No articles found to display. You can assign articles to labels manually from article header context menu (applies to all selected articles) or use a filter."
+msgstr "Geen artikelen gevonden voor weergave. U kunt handmatig labels aan artikels toekennen (zie het Actie menu hierboven) of een filter gebruiken."
+
+#: classes/feeds.php:737
+msgid "No articles found to display."
+msgstr "Geen artikelen gevonden om weer te geven."
+
+#: classes/feeds.php:752
+#: classes/feeds.php:919
+#, php-format
+msgid "Feeds last updated at %s"
+msgstr "Feeds laatst bijgewerkt op %s"
+
+#: classes/feeds.php:762
+#: classes/feeds.php:929
+msgid "Some feeds have update errors (click for details)"
+msgstr "Sommige feeds hebben update fouten (klik voor details)"
+
+#: classes/feeds.php:909
+msgid "No feed selected."
+msgstr "Geen feeds geselecteerd."
+
+#: classes/feeds.php:962
+#: classes/feeds.php:970
+msgid "Feed or site URL"
+msgstr "Feed of website URL"
+
+#: classes/feeds.php:976
+#: classes/pref/feeds.php:579
+#: classes/pref/feeds.php:811
+#: classes/pref/feeds.php:1798
+msgid "Place in category:"
+msgstr "Plaats in categorie:"
+
+#: classes/feeds.php:984
+msgid "Available feeds"
+msgstr "Beschikbare feeds"
+
+#: classes/feeds.php:996
+#: classes/pref/users.php:135
+#: classes/pref/feeds.php:609
+#: classes/pref/feeds.php:847
+msgid "Authentication"
+msgstr "Authenticatie"
+
+#: classes/feeds.php:1000
+#: classes/pref/users.php:398
+#: classes/pref/feeds.php:615
+#: classes/pref/feeds.php:851
+#: classes/pref/feeds.php:1812
+msgid "Login"
+msgstr "LoginID"
+
+#: classes/feeds.php:1003
+#: classes/pref/prefs.php:260
+#: classes/pref/feeds.php:628
+#: classes/pref/feeds.php:857
+#: classes/pref/feeds.php:1815
+msgid "Password"
+msgstr "Wachtwoord"
+
+#: classes/feeds.php:1013
+msgid "This feed requires authentication."
+msgstr "Deze feed vereist authenticatie."
+
+#: classes/feeds.php:1018
+#: classes/feeds.php:1074
+#: classes/pref/feeds.php:1833
+msgid "Subscribe"
+msgstr "Abonneren"
+
+#: classes/feeds.php:1021
+msgid "More feeds"
+msgstr "Meer feeds"
+
+#: classes/feeds.php:1044
+#: classes/feeds.php:1135
+#: classes/pref/users.php:328
+#: classes/pref/filters.php:639
+#: classes/pref/feeds.php:1303
+#: js/tt-rss.js:174
+msgid "Search"
+msgstr "Zoeken"
+
+#: classes/feeds.php:1048
+msgid "Popular feeds"
+msgstr "Populaire feeds"
+
+#: classes/feeds.php:1049
+msgid "Feed archive"
+msgstr "Feed archief"
+
+#: classes/feeds.php:1052
+msgid "limit:"
+msgstr "beperking:"
+
+#: classes/feeds.php:1075
+#: classes/pref/users.php:354
+#: classes/pref/labels.php:284
+#: classes/pref/filters.php:396
+#: classes/pref/filters.php:665
+#: classes/pref/feeds.php:733
+#: plugins/instances/init.php:294
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: classes/feeds.php:1086
+msgid "Look for"
+msgstr "Zoek naar"
+
+#: classes/feeds.php:1094
+msgid "Limit search to:"
+msgstr "Beperk zoeken naar:"
+
+#: classes/feeds.php:1110
+msgid "This feed"
+msgstr "Deze feed"
+
+#: classes/backend.php:33
+msgid "Other interface tips are available in the Tiny Tiny RSS wiki."
+msgstr "Andere interface tips zijn te vinden in de Tiny Tiny RSS wiki."
+
+#: classes/backend.php:38
+msgid "Keyboard Shortcuts"
+msgstr "Sneltoetscombinaties"
+
+#: classes/backend.php:61
+msgid "Shift"
+msgstr "Shift"
+
+#: classes/backend.php:64
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: classes/backend.php:99
+msgid "Help topic not found."
+msgstr "Help onderwerp niet gevonden."
+
+#: classes/opml.php:28
+#: classes/opml.php:33
+msgid "OPML Utility"
+msgstr "OPML hulpprogramma"
+
+#: classes/opml.php:37
+msgid "Importing OPML..."
+msgstr "OPML aan 't importeren…"
+
+#: classes/opml.php:41
+msgid "Return to preferences"
+msgstr "Terug naar voorkeuren"
+
+#: classes/opml.php:270
+#, php-format
+msgid "Adding feed: %s"
+msgstr "Feed toevoegen: %s"
+
+#: classes/opml.php:281
+#, php-format
+msgid "Duplicate feed: %s"
+msgstr "Dubbele feed: %s"
+
+#: classes/opml.php:295
+#, php-format
+msgid "Adding label %s"
+msgstr "Toevoegen label %s"
+
+#: classes/opml.php:298
+#, php-format
+msgid "Duplicate label: %s"
+msgstr "Dubbele label: %s"
+
+#: classes/opml.php:310
+#, php-format
+msgid "Setting preference key %s to %s"
+msgstr "Instellen voorkeursleutel %s op %s"
+
+#: classes/opml.php:339
+msgid "Adding filter..."
+msgstr "Filter toevoegen..."
+
+#: classes/opml.php:416
+#, php-format
+msgid "Processing category: %s"
+msgstr "Verwerken categorie: %s"
+
+#: classes/opml.php:465
+#: plugins/import_export/init.php:420
+#: plugins/googlereaderimport/init.php:66
+#, php-format
+msgid "Upload failed with error code %d"
+msgstr "Upload mislukt met fout nummer %d"
+
+#: classes/opml.php:479
+#: plugins/import_export/init.php:434
+#: plugins/googlereaderimport/init.php:80
+msgid "Unable to move uploaded file."
+msgstr "Kan het geüploade bestand niet verplaatsen."
+
+#: classes/opml.php:483
+#: plugins/import_export/init.php:438
+#: plugins/googlereaderimport/init.php:84
+msgid "Error: please upload OPML file."
+msgstr "Fout: OPML bestand uploaden aub."
+
+#: classes/opml.php:492
+msgid "Error: unable to find moved OPML file."
+msgstr "Fout: kan het verplaatste OPML bestand niet vinden."
+
+#: classes/opml.php:499
+#: plugins/googlereaderimport/init.php:186
+msgid "Error while parsing document."
+msgstr "Fout bij het parsen van het document."
+
+#: classes/pref/users.php:6
+#: classes/pref/system.php:8
+#: plugins/instances/init.php:154
+msgid "Your access level is insufficient to open this tab."
+msgstr "Uw toegangsniveau is niet toereikend om deze tab te openen."
+
+#: classes/pref/users.php:34
+msgid "User not found"
+msgstr "Gebruiker niet gevonden"
+
+#: classes/pref/users.php:53
+#: classes/pref/users.php:400
+msgid "Registered"
+msgstr "Geregistreerd"
+
+#: classes/pref/users.php:54
+msgid "Last logged in"
+msgstr "Laatst ingelogd"
+
+#: classes/pref/users.php:61
+msgid "Subscribed feeds count"
+msgstr "Aantal geabonneerde feeds"
+
+#: classes/pref/users.php:65
+msgid "Subscribed feeds"
+msgstr "Geabonneerde feeds"
+
+#: classes/pref/users.php:138
+msgid "Access level: "
+msgstr "Toegangsniveau:"
+
+#: classes/pref/users.php:151
+msgid "Change password to"
+msgstr "Wijzig wachtwoord naar"
+
+#: classes/pref/users.php:157
+#: classes/pref/feeds.php:636
+#: classes/pref/feeds.php:863
+msgid "Options"
+msgstr "Opties"
+
+#: classes/pref/users.php:160
+msgid "E-mail: "
+msgstr "E-mail: "
+
+#: classes/pref/users.php:236
+#, php-format
+msgid "Added user <b>%s</b> with password <b>%s</b>"
+msgstr "Gebruiker <b>%s</b> toegevoegd met wachtwoord <b>%s</b>"
+
+#: classes/pref/users.php:243
+#, php-format
+msgid "Could not create user <b>%s</b>"
+msgstr "Kon gebruiker <b>%s</b> niet aanmaken"
+
+#: classes/pref/users.php:247
+#, php-format
+msgid "User <b>%s</b> already exists."
+msgstr "Gebruiker <b>%s</b> bestaat al."
+
+#: classes/pref/users.php:269
+#, php-format
+msgid "Changed password of user <b>%s</b> to <b>%s</b>"
+msgstr "Wachtwoord van gebruiker<b>%s</b> naar <b>%s</b> gewijzigd"
+
+#: classes/pref/users.php:271
+#, php-format
+msgid "Sending new password of user <b>%s</b> to <b>%s</b>"
+msgstr "Wachtwoord van gebruiker<b>%s</b>naar <b>%s</b> versturen"
+
+#: classes/pref/users.php:295
+msgid "[tt-rss] Password change notification"
+msgstr "[tt-rss] Melding verandering van wachtwoord"
+
+#: classes/pref/users.php:338
+#: classes/pref/labels.php:272
+#: classes/pref/filters.php:277
+#: classes/pref/filters.php:325
+#: classes/pref/filters.php:643
+#: classes/pref/filters.php:731
+#: classes/pref/filters.php:758
+#: classes/pref/prefs.php:991
+#: classes/pref/feeds.php:1307
+#: classes/pref/feeds.php:1572
+#: classes/pref/feeds.php:1638
+#: plugins/instances/init.php:284
+msgid "Select"
+msgstr "Selecteer"
+
+#: classes/pref/users.php:346
+msgid "Create user"
+msgstr "Gebruiker aanmaken"
+
+#: classes/pref/users.php:350
+msgid "Details"
+msgstr "Details"
+
+#: classes/pref/users.php:352
+#: classes/pref/filters.php:658
+#: plugins/instances/init.php:293
+msgid "Edit"
+msgstr "Bewerken"
+
+#: classes/pref/users.php:399
+msgid "Access Level"
+msgstr "Toegangsniveau"
+
+#: classes/pref/users.php:401
+msgid "Last login"
+msgstr "Laatste loginID"
+
+#: classes/pref/users.php:420
+#: plugins/instances/init.php:334
+msgid "Click to edit"
+msgstr "Klik om te bewerken"
+
+#: classes/pref/users.php:440
+msgid "No users defined."
+msgstr "Geen gebruikers gedefinieerd."
+
+#: classes/pref/users.php:442
+msgid "No matching users found."
+msgstr "Geen overeenkomstige gebruikers gevonden."
+
+#: classes/pref/labels.php:22
+#: classes/pref/filters.php:266
+#: classes/pref/filters.php:722
+msgid "Caption"
+msgstr "Onderschrift"
+
+#: classes/pref/labels.php:37
+msgid "Colors"
+msgstr "Kleuren"
+
+#: classes/pref/labels.php:42
+msgid "Foreground:"
+msgstr "Voorgrond:"
+
+#: classes/pref/labels.php:42
+msgid "Background:"
+msgstr "Achtergrond:"
+
+#: classes/pref/labels.php:232
+#, php-format
+msgid "Created label <b>%s</b>"
+msgstr "Label <b>%s</b> aangemaakt"
+
+#: classes/pref/labels.php:287
+msgid "Clear colors"
+msgstr "Wis kleuren"
+
+#: classes/pref/filters.php:94
+msgid "Articles matching this filter:"
+msgstr "Artikelen volgens dit filter:"
+
+#: classes/pref/filters.php:131
+msgid "No recent articles matching this filter have been found."
+msgstr "Er zijn geen recente artikelen die overeenkomen met dit filter gevonden."
+
+#: classes/pref/filters.php:135
+msgid "Complex expressions might not give results while testing due to issues with database server regexp implementation."
+msgstr "Complexe expressies kunnen geen resultaat geven bij het testen, tengevolge van problemen bij de database server's regexp implementatie."
+
+#: classes/pref/filters.php:272
+#: classes/pref/filters.php:726
+#: classes/pref/filters.php:841
+msgid "Match"
+msgstr "Match"
+
+#: classes/pref/filters.php:286
+#: classes/pref/filters.php:334
+#: classes/pref/filters.php:740
+#: classes/pref/filters.php:767
+msgid "Add"
+msgstr "Toevoegen"
+
+#: classes/pref/filters.php:320
+#: classes/pref/filters.php:753
+msgid "Apply actions"
+msgstr "Acties toepassen"
+
+#: classes/pref/filters.php:370
+#: classes/pref/filters.php:782
+msgid "Enabled"
+msgstr "Ingeschakeld"
+
+#: classes/pref/filters.php:379
+#: classes/pref/filters.php:785
+msgid "Match any rule"
+msgstr "Match elke regel"
+
+#: classes/pref/filters.php:388
+#: classes/pref/filters.php:788
+msgid "Inverse matching"
+msgstr "Omgekeerde matching"
+
+#: classes/pref/filters.php:400
+#: classes/pref/filters.php:795
+msgid "Test"
+msgstr "Test"
+
+#: classes/pref/filters.php:433
+msgid "(inverse)"
+msgstr "(omgekeerd)"
+
+#: classes/pref/filters.php:432
+#, php-format
+msgid "%s on %s in %s %s"
+msgstr "%s op %s in %s %s"
+
+#: classes/pref/filters.php:655
+msgid "Combine"
+msgstr "Combineren"
+
+#: classes/pref/filters.php:661
+#: classes/pref/feeds.php:1323
+#: classes/pref/feeds.php:1337
+msgid "Reset sort order"
+msgstr "Herstel sorteervolgorde"
+
+#: classes/pref/filters.php:669
+#: classes/pref/feeds.php:1359
+msgid "Rescore articles"
+msgstr "Artikelen nieuwe score geven"
+
+#: classes/pref/filters.php:798
+msgid "Create"
+msgstr "Aanmaken"
+
+#: classes/pref/filters.php:853
+msgid "Inverse regular expression matching"
+msgstr "Omgekeerde regular expression matching"
+
+#: classes/pref/filters.php:855
+msgid "on field"
+msgstr "op veld"
+
+#: classes/pref/filters.php:861
+#: js/PrefFilterTree.js:45
+msgid "in"
+msgstr "in"
+
+#: classes/pref/filters.php:874
+msgid "Save rule"
+msgstr "Regel opslaan"
+
+#: classes/pref/filters.php:874
+#: js/functions.js:1013
+msgid "Add rule"
+msgstr "Regel toevoegen"
+
+#: classes/pref/filters.php:897
+msgid "Perform Action"
+msgstr "Actie uitvoeren"
+
+#: classes/pref/filters.php:923
+msgid "with parameters:"
+msgstr "met parameters:"
+
+#: classes/pref/filters.php:941
+msgid "Save action"
+msgstr "Actie opslaan"
+
+#: classes/pref/filters.php:941
+#: js/functions.js:1039
+msgid "Add action"
+msgstr "Actie toevoegen"
+
+#: classes/pref/filters.php:964
+msgid "[No caption]"
+msgstr "[Geen onderschrift]"
+
+#: classes/pref/prefs.php:18
+msgid "General"
+msgstr "Algemeen"
+
+#: classes/pref/prefs.php:19
+msgid "Interface"
+msgstr "Interface"
+
+#: classes/pref/prefs.php:20
+msgid "Advanced"
+msgstr "Geavanceerd"
+
+#: classes/pref/prefs.php:21
+msgid "Digest"
+msgstr "Samenvatting"
+
+#: classes/pref/prefs.php:25
+msgid "Allow duplicate articles"
+msgstr "Sta dubbele artikels toe"
+
+#: classes/pref/prefs.php:26
+msgid "Assign articles to labels automatically"
+msgstr "Artikelen automatisch toekennen aan labels"
+
+#: classes/pref/prefs.php:27
+msgid "Blacklisted tags"
+msgstr "Op de zwarte lijst geplaatste tags"
+
+#: classes/pref/prefs.php:27
+msgid "When auto-detecting tags in articles these tags will not be applied (comma-separated list)."
+msgstr "Wanneer tags automatisch worden gedetecteerd in artikelen, zullen deze tags niet worden toegekend (komma-gescheiden lijst)."
+
+#: classes/pref/prefs.php:28
+msgid "Automatically mark articles as read"
+msgstr "Artikelen automatisch als gelezen markeren"
+
+#: classes/pref/prefs.php:28
+msgid "This option enables marking articles as read automatically while you scroll article list."
+msgstr "Deze optie schakelt het automatisch markeren als gelezen van artikelen (terwijl u door de artikellijst scrolt) in."
+
+#: classes/pref/prefs.php:29
+msgid "Automatically expand articles in combined mode"
+msgstr "Artikelen automatisch uitklappen in gecombineerde modus"
+
+#: classes/pref/prefs.php:30
+msgid "Combined feed display"
+msgstr "Gecombineerde feed weergave"
+
+#: classes/pref/prefs.php:30
+msgid "Display expanded list of feed articles, instead of separate displays for headlines and article content"
+msgstr "Uitgeklapte lijst van artikelen weergeven in plaats van afzonderlijke weergave van kopteksten en artikelinhoud"
+
+#: classes/pref/prefs.php:31
+msgid "Confirm marking feed as read"
+msgstr "Bevestig feed markeren als gelezen"
+
+#: classes/pref/prefs.php:32
+msgid "Amount of articles to display at once"
+msgstr "Aantal tegelijkertijd weer te geven artikelen "
+
+#: classes/pref/prefs.php:33
+msgid "Default feed update interval"
+msgstr "Standaard feed update interval"
+
+#: classes/pref/prefs.php:33
+msgid "Shortest interval at which a feed will be checked for updates regardless of update method"
+msgstr "Kortste interval waarmee een feed wordt gecontroleerd op updates, onafhankelijk van upate methode"
+
+#: classes/pref/prefs.php:34
+msgid "Mark articles in e-mail digest as read"
+msgstr "Markeer artikelen in e-mail samenvatting als gelezen"
+
+#: classes/pref/prefs.php:35
+msgid "Enable e-mail digest"
+msgstr "Schakel e-mail samenvatting in"
+
+#: classes/pref/prefs.php:35
+msgid "This option enables sending daily digest of new (and unread) headlines on your configured e-mail address"
+msgstr "Deze optie schakelt het verzenden van een dagelijkse samenvatting van nieuwe (en ongelezen) kopteksten naar het door u ingestelde e-mailadres in"
+
+#: classes/pref/prefs.php:36
+msgid "Try to send digests around specified time"
+msgstr "Tracht samenvattingen te verzenden rond een bepaalde tijd"
+
+#: classes/pref/prefs.php:36
+msgid "Uses UTC timezone"
+msgstr "Gebruikt UTC tijdzone"
+
+#: classes/pref/prefs.php:37
+msgid "Enable API access"
+msgstr "Sta API toegang toe"
+
+#: classes/pref/prefs.php:37
+msgid "Allows external clients to access this account through the API"
+msgstr "Laat externe clienten to tot dit account via de API"
+
+#: classes/pref/prefs.php:38
+msgid "Enable feed categories"
+msgstr "Inschakelen feed categorieën"
+
+#: classes/pref/prefs.php:39
+msgid "Sort feeds by unread articles count"
+msgstr "Sorteer feeds op aantal ongelezen artikelen"
+
+#: classes/pref/prefs.php:40
+msgid "Maximum age of fresh articles (in hours)"
+msgstr "Maximum leeftijd van nieuwe artikelen (uren) "
+
+#: classes/pref/prefs.php:41
+msgid "Hide feeds with no unread articles"
+msgstr "Feeds zonder ongelezen artikelen verbergen"
+
+#: classes/pref/prefs.php:42
+msgid "Show special feeds when hiding read feeds"
+msgstr "Toon speciale feeds bij verbergen gelezen feeds"
+
+#: classes/pref/prefs.php:43
+msgid "Long date format"
+msgstr "Lang datumformaat"
+
+#: classes/pref/prefs.php:44
+msgid "On catchup show next feed"
+msgstr "Toon volgende feed na bijwerken"
+
+#: classes/pref/prefs.php:44
+msgid "Automatically open next feed with unread articles after marking one as read"
+msgstr "Automatisch volgende feed met ongelezen artikelen openen nadat er een is gemarkeerd als gelezen"
+
+#: classes/pref/prefs.php:45
+msgid "Purge articles after this number of days (0 - disables)"
+msgstr "Permanent verwijderen van artikelen na dit aantal dagen (0 - zet dit uit)"
+
+#: classes/pref/prefs.php:46
+msgid "Purge unread articles"
+msgstr "Ongelezen artikelen permanent verwijderen"
+
+#: classes/pref/prefs.php:47
+msgid "Reverse headline order (oldest first)"
+msgstr "Draai de koptekst volgorde om (oudste eerst)"
+
+#: classes/pref/prefs.php:48
+msgid "Short date format"
+msgstr "Korte datumformaat"
+
+#: classes/pref/prefs.php:49
+msgid "Show content preview in headlines list"
+msgstr "Toon voorbeeld van inhoud in lijst van kopteksten"
+
+#: classes/pref/prefs.php:50
+msgid "Sort headlines by feed date"
+msgstr "Sorteer kopteksten op feed datum"
+
+#: classes/pref/prefs.php:50
+msgid "Use feed-specified date to sort headlines instead of local import date."
+msgstr "Door feed gespecificeerde data gebruiken om kopteksten te sorteren in plaats van lokaal geïmporteerde data."
+
+#: classes/pref/prefs.php:51
+msgid "Login with an SSL certificate"
+msgstr "Aanmelden met een SSL-certificaat"
+
+#: classes/pref/prefs.php:51
+msgid "Click to register your SSL client certificate with tt-rss"
+msgstr "Klik om uw SSL cliëntcertificaat te registreren bij tt-rss"
+
+#: classes/pref/prefs.php:52
+msgid "Do not embed images in articles"
+msgstr "Afbeeldingen niet insluiten in artikelen"
+
+#: classes/pref/prefs.php:53
+msgid "Strip unsafe tags from articles"
+msgstr "Verwijder onveilige tags uit artikelen"
+
+#: classes/pref/prefs.php:53
+msgid "Strip all but most common HTML tags when reading articles."
+msgstr "Verwijder alles behalve de meest algemene HTML tags bij het lezen van artikelen."
+
+#: classes/pref/prefs.php:54
+#: js/prefs.js:1719
+msgid "Customize stylesheet"
+msgstr "Aanpassen opmaakmodel"
+
+#: classes/pref/prefs.php:54
+msgid "Customize CSS stylesheet to your liking"
+msgstr "Aanpassen CSS opmaakmodel aan uw voorkeur"
+
+#: classes/pref/prefs.php:55
+msgid "Time zone"
+msgstr "Gebruiker's tijdzone"
+
+#: classes/pref/prefs.php:56
+msgid "Group headlines in virtual feeds"
+msgstr "Kopteksten in virtuele feeds groeperen"
+
+#: classes/pref/prefs.php:56
+msgid "Special feeds, labels, and categories are grouped by originating feeds"
+msgstr "Speciale feeds, labels en categorieën worden gegroepeerd op oorspronkelijke feeds"
+
+#: classes/pref/prefs.php:57
+msgid "Language"
+msgstr "Taal"
+
+#: classes/pref/prefs.php:58
+msgid "Theme"
+msgstr "Thema"
+
+#: classes/pref/prefs.php:58
+msgid "Select one of the available CSS themes"
+msgstr "Selecteer een van de beschikbare CSS themas"
+
+#: classes/pref/prefs.php:69
+msgid "Old password cannot be blank."
+msgstr "Oud wachtwoord kan niet leeg zijn."
+
+#: classes/pref/prefs.php:74
+msgid "New password cannot be blank."
+msgstr "Nieuw wachtwoord kan niet leeg zijn."
+
+#: classes/pref/prefs.php:79
+msgid "Entered passwords do not match."
+msgstr "Ingevulde wachtwoorden komen niet overeen."
+
+#: classes/pref/prefs.php:88
+msgid "Function not supported by authentication module."
+msgstr "Functie niet ondersteund door authenticatiemodule."
+
+#: classes/pref/prefs.php:127
+msgid "The configuration was saved."
+msgstr "De configuratie is opgeslagen."
+
+#: classes/pref/prefs.php:142
+#, php-format
+msgid "Unknown option: %s"
+msgstr "Onbekende optie: %s"
+
+#: classes/pref/prefs.php:156
+msgid "Your personal data has been saved."
+msgstr "Uw persoonlijke gegevens zijn opgeslagen."
+
+#: classes/pref/prefs.php:176
+msgid "Your preferences are now set to default values."
+msgstr "Je voorkeuren zijn nu ingesteld op de standaardwaarden."
+
+#: classes/pref/prefs.php:198
+msgid "Personal data / Authentication"
+msgstr "Persoonlijke gegevens / Authenticatie"
+
+#: classes/pref/prefs.php:218
+msgid "Personal data"
+msgstr "Persoonlijke gegevens"
+
+#: classes/pref/prefs.php:228
+msgid "Full name"
+msgstr "Volledige naam"
+
+#: classes/pref/prefs.php:232
+msgid "E-mail"
+msgstr "E-mail"
+
+#: classes/pref/prefs.php:238
+msgid "Access level"
+msgstr "Toegangsniveau"
+
+#: classes/pref/prefs.php:248
+msgid "Save data"
+msgstr "Gegevens opslaan"
+
+#: classes/pref/prefs.php:267
+msgid "Your password is at default value, please change it."
+msgstr "Uw wachtwoord staat op de standaard waarde. Verander het aub."
+
+#: classes/pref/prefs.php:294
+msgid "Changing your current password will disable OTP."
+msgstr "Je wachtwoord wijzigen schakelt Eenmalig Wachtwoord uit."
+
+#: classes/pref/prefs.php:299
+msgid "Old password"
+msgstr "Oud wachtwoord"
+
+#: classes/pref/prefs.php:302
+msgid "New password"
+msgstr "Nieuw wachtwoord"
+
+#: classes/pref/prefs.php:307
+msgid "Confirm password"
+msgstr "Bevestig wachtwoord"
+
+#: classes/pref/prefs.php:317
+msgid "Change password"
+msgstr "Wijzig wachtwoord"
+
+#: classes/pref/prefs.php:323
+msgid "One time passwords / Authenticator"
+msgstr "Eenmalig wachtwoord / Authenticator"
+
+#: classes/pref/prefs.php:327
+msgid "One time passwords are currently enabled. Enter your current password below to disable."
+msgstr "Eenmalig wachtwoord is geactiveerd. Voer je huidige wachtwoord in om dit uit te schakelen."
+
+#: classes/pref/prefs.php:352
+#: classes/pref/prefs.php:403
+msgid "Enter your password"
+msgstr "Vul uw wachtwoord in"
+
+#: classes/pref/prefs.php:363
+msgid "Disable OTP"
+msgstr "EW (Eenmalig wachtwoord) uitschakelen"
+
+#: classes/pref/prefs.php:369
+msgid "You will need a compatible Authenticator to use this. Changing your password would automatically disable OTP."
+msgstr "U heeft een compatibele Authenticator nodig om dit te gebruiken. Veranderen van wachtwoord schakelt automatisch EW uit."
+
+#: classes/pref/prefs.php:371
+msgid "Scan the following code by the Authenticator application:"
+msgstr "Scan de volgende code met de Authenticator applicatie:"
+
+#: classes/pref/prefs.php:408
+msgid "Enter the generated one time password"
+msgstr "Geef aub uw eenmalig wachtwoord"
+
+#: classes/pref/prefs.php:422
+msgid "Enable OTP"
+msgstr "Inschakelen EW"
+
+#: classes/pref/prefs.php:428
+msgid "PHP GD functions are required for OTP support."
+msgstr "PHP GD functies zijn noodzakelijk voor EW ondersteuning."
+
+#: classes/pref/prefs.php:471
+msgid "Some preferences are only available in default profile."
+msgstr "Sommige instellingen zijn alleen beschikbaar in het standaard profiel."
+
+#: classes/pref/prefs.php:569
+msgid "Customize"
+msgstr "Aanpassen"
+
+#: classes/pref/prefs.php:629
+msgid "Register"
+msgstr "Registreren"
+
+#: classes/pref/prefs.php:633
+msgid "Clear"
+msgstr "Wissen"
+
+#: classes/pref/prefs.php:639
+#, php-format
+msgid "Current server time: %s (UTC)"
+msgstr "Huidige servertijd: %s (UTC)"
+
+#: classes/pref/prefs.php:671
+msgid "Save configuration"
+msgstr "Configuratie opslaan"
+
+#: classes/pref/prefs.php:675
+msgid "Save and exit preferences"
+msgstr "Verlaat voorkeuren"
+
+#: classes/pref/prefs.php:680
+msgid "Manage profiles"
+msgstr "Profielbeheer"
+
+#: classes/pref/prefs.php:683
+msgid "Reset to defaults"
+msgstr "Terugzetten naar de standaardwaarden"
+
+#: classes/pref/prefs.php:706
+msgid "Plugins"
+msgstr "Plug-ins"
+
+#: classes/pref/prefs.php:708
+msgid "You will need to reload Tiny Tiny RSS for plugin changes to take effect."
+msgstr "Je moet Tiny Tiny RSS herladen om wijzigingen te kunnen zien."
+
+#: classes/pref/prefs.php:710
+msgid "Download more plugins at tt-rss.org <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/forum/viewforum.php?f=22\">forums</a> or <a target=\"_blank\" class=\"visibleLink\" href=\"http://tt-rss.org/wiki/Plugins\">wiki</a>."
+msgstr "Download meer plugins van tt-rss.org <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/forum/viewforum.php?f=22\">forum</a> of <a target=\"_blank\" class=\"visibleLink\" href=\"http://tt-rss.org/wiki/Plugins\">wiki</a>."
+
+#: classes/pref/prefs.php:736
+msgid "System plugins"
+msgstr "Systeem plug-ins"
+
+#: classes/pref/prefs.php:740
+#: classes/pref/prefs.php:794
+msgid "Plugin"
+msgstr "Plug-in"
+
+#: classes/pref/prefs.php:741
+#: classes/pref/prefs.php:795
+msgid "Description"
+msgstr "Omschrijving"
+
+#: classes/pref/prefs.php:742
+#: classes/pref/prefs.php:796
+msgid "Version"
+msgstr "Versie"
+
+#: classes/pref/prefs.php:743
+#: classes/pref/prefs.php:797
+msgid "Author"
+msgstr "Auteur"
+
+#: classes/pref/prefs.php:772
+#: classes/pref/prefs.php:829
+msgid "more info"
+msgstr "meer info"
+
+#: classes/pref/prefs.php:781
+#: classes/pref/prefs.php:838
+msgid "Clear data"
+msgstr "Wis data"
+
+#: classes/pref/prefs.php:790
+msgid "User plugins"
+msgstr "Gebruiker's plug-ins"
+
+#: classes/pref/prefs.php:853
+msgid "Enable selected plugins"
+msgstr "Geselecteerd plug-ins inschakelen"
+
+#: classes/pref/prefs.php:920
+msgid "Incorrect one time password"
+msgstr "Onjuist Eenmalig Wachtwoord"
+
+#: classes/pref/prefs.php:923
+#: classes/pref/prefs.php:940
+msgid "Incorrect password"
+msgstr "Onjuist wachtwoord"
+
+#: classes/pref/prefs.php:965
+#, php-format
+msgid "You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">This file</a> can be used as a baseline."
+msgstr "U kunt door de CSS-declaraties aan te passen de kleuren, lettertypen en lay-out van uw huidige thema hier aanpassen. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">Dit bestand</a> kan als richtlijn worden gebruikt."
+
+#: classes/pref/prefs.php:1005
+msgid "Create profile"
+msgstr "Maak profiel"
+
+#: classes/pref/prefs.php:1028
+#: classes/pref/prefs.php:1056
+msgid "(active)"
+msgstr "(actief)"
+
+#: classes/pref/prefs.php:1090
+msgid "Remove selected profiles"
+msgstr "Verwijder geselecteerde profielen"
+
+#: classes/pref/prefs.php:1092
+msgid "Activate profile"
+msgstr "Activeer profiel"
+
+#: classes/pref/feeds.php:13
+msgid "Check to enable field"
+msgstr "Aanvinken om veld in te schakelen"
+
+#: classes/pref/feeds.php:546
+msgid "Feed Title"
+msgstr "Feed titel"
+
+#: classes/pref/feeds.php:587
+#: classes/pref/feeds.php:822
+msgid "Update"
+msgstr "Bijwerken"
+
+#: classes/pref/feeds.php:602
+#: classes/pref/feeds.php:838
+msgid "Article purging:"
+msgstr "Artikelopschoning:"
+
+#: classes/pref/feeds.php:632
+msgid "<b>Hint:</b> you need to fill in your login information if your feed requires authentication, except for Twitter feeds."
+msgstr "<b>Hint:</b> U moet uw aanmeld informatie invullen als uw feed authenticatie vereist, behalve voor Twitter feeds."
+
+#: classes/pref/feeds.php:648
+#: classes/pref/feeds.php:867
+msgid "Hide from Popular feeds"
+msgstr "Verbergen voor populaire feeds"
+
+#: classes/pref/feeds.php:660
+#: classes/pref/feeds.php:873
+msgid "Include in e-mail digest"
+msgstr "Toevoegen aan e-mail samenvatting"
+
+#: classes/pref/feeds.php:673
+#: classes/pref/feeds.php:879
+msgid "Always display image attachments"
+msgstr "Altijd afbeeldingsbijlagen weergeven"
+
+#: classes/pref/feeds.php:686
+#: classes/pref/feeds.php:887
+msgid "Do not embed images"
+msgstr "Afbeeldingen niet insluiten."
+
+#: classes/pref/feeds.php:699
+#: classes/pref/feeds.php:895
+msgid "Cache images locally"
+msgstr "Afbeelding lokaal in cache plaatsen"
+
+#: classes/pref/feeds.php:711
+#: classes/pref/feeds.php:901
+msgid "Mark updated articles as unread"
+msgstr "Markeer bijgewerkte artikelen als niet-gelezen"
+
+#: classes/pref/feeds.php:717
+msgid "Icon"
+msgstr "Pictogram"
+
+#: classes/pref/feeds.php:731
+msgid "Replace"
+msgstr "Vervangen"
+
+#: classes/pref/feeds.php:753
+msgid "Resubscribe to push updates"
+msgstr "Herabonneren voor push updates"
+
+#: classes/pref/feeds.php:760
+msgid "Resets PubSubHubbub subscription status for push-enabled feeds."
+msgstr "Herstelt PubSubHubbub abonnement status voor gepushte feeds."
+
+#: classes/pref/feeds.php:1156
+#: classes/pref/feeds.php:1209
+msgid "All done."
+msgstr "Alles gedaan."
+
+#: classes/pref/feeds.php:1264
+msgid "Feeds with errors"
+msgstr "Feeds met fouten"
+
+#: classes/pref/feeds.php:1284
+msgid "Inactive feeds"
+msgstr "Inactieve feeds"
+
+#: classes/pref/feeds.php:1321
+msgid "Edit selected feeds"
+msgstr "Bewerk geselecteerde feeds"
+
+#: classes/pref/feeds.php:1325
+#: js/prefs.js:1764
+msgid "Batch subscribe"
+msgstr "Batchmatig abonneren"
+
+#: classes/pref/feeds.php:1332
+msgid "Categories"
+msgstr "Categorieën"
+
+#: classes/pref/feeds.php:1335
+msgid "Add category"
+msgstr "Categorie toevoegen"
+
+#: classes/pref/feeds.php:1339
+msgid "Remove selected"
+msgstr "Verwijder geselecteerde"
+
+#: classes/pref/feeds.php:1350
+msgid "More actions..."
+msgstr "Meer acties…"
+
+#: classes/pref/feeds.php:1354
+msgid "Manual purge"
+msgstr "Handmatig opschonen"
+
+#: classes/pref/feeds.php:1358
+msgid "Clear feed data"
+msgstr "Wis feed data"
+
+#: classes/pref/feeds.php:1409
+msgid "OPML"
+msgstr "OPML"
+
+#: classes/pref/feeds.php:1411
+msgid "Using OPML you can export and import your feeds, filters, labels and Tiny Tiny RSS settings."
+msgstr "Met OPML kunt u feeds, filters, labels en Tiny Tiny RSS instellingen exporteren en importeren."
+
+#: classes/pref/feeds.php:1411
+msgid "Only main settings profile can be migrated using OPML."
+msgstr "Alleen instellingen van het hoofdprofiel kunnen worden overgebracht met OPML."
+
+#: classes/pref/feeds.php:1424
+msgid "Import my OPML"
+msgstr "Importeer mijn OPML"
+
+#: classes/pref/feeds.php:1428
+msgid "Filename:"
+msgstr "Bestandsnaam:"
+
+#: classes/pref/feeds.php:1430
+msgid "Include settings"
+msgstr "Toevoegingsinstellingen"
+
+#: classes/pref/feeds.php:1434
+msgid "Export OPML"
+msgstr "OPML exporteren"
+
+#: classes/pref/feeds.php:1438
+msgid "Your OPML can be published publicly and can be subscribed by anyone who knows the URL below."
+msgstr "Uw OPML kan openbaar worden gepubliceerd en er kan op worden geabonneerd door iedereen die de URL hieronder kent."
+
+#: classes/pref/feeds.php:1440
+msgid "Published OPML does not include your Tiny Tiny RSS settings, feeds that require authentication or feeds hidden from Popular feeds."
+msgstr "De gepubliceerde OPML bevatten niet uw Tiny Tiny RSS instellingen, feeds die authenticatie vereisen of feeds verborgen voor Populaire feeds."
+
+#: classes/pref/feeds.php:1442
+msgid "Public OPML URL"
+msgstr "Publieke OPML URL"
+
+#: classes/pref/feeds.php:1443
+msgid "Display published OPML URL"
+msgstr "Gepubliceerde OPML URL weergeven"
+
+#: classes/pref/feeds.php:1452
+msgid "Firefox integration"
+msgstr "Firefox integratie"
+
+#: classes/pref/feeds.php:1454
+msgid "This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the link below."
+msgstr "Deze Tiny Tiny RSS site kan gebruikt worden als een Firefox Feed Reader door op de link hieronder te klikken."
+
+#: classes/pref/feeds.php:1461
+msgid "Click here to register this site as a feed reader."
+msgstr "Klik hier om deze site te registreren als een feed reader."
+
+#: classes/pref/feeds.php:1469
+msgid "Published & shared articles / Generated feeds"
+msgstr "Gepubliceerde & gedeelde artikelen / Gegenereerde feeds"
+
+#: classes/pref/feeds.php:1471
+msgid "Published articles are exported as a public RSS feed and can be subscribed by anyone who knows the URL specified below."
+msgstr "Gepubliceerde artikelen worden geëxporteerd als publieke RSS-feed en er kan door iedereen die de URL hieronder kent op worden geabonneerd."
+
+#: classes/pref/feeds.php:1479
+msgid "Display URL"
+msgstr "Toon URL"
+
+#: classes/pref/feeds.php:1482
+msgid "Clear all generated URLs"
+msgstr "Wis alle gegenereerde URL's"
+
+#: classes/pref/feeds.php:1486
+msgid "You can disable all articles shared by unique URLs here."
+msgstr "U kunt alle artikelen gedeeld via unieke URL's hier uitschakelen."
+
+#: classes/pref/feeds.php:1491
+msgid "Unshare all articles"
+msgstr "Delen alle artikelen teniet doen"
+
+#: classes/pref/feeds.php:1568
+msgid "These feeds have not been updated with new content for 3 months (oldest first):"
+msgstr "Deze feeds hebben al 3 maanden geen nieuwe inhoud (oudste eerst):"
+
+#: classes/pref/feeds.php:1604
+#: classes/pref/feeds.php:1670
+msgid "Click to edit feed"
+msgstr "Klik om feed te bewerken"
+
+#: classes/pref/feeds.php:1622
+#: classes/pref/feeds.php:1690
+msgid "Unsubscribe from selected feeds"
+msgstr "Abonnement opzeggen voor geselecteerde feeds"
+
+#: classes/pref/feeds.php:1795
+msgid "Add one valid RSS feed per line (no feed detection is done)"
+msgstr "Een geldige RSS feed per regel toevoegen (er wordt geen feed detectie uitgevoerd)"
+
+#: classes/pref/feeds.php:1804
+msgid "Feeds to subscribe, One per line"
+msgstr "Te abonneren feeds: één per regel"
+
+#: classes/pref/feeds.php:1826
+msgid "Feeds require authentication."
+msgstr "Feeds vereisen authenticatie."
+
+#: classes/pref/system.php:29
+msgid "Error Log"
+msgstr "Fouten Log"
+
+#: classes/pref/system.php:40
+msgid "Refresh"
+msgstr "Herlaad"
+
+#: classes/pref/system.php:43
+#, fuzzy
+msgid "Clear log"
+msgstr "Wis kleuren"
+
+#: classes/pref/system.php:48
+msgid "Error"
+msgstr "Fout"
+
+#: classes/pref/system.php:49
+msgid "Filename"
+msgstr "Bestandsnaam"
+
+#: classes/pref/system.php:50
+msgid "Message"
+msgstr "Bericht"
+
+#: classes/pref/system.php:52
+msgid "Date"
+msgstr "Datum"
+
+#: plugins/close_button/init.php:22
+msgid "Close article"
+msgstr "Sluit artikel"
+
+#: plugins/nsfw/init.php:29
+#: plugins/nsfw/init.php:40
+msgid "Not work safe (click to toggle)"
+msgstr "NVVW (Niet Veilig Voor Werk) (klik om in/uit te schakelen)"
+
+#: plugins/nsfw/init.php:50
+msgid "NSFW Plugin"
+msgstr "NVVW (Niet Veilig Voor Werk) Plug-in"
+
+#: plugins/nsfw/init.php:77
+msgid "Tags to consider NSFW (comma-separated)"
+msgstr "Tags te overwegen als NVVW (komma gescheiden)"
+
+#: plugins/nsfw/init.php:98
+msgid "Configuration saved."
+msgstr "Configuratie opgeslagen."
+
+#: plugins/auth_internal/init.php:62
+msgid "Please enter your one time password:"
+msgstr "Geef aub uw eenmalig wachtwoord:"
+
+#: plugins/auth_internal/init.php:185
+msgid "Password has been changed."
+msgstr "Wachtwoord is veranderd."
+
+#: plugins/auth_internal/init.php:187
+msgid "Old password is incorrect."
+msgstr "Oud wachtwoord is onjuist."
+
+#: plugins/mailto/init.php:49
+#: plugins/mailto/init.php:55
+#: plugins/mail/init.php:64
+#: plugins/mail/init.php:70
+msgid "[Forwarded]"
+msgstr "[Doorgestuurd]"
+
+#: plugins/mailto/init.php:49
+#: plugins/mail/init.php:64
+msgid "Multiple articles"
+msgstr "Meerdere artikelen"
+
+#: plugins/mailto/init.php:71
+msgid "Clicking the following link to invoke your mail client:"
+msgstr "Klikken op de volgende link om uw e-mail cliënt te starten:"
+
+#: plugins/mailto/init.php:75
+msgid "Forward selected article(s) by email."
+msgstr "Geselecteerde artikel(en) doorsturen per e-mail."
+
+#: plugins/mailto/init.php:78
+msgid "You should be able to edit the message before sending in your mail client."
+msgstr "U zou in staat moeten zijn het bericht te bewerken vóórdat u het verzendt met uw e-mail cliënt."
+
+#: plugins/mailto/init.php:83
+msgid "Close this dialog"
+msgstr "Sluit dit dialoogvenster"
+
+#: plugins/bookmarklets/init.php:20
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: plugins/bookmarklets/init.php:22
+msgid "Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it."
+msgstr "Sleep de link hieronder naar uw browser's werkbalk, open de feed waar u geïnteresseerd in bent in uw browser en klik op de link om u er op te abonneren."
+
+#: plugins/bookmarklets/init.php:26
+#, php-format
+msgid "Subscribe to %s in Tiny Tiny RSS?"
+msgstr "Abonneren op %s in Tiny Tiny RSS?"
+
+#: plugins/bookmarklets/init.php:31
+msgid "Subscribe in Tiny Tiny RSS"
+msgstr "Abonneren in Tiny Tiny RSS"
+
+#: plugins/bookmarklets/init.php:34
+msgid "Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS"
+msgstr "Gebruik deze bookmarklet om willekeurige pagina's met Tiny Tiny RSS te publiceren"
+
+#: plugins/import_export/init.php:58
+msgid "Import and export"
+msgstr "Import en export"
+
+#: plugins/import_export/init.php:60
+#, fuzzy
+msgid "You can export and import your Starred and Archived articles for safekeeping or when migrating between tt-rss instances of same version."
+msgstr "U kunt uw gearchiveerde of artikelen met ster exporteren en importeren om veilig te bewaren wanneer u migreert tussen tt-rss instanties."
+
+#: plugins/import_export/init.php:65
+msgid "Export my data"
+msgstr "Exporteer mijn data"
+
+#: plugins/import_export/init.php:81
+msgid "Import"
+msgstr "Importeren"
+
+#: plugins/import_export/init.php:219
+msgid "Could not import: incorrect schema version."
+msgstr "Kon niet importeren: onjuiste schema versie."
+
+#: plugins/import_export/init.php:224
+msgid "Could not import: unrecognized document format."
+msgstr "Kon niet importeren: onbekend documentindeling."
+
+#: plugins/import_export/init.php:383
+msgid "Finished: "
+msgstr "Klaar:"
+
+#: plugins/import_export/init.php:384
+#, php-format
+msgid "%d article processed, "
+msgid_plural "%d articles processed, "
+msgstr[0] "%d artikel verwerkt, "
+msgstr[1] "%d artikels verwerkt, "
+
+#: plugins/import_export/init.php:385
+#, php-format
+msgid "%d imported, "
+msgid_plural "%d imported, "
+msgstr[0] "%d geïmporteerd, "
+msgstr[1] "%d geïmporteerd, "
+
+#: plugins/import_export/init.php:386
+#, php-format
+msgid "%d feed created."
+msgid_plural "%d feeds created."
+msgstr[0] "%d feed gemaakt."
+msgstr[1] "%d feeds gemaakt."
+
+#: plugins/import_export/init.php:391
+msgid "Could not load XML document."
+msgstr "Kon XML-document niet laden."
+
+#: plugins/import_export/init.php:403
+msgid "Prepare data"
+msgstr "Voorbereiden data"
+
+#: plugins/import_export/init.php:446
+#: plugins/googlereaderimport/init.php:92
+msgid "No file uploaded."
+msgstr "Geen bestand geupload."
+
+#: plugins/mail/init.php:85
+msgid "From:"
+msgstr "Van:"
+
+#: plugins/mail/init.php:94
+msgid "To:"
+msgstr "Naar:"
+
+#: plugins/mail/init.php:107
+msgid "Subject:"
+msgstr "Onderwerp:"
+
+#: plugins/mail/init.php:123
+msgid "Send e-mail"
+msgstr "Verzend e-mail"
+
+#: plugins/note/init.php:26
+#: plugins/note/note.js:11
+msgid "Edit article note"
+msgstr "Bewerk artikel notitie"
+
+#: plugins/googlereaderimport/init.php:178
+#, php-format
+msgid "All done. %d out of %d articles imported."
+msgstr "Klaar. %d van de %d artikels geïmporteerd."
+
+#: plugins/googlereaderimport/init.php:182
+msgid "The document has incorrect format."
+msgstr "Het document heeft een onbekende indeling."
+
+#: plugins/googlereaderimport/init.php:353
+msgid "Import starred or shared items from Google Reader"
+msgstr "Importeer gedeelde items of items met ster van Google Reader"
+
+#: plugins/googlereaderimport/init.php:357
+msgid "Paste your starred.json or shared.json into the form below."
+msgstr "Plak je starred.json of shared.json hieronder."
+
+#: plugins/googlereaderimport/init.php:371
+msgid "Import my Starred items"
+msgstr "Importeer items met Ster"
+
+#: plugins/instances/init.php:141
+msgid "Linked"
+msgstr "Gekoppeld"
+
+#: plugins/instances/init.php:204
+#: plugins/instances/init.php:395
+msgid "Instance"
+msgstr "Instantie"
+
+#: plugins/instances/init.php:215
+#: plugins/instances/init.php:312
+#: plugins/instances/init.php:404
+msgid "Instance URL"
+msgstr "Instantie URL"
+
+#: plugins/instances/init.php:226
+#: plugins/instances/init.php:414
+msgid "Access key:"
+msgstr "Toegangssleutel:"
+
+#: plugins/instances/init.php:229
+#: plugins/instances/init.php:313
+#: plugins/instances/init.php:417
+msgid "Access key"
+msgstr "Toegangssleutel"
+
+#: plugins/instances/init.php:233
+#: plugins/instances/init.php:421
+msgid "Use one access key for both linked instances."
+msgstr "Gebruik één toegang-sleutel voor beide gekoppelde instanties."
+
+#: plugins/instances/init.php:241
+#: plugins/instances/init.php:429
+msgid "Generate new key"
+msgstr "Genereer nieuwe sleutel"
+
+#: plugins/instances/init.php:292
+msgid "Link instance"
+msgstr "Link instantie"
+
+#: plugins/instances/init.php:304
+msgid "You can connect other instances of Tiny Tiny RSS to this one to share Popular feeds. Link to this instance of Tiny Tiny RSS by using this URL:"
+msgstr "U kunt deze instantie verbinden met andere instanties van Tiny Tiny RSS om Populaire feeds te delen. Verbindt deze instantie van Tiny Tiny RSS met deze URL:"
+
+#: plugins/instances/init.php:314
+msgid "Last connected"
+msgstr "Laatst verbonden"
+
+#: plugins/instances/init.php:315
+msgid "Status"
+msgstr "Status"
+
+#: plugins/instances/init.php:316
+msgid "Stored feeds"
+msgstr "Opgeslagen feeds"
+
+#: plugins/instances/init.php:433
+msgid "Create link"
+msgstr "Link aanmaken"
+
+#: plugins/share/init.php:25
+msgid "Share by URL"
+msgstr "Deel via URL"
+
+#: plugins/share/init.php:47
+msgid "You can share this article by the following unique URL:"
+msgstr "U kunt dit artikel delen via de volgende unieke URL:"
+
+#: plugins/updater/init.php:321
+#: plugins/updater/init.php:338
+#: plugins/updater/updater.js:10
+msgid "Update Tiny Tiny RSS"
+msgstr "Tiny Tiny RSS bijwerken"
+
+#: plugins/updater/init.php:341
+msgid "Your Tiny Tiny RSS installation is up to date."
+msgstr "Uw Tiny Tiny RSS installatie is up-to-date."
+
+#: plugins/updater/init.php:349
+msgid "Do not close this dialog until updating is finished."
+msgstr "Sluit dit dialoogvenster niet voordat het bijwerken klaar is."
+
+#: plugins/updater/init.php:358
+msgid "It is suggested to backup your tt-rss directory first."
+msgstr "Het is raadzaam eerst een backup van je tt-rss map te maken."
+
+#: plugins/updater/init.php:359
+msgid "Your database will not be modified."
+msgstr "Je database wordt niet aangepast."
+
+#: plugins/updater/init.php:360
+msgid "Your current tt-rss installation directory will not be modified. It will be renamed and left in the parent directory. You will be able to migrate all your customized files after update finishes."
+msgstr "Je huidige tt-rss installatie map wordt niet aangepast. Deze wordt hernoemd en in de hoofdmap gelaten. Je kan al je aangepaste bestanden overzetten nadat de update voltooid is."
+
+#: plugins/updater/init.php:361
+msgid "Ready to update."
+msgstr "Klaar om bij te werken."
+
+#: plugins/updater/init.php:366
+msgid "Start update"
+msgstr "Start update"
+
+#: js/PrefFeedTree.js:47
+msgid "Edit category"
+msgstr "Bewerk categorie"
+
+#: js/PrefFeedTree.js:54
+msgid "Remove category"
+msgstr "Categorie verwijderen"
+
+#: js/PrefFilterTree.js:48
+msgid "Inverse"
+msgstr "Omgekeerd"
+
+#: js/feedlist.js:397
+#: js/feedlist.js:425
+msgid "Mark all articles in %s as read?"
+msgstr "Markeer alle artikelen in %s als gelezen?"
+
+#: js/feedlist.js:416
+msgid "Mark all articles in %s older than 1 day as read?"
+msgstr "Markeer alle artikelen in %s ouder dan 1 dag als gelezen?"
+
+#: js/feedlist.js:419
+msgid "Mark all articles in %s older than 1 week as read?"
+msgstr "Markeer alle artikelen in %s ouder dan 1 week als gelezen?"
+
+#: js/feedlist.js:422
+msgid "Mark all articles in %s older than 2 weeks as read?"
+msgstr "Markeer alle artikelen in %s ouder dan 2 weken als gelezen?"
+
+#: js/functions.js:65
+msgid "The error will be reported to the configured log destination."
+msgstr "De fout wordt in het geconfigureerde log vastgelegd."
+
+#: js/functions.js:107
+msgid "Are you sure to report this exception to tt-rss.org? The report will include your browser information. Your IP would be saved in the database."
+msgstr "Weet u zeker dat u deze uitzondering wilt rapporteren aan tt-rss.org? Het rapport zal uw browser informatie bevatten. Uw IP-adres zal bewaard worden in een database."
+
+#: js/functions.js:236
+msgid "Click to close"
+msgstr "Klik om te sluiten"
+
+#: js/functions.js:612
+msgid "Error explained"
+msgstr "Fout uitleg"
+
+#: js/functions.js:694
+msgid "Upload complete."
+msgstr "Upload voltooid."
+
+#: js/functions.js:718
+msgid "Remove stored feed icon?"
+msgstr "Opgeslagen feed pictogram verwijderen?"
+
+#: js/functions.js:723
+msgid "Removing feed icon..."
+msgstr "Opgeslagen feed pictogram verwijderen..."
+
+#: js/functions.js:728
+msgid "Feed icon removed."
+msgstr "Feed pictogram verwijderd."
+
+#: js/functions.js:750
+msgid "Please select an image file to upload."
+msgstr "Selecteer aub een afbeeldingsbestand om te uploaden."
+
+#: js/functions.js:752
+msgid "Upload new icon for this feed?"
+msgstr "Nieuw pictogram voor deze feed uploaden?"
+
+#: js/functions.js:753
+msgid "Uploading, please wait..."
+msgstr "Aan 't uploaden, even wachten aub..."
+
+#: js/functions.js:769
+msgid "Please enter label caption:"
+msgstr "Geeft een onderschrift voor label:"
+
+#: js/functions.js:774
+msgid "Can't create label: missing caption."
+msgstr "Kan label niet aanmaken: onderschrift ontbreekt."
+
+#: js/functions.js:817
+msgid "Subscribe to Feed"
+msgstr "Abonneren op feed"
+
+#: js/functions.js:844
+msgid "Subscribed to %s"
+msgstr "Geabonneerd op %s"
+
+#: js/functions.js:849
+msgid "Specified URL seems to be invalid."
+msgstr "Gespecificeerde URL lijkt ongeldig te zijn."
+
+#: js/functions.js:852
+msgid "Specified URL doesn't seem to contain any feeds."
+msgstr "Gespecificeerde URL lijkt geen feeds te bevatten."
+
+#: js/functions.js:862
+msgid "Expand to select feed"
+msgstr "Uitklappen tot geselecteerde feed"
+
+#: js/functions.js:874
+msgid "Couldn't download the specified URL: %s"
+msgstr "Kon de gespecificeerde URL: %s niet downloaden"
+
+#: js/functions.js:878
+msgid "XML validation failed: %s"
+msgstr "XML validatie mislukt: %s"
+
+#: js/functions.js:883
+msgid "You are already subscribed to this feed."
+msgstr "U bent al geabonneerd op deze feed."
+
+#: js/functions.js:1013
+msgid "Edit rule"
+msgstr "Bewerk regel"
+
+#: js/functions.js:1039
+msgid "Edit action"
+msgstr "Bewerk actie"
+
+#: js/functions.js:1076
+msgid "Create Filter"
+msgstr "Filter aanmaken"
+
+#: js/functions.js:1191
+msgid "Reset subscription? Tiny Tiny RSS will try to subscribe to the notification hub again on next feed update."
+msgstr "Abonnement opnieuw instellen? Tiny Tiny RSS zal proberen zich opnieuw op de notification hub te abonneren bij de volgende feed update."
+
+#: js/functions.js:1202
+msgid "Subscription reset."
+msgstr "Abonnement hersteld."
+
+#: js/functions.js:1212
+#: js/tt-rss.js:677
+msgid "Unsubscribe from %s?"
+msgstr "Abonnement opzeggen voor %s?"
+
+#: js/functions.js:1215
+msgid "Removing feed..."
+msgstr "Feed wordt verwijderd..."
+
+#: js/functions.js:1324
+msgid "Please enter category title:"
+msgstr "Vul titel van categorie in aub:"
+
+#: js/functions.js:1355
+msgid "Generate new syndication address for this feed?"
+msgstr "Nieuw syndicatie-adres voor deze feed genereren?"
+
+#: js/functions.js:1359
+#: js/prefs.js:1231
+msgid "Trying to change address..."
+msgstr "Adres aan het aanpassen..."
+
+#: js/functions.js:1546
+#: js/tt-rss.js:422
+#: js/tt-rss.js:658
+msgid "You can't edit this kind of feed."
+msgstr "U kunt dit type feed niet bewerken."
+
+#: js/functions.js:1561
+msgid "Edit Feed"
+msgstr "Bewerk feed"
+
+#: js/functions.js:1567
+#: js/prefs.js:194
+#: js/prefs.js:749
+msgid "Saving data..."
+msgstr "Gegevens opslaan..."
+
+#: js/functions.js:1599
+msgid "More Feeds"
+msgstr "Meer feeds"
+
+#: js/functions.js:1660
+#: js/functions.js:1770
+#: js/prefs.js:397
+#: js/prefs.js:427
+#: js/prefs.js:459
+#: js/prefs.js:642
+#: js/prefs.js:662
+#: js/prefs.js:1207
+#: js/prefs.js:1352
+msgid "No feeds are selected."
+msgstr "Er zijn geen feeds geselecteerd."
+
+#: js/functions.js:1702
+msgid "Remove selected feeds from the archive? Feeds with stored articles will not be removed."
+msgstr "Geselecteerde feeds uit het archief verwijderen? Feeds met opgeslagen artikelen zullen niet worden verwijderd."
+
+#: js/functions.js:1741
+msgid "Feeds with update errors"
+msgstr "Feeds met update fouten"
+
+#: js/functions.js:1752
+#: js/prefs.js:1189
+msgid "Remove selected feeds?"
+msgstr "Geselecteerde feeds verwijderen?"
+
+#: js/functions.js:1755
+#: js/prefs.js:1192
+msgid "Removing selected feeds..."
+msgstr "Geselecteerde feeds verwijderen..."
+
+#: js/functions.js:1853
+msgid "Help"
+msgstr "Help"
+
+#: js/prefs.js:55
+msgid "Please enter login:"
+msgstr "Geef loginID aub:"
+
+#: js/prefs.js:62
+msgid "Can't create user: no login specified."
+msgstr "Kan gebruiker niet aanmaken: geen loginID gespecificeerd."
+
+#: js/prefs.js:66
+msgid "Adding user..."
+msgstr "Gebruiker toevoegen..."
+
+#: js/prefs.js:94
+msgid "User Editor"
+msgstr "Gebruikers bewerken"
+
+#: js/prefs.js:117
+msgid "Edit Filter"
+msgstr "Bewerk filter"
+
+#: js/prefs.js:164
+msgid "Remove filter?"
+msgstr "Filter verwijderen?"
+
+#: js/prefs.js:169
+msgid "Removing filter..."
+msgstr "Filter verwijderen..."
+
+#: js/prefs.js:279
+msgid "Remove selected labels?"
+msgstr "Geselecteerde labels verwijderen?"
+
+#: js/prefs.js:282
+msgid "Removing selected labels..."
+msgstr "Geselecteerde labels verwijderen..."
+
+#: js/prefs.js:295
+#: js/prefs.js:1393
+msgid "No labels are selected."
+msgstr "Er zijn geen labels geselecteerd."
+
+#: js/prefs.js:309
+msgid "Remove selected users? Neither default admin nor your account will be removed."
+msgstr "Geselecteerde gebruikers verwijderen? Noch de standaard admin gebruiker, noch uw eigen account zal worden verwijderd."
+
+#: js/prefs.js:312
+msgid "Removing selected users..."
+msgstr "Geselecteerde gebruikers verwijderen..."
+
+#: js/prefs.js:326
+#: js/prefs.js:507
+#: js/prefs.js:528
+#: js/prefs.js:567
+msgid "No users are selected."
+msgstr "Er zijn geen gebruikers geselecteerd."
+
+#: js/prefs.js:344
+msgid "Remove selected filters?"
+msgstr "Geselecteerde filters verwijderen?"
+
+#: js/prefs.js:347
+msgid "Removing selected filters..."
+msgstr "Geselecteerde filters verwijderen..."
+
+#: js/prefs.js:359
+#: js/prefs.js:597
+#: js/prefs.js:616
+msgid "No filters are selected."
+msgstr "Er zijn geen filters geselecteerd."
+
+#: js/prefs.js:378
+msgid "Unsubscribe from selected feeds?"
+msgstr "Abonnement opzeggen voor geselecteerde feeds?"
+
+#: js/prefs.js:382
+msgid "Unsubscribing from selected feeds..."
+msgstr "Abonnement opzeggen voor geselecteerde feeds..."
+
+#: js/prefs.js:412
+msgid "Please select only one feed."
+msgstr "Selecteer aub slecht één feed."
+
+#: js/prefs.js:418
+msgid "Erase all non-starred articles in selected feed?"
+msgstr "Alle artikelen zonder ster in deze feed wissen?"
+
+#: js/prefs.js:421
+msgid "Clearing selected feed..."
+msgstr "Geselecteerde feed opruimen..."
+
+#: js/prefs.js:440
+msgid "How many days of articles to keep (0 - use default)?"
+msgstr "Hoeveel dagen moeten artikelen worden bewaard (0 = gebruik standaardwaarde)?"
+
+#: js/prefs.js:443
+msgid "Purging selected feed..."
+msgstr "Geselecteerde feeds opschonen..."
+
+#: js/prefs.js:478
+msgid "Login field cannot be blank."
+msgstr "Het loginID veld kan niet leeg zijn."
+
+#: js/prefs.js:482
+msgid "Saving user..."
+msgstr "Gebruiker opslaan..."
+
+#: js/prefs.js:512
+#: js/prefs.js:533
+#: js/prefs.js:572
+msgid "Please select only one user."
+msgstr "Selecteer aub slechts één gebruiker."
+
+#: js/prefs.js:537
+msgid "Reset password of selected user?"
+msgstr "Wachtwoord van geselecteerde gebruiker opnieuw instellen?"
+
+#: js/prefs.js:540
+msgid "Resetting password for selected user..."
+msgstr "Wachtwoord van geselecteerde gebruiker opnieuw instellen..."
+
+#: js/prefs.js:585
+msgid "User details"
+msgstr "Gebruiker's details"
+
+#: js/prefs.js:602
+msgid "Please select only one filter."
+msgstr "Selecteer aub slecht één filter."
+
+#: js/prefs.js:620
+msgid "Combine selected filters?"
+msgstr "Geselecteerde filters combineren?"
+
+#: js/prefs.js:623
+msgid "Joining filters..."
+msgstr "Filters samenvoegen..."
+
+#: js/prefs.js:684
+msgid "Edit Multiple Feeds"
+msgstr "Bewerk meervoudige feeds"
+
+#: js/prefs.js:708
+msgid "Save changes to selected feeds?"
+msgstr "Veranderingen aan geselecteerde feeds opslaan?"
+
+#: js/prefs.js:785
+msgid "OPML Import"
+msgstr "OPML import"
+
+#: js/prefs.js:812
+msgid "Please choose an OPML file first."
+msgstr "kies eerst een OPML-bestand aub."
+
+#: js/prefs.js:815
+#: plugins/import_export/import_export.js:115
+#: plugins/googlereaderimport/init.js:45
+msgid "Importing, please wait..."
+msgstr "Aan 't importeren, even wachten aub..."
+
+#: js/prefs.js:982
+msgid "Reset to defaults?"
+msgstr "Terugzetten naar de standaardwaarden?"
+
+#: js/prefs.js:1096
+msgid "Remove category %s? Any nested feeds would be placed into Uncategorized."
+msgstr "Categorie %s verwijderen? elke genestelde feed zal in de rubriek 'Ongecategoriseerd' worden geplaatst."
+
+#: js/prefs.js:1102
+msgid "Removing category..."
+msgstr "Categorie verwijderen..."
+
+#: js/prefs.js:1123
+msgid "Remove selected categories?"
+msgstr "Geselecteerde categorieën verwijderen?"
+
+#: js/prefs.js:1126
+msgid "Removing selected categories..."
+msgstr "Geselecteerde categorieën verwijderen..."
+
+#: js/prefs.js:1139
+msgid "No categories are selected."
+msgstr "Geen categorieën geselecteerd."
+
+#: js/prefs.js:1147
+msgid "Category title:"
+msgstr "Categorie titel:"
+
+#: js/prefs.js:1151
+msgid "Creating category..."
+msgstr "Aanmaken categorie…"
+
+#: js/prefs.js:1178
+msgid "Feeds without recent updates"
+msgstr "Feeds zonder recente updates"
+
+#: js/prefs.js:1227
+msgid "Replace current OPML publishing address with a new one?"
+msgstr "Huidig OPML publicatieadres vervangen door een nieuwe?"
+
+#: js/prefs.js:1316
+msgid "Clearing feed..."
+msgstr "Feed opruimen..."
+
+#: js/prefs.js:1336
+msgid "Rescore articles in selected feeds?"
+msgstr "Artikelen in geselecteerde feeds opnieuw een score geven?"
+
+#: js/prefs.js:1339
+msgid "Rescoring selected feeds..."
+msgstr "Geselecteerde feeds nieuwe score geven..."
+
+#: js/prefs.js:1359
+msgid "Rescore all articles? This operation may take a lot of time."
+msgstr "Alle artikelen opnieuw een score geven? Dit kan veel tijd in beslag nemen."
+
+#: js/prefs.js:1362
+msgid "Rescoring feeds..."
+msgstr "Feed opnieuw score geven..."
+
+#: js/prefs.js:1379
+msgid "Reset selected labels to default colors?"
+msgstr "Geselecteerd label naar de standaard kleur terugzetten?"
+
+#: js/prefs.js:1416
+msgid "Settings Profiles"
+msgstr "Instellingsprofielen"
+
+#: js/prefs.js:1425
+msgid "Remove selected profiles? Active and default profiles will not be removed."
+msgstr "Geselecteerde profielen verwijderen? Actieve en standaard profielen zullen niet worden verwijderd."
+
+#: js/prefs.js:1428
+msgid "Removing selected profiles..."
+msgstr "Geselecteerde profielen verwijderen..."
+
+#: js/prefs.js:1443
+msgid "No profiles are selected."
+msgstr "Er zijn geen profielen geselecteerd."
+
+#: js/prefs.js:1451
+#: js/prefs.js:1504
+msgid "Activate selected profile?"
+msgstr "Geselecteerd profiel activeren?"
+
+#: js/prefs.js:1467
+#: js/prefs.js:1520
+msgid "Please choose a profile to activate."
+msgstr "Kies een te activeren profiel aub."
+
+#: js/prefs.js:1472
+msgid "Creating profile..."
+msgstr "Profiel aanmaken..."
+
+#: js/prefs.js:1528
+msgid "This will invalidate all previously generated feed URLs. Continue?"
+msgstr "Dit zal alle eerder gegenereerde feed-URL's ongeldig maken. Doorgaan?"
+
+#: js/prefs.js:1531
+#: js/prefs.js:1550
+msgid "Clearing URLs..."
+msgstr "URLs opruimen..."
+
+#: js/prefs.js:1538
+msgid "Generated URLs cleared."
+msgstr "Genereerde URLs gewist."
+
+#: js/prefs.js:1547
+msgid "This will invalidate all previously shared article URLs. Continue?"
+msgstr "Dit zal all eerder gedeelde artikel-URL's ongeldig maken. Doorgaan?"
+
+#: js/prefs.js:1557
+msgid "Shared URLs cleared."
+msgstr "Gedeelde URLs opgeruimd."
+
+#: js/prefs.js:1648
+msgid "Label Editor"
+msgstr "Label editor"
+
+#: js/prefs.js:1770
+msgid "Subscribing to feeds..."
+msgstr "Abonneren op feeds..."
+
+#: js/prefs.js:1807
+msgid "Clear stored data for this plugin?"
+msgstr "Wis opgeslagen data voor deze plug-in?"
+
+#: js/prefs.js:1824
+msgid "Clear all messages in the error log?"
+msgstr ""
+
+#: js/tt-rss.js:127
+msgid "Mark all articles as read?"
+msgstr "Markeer alle artikelen als gelezen?"
+
+#: js/tt-rss.js:133
+msgid "Marking all feeds as read..."
+msgstr "Alle feeds als gelezen markeren..."
+
+#: js/tt-rss.js:381
+msgid "Please enable mail plugin first."
+msgstr "Eerst de e-mail plug-in inschakelen aub."
+
+#: js/tt-rss.js:493
+msgid "Please enable embed_original plugin first."
+msgstr "Eerst embed_original plug-in inschakelen aub."
+
+#: js/tt-rss.js:645
+msgid "Select item(s) by tags"
+msgstr "Selecteer item(s) via tags"
+
+#: js/tt-rss.js:666
+msgid "You can't unsubscribe from the category."
+msgstr "U kunt het abonnementen niet opzeggen in deze categorie."
+
+#: js/tt-rss.js:671
+#: js/tt-rss.js:825
+msgid "Please select some feed first."
+msgstr "Selecteer aub eerst een feed."
+
+#: js/tt-rss.js:820
+msgid "You can't rescore this kind of feed."
+msgstr "U kunt dit type feed geen andere score geven."
+
+#: js/tt-rss.js:830
+msgid "Rescore articles in %s?"
+msgstr "Artikelen in %s opnieuw een score geven?"
+
+#: js/tt-rss.js:833
+msgid "Rescoring articles..."
+msgstr "Artikelen nieuwe score geven..."
+
+#: js/tt-rss.js:967
+msgid "New version available!"
+msgstr "Nieuwe versie beschikbaar!"
+
+#: js/viewfeed.js:100
+msgid "Cancel search"
+msgstr "Zoeken annuleren"
+
+#: js/viewfeed.js:449
+msgid "Unstar article"
+msgstr "Ster weghalen bij artikel"
+
+#: js/viewfeed.js:453
+msgid "Star article"
+msgstr "Geef artikel een ster"
+
+#: js/viewfeed.js:493
+msgid "Unpublish article"
+msgstr "Ongepubliceerd artikel"
+
+#: js/viewfeed.js:497
+msgid "Publish article"
+msgstr "Artikel publiceren"
+
+#: js/viewfeed.js:649
+msgid "%d article selected"
+msgid_plural "%d articles selected"
+msgstr[0] "%d artikel geselecteerd"
+msgstr[1] "%d artikelen geselecteerd"
+
+#: js/viewfeed.js:721
+#: js/viewfeed.js:749
+#: js/viewfeed.js:776
+#: js/viewfeed.js:839
+#: js/viewfeed.js:873
+#: js/viewfeed.js:993
+#: js/viewfeed.js:1036
+#: js/viewfeed.js:1089
+#: js/viewfeed.js:2066
+#: plugins/mailto/init.js:7
+#: plugins/mail/mail.js:7
+msgid "No articles are selected."
+msgstr "Geen artikelen geselecteerd."
+
+#: js/viewfeed.js:1001
+msgid "Delete %d selected article in %s?"
+msgid_plural "Delete %d selected articles in %s?"
+msgstr[0] "Verwijder %d geselecteerd artikel in %s?"
+msgstr[1] "Verwijder %d geselecteerde artikelen in %s?"
+
+#: js/viewfeed.js:1003
+msgid "Delete %d selected article?"
+msgid_plural "Delete %d selected articles?"
+msgstr[0] "Verwijder %d geselecteerd artikel?"
+msgstr[1] "Verwijder %d geselecteerde artikelen?"
+
+#: js/viewfeed.js:1045
+msgid "Archive %d selected article in %s?"
+msgid_plural "Archive %d selected articles in %s?"
+msgstr[0] "%d geselecteerd artikel archiveren in %s?"
+msgstr[1] "%d geselecteerd artikelen archiveren in %s?"
+
+#: js/viewfeed.js:1048
+msgid "Move %d archived article back?"
+msgid_plural "Move %d archived articles back?"
+msgstr[0] "%d gearchiveerd artikel terugzetten?"
+msgstr[1] "%d gearchiveerde artikelen terugzetten?"
+
+#: js/viewfeed.js:1050
+msgid "Please note that unstarred articles might get purged on next feed update."
+msgstr "Let op, artikels zonder ster kunnen verloren gaan bij de volgende feed update."
+
+#: js/viewfeed.js:1095
+msgid "Mark %d selected article in %s as read?"
+msgid_plural "Mark %d selected articles in %s as read?"
+msgstr[0] "Markeer %d geselecteerd artikel in %s als gelezen?"
+msgstr[1] "Markeer %d geselecteerde artikelen in %s als gelezen?"
+
+#: js/viewfeed.js:1119
+msgid "Edit article Tags"
+msgstr "Bewerk artikel tags"
+
+#: js/viewfeed.js:1125
+msgid "Saving article tags..."
+msgstr "Artikel tags opslaan..."
+
+#: js/viewfeed.js:1331
+msgid "No article is selected."
+msgstr "Geen artikel geselecteerd."
+
+#: js/viewfeed.js:1366
+msgid "No articles found to mark"
+msgstr "Geen artikelen gevonden om te markeren"
+
+#: js/viewfeed.js:1368
+msgid "Mark %d article as read?"
+msgid_plural "Mark %d articles as read?"
+msgstr[0] "Markeer %d artikel als gelezen?"
+msgstr[1] "Markeer %d artikelen als gelezen?"
+
+#: js/viewfeed.js:1870
+msgid "Open original article"
+msgstr "Open origineel artikel"
+
+#: js/viewfeed.js:1876
+msgid "Display article URL"
+msgstr "Toon artikel URL"
+
+#: js/viewfeed.js:1895
+msgid "Toggle marked"
+msgstr "Markeer als (on)gelezen"
+
+#: js/viewfeed.js:1976
+msgid "Assign label"
+msgstr "Labels toevoegen"
+
+#: js/viewfeed.js:1981
+msgid "Remove label"
+msgstr "Label verwijderen"
+
+#: js/viewfeed.js:2035
+msgid "Please enter new score for selected articles:"
+msgstr "Geef aub een nieuwe score voor de geselecteerde artikelen:"
+
+#: js/viewfeed.js:2077
+msgid "Please enter new score for this article:"
+msgstr "Geef aub een nieuwe score voor dit artikel:"
+
+#: js/viewfeed.js:2110
+msgid "Article URL:"
+msgstr "Artikel URL:"
+
+#: plugins/embed_original/init.js:6
+msgid "Sorry, your browser does not support sandboxed iframes."
+msgstr "Sorry, uw browser lijkt iframes in een sandbox niet te ondersteunen."
+
+#: plugins/mailto/init.js:21
+#: plugins/mail/mail.js:21
+msgid "Forward article by email"
+msgstr "Artikel doorsturen per e-mail"
+
+#: plugins/import_export/import_export.js:13
+msgid "Export Data"
+msgstr "Data exporteren"
+
+#: plugins/import_export/import_export.js:40
+msgid "Finished, exported %d article. You can download the data <a class='visibleLink' href='%u'>here</a>."
+msgid_plural "Finished, exported %d articles. You can download the data <a class='visibleLink' href='%u'>here</a>."
+msgstr[0] "Klaar met exporteren van %d artikel. U kunt de data <a class='visibleLink' href='%u'>hier</a> downloaden."
+msgstr[1] "Klaar met exporteren van %d artikelen. U kunt de data <a class='visibleLink' href='%u'>hier</a> downloaden."
+
+#: plugins/import_export/import_export.js:93
+msgid "Data Import"
+msgstr "Data importeren"
+
+#: plugins/import_export/import_export.js:112
+msgid "Please choose the file first."
+msgstr "Kies het bestand eerst aub."
+
+#: plugins/note/note.js:17
+msgid "Saving article note..."
+msgstr "Artikel notitie opslaan..."
+
+#: plugins/googlereaderimport/init.js:18
+msgid "Google Reader Import"
+msgstr "Google Reader Importeerder"
+
+#: plugins/googlereaderimport/init.js:42
+msgid "Please choose a file first."
+msgstr "Kies eerst een bestand aub."
+
+#: plugins/instances/instances.js:10
+msgid "Link Instance"
+msgstr "Link Instantie"
+
+#: plugins/instances/instances.js:73
+msgid "Edit Instance"
+msgstr "Bewerk instantie"
+
+#: plugins/instances/instances.js:122
+msgid "Remove selected instances?"
+msgstr "Geselecteerde instanties verwijderen?"
+
+#: plugins/instances/instances.js:125
+msgid "Removing selected instances..."
+msgstr "Geselecteerde instanties verwijderen..."
+
+#: plugins/instances/instances.js:139
+#: plugins/instances/instances.js:151
+msgid "No instances are selected."
+msgstr "Er zijn geen instanties geselecteerd."
+
+#: plugins/instances/instances.js:156
+msgid "Please select only one instance."
+msgstr "Selecteer aub slechts één instantie."
+
+#: plugins/share/share.js:10
+msgid "Share article by URL"
+msgstr "Deel artikel via URL"
+
+#: plugins/updater/updater.js:58
+msgid "Backup your tt-rss directory before continuing. Please type 'yes' to continue."
+msgstr "Maak een back-up van uw tt-rss map alvorens door te gaan. Typ 'yes' om door te gaan. "
+
+#~ msgid "(Un)hide empty categories"
+#~ msgstr "Verberg/Toon lege categorieën"
+
+#~ msgid "Published articles and generated feeds"
+#~ msgstr "Gepubliceerde artikelen en gegenereerde feeds"
+
+#~ msgid "Articles shared by URL"
+#~ msgstr "Artikelen gedeeld met URL"
+
+#~ msgid "These feeds have not been updated because of errors:"
+#~ msgstr "Deze feeds zijn niet bijgewerkt omdat er fouten zijn opgetreden:"
+
+#~ msgid "Your browser doesn't support Javascript, which is required for this application to function properly. Please check your browser settings."
+#~ msgstr "Uw browser ondersteunt geen Javascript. Dit is vereist voor het goed functioneren van deze applicatie. Controleer aub uw browser instellingen."
+
+#~ msgid "Hello,"
+#~ msgstr "Hallo,"
+
+#~ msgid "Regular version"
+#~ msgstr "Reguliere versie"
+
+#~ msgid "Home"
+#~ msgstr "Startpagina"
+
+#~ msgid "Nothing found (click to reload feed)."
+#~ msgstr "Niets gevonden (klik om feed opnieuw te laden)."
+
+#~ msgid "Open regular version"
+#~ msgstr "Open de reguliere versie"
+
+#~ msgid "Enable categories"
+#~ msgstr "Inschakelen categorieën"
+
+#~ msgid "ON"
+#~ msgstr "AAN"
+
+#~ msgid "OFF"
+#~ msgstr "UIT"
+
+#~ msgid "Browse categories like folders"
+#~ msgstr "Geef categorieën als mappen weer"
+
+#~ msgid "Show images in posts"
+#~ msgstr "Toon afbeeldingen in berichten"
+
+#~ msgid "Hide read articles and feeds"
+#~ msgstr "Verberg gelezen artikelen en feeds"
+
+#~ msgid "Sort feeds by unread count"
+#~ msgstr "Sorteer feeds op ongelezen aantallen"
+
+#~ msgid "Article archive"
+#~ msgstr "Artikelarchief"
+
+#~ msgid "Example Pane"
+#~ msgstr "Voorbeeldpaneel"
+
+#~ msgid "Sample value"
+#~ msgstr "Voorbeeld waarde"
+
+#~ msgid "Set value"
+#~ msgstr "Geef waarde"
+
+#~ msgid "Mark %d displayed article as read?"
+#~ msgid_plural "Mark %d displayed articles as read?"
+#~ msgstr[0] "Markeer %d getoond artikel als gelezen?"
+#~ msgstr[1] "Markeer %d getoonde artikelen als gelezen?"
+
+#~ msgid "Error: unable to load article."
+#~ msgstr "Fout: kan artikel niet laden."
+
+#~ msgid "Click to expand article."
+#~ msgstr "Klik om artikel uit te klappen."
+
+#~ msgid "%d more..."
+#~ msgid_plural "%d more..."
+#~ msgstr[0] "%d meer…"
+#~ msgstr[1] "%d meer…"
+
+#~ msgid "No unread feeds."
+#~ msgstr "Geen ongelezen feeds."
+
+#~ msgid "Load more..."
+#~ msgstr "Laad meer..."
+
+#~ msgid "Switch to digest..."
+#~ msgstr "Omschakelen naar samenvatting…"
+
+#~ msgid "Show tag cloud..."
+#~ msgstr "Toon tagwolk..."
+
+#~ msgid "Click to play"
+#~ msgstr "Klik om af te spelen"
+
+#~ msgid "Play"
+#~ msgstr "Afspelen"
+
+#~ msgid "Visit the website"
+#~ msgstr "Bezoek de website"
+
+#, fuzzy
+#~ msgid "Select theme"
+#~ msgstr "Selecteer met ster"
+
+#~ msgid "I have scanned the code and would like to enable OTP"
+#~ msgstr "Ik heb de code gescanned en wil nu EWW inschakelen"
+
+#~ msgid "Playing..."
+#~ msgstr "aan 't afspelen..."
+
+#, fuzzy
+#~ msgid "Could not upload file. You might need to adjust upload_max_filesize in PHP.ini (current value = %s)"
+#~ msgstr ""
+#~ "Kon bestand niet uploaden. U moet misschien de upload_max_filesize\n"
+#~ "\t\t\t\tin PHP.ini aanpassen (huidige waarde = %s)"
+
+#~ msgid "Default interval between feed updates"
+#~ msgstr "Standaard interval voor feed updates"
+
+#~ msgid "Could not update database"
+#~ msgstr "Kon de database niet bijwerken"
+
+#~ msgid "Could not find necessary schema file, need version:"
+#~ msgstr "Kon geen juist updateschemabestand vinden. Benodigde versie:"
+
+#~ msgid ", found: "
+#~ msgstr ", gevonden: "
+
+#~ msgid "Tiny Tiny RSS database is up to date."
+#~ msgstr "Tiny Tiny RSS database is bijgewerkt."
+
+#~ msgid "Please backup your database before proceeding."
+#~ msgstr "Maak aub een back-up van uw database voordat u verder gaat."
+
+#~ msgid "Your Tiny Tiny RSS database needs update to the latest version (<b>%d</b> to <b>%d</b>)."
+#~ msgstr "Uw Tiny Tiny RSS database moet worden geüpdate naar de laatste versie (<b>%d</b> naar <b>%d</b>)."
+
+#~ msgid "Performing updates..."
+#~ msgstr "Uitvoeren van updates..."
+
+#~ msgid "Updating to version %d..."
+#~ msgstr "Updaten naar versie %d..."
+
+#~ msgid "Checking version... "
+#~ msgstr "Versie controleren..."
+
+#~ msgid "OK!"
+#~ msgstr "OK!"
+
+#~ msgid "ERROR!"
+#~ msgstr "FOUT!"
+
+#, fuzzy
+#~ msgid "Finished. Performed <b>%d</b> update up to schema version <b>%d</b>."
+#~ msgid_plural "Finished. Performed <b>%d</b> updates up to schema version <b>%d</b>."
+#~ msgstr[0] ""
+#~ "Klaar. <b>%d</b> update(s) uitgevoerd volgens schema naar\n"
+#~ "\t\t\tversie <b>%d</b>."
+#~ msgstr[1] ""
+#~ "Klaar. <b>%d</b> update(s) uitgevoerd volgens schema naar\n"
+#~ "\t\t\tversie <b>%d</b>."
+
+#~ msgid "Your database schema is from a newer version of Tiny Tiny RSS."
+#~ msgstr "Uw database schema is van een nieuwere versie van Tiny Tiny RSS."
+
+#~ msgid "Found schema version: <b>%d</b>, required: <b>%d</b>."
+#~ msgstr "Versie schema gevonden: <b>%d</b>, vereist: <b>%d</b>."
+
+#~ msgid "Schema upgrade impossible. Please update Tiny Tiny RSS files to the newer version and continue."
+#~ msgstr "Schema update onmogelijk. Update Tiny Tiny RSS bestanden naar de nieuwere versie en gaan door."
+
+#, fuzzy
+#~ msgid "Mark feed as read"
+#~ msgstr "Markeer alle feeds als gelezen"
+
+#~ msgid "Enable external API"
+#~ msgstr "Inschakelen externe API"
+
+#~ msgid "When this option is enabled, headlines in Special feeds and Labels are grouped by feeds"
+#~ msgstr "Als deze optie is ingeschakeld worden kopteksten in de Speciale feedsrubriek en Labels gegroepeerd per feed"
+
+#~ msgid "Title or Content"
+#~ msgstr "Titel of inhoud"
+
+#~ msgid "Link"
+#~ msgstr "Koppeling"
+
+#~ msgid "Content"
+#~ msgstr "Inhoud"
+
+#~ msgid "Article Date"
+#~ msgstr "Datum artikel"
+
+#~ msgid "Delete article"
+#~ msgstr "Verwijder artikel"
+
+#~ msgid "Set starred"
+#~ msgstr "Ster toevoegen"
+
+#~ msgid "Assign tags"
+#~ msgstr "Tags toevoegen"
+
+#~ msgid "Modify score"
+#~ msgstr "verander de score"
+
+#~ msgid "This option is useful when you are reading several planet-type aggregators with partially colliding userbase. When disabled, it forces same posts from different feeds to appear only once."
+#~ msgstr "Deze optie is nuttig als u verscheidene planet-type nieuws aggregators leest met een ten dele overeenkomende gebruikersgroep. Indien uitgeschakeld forceert het berichten van verschillende feeds slechts eenmaal te verschijnen."
+
+#~ msgid "Date syntax appears to be correct:"
+#~ msgstr "Data syntax lijkt correct:"
+
+#~ msgid "Date syntax is incorrect."
+#~ msgstr "Data syntax is onjuist."
+
+#, fuzzy
+#~ msgid "(%d feed)"
+#~ msgid_plural "(%d feeds)"
+#~ msgstr[0] "(%d feeds)"
+#~ msgstr[1] "(%d feeds)"
+
+#~ msgid "Notice"
+#~ msgstr "NB!"
+
+#~ msgid "Tag Cloud"
+#~ msgstr "Tag Wolk"
+
+#~ msgid "Mark all visible articles in %s as read?"
+#~ msgstr "Markeer alle zichtbare artikelen in %s als gelezen?"
+
+#~ msgid "Score"
+#~ msgstr "Score"
+
+#~ msgid "Enable the options you wish to apply using checkboxes on the right:"
+#~ msgstr "Inschakelen van toe te passen opties met de selectievakjes rechts:"
+
+#~ msgid "New articles available in this feed (click to show)"
+#~ msgstr "Nieuwe artikelen beschikbaar in deze feed (klik voor weergave)"
+
+#~ msgid "Pocket"
+#~ msgstr "Pocket"
+
+#~ msgid "Pinterest"
+#~ msgstr "Pinterest"
+
+#~ msgid "Share on identi.ca"
+#~ msgstr "Deel op identi.ca"
+
+#~ msgid "Owncloud"
+#~ msgstr "Owncloud"
+
+#~ msgid "Owncloud url"
+#~ msgstr "Owncloud url"
+
+#~ msgid "Bookmark on OwnCloud "
+#~ msgstr "Bladwijzers op OwnCloud"
+
+#~ msgid "Flattr this article."
+#~ msgstr "Flattr dit artikel."
+
+#~ msgid "Share on Google+"
+#~ msgstr "Deel op Google+"
+
+#~ msgid "Share on Twitter"
+#~ msgstr "Deel op Twitter"
+
+#~ msgid "Show additional preferences"
+#~ msgstr "Toon additionele voorkeuren"
+
+#~ msgid "Back to feeds"
+#~ msgstr "Terug naar de feeds"
+
+#~ msgid "This will clear your stored authentication information for Twitter. Continue?"
+#~ msgstr "Dit zal uw opgeslagen authenticatie informatie voor Twitter verwijderen. Doorgaan?"
+
+#~ msgid "Updated"
+#~ msgstr "Bijgewerkt"
+
+#~ msgid "Finished: %d articles processed, %d imported, %d feeds created."
+#~ msgstr "Klaar: %d artikelen afgehandeld, %d geïmporteerd, %d feeds aangemaakt."
+
+#~ msgid "Related"
+#~ msgstr "Gerelateerd"
+
+#~ msgid "Notifying <b>%s</b>."
+#~ msgstr "Melden aan <b>%s</b>."
diff --git a/locale/sv_SE/LC_MESSAGES/messages.mo b/locale/sv_SE/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..a5dee088f
--- /dev/null
+++ b/locale/sv_SE/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/sv_SE/LC_MESSAGES/messages.po b/locale/sv_SE/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..bc6ff3f74
--- /dev/null
+++ b/locale/sv_SE/LC_MESSAGES/messages.po
@@ -0,0 +1,3983 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Walter Weiss <[email protected]>, 2013.
+# poitzorg <[email protected]>, 2012.
+# gothfox <[email protected]>, 2011.
+# joschi <[email protected]>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Tiny Tiny RSS sv_SE\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-05-14 09:35+0400\n"
+"PO-Revision-Date: 2013-05-14 03:37+0100\n"
+"Last-Translator: Mattias Tengblad <[email protected]>\n"
+"Language-Team: Mattias Tengblad <[email protected]>\n"
+"Language: Svenska\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.5.5\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+
+#: backend.php:73
+msgid "Use default"
+msgstr "Använd standard"
+
+#: backend.php:74
+msgid "Never purge"
+msgstr "Rensa aldrig"
+
+#: backend.php:75
+msgid "1 week old"
+msgstr "1 vecka"
+
+#: backend.php:76
+msgid "2 weeks old"
+msgstr "2 veckor"
+
+#: backend.php:77
+msgid "1 month old"
+msgstr "1 månad"
+
+#: backend.php:78
+msgid "2 months old"
+msgstr "2 månader"
+
+#: backend.php:79
+msgid "3 months old"
+msgstr "3 månader"
+
+#: backend.php:82
+msgid "Default interval"
+msgstr "Standardintervall"
+
+#: backend.php:83
+#: backend.php:93
+msgid "Disable updates"
+msgstr "Inaktivera uppdateringar"
+
+#: backend.php:84
+#: backend.php:94
+msgid "Each 15 minutes"
+msgstr "Varje kvart"
+
+#: backend.php:85
+#: backend.php:95
+msgid "Each 30 minutes"
+msgstr "Varje halvtimma"
+
+#: backend.php:86
+#: backend.php:96
+msgid "Hourly"
+msgstr "Varje timma"
+
+#: backend.php:87
+#: backend.php:97
+msgid "Each 4 hours"
+msgstr "Var 4:e timme"
+
+#: backend.php:88
+#: backend.php:98
+msgid "Each 12 hours"
+msgstr "Var 12:e timme"
+
+#: backend.php:89
+#: backend.php:99
+msgid "Daily"
+msgstr "Dagligen"
+
+#: backend.php:90
+#: backend.php:100
+msgid "Weekly"
+msgstr "Veckovis"
+
+#: backend.php:103
+#: classes/pref/users.php:119
+#: classes/pref/system.php:51
+msgid "User"
+msgstr "Användare"
+
+#: backend.php:104
+msgid "Power User"
+msgstr "Superanvändare"
+
+#: backend.php:105
+msgid "Administrator"
+msgstr "Administratör"
+
+#: errors.php:9
+msgid "This program requires XmlHttpRequest to function properly. Your browser doesn't seem to support it."
+msgstr "Denna sida behöver XmlHttpRequest för att kunna köras. Din webbläsare verkar inte stöda det."
+
+#: errors.php:12
+msgid "This program requires cookies to function properly. Your browser doesn't seem to support them."
+msgstr "Denna sida behöver cookies för att fungera. Din webbläsare verkar inte stöda det."
+
+#: errors.php:15
+msgid "Backend sanity check failed."
+msgstr "Sanitetskontroll för \"backend\" misslyckades."
+
+#: errors.php:17
+msgid "Frontend sanity check failed."
+msgstr "Sanitetskontroll för \"frontend\" misslyckades."
+
+#: errors.php:19
+msgid "Incorrect database schema version. &lt;a href='db-updater.php'&gt;Please update&lt;/a&gt;."
+msgstr "Felaktig version för databasshema. &lt;a href='db-updater.php'&gt;Vänligen uppdatera&lt;/a&gt;."
+
+#: errors.php:21
+msgid "Request not authorized."
+msgstr "Förfrågan ej tillåten."
+
+#: errors.php:23
+msgid "No operation to perform."
+msgstr "Ingen aktivtet vald."
+
+#: errors.php:25
+msgid "Could not display feed: query failed. Please check label match syntax or local configuration."
+msgstr "Kunde inte visa flöde: sökning misslyckades. Vänligen kontrollera att etiketten har rätt syntax och den lokala konfigurationen"
+
+#: errors.php:27
+msgid "Denied. Your access level is insufficient to access this page."
+msgstr "Nekad. Din behörighetsnivå är för låg för att ladda denna sida."
+
+#: errors.php:29
+msgid "Configuration check failed"
+msgstr "Kontrollen av konfiguration misslyckades"
+
+#: errors.php:31
+msgid "Your version of MySQL is not currently supported. Please see official site for more information."
+msgstr "Din version av MySQL stöds inte för närvarande. Vänligen se den officiella webbplatsen för mer information."
+
+#: errors.php:35
+msgid "SQL escaping test failed, check your database and PHP configuration"
+msgstr "Test för \"SQL escaping\" misslyckades, kontrollera databas och PHP-konfiguration"
+
+#: index.php:128
+#: index.php:145
+#: index.php:265
+#: prefs.php:98
+#: classes/backend.php:5
+#: classes/pref/labels.php:296
+#: classes/pref/filters.php:678
+#: classes/pref/feeds.php:1372
+#: js/feedlist.js:128
+#: js/feedlist.js:441
+#: js/functions.js:446
+#: js/functions.js:784
+#: js/functions.js:1194
+#: js/functions.js:1330
+#: js/functions.js:1642
+#: js/prefs.js:86
+#: js/prefs.js:576
+#: js/prefs.js:666
+#: js/prefs.js:867
+#: js/prefs.js:1454
+#: js/prefs.js:1507
+#: js/prefs.js:1566
+#: js/prefs.js:1583
+#: js/prefs.js:1599
+#: js/prefs.js:1619
+#: js/prefs.js:1792
+#: js/prefs.js:1808
+#: js/prefs.js:1826
+#: js/tt-rss.js:507
+#: js/tt-rss.js:524
+#: js/viewfeed.js:816
+#: js/viewfeed.js:1245
+#: plugins/import_export/import_export.js:17
+#: plugins/updater/updater.js:17
+msgid "Loading, please wait..."
+msgstr "Laddar, vänta..."
+
+#: index.php:159
+msgid "Collapse feedlist"
+msgstr "Visa/dölj flödeslista"
+
+#: index.php:162
+msgid "Show articles"
+msgstr "Visa artiklarna"
+
+#: index.php:165
+msgid "Adaptive"
+msgstr "Adaptivt"
+
+#: index.php:166
+msgid "All Articles"
+msgstr "Alla artiklar"
+
+#: index.php:167
+#: include/functions.php:2008
+#: classes/feeds.php:98
+msgid "Starred"
+msgstr "Stjärnmärkta"
+
+#: index.php:168
+#: include/functions.php:2009
+#: classes/feeds.php:99
+msgid "Published"
+msgstr "Publicerade"
+
+#: index.php:169
+#: classes/feeds.php:85
+#: classes/feeds.php:97
+msgid "Unread"
+msgstr "Olästa"
+
+#: index.php:170
+msgid "Unread First"
+msgstr "Olästa först"
+
+#: index.php:171
+msgid "With Note"
+msgstr "Med notering"
+
+#: index.php:172
+msgid "Ignore Scoring"
+msgstr "Ignorera poängsättningen"
+
+#: index.php:175
+msgid "Sort articles"
+msgstr "Sortera artiklar"
+
+#: index.php:178
+msgid "Default"
+msgstr "Standard"
+
+#: index.php:179
+msgid "Newest first"
+msgstr "Nyast först"
+
+#: index.php:180
+msgid "Oldest first"
+msgstr "Äldst först"
+
+#: index.php:181
+msgid "Title"
+msgstr "Titel"
+
+#: index.php:185
+#: index.php:233
+#: include/functions.php:1998
+#: classes/feeds.php:103
+#: classes/feeds.php:424
+#: js/FeedTree.js:128
+#: js/FeedTree.js:156
+msgid "Mark as read"
+msgstr "Markera som läst"
+
+#: index.php:188
+msgid "Older than one day"
+msgstr "Äldre än en dag"
+
+#: index.php:191
+msgid "Older than one week"
+msgstr "Äldre än en vecka"
+
+#: index.php:194
+msgid "Older than two weeks"
+msgstr "Äldre än två veckor"
+
+#: index.php:210
+msgid "Communication problem with server."
+msgstr "Kommunikationsproblem med servern."
+
+#: index.php:218
+msgid "New version of Tiny Tiny RSS is available!"
+msgstr "Ny version av Tiny Tiny RSS finns att ladda ner!"
+
+#: index.php:223
+msgid "Actions..."
+msgstr "Åtgärder..."
+
+#: index.php:225
+msgid "Preferences..."
+msgstr "Inställningar..."
+
+#: index.php:226
+msgid "Search..."
+msgstr "Sök..."
+
+#: index.php:227
+msgid "Feed actions:"
+msgstr "Flödesåtgärder:"
+
+#: index.php:228
+#: classes/handler/public.php:562
+msgid "Subscribe to feed..."
+msgstr "Prenumerera på flöde..."
+
+#: index.php:229
+msgid "Edit this feed..."
+msgstr "Redigera detta flöde..."
+
+#: index.php:230
+msgid "Rescore feed"
+msgstr "Beräkna flödets poäng på nytt"
+
+#: index.php:231
+#: classes/pref/feeds.php:746
+#: classes/pref/feeds.php:1327
+#: js/PrefFeedTree.js:73
+msgid "Unsubscribe"
+msgstr "Avsluta prenumeration"
+
+#: index.php:232
+msgid "All feeds:"
+msgstr "Alla flöden:"
+
+#: index.php:234
+msgid "(Un)hide read feeds"
+msgstr "Visa/dölj lästa flöden"
+
+#: index.php:235
+msgid "Other actions:"
+msgstr "Andra aktiviteter:"
+
+#: index.php:236
+#: include/functions.php:1984
+msgid "Toggle widescreen mode"
+msgstr "Växla widescreenläge"
+
+#: index.php:237
+msgid "Select by tags..."
+msgstr "Välj efter taggar..."
+
+#: index.php:238
+msgid "Create label..."
+msgstr "Skapa etikett..."
+
+#: index.php:239
+msgid "Create filter..."
+msgstr "Skapa filter..."
+
+#: index.php:240
+msgid "Keyboard shortcuts help"
+msgstr "Hjälp för kortkommandon..."
+
+#: index.php:249
+msgid "Logout"
+msgstr "Logga ut"
+
+#: prefs.php:33
+#: prefs.php:116
+#: include/functions.php:2011
+#: classes/pref/prefs.php:440
+msgid "Preferences"
+msgstr "Inställningar"
+
+#: prefs.php:107
+msgid "Keyboard shortcuts"
+msgstr "Kortkommandon"
+
+#: prefs.php:108
+msgid "Exit preferences"
+msgstr "Lämna inställningarna"
+
+#: prefs.php:119
+#: classes/pref/feeds.php:106
+#: classes/pref/feeds.php:1253
+#: classes/pref/feeds.php:1316
+msgid "Feeds"
+msgstr "Flöden"
+
+#: prefs.php:122
+#: classes/pref/filters.php:154
+msgid "Filters"
+msgstr "Filter"
+
+#: prefs.php:125
+#: include/functions.php:1176
+#: include/functions.php:1832
+#: classes/pref/labels.php:90
+msgid "Labels"
+msgstr "Etiketter"
+
+#: prefs.php:129
+msgid "Users"
+msgstr "Användare"
+
+#: prefs.php:132
+msgid "System"
+msgstr "System"
+
+#: register.php:184
+#: include/login_form.php:238
+msgid "Create new account"
+msgstr "Skapa ett nytt konto"
+
+#: register.php:190
+msgid "New user registrations are administratively disabled."
+msgstr "Nyregistrering av användare är inaktiverat."
+
+#: register.php:194
+#: register.php:239
+#: register.php:252
+#: register.php:267
+#: register.php:286
+#: register.php:334
+#: register.php:344
+#: register.php:356
+#: classes/handler/public.php:632
+#: classes/handler/public.php:723
+#: classes/handler/public.php:805
+#: classes/handler/public.php:880
+#: classes/handler/public.php:894
+#: classes/handler/public.php:901
+#: classes/handler/public.php:926
+msgid "Return to Tiny Tiny RSS"
+msgstr "Återgå till Tiny Tiny RSS"
+
+#: register.php:215
+msgid "Your temporary password will be sent to the specified email. Accounts, which were not logged in once, are erased automatically 24 hours after temporary password is sent."
+msgstr "Ditt tillfälliga lösenords skickas till angiven e-postadress. Om du inte loggar in inom 24 timmar kommer kontot automatiskt att raderas"
+
+#: register.php:221
+msgid "Desired login:"
+msgstr "Önskat användarnamn:"
+
+#: register.php:224
+msgid "Check availability"
+msgstr "Kontrollera tillgänglighet"
+
+#: register.php:226
+#: classes/handler/public.php:763
+msgid "Email:"
+msgstr "E-post:"
+
+#: register.php:229
+#: classes/handler/public.php:768
+msgid "How much is two plus two:"
+msgstr "Hur mycket är två plus två?:"
+
+#: register.php:232
+msgid "Submit registration"
+msgstr "Skicka registrering"
+
+#: register.php:250
+msgid "Your registration information is incomplete."
+msgstr "Fll i samtliga uppgifter."
+
+#: register.php:265
+msgid "Sorry, this username is already taken."
+msgstr "Användarnamnet är tyvärr redan upptaget."
+
+#: register.php:284
+msgid "Registration failed."
+msgstr "Registrering misslyckades."
+
+#: register.php:331
+msgid "Account created successfully."
+msgstr "Konto skapat."
+
+#: register.php:353
+msgid "New user registrations are currently closed."
+msgstr "Nyregistrering av användare är för närvarande avstängt."
+
+#: update.php:55
+msgid "Tiny Tiny RSS data update script."
+msgstr "Skript för att uppdatera Tiny Tiny RSS."
+
+#: include/digest.php:109
+#: include/functions.php:1185
+#: include/functions.php:1733
+#: include/functions.php:1818
+#: include/functions.php:1840
+#: classes/opml.php:416
+#: classes/pref/feeds.php:218
+msgid "Uncategorized"
+msgstr "Okategoriserat"
+
+#: include/feedbrowser.php:83
+#, php-format
+msgid "%d archived article"
+msgid_plural "%d archived articles"
+msgstr[0] "%d arkiverad artikel"
+msgstr[1] "%d arkiverade artiklar"
+
+#: include/feedbrowser.php:107
+msgid "No feeds found."
+msgstr "Inga flöden funna."
+
+#: include/functions.php:1174
+#: include/functions.php:1830
+msgid "Special"
+msgstr "Special"
+
+#: include/functions.php:1681
+#: classes/feeds.php:1097
+#: classes/pref/filters.php:425
+msgid "All feeds"
+msgstr "Alla flöden"
+
+#: include/functions.php:1885
+msgid "Starred articles"
+msgstr "Stjärnmärkta artiklar"
+
+#: include/functions.php:1887
+msgid "Published articles"
+msgstr "Publicerade artiklar"
+
+#: include/functions.php:1889
+msgid "Fresh articles"
+msgstr "Nya artiklar"
+
+#: include/functions.php:1891
+#: include/functions.php:2006
+msgid "All articles"
+msgstr "Alla artiklar"
+
+#: include/functions.php:1893
+msgid "Archived articles"
+msgstr "Arkiverade artiklar"
+
+#: include/functions.php:1895
+msgid "Recently read"
+msgstr "Nyligen lästa"
+
+#: include/functions.php:1958
+msgid "Navigation"
+msgstr "Navigation"
+
+#: include/functions.php:1959
+msgid "Open next feed"
+msgstr "Öppna nästa flöde"
+
+#: include/functions.php:1960
+msgid "Open previous feed"
+msgstr "Öppna föregående flöde"
+
+#: include/functions.php:1961
+msgid "Open next article"
+msgstr "Öppna näst artikel"
+
+#: include/functions.php:1962
+msgid "Open previous article"
+msgstr "Öppna föregående artikel"
+
+#: include/functions.php:1963
+msgid "Open next article (don't scroll long articles)"
+msgstr "Öppna nästa artikel (skrolla inte långa artiklar)"
+
+#: include/functions.php:1964
+msgid "Open previous article (don't scroll long articles)"
+msgstr "Öppna föregående artikel (skrolla inte långa artiklar)"
+
+#: include/functions.php:1965
+#, fuzzy
+msgid "Move to next article (don't expand or mark read)"
+msgstr "Öppna nästa artikel (skrolla inte långa artiklar)"
+
+#: include/functions.php:1966
+#, fuzzy
+msgid "Move to previous article (don't expand or mark read)"
+msgstr "Öppna föregående artikel (skrolla inte långa artiklar)"
+
+#: include/functions.php:1967
+msgid "Show search dialog"
+msgstr "Visa sökdialogen"
+
+#: include/functions.php:1968
+msgid "Article"
+msgstr "Artikel"
+
+#: include/functions.php:1969
+msgid "Toggle starred"
+msgstr "Växla stjärnmarkering"
+
+#: include/functions.php:1970
+#: js/viewfeed.js:1906
+msgid "Toggle published"
+msgstr "Växla publicering"
+
+#: include/functions.php:1971
+#: js/viewfeed.js:1884
+msgid "Toggle unread"
+msgstr "Växla olästa"
+
+#: include/functions.php:1972
+msgid "Edit tags"
+msgstr "Redigera taggar"
+
+#: include/functions.php:1973
+msgid "Dismiss selected"
+msgstr "Avvisa markerade"
+
+#: include/functions.php:1974
+msgid "Dismiss read"
+msgstr "Avvisa lästa"
+
+#: include/functions.php:1975
+msgid "Open in new window"
+msgstr "Öppna i nytt fönster"
+
+#: include/functions.php:1976
+#: js/viewfeed.js:1925
+msgid "Mark below as read"
+msgstr "Märk nedanstående som lästa"
+
+#: include/functions.php:1977
+#: js/viewfeed.js:1919
+msgid "Mark above as read"
+msgstr "Märk ovanstående som lästa"
+
+#: include/functions.php:1978
+msgid "Scroll down"
+msgstr "Skrolla ned"
+
+#: include/functions.php:1979
+msgid "Scroll up"
+msgstr "Skrolla upp"
+
+#: include/functions.php:1980
+msgid "Select article under cursor"
+msgstr "Välj artikel under pekare"
+
+#: include/functions.php:1981
+msgid "Email article"
+msgstr "Skicka artikel med e-post"
+
+#: include/functions.php:1982
+msgid "Close/collapse article"
+msgstr "Stäng/minimera artikel"
+
+#: include/functions.php:1983
+#, fuzzy
+msgid "Toggle article expansion (combined mode)"
+msgstr "Expandera artiklar automatiskt i kombinerat läge"
+
+#: include/functions.php:1985
+#: plugins/embed_original/init.php:31
+msgid "Toggle embed original"
+msgstr "Stäng av/sätt på inbäddade original"
+
+#: include/functions.php:1986
+msgid "Article selection"
+msgstr "Artikelval"
+
+#: include/functions.php:1987
+msgid "Select all articles"
+msgstr "Välj alla artiklar"
+
+#: include/functions.php:1988
+msgid "Select unread"
+msgstr "Välj olästa"
+
+#: include/functions.php:1989
+msgid "Select starred"
+msgstr "Välj markerade"
+
+#: include/functions.php:1990
+msgid "Select published"
+msgstr "Välj publicerade"
+
+#: include/functions.php:1991
+msgid "Invert selection"
+msgstr "Invertera val"
+
+#: include/functions.php:1992
+msgid "Deselect everything"
+msgstr "Avmarkera allt"
+
+#: include/functions.php:1993
+#: classes/pref/feeds.php:540
+#: classes/pref/feeds.php:783
+msgid "Feed"
+msgstr "Flöde"
+
+#: include/functions.php:1994
+msgid "Refresh current feed"
+msgstr "Uppdatera aktuellt flöde"
+
+#: include/functions.php:1995
+msgid "Un/hide read feeds"
+msgstr "Visa/dölj lästa flöden"
+
+#: include/functions.php:1996
+#: classes/pref/feeds.php:1319
+msgid "Subscribe to feed"
+msgstr "Prenumerera på flöde"
+
+#: include/functions.php:1997
+#: js/FeedTree.js:135
+#: js/PrefFeedTree.js:67
+msgid "Edit feed"
+msgstr "Redigera flöde"
+
+#: include/functions.php:1999
+msgid "Reverse headlines"
+msgstr "Omvänd sortering på rubrik"
+
+#: include/functions.php:2000
+msgid "Debug feed update"
+msgstr "Felsök flödesuppdatering"
+
+#: include/functions.php:2001
+#: js/FeedTree.js:178
+msgid "Mark all feeds as read"
+msgstr "Märk alla flöden som lästa"
+
+#: include/functions.php:2002
+msgid "Un/collapse current category"
+msgstr "Öppna/stäng aktuell kategori:"
+
+#: include/functions.php:2003
+msgid "Toggle combined mode"
+msgstr "Växla komboläge"
+
+#: include/functions.php:2004
+msgid "Toggle auto expand in combined mode"
+msgstr "Aktivera automatisk expandering i kombinerat läge"
+
+#: include/functions.php:2005
+msgid "Go to"
+msgstr "Gå till"
+
+#: include/functions.php:2007
+msgid "Fresh"
+msgstr "Nya"
+
+#: include/functions.php:2010
+#: js/tt-rss.js:457
+#: js/tt-rss.js:642
+msgid "Tag cloud"
+msgstr "Taggmoln"
+
+#: include/functions.php:2012
+msgid "Other"
+msgstr "Övriga"
+
+#: include/functions.php:2013
+#: classes/pref/labels.php:281
+msgid "Create label"
+msgstr "Skapa etikett"
+
+#: include/functions.php:2014
+#: classes/pref/filters.php:652
+msgid "Create filter"
+msgstr "Skapa filter"
+
+#: include/functions.php:2015
+msgid "Un/collapse sidebar"
+msgstr "Visa/dölj sidofält"
+
+#: include/functions.php:2016
+msgid "Show help dialog"
+msgstr "Visa hjälpfönster"
+
+#: include/functions.php:2537
+#, php-format
+msgid "Search results: %s"
+msgstr "Sökresultat: %s"
+
+#: include/functions.php:3132
+msgid " - "
+msgstr " - "
+
+#: include/functions.php:3154
+#: include/functions.php:3395
+#: classes/article.php:281
+msgid "no tags"
+msgstr "Inga taggar"
+
+#: include/functions.php:3164
+#: classes/feeds.php:676
+msgid "Edit tags for this article"
+msgstr "Redigera taggar för denna artikel"
+
+#: include/functions.php:3196
+#: classes/feeds.php:628
+msgid "Originally from:"
+msgstr "Ursprungligen från:"
+
+#: include/functions.php:3209
+#: classes/feeds.php:641
+#: classes/pref/feeds.php:559
+msgid "Feed URL"
+msgstr "URL för flöde"
+
+#: include/functions.php:3241
+#: classes/dlg.php:37
+#: classes/dlg.php:60
+#: classes/dlg.php:93
+#: classes/dlg.php:159
+#: classes/dlg.php:190
+#: classes/dlg.php:217
+#: classes/dlg.php:250
+#: classes/dlg.php:262
+#: classes/backend.php:105
+#: classes/pref/users.php:95
+#: classes/pref/filters.php:145
+#: classes/pref/prefs.php:1096
+#: classes/pref/feeds.php:1626
+#: classes/pref/feeds.php:1694
+#: plugins/import_export/init.php:407
+#: plugins/import_export/init.php:452
+#: plugins/googlereaderimport/init.php:193
+#: plugins/share/init.php:65
+#: plugins/updater/init.php:368
+msgid "Close this window"
+msgstr "Stäng fönstret"
+
+#: include/functions.php:3432
+msgid "(edit note)"
+msgstr "(Redigera notering)"
+
+#: include/functions.php:3667
+msgid "unknown type"
+msgstr "Okänd typ"
+
+#: include/functions.php:3723
+msgid "Attachments"
+msgstr "Bilagor"
+
+#: include/functions.php:4222
+#, php-format
+msgid "LibXML error %s at line %d (column %d): %s"
+msgstr "LibXML-fel %s på rad %d (kolumn %d): %s"
+
+#: include/login_form.php:183
+#: classes/handler/public.php:475
+#: classes/handler/public.php:758
+msgid "Login:"
+msgstr "Användarnamn:"
+
+#: include/login_form.php:194
+#: classes/handler/public.php:478
+msgid "Password:"
+msgstr "Lösenord:"
+
+#: include/login_form.php:199
+msgid "I forgot my password"
+msgstr "Jag har glömt mitt lösenord"
+
+#: include/login_form.php:205
+msgid "Profile:"
+msgstr "Profil:"
+
+#: include/login_form.php:209
+#: classes/handler/public.php:233
+#: classes/rpc.php:63
+#: classes/pref/prefs.php:1034
+msgid "Default profile"
+msgstr "Standardprofil"
+
+#: include/login_form.php:217
+msgid "Use less traffic"
+msgstr "Använd mindre datatrafik"
+
+#: include/login_form.php:221
+msgid "Does not display images in articles, reduces automatic refreshes."
+msgstr "Visar inte bilder i artiklar, reducerar automatiska omladdningar."
+
+#: include/login_form.php:229
+msgid "Remember me"
+msgstr "Kom ihåg mig"
+
+#: include/login_form.php:235
+#: classes/handler/public.php:483
+msgid "Log in"
+msgstr "Logga in"
+
+#: include/sessions.php:61
+msgid "Session failed to validate (incorrect IP)"
+msgstr "Kunde inte verifiera session (fel IP)"
+
+#: classes/article.php:25
+msgid "Article not found."
+msgstr "Hittar inte artikel."
+
+#: classes/article.php:179
+msgid "Tags for this article (separated by commas):"
+msgstr "Taggar för denna artikel (kommaseparerade):"
+
+#: classes/article.php:204
+#: classes/pref/users.php:172
+#: classes/pref/labels.php:79
+#: classes/pref/filters.php:403
+#: classes/pref/prefs.php:980
+#: classes/pref/feeds.php:762
+#: classes/pref/feeds.php:910
+#: plugins/nsfw/init.php:83
+#: plugins/note/init.php:51
+#: plugins/instances/init.php:245
+msgid "Save"
+msgstr "Spara"
+
+#: classes/article.php:206
+#: classes/handler/public.php:452
+#: classes/handler/public.php:486
+#: classes/feeds.php:1024
+#: classes/feeds.php:1076
+#: classes/feeds.php:1136
+#: classes/pref/users.php:174
+#: classes/pref/labels.php:81
+#: classes/pref/filters.php:406
+#: classes/pref/filters.php:801
+#: classes/pref/filters.php:877
+#: classes/pref/filters.php:944
+#: classes/pref/prefs.php:982
+#: classes/pref/feeds.php:763
+#: classes/pref/feeds.php:913
+#: classes/pref/feeds.php:1834
+#: plugins/mail/init.php:124
+#: plugins/note/init.php:53
+#: plugins/instances/init.php:248
+#: plugins/instances/init.php:436
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: classes/handler/public.php:416
+#: plugins/bookmarklets/init.php:40
+msgid "Share with Tiny Tiny RSS"
+msgstr "Dela med Tiny Tiny RSS"
+
+#: classes/handler/public.php:424
+msgid "Title:"
+msgstr "Titel:"
+
+#: classes/handler/public.php:426
+#: classes/pref/feeds.php:557
+#: classes/pref/feeds.php:798
+#: plugins/instances/init.php:212
+#: plugins/instances/init.php:401
+msgid "URL:"
+msgstr "URL:"
+
+#: classes/handler/public.php:428
+msgid "Content:"
+msgstr "Innehåll:"
+
+#: classes/handler/public.php:430
+msgid "Labels:"
+msgstr "Etiketter:"
+
+#: classes/handler/public.php:449
+msgid "Shared article will appear in the Published feed."
+msgstr "Delad artikel visas i 'Publicerade artiklar'."
+
+#: classes/handler/public.php:451
+msgid "Share"
+msgstr "Dela"
+
+#: classes/handler/public.php:473
+msgid "Not logged in"
+msgstr "Inte inloggad"
+
+#: classes/handler/public.php:532
+msgid "Incorrect username or password"
+msgstr "Felaktigt användarnamn eller lösenord"
+
+#: classes/handler/public.php:568
+#: classes/handler/public.php:666
+#, php-format
+msgid "Already subscribed to <b>%s</b>."
+msgstr "Du prenumererar redan på <b>%s</b>."
+
+#: classes/handler/public.php:571
+#: classes/handler/public.php:657
+#, php-format
+msgid "Subscribed to <b>%s</b>."
+msgstr "Prenumererar på <b>%s</b>."
+
+#: classes/handler/public.php:574
+#: classes/handler/public.php:660
+#, php-format
+msgid "Could not subscribe to <b>%s</b>."
+msgstr "Kunde inte prenumerera på <b>%s</b>."
+
+#: classes/handler/public.php:577
+#: classes/handler/public.php:663
+#, php-format
+msgid "No feeds found in <b>%s</b>."
+msgstr "Hittade inga flöden i <b>%s</b>."
+
+#: classes/handler/public.php:580
+#: classes/handler/public.php:669
+msgid "Multiple feed URLs found."
+msgstr "Hittade flera flödes-URLer."
+
+#: classes/handler/public.php:584
+#: classes/handler/public.php:676
+#, php-format
+msgid "Could not subscribe to <b>%s</b>.<br>Can't download the Feed URL."
+msgstr "Kunde inte prenumerera på <b>%s</b> <br>Kan inte ladda ned URL "
+
+#: classes/handler/public.php:602
+#: classes/handler/public.php:694
+msgid "Subscribe to selected feed"
+msgstr "Prenumerera på valt flöde"
+
+#: classes/handler/public.php:627
+#: classes/handler/public.php:718
+msgid "Edit subscription options"
+msgstr "Redigera prenumerationsinställningar"
+
+#: classes/handler/public.php:745
+msgid "Password recovery"
+msgstr "Återställning av lösenord"
+
+#: classes/handler/public.php:751
+msgid "You will need to provide valid account name and email. New password will be sent on your email address."
+msgstr "Du måste uppge ett giltigt kontonamn och e-postadress. Ett ny lösenord kommer att skickas till din e-post."
+
+#: classes/handler/public.php:773
+#: classes/pref/users.php:356
+msgid "Reset password"
+msgstr "Återställ lösenord"
+
+#: classes/handler/public.php:783
+msgid "Some of the required form parameters are missing or incorrect."
+msgstr "Vissa av dom obligatoriska formulärparametrarna saknas eller är inkorrekta."
+
+#: classes/handler/public.php:787
+#: classes/handler/public.php:813
+msgid "Go back"
+msgstr "Gå tillbaka"
+
+#: classes/handler/public.php:809
+msgid "Sorry, login and email combination not found."
+msgstr "Beklagar, kombinationen av användarnamn och e-postadress kunde inte hittas."
+
+#: classes/handler/public.php:829
+msgid "Your access level is insufficient to run this script."
+msgstr "Du har inte behörighet att köra detta skript."
+
+#: classes/handler/public.php:853
+msgid "Database Updater"
+msgstr "Databasuppdatering"
+
+#: classes/handler/public.php:918
+msgid "Perform updates"
+msgstr "Utför uppdatering"
+
+#: classes/dlg.php:16
+msgid "If you have imported labels and/or filters, you might need to reload preferences to see your new data."
+msgstr "Om du har importerat etiketter eller filter måste du ladda om inställningarna för att se uppdateringarna"
+
+#: classes/dlg.php:48
+msgid "Your Public OPML URL is:"
+msgstr "Din publika OPML-URL är:"
+
+#: classes/dlg.php:57
+#: classes/dlg.php:214
+msgid "Generate new URL"
+msgstr "Skapa ny URL"
+
+#: classes/dlg.php:71
+msgid "Update daemon is enabled in configuration, but daemon process is not running, which prevents all feeds from updating. Please start the daemon process or contact instance owner."
+msgstr "Uppdateringsdemon är aktiverad i konfigurationen, men processen körs inte. Detta förhindrar alla flöden från att uppdateras. Starta om processen eller kontakta den som administrerar instansen."
+
+#: classes/dlg.php:75
+#: classes/dlg.php:84
+msgid "Last update:"
+msgstr "Senaste uppdatering:"
+
+#: classes/dlg.php:80
+msgid "Update daemon is taking too long to perform a feed update. This could indicate a problem like crash or a hang. Please check the daemon process or contact instance owner."
+msgstr "Uppdateringsprocessen tar för lång tid på sig att uppdatera. Detta kan indikera en låsning eller hängning. Kontrollera processen eller kontakta administratören."
+
+#: classes/dlg.php:166
+msgid "Match:"
+msgstr "Sök: "
+
+#: classes/dlg.php:168
+msgid "Any"
+msgstr "Alla"
+
+#: classes/dlg.php:171
+msgid "All tags."
+msgstr "Alla taggar."
+
+#: classes/dlg.php:173
+msgid "Which Tags?"
+msgstr "Vilka taggar?"
+
+#: classes/dlg.php:186
+msgid "Display entries"
+msgstr "Visa poster"
+
+#: classes/dlg.php:205
+msgid "You can view this feed as RSS using the following URL:"
+msgstr "Du kan se detta flöde som RSS på följande URL:"
+
+#: classes/dlg.php:233
+#: plugins/updater/init.php:331
+#, php-format
+msgid "New version of Tiny Tiny RSS is available (%s)."
+msgstr "Ny version av Tiny Tiny RSS tillgänglig(%s)."
+
+#: classes/dlg.php:241
+msgid "You can update using built-in updater in the Preferences or by using update.php"
+msgstr "Du kan uppdatera med din inbyggda uppdateraren under Inställningar eller med update.php"
+
+#: classes/dlg.php:245
+#: plugins/updater/init.php:335
+msgid "See the release notes"
+msgstr "Se releasenoteringar"
+
+#: classes/dlg.php:247
+msgid "Download"
+msgstr "Ladda ned"
+
+#: classes/dlg.php:255
+msgid "Error receiving version information or no new version available."
+msgstr "Fel i versionsinformation eller ingen ny version"
+
+#: classes/feeds.php:56
+#, php-format
+msgid "Last updated: %s"
+msgstr "Senast uppdaterat: %s"
+
+#: classes/feeds.php:75
+msgid "View as RSS feed"
+msgstr "Visa RSS-flöde"
+
+#: classes/feeds.php:76
+#: classes/feeds.php:128
+#: classes/pref/feeds.php:1478
+msgid "View as RSS"
+msgstr "Visa som RSS"
+
+#: classes/feeds.php:83
+msgid "Select:"
+msgstr "Markera:"
+
+#: classes/feeds.php:84
+#: classes/pref/users.php:341
+#: classes/pref/labels.php:275
+#: classes/pref/filters.php:280
+#: classes/pref/filters.php:328
+#: classes/pref/filters.php:646
+#: classes/pref/filters.php:734
+#: classes/pref/filters.php:761
+#: classes/pref/prefs.php:994
+#: classes/pref/feeds.php:1310
+#: classes/pref/feeds.php:1575
+#: classes/pref/feeds.php:1641
+#: plugins/instances/init.php:287
+msgid "All"
+msgstr "Alla"
+
+#: classes/feeds.php:86
+msgid "Invert"
+msgstr "Invertera"
+
+#: classes/feeds.php:87
+#: classes/pref/users.php:343
+#: classes/pref/labels.php:277
+#: classes/pref/filters.php:282
+#: classes/pref/filters.php:330
+#: classes/pref/filters.php:648
+#: classes/pref/filters.php:736
+#: classes/pref/filters.php:763
+#: classes/pref/prefs.php:996
+#: classes/pref/feeds.php:1312
+#: classes/pref/feeds.php:1577
+#: classes/pref/feeds.php:1643
+#: plugins/instances/init.php:289
+msgid "None"
+msgstr "Ingen"
+
+#: classes/feeds.php:93
+msgid "More..."
+msgstr "Mer..."
+
+#: classes/feeds.php:95
+msgid "Selection toggle:"
+msgstr "Invertera val:"
+
+#: classes/feeds.php:101
+msgid "Selection:"
+msgstr "Markering:"
+
+#: classes/feeds.php:104
+msgid "Set score"
+msgstr "Ange poäng"
+
+#: classes/feeds.php:107
+msgid "Archive"
+msgstr "Arkiv"
+
+#: classes/feeds.php:109
+msgid "Move back"
+msgstr "Gå tillbaka"
+
+#: classes/feeds.php:110
+#: classes/pref/filters.php:289
+#: classes/pref/filters.php:337
+#: classes/pref/filters.php:743
+#: classes/pref/filters.php:770
+msgid "Delete"
+msgstr "Radera"
+
+#: classes/feeds.php:115
+#: classes/feeds.php:120
+#: plugins/mailto/init.php:25
+#: plugins/mail/init.php:26
+msgid "Forward by email"
+msgstr "Skicka med e-post"
+
+#: classes/feeds.php:124
+msgid "Feed:"
+msgstr "Flöde:"
+
+#: classes/feeds.php:197
+#: classes/feeds.php:824
+msgid "Feed not found."
+msgstr "Kunde inte hitta flöde."
+
+#: classes/feeds.php:254
+msgid "Never"
+msgstr "Aldrig"
+
+#: classes/feeds.php:360
+#, php-format
+msgid "Imported at %s"
+msgstr "Importerad kl. %s"
+
+#: classes/feeds.php:520
+msgid "mark as read"
+msgstr "markera som läst"
+
+#: classes/feeds.php:570
+msgid "Collapse article"
+msgstr "Minimera artikel"
+
+#: classes/feeds.php:725
+msgid "No unread articles found to display."
+msgstr "Hittade inga olästa artiklar."
+
+#: classes/feeds.php:728
+msgid "No updated articles found to display."
+msgstr "Hittade inga uppdaterade artiklar."
+
+#: classes/feeds.php:731
+msgid "No starred articles found to display."
+msgstr "Hittade inga stjärnmarkerade artiklar."
+
+#: classes/feeds.php:735
+msgid "No articles found to display. You can assign articles to labels manually from article header context menu (applies to all selected articles) or use a filter."
+msgstr "Hittade inga artiklar att visa. Du kan ge artiklar etiketter manuellt via snabbmenyn för artiklar (gäller alla valda artiklar) eller genom att använda filter."
+
+#: classes/feeds.php:737
+msgid "No articles found to display."
+msgstr "Hittade inga artiklar att visa."
+
+#: classes/feeds.php:752
+#: classes/feeds.php:919
+#, php-format
+msgid "Feeds last updated at %s"
+msgstr "Flöden senast uppdaterade %s"
+
+#: classes/feeds.php:762
+#: classes/feeds.php:929
+msgid "Some feeds have update errors (click for details)"
+msgstr "Vissa flöden har uppdateringsfel (klicka för detaljer)"
+
+#: classes/feeds.php:909
+msgid "No feed selected."
+msgstr "Inget flöde valt."
+
+#: classes/feeds.php:962
+#: classes/feeds.php:970
+msgid "Feed or site URL"
+msgstr "URL för flöde eller webbplats"
+
+#: classes/feeds.php:976
+#: classes/pref/feeds.php:579
+#: classes/pref/feeds.php:811
+#: classes/pref/feeds.php:1798
+msgid "Place in category:"
+msgstr "Placera i kategori:"
+
+#: classes/feeds.php:984
+msgid "Available feeds"
+msgstr "Tillgängliga flöden"
+
+#: classes/feeds.php:996
+#: classes/pref/users.php:135
+#: classes/pref/feeds.php:609
+#: classes/pref/feeds.php:847
+msgid "Authentication"
+msgstr "Autentisering"
+
+#: classes/feeds.php:1000
+#: classes/pref/users.php:398
+#: classes/pref/feeds.php:615
+#: classes/pref/feeds.php:851
+#: classes/pref/feeds.php:1812
+msgid "Login"
+msgstr "Användarnamn"
+
+#: classes/feeds.php:1003
+#: classes/pref/prefs.php:260
+#: classes/pref/feeds.php:628
+#: classes/pref/feeds.php:857
+#: classes/pref/feeds.php:1815
+msgid "Password"
+msgstr "Lösenord"
+
+#: classes/feeds.php:1013
+msgid "This feed requires authentication."
+msgstr "Detta flöde kräver autentisering."
+
+#: classes/feeds.php:1018
+#: classes/feeds.php:1074
+#: classes/pref/feeds.php:1833
+msgid "Subscribe"
+msgstr "Prenumerera"
+
+#: classes/feeds.php:1021
+msgid "More feeds"
+msgstr "Fler flöden"
+
+#: classes/feeds.php:1044
+#: classes/feeds.php:1135
+#: classes/pref/users.php:328
+#: classes/pref/filters.php:639
+#: classes/pref/feeds.php:1303
+#: js/tt-rss.js:174
+msgid "Search"
+msgstr "Sök"
+
+#: classes/feeds.php:1048
+msgid "Popular feeds"
+msgstr "Populära flöden"
+
+#: classes/feeds.php:1049
+msgid "Feed archive"
+msgstr "Flödesarkiv"
+
+#: classes/feeds.php:1052
+msgid "limit:"
+msgstr "gräns:"
+
+#: classes/feeds.php:1075
+#: classes/pref/users.php:354
+#: classes/pref/labels.php:284
+#: classes/pref/filters.php:396
+#: classes/pref/filters.php:665
+#: classes/pref/feeds.php:733
+#: plugins/instances/init.php:294
+msgid "Remove"
+msgstr "Ta bort"
+
+#: classes/feeds.php:1086
+msgid "Look for"
+msgstr "Sök efter"
+
+#: classes/feeds.php:1094
+msgid "Limit search to:"
+msgstr "Begränsa sökning till:"
+
+#: classes/feeds.php:1110
+msgid "This feed"
+msgstr "Detta flöde"
+
+#: classes/backend.php:33
+msgid "Other interface tips are available in the Tiny Tiny RSS wiki."
+msgstr "Fler tips finns i wikin."
+
+#: classes/backend.php:38
+msgid "Keyboard Shortcuts"
+msgstr "Kortkommandon"
+
+#: classes/backend.php:61
+msgid "Shift"
+msgstr "Shift"
+
+#: classes/backend.php:64
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: classes/backend.php:99
+msgid "Help topic not found."
+msgstr "Hittade inte något hjälpavsnitt."
+
+#: classes/opml.php:28
+#: classes/opml.php:33
+msgid "OPML Utility"
+msgstr "OPML-verktyg"
+
+#: classes/opml.php:37
+msgid "Importing OPML..."
+msgstr "Importera OPML..."
+
+#: classes/opml.php:41
+msgid "Return to preferences"
+msgstr "Återgå till inställningar"
+
+#: classes/opml.php:270
+#, php-format
+msgid "Adding feed: %s"
+msgstr "Lägger till flöde: %s"
+
+#: classes/opml.php:281
+#, php-format
+msgid "Duplicate feed: %s"
+msgstr "Dublett av flöde: %s"
+
+#: classes/opml.php:295
+#, php-format
+msgid "Adding label %s"
+msgstr "Lägger till etikett %s"
+
+#: classes/opml.php:298
+#, php-format
+msgid "Duplicate label: %s"
+msgstr "Etikettsdubblett: %s"
+
+#: classes/opml.php:310
+#, php-format
+msgid "Setting preference key %s to %s"
+msgstr "Sätter %s till %s"
+
+#: classes/opml.php:339
+msgid "Adding filter..."
+msgstr "Lägger till filter..."
+
+#: classes/opml.php:416
+#, php-format
+msgid "Processing category: %s"
+msgstr "Bearbetar kategori: %s"
+
+#: classes/opml.php:465
+#: plugins/import_export/init.php:420
+#: plugins/googlereaderimport/init.php:66
+#, php-format
+msgid "Upload failed with error code %d"
+msgstr "Uppladdningen misslyckades med felkod %d"
+
+#: classes/opml.php:479
+#: plugins/import_export/init.php:434
+#: plugins/googlereaderimport/init.php:80
+#, fuzzy
+msgid "Unable to move uploaded file."
+msgstr "Fel: kunde inte ladda artikel."
+
+#: classes/opml.php:483
+#: plugins/import_export/init.php:438
+#: plugins/googlereaderimport/init.php:84
+msgid "Error: please upload OPML file."
+msgstr "Fel: vänligen ladda upp en OPMLfil."
+
+#: classes/opml.php:492
+#, fuzzy
+msgid "Error: unable to find moved OPML file."
+msgstr "Fel: kunde inte ladda artikel."
+
+#: classes/opml.php:499
+#: plugins/googlereaderimport/init.php:186
+msgid "Error while parsing document."
+msgstr "Fel vid tolkning av dokument."
+
+#: classes/pref/users.php:6
+#: classes/pref/system.php:8
+#: plugins/instances/init.php:154
+msgid "Your access level is insufficient to open this tab."
+msgstr "Du saknar behörighet för att öppna denna flik"
+
+#: classes/pref/users.php:34
+msgid "User not found"
+msgstr "Hittade inte användaren"
+
+#: classes/pref/users.php:53
+#: classes/pref/users.php:400
+msgid "Registered"
+msgstr "Registrerad"
+
+#: classes/pref/users.php:54
+msgid "Last logged in"
+msgstr "Senast inloggad"
+
+#: classes/pref/users.php:61
+msgid "Subscribed feeds count"
+msgstr "Antal flödesprenumerationer"
+
+#: classes/pref/users.php:65
+msgid "Subscribed feeds"
+msgstr "Prenumererade flöden"
+
+#: classes/pref/users.php:138
+msgid "Access level: "
+msgstr "Behörighetsnivå: "
+
+#: classes/pref/users.php:151
+msgid "Change password to"
+msgstr "Nytt lösenord"
+
+#: classes/pref/users.php:157
+#: classes/pref/feeds.php:636
+#: classes/pref/feeds.php:863
+msgid "Options"
+msgstr "Alternativ"
+
+#: classes/pref/users.php:160
+msgid "E-mail: "
+msgstr "E-post: "
+
+#: classes/pref/users.php:236
+#, php-format
+msgid "Added user <b>%s</b> with password <b>%s</b>"
+msgstr "Lade till användare <b>%s</b> med lösenord <b>%s</b>"
+
+#: classes/pref/users.php:243
+#, php-format
+msgid "Could not create user <b>%s</b>"
+msgstr "Kunde inte skapa användare <b>%s</b>"
+
+#: classes/pref/users.php:247
+#, php-format
+msgid "User <b>%s</b> already exists."
+msgstr "Användaren <b>%s</b> finns redan."
+
+#: classes/pref/users.php:269
+#, php-format
+msgid "Changed password of user <b>%s</b> to <b>%s</b>"
+msgstr "Lösenord för användare <b>%s</b> ändrat till <b>%s</b>"
+
+#: classes/pref/users.php:271
+#, php-format
+msgid "Sending new password of user <b>%s</b> to <b>%s</b>"
+msgstr "Nytt lösenord för användare <b>%s</b> skickat till <b>%s</b>"
+
+#: classes/pref/users.php:295
+msgid "[tt-rss] Password change notification"
+msgstr "[tt-rss] Notifikation för ändring av lösenord"
+
+#: classes/pref/users.php:338
+#: classes/pref/labels.php:272
+#: classes/pref/filters.php:277
+#: classes/pref/filters.php:325
+#: classes/pref/filters.php:643
+#: classes/pref/filters.php:731
+#: classes/pref/filters.php:758
+#: classes/pref/prefs.php:991
+#: classes/pref/feeds.php:1307
+#: classes/pref/feeds.php:1572
+#: classes/pref/feeds.php:1638
+#: plugins/instances/init.php:284
+msgid "Select"
+msgstr "Markera"
+
+#: classes/pref/users.php:346
+msgid "Create user"
+msgstr "Skapa användare"
+
+#: classes/pref/users.php:350
+msgid "Details"
+msgstr "Detaljer"
+
+#: classes/pref/users.php:352
+#: classes/pref/filters.php:658
+#: plugins/instances/init.php:293
+msgid "Edit"
+msgstr "Redigera"
+
+#: classes/pref/users.php:399
+msgid "Access Level"
+msgstr "Behörighetsnivå"
+
+#: classes/pref/users.php:401
+msgid "Last login"
+msgstr "Senaste inloggning"
+
+#: classes/pref/users.php:420
+#: plugins/instances/init.php:334
+msgid "Click to edit"
+msgstr "Klicka för att redigera"
+
+#: classes/pref/users.php:440
+msgid "No users defined."
+msgstr "Inga användare definierade."
+
+#: classes/pref/users.php:442
+msgid "No matching users found."
+msgstr "Hittade inga matchande användare."
+
+#: classes/pref/labels.php:22
+#: classes/pref/filters.php:266
+#: classes/pref/filters.php:722
+msgid "Caption"
+msgstr "Titel"
+
+#: classes/pref/labels.php:37
+msgid "Colors"
+msgstr "Färger"
+
+#: classes/pref/labels.php:42
+msgid "Foreground:"
+msgstr "Förgrund:"
+
+#: classes/pref/labels.php:42
+msgid "Background:"
+msgstr "Bakgrund:"
+
+#: classes/pref/labels.php:232
+#, php-format
+msgid "Created label <b>%s</b>"
+msgstr "Skapade etikett <b>%s</b>"
+
+#: classes/pref/labels.php:287
+msgid "Clear colors"
+msgstr "Rensa färger"
+
+#: classes/pref/filters.php:94
+msgid "Articles matching this filter:"
+msgstr "Artiklar som matchar detta filter: "
+
+#: classes/pref/filters.php:131
+msgid "No recent articles matching this filter have been found."
+msgstr "Inga nya artiklar som matchar detta filter funna."
+
+#: classes/pref/filters.php:135
+msgid "Complex expressions might not give results while testing due to issues with database server regexp implementation."
+msgstr "Komplexa uttryck kanske inte ger några testresultat på grund av problem med databasens regexpimplementation"
+
+#: classes/pref/filters.php:272
+#: classes/pref/filters.php:726
+#: classes/pref/filters.php:841
+msgid "Match"
+msgstr "Matcha"
+
+#: classes/pref/filters.php:286
+#: classes/pref/filters.php:334
+#: classes/pref/filters.php:740
+#: classes/pref/filters.php:767
+msgid "Add"
+msgstr "Lägg till"
+
+#: classes/pref/filters.php:320
+#: classes/pref/filters.php:753
+msgid "Apply actions"
+msgstr "Tillämpa åtgärder"
+
+#: classes/pref/filters.php:370
+#: classes/pref/filters.php:782
+msgid "Enabled"
+msgstr "Aktiverat"
+
+#: classes/pref/filters.php:379
+#: classes/pref/filters.php:785
+msgid "Match any rule"
+msgstr "Matcha alla regler"
+
+#: classes/pref/filters.php:388
+#: classes/pref/filters.php:788
+msgid "Inverse matching"
+msgstr "Invertera matchning"
+
+#: classes/pref/filters.php:400
+#: classes/pref/filters.php:795
+msgid "Test"
+msgstr "Test"
+
+#: classes/pref/filters.php:433
+msgid "(inverse)"
+msgstr "(invertera)"
+
+#: classes/pref/filters.php:432
+#, php-format
+msgid "%s on %s in %s %s"
+msgstr "%s på %s i %s %s"
+
+#: classes/pref/filters.php:655
+msgid "Combine"
+msgstr "Kombinera"
+
+#: classes/pref/filters.php:661
+#: classes/pref/feeds.php:1323
+#: classes/pref/feeds.php:1337
+msgid "Reset sort order"
+msgstr "Återställ sorteringsordning"
+
+#: classes/pref/filters.php:669
+#: classes/pref/feeds.php:1359
+msgid "Rescore articles"
+msgstr "Poängsätt på nytt"
+
+#: classes/pref/filters.php:798
+msgid "Create"
+msgstr "Skapa"
+
+#: classes/pref/filters.php:853
+msgid "Inverse regular expression matching"
+msgstr "Invertera matchning av regulära uttryck"
+
+#: classes/pref/filters.php:855
+msgid "on field"
+msgstr "i fält"
+
+#: classes/pref/filters.php:861
+#: js/PrefFilterTree.js:45
+msgid "in"
+msgstr "i"
+
+#: classes/pref/filters.php:874
+msgid "Save rule"
+msgstr "Spara regel"
+
+#: classes/pref/filters.php:874
+#: js/functions.js:1013
+msgid "Add rule"
+msgstr "Tillämpa regel"
+
+#: classes/pref/filters.php:897
+msgid "Perform Action"
+msgstr "Utför aktivitet"
+
+#: classes/pref/filters.php:923
+msgid "with parameters:"
+msgstr "med parametrar:"
+
+#: classes/pref/filters.php:941
+msgid "Save action"
+msgstr "Spara aktivitet"
+
+#: classes/pref/filters.php:941
+#: js/functions.js:1039
+msgid "Add action"
+msgstr "Lägg till aktivitet"
+
+#: classes/pref/filters.php:964
+msgid "[No caption]"
+msgstr "[Inge titel]"
+
+#: classes/pref/prefs.php:18
+msgid "General"
+msgstr "Generellt"
+
+#: classes/pref/prefs.php:19
+msgid "Interface"
+msgstr "Visning"
+
+#: classes/pref/prefs.php:20
+msgid "Advanced"
+msgstr "Avancerat"
+
+#: classes/pref/prefs.php:21
+msgid "Digest"
+msgstr "Sammanställning"
+
+#: classes/pref/prefs.php:25
+msgid "Allow duplicate articles"
+msgstr "Tillåt dubbletter av artiklar"
+
+#: classes/pref/prefs.php:26
+msgid "Assign articles to labels automatically"
+msgstr "Ange etiketter för artiklar automatiskt"
+
+#: classes/pref/prefs.php:27
+msgid "Blacklisted tags"
+msgstr "Svartlistade taggar"
+
+#: classes/pref/prefs.php:27
+msgid "When auto-detecting tags in articles these tags will not be applied (comma-separated list)."
+msgstr "Använd inte följande taggar för automatisk taggning av artiklar (komma-separerad lista)."
+
+#: classes/pref/prefs.php:28
+msgid "Automatically mark articles as read"
+msgstr "Märk artiklar som lästa automatiskt"
+
+#: classes/pref/prefs.php:28
+msgid "This option enables marking articles as read automatically while you scroll article list."
+msgstr "Markera artiklar som lästa automatisk när du skrollar artikellistan"
+
+#: classes/pref/prefs.php:29
+msgid "Automatically expand articles in combined mode"
+msgstr "Expandera artiklar automatiskt i kombinerat läge"
+
+#: classes/pref/prefs.php:30
+msgid "Combined feed display"
+msgstr "Kombinerad flödesvisning"
+
+#: classes/pref/prefs.php:30
+msgid "Display expanded list of feed articles, instead of separate displays for headlines and article content"
+msgstr "Visa expanderad lista med artiklar, istället för olika visningar för rubriker och artikeltext"
+
+#: classes/pref/prefs.php:31
+msgid "Confirm marking feed as read"
+msgstr "Bekräfta markera flöde som läst"
+
+#: classes/pref/prefs.php:32
+msgid "Amount of articles to display at once"
+msgstr "Antal artiklar att visa samtidigt"
+
+#: classes/pref/prefs.php:33
+#, fuzzy
+msgid "Default feed update interval"
+msgstr "Standardintervall"
+
+#: classes/pref/prefs.php:33
+msgid "Shortest interval at which a feed will be checked for updates regardless of update method"
+msgstr ""
+
+#: classes/pref/prefs.php:34
+msgid "Mark articles in e-mail digest as read"
+msgstr "Flagga artiklar i e-postsammanfattning som lästa"
+
+#: classes/pref/prefs.php:35
+msgid "Enable e-mail digest"
+msgstr "Aktivera e-postsammanfattning"
+
+#: classes/pref/prefs.php:35
+msgid "This option enables sending daily digest of new (and unread) headlines on your configured e-mail address"
+msgstr "Skicka dagliga sammanställningar över nya (och olästa) rubriker till din e-post"
+
+#: classes/pref/prefs.php:36
+msgid "Try to send digests around specified time"
+msgstr "Skicka sammanfattningar runt specificerad tid"
+
+#: classes/pref/prefs.php:36
+msgid "Uses UTC timezone"
+msgstr "Använder tidszonen UTC"
+
+#: classes/pref/prefs.php:37
+msgid "Enable API access"
+msgstr "Aktivera tillgång till API"
+
+#: classes/pref/prefs.php:37
+msgid "Allows external clients to access this account through the API"
+msgstr "Tillåter externa klienter att få tillgång till detta konto via API"
+
+#: classes/pref/prefs.php:38
+msgid "Enable feed categories"
+msgstr "Aktivera kategorier"
+
+#: classes/pref/prefs.php:39
+msgid "Sort feeds by unread articles count"
+msgstr "Sortera flöde efter antal olästa artiklar"
+
+#: classes/pref/prefs.php:40
+msgid "Maximum age of fresh articles (in hours)"
+msgstr "Maximal ålder för nya artiklar (i timmar)"
+
+#: classes/pref/prefs.php:41
+msgid "Hide feeds with no unread articles"
+msgstr "Dölj flöden utan olästa artiklar"
+
+#: classes/pref/prefs.php:42
+msgid "Show special feeds when hiding read feeds"
+msgstr "Visa specialflöden när lästa feeds är dolda"
+
+#: classes/pref/prefs.php:43
+msgid "Long date format"
+msgstr "Långa datum"
+
+#: classes/pref/prefs.php:44
+msgid "On catchup show next feed"
+msgstr "Visa nästa flöde när vi är ikapp"
+
+#: classes/pref/prefs.php:44
+msgid "Automatically open next feed with unread articles after marking one as read"
+msgstr "Öppna automatiskt nästa flöde som har olästa artiklar efter att du markerat ett som läst"
+
+#: classes/pref/prefs.php:45
+msgid "Purge articles after this number of days (0 - disables)"
+msgstr "Rensa artikel efter X antal dagar (0 - inaktiverar)"
+
+#: classes/pref/prefs.php:46
+msgid "Purge unread articles"
+msgstr "Rensa olästa artiklar"
+
+#: classes/pref/prefs.php:47
+msgid "Reverse headline order (oldest first)"
+msgstr "Omvänd sortering (äldsta överst)"
+
+#: classes/pref/prefs.php:48
+msgid "Short date format"
+msgstr "Korta datum"
+
+#: classes/pref/prefs.php:49
+msgid "Show content preview in headlines list"
+msgstr "Förhandsgranska text i rubriklistan"
+
+#: classes/pref/prefs.php:50
+msgid "Sort headlines by feed date"
+msgstr "Sortera rubriker efter flödets datum"
+
+#: classes/pref/prefs.php:50
+msgid "Use feed-specified date to sort headlines instead of local import date."
+msgstr "Sortera efter flödesdatum istället för efter importdatum"
+
+#: classes/pref/prefs.php:51
+msgid "Login with an SSL certificate"
+msgstr "Logga in med SSL-certifikat"
+
+#: classes/pref/prefs.php:51
+msgid "Click to register your SSL client certificate with tt-rss"
+msgstr "Registerar ditt SSL-klientcertifikat i tt-rss"
+
+#: classes/pref/prefs.php:52
+msgid "Do not embed images in articles"
+msgstr "Bädda inte in bilder i artiklar"
+
+#: classes/pref/prefs.php:53
+msgid "Strip unsafe tags from articles"
+msgstr "Ta bort osäkra taggar från artiklar"
+
+#: classes/pref/prefs.php:53
+msgid "Strip all but most common HTML tags when reading articles."
+msgstr "Ta bort alla utom de vanligast HTML-taggarna från artiklarna."
+
+#: classes/pref/prefs.php:54
+#: js/prefs.js:1719
+msgid "Customize stylesheet"
+msgstr "Anpassa stilmall"
+
+#: classes/pref/prefs.php:54
+msgid "Customize CSS stylesheet to your liking"
+msgstr "Anpassa CSS-stilmall efter eget tycke"
+
+#: classes/pref/prefs.php:55
+msgid "Time zone"
+msgstr "Tidszon"
+
+#: classes/pref/prefs.php:56
+msgid "Group headlines in virtual feeds"
+msgstr "Gruppera rubriker i virtuella flöden"
+
+#: classes/pref/prefs.php:56
+msgid "Special feeds, labels, and categories are grouped by originating feeds"
+msgstr "Speciella flöden, etiketter och kategorier är grupperade efter ursprungsflöden"
+
+#: classes/pref/prefs.php:57
+#, fuzzy
+msgid "Language"
+msgstr "Språk:"
+
+#: classes/pref/prefs.php:58
+msgid "Theme"
+msgstr "Tema"
+
+#: classes/pref/prefs.php:58
+msgid "Select one of the available CSS themes"
+msgstr "Välj ett av dom tillgängliga CSS-temana"
+
+#: classes/pref/prefs.php:69
+msgid "Old password cannot be blank."
+msgstr "Föregående lösenord kan inte vara tomt."
+
+#: classes/pref/prefs.php:74
+msgid "New password cannot be blank."
+msgstr "Nytt lösenord får inte vara tomt."
+
+#: classes/pref/prefs.php:79
+msgid "Entered passwords do not match."
+msgstr "Lösenorden stämmer inte överens."
+
+#: classes/pref/prefs.php:88
+msgid "Function not supported by authentication module."
+msgstr "Funktionen stöds inte av autenticeringsmodulen."
+
+#: classes/pref/prefs.php:127
+msgid "The configuration was saved."
+msgstr "Konfiguration sparad."
+
+#: classes/pref/prefs.php:142
+#, php-format
+msgid "Unknown option: %s"
+msgstr "Okänt alternativ: %s"
+
+#: classes/pref/prefs.php:156
+msgid "Your personal data has been saved."
+msgstr "Dina personliga data sparas."
+
+#: classes/pref/prefs.php:176
+msgid "Your preferences are now set to default values."
+msgstr "Dina inställningar är nu satta till standardvärdena."
+
+#: classes/pref/prefs.php:198
+msgid "Personal data / Authentication"
+msgstr "Personlig information / Autentisering"
+
+#: classes/pref/prefs.php:218
+msgid "Personal data"
+msgstr "Personlig information"
+
+#: classes/pref/prefs.php:228
+msgid "Full name"
+msgstr "Fullständigt namn"
+
+#: classes/pref/prefs.php:232
+msgid "E-mail"
+msgstr "E-post"
+
+#: classes/pref/prefs.php:238
+msgid "Access level"
+msgstr "Behörighetsnivå"
+
+#: classes/pref/prefs.php:248
+msgid "Save data"
+msgstr "Spara"
+
+#: classes/pref/prefs.php:267
+msgid "Your password is at default value, please change it."
+msgstr "Byt lösenord."
+
+#: classes/pref/prefs.php:294
+msgid "Changing your current password will disable OTP."
+msgstr "Att ändra nuvarande lösenord kommer att inaktivera OTP."
+
+#: classes/pref/prefs.php:299
+msgid "Old password"
+msgstr "Gammalt lösenord"
+
+#: classes/pref/prefs.php:302
+msgid "New password"
+msgstr "Nytt lösenord"
+
+#: classes/pref/prefs.php:307
+msgid "Confirm password"
+msgstr "Bekräfta lösenord"
+
+#: classes/pref/prefs.php:317
+msgid "Change password"
+msgstr "Byt lösenord"
+
+#: classes/pref/prefs.php:323
+msgid "One time passwords / Authenticator"
+msgstr "(OTP) / Autentifikator"
+
+#: classes/pref/prefs.php:327
+msgid "One time passwords are currently enabled. Enter your current password below to disable."
+msgstr "Engångslösenord är för närvarande aktiverade. Ange ditt nuvarande lösenord nedan för att inaktivera."
+
+#: classes/pref/prefs.php:352
+#: classes/pref/prefs.php:403
+msgid "Enter your password"
+msgstr "Ange lösenord"
+
+#: classes/pref/prefs.php:363
+msgid "Disable OTP"
+msgstr "Stäng av OTP"
+
+#: classes/pref/prefs.php:369
+msgid "You will need a compatible Authenticator to use this. Changing your password would automatically disable OTP."
+msgstr "Du behöver en kompatibel autentifikator för att använda detta. Att byta lösenord inaktiverar automatiskt OTP."
+
+#: classes/pref/prefs.php:371
+msgid "Scan the following code by the Authenticator application:"
+msgstr "Läs in följande QR-kod med autentifikator-applikationen:"
+
+#: classes/pref/prefs.php:408
+#, fuzzy
+msgid "Enter the generated one time password"
+msgstr "Ange ditt engångslösenord:"
+
+#: classes/pref/prefs.php:422
+msgid "Enable OTP"
+msgstr "Aktivera OTP"
+
+#: classes/pref/prefs.php:428
+msgid "PHP GD functions are required for OTP support."
+msgstr ""
+
+#: classes/pref/prefs.php:471
+msgid "Some preferences are only available in default profile."
+msgstr "Vissa inställningar är endast tillgängliga i standardprofilen."
+
+#: classes/pref/prefs.php:569
+msgid "Customize"
+msgstr "Anpassa"
+
+#: classes/pref/prefs.php:629
+msgid "Register"
+msgstr "Registrera"
+
+#: classes/pref/prefs.php:633
+msgid "Clear"
+msgstr "Rensa"
+
+#: classes/pref/prefs.php:639
+#, php-format
+msgid "Current server time: %s (UTC)"
+msgstr "Aktuell servertid: %s (UTC)"
+
+#: classes/pref/prefs.php:671
+msgid "Save configuration"
+msgstr "Spara konfiguration"
+
+#: classes/pref/prefs.php:675
+#, fuzzy
+msgid "Save and exit preferences"
+msgstr "Lämna inställningarna"
+
+#: classes/pref/prefs.php:680
+msgid "Manage profiles"
+msgstr "Hantera profiler"
+
+#: classes/pref/prefs.php:683
+msgid "Reset to defaults"
+msgstr "Återställ till standard"
+
+#: classes/pref/prefs.php:706
+msgid "Plugins"
+msgstr "Tillägg"
+
+#: classes/pref/prefs.php:708
+msgid "You will need to reload Tiny Tiny RSS for plugin changes to take effect."
+msgstr "Du kommer behöva ladda om Tiny Tiny RSS för att ändringarna för tillägg ska träda i kraft."
+
+#: classes/pref/prefs.php:710
+msgid "Download more plugins at tt-rss.org <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/forum/viewforum.php?f=22\">forums</a> or <a target=\"_blank\" class=\"visibleLink\" href=\"http://tt-rss.org/wiki/Plugins\">wiki</a>."
+msgstr "Ladda ner fler tillägg via tt-rss.org <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/forum/viewforum.php?f=22\">forum</a> eller <a target=\"_blank\" class=\"visibleLink\" href=\"http://tt-rss.org/wiki/Plugins\">wiki</a>."
+
+#: classes/pref/prefs.php:736
+msgid "System plugins"
+msgstr "Systemtillägg"
+
+#: classes/pref/prefs.php:740
+#: classes/pref/prefs.php:794
+msgid "Plugin"
+msgstr "Tillägg"
+
+#: classes/pref/prefs.php:741
+#: classes/pref/prefs.php:795
+msgid "Description"
+msgstr "Beskrivning"
+
+#: classes/pref/prefs.php:742
+#: classes/pref/prefs.php:796
+msgid "Version"
+msgstr "Version"
+
+#: classes/pref/prefs.php:743
+#: classes/pref/prefs.php:797
+msgid "Author"
+msgstr "Skapare"
+
+#: classes/pref/prefs.php:772
+#: classes/pref/prefs.php:829
+msgid "more info"
+msgstr "mer info"
+
+#: classes/pref/prefs.php:781
+#: classes/pref/prefs.php:838
+msgid "Clear data"
+msgstr "Rensa data"
+
+#: classes/pref/prefs.php:790
+msgid "User plugins"
+msgstr "Användartillägg"
+
+#: classes/pref/prefs.php:853
+msgid "Enable selected plugins"
+msgstr "Aktivera valda tillägg"
+
+#: classes/pref/prefs.php:920
+#, fuzzy
+msgid "Incorrect one time password"
+msgstr "Felaktigt lösenord"
+
+#: classes/pref/prefs.php:923
+#: classes/pref/prefs.php:940
+msgid "Incorrect password"
+msgstr "Felaktigt lösenord"
+
+#: classes/pref/prefs.php:965
+#, php-format
+msgid "You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">This file</a> can be used as a baseline."
+msgstr "Du kan åsidosätta färger, typsnitt och layout för ditt för närvarande valda tema med anpassade CSS-regler här. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">Denna fil</a> kan användas som grund."
+
+#: classes/pref/prefs.php:1005
+msgid "Create profile"
+msgstr "Skapa profil"
+
+#: classes/pref/prefs.php:1028
+#: classes/pref/prefs.php:1056
+msgid "(active)"
+msgstr "(aktiva)"
+
+#: classes/pref/prefs.php:1090
+msgid "Remove selected profiles"
+msgstr "Radera markerade profiler"
+
+#: classes/pref/prefs.php:1092
+msgid "Activate profile"
+msgstr "Aktivera profil"
+
+#: classes/pref/feeds.php:13
+msgid "Check to enable field"
+msgstr "Markera för att aktivera"
+
+#: classes/pref/feeds.php:546
+msgid "Feed Title"
+msgstr "Flödestitel"
+
+#: classes/pref/feeds.php:587
+#: classes/pref/feeds.php:822
+msgid "Update"
+msgstr "Uppdatera"
+
+#: classes/pref/feeds.php:602
+#: classes/pref/feeds.php:838
+msgid "Article purging:"
+msgstr "Artikelrensning:"
+
+#: classes/pref/feeds.php:632
+msgid "<b>Hint:</b> you need to fill in your login information if your feed requires authentication, except for Twitter feeds."
+msgstr "<b>Tips:</b> du måste ange din inloggningsuppgifter om ditt flöde kräver autentisering, dock ej för Twitter-flöden."
+
+#: classes/pref/feeds.php:648
+#: classes/pref/feeds.php:867
+msgid "Hide from Popular feeds"
+msgstr "Dölj från populära flöden"
+
+#: classes/pref/feeds.php:660
+#: classes/pref/feeds.php:873
+msgid "Include in e-mail digest"
+msgstr "Inkludera i e-postsammanfattning"
+
+#: classes/pref/feeds.php:673
+#: classes/pref/feeds.php:879
+msgid "Always display image attachments"
+msgstr "Visa alltid bilder"
+
+#: classes/pref/feeds.php:686
+#: classes/pref/feeds.php:887
+msgid "Do not embed images"
+msgstr "Bädda inte in bilder"
+
+#: classes/pref/feeds.php:699
+#: classes/pref/feeds.php:895
+msgid "Cache images locally"
+msgstr "Cacha bilder lokalt"
+
+#: classes/pref/feeds.php:711
+#: classes/pref/feeds.php:901
+msgid "Mark updated articles as unread"
+msgstr "Makera uppdaterade artiklar som olästa"
+
+#: classes/pref/feeds.php:717
+msgid "Icon"
+msgstr "Ikon"
+
+#: classes/pref/feeds.php:731
+msgid "Replace"
+msgstr "Ersätt"
+
+#: classes/pref/feeds.php:753
+msgid "Resubscribe to push updates"
+msgstr "Återprenumerera på push-uppdateringar:"
+
+#: classes/pref/feeds.php:760
+msgid "Resets PubSubHubbub subscription status for push-enabled feeds."
+msgstr "Återställ PubSubHubbub-prenumerationer för push-uppdaterade feeds."
+
+#: classes/pref/feeds.php:1156
+#: classes/pref/feeds.php:1209
+msgid "All done."
+msgstr "Klart."
+
+#: classes/pref/feeds.php:1264
+msgid "Feeds with errors"
+msgstr "Flöden med fel"
+
+#: classes/pref/feeds.php:1284
+msgid "Inactive feeds"
+msgstr "Inaktiva flöden"
+
+#: classes/pref/feeds.php:1321
+msgid "Edit selected feeds"
+msgstr "Redigera valda flöden"
+
+#: classes/pref/feeds.php:1325
+#: js/prefs.js:1764
+msgid "Batch subscribe"
+msgstr "Massprenumerera"
+
+#: classes/pref/feeds.php:1332
+msgid "Categories"
+msgstr "Kategorier"
+
+#: classes/pref/feeds.php:1335
+msgid "Add category"
+msgstr "Lägg till kategori"
+
+#: classes/pref/feeds.php:1339
+msgid "Remove selected"
+msgstr "Ta bort markerade"
+
+#: classes/pref/feeds.php:1350
+msgid "More actions..."
+msgstr "Fler åtgärder..."
+
+#: classes/pref/feeds.php:1354
+msgid "Manual purge"
+msgstr "Manuell rensning"
+
+#: classes/pref/feeds.php:1358
+msgid "Clear feed data"
+msgstr "Rensa flödesdata"
+
+#: classes/pref/feeds.php:1409
+msgid "OPML"
+msgstr "OPML"
+
+#: classes/pref/feeds.php:1411
+msgid "Using OPML you can export and import your feeds, filters, labels and Tiny Tiny RSS settings."
+msgstr "Med OPML kan du importera och exportera dina flöden, filter, etiketter och Tin Tiny RSS-inställningar"
+
+#: classes/pref/feeds.php:1411
+msgid "Only main settings profile can be migrated using OPML."
+msgstr "Endast huvudprofilens inställningar kan migreras med OPML."
+
+#: classes/pref/feeds.php:1424
+msgid "Import my OPML"
+msgstr "Importera OPML"
+
+#: classes/pref/feeds.php:1428
+msgid "Filename:"
+msgstr "Filnamn:"
+
+#: classes/pref/feeds.php:1430
+msgid "Include settings"
+msgstr "Inkludera inställningar"
+
+#: classes/pref/feeds.php:1434
+msgid "Export OPML"
+msgstr "Exportera OPML"
+
+#: classes/pref/feeds.php:1438
+msgid "Your OPML can be published publicly and can be subscribed by anyone who knows the URL below."
+msgstr "Din OPML-fil kan publiceras publikt och den kan bli prenumererad på av alla som känner till URLen nedan"
+
+#: classes/pref/feeds.php:1440
+msgid "Published OPML does not include your Tiny Tiny RSS settings, feeds that require authentication or feeds hidden from Popular feeds."
+msgstr "Publicerad OPML inkluderar inte dina Tiny Tiny RSS-inställningar, flöden som kräver autentisering eller flöden som är dolda under populära flöden."
+
+#: classes/pref/feeds.php:1442
+msgid "Public OPML URL"
+msgstr "Publik OPML-URL"
+
+#: classes/pref/feeds.php:1443
+msgid "Display published OPML URL"
+msgstr "Visa publicerad OPML-URL"
+
+#: classes/pref/feeds.php:1452
+msgid "Firefox integration"
+msgstr "Firefox-integration"
+
+#: classes/pref/feeds.php:1454
+msgid "This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the link below."
+msgstr "Denna Tiny Tiny RSS-webbplats kan användas som en flödesläsare för Firefox genom att klicka på länken nedan."
+
+#: classes/pref/feeds.php:1461
+msgid "Click here to register this site as a feed reader."
+msgstr "Klicka här för att registrera denna webbplats som en flödesläsare."
+
+#: classes/pref/feeds.php:1469
+msgid "Published & shared articles / Generated feeds"
+msgstr "Publicerade och delade artiklar / Genererade flöden"
+
+#: classes/pref/feeds.php:1471
+msgid "Published articles are exported as a public RSS feed and can be subscribed by anyone who knows the URL specified below."
+msgstr "Publicerade artiklar exporteras som ett publikt RSS-flöde och kan prenumeras på av alla som har URLen nedan."
+
+#: classes/pref/feeds.php:1479
+msgid "Display URL"
+msgstr "Visa URL"
+
+#: classes/pref/feeds.php:1482
+msgid "Clear all generated URLs"
+msgstr "Rensa alla genererade URLer"
+
+#: classes/pref/feeds.php:1486
+msgid "You can disable all articles shared by unique URLs here."
+msgstr "Du kan inaktivera alla artiklar som delas ut med unik URL här."
+
+#: classes/pref/feeds.php:1491
+msgid "Unshare all articles"
+msgstr "Ta bort delning av alla artiklar"
+
+#: classes/pref/feeds.php:1568
+msgid "These feeds have not been updated with new content for 3 months (oldest first):"
+msgstr "Följande flöden har inte uppdaterats med nytt innehåll på 3 månader (äldst först): "
+
+#: classes/pref/feeds.php:1604
+#: classes/pref/feeds.php:1670
+msgid "Click to edit feed"
+msgstr "Klicka för att redigera flöde"
+
+#: classes/pref/feeds.php:1622
+#: classes/pref/feeds.php:1690
+msgid "Unsubscribe from selected feeds"
+msgstr "Ta bort prenumeration för valda flöden"
+
+#: classes/pref/feeds.php:1795
+msgid "Add one valid RSS feed per line (no feed detection is done)"
+msgstr "Lägg till ett giltigt RSS-flöde per rad (ingen flödesupptäckt görs)"
+
+#: classes/pref/feeds.php:1804
+msgid "Feeds to subscribe, One per line"
+msgstr "Flöden att prenumerera på, ett per rad"
+
+#: classes/pref/feeds.php:1826
+msgid "Feeds require authentication."
+msgstr "Flödet kräver inloggning."
+
+#: classes/pref/system.php:29
+msgid "Error Log"
+msgstr "Fellogg"
+
+#: classes/pref/system.php:40
+msgid "Refresh"
+msgstr "Uppdatera"
+
+#: classes/pref/system.php:43
+#, fuzzy
+msgid "Clear log"
+msgstr "Rensa färger"
+
+#: classes/pref/system.php:48
+msgid "Error"
+msgstr "Fel"
+
+#: classes/pref/system.php:49
+msgid "Filename"
+msgstr "Filnamn"
+
+#: classes/pref/system.php:50
+msgid "Message"
+msgstr "Meddelande"
+
+#: classes/pref/system.php:52
+msgid "Date"
+msgstr "Datum"
+
+#: plugins/close_button/init.php:22
+msgid "Close article"
+msgstr "Stäng artikel"
+
+#: plugins/nsfw/init.php:29
+#: plugins/nsfw/init.php:40
+msgid "Not work safe (click to toggle)"
+msgstr "NSFW (klicka för att växla)"
+
+#: plugins/nsfw/init.php:50
+msgid "NSFW Plugin"
+msgstr "NSFW Plugin"
+
+#: plugins/nsfw/init.php:77
+msgid "Tags to consider NSFW (comma-separated)"
+msgstr "Lista NSFW-taggar (kommaseparerade)"
+
+#: plugins/nsfw/init.php:98
+msgid "Configuration saved."
+msgstr "Inställningar sparade."
+
+#: plugins/auth_internal/init.php:62
+msgid "Please enter your one time password:"
+msgstr "Ange ditt engångslösenord:"
+
+#: plugins/auth_internal/init.php:185
+msgid "Password has been changed."
+msgstr "Lösenord uppdaterat."
+
+#: plugins/auth_internal/init.php:187
+msgid "Old password is incorrect."
+msgstr "Felaktigt gammalt lösenord."
+
+#: plugins/mailto/init.php:49
+#: plugins/mailto/init.php:55
+#: plugins/mail/init.php:64
+#: plugins/mail/init.php:70
+msgid "[Forwarded]"
+msgstr "[Vidarebefordrat]"
+
+#: plugins/mailto/init.php:49
+#: plugins/mail/init.php:64
+msgid "Multiple articles"
+msgstr "Flera artiklar"
+
+#: plugins/mailto/init.php:71
+msgid "Clicking the following link to invoke your mail client:"
+msgstr "Klicka på följande länk för att skicka till ditt e-postprogram:"
+
+#: plugins/mailto/init.php:75
+msgid "Forward selected article(s) by email."
+msgstr "Vidarebefordra markerade artiklar med e-post"
+
+#: plugins/mailto/init.php:78
+msgid "You should be able to edit the message before sending in your mail client."
+msgstr "Du bör kunna redigera ditt meddelande innan det skickas"
+
+#: plugins/mailto/init.php:83
+msgid "Close this dialog"
+msgstr "Stäng denna dialogruta"
+
+#: plugins/bookmarklets/init.php:20
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: plugins/bookmarklets/init.php:22
+msgid "Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it."
+msgstr "Dra länken nedan till din webbläsares verktygsrad, öppna det flöde du är intresserad av i webbläsaren och klicka på länken för att prenumerara på det."
+
+#: plugins/bookmarklets/init.php:26
+#, php-format
+msgid "Subscribe to %s in Tiny Tiny RSS?"
+msgstr "Prenumerera på %s i Tiny Tiny RSS?"
+
+#: plugins/bookmarklets/init.php:31
+msgid "Subscribe in Tiny Tiny RSS"
+msgstr "Prenumerera i Tiny Tiny RSS"
+
+#: plugins/bookmarklets/init.php:34
+msgid "Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS"
+msgstr "Använd denna bookmarklet för att publicera webbsidor genom Tiny Tiny RSS"
+
+#: plugins/import_export/init.php:58
+msgid "Import and export"
+msgstr "Importera och exportera"
+
+#: plugins/import_export/init.php:60
+#, fuzzy
+msgid "You can export and import your Starred and Archived articles for safekeeping or when migrating between tt-rss instances of same version."
+msgstr "Du kan importera och exportera dina stjärnmärkta och arkiverad artiklar så att du har en backup eller för att flytta mellan tt-rss instanser."
+
+#: plugins/import_export/init.php:65
+msgid "Export my data"
+msgstr "Exportera min data"
+
+#: plugins/import_export/init.php:81
+msgid "Import"
+msgstr "Importera"
+
+#: plugins/import_export/init.php:219
+msgid "Could not import: incorrect schema version."
+msgstr "Kunde inte importera: inkorrekt version av databasschema"
+
+#: plugins/import_export/init.php:224
+msgid "Could not import: unrecognized document format."
+msgstr "Kunde inte importera: okänt filformat"
+
+#: plugins/import_export/init.php:383
+msgid "Finished: "
+msgstr "Klart:"
+
+#: plugins/import_export/init.php:384
+#, php-format
+msgid "%d article processed, "
+msgid_plural "%d articles processed, "
+msgstr[0] "%d artikel bearbetad, "
+msgstr[1] "%d artiklar bearbetade, "
+
+#: plugins/import_export/init.php:385
+#, php-format
+msgid "%d imported, "
+msgid_plural "%d imported, "
+msgstr[0] "%d importerat, "
+msgstr[1] "%d importerade, "
+
+#: plugins/import_export/init.php:386
+#, php-format
+msgid "%d feed created."
+msgid_plural "%d feeds created."
+msgstr[0] "%d flöde skapat."
+msgstr[1] "%d flöden skapade."
+
+#: plugins/import_export/init.php:391
+msgid "Could not load XML document."
+msgstr "Kunde inte ladda XML-filen."
+
+#: plugins/import_export/init.php:403
+msgid "Prepare data"
+msgstr "Förbered data"
+
+#: plugins/import_export/init.php:446
+#: plugins/googlereaderimport/init.php:92
+msgid "No file uploaded."
+msgstr "Ingen fil uppladdad."
+
+#: plugins/mail/init.php:85
+msgid "From:"
+msgstr "Från:"
+
+#: plugins/mail/init.php:94
+msgid "To:"
+msgstr "Till:"
+
+#: plugins/mail/init.php:107
+msgid "Subject:"
+msgstr "Ämne:"
+
+#: plugins/mail/init.php:123
+msgid "Send e-mail"
+msgstr "Skicka e-post"
+
+#: plugins/note/init.php:26
+#: plugins/note/note.js:11
+msgid "Edit article note"
+msgstr "Redigera artikelnotering"
+
+#: plugins/googlereaderimport/init.php:178
+#, php-format
+msgid "All done. %d out of %d articles imported."
+msgstr "Allt klart. %d av %d artiklar importerade."
+
+#: plugins/googlereaderimport/init.php:182
+msgid "The document has incorrect format."
+msgstr "Dokumentet har ett felaktigt format."
+
+#: plugins/googlereaderimport/init.php:353
+msgid "Import starred or shared items from Google Reader"
+msgstr "Importera stjärnmärkta eller delade objekt från Google Reader"
+
+#: plugins/googlereaderimport/init.php:357
+msgid "Paste your starred.json or shared.json into the form below."
+msgstr "Kopiera in din starred.json eller shared.json i fältet nedan."
+
+#: plugins/googlereaderimport/init.php:371
+msgid "Import my Starred items"
+msgstr "Importera mina stjärnmärkta objekt"
+
+#: plugins/instances/init.php:141
+msgid "Linked"
+msgstr "Länkad"
+
+#: plugins/instances/init.php:204
+#: plugins/instances/init.php:395
+msgid "Instance"
+msgstr "Instans"
+
+#: plugins/instances/init.php:215
+#: plugins/instances/init.php:312
+#: plugins/instances/init.php:404
+msgid "Instance URL"
+msgstr "Instans-URL"
+
+#: plugins/instances/init.php:226
+#: plugins/instances/init.php:414
+msgid "Access key:"
+msgstr "Accessnyckel:"
+
+#: plugins/instances/init.php:229
+#: plugins/instances/init.php:313
+#: plugins/instances/init.php:417
+msgid "Access key"
+msgstr "Accessnyckel"
+
+#: plugins/instances/init.php:233
+#: plugins/instances/init.php:421
+msgid "Use one access key for both linked instances."
+msgstr "Använd samma accessnyckel för bägge länkade instanserna"
+
+#: plugins/instances/init.php:241
+#: plugins/instances/init.php:429
+msgid "Generate new key"
+msgstr "Skapa en ny nyckel"
+
+#: plugins/instances/init.php:292
+msgid "Link instance"
+msgstr "Länka instanser"
+
+#: plugins/instances/init.php:304
+msgid "You can connect other instances of Tiny Tiny RSS to this one to share Popular feeds. Link to this instance of Tiny Tiny RSS by using this URL:"
+msgstr "Du kan ansluta till andra instanser av Tiny Tiny RSS för att dela populära flöde. Länka till denna instans genom att använd följande URL:"
+
+#: plugins/instances/init.php:314
+msgid "Last connected"
+msgstr "Senast ansluten"
+
+#: plugins/instances/init.php:315
+msgid "Status"
+msgstr "Status"
+
+#: plugins/instances/init.php:316
+msgid "Stored feeds"
+msgstr "Sparade flöden"
+
+#: plugins/instances/init.php:433
+msgid "Create link"
+msgstr "Skapa länk"
+
+#: plugins/share/init.php:25
+msgid "Share by URL"
+msgstr "Dela via URL"
+
+#: plugins/share/init.php:47
+msgid "You can share this article by the following unique URL:"
+msgstr "Du kan dela denna artikel genom följande unika URL:"
+
+#: plugins/updater/init.php:321
+#: plugins/updater/init.php:338
+#: plugins/updater/updater.js:10
+msgid "Update Tiny Tiny RSS"
+msgstr "Uppdatera Tiny Tiny RSS"
+
+#: plugins/updater/init.php:341
+msgid "Your Tiny Tiny RSS installation is up to date."
+msgstr "Din Tiny Tiny RSS är uppdaterad till senaste version."
+
+#: plugins/updater/init.php:349
+#, fuzzy
+msgid "Do not close this dialog until updating is finished."
+msgstr "Stäng inte denna dialog förrän uppdatering är klar. Ta en backup av din tt-rss-katalog innan du fortsätter."
+
+#: plugins/updater/init.php:358
+msgid "It is suggested to backup your tt-rss directory first."
+msgstr "Det är rekommenderat att ta backup av din tt-rss-katalog först."
+
+#: plugins/updater/init.php:359
+msgid "Your database will not be modified."
+msgstr "Din databas kommer inte att modifieras."
+
+#: plugins/updater/init.php:360
+msgid "Your current tt-rss installation directory will not be modified. It will be renamed and left in the parent directory. You will be able to migrate all your customized files after update finishes."
+msgstr ""
+
+#: plugins/updater/init.php:361
+msgid "Ready to update."
+msgstr "Redo att uppdatera."
+
+#: plugins/updater/init.php:366
+msgid "Start update"
+msgstr "Starta uppdateringen"
+
+#: js/PrefFeedTree.js:47
+msgid "Edit category"
+msgstr "Redigera kategori"
+
+#: js/PrefFeedTree.js:54
+msgid "Remove category"
+msgstr "Ta bort kategori"
+
+#: js/PrefFilterTree.js:48
+msgid "Inverse"
+msgstr "Invertera"
+
+#: js/feedlist.js:397
+#: js/feedlist.js:425
+msgid "Mark all articles in %s as read?"
+msgstr "Märk alla artiklar i %s som lästa?"
+
+#: js/feedlist.js:416
+msgid "Mark all articles in %s older than 1 day as read?"
+msgstr "Markera alla artiklar i %s äldre än 1 dag som lästa?"
+
+#: js/feedlist.js:419
+msgid "Mark all articles in %s older than 1 week as read?"
+msgstr "Markera alla artiklar i %s äldre än 1 vecka som lästa?"
+
+#: js/feedlist.js:422
+msgid "Mark all articles in %s older than 2 weeks as read?"
+msgstr "Markera alla artiklar i %s äldre än 2 veckor som lästa?"
+
+#: js/functions.js:65
+msgid "The error will be reported to the configured log destination."
+msgstr ""
+
+#: js/functions.js:107
+msgid "Are you sure to report this exception to tt-rss.org? The report will include your browser information. Your IP would be saved in the database."
+msgstr "Vill du rapportera detta fel till tt-rss.org? Rapporten kommer innehålla information om din webbläsare och din ip-adress."
+
+#: js/functions.js:236
+#, fuzzy
+msgid "Click to close"
+msgstr "Klicka för att pausa"
+
+#: js/functions.js:612
+msgid "Error explained"
+msgstr "Fel förklarat"
+
+#: js/functions.js:694
+msgid "Upload complete."
+msgstr "Uppladdning klar."
+
+#: js/functions.js:718
+msgid "Remove stored feed icon?"
+msgstr "Ta bort sparad ikon för flöden?"
+
+#: js/functions.js:723
+msgid "Removing feed icon..."
+msgstr "Tar bort flödesikon..."
+
+#: js/functions.js:728
+msgid "Feed icon removed."
+msgstr "Flödesikon borttagen."
+
+#: js/functions.js:750
+msgid "Please select an image file to upload."
+msgstr "Välj en bild att ladda upp."
+
+#: js/functions.js:752
+msgid "Upload new icon for this feed?"
+msgstr "Ladda upp ny ikon för detta flöde?"
+
+#: js/functions.js:753
+msgid "Uploading, please wait..."
+msgstr "Laddar upp, vänligen vänta..."
+
+#: js/functions.js:769
+msgid "Please enter label caption:"
+msgstr "Ange titel för etikett:"
+
+#: js/functions.js:774
+msgid "Can't create label: missing caption."
+msgstr "Kan inte skapa etikett: titel saknas"
+
+#: js/functions.js:817
+msgid "Subscribe to Feed"
+msgstr "Prenumerera på flöde"
+
+#: js/functions.js:844
+msgid "Subscribed to %s"
+msgstr "Prenumererar på %s"
+
+#: js/functions.js:849
+msgid "Specified URL seems to be invalid."
+msgstr "Den angivna URLen verkar vara felaktig."
+
+#: js/functions.js:852
+msgid "Specified URL doesn't seem to contain any feeds."
+msgstr "Den angivna URLen verkar inte innehålla något flöde."
+
+#: js/functions.js:862
+msgid "Expand to select feed"
+msgstr "Expandera för att välja flöde"
+
+#: js/functions.js:874
+msgid "Couldn't download the specified URL: %s"
+msgstr "Kunde inte ladda ned följande URL: %s"
+
+#: js/functions.js:878
+msgid "XML validation failed: %s"
+msgstr "Validering av XML misslyckades: %s"
+
+#: js/functions.js:883
+msgid "You are already subscribed to this feed."
+msgstr "Du prenumererar redan på detta flöde."
+
+#: js/functions.js:1013
+msgid "Edit rule"
+msgstr "Redigera regel"
+
+#: js/functions.js:1039
+msgid "Edit action"
+msgstr "Redigera åtgärd"
+
+#: js/functions.js:1076
+msgid "Create Filter"
+msgstr "Skapa filter"
+
+#: js/functions.js:1191
+msgid "Reset subscription? Tiny Tiny RSS will try to subscribe to the notification hub again on next feed update."
+msgstr "Återställ prenumeration? Tiny Tiny RSS kommer försöka prenumerera på notifikationshubben igen vid nästa flödesuppdatering."
+
+#: js/functions.js:1202
+msgid "Subscription reset."
+msgstr "Prenumeration återställd."
+
+#: js/functions.js:1212
+#: js/tt-rss.js:677
+msgid "Unsubscribe from %s?"
+msgstr "Säg upp prenumeration på %s?"
+
+#: js/functions.js:1215
+msgid "Removing feed..."
+msgstr "Tar bort flöde..."
+
+#: js/functions.js:1324
+msgid "Please enter category title:"
+msgstr "Ange kategorititel:"
+
+#: js/functions.js:1355
+msgid "Generate new syndication address for this feed?"
+msgstr "Generera en ny syndikeringsadress för detta flöde?"
+
+#: js/functions.js:1359
+#: js/prefs.js:1231
+msgid "Trying to change address..."
+msgstr "Försöker ändra adress..."
+
+#: js/functions.js:1546
+#: js/tt-rss.js:422
+#: js/tt-rss.js:658
+msgid "You can't edit this kind of feed."
+msgstr "Detta typ av flöde kan inte redigeras."
+
+#: js/functions.js:1561
+msgid "Edit Feed"
+msgstr "Redigera flöde"
+
+#: js/functions.js:1567
+#: js/prefs.js:194
+#: js/prefs.js:749
+msgid "Saving data..."
+msgstr "Sparar data..."
+
+#: js/functions.js:1599
+msgid "More Feeds"
+msgstr "Fler flöden"
+
+#: js/functions.js:1660
+#: js/functions.js:1770
+#: js/prefs.js:397
+#: js/prefs.js:427
+#: js/prefs.js:459
+#: js/prefs.js:642
+#: js/prefs.js:662
+#: js/prefs.js:1207
+#: js/prefs.js:1352
+msgid "No feeds are selected."
+msgstr "Inget flöde valt."
+
+#: js/functions.js:1702
+msgid "Remove selected feeds from the archive? Feeds with stored articles will not be removed."
+msgstr "Radera markerade flöden från arkivet? Flöden med sparade artiklar kommer inte raderas."
+
+#: js/functions.js:1741
+msgid "Feeds with update errors"
+msgstr "Flöden med uppdateringsfel"
+
+#: js/functions.js:1752
+#: js/prefs.js:1189
+msgid "Remove selected feeds?"
+msgstr "Ta bort markerade flöden?"
+
+#: js/functions.js:1755
+#: js/prefs.js:1192
+msgid "Removing selected feeds..."
+msgstr "Tar bort valda flöden..."
+
+#: js/functions.js:1853
+msgid "Help"
+msgstr "Hjälp"
+
+#: js/prefs.js:55
+msgid "Please enter login:"
+msgstr "Ange inloggning:"
+
+#: js/prefs.js:62
+msgid "Can't create user: no login specified."
+msgstr "Kan inte skapa användare, ingen inloggning angiven."
+
+#: js/prefs.js:66
+msgid "Adding user..."
+msgstr "Lägger till användare..."
+
+#: js/prefs.js:94
+msgid "User Editor"
+msgstr "Användareditor"
+
+#: js/prefs.js:117
+msgid "Edit Filter"
+msgstr "Redigera filter"
+
+#: js/prefs.js:164
+msgid "Remove filter?"
+msgstr "Radera filter?"
+
+#: js/prefs.js:169
+msgid "Removing filter..."
+msgstr "Tar bort filter..."
+
+#: js/prefs.js:279
+msgid "Remove selected labels?"
+msgstr "Radera markerade etiketter?"
+
+#: js/prefs.js:282
+msgid "Removing selected labels..."
+msgstr "Tar bort valda etiketter..."
+
+#: js/prefs.js:295
+#: js/prefs.js:1393
+msgid "No labels are selected."
+msgstr "Inga etiketter valda."
+
+#: js/prefs.js:309
+msgid "Remove selected users? Neither default admin nor your account will be removed."
+msgstr "Radera markerade användare? Varken admin eller ditt konto kan raderas."
+
+#: js/prefs.js:312
+msgid "Removing selected users..."
+msgstr "Tar bort valda användare..."
+
+#: js/prefs.js:326
+#: js/prefs.js:507
+#: js/prefs.js:528
+#: js/prefs.js:567
+msgid "No users are selected."
+msgstr "Ingen användare vald."
+
+#: js/prefs.js:344
+msgid "Remove selected filters?"
+msgstr "Radera markerade filter?"
+
+#: js/prefs.js:347
+msgid "Removing selected filters..."
+msgstr "Tar bort valda filter..."
+
+#: js/prefs.js:359
+#: js/prefs.js:597
+#: js/prefs.js:616
+msgid "No filters are selected."
+msgstr "Inga filter valda."
+
+#: js/prefs.js:378
+msgid "Unsubscribe from selected feeds?"
+msgstr "Avsluta prenumeration på markerade flöden?"
+
+#: js/prefs.js:382
+msgid "Unsubscribing from selected feeds..."
+msgstr "Tar bort prenumeration för valda flöden..."
+
+#: js/prefs.js:412
+msgid "Please select only one feed."
+msgstr "Välj endast ett flöde."
+
+#: js/prefs.js:418
+msgid "Erase all non-starred articles in selected feed?"
+msgstr "Radera alla artiklar som inte är stjärnmärkta i valt flöde?"
+
+#: js/prefs.js:421
+msgid "Clearing selected feed..."
+msgstr "Rensar valda flöden..."
+
+#: js/prefs.js:440
+msgid "How many days of articles to keep (0 - use default)?"
+msgstr "Hur många dagars artiklar ska sparas (0 - använda default)?"
+
+#: js/prefs.js:443
+msgid "Purging selected feed..."
+msgstr "Rensar ut valda flöden..."
+
+#: js/prefs.js:478
+msgid "Login field cannot be blank."
+msgstr "Användarnamnet kan inte vara tomt."
+
+#: js/prefs.js:482
+msgid "Saving user..."
+msgstr "Sparar användare..."
+
+#: js/prefs.js:512
+#: js/prefs.js:533
+#: js/prefs.js:572
+msgid "Please select only one user."
+msgstr "Markera endast en användare."
+
+#: js/prefs.js:537
+msgid "Reset password of selected user?"
+msgstr "Återställ lösenordet för markerad användare?"
+
+#: js/prefs.js:540
+msgid "Resetting password for selected user..."
+msgstr "Återställer lösenord för vald användare..."
+
+#: js/prefs.js:585
+msgid "User details"
+msgstr "Användardetaljer"
+
+#: js/prefs.js:602
+msgid "Please select only one filter."
+msgstr "Markera endast ett filter."
+
+#: js/prefs.js:620
+msgid "Combine selected filters?"
+msgstr "Slå ihop markerade filter?"
+
+#: js/prefs.js:623
+msgid "Joining filters..."
+msgstr "Slår ihop filter..."
+
+#: js/prefs.js:684
+msgid "Edit Multiple Feeds"
+msgstr "Redigera flera flöden"
+
+#: js/prefs.js:708
+msgid "Save changes to selected feeds?"
+msgstr "Spara ändringar för valda flöden?"
+
+#: js/prefs.js:785
+msgid "OPML Import"
+msgstr "OPML-import"
+
+#: js/prefs.js:812
+msgid "Please choose an OPML file first."
+msgstr "Välj en OPML-fil först."
+
+#: js/prefs.js:815
+#: plugins/import_export/import_export.js:115
+#: plugins/googlereaderimport/init.js:45
+msgid "Importing, please wait..."
+msgstr "Importerar, vänligen vänta..."
+
+#: js/prefs.js:982
+msgid "Reset to defaults?"
+msgstr "Återställ till standardvärden?"
+
+#: js/prefs.js:1096
+msgid "Remove category %s? Any nested feeds would be placed into Uncategorized."
+msgstr "Radera kategori %s? Nästlade flöden placeras i Okategoriserat."
+
+#: js/prefs.js:1102
+msgid "Removing category..."
+msgstr "Tar bort kategori..."
+
+#: js/prefs.js:1123
+msgid "Remove selected categories?"
+msgstr "Radera markekrade kategorier?"
+
+#: js/prefs.js:1126
+msgid "Removing selected categories..."
+msgstr "Raderar valda kategorier..."
+
+#: js/prefs.js:1139
+msgid "No categories are selected."
+msgstr "Inga kategorier valda."
+
+#: js/prefs.js:1147
+msgid "Category title:"
+msgstr "Kategorinamn:"
+
+#: js/prefs.js:1151
+msgid "Creating category..."
+msgstr "Skapar kategori..."
+
+#: js/prefs.js:1178
+msgid "Feeds without recent updates"
+msgstr "Flöden som inte uppdaterats på länge"
+
+#: js/prefs.js:1227
+msgid "Replace current OPML publishing address with a new one?"
+msgstr "Byt nuvarande OPML-adress med en ny?"
+
+#: js/prefs.js:1316
+msgid "Clearing feed..."
+msgstr "Rensar flöde..."
+
+#: js/prefs.js:1336
+msgid "Rescore articles in selected feeds?"
+msgstr "Beräkna värde på artiklarna i vald flöden på nytt?"
+
+#: js/prefs.js:1339
+msgid "Rescoring selected feeds..."
+msgstr "Räknar om poäng för valda flöden..."
+
+#: js/prefs.js:1359
+msgid "Rescore all articles? This operation may take a lot of time."
+msgstr "Beräkna nya värden på alla artiklar? Detta kan ta mycket lång tid."
+
+#: js/prefs.js:1362
+msgid "Rescoring feeds..."
+msgstr "Räknar om flödets poäng..."
+
+#: js/prefs.js:1379
+msgid "Reset selected labels to default colors?"
+msgstr "Återställ valda etiketter till standardfärger?"
+
+#: js/prefs.js:1416
+msgid "Settings Profiles"
+msgstr "Inställningsprofiler"
+
+#: js/prefs.js:1425
+msgid "Remove selected profiles? Active and default profiles will not be removed."
+msgstr "Radera markerade profiler? Aktiva profiler tas inte bort."
+
+#: js/prefs.js:1428
+msgid "Removing selected profiles..."
+msgstr "Raderar valda profiler...."
+
+#: js/prefs.js:1443
+msgid "No profiles are selected."
+msgstr "Inga profiler valda."
+
+#: js/prefs.js:1451
+#: js/prefs.js:1504
+msgid "Activate selected profile?"
+msgstr "Aktivera markerad profil?"
+
+#: js/prefs.js:1467
+#: js/prefs.js:1520
+msgid "Please choose a profile to activate."
+msgstr "Välj en profil att aktivera."
+
+#: js/prefs.js:1472
+msgid "Creating profile..."
+msgstr "Skapar profil..."
+
+#: js/prefs.js:1528
+msgid "This will invalidate all previously generated feed URLs. Continue?"
+msgstr "Detta tar bort alla tidigare skapade flödes-URLer. Vill du fortsätta?"
+
+#: js/prefs.js:1531
+#: js/prefs.js:1550
+msgid "Clearing URLs..."
+msgstr "Rensar URLer..."
+
+#: js/prefs.js:1538
+msgid "Generated URLs cleared."
+msgstr "Genererade URLer rensade."
+
+#: js/prefs.js:1547
+msgid "This will invalidate all previously shared article URLs. Continue?"
+msgstr "Detta tar bort alla tidigare delade artikel-URLer. Fortsätt?"
+
+#: js/prefs.js:1557
+msgid "Shared URLs cleared."
+msgstr "Delade URLer rensade."
+
+#: js/prefs.js:1648
+msgid "Label Editor"
+msgstr "Etikettseditor"
+
+#: js/prefs.js:1770
+msgid "Subscribing to feeds..."
+msgstr "Prenumererar på flöden..."
+
+#: js/prefs.js:1807
+msgid "Clear stored data for this plugin?"
+msgstr "Radera lagrad data för detta tillägg?"
+
+#: js/prefs.js:1824
+msgid "Clear all messages in the error log?"
+msgstr ""
+
+#: js/tt-rss.js:127
+msgid "Mark all articles as read?"
+msgstr "Flagga alla artiklar som lästa?"
+
+#: js/tt-rss.js:133
+msgid "Marking all feeds as read..."
+msgstr "Markerar alla flöden som lästa..."
+
+#: js/tt-rss.js:381
+msgid "Please enable mail plugin first."
+msgstr "Aktivera e-post-tillägget först."
+
+#: js/tt-rss.js:493
+msgid "Please enable embed_original plugin first."
+msgstr "Vänligen aktivera tillägget embed_original först."
+
+#: js/tt-rss.js:645
+msgid "Select item(s) by tags"
+msgstr "Välj artiklar baserat på taggar"
+
+#: js/tt-rss.js:666
+msgid "You can't unsubscribe from the category."
+msgstr "Du kan inte säga upp prenumeration på kategorin."
+
+#: js/tt-rss.js:671
+#: js/tt-rss.js:825
+msgid "Please select some feed first."
+msgstr "Välj några flöden först."
+
+#: js/tt-rss.js:820
+msgid "You can't rescore this kind of feed."
+msgstr "Den här typen av flöden kan inte poängsättas."
+
+#: js/tt-rss.js:830
+msgid "Rescore articles in %s?"
+msgstr "Beräkna om poängen för artiklarna i %s?"
+
+#: js/tt-rss.js:833
+msgid "Rescoring articles..."
+msgstr "Räknar om artikelpoäng..."
+
+#: js/tt-rss.js:967
+msgid "New version available!"
+msgstr "Ny version tillgänglig!"
+
+#: js/viewfeed.js:100
+msgid "Cancel search"
+msgstr "Avbryt sökning"
+
+#: js/viewfeed.js:449
+msgid "Unstar article"
+msgstr "Ta bort stjärnmarkering från artikeln"
+
+#: js/viewfeed.js:453
+msgid "Star article"
+msgstr "Stjärnmärk artikel"
+
+#: js/viewfeed.js:493
+msgid "Unpublish article"
+msgstr "Avpublicera artikeln"
+
+#: js/viewfeed.js:497
+msgid "Publish article"
+msgstr "Publicera artikel"
+
+#: js/viewfeed.js:649
+msgid "%d article selected"
+msgid_plural "%d articles selected"
+msgstr[0] "%d artikel vald"
+msgstr[1] "%d artiklar valda"
+
+#: js/viewfeed.js:721
+#: js/viewfeed.js:749
+#: js/viewfeed.js:776
+#: js/viewfeed.js:839
+#: js/viewfeed.js:873
+#: js/viewfeed.js:993
+#: js/viewfeed.js:1036
+#: js/viewfeed.js:1089
+#: js/viewfeed.js:2066
+#: plugins/mailto/init.js:7
+#: plugins/mail/mail.js:7
+msgid "No articles are selected."
+msgstr "Inga artiklar valda."
+
+#: js/viewfeed.js:1001
+msgid "Delete %d selected article in %s?"
+msgid_plural "Delete %d selected articles in %s?"
+msgstr[0] "Radera %d vald artikel i %s?"
+msgstr[1] "Radera %d valda artiklar i %s?"
+
+#: js/viewfeed.js:1003
+msgid "Delete %d selected article?"
+msgid_plural "Delete %d selected articles?"
+msgstr[0] "Radera %d vald artikel?"
+msgstr[1] "Radera %d valda artiklar?"
+
+#: js/viewfeed.js:1045
+msgid "Archive %d selected article in %s?"
+msgid_plural "Archive %d selected articles in %s?"
+msgstr[0] "Arkivera %d vald artikel i %s?"
+msgstr[1] "Arkivera %d valda artiklar i %s?"
+
+#: js/viewfeed.js:1048
+msgid "Move %d archived article back?"
+msgid_plural "Move %d archived articles back?"
+msgstr[0] "Flytta tillbaka %d arkiverad artikel?"
+msgstr[1] "Flytta tillbaka %d arkiverade artiklar?"
+
+#: js/viewfeed.js:1050
+msgid "Please note that unstarred articles might get purged on next feed update."
+msgstr "Vänligen notera att icke stjärnmärkta artiklar kanske rensas vid nästa flödesuppdatering."
+
+#: js/viewfeed.js:1095
+msgid "Mark %d selected article in %s as read?"
+msgid_plural "Mark %d selected articles in %s as read?"
+msgstr[0] "Markera %d vald artikel i %s som läst?"
+msgstr[1] "Markera %d valda artiklar i %s som läst?"
+
+#: js/viewfeed.js:1119
+msgid "Edit article Tags"
+msgstr "Redigera artikeltaggar"
+
+#: js/viewfeed.js:1125
+msgid "Saving article tags..."
+msgstr "Sparar artikeltaggar..."
+
+#: js/viewfeed.js:1331
+msgid "No article is selected."
+msgstr "Ingen artikel vald."
+
+#: js/viewfeed.js:1366
+msgid "No articles found to mark"
+msgstr "Hittade inga artiklar att flagga"
+
+#: js/viewfeed.js:1368
+msgid "Mark %d article as read?"
+msgid_plural "Mark %d articles as read?"
+msgstr[0] "Markera %d artikel som läst?"
+msgstr[1] "Markera %d artiklar som lästa?"
+
+#: js/viewfeed.js:1870
+msgid "Open original article"
+msgstr "Öppna orginalartikeln"
+
+#: js/viewfeed.js:1876
+msgid "Display article URL"
+msgstr "Visa artikel-URL"
+
+#: js/viewfeed.js:1895
+msgid "Toggle marked"
+msgstr "Växla markerade"
+
+#: js/viewfeed.js:1976
+msgid "Assign label"
+msgstr "Ange etikett"
+
+#: js/viewfeed.js:1981
+msgid "Remove label"
+msgstr "Ta bort etikett"
+
+#: js/viewfeed.js:2035
+msgid "Please enter new score for selected articles:"
+msgstr "Ange ny poäng för markerade artiklar:"
+
+#: js/viewfeed.js:2077
+msgid "Please enter new score for this article:"
+msgstr "Ange ny poäng för denna artikel:"
+
+#: js/viewfeed.js:2110
+msgid "Article URL:"
+msgstr "URL för artikel:"
+
+#: plugins/embed_original/init.js:6
+msgid "Sorry, your browser does not support sandboxed iframes."
+msgstr "Din webbläsare stöder inte sandboxade iframes"
+
+#: plugins/mailto/init.js:21
+#: plugins/mail/mail.js:21
+msgid "Forward article by email"
+msgstr "Vidarebefordra artikel via e-post"
+
+#: plugins/import_export/import_export.js:13
+msgid "Export Data"
+msgstr "Exportera data"
+
+#: plugins/import_export/import_export.js:40
+msgid "Finished, exported %d article. You can download the data <a class='visibleLink' href='%u'>here</a>."
+msgid_plural "Finished, exported %d articles. You can download the data <a class='visibleLink' href='%u'>here</a>."
+msgstr[0] "Klart, %d artikel exporterades. Du kan ladda ner datan <a class='visibleLink' href='%u'>här</a>."
+msgstr[1] "Klart, %d artiklar exporterades. Du kan ladda ner datan <a class='visibleLink' href='%u'>här</a>."
+
+#: plugins/import_export/import_export.js:93
+msgid "Data Import"
+msgstr "Importera data"
+
+#: plugins/import_export/import_export.js:112
+msgid "Please choose the file first."
+msgstr "Välj fil först."
+
+#: plugins/note/note.js:17
+msgid "Saving article note..."
+msgstr "Sparar artikelnotering..."
+
+#: plugins/googlereaderimport/init.js:18
+msgid "Google Reader Import"
+msgstr "Google Reader-import"
+
+#: plugins/googlereaderimport/init.js:42
+msgid "Please choose a file first."
+msgstr "Vänligen välj en fil först."
+
+#: plugins/instances/instances.js:10
+msgid "Link Instance"
+msgstr "Länka instanser"
+
+#: plugins/instances/instances.js:73
+msgid "Edit Instance"
+msgstr "Redigera instanser"
+
+#: plugins/instances/instances.js:122
+msgid "Remove selected instances?"
+msgstr "Ta bort markerade instanser?"
+
+#: plugins/instances/instances.js:125
+msgid "Removing selected instances..."
+msgstr "Tar bort markerade instanser..."
+
+#: plugins/instances/instances.js:139
+#: plugins/instances/instances.js:151
+msgid "No instances are selected."
+msgstr "Inga instanser valda."
+
+#: plugins/instances/instances.js:156
+msgid "Please select only one instance."
+msgstr "Välj enbart en instans."
+
+#: plugins/share/share.js:10
+msgid "Share article by URL"
+msgstr "Dela artikel via URL"
+
+#: plugins/updater/updater.js:58
+#, fuzzy
+msgid "Backup your tt-rss directory before continuing. Please type 'yes' to continue."
+msgstr "Live-uppdatering anses experimentell. Ta backup på din tt-rss-katalog innan du fortsätter. Skriv 'yes' för att fortsätta."
+
+#~ msgid "Could not update database"
+#~ msgstr "Kunde inte uppdatera databasen"
+
+#~ msgid "Could not find necessary schema file, need version:"
+#~ msgstr "Kunde inte hitta rätt schemafil, behöver version:"
+
+#~ msgid ", found: "
+#~ msgstr ", hittade: "
+
+#~ msgid "Tiny Tiny RSS database is up to date."
+#~ msgstr "Tiny Tiny RSS databas är uppdaterad."
+
+#~ msgid "Please backup your database before proceeding."
+#~ msgstr "Ta en backup av din databas innan du forsätter."
+
+#~ msgid "Your Tiny Tiny RSS database needs update to the latest version (<b>%d</b> to <b>%d</b>)."
+#~ msgstr "Din Tiny Tiny RSS-databas behöver uppdateras till den senaste versionen (<b>%d</b> till <b>%d</b>)."
+
+#~ msgid "Performing updates..."
+#~ msgstr "Uppdatering pågår..."
+
+#~ msgid "Updating to version %d..."
+#~ msgstr "Uppdaterar till version %d..."
+
+#~ msgid "Checking version... "
+#~ msgstr "Kontrollerar version..."
+
+#~ msgid "OK!"
+#~ msgstr "OK!"
+
+#~ msgid "ERROR!"
+#~ msgstr "FEL!"
+
+#~ msgid "Finished. Performed <b>%d</b> update up to schema version <b>%d</b>."
+#~ msgid_plural "Finished. Performed <b>%d</b> updates up to schema version <b>%d</b>."
+#~ msgstr[0] "Klart. Genomförde <b>%d</b> uppdatering upp till schemaversion <b>%d</b>."
+#~ msgstr[1] "Klart. Genomförde <b>%d</b> uppdateringar upp till schemaversion <b>%d</b>."
+
+#~ msgid "Your database schema is from a newer version of Tiny Tiny RSS."
+#~ msgstr "Ditt databasschema är för en nyare Tiny Tiny RSS Version."
+
+#~ msgid "Found schema version: <b>%d</b>, required: <b>%d</b>."
+#~ msgstr "Fann schemaversion: <b>%d</b>, behöver version: <b>%d</b>."
+
+#~ msgid "Schema upgrade impossible. Please update Tiny Tiny RSS files to the newer version and continue."
+#~ msgstr "Kan inte uppdatera schema. Uppdatera Tiny Tiny RSS på filsystemet till en ny version "
+
+#~ msgid "Switch to digest..."
+#~ msgstr "Byt läge till sammanfattning..."
+
+#~ msgid "Show tag cloud..."
+#~ msgstr "Visa taggmoln..."
+
+#~ msgid "Click to play"
+#~ msgstr "Klicka för att starta"
+
+#~ msgid "Play"
+#~ msgstr "Start"
+
+#~ msgid "Visit the website"
+#~ msgstr "Besök den officiella webbsiten"
+
+#~ msgid "Default interval between feed updates"
+#~ msgstr "Standardintervall mellan flödesuppdateringar"
+
+#~ msgid "User timezone"
+#~ msgstr "Tidszon"
+
+#~ msgid "Select theme"
+#~ msgstr "Välj tema"
+
+#~ msgid "I have scanned the code and would like to enable OTP"
+#~ msgstr "Jag har läst av bilden och vill aktivera OTP"
+
+#~ msgid "(Un)hide empty categories"
+#~ msgstr "Visa/dölj tomma kategorier"
+
+#~ msgid "Published articles and generated feeds"
+#~ msgstr "Publicerade artiklar och genererade flöden"
+
+#~ msgid "Articles shared by URL"
+#~ msgstr "Artiklar delade per URL"
+
+#~ msgid "These feeds have not been updated because of errors:"
+#~ msgstr "Följande flöden har inte blivit uppdaterade pga fel:"
+
+#~ msgid "Your browser doesn't support Javascript, which is required for this application to function properly. Please check your browser settings."
+#~ msgstr "Din webbläsare stöder inte Javascript som krävs för att denna applikation ska fungera som den ska. Kontrollera dina webbläsarinställningar."
+
+#~ msgid "Hello,"
+#~ msgstr "Hej,"
+
+#~ msgid "Regular version"
+#~ msgstr "Standardversion"
+
+#~ msgid "Home"
+#~ msgstr "Hem"
+
+#~ msgid "Nothing found (click to reload feed)."
+#~ msgstr "Inget kunde hittas (klicka för att ladda om flöde)"
+
+#~ msgid "Open regular version"
+#~ msgstr "Öppna normal version"
+
+#~ msgid "Enable categories"
+#~ msgstr "Aktivera kategorier"
+
+#~ msgid "ON"
+#~ msgstr "PÅ"
+
+#~ msgid "OFF"
+#~ msgstr "AV"
+
+#~ msgid "Browse categories like folders"
+#~ msgstr "Bläddra i kategorier som i mappar"
+
+#~ msgid "Show images in posts"
+#~ msgstr "Visa bilder i artiklar"
+
+#~ msgid "Hide read articles and feeds"
+#~ msgstr "Dölj lästa artiklar och flöden"
+
+#~ msgid "Sort feeds by unread count"
+#~ msgstr "Sortera flöden efter antal olästa artiklar"
+
+#~ msgid "Article archive"
+#~ msgstr "Artikelarkiv"
+
+#~ msgid "Could not upload file. You might need to adjust upload_max_filesize in PHP.ini (current value = %s)"
+#~ msgstr "Filen kunde inte laddas upp. Kontrollera upload_max_filesize i PHP.ini (nuvarande inställning = %s)"
+
+#~ msgid "Example Pane"
+#~ msgstr "Exempelpanel"
+
+#~ msgid "Sample value"
+#~ msgstr "Exempelvärde"
+
+#~ msgid "Set value"
+#~ msgstr "Ange värde"
+
+#~ msgid "close"
+#~ msgstr "stäng"
+
+#~ msgid "Playing..."
+#~ msgstr "Spelar..."
+
+#~ msgid "Click to pause"
+#~ msgstr "Klicka för att pausa"
+
+#~ msgid "Mark %d displayed article as read?"
+#~ msgid_plural "Mark %d displayed articles as read?"
+#~ msgstr[0] "Markera %d visad artikel som läst?"
+#~ msgstr[1] "Markera %d visade artiklar som lästa?"
+
+#~ msgid "Error: unable to load article."
+#~ msgstr "Fel: kunde inte ladda artikel."
+
+#~ msgid "Click to expand article."
+#~ msgstr "Klicka för att expandera artikeln."
+
+#~ msgid "%d more..."
+#~ msgid_plural "%d more..."
+#~ msgstr[0] "%d mer..."
+#~ msgstr[1] "%d mer..."
+
+#~ msgid "No unread feeds."
+#~ msgstr "Inga olästa flöden."
+
+#~ msgid "Load more..."
+#~ msgstr "Ladda mer..."
+
+#~ msgid "Updated"
+#~ msgstr "Uppdaterade"
+
+#~ msgid "Score"
+#~ msgstr "Poäng"
+
+#~ msgid "Related"
+#~ msgstr "Relaterade"
+
+#~ msgid "Title or Content"
+#~ msgstr "Titel eller innehåll"
+
+#~ msgid "Link"
+#~ msgstr "Länk"
+
+#~ msgid "Content"
+#~ msgstr "Innehåll"
+
+#~ msgid "Article Date"
+#~ msgstr "Artikeldatum"
+
+#~ msgid "Delete article"
+#~ msgstr "Radera artikel"
+
+#~ msgid "Set starred"
+#~ msgstr "Stjärnmarkera"
+
+#~ msgid "Assign tags"
+#~ msgstr "Tagga"
+
+#~ msgid "Modify score"
+#~ msgstr "Redigera poäng"
+
+#~ msgid "This option is useful when you are reading several planet-type aggregators with partially colliding userbase. When disabled, it forces same posts from different feeds to appear only once."
+#~ msgstr "Detta är användbart när du läser flera sammanslagna kanaler som har delvis samma användarbas. När inaktiverad så visas samma artikel från flera olika kanaler endast en gång."
+
+#~ msgid "When this option is enabled, headlines in Special feeds and Labels are grouped by feeds"
+#~ msgstr "Gruppera rubriker efter kanaler i Etiketter och Specialkanaler"
+
+#~ msgid "Enable external API"
+#~ msgstr "Aktivera externt API"
+
+#~ msgid "Notice"
+#~ msgstr "Notering"
+
+#~ msgid "Tag Cloud"
+#~ msgstr "Tagmoln"
+
+#~ msgid "Notifying <b>%s</b>."
+#~ msgstr "Informerar <b>%s</b>."
+
+#~ msgid "Show additional preferences"
+#~ msgstr "Visa ytterligare inställningar"
+
+#~ msgid "(%d feeds)"
+#~ msgstr "(%d kanaler)"
+
+#~ msgid "Enable the options you wish to apply using checkboxes on the right:"
+#~ msgstr "Välj de alternativ du vill tillämpla med checkboxarna till höger:"
+
+#~ msgid "Pocket"
+#~ msgstr "Pocket"
+
+#~ msgid "Back to feeds"
+#~ msgstr "Åter till kanallistan"
+
+#~ msgid "Pinterest"
+#~ msgstr "Pinterest"
+
+#~ msgid "Finished: %d articles processed, %d imported, %d feeds created."
+#~ msgstr "Klar: %d artiklar bearbetade, %d importerade, %d kanaler skapade."
+
+#~ msgid "Share on identi.ca"
+#~ msgstr "Dela på identi.ca"
+
+#~ msgid "Owncloud"
+#~ msgstr "Owncloud"
+
+#~ msgid "Owncloud url"
+#~ msgstr "Owncloud URL"
+
+#~ msgid "Bookmark on OwnCloud "
+#~ msgstr "Bokmärk på OwnCloud"
+
+#~ msgid "Flattr this article."
+#~ msgstr "Dela på flattrn."
+
+#~ msgid "Share on Google+"
+#~ msgstr "Dela på Google+"
+
+#~ msgid "Share on Twitter"
+#~ msgstr "Dela på Twitter"
+
+#~ msgid "New articles available in this feed (click to show)"
+#~ msgstr "Ny artikel i denna kanal (klicka för att visa)"
+
+#~ msgid "Date syntax appears to be correct:"
+#~ msgstr "Datumsyntaxen verkar vara korrekt:"
+
+#~ msgid "Date syntax is incorrect."
+#~ msgstr "Datumsyntaxen är felaktig."
+
+#~ msgid "This will clear your stored authentication information for Twitter. Continue?"
+#~ msgstr "Detta raderar din lagrade inloggningsinformation till Twitter. Fortsätt?"
+
+#~ msgid "Mark all visible articles in %s as read?"
+#~ msgstr "Flagga alla artiklar i %s som lästa?"
+
+#~ msgid "Yes"
+#~ msgstr "Ja"
+
+#~ msgid "No"
+#~ msgstr "Nej"
+
+#~ msgid "Comments?"
+#~ msgstr "Kommentarer?"
+
+#~ msgid "News"
+#~ msgstr "Nyheter"
+
+#~ msgid "Move between feeds"
+#~ msgstr "Flytta mellan kanaler"
+
+#~ msgid "Move between articles"
+#~ msgstr "Flytta mellan artiklar"
+
+#~ msgid "Active article actions"
+#~ msgstr "Aktivera artikelaktiviteter"
+
+#~ msgid "Mark articles below/above active one as read"
+#~ msgstr "Flagga artiklar nedanför/ovanför den aktiva som lästa"
+
+#~ msgid "Scroll article content"
+#~ msgstr "Skrolla artikelinnehåll"
+
+#~ msgid "Other actions"
+#~ msgstr "Andra aktiviteter"
+
+#~ msgid "Display this help dialog"
+#~ msgstr "Visa denna hjälpruta"
+
+#~ msgid "Multiple articles actions"
+#~ msgstr "Fler artikelalternativ"
+
+#, fuzzy
+#~ msgid "Select unread articles"
+#~ msgstr "Markera olästa artiklar"
+
+#~ msgid "Select starred articles"
+#~ msgstr "Markera stjärmärkta artiklar"
+
+#, fuzzy
+#~ msgid "Select published articles"
+#~ msgstr "Markera publicerade artiklar"
+
+#, fuzzy
+#~ msgid "Deselect all articles"
+#~ msgstr "Avmarkera alla artiklar"
+
+#~ msgid "Feed actions"
+#~ msgstr "Kanalalternativ"
+
+#~ msgid "Mark feed as read"
+#~ msgstr "Flagga kanal som läst"
+
+#~ msgid "If viewing category, (un)collapse it"
+#~ msgstr "Öppna/stäng visad kategori"
+
+#~ msgid "Press any key to close this window."
+#~ msgstr "Tryck valfri tangent för att stänga detta fönster."
+
+#~ msgid "My Feeds"
+#~ msgstr "Mina kanaler"
+
+#, fuzzy
+#~ msgid "Other Feeds"
+#~ msgstr "Andra kanaler"
+
+#~ msgid "Panel actions"
+#~ msgstr "Panelalternativ"
+
+#~ msgid "Top 25 feeds"
+#~ msgstr "Topp 25 kanaler"
+
+#~ msgid "Edit feed categories"
+#~ msgstr "Redigera kanalkategorier"
+
+#~ msgid "Focus search (if present)"
+#~ msgstr "Fokusera sökning (om vald)"
+
+#~ msgid "<b>Note:</b> not all actions may be available, depending on Tiny Tiny RSS configuration and your access level."
+#~ msgstr "<b>OBS:</b> Beroende på konfiguration och behörigheter så kanske inte alla alternativ är tillgängliga."
+
+#~ msgid "Open article in new tab"
+#~ msgstr "Öppna artikel i ny flik"
+
+#~ msgid "Right-to-left content"
+#~ msgstr "Innehåll från höger till vänster"
+
+#~ msgid "Cache content locally"
+#~ msgstr "Cachea innehåll lokalt"
+
+#~ msgid "Mark posts as updated on content change"
+#~ msgstr "Flagga artiklar som uppdaterade när innehåll ändras"
+
+#~ msgid "Loading..."
+#~ msgstr "Laddar..."
+
+#~ msgid "View in a tt-rss tab"
+#~ msgstr "Visa i en tt-rss-flik"
+
+#~ msgid "Magpie"
+#~ msgstr "Magpie"
+
+#~ msgid "SimplePie"
+#~ msgstr "SimplePie"
+
+#~ msgid "using"
+#~ msgstr "använder"
+
+#~ msgid "OAuth will be used automatically for Twitter feeds."
+#~ msgstr "OAuth används automatiskt för Twitterkanaler"
+
+#~ msgid "match on"
+#~ msgstr "sök på:"
+
+#~ msgid "Title or content"
+#~ msgstr "Titel eller innehåll"
+
+#~ msgid "Your request could not be completed."
+#~ msgstr "Kunde inte utföras."
+
+#~ msgid "Feed update has been scheduled."
+#~ msgstr "Kanaluppdatering är schemalagd."
+
+#~ msgid "Category update has been scheduled."
+#~ msgstr "Kategoriuppdatering är schemalagd."
+
+#~ msgid "Can't update this kind of feed."
+#~ msgstr "Du kan inte uppdatera denna typ av kanal"
+
+#~ msgid "Original article"
+#~ msgstr "Orignalartikel"
+
+#~ msgid "Update feed"
+#~ msgstr "Alla kanaler uppdaterade"
+
+#~ msgid "With subcategories"
+#~ msgstr "Med underkategorier"
+
+#~ msgid "Twitter OAuth"
+#~ msgstr "Twitter OAuth"
+
+#~ msgid "<li>Adding category <b>%s</b>.</li>"
+#~ msgstr "<li>Läggar till kategori <b>%s</b>.</li>"
+
+#~ msgid "Duplicate filter %s"
+#~ msgstr "Filterdubblett %s"
+
+#~ msgid "OK"
+#~ msgstr "OK"
+
+#~ msgid "Register with Twitter"
+#~ msgstr "Registera hos Twitter"
+
+#~ msgid "Could not connect to Twitter. Refresh the page or try again later."
+#~ msgstr "Kunde inte ansluta till Twitter. Ladda om sidan eller försök igen senare."
+
+#~ msgid "Congratulations! You have successfully registered with Twitter."
+#~ msgstr "Grattis! Du är nu registrerad med Twitter."
+
+#~ msgid "before"
+#~ msgstr "före"
+
+#~ msgid "after"
+#~ msgstr "efter"
+
+#~ msgid "Check it"
+#~ msgstr "Testa"
+
+#~ msgid "Apply to category"
+#~ msgstr "Tillämpa i kategori"
+
+#~ msgid "Category <b>$%s</b> already exists in the database."
+#~ msgstr "Kategori <b>$%s</b> finns redan i databasen."
+
+#~ msgid "No feed categories defined."
+#~ msgstr "Inga kanalkategorier definierade."
+
+#~ msgid "<b>Hint:</b> you can drag feeds and categories around."
+#~ msgstr "<b>Tips</b>: Du kan dra runt kanaler och kategorier med musen."
+
+#~ msgid "Subscribing using bookmarklet"
+#~ msgstr "Prenumerera via en bookmarklet"
+
+#~ msgid "Twitter"
+#~ msgstr "Twitter"
+
+#~ msgid "Before you can update your Twitter feeds, you must register this instance of Tiny Tiny RSS with Twitter.com."
+#~ msgstr "Innan du kan uppdatera dina Twitterkanaler måste du registrera denna instans av Tiny Tiny RSS hos Twitter."
+
+#~ msgid "You have been successfully registered with Twitter.com and should be able to access your Twitter feeds."
+#~ msgstr "Du är registerad hos Twitter och ska nu ha åtkomst till dina Twitterkanaler "
+
+#~ msgid "Register with Twitter.com"
+#~ msgstr "Registrera hos Twitter"
+
+#~ msgid "Clear stored credentials"
+#~ msgstr "Radera lagrad inloggningsuppgifter"
+
+#~ msgid "Created filter <b>%s</b>"
+#~ msgstr "Skapade filter <b>%s</b>"
+
+#~ msgid "Attachment:"
+#~ msgstr "Bilaga:"
+
+#~ msgid "Subscribing to feed..."
+#~ msgstr "Prenumererar på kanal..."
+
+#~ msgid "Filter Test Results"
+#~ msgstr "Filtertestresultat"
+
+#~ msgid "When \"Mark as read\" button is clicked in toolbar, automatically open next feed with unread articles."
+#~ msgstr "Växla automatiskt till nästa kanal när du klickar på \"Markera alla som lästa\"i verktygsraden."
diff --git a/localized_js.php b/localized_js.php
deleted file mode 100644
index 46dbe2961..000000000
--- a/localized_js.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
- set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
- get_include_path());
-
- define('DISABLE_SESSIONS', true);
-
- require "functions.php";
- header("Content-Type: text/plain; charset=UTF-8");
-
- function T_js_decl($s1, $s2) {
- if ($s1 && $s2) {
- $s1 = preg_replace("/\n/", "", $s1);
- $s2 = preg_replace("/\n/", "", $s2);
-
- $s1 = preg_replace("/\"/", "\\\"", $s1);
- $s2 = preg_replace("/\"/", "\\\"", $s2);
-
- return "T_messages[\"$s1\"] = \"$s2\";\n";
- }
- }
-?>
-
-var T_messages = new Object();
-
-function __(msg) {
- if (T_messages[msg]) {
- return T_messages[msg];
- } else {
- return msg;
- }
-}
-
-<?php
- $l10n = _get_reader();
-
- for ($i = 0; $i < $l10n->total; $i++) {
- $orig = $l10n->get_original_string($i);
- $translation = __($orig);
-
- print T_js_decl($orig, $translation);
- }
-?>
diff --git a/lock/.empty b/lock/.empty
index e69de29bb..e69de29bb 100644..100755
--- a/lock/.empty
+++ b/lock/.empty
diff --git a/lock/.htaccess b/lock/.htaccess
index 93169e4eb..93169e4eb 100644..100755
--- a/lock/.htaccess
+++ b/lock/.htaccess
diff --git a/messages.pot b/messages.pot
index b39691fd4..68c42d76e 100644
--- a/messages.pot
+++ b/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-02-17 13:58+0400\n"
+"POT-Creation-Date: 2013-05-14 09:35+0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
@@ -16,172 +16,84 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: backend.php:67
+#: backend.php:73
msgid "Use default"
msgstr ""
-#: backend.php:68
+#: backend.php:74
msgid "Never purge"
msgstr ""
-#: backend.php:69
+#: backend.php:75
msgid "1 week old"
msgstr ""
-#: backend.php:70
+#: backend.php:76
msgid "2 weeks old"
msgstr ""
-#: backend.php:71
+#: backend.php:77
msgid "1 month old"
msgstr ""
-#: backend.php:72
+#: backend.php:78
msgid "2 months old"
msgstr ""
-#: backend.php:73
+#: backend.php:79
msgid "3 months old"
msgstr ""
-#: backend.php:76
+#: backend.php:82
msgid "Default interval"
msgstr ""
-#: backend.php:77 backend.php:87
+#: backend.php:83 backend.php:93
msgid "Disable updates"
msgstr ""
-#: backend.php:78 backend.php:88
+#: backend.php:84 backend.php:94
msgid "Each 15 minutes"
msgstr ""
-#: backend.php:79 backend.php:89
+#: backend.php:85 backend.php:95
msgid "Each 30 minutes"
msgstr ""
-#: backend.php:80 backend.php:90
+#: backend.php:86 backend.php:96
msgid "Hourly"
msgstr ""
-#: backend.php:81 backend.php:91
+#: backend.php:87 backend.php:97
msgid "Each 4 hours"
msgstr ""
-#: backend.php:82 backend.php:92
+#: backend.php:88 backend.php:98
msgid "Each 12 hours"
msgstr ""
-#: backend.php:83 backend.php:93
+#: backend.php:89 backend.php:99
msgid "Daily"
msgstr ""
-#: backend.php:84 backend.php:94
+#: backend.php:90 backend.php:100
msgid "Weekly"
msgstr ""
-#: backend.php:97 classes/pref/users.php:139
+#: backend.php:103 classes/pref/users.php:119 classes/pref/system.php:51
msgid "User"
msgstr ""
-#: backend.php:98
+#: backend.php:104
msgid "Power User"
msgstr ""
-#: backend.php:99
+#: backend.php:105
msgid "Administrator"
msgstr ""
-#: db-updater.php:19
-msgid "Your access level is insufficient to run this script."
-msgstr ""
-
-#: db-updater.php:44
-msgid "Database Updater"
-msgstr ""
-
-#: db-updater.php:85
-msgid "Could not update database"
-msgstr ""
-
-#: db-updater.php:88
-msgid "Could not find necessary schema file, need version:"
-msgstr ""
-
-#: db-updater.php:89
-msgid ", found: "
-msgstr ""
-
-#: db-updater.php:92
-msgid "Tiny Tiny RSS database is up to date."
-msgstr ""
-
-#: db-updater.php:94 db-updater.php:163 db-updater.php:176 register.php:194
-#: register.php:239 register.php:252 register.php:267 register.php:286
-#: register.php:371 register.php:381 register.php:393
-#: classes/handler/public.php:637 classes/handler/public.php:725
-msgid "Return to Tiny Tiny RSS"
-msgstr ""
-
-#: db-updater.php:100
-msgid "Please backup your database before proceeding."
-msgstr ""
-
-#: db-updater.php:102
-#, php-format
-msgid ""
-"Your Tiny Tiny RSS database needs update to the latest version (<b>%d</b> to "
-"<b>%d</b>)."
-msgstr ""
-
-#: db-updater.php:116
-msgid "Perform updates"
-msgstr ""
-
-#: db-updater.php:121
-msgid "Performing updates..."
-msgstr ""
-
-#: db-updater.php:127
-#, php-format
-msgid "Updating to version %d..."
-msgstr ""
-
-#: db-updater.php:142
-msgid "Checking version... "
-msgstr ""
-
-#: db-updater.php:148
-msgid "OK!"
-msgstr ""
-
-#: db-updater.php:150
-msgid "ERROR!"
-msgstr ""
-
-#: db-updater.php:158
-#, php-format
-msgid ""
-"Finished. Performed <b>%d</b> update(s) up to schema\n"
-"\t\t\tversion <b>%d</b>."
-msgstr ""
-
-#: db-updater.php:168
-msgid "Your database schema is from a newer version of Tiny Tiny RSS."
-msgstr ""
-
-#: db-updater.php:170
-#, php-format
-msgid "Found schema version: <b>%d</b>, required: <b>%d</b>."
-msgstr ""
-
-#: db-updater.php:172
-msgid ""
-"Schema upgrade impossible. Please update Tiny Tiny RSS files to the newer "
-"version and continue."
-msgstr ""
-
#: errors.php:9
msgid ""
"This program requires XmlHttpRequest to function properly. Your browser "
@@ -195,7 +107,7 @@ msgid ""
msgstr ""
#: errors.php:15
-msgid "Backend sanity check failed"
+msgid "Backend sanity check failed."
msgstr ""
#: errors.php:17
@@ -232,207 +144,219 @@ msgstr ""
#: errors.php:31
msgid ""
-"Your version of MySQL is not currently supported. Please see\n"
-"\t\tofficial site for more information."
+"Your version of MySQL is not currently supported. Please see official site "
+"for more information."
msgstr ""
-#: errors.php:36
+#: errors.php:35
msgid "SQL escaping test failed, check your database and PHP configuration"
msgstr ""
-#: index.php:108 index.php:150 index.php:236 prefs.php:86
-#: classes/backend.php:6 classes/pref/labels.php:296
-#: classes/pref/filters.php:602 classes/pref/feeds.php:1342
-#: plugins/digest/digest_body.php:45 js/viewfeed.js:1169 js/viewfeed.js:1158
-#: js/viewfeed.js:1164
+#: index.php:128 index.php:145 index.php:265 prefs.php:98
+#: classes/backend.php:5 classes/pref/labels.php:296
+#: classes/pref/filters.php:678 classes/pref/feeds.php:1372 js/feedlist.js:128
+#: js/feedlist.js:441 js/functions.js:446 js/functions.js:784
+#: js/functions.js:1194 js/functions.js:1330 js/functions.js:1642
+#: js/prefs.js:86 js/prefs.js:576 js/prefs.js:666 js/prefs.js:867
+#: js/prefs.js:1454 js/prefs.js:1507 js/prefs.js:1566 js/prefs.js:1583
+#: js/prefs.js:1599 js/prefs.js:1619 js/prefs.js:1792 js/prefs.js:1808
+#: js/prefs.js:1826 js/tt-rss.js:507 js/tt-rss.js:524 js/viewfeed.js:816
+#: js/viewfeed.js:1245 plugins/import_export/import_export.js:17
+#: plugins/updater/updater.js:17
msgid "Loading, please wait..."
msgstr ""
-#: index.php:118 plugins/digest/digest_body.php:56
-msgid "Hello,"
-msgstr ""
-
-#: index.php:120 prefs.php:29 prefs.php:108 help/main.php:73 help/prefs.php:8
-#: classes/pref/prefs.php:371
-msgid "Preferences"
+#: index.php:159
+msgid "Collapse feedlist"
msgstr ""
-#: index.php:124
-msgid "Comments?"
+#: index.php:162
+msgid "Show articles"
msgstr ""
-#: index.php:128 mobile/mobile-functions.php:69
-#: mobile/mobile-functions.php:244 plugins/digest/digest_body.php:59
-msgid "Logout"
+#: index.php:165
+msgid "Adaptive"
msgstr ""
-#: index.php:134
-msgid "New version of Tiny Tiny RSS is available!"
+#: index.php:166
+msgid "All Articles"
msgstr ""
-#: index.php:157
-msgid "News"
+#: index.php:167 include/functions.php:2008 classes/feeds.php:98
+msgid "Starred"
msgstr ""
-#: index.php:166
-msgid "Collapse feedlist"
+#: index.php:168 include/functions.php:2009 classes/feeds.php:99
+msgid "Published"
msgstr ""
-#: index.php:169
-msgid "Show articles"
+#: index.php:169 classes/feeds.php:85 classes/feeds.php:97
+msgid "Unread"
msgstr ""
-#: index.php:172
-msgid "Adaptive"
+#: index.php:170
+msgid "Unread First"
msgstr ""
-#: index.php:173
-msgid "All Articles"
+#: index.php:171
+msgid "With Note"
msgstr ""
-#: index.php:174 classes/feeds.php:106
-msgid "Starred"
+#: index.php:172
+msgid "Ignore Scoring"
msgstr ""
-#: index.php:175 classes/feeds.php:107
-msgid "Published"
+#: index.php:175
+msgid "Sort articles"
msgstr ""
-#: index.php:176 classes/feeds.php:93 classes/feeds.php:105
-msgid "Unread"
+#: index.php:178
+msgid "Default"
msgstr ""
-#: index.php:177
-msgid "Ignore Scoring"
+#: index.php:179
+msgid "Newest first"
msgstr ""
-#: index.php:178
-msgid "Updated"
+#: index.php:180
+msgid "Oldest first"
msgstr ""
#: index.php:181
-msgid "Sort articles"
+msgid "Title"
msgstr ""
-#: index.php:184 classes/pref/prefs.php:462
-msgid "Default"
+#: index.php:185 index.php:233 include/functions.php:1998
+#: classes/feeds.php:103 classes/feeds.php:424 js/FeedTree.js:128
+#: js/FeedTree.js:156
+msgid "Mark as read"
msgstr ""
-#: index.php:185
-msgid "Date"
+#: index.php:188
+msgid "Older than one day"
msgstr ""
-#: index.php:186 include/localized_schema.php:3
-msgid "Title"
+#: index.php:191
+msgid "Older than one week"
msgstr ""
-#: index.php:187
-msgid "Score"
+#: index.php:194
+msgid "Older than two weeks"
msgstr ""
-#: index.php:192 classes/pref/feeds.php:539 classes/pref/feeds.php:786
-msgid "Update"
+#: index.php:210
+msgid "Communication problem with server."
msgstr ""
-#: index.php:196 index.php:211 include/localized_schema.php:10
-#: classes/feeds.php:111 classes/feeds.php:127 js/FeedTree.js:128
-#: js/FeedTree.js:156
-msgid "Mark as read"
+#: index.php:218
+msgid "New version of Tiny Tiny RSS is available!"
msgstr ""
-#: index.php:202 classes/feeds.php:101
+#: index.php:223
msgid "Actions..."
msgstr ""
-#: index.php:204
+#: index.php:225
+msgid "Preferences..."
+msgstr ""
+
+#: index.php:226
msgid "Search..."
msgstr ""
-#: index.php:205
+#: index.php:227
msgid "Feed actions:"
msgstr ""
-#: index.php:206 classes/handler/public.php:567
+#: index.php:228 classes/handler/public.php:562
msgid "Subscribe to feed..."
msgstr ""
-#: index.php:207
+#: index.php:229
msgid "Edit this feed..."
msgstr ""
-#: index.php:208
+#: index.php:230
msgid "Rescore feed"
msgstr ""
-#: index.php:209 classes/pref/feeds.php:712 classes/pref/feeds.php:1315
+#: index.php:231 classes/pref/feeds.php:746 classes/pref/feeds.php:1327
#: js/PrefFeedTree.js:73
msgid "Unsubscribe"
msgstr ""
-#: index.php:210
+#: index.php:232
msgid "All feeds:"
msgstr ""
-#: index.php:212 help/main.php:56
+#: index.php:234
msgid "(Un)hide read feeds"
msgstr ""
-#: index.php:213
+#: index.php:235
msgid "Other actions:"
msgstr ""
-#: index.php:215
-msgid "Switch to digest..."
+#: index.php:236 include/functions.php:1984
+msgid "Toggle widescreen mode"
msgstr ""
-#: index.php:217
-msgid "Show tag cloud..."
-msgstr ""
-
-#: index.php:218
+#: index.php:237
msgid "Select by tags..."
msgstr ""
-#: index.php:219
+#: index.php:238
msgid "Create label..."
msgstr ""
-#: index.php:220
+#: index.php:239
msgid "Create filter..."
msgstr ""
-#: index.php:221
+#: index.php:240
msgid "Keyboard shortcuts help"
msgstr ""
-#: prefs.php:99
+#: index.php:249
+msgid "Logout"
+msgstr ""
+
+#: prefs.php:33 prefs.php:116 include/functions.php:2011
+#: classes/pref/prefs.php:440
+msgid "Preferences"
+msgstr ""
+
+#: prefs.php:107
msgid "Keyboard shortcuts"
msgstr ""
-#: prefs.php:100 help/prefs.php:14
+#: prefs.php:108
msgid "Exit preferences"
msgstr ""
-#: prefs.php:111 classes/pref/feeds.php:101 classes/pref/feeds.php:1220
-#: classes/pref/feeds.php:1283
+#: prefs.php:119 classes/pref/feeds.php:106 classes/pref/feeds.php:1253
+#: classes/pref/feeds.php:1316
msgid "Feeds"
msgstr ""
-#: prefs.php:114 help/prefs.php:11 classes/pref/filters.php:110
+#: prefs.php:122 classes/pref/filters.php:154
msgid "Filters"
msgstr ""
-#: prefs.php:117 help/prefs.php:12 mobile/mobile-functions.php:205
-#: include/functions.php:1189 include/functions.php:1836
+#: prefs.php:125 include/functions.php:1176 include/functions.php:1832
#: classes/pref/labels.php:90
msgid "Labels"
msgstr ""
-#: prefs.php:121 help/prefs.php:13
+#: prefs.php:129
msgid "Users"
msgstr ""
-#: register.php:186 include/login_form.php:212
+#: prefs.php:132
+msgid "System"
+msgstr ""
+
+#: register.php:184 include/login_form.php:238
msgid "Create new account"
msgstr ""
@@ -440,6 +364,15 @@ msgstr ""
msgid "New user registrations are administratively disabled."
msgstr ""
+#: register.php:194 register.php:239 register.php:252 register.php:267
+#: register.php:286 register.php:334 register.php:344 register.php:356
+#: classes/handler/public.php:632 classes/handler/public.php:723
+#: classes/handler/public.php:805 classes/handler/public.php:880
+#: classes/handler/public.php:894 classes/handler/public.php:901
+#: classes/handler/public.php:926
+msgid "Return to Tiny Tiny RSS"
+msgstr ""
+
#: register.php:215
msgid ""
"Your temporary password will be sent to the specified email. Accounts, which "
@@ -455,11 +388,11 @@ msgstr ""
msgid "Check availability"
msgstr ""
-#: register.php:226
+#: register.php:226 classes/handler/public.php:763
msgid "Email:"
msgstr ""
-#: register.php:229
+#: register.php:229 classes/handler/public.php:768
msgid "How much is two plus two:"
msgstr ""
@@ -479,2153 +412,2346 @@ msgstr ""
msgid "Registration failed."
msgstr ""
-#: register.php:368
+#: register.php:331
msgid "Account created successfully."
msgstr ""
-#: register.php:390
+#: register.php:353
msgid "New user registrations are currently closed."
msgstr ""
-#: update.php:38
+#: update.php:55
msgid "Tiny Tiny RSS data update script."
msgstr ""
-#: help/main.php:1 help/prefs.php:1
-msgid "Keyboard Shortcuts"
-msgstr ""
-
-#: help/main.php:5
-msgid "Navigation"
-msgstr ""
-
-#: help/main.php:8
-msgid "Move between feeds"
-msgstr ""
-
-#: help/main.php:9
-msgid "Move between articles"
-msgstr ""
-
-#: help/main.php:10
-msgid "Show search dialog"
-msgstr ""
-
-#: help/main.php:13
-msgid "Active article actions"
-msgstr ""
-
-#: help/main.php:16
-msgid "Toggle starred"
-msgstr ""
-
-#: help/main.php:17
-msgid "Toggle published"
-msgstr ""
-
-#: help/main.php:18
-msgid "Toggle unread"
-msgstr ""
-
-#: help/main.php:19
-msgid "Edit tags"
+#: include/digest.php:109 include/functions.php:1185
+#: include/functions.php:1733 include/functions.php:1818
+#: include/functions.php:1840 classes/opml.php:416 classes/pref/feeds.php:218
+msgid "Uncategorized"
msgstr ""
-#: help/main.php:20
-msgid "Dismiss selected articles"
-msgstr ""
+#: include/feedbrowser.php:83
+#, php-format
+msgid "%d archived article"
+msgid_plural "%d archived articles"
+msgstr[0] ""
+msgstr[1] ""
-#: help/main.php:21
-msgid "Dismiss read articles"
+#: include/feedbrowser.php:107
+msgid "No feeds found."
msgstr ""
-#: help/main.php:22
-msgid "Open article in new window"
+#: include/functions.php:1174 include/functions.php:1830
+msgid "Special"
msgstr ""
-#: help/main.php:23
-msgid "Mark articles below/above active one as read"
+#: include/functions.php:1681 classes/feeds.php:1097
+#: classes/pref/filters.php:425
+msgid "All feeds"
msgstr ""
-#: help/main.php:24
-msgid "Scroll article content"
+#: include/functions.php:1885
+msgid "Starred articles"
msgstr ""
-#: help/main.php:25
-msgid "Email article"
+#: include/functions.php:1887
+msgid "Published articles"
msgstr ""
-#: help/main.php:29 help/prefs.php:30
-msgid "Other actions"
+#: include/functions.php:1889
+msgid "Fresh articles"
msgstr ""
-#: help/main.php:32
-msgid "Select article under mouse cursor"
+#: include/functions.php:1891 include/functions.php:2006
+msgid "All articles"
msgstr ""
-#: help/main.php:33 help/prefs.php:26 classes/pref/labels.php:281
-msgid "Create label"
+#: include/functions.php:1893
+msgid "Archived articles"
msgstr ""
-#: help/main.php:34 help/prefs.php:25 classes/pref/filters.php:580
-msgid "Create filter"
+#: include/functions.php:1895
+msgid "Recently read"
msgstr ""
-#: help/main.php:35
-msgid "Collapse sidebar"
+#: include/functions.php:1958
+msgid "Navigation"
msgstr ""
-#: help/main.php:36 help/prefs.php:34
-msgid "Display this help dialog"
+#: include/functions.php:1959
+msgid "Open next feed"
msgstr ""
-#: help/main.php:41
-msgid "Multiple articles actions"
+#: include/functions.php:1960
+msgid "Open previous feed"
msgstr ""
-#: help/main.php:44
-msgid "Select all articles"
+#: include/functions.php:1961
+msgid "Open next article"
msgstr ""
-#: help/main.php:45
-msgid "Select unread articles"
+#: include/functions.php:1962
+msgid "Open previous article"
msgstr ""
-#: help/main.php:46
-msgid "Select starred articles"
+#: include/functions.php:1963
+msgid "Open next article (don't scroll long articles)"
msgstr ""
-#: help/main.php:47
-msgid "Select published articles"
+#: include/functions.php:1964
+msgid "Open previous article (don't scroll long articles)"
msgstr ""
-#: help/main.php:48
-msgid "Invert article selection"
+#: include/functions.php:1965
+msgid "Move to next article (don't expand or mark read)"
msgstr ""
-#: help/main.php:49
-msgid "Deselect all articles"
+#: include/functions.php:1966
+msgid "Move to previous article (don't expand or mark read)"
msgstr ""
-#: help/main.php:52
-msgid "Feed actions"
+#: include/functions.php:1967
+msgid "Show search dialog"
msgstr ""
-#: help/main.php:55
-msgid "Refresh active feed"
+#: include/functions.php:1968
+msgid "Article"
msgstr ""
-#: help/main.php:57 help/prefs.php:22 classes/pref/feeds.php:1286
-msgid "Subscribe to feed"
+#: include/functions.php:1969
+msgid "Toggle starred"
msgstr ""
-#: help/main.php:58 js/FeedTree.js:135 js/PrefFeedTree.js:67
-msgid "Edit feed"
+#: include/functions.php:1970 js/viewfeed.js:1906
+msgid "Toggle published"
msgstr ""
-#: help/main.php:59
-msgid "Mark feed as read"
+#: include/functions.php:1971 js/viewfeed.js:1884
+msgid "Toggle unread"
msgstr ""
-#: help/main.php:60
-msgid "Reverse headlines order"
+#: include/functions.php:1972
+msgid "Edit tags"
msgstr ""
-#: help/main.php:61 js/FeedTree.js:170
-msgid "Mark all feeds as read"
+#: include/functions.php:1973
+msgid "Dismiss selected"
msgstr ""
-#: help/main.php:62
-msgid "If viewing category, (un)collapse it"
+#: include/functions.php:1974
+msgid "Dismiss read"
msgstr ""
-#: help/main.php:65 help/prefs.php:5
-msgid "Go to..."
+#: include/functions.php:1975
+msgid "Open in new window"
msgstr ""
-#: help/main.php:68 include/functions.php:1893
-msgid "All articles"
+#: include/functions.php:1976 js/viewfeed.js:1925
+msgid "Mark below as read"
msgstr ""
-#: help/main.php:69 include/functions.php:1891
-msgid "Fresh articles"
+#: include/functions.php:1977 js/viewfeed.js:1919
+msgid "Mark above as read"
msgstr ""
-#: help/main.php:70 include/functions.php:1887
-msgid "Starred articles"
+#: include/functions.php:1978
+msgid "Scroll down"
msgstr ""
-#: help/main.php:71 include/functions.php:1889
-msgid "Published articles"
+#: include/functions.php:1979
+msgid "Scroll up"
msgstr ""
-#: help/main.php:72
-msgid "Tag cloud"
+#: include/functions.php:1980
+msgid "Select article under cursor"
msgstr ""
-#: help/main.php:79
-msgid "Other interface tips are available in the Tiny Tiny RSS wiki."
+#: include/functions.php:1981
+msgid "Email article"
msgstr ""
-#: help/main.php:81 help/prefs.php:41
-msgid "Press any key to close this window."
+#: include/functions.php:1982
+msgid "Close/collapse article"
msgstr ""
-#: help/prefs.php:9
-msgid "My Feeds"
+#: include/functions.php:1983
+msgid "Toggle article expansion (combined mode)"
msgstr ""
-#: help/prefs.php:10
-msgid "Other Feeds"
+#: include/functions.php:1985 plugins/embed_original/init.php:31
+msgid "Toggle embed original"
msgstr ""
-#: help/prefs.php:19
-msgid "Panel actions"
+#: include/functions.php:1986
+msgid "Article selection"
msgstr ""
-#: help/prefs.php:23
-msgid "Top 25 feeds"
+#: include/functions.php:1987
+msgid "Select all articles"
msgstr ""
-#: help/prefs.php:24
-msgid "Edit feed categories"
+#: include/functions.php:1988
+msgid "Select unread"
msgstr ""
-#: help/prefs.php:27 classes/pref/users.php:386
-msgid "Create user"
+#: include/functions.php:1989
+msgid "Select starred"
msgstr ""
-#: help/prefs.php:33
-msgid "Focus search (if present)"
+#: include/functions.php:1990
+msgid "Select published"
msgstr ""
-#: help/prefs.php:39
-msgid ""
-"<b>Note:</b> not all actions may be available, depending on Tiny Tiny RSS "
-"configuration and your access level."
+#: include/functions.php:1991
+msgid "Invert selection"
msgstr ""
-#: mobile/login_form.php:28 include/login_form.php:209
-#: classes/handler/public.php:495
-msgid "Log in"
+#: include/functions.php:1992
+msgid "Deselect everything"
msgstr ""
-#: mobile/login_form.php:40 include/login_form.php:169
-#: classes/handler/public.php:479
-msgid "Login:"
+#: include/functions.php:1993 classes/pref/feeds.php:540
+#: classes/pref/feeds.php:783
+msgid "Feed"
msgstr ""
-#: mobile/login_form.php:45 include/login_form.php:178
-#: classes/handler/public.php:482
-msgid "Password:"
+#: include/functions.php:1994
+msgid "Refresh current feed"
msgstr ""
-#: mobile/login_form.php:52
-msgid "Open regular version"
+#: include/functions.php:1995
+msgid "Un/hide read feeds"
msgstr ""
-#: mobile/mobile-functions.php:68 mobile/mobile-functions.php:144
-#: mobile/mobile-functions.php:180 mobile/mobile-functions.php:207
-#: mobile/mobile-functions.php:243 mobile/mobile-functions.php:382
-#: mobile/prefs.php:19
-msgid "Home"
+#: include/functions.php:1996 classes/pref/feeds.php:1319
+msgid "Subscribe to feed"
msgstr ""
-#: mobile/mobile-functions.php:178 include/functions.php:1187
-#: include/functions.php:1834
-msgid "Special"
+#: include/functions.php:1997 js/FeedTree.js:135 js/PrefFeedTree.js:67
+msgid "Edit feed"
msgstr ""
-#: mobile/mobile-functions.php:418
-msgid "Nothing found (click to reload feed)."
+#: include/functions.php:1999
+msgid "Reverse headlines"
msgstr ""
-#: mobile/prefs.php:24
-msgid "Enable categories"
+#: include/functions.php:2000
+msgid "Debug feed update"
msgstr ""
-#: mobile/prefs.php:25 mobile/prefs.php:30 mobile/prefs.php:36
-#: mobile/prefs.php:41 mobile/prefs.php:46
-msgid "ON"
+#: include/functions.php:2001 js/FeedTree.js:178
+msgid "Mark all feeds as read"
msgstr ""
-#: mobile/prefs.php:25 mobile/prefs.php:30 mobile/prefs.php:36
-#: mobile/prefs.php:41 mobile/prefs.php:46
-msgid "OFF"
+#: include/functions.php:2002
+msgid "Un/collapse current category"
msgstr ""
-#: mobile/prefs.php:29
-msgid "Browse categories like folders"
+#: include/functions.php:2003
+msgid "Toggle combined mode"
msgstr ""
-#: mobile/prefs.php:35
-msgid "Show images in posts"
+#: include/functions.php:2004
+msgid "Toggle auto expand in combined mode"
msgstr ""
-#: mobile/prefs.php:40
-msgid "Hide read articles and feeds"
+#: include/functions.php:2005
+msgid "Go to"
msgstr ""
-#: mobile/prefs.php:45
-msgid "Sort feeds by unread count"
+#: include/functions.php:2007
+msgid "Fresh"
msgstr ""
-#: include/functions.php:564
-#, php-format
-msgid "Fatal: authentication module %s not found."
+#: include/functions.php:2010 js/tt-rss.js:457 js/tt-rss.js:642
+msgid "Tag cloud"
msgstr ""
-#: include/functions.php:682
-msgid "Session failed to validate (incorrect IP)"
+#: include/functions.php:2012
+msgid "Other"
msgstr ""
-#: include/functions.php:1198 include/functions.php:1737
-#: include/functions.php:1822 include/functions.php:1844
-#: include/functions.php:2699 classes/opml.php:416 classes/pref/feeds.php:193
-msgid "Uncategorized"
+#: include/functions.php:2013 classes/pref/labels.php:281
+msgid "Create label"
msgstr ""
-#: include/functions.php:1686 classes/dlg.php:387 classes/pref/filters.php:361
-msgid "All feeds"
+#: include/functions.php:2014 classes/pref/filters.php:652
+msgid "Create filter"
msgstr ""
-#: include/functions.php:1895
-msgid "Archived articles"
+#: include/functions.php:2015
+msgid "Un/collapse sidebar"
msgstr ""
-#: include/functions.php:1897
-msgid "Recently read"
+#: include/functions.php:2016
+msgid "Show help dialog"
msgstr ""
-#: include/functions.php:2346
+#: include/functions.php:2537
#, php-format
msgid "Search results: %s"
msgstr ""
-#: include/functions.php:3067 js/viewfeed.js:1998 js/viewfeed.js:1971
-#: js/viewfeed.js:1835
-msgid "Click to play"
-msgstr ""
-
-#: include/functions.php:3068 js/viewfeed.js:1997 js/viewfeed.js:1970
-#: js/viewfeed.js:1834
-msgid "Play"
-msgstr ""
-
-#: include/functions.php:3203
+#: include/functions.php:3132
msgid " - "
msgstr ""
-#: include/functions.php:3232 include/functions.php:4028 classes/rpc.php:414
+#: include/functions.php:3154 include/functions.php:3395
+#: classes/article.php:281
msgid "no tags"
msgstr ""
-#: include/functions.php:3242 classes/feeds.php:680
+#: include/functions.php:3164 classes/feeds.php:676
msgid "Edit tags for this article"
msgstr ""
-#: include/functions.php:3252 classes/feeds.php:707
-msgid "Open article in new tab"
-msgstr ""
-
-#: include/functions.php:3263 classes/feeds.php:718
-msgid "Close article"
-msgstr ""
-
-#: include/functions.php:3280 classes/feeds.php:616
+#: include/functions.php:3196 classes/feeds.php:628
msgid "Originally from:"
msgstr ""
-#: include/functions.php:3293 classes/feeds.php:629 classes/pref/feeds.php:511
+#: include/functions.php:3209 classes/feeds.php:641 classes/pref/feeds.php:559
msgid "Feed URL"
msgstr ""
-#: include/functions.php:3308 classes/feeds.php:68
-msgid "Visit the website"
-msgstr ""
-
-#: include/functions.php:3327
-msgid "Related"
-msgstr ""
-
-#: include/functions.php:3361 classes/dlg.php:30 classes/dlg.php:61
-#: classes/dlg.php:180 classes/dlg.php:203 classes/dlg.php:240
-#: classes/dlg.php:524 classes/dlg.php:559 classes/dlg.php:590
-#: classes/dlg.php:623 classes/dlg.php:724 classes/pref/users.php:106
-#: classes/pref/filters.php:101 classes/pref/feeds.php:1638
-#: classes/pref/feeds.php:1709 plugins/share/share.php:61
-#: plugins/updater/updater.php:301
+#: include/functions.php:3241 classes/dlg.php:37 classes/dlg.php:60
+#: classes/dlg.php:93 classes/dlg.php:159 classes/dlg.php:190
+#: classes/dlg.php:217 classes/dlg.php:250 classes/dlg.php:262
+#: classes/backend.php:105 classes/pref/users.php:95
+#: classes/pref/filters.php:145 classes/pref/prefs.php:1096
+#: classes/pref/feeds.php:1626 classes/pref/feeds.php:1694
+#: plugins/import_export/init.php:407 plugins/import_export/init.php:452
+#: plugins/googlereaderimport/init.php:193 plugins/share/init.php:65
+#: plugins/updater/init.php:368
msgid "Close this window"
msgstr ""
-#: include/functions.php:4053
+#: include/functions.php:3432
msgid "(edit note)"
msgstr ""
-#: include/functions.php:4525
-msgid "No feed selected."
-msgstr ""
-
-#: include/functions.php:4535 classes/feeds.php:766
-#, php-format
-msgid "Feeds last updated at %s"
-msgstr ""
-
-#: include/functions.php:4545 classes/feeds.php:776
-msgid "Some feeds have update errors (click for details)"
-msgstr ""
-
-#: include/functions.php:4689
+#: include/functions.php:3667
msgid "unknown type"
msgstr ""
-#: include/functions.php:4731
+#: include/functions.php:3723
msgid "Attachments"
msgstr ""
-#: include/functions.php:5191
+#: include/functions.php:4222
#, php-format
-msgid "%d archived articles"
+msgid "LibXML error %s at line %d (column %d): %s"
msgstr ""
-#: include/functions.php:5215
-msgid "No feeds found."
+#: include/login_form.php:183 classes/handler/public.php:475
+#: classes/handler/public.php:758
+msgid "Login:"
msgstr ""
-#: include/functions.php:5261
-msgid "Could not import: incorrect schema version."
+#: include/login_form.php:194 classes/handler/public.php:478
+msgid "Password:"
msgstr ""
-#: include/functions.php:5266
-msgid "Could not import: unrecognized document format."
+#: include/login_form.php:199
+msgid "I forgot my password"
msgstr ""
-#: include/functions.php:5425
-#, php-format
-msgid "Finished: %d articles processed, %d imported, %d feeds created."
+#: include/login_form.php:205
+msgid "Profile:"
msgstr ""
-#: include/functions.php:5431
-msgid "Could not load XML document."
+#: include/login_form.php:209 classes/handler/public.php:233
+#: classes/rpc.php:63 classes/pref/prefs.php:1034
+msgid "Default profile"
msgstr ""
-#: include/localized_schema.php:4
-msgid "Title or Content"
+#: include/login_form.php:217
+msgid "Use less traffic"
msgstr ""
-#: include/localized_schema.php:5
-msgid "Link"
+#: include/login_form.php:221
+msgid "Does not display images in articles, reduces automatic refreshes."
msgstr ""
-#: include/localized_schema.php:6
-msgid "Content"
+#: include/login_form.php:229
+msgid "Remember me"
msgstr ""
-#: include/localized_schema.php:7
-msgid "Article Date"
+#: include/login_form.php:235 classes/handler/public.php:483
+msgid "Log in"
msgstr ""
-#: include/localized_schema.php:9
-msgid "Delete article"
+#: include/sessions.php:61
+msgid "Session failed to validate (incorrect IP)"
msgstr ""
-#: include/localized_schema.php:11
-msgid "Set starred"
+#: classes/article.php:25
+msgid "Article not found."
msgstr ""
-#: include/localized_schema.php:12 js/viewfeed.js:501 js/viewfeed.js:490
-#: js/viewfeed.js:496
-msgid "Publish article"
+#: classes/article.php:179
+msgid "Tags for this article (separated by commas):"
msgstr ""
-#: include/localized_schema.php:13
-msgid "Assign tags"
+#: classes/article.php:204 classes/pref/users.php:172
+#: classes/pref/labels.php:79 classes/pref/filters.php:403
+#: classes/pref/prefs.php:980 classes/pref/feeds.php:762
+#: classes/pref/feeds.php:910 plugins/nsfw/init.php:83
+#: plugins/note/init.php:51 plugins/instances/init.php:245
+msgid "Save"
msgstr ""
-#: include/localized_schema.php:14 js/viewfeed.js:1962 js/viewfeed.js:1935
-#: js/viewfeed.js:1799
-msgid "Assign label"
+#: classes/article.php:206 classes/handler/public.php:452
+#: classes/handler/public.php:486 classes/feeds.php:1024
+#: classes/feeds.php:1076 classes/feeds.php:1136 classes/pref/users.php:174
+#: classes/pref/labels.php:81 classes/pref/filters.php:406
+#: classes/pref/filters.php:801 classes/pref/filters.php:877
+#: classes/pref/filters.php:944 classes/pref/prefs.php:982
+#: classes/pref/feeds.php:763 classes/pref/feeds.php:913
+#: classes/pref/feeds.php:1834 plugins/mail/init.php:124
+#: plugins/note/init.php:53 plugins/instances/init.php:248
+#: plugins/instances/init.php:436
+msgid "Cancel"
msgstr ""
-#: include/localized_schema.php:15
-msgid "Modify score"
+#: classes/handler/public.php:416 plugins/bookmarklets/init.php:40
+msgid "Share with Tiny Tiny RSS"
msgstr ""
-#: include/localized_schema.php:17
-msgid "General"
+#: classes/handler/public.php:424
+msgid "Title:"
msgstr ""
-#: include/localized_schema.php:18
-msgid "Interface"
+#: classes/handler/public.php:426 classes/pref/feeds.php:557
+#: classes/pref/feeds.php:798 plugins/instances/init.php:212
+#: plugins/instances/init.php:401
+msgid "URL:"
msgstr ""
-#: include/localized_schema.php:19
-msgid "Advanced"
+#: classes/handler/public.php:428
+msgid "Content:"
msgstr ""
-#: include/localized_schema.php:21
-msgid ""
-"This option is useful when you are reading several planet-type aggregators "
-"with partially colliding userbase. When disabled, it forces same posts from "
-"different feeds to appear only once."
+#: classes/handler/public.php:430
+msgid "Labels:"
msgstr ""
-#: include/localized_schema.php:22
-msgid ""
-"Display expanded list of feed articles, instead of separate displays for "
-"headlines and article content"
+#: classes/handler/public.php:449
+msgid "Shared article will appear in the Published feed."
msgstr ""
-#: include/localized_schema.php:23
-msgid ""
-"Automatically open next feed with unread articles after marking one as read"
+#: classes/handler/public.php:451
+msgid "Share"
msgstr ""
-#: include/localized_schema.php:24
-msgid ""
-"This option enables sending daily digest of new (and unread) headlines on "
-"your configured e-mail address"
+#: classes/handler/public.php:473
+msgid "Not logged in"
msgstr ""
-#: include/localized_schema.php:25
-msgid ""
-"This option enables marking articles as read automatically while you scroll "
-"article list."
+#: classes/handler/public.php:532
+msgid "Incorrect username or password"
msgstr ""
-#: include/localized_schema.php:26
-msgid "Strip all but most common HTML tags when reading articles."
+#: classes/handler/public.php:568 classes/handler/public.php:666
+#, php-format
+msgid "Already subscribed to <b>%s</b>."
msgstr ""
-#: include/localized_schema.php:27
-msgid ""
-"When auto-detecting tags in articles these tags will not be applied (comma-"
-"separated list)."
+#: classes/handler/public.php:571 classes/handler/public.php:657
+#, php-format
+msgid "Subscribed to <b>%s</b>."
msgstr ""
-#: include/localized_schema.php:28
-msgid ""
-"When this option is enabled, headlines in Special feeds and Labels are "
-"grouped by feeds"
+#: classes/handler/public.php:574 classes/handler/public.php:660
+#, php-format
+msgid "Could not subscribe to <b>%s</b>."
msgstr ""
-#: include/localized_schema.php:29
-msgid "Customize CSS stylesheet to your liking"
+#: classes/handler/public.php:577 classes/handler/public.php:663
+#, php-format
+msgid "No feeds found in <b>%s</b>."
msgstr ""
-#: include/localized_schema.php:30
-msgid "Use feed-specified date to sort headlines instead of local import date."
+#: classes/handler/public.php:580 classes/handler/public.php:669
+msgid "Multiple feed URLs found."
msgstr ""
-#: include/localized_schema.php:31
-msgid "Click to register your SSL client certificate with tt-rss"
+#: classes/handler/public.php:584 classes/handler/public.php:676
+#, php-format
+msgid "Could not subscribe to <b>%s</b>.<br>Can't download the Feed URL."
msgstr ""
-#: include/localized_schema.php:32
-msgid "Uses UTC timezone"
+#: classes/handler/public.php:602 classes/handler/public.php:694
+msgid "Subscribe to selected feed"
msgstr ""
-#: include/localized_schema.php:33
-msgid "Purge articles after this number of days (0 - disables)"
+#: classes/handler/public.php:627 classes/handler/public.php:718
+msgid "Edit subscription options"
msgstr ""
-#: include/localized_schema.php:34
-msgid "Default interval between feed updates"
+#: classes/handler/public.php:745
+msgid "Password recovery"
msgstr ""
-#: include/localized_schema.php:35
-msgid "Amount of articles to display at once"
+#: classes/handler/public.php:751
+msgid ""
+"You will need to provide valid account name and email. New password will be "
+"sent on your email address."
msgstr ""
-#: include/localized_schema.php:36
-msgid "Allow duplicate posts"
+#: classes/handler/public.php:773 classes/pref/users.php:356
+msgid "Reset password"
msgstr ""
-#: include/localized_schema.php:37
-msgid "Enable feed categories"
+#: classes/handler/public.php:783
+msgid "Some of the required form parameters are missing or incorrect."
msgstr ""
-#: include/localized_schema.php:38
-msgid "Show content preview in headlines list"
+#: classes/handler/public.php:787 classes/handler/public.php:813
+msgid "Go back"
msgstr ""
-#: include/localized_schema.php:39
-msgid "Short date format"
+#: classes/handler/public.php:809
+msgid "Sorry, login and email combination not found."
msgstr ""
-#: include/localized_schema.php:40
-msgid "Long date format"
+#: classes/handler/public.php:829
+msgid "Your access level is insufficient to run this script."
msgstr ""
-#: include/localized_schema.php:41
-msgid "Combined feed display"
+#: classes/handler/public.php:853
+msgid "Database Updater"
msgstr ""
-#: include/localized_schema.php:42
-msgid "Hide feeds with no unread messages"
+#: classes/handler/public.php:918
+msgid "Perform updates"
msgstr ""
-#: include/localized_schema.php:43
-msgid "On catchup show next feed"
+#: classes/dlg.php:16
+msgid ""
+"If you have imported labels and/or filters, you might need to reload "
+"preferences to see your new data."
msgstr ""
-#: include/localized_schema.php:44
-msgid "Sort feeds by unread articles count"
+#: classes/dlg.php:48
+msgid "Your Public OPML URL is:"
msgstr ""
-#: include/localized_schema.php:45
-msgid "Reverse headline order (oldest first)"
+#: classes/dlg.php:57 classes/dlg.php:214
+msgid "Generate new URL"
msgstr ""
-#: include/localized_schema.php:46
-msgid "Enable e-mail digest"
+#: classes/dlg.php:71
+msgid ""
+"Update daemon is enabled in configuration, but daemon process is not "
+"running, which prevents all feeds from updating. Please start the daemon "
+"process or contact instance owner."
msgstr ""
-#: include/localized_schema.php:47
-msgid "Confirm marking feed as read"
+#: classes/dlg.php:75 classes/dlg.php:84
+msgid "Last update:"
msgstr ""
-#: include/localized_schema.php:48
-msgid "Automatically mark articles as read"
+#: classes/dlg.php:80
+msgid ""
+"Update daemon is taking too long to perform a feed update. This could "
+"indicate a problem like crash or a hang. Please check the daemon process or "
+"contact instance owner."
msgstr ""
-#: include/localized_schema.php:49
-msgid "Strip unsafe tags from articles"
+#: classes/dlg.php:166
+msgid "Match:"
msgstr ""
-#: include/localized_schema.php:50
-msgid "Blacklisted tags"
+#: classes/dlg.php:168
+msgid "Any"
msgstr ""
-#: include/localized_schema.php:51
-msgid "Maximum age of fresh articles (in hours)"
+#: classes/dlg.php:171
+msgid "All tags."
msgstr ""
-#: include/localized_schema.php:52
-msgid "Mark articles in e-mail digest as read"
+#: classes/dlg.php:173
+msgid "Which Tags?"
msgstr ""
-#: include/localized_schema.php:53
-msgid "Automatically expand articles in combined mode"
+#: classes/dlg.php:186
+msgid "Display entries"
msgstr ""
-#: include/localized_schema.php:54
-msgid "Purge unread articles"
+#: classes/dlg.php:205
+msgid "You can view this feed as RSS using the following URL:"
msgstr ""
-#: include/localized_schema.php:55
-msgid "Show special feeds when hiding read feeds"
+#: classes/dlg.php:233 plugins/updater/init.php:331
+#, php-format
+msgid "New version of Tiny Tiny RSS is available (%s)."
msgstr ""
-#: include/localized_schema.php:56
-msgid "Group headlines in virtual feeds"
+#: classes/dlg.php:241
+msgid ""
+"You can update using built-in updater in the Preferences or by using update."
+"php"
msgstr ""
-#: include/localized_schema.php:57
-msgid "Do not show images in articles"
+#: classes/dlg.php:245 plugins/updater/init.php:335
+msgid "See the release notes"
msgstr ""
-#: include/localized_schema.php:58
-msgid "Enable external API"
+#: classes/dlg.php:247
+msgid "Download"
msgstr ""
-#: include/localized_schema.php:59
-msgid "User timezone"
+#: classes/dlg.php:255
+msgid "Error receiving version information or no new version available."
msgstr ""
-#: include/localized_schema.php:60 js/prefs.js:1856 js/prefs.js:1743
-msgid "Customize stylesheet"
+#: classes/feeds.php:56
+#, php-format
+msgid "Last updated: %s"
msgstr ""
-#: include/localized_schema.php:61
-msgid "Sort headlines by feed date"
+#: classes/feeds.php:75
+msgid "View as RSS feed"
msgstr ""
-#: include/localized_schema.php:62
-msgid "Login with an SSL certificate"
+#: classes/feeds.php:76 classes/feeds.php:128 classes/pref/feeds.php:1478
+msgid "View as RSS"
msgstr ""
-#: include/localized_schema.php:63
-msgid "Try to send digests around specified time"
+#: classes/feeds.php:83
+msgid "Select:"
msgstr ""
-#: include/localized_schema.php:64
-msgid "Assign articles to labels automatically"
+#: classes/feeds.php:84 classes/pref/users.php:341 classes/pref/labels.php:275
+#: classes/pref/filters.php:280 classes/pref/filters.php:328
+#: classes/pref/filters.php:646 classes/pref/filters.php:734
+#: classes/pref/filters.php:761 classes/pref/prefs.php:994
+#: classes/pref/feeds.php:1310 classes/pref/feeds.php:1575
+#: classes/pref/feeds.php:1641 plugins/instances/init.php:287
+msgid "All"
msgstr ""
-#: include/login_form.php:185 classes/handler/public.php:485
-msgid "Language:"
+#: classes/feeds.php:86
+msgid "Invert"
msgstr ""
-#: include/login_form.php:193
-msgid "Profile:"
+#: classes/feeds.php:87 classes/pref/users.php:343 classes/pref/labels.php:277
+#: classes/pref/filters.php:282 classes/pref/filters.php:330
+#: classes/pref/filters.php:648 classes/pref/filters.php:736
+#: classes/pref/filters.php:763 classes/pref/prefs.php:996
+#: classes/pref/feeds.php:1312 classes/pref/feeds.php:1577
+#: classes/pref/feeds.php:1643 plugins/instances/init.php:289
+msgid "None"
msgstr ""
-#: include/login_form.php:197 classes/handler/public.php:208
-#: classes/rpc.php:147 classes/dlg.php:116
-msgid "Default profile"
+#: classes/feeds.php:93
+msgid "More..."
msgstr ""
-#: include/login_form.php:205
-msgid "Use less traffic"
+#: classes/feeds.php:95
+msgid "Selection toggle:"
msgstr ""
-#: classes/article.php:25
-msgid "Article not found."
+#: classes/feeds.php:101
+msgid "Selection:"
msgstr ""
-#: classes/handler/public.php:420 classes/pref/feeds.php:1480
-msgid "Share with Tiny Tiny RSS"
+#: classes/feeds.php:104
+msgid "Set score"
msgstr ""
-#: classes/handler/public.php:428
-msgid "Title:"
+#: classes/feeds.php:107
+msgid "Archive"
msgstr ""
-#: classes/handler/public.php:430 classes/dlg.php:667
-#: classes/pref/feeds.php:509 classes/pref/feeds.php:762
-#: plugins/instances/instances.php:100
-msgid "URL:"
+#: classes/feeds.php:109
+msgid "Move back"
msgstr ""
-#: classes/handler/public.php:432
-msgid "Content:"
+#: classes/feeds.php:110 classes/pref/filters.php:289
+#: classes/pref/filters.php:337 classes/pref/filters.php:743
+#: classes/pref/filters.php:770
+msgid "Delete"
msgstr ""
-#: classes/handler/public.php:434
-msgid "Labels:"
+#: classes/feeds.php:115 classes/feeds.php:120 plugins/mailto/init.php:25
+#: plugins/mail/init.php:26
+msgid "Forward by email"
msgstr ""
-#: classes/handler/public.php:453
-msgid "Shared article will appear in the Published feed."
+#: classes/feeds.php:124
+msgid "Feed:"
msgstr ""
-#: classes/handler/public.php:455
-msgid "Share"
+#: classes/feeds.php:197 classes/feeds.php:824
+msgid "Feed not found."
msgstr ""
-#: classes/handler/public.php:456 classes/handler/public.php:498
-#: classes/dlg.php:315 classes/dlg.php:366 classes/dlg.php:426
-#: classes/dlg.php:457 classes/dlg.php:652 classes/dlg.php:702
-#: classes/dlg.php:774 classes/pref/users.php:194 classes/pref/labels.php:81
-#: classes/pref/filters.php:342 classes/pref/filters.php:722
-#: classes/pref/filters.php:791 classes/pref/filters.php:858
-#: classes/pref/feeds.php:729 classes/pref/feeds.php:880
-#: plugins/mail/mail.php:126 plugins/note/note.php:49
-#: plugins/instances/instances.php:136
-msgid "Cancel"
+#: classes/feeds.php:254
+msgid "Never"
msgstr ""
-#: classes/handler/public.php:477
-msgid "Not logged in"
+#: classes/feeds.php:360
+#, php-format
+msgid "Imported at %s"
msgstr ""
-#: classes/handler/public.php:537
-msgid "Incorrect username or password"
+#: classes/feeds.php:520
+msgid "mark as read"
msgstr ""
-#: classes/handler/public.php:573 classes/handler/public.php:670
-#, php-format
-msgid "Already subscribed to <b>%s</b>."
+#: classes/feeds.php:570
+msgid "Collapse article"
msgstr ""
-#: classes/handler/public.php:576 classes/handler/public.php:661
-#, php-format
-msgid "Subscribed to <b>%s</b>."
+#: classes/feeds.php:725
+msgid "No unread articles found to display."
msgstr ""
-#: classes/handler/public.php:579 classes/handler/public.php:664
-#, php-format
-msgid "Could not subscribe to <b>%s</b>."
+#: classes/feeds.php:728
+msgid "No updated articles found to display."
msgstr ""
-#: classes/handler/public.php:582 classes/handler/public.php:667
-#, php-format
-msgid "No feeds found in <b>%s</b>."
+#: classes/feeds.php:731
+msgid "No starred articles found to display."
msgstr ""
-#: classes/handler/public.php:585 classes/handler/public.php:673
-msgid "Multiple feed URLs found."
+#: classes/feeds.php:735
+msgid ""
+"No articles found to display. You can assign articles to labels manually "
+"from article header context menu (applies to all selected articles) or use a "
+"filter."
msgstr ""
-#: classes/handler/public.php:589 classes/handler/public.php:678
+#: classes/feeds.php:737
+msgid "No articles found to display."
+msgstr ""
+
+#: classes/feeds.php:752 classes/feeds.php:919
#, php-format
-msgid "Could not subscribe to <b>%s</b>.<br>Can't download the Feed URL."
+msgid "Feeds last updated at %s"
msgstr ""
-#: classes/handler/public.php:607 classes/handler/public.php:696
-msgid "Subscribe to selected feed"
+#: classes/feeds.php:762 classes/feeds.php:929
+msgid "Some feeds have update errors (click for details)"
msgstr ""
-#: classes/handler/public.php:632 classes/handler/public.php:720
-msgid "Edit subscription options"
+#: classes/feeds.php:909
+msgid "No feed selected."
msgstr ""
-#: classes/auth/internal.php:45
-msgid "Please enter your one time password:"
+#: classes/feeds.php:962 classes/feeds.php:970
+msgid "Feed or site URL"
msgstr ""
-#: classes/auth/internal.php:168
-msgid "Password has been changed."
+#: classes/feeds.php:976 classes/pref/feeds.php:579 classes/pref/feeds.php:811
+#: classes/pref/feeds.php:1798
+msgid "Place in category:"
msgstr ""
-#: classes/auth/internal.php:170
-msgid "Old password is incorrect."
+#: classes/feeds.php:984
+msgid "Available feeds"
msgstr ""
-#: classes/dlg.php:26
-msgid "Prepare data"
+#: classes/feeds.php:996 classes/pref/users.php:135 classes/pref/feeds.php:609
+#: classes/pref/feeds.php:847
+msgid "Authentication"
msgstr ""
-#: classes/dlg.php:40
-msgid ""
-"If you have imported labels and/or filters, you might need to reload "
-"preferences to see your new data."
+#: classes/feeds.php:1000 classes/pref/users.php:398
+#: classes/pref/feeds.php:615 classes/pref/feeds.php:851
+#: classes/pref/feeds.php:1812
+msgid "Login"
msgstr ""
-#: classes/dlg.php:73 classes/pref/users.php:378 classes/pref/labels.php:272
-#: classes/pref/filters.php:223 classes/pref/filters.php:270
-#: classes/pref/filters.php:571 classes/pref/filters.php:650
-#: classes/pref/filters.php:677 classes/pref/feeds.php:1274
-#: classes/pref/feeds.php:1583 classes/pref/feeds.php:1652
-#: plugins/instances/instances.php:172
-msgid "Select"
+#: classes/feeds.php:1003 classes/pref/prefs.php:260
+#: classes/pref/feeds.php:628 classes/pref/feeds.php:857
+#: classes/pref/feeds.php:1815
+msgid "Password"
msgstr ""
-#: classes/dlg.php:76 classes/feeds.php:92 classes/pref/users.php:381
-#: classes/pref/labels.php:275 classes/pref/filters.php:226
-#: classes/pref/filters.php:273 classes/pref/filters.php:574
-#: classes/pref/filters.php:653 classes/pref/filters.php:680
-#: classes/pref/feeds.php:1277 classes/pref/feeds.php:1586
-#: classes/pref/feeds.php:1655 plugins/instances/instances.php:175
-msgid "All"
+#: classes/feeds.php:1013
+msgid "This feed requires authentication."
msgstr ""
-#: classes/dlg.php:78 classes/feeds.php:95 classes/pref/users.php:383
-#: classes/pref/labels.php:277 classes/pref/filters.php:228
-#: classes/pref/filters.php:275 classes/pref/filters.php:576
-#: classes/pref/filters.php:655 classes/pref/filters.php:682
-#: classes/pref/feeds.php:1279 classes/pref/feeds.php:1588
-#: classes/pref/feeds.php:1657 plugins/instances/instances.php:177
-msgid "None"
+#: classes/feeds.php:1018 classes/feeds.php:1074 classes/pref/feeds.php:1833
+msgid "Subscribe"
msgstr ""
-#: classes/dlg.php:87
-msgid "Create profile"
+#: classes/feeds.php:1021
+msgid "More feeds"
msgstr ""
-#: classes/dlg.php:110 classes/dlg.php:140
-msgid "(active)"
+#: classes/feeds.php:1044 classes/feeds.php:1135 classes/pref/users.php:328
+#: classes/pref/filters.php:639 classes/pref/feeds.php:1303 js/tt-rss.js:174
+msgid "Search"
msgstr ""
-#: classes/dlg.php:174
-msgid "Remove selected profiles"
+#: classes/feeds.php:1048
+msgid "Popular feeds"
msgstr ""
-#: classes/dlg.php:176
-msgid "Activate profile"
+#: classes/feeds.php:1049
+msgid "Feed archive"
msgstr ""
-#: classes/dlg.php:186
-msgid "Public OPML URL"
+#: classes/feeds.php:1052
+msgid "limit:"
msgstr ""
-#: classes/dlg.php:191
-msgid "Your Public OPML URL is:"
+#: classes/feeds.php:1075 classes/pref/users.php:354
+#: classes/pref/labels.php:284 classes/pref/filters.php:396
+#: classes/pref/filters.php:665 classes/pref/feeds.php:733
+#: plugins/instances/init.php:294
+msgid "Remove"
msgstr ""
-#: classes/dlg.php:200 classes/dlg.php:587
-msgid "Generate new URL"
+#: classes/feeds.php:1086
+msgid "Look for"
msgstr ""
-#: classes/dlg.php:212
-msgid "Notice"
+#: classes/feeds.php:1094
+msgid "Limit search to:"
msgstr ""
-#: classes/dlg.php:218
-msgid ""
-"Update daemon is enabled in configuration, but daemon process is not "
-"running, which prevents all feeds from updating. Please start the daemon "
-"process or contact instance owner."
+#: classes/feeds.php:1110
+msgid "This feed"
msgstr ""
-#: classes/dlg.php:222 classes/dlg.php:231
-msgid "Last update:"
+#: classes/backend.php:33
+msgid "Other interface tips are available in the Tiny Tiny RSS wiki."
msgstr ""
-#: classes/dlg.php:227
-msgid ""
-"Update daemon is taking too long to perform a feed update. This could "
-"indicate a problem like crash or a hang. Please check the daemon process or "
-"contact instance owner."
+#: classes/backend.php:38
+msgid "Keyboard Shortcuts"
msgstr ""
-#: classes/dlg.php:252 classes/dlg.php:261
-msgid "Feed or site URL"
+#: classes/backend.php:61
+msgid "Shift"
msgstr ""
-#: classes/dlg.php:267 classes/dlg.php:738 classes/pref/feeds.php:531
-#: classes/pref/feeds.php:775
-msgid "Place in category:"
+#: classes/backend.php:64
+msgid "Ctrl"
msgstr ""
-#: classes/dlg.php:275
-msgid "Available feeds"
+#: classes/backend.php:99
+msgid "Help topic not found."
msgstr ""
-#: classes/dlg.php:287 classes/pref/users.php:155 classes/pref/feeds.php:561
-#: classes/pref/feeds.php:811
-msgid "Authentication"
+#: classes/opml.php:28 classes/opml.php:33
+msgid "OPML Utility"
msgstr ""
-#: classes/dlg.php:291 classes/dlg.php:752 classes/pref/users.php:438
-#: classes/pref/feeds.php:567 classes/pref/feeds.php:815
-msgid "Login"
+#: classes/opml.php:37
+msgid "Importing OPML..."
msgstr ""
-#: classes/dlg.php:294 classes/dlg.php:755 classes/pref/prefs.php:200
-#: classes/pref/feeds.php:573 classes/pref/feeds.php:821
-msgid "Password"
+#: classes/opml.php:41
+msgid "Return to preferences"
msgstr ""
-#: classes/dlg.php:304
-msgid "This feed requires authentication."
+#: classes/opml.php:270
+#, php-format
+msgid "Adding feed: %s"
msgstr ""
-#: classes/dlg.php:309 classes/dlg.php:364 classes/dlg.php:773
-msgid "Subscribe"
+#: classes/opml.php:281
+#, php-format
+msgid "Duplicate feed: %s"
msgstr ""
-#: classes/dlg.php:312
-msgid "More feeds"
+#: classes/opml.php:295
+#, php-format
+msgid "Adding label %s"
msgstr ""
-#: classes/dlg.php:336 classes/dlg.php:425 classes/pref/users.php:368
-#: classes/pref/filters.php:567 classes/pref/feeds.php:1270 js/tt-rss.js:234
-#: js/tt-rss.js:187
-msgid "Search"
+#: classes/opml.php:298
+#, php-format
+msgid "Duplicate label: %s"
msgstr ""
-#: classes/dlg.php:340
-msgid "Popular feeds"
+#: classes/opml.php:310
+#, php-format
+msgid "Setting preference key %s to %s"
msgstr ""
-#: classes/dlg.php:341
-msgid "Feed archive"
+#: classes/opml.php:339
+msgid "Adding filter..."
msgstr ""
-#: classes/dlg.php:344
-msgid "limit:"
+#: classes/opml.php:416
+#, php-format
+msgid "Processing category: %s"
msgstr ""
-#: classes/dlg.php:365 classes/pref/users.php:394 classes/pref/labels.php:284
-#: classes/pref/filters.php:332 classes/pref/filters.php:589
-#: classes/pref/feeds.php:702 plugins/instances/instances.php:182
-msgid "Remove"
+#: classes/opml.php:465 plugins/import_export/init.php:420
+#: plugins/googlereaderimport/init.php:66
+#, php-format
+msgid "Upload failed with error code %d"
msgstr ""
-#: classes/dlg.php:376
-msgid "Look for"
+#: classes/opml.php:479 plugins/import_export/init.php:434
+#: plugins/googlereaderimport/init.php:80
+msgid "Unable to move uploaded file."
msgstr ""
-#: classes/dlg.php:384
-msgid "Limit search to:"
+#: classes/opml.php:483 plugins/import_export/init.php:438
+#: plugins/googlereaderimport/init.php:84
+msgid "Error: please upload OPML file."
msgstr ""
-#: classes/dlg.php:400
-msgid "This feed"
+#: classes/opml.php:492
+msgid "Error: unable to find moved OPML file."
msgstr ""
-#: classes/dlg.php:432
-msgid "Tags for this article (separated by commas):"
+#: classes/opml.php:499 plugins/googlereaderimport/init.php:186
+msgid "Error while parsing document."
msgstr ""
-#: classes/dlg.php:455 classes/dlg.php:650 classes/pref/users.php:192
-#: classes/pref/labels.php:79 classes/pref/filters.php:339
-#: classes/pref/feeds.php:728 classes/pref/feeds.php:877
-#: plugins/note/note.php:47 plugins/instances/instances.php:133
-msgid "Save"
+#: classes/pref/users.php:6 classes/pref/system.php:8
+#: plugins/instances/init.php:154
+msgid "Your access level is insufficient to open this tab."
msgstr ""
-#: classes/dlg.php:463
-msgid "Tag Cloud"
+#: classes/pref/users.php:34
+msgid "User not found"
msgstr ""
-#: classes/dlg.php:532
-msgid "Select item(s) by tags"
+#: classes/pref/users.php:53 classes/pref/users.php:400
+msgid "Registered"
msgstr ""
-#: classes/dlg.php:535
-msgid "Match:"
+#: classes/pref/users.php:54
+msgid "Last logged in"
msgstr ""
-#: classes/dlg.php:537
-msgid "Any"
+#: classes/pref/users.php:61
+msgid "Subscribed feeds count"
msgstr ""
-#: classes/dlg.php:540
-msgid "All tags."
+#: classes/pref/users.php:65
+msgid "Subscribed feeds"
msgstr ""
-#: classes/dlg.php:542
-msgid "Which Tags?"
+#: classes/pref/users.php:138
+msgid "Access level: "
msgstr ""
-#: classes/dlg.php:555
-msgid "Display entries"
+#: classes/pref/users.php:151
+msgid "Change password to"
msgstr ""
-#: classes/dlg.php:567 classes/feeds.php:129
-msgid "View as RSS"
+#: classes/pref/users.php:157 classes/pref/feeds.php:636
+#: classes/pref/feeds.php:863
+msgid "Options"
msgstr ""
-#: classes/dlg.php:578
-msgid "You can view this feed as RSS using the following URL:"
+#: classes/pref/users.php:160
+msgid "E-mail: "
msgstr ""
-#: classes/dlg.php:606 plugins/updater/updater.php:276
+#: classes/pref/users.php:236
#, php-format
-msgid "New version of Tiny Tiny RSS is available (%s)."
+msgid "Added user <b>%s</b> with password <b>%s</b>"
msgstr ""
-#: classes/dlg.php:614
-msgid ""
-"You can update using built-in updater in the Preferences or by using update."
-"php"
+#: classes/pref/users.php:243
+#, php-format
+msgid "Could not create user <b>%s</b>"
msgstr ""
-#: classes/dlg.php:618 classes/pref/users.php:390
-msgid "Details"
+#: classes/pref/users.php:247
+#, php-format
+msgid "User <b>%s</b> already exists."
msgstr ""
-#: classes/dlg.php:620
-msgid "Download"
+#: classes/pref/users.php:269
+#, php-format
+msgid "Changed password of user <b>%s</b> to <b>%s</b>"
msgstr ""
-#: classes/dlg.php:634
+#: classes/pref/users.php:271
#, php-format
-msgid ""
-"You can override colors, fonts and layout of your currently selected theme "
-"with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink"
-"\" href=\"%s\">This file</a> can be used as a baseline."
+msgid "Sending new password of user <b>%s</b> to <b>%s</b>"
msgstr ""
-#: classes/dlg.php:661 plugins/instances/instances.php:92
-msgid "Instance"
+#: classes/pref/users.php:295
+msgid "[tt-rss] Password change notification"
msgstr ""
-#: classes/dlg.php:670 plugins/instances/instances.php:103
-#: plugins/instances/instances.php:200
-msgid "Instance URL"
+#: classes/pref/users.php:338 classes/pref/labels.php:272
+#: classes/pref/filters.php:277 classes/pref/filters.php:325
+#: classes/pref/filters.php:643 classes/pref/filters.php:731
+#: classes/pref/filters.php:758 classes/pref/prefs.php:991
+#: classes/pref/feeds.php:1307 classes/pref/feeds.php:1572
+#: classes/pref/feeds.php:1638 plugins/instances/init.php:284
+msgid "Select"
msgstr ""
-#: classes/dlg.php:680 plugins/instances/instances.php:114
-msgid "Access key:"
+#: classes/pref/users.php:346
+msgid "Create user"
msgstr ""
-#: classes/dlg.php:683 plugins/instances/instances.php:117
-#: plugins/instances/instances.php:201
-msgid "Access key"
+#: classes/pref/users.php:350
+msgid "Details"
msgstr ""
-#: classes/dlg.php:687 plugins/instances/instances.php:121
-msgid "Use one access key for both linked instances."
+#: classes/pref/users.php:352 classes/pref/filters.php:658
+#: plugins/instances/init.php:293
+msgid "Edit"
msgstr ""
-#: classes/dlg.php:695 plugins/instances/instances.php:129
-msgid "Generate new key"
+#: classes/pref/users.php:399
+msgid "Access Level"
msgstr ""
-#: classes/dlg.php:699
-msgid "Create link"
+#: classes/pref/users.php:401
+msgid "Last login"
msgstr ""
-#: classes/dlg.php:717
-#, php-format
-msgid ""
-"Could not upload file. You might need to adjust upload_max_filesize\n"
-"\t\t\t\tin PHP.ini (current value = %s)"
+#: classes/pref/users.php:420 plugins/instances/init.php:334
+msgid "Click to edit"
msgstr ""
-#: classes/dlg.php:735
-msgid "Add one valid RSS feed per line (no feed detection is done)"
+#: classes/pref/users.php:440
+msgid "No users defined."
msgstr ""
-#: classes/dlg.php:744
-msgid "Feeds to subscribe, One per line"
+#: classes/pref/users.php:442
+msgid "No matching users found."
msgstr ""
-#: classes/dlg.php:766
-msgid "Feeds require authentication."
+#: classes/pref/labels.php:22 classes/pref/filters.php:266
+#: classes/pref/filters.php:722
+msgid "Caption"
msgstr ""
-#: classes/feeds.php:83
-msgid "View as RSS feed"
+#: classes/pref/labels.php:37
+msgid "Colors"
msgstr ""
-#: classes/feeds.php:91
-msgid "Select:"
+#: classes/pref/labels.php:42
+msgid "Foreground:"
msgstr ""
-#: classes/feeds.php:94
-msgid "Invert"
+#: classes/pref/labels.php:42
+msgid "Background:"
msgstr ""
-#: classes/feeds.php:103
-msgid "Selection toggle:"
+#: classes/pref/labels.php:232
+#, php-format
+msgid "Created label <b>%s</b>"
msgstr ""
-#: classes/feeds.php:109
-msgid "Selection:"
+#: classes/pref/labels.php:287
+msgid "Clear colors"
msgstr ""
-#: classes/feeds.php:112
-msgid "Set score"
+#: classes/pref/filters.php:94
+msgid "Articles matching this filter:"
msgstr ""
-#: classes/feeds.php:115
-msgid "Archive"
+#: classes/pref/filters.php:131
+msgid "No recent articles matching this filter have been found."
msgstr ""
-#: classes/feeds.php:117
-msgid "Move back"
+#: classes/pref/filters.php:135
+msgid ""
+"Complex expressions might not give results while testing due to issues with "
+"database server regexp implementation."
msgstr ""
-#: classes/feeds.php:118 classes/pref/filters.php:235
-#: classes/pref/filters.php:282 classes/pref/filters.php:662
-#: classes/pref/filters.php:689
-msgid "Delete"
+#: classes/pref/filters.php:272 classes/pref/filters.php:726
+#: classes/pref/filters.php:841
+msgid "Match"
msgstr ""
-#: classes/feeds.php:122 plugins/mail/mail.php:22
-msgid "Forward by email"
+#: classes/pref/filters.php:286 classes/pref/filters.php:334
+#: classes/pref/filters.php:740 classes/pref/filters.php:767
+msgid "Add"
msgstr ""
-#: classes/feeds.php:125
-msgid "Feed:"
+#: classes/pref/filters.php:320 classes/pref/filters.php:753
+msgid "Apply actions"
msgstr ""
-#: classes/feeds.php:190 classes/feeds.php:844
-msgid "Feed not found."
+#: classes/pref/filters.php:370 classes/pref/filters.php:782
+msgid "Enabled"
msgstr ""
-#: classes/feeds.php:434 classes/feeds.php:516
-msgid "mark as read"
+#: classes/pref/filters.php:379 classes/pref/filters.php:785
+msgid "Match any rule"
msgstr ""
-#: classes/feeds.php:739
-msgid "No unread articles found to display."
+#: classes/pref/filters.php:388 classes/pref/filters.php:788
+msgid "Inverse matching"
msgstr ""
-#: classes/feeds.php:742
-msgid "No updated articles found to display."
+#: classes/pref/filters.php:400 classes/pref/filters.php:795
+msgid "Test"
msgstr ""
-#: classes/feeds.php:745
-msgid "No starred articles found to display."
+#: classes/pref/filters.php:433
+msgid "(inverse)"
msgstr ""
-#: classes/feeds.php:749
-msgid ""
-"No articles found to display. You can assign articles to labels manually "
-"(see the Actions menu above) or use a filter."
+#: classes/pref/filters.php:432
+#, php-format
+msgid "%s on %s in %s %s"
msgstr ""
-#: classes/feeds.php:751
-msgid "No articles found to display."
+#: classes/pref/filters.php:655
+msgid "Combine"
msgstr ""
-#: classes/backend.php:26
-msgid "Help topic not found."
+#: classes/pref/filters.php:661 classes/pref/feeds.php:1323
+#: classes/pref/feeds.php:1337
+msgid "Reset sort order"
msgstr ""
-#: classes/opml.php:28 classes/opml.php:33
-msgid "OPML Utility"
+#: classes/pref/filters.php:669 classes/pref/feeds.php:1359
+msgid "Rescore articles"
msgstr ""
-#: classes/opml.php:37
-msgid "Importing OPML..."
+#: classes/pref/filters.php:798
+msgid "Create"
msgstr ""
-#: classes/opml.php:41
-msgid "Return to preferences"
+#: classes/pref/filters.php:853
+msgid "Inverse regular expression matching"
msgstr ""
-#: classes/opml.php:270
-#, php-format
-msgid "Adding feed: %s"
+#: classes/pref/filters.php:855
+msgid "on field"
msgstr ""
-#: classes/opml.php:281
-#, php-format
-msgid "Duplicate feed: %s"
+#: classes/pref/filters.php:861 js/PrefFilterTree.js:45
+msgid "in"
msgstr ""
-#: classes/opml.php:295
-#, php-format
-msgid "Adding label %s"
+#: classes/pref/filters.php:874
+msgid "Save rule"
msgstr ""
-#: classes/opml.php:298
-#, php-format
-msgid "Duplicate label: %s"
+#: classes/pref/filters.php:874 js/functions.js:1013
+msgid "Add rule"
msgstr ""
-#: classes/opml.php:310
-#, php-format
-msgid "Setting preference key %s to %s"
+#: classes/pref/filters.php:897
+msgid "Perform Action"
msgstr ""
-#: classes/opml.php:339
-msgid "Adding filter..."
+#: classes/pref/filters.php:923
+msgid "with parameters:"
msgstr ""
-#: classes/opml.php:416
-#, php-format
-msgid "Processing category: %s"
+#: classes/pref/filters.php:941
+msgid "Save action"
msgstr ""
-#: classes/opml.php:467
-msgid "Error: please upload OPML file."
+#: classes/pref/filters.php:941 js/functions.js:1039
+msgid "Add action"
msgstr ""
-#: classes/opml.php:474
-msgid "Error while parsing document."
+#: classes/pref/filters.php:964
+msgid "[No caption]"
msgstr ""
-#: classes/pref/users.php:6 plugins/instances/instances.php:42
-msgid "Your access level is insufficient to open this tab."
+#: classes/pref/prefs.php:18
+msgid "General"
msgstr ""
-#: classes/pref/users.php:27
-msgid "User details"
+#: classes/pref/prefs.php:19
+msgid "Interface"
msgstr ""
-#: classes/pref/users.php:41
-msgid "User not found"
+#: classes/pref/prefs.php:20
+msgid "Advanced"
msgstr ""
-#: classes/pref/users.php:60 classes/pref/users.php:440
-msgid "Registered"
+#: classes/pref/prefs.php:21
+msgid "Digest"
msgstr ""
-#: classes/pref/users.php:61
-msgid "Last logged in"
+#: classes/pref/prefs.php:25
+msgid "Allow duplicate articles"
msgstr ""
-#: classes/pref/users.php:68
-msgid "Subscribed feeds count"
+#: classes/pref/prefs.php:26
+msgid "Assign articles to labels automatically"
msgstr ""
-#: classes/pref/users.php:72
-msgid "Subscribed feeds"
+#: classes/pref/prefs.php:27
+msgid "Blacklisted tags"
msgstr ""
-#: classes/pref/users.php:122
-msgid "User Editor"
+#: classes/pref/prefs.php:27
+msgid ""
+"When auto-detecting tags in articles these tags will not be applied (comma-"
+"separated list)."
msgstr ""
-#: classes/pref/users.php:158
-msgid "Access level: "
+#: classes/pref/prefs.php:28
+msgid "Automatically mark articles as read"
msgstr ""
-#: classes/pref/users.php:171
-msgid "Change password to"
+#: classes/pref/prefs.php:28
+msgid ""
+"This option enables marking articles as read automatically while you scroll "
+"article list."
msgstr ""
-#: classes/pref/users.php:177 classes/pref/feeds.php:581
-#: classes/pref/feeds.php:827
-msgid "Options"
+#: classes/pref/prefs.php:29
+msgid "Automatically expand articles in combined mode"
msgstr ""
-#: classes/pref/users.php:180
-msgid "E-mail: "
+#: classes/pref/prefs.php:30
+msgid "Combined feed display"
msgstr ""
-#: classes/pref/users.php:258
-#, php-format
-msgid "Added user <b>%s</b> with password <b>%s</b>"
+#: classes/pref/prefs.php:30
+msgid ""
+"Display expanded list of feed articles, instead of separate displays for "
+"headlines and article content"
msgstr ""
-#: classes/pref/users.php:265
-#, php-format
-msgid "Could not create user <b>%s</b>"
+#: classes/pref/prefs.php:31
+msgid "Confirm marking feed as read"
msgstr ""
-#: classes/pref/users.php:269
-#, php-format
-msgid "User <b>%s</b> already exists."
+#: classes/pref/prefs.php:32
+msgid "Amount of articles to display at once"
msgstr ""
-#: classes/pref/users.php:292
-#, php-format
+#: classes/pref/prefs.php:33
+msgid "Default feed update interval"
+msgstr ""
+
+#: classes/pref/prefs.php:33
msgid ""
-"Changed password of user <b>%s</b>\n"
-"\t\t\t\t to <b>%s</b>"
+"Shortest interval at which a feed will be checked for updates regardless of "
+"update method"
msgstr ""
-#: classes/pref/users.php:299
-#, php-format
-msgid "Notifying <b>%s</b>."
+#: classes/pref/prefs.php:34
+msgid "Mark articles in e-mail digest as read"
msgstr ""
-#: classes/pref/users.php:336
-msgid "[tt-rss] Password change notification"
+#: classes/pref/prefs.php:35
+msgid "Enable e-mail digest"
msgstr ""
-#: classes/pref/users.php:392 classes/pref/filters.php:586
-#: plugins/instances/instances.php:181
-msgid "Edit"
+#: classes/pref/prefs.php:35
+msgid ""
+"This option enables sending daily digest of new (and unread) headlines on "
+"your configured e-mail address"
msgstr ""
-#: classes/pref/users.php:396
-msgid "Reset password"
+#: classes/pref/prefs.php:36
+msgid "Try to send digests around specified time"
msgstr ""
-#: classes/pref/users.php:439
-msgid "Access Level"
+#: classes/pref/prefs.php:36
+msgid "Uses UTC timezone"
msgstr ""
-#: classes/pref/users.php:441
-msgid "Last login"
+#: classes/pref/prefs.php:37
+msgid "Enable API access"
msgstr ""
-#: classes/pref/users.php:461 plugins/instances/instances.php:222
-msgid "Click to edit"
+#: classes/pref/prefs.php:37
+msgid "Allows external clients to access this account through the API"
msgstr ""
-#: classes/pref/users.php:481
-msgid "No users defined."
+#: classes/pref/prefs.php:38
+msgid "Enable feed categories"
msgstr ""
-#: classes/pref/users.php:483
-msgid "No matching users found."
+#: classes/pref/prefs.php:39
+msgid "Sort feeds by unread articles count"
msgstr ""
-#: classes/pref/labels.php:22
-msgid "Caption"
+#: classes/pref/prefs.php:40
+msgid "Maximum age of fresh articles (in hours)"
msgstr ""
-#: classes/pref/labels.php:37
-msgid "Colors"
+#: classes/pref/prefs.php:41
+msgid "Hide feeds with no unread articles"
msgstr ""
-#: classes/pref/labels.php:42
-msgid "Foreground:"
+#: classes/pref/prefs.php:42
+msgid "Show special feeds when hiding read feeds"
msgstr ""
-#: classes/pref/labels.php:42
-msgid "Background:"
+#: classes/pref/prefs.php:43
+msgid "Long date format"
msgstr ""
-#: classes/pref/labels.php:232
-#, php-format
-msgid "Created label <b>%s</b>"
+#: classes/pref/prefs.php:44
+msgid "On catchup show next feed"
msgstr ""
-#: classes/pref/labels.php:287
-msgid "Clear colors"
+#: classes/pref/prefs.php:44
+msgid ""
+"Automatically open next feed with unread articles after marking one as read"
msgstr ""
-#: classes/pref/filters.php:57
-msgid "Articles matching this filter:"
+#: classes/pref/prefs.php:45
+msgid "Purge articles after this number of days (0 - disables)"
msgstr ""
-#: classes/pref/filters.php:94
-msgid "No recent articles matching this filter have been found."
+#: classes/pref/prefs.php:46
+msgid "Purge unread articles"
msgstr ""
-#: classes/pref/filters.php:218 classes/pref/filters.php:645
-#: classes/pref/filters.php:760
-msgid "Match"
+#: classes/pref/prefs.php:47
+msgid "Reverse headline order (oldest first)"
msgstr ""
-#: classes/pref/filters.php:232 classes/pref/filters.php:279
-#: classes/pref/filters.php:659 classes/pref/filters.php:686
-msgid "Add"
+#: classes/pref/prefs.php:48
+msgid "Short date format"
msgstr ""
-#: classes/pref/filters.php:265 classes/pref/filters.php:672
-msgid "Apply actions"
+#: classes/pref/prefs.php:49
+msgid "Show content preview in headlines list"
msgstr ""
-#: classes/pref/filters.php:315 classes/pref/filters.php:701
-msgid "Enabled"
+#: classes/pref/prefs.php:50
+msgid "Sort headlines by feed date"
msgstr ""
-#: classes/pref/filters.php:324 classes/pref/filters.php:704
-msgid "Match any rule"
+#: classes/pref/prefs.php:50
+msgid "Use feed-specified date to sort headlines instead of local import date."
msgstr ""
-#: classes/pref/filters.php:336 classes/pref/filters.php:716
-msgid "Test"
+#: classes/pref/prefs.php:51
+msgid "Login with an SSL certificate"
msgstr ""
-#: classes/pref/filters.php:368
-#, php-format
-msgid "%s on %s in %s"
+#: classes/pref/prefs.php:51
+msgid "Click to register your SSL client certificate with tt-rss"
msgstr ""
-#: classes/pref/filters.php:583
-msgid "Combine"
+#: classes/pref/prefs.php:52
+msgid "Do not embed images in articles"
msgstr ""
-#: classes/pref/filters.php:593 classes/pref/feeds.php:1329
-msgid "Rescore articles"
+#: classes/pref/prefs.php:53
+msgid "Strip unsafe tags from articles"
msgstr ""
-#: classes/pref/filters.php:719
-msgid "Create"
+#: classes/pref/prefs.php:53
+msgid "Strip all but most common HTML tags when reading articles."
msgstr ""
-#: classes/pref/filters.php:769
-msgid "on field"
+#: classes/pref/prefs.php:54 js/prefs.js:1719
+msgid "Customize stylesheet"
msgstr ""
-#: classes/pref/filters.php:775 js/PrefFilterTree.js:29
-msgid "in"
+#: classes/pref/prefs.php:54
+msgid "Customize CSS stylesheet to your liking"
msgstr ""
-#: classes/pref/filters.php:788
-msgid "Save rule"
+#: classes/pref/prefs.php:55
+msgid "Time zone"
msgstr ""
-#: classes/pref/filters.php:788 js/functions.js:1067 js/functions.js:1063
-msgid "Add rule"
+#: classes/pref/prefs.php:56
+msgid "Group headlines in virtual feeds"
msgstr ""
-#: classes/pref/filters.php:811
-msgid "Perform Action"
+#: classes/pref/prefs.php:56
+msgid "Special feeds, labels, and categories are grouped by originating feeds"
msgstr ""
-#: classes/pref/filters.php:837
-msgid "with parameters:"
+#: classes/pref/prefs.php:57
+msgid "Language"
msgstr ""
-#: classes/pref/filters.php:855
-msgid "Save action"
+#: classes/pref/prefs.php:58
+msgid "Theme"
msgstr ""
-#: classes/pref/filters.php:855 js/functions.js:1093 js/functions.js:1089
-msgid "Add action"
+#: classes/pref/prefs.php:58
+msgid "Select one of the available CSS themes"
msgstr ""
-#: classes/pref/prefs.php:17
+#: classes/pref/prefs.php:69
msgid "Old password cannot be blank."
msgstr ""
-#: classes/pref/prefs.php:22
+#: classes/pref/prefs.php:74
msgid "New password cannot be blank."
msgstr ""
-#: classes/pref/prefs.php:27
+#: classes/pref/prefs.php:79
msgid "Entered passwords do not match."
msgstr ""
-#: classes/pref/prefs.php:37
+#: classes/pref/prefs.php:88
msgid "Function not supported by authentication module."
msgstr ""
-#: classes/pref/prefs.php:68
+#: classes/pref/prefs.php:127
msgid "The configuration was saved."
msgstr ""
-#: classes/pref/prefs.php:83
+#: classes/pref/prefs.php:142
#, php-format
msgid "Unknown option: %s"
msgstr ""
-#: classes/pref/prefs.php:97
+#: classes/pref/prefs.php:156
msgid "Your personal data has been saved."
msgstr ""
-#: classes/pref/prefs.php:137
+#: classes/pref/prefs.php:176
+msgid "Your preferences are now set to default values."
+msgstr ""
+
+#: classes/pref/prefs.php:198
msgid "Personal data / Authentication"
msgstr ""
-#: classes/pref/prefs.php:157
+#: classes/pref/prefs.php:218
msgid "Personal data"
msgstr ""
-#: classes/pref/prefs.php:167
+#: classes/pref/prefs.php:228
msgid "Full name"
msgstr ""
-#: classes/pref/prefs.php:171
+#: classes/pref/prefs.php:232
msgid "E-mail"
msgstr ""
-#: classes/pref/prefs.php:177
+#: classes/pref/prefs.php:238
msgid "Access level"
msgstr ""
-#: classes/pref/prefs.php:187
+#: classes/pref/prefs.php:248
msgid "Save data"
msgstr ""
-#: classes/pref/prefs.php:207
+#: classes/pref/prefs.php:267
msgid "Your password is at default value, please change it."
msgstr ""
-#: classes/pref/prefs.php:239
+#: classes/pref/prefs.php:294
+msgid "Changing your current password will disable OTP."
+msgstr ""
+
+#: classes/pref/prefs.php:299
msgid "Old password"
msgstr ""
-#: classes/pref/prefs.php:242
+#: classes/pref/prefs.php:302
msgid "New password"
msgstr ""
-#: classes/pref/prefs.php:247
+#: classes/pref/prefs.php:307
msgid "Confirm password"
msgstr ""
-#: classes/pref/prefs.php:257
+#: classes/pref/prefs.php:317
msgid "Change password"
msgstr ""
-#: classes/pref/prefs.php:263
+#: classes/pref/prefs.php:323
msgid "One time passwords / Authenticator"
msgstr ""
-#: classes/pref/prefs.php:292 classes/pref/prefs.php:343
+#: classes/pref/prefs.php:327
+msgid ""
+"One time passwords are currently enabled. Enter your current password below "
+"to disable."
+msgstr ""
+
+#: classes/pref/prefs.php:352 classes/pref/prefs.php:403
msgid "Enter your password"
msgstr ""
-#: classes/pref/prefs.php:303
+#: classes/pref/prefs.php:363
msgid "Disable OTP"
msgstr ""
-#: classes/pref/prefs.php:309
+#: classes/pref/prefs.php:369
msgid ""
"You will need a compatible Authenticator to use this. Changing your password "
"would automatically disable OTP."
msgstr ""
-#: classes/pref/prefs.php:311
+#: classes/pref/prefs.php:371
msgid "Scan the following code by the Authenticator application:"
msgstr ""
-#: classes/pref/prefs.php:352
-msgid "I have scanned the code and would like to enable OTP"
+#: classes/pref/prefs.php:408
+msgid "Enter the generated one time password"
msgstr ""
-#: classes/pref/prefs.php:360
+#: classes/pref/prefs.php:422
msgid "Enable OTP"
msgstr ""
-#: classes/pref/prefs.php:456
-msgid "Select theme"
-msgstr ""
-
-#: classes/pref/prefs.php:508
-msgid "Customize"
+#: classes/pref/prefs.php:428
+msgid "PHP GD functions are required for OTP support."
msgstr ""
-#: classes/pref/prefs.php:527 classes/pref/prefs.php:534
-#: classes/pref/prefs.php:539
-msgid "Yes"
+#: classes/pref/prefs.php:471
+msgid "Some preferences are only available in default profile."
msgstr ""
-#: classes/pref/prefs.php:529 classes/pref/prefs.php:539
-msgid "No"
+#: classes/pref/prefs.php:569
+msgid "Customize"
msgstr ""
-#: classes/pref/prefs.php:569
+#: classes/pref/prefs.php:629
msgid "Register"
msgstr ""
-#: classes/pref/prefs.php:573
+#: classes/pref/prefs.php:633
msgid "Clear"
msgstr ""
-#: classes/pref/prefs.php:579
+#: classes/pref/prefs.php:639
#, php-format
msgid "Current server time: %s (UTC)"
msgstr ""
-#: classes/pref/prefs.php:604
+#: classes/pref/prefs.php:671
msgid "Save configuration"
msgstr ""
-#: classes/pref/prefs.php:607
+#: classes/pref/prefs.php:675
+msgid "Save and exit preferences"
+msgstr ""
+
+#: classes/pref/prefs.php:680
msgid "Manage profiles"
msgstr ""
-#: classes/pref/prefs.php:610
+#: classes/pref/prefs.php:683
msgid "Reset to defaults"
msgstr ""
-#: classes/pref/prefs.php:622
-msgid "Show additional preferences"
+#: classes/pref/prefs.php:706
+msgid "Plugins"
msgstr ""
-#: classes/pref/prefs.php:679 classes/pref/prefs.php:697
-msgid "Incorrect password"
+#: classes/pref/prefs.php:708
+msgid ""
+"You will need to reload Tiny Tiny RSS for plugin changes to take effect."
msgstr ""
-#: classes/pref/feeds.php:12
-msgid "Check to enable field"
+#: classes/pref/prefs.php:710
+msgid ""
+"Download more plugins at tt-rss.org <a class=\"visibleLink\" target=\"_blank"
+"\" href=\"http://tt-rss.org/forum/viewforum.php?f=22\">forums</a> or <a "
+"target=\"_blank\" class=\"visibleLink\" href=\"http://tt-rss.org/wiki/Plugins"
+"\">wiki</a>."
+msgstr ""
+
+#: classes/pref/prefs.php:736
+msgid "System plugins"
+msgstr ""
+
+#: classes/pref/prefs.php:740 classes/pref/prefs.php:794
+msgid "Plugin"
+msgstr ""
+
+#: classes/pref/prefs.php:741 classes/pref/prefs.php:795
+msgid "Description"
+msgstr ""
+
+#: classes/pref/prefs.php:742 classes/pref/prefs.php:796
+msgid "Version"
+msgstr ""
+
+#: classes/pref/prefs.php:743 classes/pref/prefs.php:797
+msgid "Author"
+msgstr ""
+
+#: classes/pref/prefs.php:772 classes/pref/prefs.php:829
+msgid "more info"
+msgstr ""
+
+#: classes/pref/prefs.php:781 classes/pref/prefs.php:838
+msgid "Clear data"
+msgstr ""
+
+#: classes/pref/prefs.php:790
+msgid "User plugins"
+msgstr ""
+
+#: classes/pref/prefs.php:853
+msgid "Enable selected plugins"
+msgstr ""
+
+#: classes/pref/prefs.php:920
+msgid "Incorrect one time password"
+msgstr ""
+
+#: classes/pref/prefs.php:923 classes/pref/prefs.php:940
+msgid "Incorrect password"
msgstr ""
-#: classes/pref/feeds.php:59 classes/pref/feeds.php:180
-#: classes/pref/feeds.php:223 classes/pref/feeds.php:229
-#: classes/pref/feeds.php:254
+#: classes/pref/prefs.php:965
#, php-format
-msgid "(%d feeds)"
+msgid ""
+"You can override colors, fonts and layout of your currently selected theme "
+"with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink"
+"\" href=\"%s\">This file</a> can be used as a baseline."
msgstr ""
-#: classes/pref/feeds.php:492 classes/pref/feeds.php:747
-msgid "Feed"
+#: classes/pref/prefs.php:1005
+msgid "Create profile"
+msgstr ""
+
+#: classes/pref/prefs.php:1028 classes/pref/prefs.php:1056
+msgid "(active)"
msgstr ""
-#: classes/pref/feeds.php:498
+#: classes/pref/prefs.php:1090
+msgid "Remove selected profiles"
+msgstr ""
+
+#: classes/pref/prefs.php:1092
+msgid "Activate profile"
+msgstr ""
+
+#: classes/pref/feeds.php:13
+msgid "Check to enable field"
+msgstr ""
+
+#: classes/pref/feeds.php:546
msgid "Feed Title"
msgstr ""
-#: classes/pref/feeds.php:554 classes/pref/feeds.php:802
+#: classes/pref/feeds.php:587 classes/pref/feeds.php:822
+msgid "Update"
+msgstr ""
+
+#: classes/pref/feeds.php:602 classes/pref/feeds.php:838
msgid "Article purging:"
msgstr ""
-#: classes/pref/feeds.php:577
+#: classes/pref/feeds.php:632
msgid ""
"<b>Hint:</b> you need to fill in your login information if your feed "
"requires authentication, except for Twitter feeds."
msgstr ""
-#: classes/pref/feeds.php:593 classes/pref/feeds.php:831
+#: classes/pref/feeds.php:648 classes/pref/feeds.php:867
msgid "Hide from Popular feeds"
msgstr ""
-#: classes/pref/feeds.php:604 classes/pref/feeds.php:836
-msgid "Right-to-left content"
-msgstr ""
-
-#: classes/pref/feeds.php:616 classes/pref/feeds.php:842
+#: classes/pref/feeds.php:660 classes/pref/feeds.php:873
msgid "Include in e-mail digest"
msgstr ""
-#: classes/pref/feeds.php:629 classes/pref/feeds.php:848
+#: classes/pref/feeds.php:673 classes/pref/feeds.php:879
msgid "Always display image attachments"
msgstr ""
-#: classes/pref/feeds.php:643 classes/pref/feeds.php:856
-msgid "Cache images locally"
+#: classes/pref/feeds.php:686 classes/pref/feeds.php:887
+msgid "Do not embed images"
msgstr ""
-#: classes/pref/feeds.php:656
-msgid "Cache content locally"
+#: classes/pref/feeds.php:699 classes/pref/feeds.php:895
+msgid "Cache images locally"
msgstr ""
-#: classes/pref/feeds.php:668 classes/pref/feeds.php:862
+#: classes/pref/feeds.php:711 classes/pref/feeds.php:901
msgid "Mark updated articles as unread"
msgstr ""
-#: classes/pref/feeds.php:680 classes/pref/feeds.php:868
-msgid "Mark posts as updated on content change"
-msgstr ""
-
-#: classes/pref/feeds.php:686
+#: classes/pref/feeds.php:717
msgid "Icon"
msgstr ""
-#: classes/pref/feeds.php:700
+#: classes/pref/feeds.php:731
msgid "Replace"
msgstr ""
-#: classes/pref/feeds.php:719
+#: classes/pref/feeds.php:753
msgid "Resubscribe to push updates"
msgstr ""
-#: classes/pref/feeds.php:726
+#: classes/pref/feeds.php:760
msgid "Resets PubSubHubbub subscription status for push-enabled feeds."
msgstr ""
-#: classes/pref/feeds.php:741
-msgid "Enable the options you wish to apply using checkboxes on the right:"
-msgstr ""
-
-#: classes/pref/feeds.php:1123 classes/pref/feeds.php:1176
+#: classes/pref/feeds.php:1156 classes/pref/feeds.php:1209
msgid "All done."
msgstr ""
-#: classes/pref/feeds.php:1231
+#: classes/pref/feeds.php:1264
msgid "Feeds with errors"
msgstr ""
-#: classes/pref/feeds.php:1251
+#: classes/pref/feeds.php:1284
msgid "Inactive feeds"
msgstr ""
-#: classes/pref/feeds.php:1288
+#: classes/pref/feeds.php:1321
msgid "Edit selected feeds"
msgstr ""
-#: classes/pref/feeds.php:1290 classes/pref/feeds.php:1304
-msgid "Reset sort order"
-msgstr ""
-
-#: classes/pref/feeds.php:1292 js/prefs.js:2021 js/prefs.js:1788
+#: classes/pref/feeds.php:1325 js/prefs.js:1764
msgid "Batch subscribe"
msgstr ""
-#: classes/pref/feeds.php:1297
+#: classes/pref/feeds.php:1332
msgid "Categories"
msgstr ""
-#: classes/pref/feeds.php:1300
+#: classes/pref/feeds.php:1335
msgid "Add category"
msgstr ""
-#: classes/pref/feeds.php:1302
-msgid "(Un)hide empty categories"
-msgstr ""
-
-#: classes/pref/feeds.php:1306
+#: classes/pref/feeds.php:1339
msgid "Remove selected"
msgstr ""
-#: classes/pref/feeds.php:1320
+#: classes/pref/feeds.php:1350
msgid "More actions..."
msgstr ""
-#: classes/pref/feeds.php:1324
+#: classes/pref/feeds.php:1354
msgid "Manual purge"
msgstr ""
-#: classes/pref/feeds.php:1328
+#: classes/pref/feeds.php:1358
msgid "Clear feed data"
msgstr ""
-#: classes/pref/feeds.php:1379
-msgid "Import and export"
-msgstr ""
-
-#: classes/pref/feeds.php:1381
+#: classes/pref/feeds.php:1409
msgid "OPML"
msgstr ""
-#: classes/pref/feeds.php:1383
+#: classes/pref/feeds.php:1411
msgid ""
"Using OPML you can export and import your feeds, filters, labels and Tiny "
"Tiny RSS settings."
msgstr ""
-#: classes/pref/feeds.php:1385
+#: classes/pref/feeds.php:1411
msgid "Only main settings profile can be migrated using OPML."
msgstr ""
-#: classes/pref/feeds.php:1398
+#: classes/pref/feeds.php:1424
msgid "Import my OPML"
msgstr ""
-#: classes/pref/feeds.php:1402
+#: classes/pref/feeds.php:1428
msgid "Filename:"
msgstr ""
-#: classes/pref/feeds.php:1404
+#: classes/pref/feeds.php:1430
msgid "Include settings"
msgstr ""
-#: classes/pref/feeds.php:1408
+#: classes/pref/feeds.php:1434
msgid "Export OPML"
msgstr ""
-#: classes/pref/feeds.php:1412
+#: classes/pref/feeds.php:1438
msgid ""
"Your OPML can be published publicly and can be subscribed by anyone who "
"knows the URL below."
msgstr ""
-#: classes/pref/feeds.php:1414
+#: classes/pref/feeds.php:1440
msgid ""
"Published OPML does not include your Tiny Tiny RSS settings, feeds that "
"require authentication or feeds hidden from Popular feeds."
msgstr ""
-#: classes/pref/feeds.php:1417
+#: classes/pref/feeds.php:1442
+msgid "Public OPML URL"
+msgstr ""
+
+#: classes/pref/feeds.php:1443
msgid "Display published OPML URL"
msgstr ""
-#: classes/pref/feeds.php:1420
-msgid "Article archive"
+#: classes/pref/feeds.php:1452
+msgid "Firefox integration"
msgstr ""
-#: classes/pref/feeds.php:1422
+#: classes/pref/feeds.php:1454
msgid ""
-"You can export and import your Starred and Archived articles for safekeeping "
-"or when migrating between tt-rss instances."
+"This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the "
+"link below."
msgstr ""
-#: classes/pref/feeds.php:1425
-msgid "Export my data"
+#: classes/pref/feeds.php:1461
+msgid "Click here to register this site as a feed reader."
msgstr ""
-#: classes/pref/feeds.php:1440
-msgid "Import"
+#: classes/pref/feeds.php:1469
+msgid "Published & shared articles / Generated feeds"
msgstr ""
-#: classes/pref/feeds.php:1447
-msgid "Firefox integration"
+#: classes/pref/feeds.php:1471
+msgid ""
+"Published articles are exported as a public RSS feed and can be subscribed "
+"by anyone who knows the URL specified below."
msgstr ""
-#: classes/pref/feeds.php:1449
-msgid ""
-"This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the "
-"link below."
+#: classes/pref/feeds.php:1479
+msgid "Display URL"
msgstr ""
-#: classes/pref/feeds.php:1456
-msgid "Click here to register this site as a feed reader."
+#: classes/pref/feeds.php:1482
+msgid "Clear all generated URLs"
msgstr ""
-#: classes/pref/feeds.php:1464
-msgid "Bookmarklets"
+#: classes/pref/feeds.php:1486
+msgid "You can disable all articles shared by unique URLs here."
msgstr ""
-#: classes/pref/feeds.php:1466
+#: classes/pref/feeds.php:1491
+msgid "Unshare all articles"
+msgstr ""
+
+#: classes/pref/feeds.php:1568
msgid ""
-"Drag the link below to your browser toolbar, open the feed you're interested "
-"in in your browser and click on the link to subscribe to it."
+"These feeds have not been updated with new content for 3 months (oldest "
+"first):"
msgstr ""
-#: classes/pref/feeds.php:1470
-#, php-format
-msgid "Subscribe to %s in Tiny Tiny RSS?"
+#: classes/pref/feeds.php:1604 classes/pref/feeds.php:1670
+msgid "Click to edit feed"
msgstr ""
-#: classes/pref/feeds.php:1474
-msgid "Subscribe in Tiny Tiny RSS"
+#: classes/pref/feeds.php:1622 classes/pref/feeds.php:1690
+msgid "Unsubscribe from selected feeds"
msgstr ""
-#: classes/pref/feeds.php:1476
-msgid "Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS"
+#: classes/pref/feeds.php:1795
+msgid "Add one valid RSS feed per line (no feed detection is done)"
msgstr ""
-#: classes/pref/feeds.php:1484
-msgid "Published & shared articles / Generated feeds"
+#: classes/pref/feeds.php:1804
+msgid "Feeds to subscribe, One per line"
msgstr ""
-#: classes/pref/feeds.php:1486
-msgid "Published articles and generated feeds"
+#: classes/pref/feeds.php:1826
+msgid "Feeds require authentication."
msgstr ""
-#: classes/pref/feeds.php:1488
-msgid ""
-"Published articles are exported as a public RSS feed and can be subscribed "
-"by anyone who knows the URL specified below."
+#: classes/pref/system.php:29
+msgid "Error Log"
msgstr ""
-#: classes/pref/feeds.php:1494
-msgid "Display URL"
+#: classes/pref/system.php:40
+msgid "Refresh"
msgstr ""
-#: classes/pref/feeds.php:1497
-msgid "Clear all generated URLs"
+#: classes/pref/system.php:43
+msgid "Clear log"
msgstr ""
-#: classes/pref/feeds.php:1499
-msgid "Articles shared by URL"
+#: classes/pref/system.php:48
+msgid "Error"
msgstr ""
-#: classes/pref/feeds.php:1501
-msgid "You can disable all articles shared by unique URLs here."
+#: classes/pref/system.php:49
+msgid "Filename"
msgstr ""
-#: classes/pref/feeds.php:1504
-msgid "Unshare all articles"
+#: classes/pref/system.php:50
+msgid "Message"
msgstr ""
-#: classes/pref/feeds.php:1579
-msgid ""
-"These feeds have not been updated with new content for 3 months (oldest "
-"first):"
+#: classes/pref/system.php:52
+msgid "Date"
msgstr ""
-#: classes/pref/feeds.php:1616 classes/pref/feeds.php:1685
-msgid "Click to edit feed"
+#: plugins/close_button/init.php:22
+msgid "Close article"
msgstr ""
-#: classes/pref/feeds.php:1634 classes/pref/feeds.php:1705
-msgid "Unsubscribe from selected feeds"
+#: plugins/nsfw/init.php:29 plugins/nsfw/init.php:40
+msgid "Not work safe (click to toggle)"
msgstr ""
-#: classes/pref/feeds.php:1645
-msgid "These feeds have not been updated because of errors:"
+#: plugins/nsfw/init.php:50
+msgid "NSFW Plugin"
msgstr ""
-#: plugins/pocket/pocket.php:24
-msgid "Pocket"
+#: plugins/nsfw/init.php:77
+msgid "Tags to consider NSFW (comma-separated)"
msgstr ""
-#: plugins/digest/digest_body.php:39
-msgid ""
-"Your browser doesn't support Javascript, which is required\n"
-"\t\t\tfor this application to function properly. Please check your\n"
-"\t\t\tbrowser settings."
+#: plugins/nsfw/init.php:98
+msgid "Configuration saved."
msgstr ""
-#: plugins/digest/digest_body.php:51
-msgid "Back to feeds"
+#: plugins/auth_internal/init.php:62
+msgid "Please enter your one time password:"
msgstr ""
-#: plugins/digest/digest_body.php:62
-msgid "Regular version"
+#: plugins/auth_internal/init.php:185
+msgid "Password has been changed."
msgstr ""
-#: plugins/pinterest/pinterest.php:23
-msgid "Pinterest"
+#: plugins/auth_internal/init.php:187
+msgid "Old password is incorrect."
msgstr ""
-#: plugins/mail/mail.php:66 plugins/mail/mail.php:72
+#: plugins/mailto/init.php:49 plugins/mailto/init.php:55
+#: plugins/mail/init.php:64 plugins/mail/init.php:70
msgid "[Forwarded]"
msgstr ""
-#: plugins/mail/mail.php:66
+#: plugins/mailto/init.php:49 plugins/mail/init.php:64
msgid "Multiple articles"
msgstr ""
-#: plugins/mail/mail.php:87
+#: plugins/mailto/init.php:71
+msgid "Clicking the following link to invoke your mail client:"
+msgstr ""
+
+#: plugins/mailto/init.php:75
+msgid "Forward selected article(s) by email."
+msgstr ""
+
+#: plugins/mailto/init.php:78
+msgid ""
+"You should be able to edit the message before sending in your mail client."
+msgstr ""
+
+#: plugins/mailto/init.php:83
+msgid "Close this dialog"
+msgstr ""
+
+#: plugins/bookmarklets/init.php:20
+msgid "Bookmarklets"
+msgstr ""
+
+#: plugins/bookmarklets/init.php:22
+msgid ""
+"Drag the link below to your browser toolbar, open the feed you're interested "
+"in in your browser and click on the link to subscribe to it."
+msgstr ""
+
+#: plugins/bookmarklets/init.php:26
+#, php-format
+msgid "Subscribe to %s in Tiny Tiny RSS?"
+msgstr ""
+
+#: plugins/bookmarklets/init.php:31
+msgid "Subscribe in Tiny Tiny RSS"
+msgstr ""
+
+#: plugins/bookmarklets/init.php:34
+msgid "Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS"
+msgstr ""
+
+#: plugins/import_export/init.php:58
+msgid "Import and export"
+msgstr ""
+
+#: plugins/import_export/init.php:60
+msgid ""
+"You can export and import your Starred and Archived articles for safekeeping "
+"or when migrating between tt-rss instances of same version."
+msgstr ""
+
+#: plugins/import_export/init.php:65
+msgid "Export my data"
+msgstr ""
+
+#: plugins/import_export/init.php:81
+msgid "Import"
+msgstr ""
+
+#: plugins/import_export/init.php:219
+msgid "Could not import: incorrect schema version."
+msgstr ""
+
+#: plugins/import_export/init.php:224
+msgid "Could not import: unrecognized document format."
+msgstr ""
+
+#: plugins/import_export/init.php:383
+msgid "Finished: "
+msgstr ""
+
+#: plugins/import_export/init.php:384
+#, php-format
+msgid "%d article processed, "
+msgid_plural "%d articles processed, "
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/import_export/init.php:385
+#, php-format
+msgid "%d imported, "
+msgid_plural "%d imported, "
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/import_export/init.php:386
+#, php-format
+msgid "%d feed created."
+msgid_plural "%d feeds created."
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/import_export/init.php:391
+msgid "Could not load XML document."
+msgstr ""
+
+#: plugins/import_export/init.php:403
+msgid "Prepare data"
+msgstr ""
+
+#: plugins/import_export/init.php:446 plugins/googlereaderimport/init.php:92
+msgid "No file uploaded."
+msgstr ""
+
+#: plugins/mail/init.php:85
msgid "From:"
msgstr ""
-#: plugins/mail/mail.php:96
+#: plugins/mail/init.php:94
msgid "To:"
msgstr ""
-#: plugins/mail/mail.php:109
+#: plugins/mail/init.php:107
msgid "Subject:"
msgstr ""
-#: plugins/mail/mail.php:125
+#: plugins/mail/init.php:123
msgid "Send e-mail"
msgstr ""
-#: plugins/note/note.php:22
+#: plugins/note/init.php:26 plugins/note/note.js:11
msgid "Edit article note"
msgstr ""
-#: plugins/example/example.php:29
-msgid "Example Pane"
+#: plugins/googlereaderimport/init.php:178
+#, php-format
+msgid "All done. %d out of %d articles imported."
+msgstr ""
+
+#: plugins/googlereaderimport/init.php:182
+msgid "The document has incorrect format."
msgstr ""
-#: plugins/example/example.php:53
-msgid "Sample value"
+#: plugins/googlereaderimport/init.php:353
+msgid "Import starred or shared items from Google Reader"
msgstr ""
-#: plugins/example/example.php:59
-msgid "Set value"
+#: plugins/googlereaderimport/init.php:357
+msgid "Paste your starred.json or shared.json into the form below."
msgstr ""
-#: plugins/identica/identica.php:23
-msgid "Share on identi.ca"
+#: plugins/googlereaderimport/init.php:371
+msgid "Import my Starred items"
msgstr ""
-#: plugins/instances/instances.php:29
+#: plugins/instances/init.php:141
msgid "Linked"
msgstr ""
-#: plugins/instances/instances.php:180
+#: plugins/instances/init.php:204 plugins/instances/init.php:395
+msgid "Instance"
+msgstr ""
+
+#: plugins/instances/init.php:215 plugins/instances/init.php:312
+#: plugins/instances/init.php:404
+msgid "Instance URL"
+msgstr ""
+
+#: plugins/instances/init.php:226 plugins/instances/init.php:414
+msgid "Access key:"
+msgstr ""
+
+#: plugins/instances/init.php:229 plugins/instances/init.php:313
+#: plugins/instances/init.php:417
+msgid "Access key"
+msgstr ""
+
+#: plugins/instances/init.php:233 plugins/instances/init.php:421
+msgid "Use one access key for both linked instances."
+msgstr ""
+
+#: plugins/instances/init.php:241 plugins/instances/init.php:429
+msgid "Generate new key"
+msgstr ""
+
+#: plugins/instances/init.php:292
msgid "Link instance"
msgstr ""
-#: plugins/instances/instances.php:192
+#: plugins/instances/init.php:304
msgid ""
"You can connect other instances of Tiny Tiny RSS to this one to share "
"Popular feeds. Link to this instance of Tiny Tiny RSS by using this URL:"
msgstr ""
-#: plugins/instances/instances.php:202
+#: plugins/instances/init.php:314
msgid "Last connected"
msgstr ""
-#: plugins/instances/instances.php:203
+#: plugins/instances/init.php:315
msgid "Status"
msgstr ""
-#: plugins/instances/instances.php:204
+#: plugins/instances/init.php:316
msgid "Stored feeds"
msgstr ""
-#: plugins/share/share.php:21
+#: plugins/instances/init.php:433
+msgid "Create link"
+msgstr ""
+
+#: plugins/share/init.php:25
msgid "Share by URL"
msgstr ""
-#: plugins/share/share.php:43
+#: plugins/share/init.php:47
msgid "You can share this article by the following unique URL:"
msgstr ""
-#: plugins/flattr/flattr.php:37
-msgid "Flattr article"
+#: plugins/updater/init.php:321 plugins/updater/init.php:338
+#: plugins/updater/updater.js:10
+msgid "Update Tiny Tiny RSS"
+msgstr ""
+
+#: plugins/updater/init.php:341
+msgid "Your Tiny Tiny RSS installation is up to date."
msgstr ""
-#: plugins/googleplus/googleplus.php:23
-msgid "Share on Google+"
+#: plugins/updater/init.php:349
+msgid "Do not close this dialog until updating is finished."
msgstr ""
-#: plugins/updater/updater.php:267 plugins/updater/updater.php:279
-msgid "Update Tiny Tiny RSS"
+#: plugins/updater/init.php:358
+msgid "It is suggested to backup your tt-rss directory first."
msgstr ""
-#: plugins/updater/updater.php:282
-msgid "Your Tiny Tiny RSS installation is up to date."
+#: plugins/updater/init.php:359
+msgid "Your database will not be modified."
msgstr ""
-#: plugins/updater/updater.php:291
+#: plugins/updater/init.php:360
msgid ""
-"Do not close this dialog until updating is finished. Backup your tt-rss "
-"directory before continuing."
+"Your current tt-rss installation directory will not be modified. It will be "
+"renamed and left in the parent directory. You will be able to migrate all "
+"your customized files after update finishes."
msgstr ""
-#: plugins/updater/updater.php:294
+#: plugins/updater/init.php:361
msgid "Ready to update."
msgstr ""
-#: plugins/updater/updater.php:299
+#: plugins/updater/init.php:366
msgid "Start update"
msgstr ""
-#: js/feedlist.js:283 js/feedlist.js:282 js/feedlist.js:265
-msgid "New articles available in this feed (click to show)"
+#: js/PrefFeedTree.js:47
+msgid "Edit category"
+msgstr ""
+
+#: js/PrefFeedTree.js:54
+msgid "Remove category"
+msgstr ""
+
+#: js/PrefFilterTree.js:48
+msgid "Inverse"
msgstr ""
-#: js/feedlist.js:490 js/feedlist.js:505 js/feedlist.js:489 js/feedlist.js:504
-#: js/feedlist.js:469 js/feedlist.js:484
+#: js/feedlist.js:397 js/feedlist.js:425
msgid "Mark all articles in %s as read?"
msgstr ""
-#: js/functions.js:91
+#: js/feedlist.js:416
+msgid "Mark all articles in %s older than 1 day as read?"
+msgstr ""
+
+#: js/feedlist.js:419
+msgid "Mark all articles in %s older than 1 week as read?"
+msgstr ""
+
+#: js/feedlist.js:422
+msgid "Mark all articles in %s older than 2 weeks as read?"
+msgstr ""
+
+#: js/functions.js:65
+msgid "The error will be reported to the configured log destination."
+msgstr ""
+
+#: js/functions.js:107
msgid ""
"Are you sure to report this exception to tt-rss.org? The report will include "
"your browser information. Your IP would be saved in the database."
msgstr ""
-#: js/functions.js:618 js/functions.js:614
-msgid "Date syntax appears to be correct:"
+#: js/functions.js:236
+msgid "Click to close"
msgstr ""
-#: js/functions.js:621 js/functions.js:617
-msgid "Date syntax is incorrect."
+#: js/functions.js:612
+msgid "Error explained"
msgstr ""
-#: js/functions.js:748 js/functions.js:744
+#: js/functions.js:694
+msgid "Upload complete."
+msgstr ""
+
+#: js/functions.js:718
msgid "Remove stored feed icon?"
msgstr ""
-#: js/functions.js:780 js/functions.js:776
+#: js/functions.js:723
+msgid "Removing feed icon..."
+msgstr ""
+
+#: js/functions.js:728
+msgid "Feed icon removed."
+msgstr ""
+
+#: js/functions.js:750
msgid "Please select an image file to upload."
msgstr ""
-#: js/functions.js:782 js/functions.js:778
+#: js/functions.js:752
msgid "Upload new icon for this feed?"
msgstr ""
-#: js/functions.js:799 js/functions.js:795
+#: js/functions.js:753
+msgid "Uploading, please wait..."
+msgstr ""
+
+#: js/functions.js:769
msgid "Please enter label caption:"
msgstr ""
-#: js/functions.js:804 js/functions.js:800
+#: js/functions.js:774
msgid "Can't create label: missing caption."
msgstr ""
-#: js/functions.js:847 js/functions.js:843
+#: js/functions.js:817
msgid "Subscribe to Feed"
msgstr ""
-#: js/functions.js:874 js/functions.js:870
+#: js/functions.js:844
msgid "Subscribed to %s"
msgstr ""
-#: js/functions.js:879 js/functions.js:875
+#: js/functions.js:849
msgid "Specified URL seems to be invalid."
msgstr ""
-#: js/functions.js:882 js/functions.js:878
+#: js/functions.js:852
msgid "Specified URL doesn't seem to contain any feeds."
msgstr ""
-#: js/functions.js:935 js/functions.js:931
+#: js/functions.js:862
+msgid "Expand to select feed"
+msgstr ""
+
+#: js/functions.js:874
msgid "Couldn't download the specified URL: %s"
msgstr ""
-#: js/functions.js:939 js/functions.js:935
+#: js/functions.js:878
+msgid "XML validation failed: %s"
+msgstr ""
+
+#: js/functions.js:883
msgid "You are already subscribed to this feed."
msgstr ""
-#: js/functions.js:1067 js/functions.js:1063
+#: js/functions.js:1013
msgid "Edit rule"
msgstr ""
-#: js/functions.js:1093 js/functions.js:1089
+#: js/functions.js:1039
msgid "Edit action"
msgstr ""
-#: js/functions.js:1130 js/functions.js:1126
+#: js/functions.js:1076
msgid "Create Filter"
msgstr ""
-#: js/functions.js:1234 js/functions.js:1230
+#: js/functions.js:1191
msgid ""
"Reset subscription? Tiny Tiny RSS will try to subscribe to the notification "
"hub again on next feed update."
msgstr ""
-#: js/functions.js:1255 js/tt-rss.js:421 js/functions.js:1251 js/tt-rss.js:381
+#: js/functions.js:1202
+msgid "Subscription reset."
+msgstr ""
+
+#: js/functions.js:1212 js/tt-rss.js:677
msgid "Unsubscribe from %s?"
msgstr ""
-#: js/functions.js:1362 js/functions.js:1358
+#: js/functions.js:1215
+msgid "Removing feed..."
+msgstr ""
+
+#: js/functions.js:1324
msgid "Please enter category title:"
msgstr ""
-#: js/functions.js:1393 js/functions.js:1389
+#: js/functions.js:1355
msgid "Generate new syndication address for this feed?"
msgstr ""
-#: js/functions.js:1584 js/tt-rss.js:400 js/tt-rss.js:903 js/functions.js:1580
-#: js/tt-rss.js:782 js/tt-rss.js:362 js/tt-rss.js:717
+#: js/functions.js:1359 js/prefs.js:1231
+msgid "Trying to change address..."
+msgstr ""
+
+#: js/functions.js:1546 js/tt-rss.js:422 js/tt-rss.js:658
msgid "You can't edit this kind of feed."
msgstr ""
-#: js/functions.js:1599 js/functions.js:1595
+#: js/functions.js:1561
msgid "Edit Feed"
msgstr ""
-#: js/functions.js:1637 js/functions.js:1633
+#: js/functions.js:1567 js/prefs.js:194 js/prefs.js:749
+msgid "Saving data..."
+msgstr ""
+
+#: js/functions.js:1599
msgid "More Feeds"
msgstr ""
-#: js/functions.js:1698 js/functions.js:1808 js/prefs.js:408 js/prefs.js:438
-#: js/prefs.js:470 js/prefs.js:653 js/prefs.js:673 js/prefs.js:1326
-#: js/prefs.js:1471 js/functions.js:1694 js/functions.js:1804 js/prefs.js:397
-#: js/prefs.js:427 js/prefs.js:459 js/prefs.js:642 js/prefs.js:662
-#: js/prefs.js:1213 js/prefs.js:1358
+#: js/functions.js:1660 js/functions.js:1770 js/prefs.js:397 js/prefs.js:427
+#: js/prefs.js:459 js/prefs.js:642 js/prefs.js:662 js/prefs.js:1207
+#: js/prefs.js:1352
msgid "No feeds are selected."
msgstr ""
-#: js/functions.js:1740 js/functions.js:1736
+#: js/functions.js:1702
msgid ""
"Remove selected feeds from the archive? Feeds with stored articles will not "
"be removed."
msgstr ""
-#: js/functions.js:1779 js/functions.js:1775
+#: js/functions.js:1741
msgid "Feeds with update errors"
msgstr ""
-#: js/functions.js:1790 js/prefs.js:1308 js/functions.js:1786 js/prefs.js:1195
+#: js/functions.js:1752 js/prefs.js:1189
msgid "Remove selected feeds?"
msgstr ""
-#: js/PrefFeedTree.js:47
-msgid "Edit category"
+#: js/functions.js:1755 js/prefs.js:1192
+msgid "Removing selected feeds..."
msgstr ""
-#: js/PrefFeedTree.js:54
-msgid "Remove category"
-msgstr ""
-
-#: js/PrefFilterTree.js:32
-msgid "Inverse"
+#: js/functions.js:1853
+msgid "Help"
msgstr ""
#: js/prefs.js:55
@@ -2636,336 +2762,517 @@ msgstr ""
msgid "Can't create user: no login specified."
msgstr ""
-#: js/prefs.js:128 js/prefs.js:117
+#: js/prefs.js:66
+msgid "Adding user..."
+msgstr ""
+
+#: js/prefs.js:94
+msgid "User Editor"
+msgstr ""
+
+#: js/prefs.js:117
msgid "Edit Filter"
msgstr ""
-#: js/prefs.js:175 js/prefs.js:164
+#: js/prefs.js:164
msgid "Remove filter?"
msgstr ""
-#: js/prefs.js:290 js/prefs.js:279
+#: js/prefs.js:169
+msgid "Removing filter..."
+msgstr ""
+
+#: js/prefs.js:279
msgid "Remove selected labels?"
msgstr ""
-#: js/prefs.js:306 js/prefs.js:1512 js/prefs.js:295 js/prefs.js:1399
+#: js/prefs.js:282
+msgid "Removing selected labels..."
+msgstr ""
+
+#: js/prefs.js:295 js/prefs.js:1393
msgid "No labels are selected."
msgstr ""
-#: js/prefs.js:320 js/prefs.js:309
+#: js/prefs.js:309
msgid ""
"Remove selected users? Neither default admin nor your account will be "
"removed."
msgstr ""
-#: js/prefs.js:337 js/prefs.js:518 js/prefs.js:539 js/prefs.js:578
+#: js/prefs.js:312
+msgid "Removing selected users..."
+msgstr ""
+
#: js/prefs.js:326 js/prefs.js:507 js/prefs.js:528 js/prefs.js:567
msgid "No users are selected."
msgstr ""
-#: js/prefs.js:355 js/prefs.js:344
+#: js/prefs.js:344
msgid "Remove selected filters?"
msgstr ""
-#: js/prefs.js:370 js/prefs.js:608 js/prefs.js:627 js/prefs.js:359
-#: js/prefs.js:597 js/prefs.js:616
+#: js/prefs.js:347
+msgid "Removing selected filters..."
+msgstr ""
+
+#: js/prefs.js:359 js/prefs.js:597 js/prefs.js:616
msgid "No filters are selected."
msgstr ""
-#: js/prefs.js:389 js/prefs.js:378
+#: js/prefs.js:378
msgid "Unsubscribe from selected feeds?"
msgstr ""
-#: js/prefs.js:423 js/prefs.js:412
+#: js/prefs.js:382
+msgid "Unsubscribing from selected feeds..."
+msgstr ""
+
+#: js/prefs.js:412
msgid "Please select only one feed."
msgstr ""
-#: js/prefs.js:429 js/prefs.js:418
+#: js/prefs.js:418
msgid "Erase all non-starred articles in selected feed?"
msgstr ""
-#: js/prefs.js:451 js/prefs.js:440
+#: js/prefs.js:421
+msgid "Clearing selected feed..."
+msgstr ""
+
+#: js/prefs.js:440
msgid "How many days of articles to keep (0 - use default)?"
msgstr ""
-#: js/prefs.js:489 js/prefs.js:478
+#: js/prefs.js:443
+msgid "Purging selected feed..."
+msgstr ""
+
+#: js/prefs.js:478
msgid "Login field cannot be blank."
msgstr ""
-#: js/prefs.js:523 js/prefs.js:544 js/prefs.js:583 js/prefs.js:512
-#: js/prefs.js:533 js/prefs.js:572
+#: js/prefs.js:482
+msgid "Saving user..."
+msgstr ""
+
+#: js/prefs.js:512 js/prefs.js:533 js/prefs.js:572
msgid "Please select only one user."
msgstr ""
-#: js/prefs.js:548 js/prefs.js:537
+#: js/prefs.js:537
msgid "Reset password of selected user?"
msgstr ""
-#: js/prefs.js:613 js/prefs.js:602
+#: js/prefs.js:540
+msgid "Resetting password for selected user..."
+msgstr ""
+
+#: js/prefs.js:585
+msgid "User details"
+msgstr ""
+
+#: js/prefs.js:602
msgid "Please select only one filter."
msgstr ""
-#: js/prefs.js:631 js/prefs.js:620
+#: js/prefs.js:620
msgid "Combine selected filters?"
msgstr ""
-#: js/prefs.js:695 js/prefs.js:684
+#: js/prefs.js:623
+msgid "Joining filters..."
+msgstr ""
+
+#: js/prefs.js:684
msgid "Edit Multiple Feeds"
msgstr ""
-#: js/prefs.js:719 js/prefs.js:708
+#: js/prefs.js:708
msgid "Save changes to selected feeds?"
msgstr ""
-#: js/prefs.js:811 js/prefs.js:800
+#: js/prefs.js:785
msgid "OPML Import"
msgstr ""
-#: js/prefs.js:838 js/prefs.js:827
+#: js/prefs.js:812
msgid "Please choose an OPML file first."
msgstr ""
-#: js/prefs.js:854
-msgid "Please choose the file first."
+#: js/prefs.js:815 plugins/import_export/import_export.js:115
+#: plugins/googlereaderimport/init.js:45
+msgid "Importing, please wait..."
msgstr ""
-#: js/prefs.js:1010 js/prefs.js:983
+#: js/prefs.js:982
msgid "Reset to defaults?"
msgstr ""
-#: js/prefs.js:1215 js/prefs.js:1102
+#: js/prefs.js:1096
msgid ""
"Remove category %s? Any nested feeds would be placed into Uncategorized."
msgstr ""
-#: js/prefs.js:1242 js/prefs.js:1129
+#: js/prefs.js:1102
+msgid "Removing category..."
+msgstr ""
+
+#: js/prefs.js:1123
msgid "Remove selected categories?"
msgstr ""
-#: js/prefs.js:1258 js/prefs.js:1145
+#: js/prefs.js:1126
+msgid "Removing selected categories..."
+msgstr ""
+
+#: js/prefs.js:1139
msgid "No categories are selected."
msgstr ""
-#: js/prefs.js:1266 js/prefs.js:1153
+#: js/prefs.js:1147
msgid "Category title:"
msgstr ""
-#: js/prefs.js:1297 js/prefs.js:1184
+#: js/prefs.js:1151
+msgid "Creating category..."
+msgstr ""
+
+#: js/prefs.js:1178
msgid "Feeds without recent updates"
msgstr ""
-#: js/prefs.js:1346 js/prefs.js:1233
+#: js/prefs.js:1227
msgid "Replace current OPML publishing address with a new one?"
msgstr ""
-#: js/prefs.js:1455 js/prefs.js:1342
+#: js/prefs.js:1316
+msgid "Clearing feed..."
+msgstr ""
+
+#: js/prefs.js:1336
msgid "Rescore articles in selected feeds?"
msgstr ""
-#: js/prefs.js:1478 js/prefs.js:1365
+#: js/prefs.js:1339
+msgid "Rescoring selected feeds..."
+msgstr ""
+
+#: js/prefs.js:1359
msgid "Rescore all articles? This operation may take a lot of time."
msgstr ""
-#: js/prefs.js:1498 js/prefs.js:1385
+#: js/prefs.js:1362
+msgid "Rescoring feeds..."
+msgstr ""
+
+#: js/prefs.js:1379
msgid "Reset selected labels to default colors?"
msgstr ""
-#: js/prefs.js:1535 js/prefs.js:1422
+#: js/prefs.js:1416
msgid "Settings Profiles"
msgstr ""
-#: js/prefs.js:1544 js/prefs.js:1431
+#: js/prefs.js:1425
msgid ""
"Remove selected profiles? Active and default profiles will not be removed."
msgstr ""
-#: js/prefs.js:1562 js/prefs.js:1449
+#: js/prefs.js:1428
+msgid "Removing selected profiles..."
+msgstr ""
+
+#: js/prefs.js:1443
msgid "No profiles are selected."
msgstr ""
-#: js/prefs.js:1570 js/prefs.js:1623 js/prefs.js:1457 js/prefs.js:1510
+#: js/prefs.js:1451 js/prefs.js:1504
msgid "Activate selected profile?"
msgstr ""
-#: js/prefs.js:1586 js/prefs.js:1639 js/prefs.js:1473 js/prefs.js:1526
+#: js/prefs.js:1467 js/prefs.js:1520
msgid "Please choose a profile to activate."
msgstr ""
-#: js/prefs.js:1647 js/prefs.js:1534
+#: js/prefs.js:1472
+msgid "Creating profile..."
+msgstr ""
+
+#: js/prefs.js:1528
msgid "This will invalidate all previously generated feed URLs. Continue?"
msgstr ""
-#: js/prefs.js:1666 js/prefs.js:1553
+#: js/prefs.js:1531 js/prefs.js:1550
+msgid "Clearing URLs..."
+msgstr ""
+
+#: js/prefs.js:1538
+msgid "Generated URLs cleared."
+msgstr ""
+
+#: js/prefs.js:1547
msgid "This will invalidate all previously shared article URLs. Continue?"
msgstr ""
-#: js/prefs.js:1764 js/prefs.js:1651
+#: js/prefs.js:1557
+msgid "Shared URLs cleared."
+msgstr ""
+
+#: js/prefs.js:1648
msgid "Label Editor"
msgstr ""
-#: js/prefs.js:1827 js/prefs.js:1714
-msgid ""
-"This will clear your stored authentication information for Twitter. Continue?"
+#: js/prefs.js:1770
+msgid "Subscribing to feeds..."
msgstr ""
-#: js/prefs.js:1911
-msgid "Export Data"
+#: js/prefs.js:1807
+msgid "Clear stored data for this plugin?"
msgstr ""
-#: js/prefs.js:1938
-msgid ""
-"Finished, exported %d articles. You can download the data <a "
-"class='visibleLink' href='%u'>here</a>."
+#: js/prefs.js:1824
+msgid "Clear all messages in the error log?"
msgstr ""
-#: js/prefs.js:1991
-msgid "Data Import"
+#: js/tt-rss.js:127
+msgid "Mark all articles as read?"
msgstr ""
-#: js/prefs.js:2027 js/prefs.js:1794
-msgid "Subscribing to feeds..."
+#: js/tt-rss.js:133
+msgid "Marking all feeds as read..."
msgstr ""
-#: js/tt-rss.js:147 js/tt-rss.js:141
-msgid "Mark all articles as read?"
+#: js/tt-rss.js:381
+msgid "Please enable mail plugin first."
+msgstr ""
+
+#: js/tt-rss.js:493
+msgid "Please enable embed_original plugin first."
+msgstr ""
+
+#: js/tt-rss.js:645
+msgid "Select item(s) by tags"
msgstr ""
-#: js/tt-rss.js:410 js/tt-rss.js:370
+#: js/tt-rss.js:666
msgid "You can't unsubscribe from the category."
msgstr ""
-#: js/tt-rss.js:415 js/tt-rss.js:596 js/tt-rss.js:591 js/tt-rss.js:375
-#: js/tt-rss.js:525
+#: js/tt-rss.js:671 js/tt-rss.js:825
msgid "Please select some feed first."
msgstr ""
-#: js/tt-rss.js:591 js/tt-rss.js:586 js/tt-rss.js:520
+#: js/tt-rss.js:820
msgid "You can't rescore this kind of feed."
msgstr ""
-#: js/tt-rss.js:601 js/tt-rss.js:596 js/tt-rss.js:530
+#: js/tt-rss.js:830
msgid "Rescore articles in %s?"
msgstr ""
-#: js/tt-rss.js:1062 js/tt-rss.js:883 js/tt-rss.js:825
+#: js/tt-rss.js:833
+msgid "Rescoring articles..."
+msgstr ""
+
+#: js/tt-rss.js:967
msgid "New version available!"
msgstr ""
-#: js/viewfeed.js:108
+#: js/viewfeed.js:100
msgid "Cancel search"
msgstr ""
-#: js/viewfeed.js:456 js/viewfeed.js:445 js/viewfeed.js:451
+#: js/viewfeed.js:449
msgid "Unstar article"
msgstr ""
-#: js/viewfeed.js:461 js/viewfeed.js:450 js/viewfeed.js:456
+#: js/viewfeed.js:453
msgid "Star article"
msgstr ""
-#: js/viewfeed.js:496 js/viewfeed.js:485 js/viewfeed.js:491
+#: js/viewfeed.js:493
msgid "Unpublish article"
msgstr ""
-#: js/viewfeed.js:676 js/viewfeed.js:704 js/viewfeed.js:731 js/viewfeed.js:793
-#: js/viewfeed.js:825 js/viewfeed.js:962 js/viewfeed.js:1005
-#: js/viewfeed.js:1055 js/viewfeed.js:2181 js/viewfeed.js:665
-#: js/viewfeed.js:693 js/viewfeed.js:720 js/viewfeed.js:782 js/viewfeed.js:814
-#: js/viewfeed.js:951 js/viewfeed.js:994 js/viewfeed.js:1044
-#: js/viewfeed.js:2154 js/viewfeed.js:671 js/viewfeed.js:699
-#: js/viewfeed.js:726 js/viewfeed.js:788 js/viewfeed.js:820 js/viewfeed.js:957
-#: js/viewfeed.js:1000 js/viewfeed.js:1050 js/viewfeed.js:2018
+#: js/viewfeed.js:497
+msgid "Publish article"
+msgstr ""
+
+#: js/viewfeed.js:649
+msgid "%d article selected"
+msgid_plural "%d articles selected"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/viewfeed.js:721 js/viewfeed.js:749 js/viewfeed.js:776 js/viewfeed.js:839
+#: js/viewfeed.js:873 js/viewfeed.js:993 js/viewfeed.js:1036
+#: js/viewfeed.js:1089 js/viewfeed.js:2066 plugins/mailto/init.js:7
+#: plugins/mail/mail.js:7
msgid "No articles are selected."
msgstr ""
-#: js/viewfeed.js:942 js/viewfeed.js:931 js/viewfeed.js:937
-msgid "Mark all visible articles in %s as read?"
+#: js/viewfeed.js:1001
+msgid "Delete %d selected article in %s?"
+msgid_plural "Delete %d selected articles in %s?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/viewfeed.js:1003
+msgid "Delete %d selected article?"
+msgid_plural "Delete %d selected articles?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/viewfeed.js:1045
+msgid "Archive %d selected article in %s?"
+msgid_plural "Archive %d selected articles in %s?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/viewfeed.js:1048
+msgid "Move %d archived article back?"
+msgid_plural "Move %d archived articles back?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/viewfeed.js:1050
+msgid ""
+"Please note that unstarred articles might get purged on next feed update."
msgstr ""
-#: js/viewfeed.js:970 js/viewfeed.js:959 js/viewfeed.js:965
-msgid "Delete %d selected articles in %s?"
+#: js/viewfeed.js:1095
+msgid "Mark %d selected article in %s as read?"
+msgid_plural "Mark %d selected articles in %s as read?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/viewfeed.js:1119
+msgid "Edit article Tags"
msgstr ""
-#: js/viewfeed.js:972 js/viewfeed.js:961 js/viewfeed.js:967
-msgid "Delete %d selected articles?"
+#: js/viewfeed.js:1125
+msgid "Saving article tags..."
msgstr ""
-#: js/viewfeed.js:1014 js/viewfeed.js:1003 js/viewfeed.js:1009
-msgid "Archive %d selected articles in %s?"
+#: js/viewfeed.js:1331
+msgid "No article is selected."
msgstr ""
-#: js/viewfeed.js:1017 js/viewfeed.js:1006 js/viewfeed.js:1012
-msgid "Move %d archived articles back?"
+#: js/viewfeed.js:1366
+msgid "No articles found to mark"
msgstr ""
-#: js/viewfeed.js:1061 js/viewfeed.js:1050 js/viewfeed.js:1056
-msgid "Mark %d selected articles in %s as read?"
+#: js/viewfeed.js:1368
+msgid "Mark %d article as read?"
+msgid_plural "Mark %d articles as read?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/viewfeed.js:1870
+msgid "Open original article"
msgstr ""
-#: js/viewfeed.js:1085 js/viewfeed.js:1074 js/viewfeed.js:1080
-msgid "Edit article Tags"
+#: js/viewfeed.js:1876
+msgid "Display article URL"
msgstr ""
-#: js/viewfeed.js:1247 js/viewfeed.js:1236 js/viewfeed.js:1242
-msgid "No article is selected."
+#: js/viewfeed.js:1895
+msgid "Toggle marked"
msgstr ""
-#: js/viewfeed.js:1282 js/viewfeed.js:1271 js/viewfeed.js:1277
-msgid "No articles found to mark"
+#: js/viewfeed.js:1976
+msgid "Assign label"
msgstr ""
-#: js/viewfeed.js:1284 js/viewfeed.js:1273 js/viewfeed.js:1279
-msgid "Mark %d article(s) as read?"
+#: js/viewfeed.js:1981
+msgid "Remove label"
msgstr ""
-#: js/viewfeed.js:1402 js/viewfeed.js:1383
-msgid "Loading..."
+#: js/viewfeed.js:2035
+msgid "Please enter new score for selected articles:"
msgstr ""
-#: js/viewfeed.js:1891 js/viewfeed.js:1864 js/viewfeed.js:1734
-msgid "Open original article"
+#: js/viewfeed.js:2077
+msgid "Please enter new score for this article:"
msgstr ""
-#: js/viewfeed.js:1897 js/viewfeed.js:1870
-msgid "View in a tt-rss tab"
+#: js/viewfeed.js:2110
+msgid "Article URL:"
msgstr ""
-#: js/viewfeed.js:1905 js/viewfeed.js:1878 js/viewfeed.js:1742
-msgid "Mark above as read"
+#: plugins/embed_original/init.js:6
+msgid "Sorry, your browser does not support sandboxed iframes."
msgstr ""
-#: js/viewfeed.js:1911 js/viewfeed.js:1884 js/viewfeed.js:1748
-msgid "Mark below as read"
+#: plugins/mailto/init.js:21 plugins/mail/mail.js:21
+msgid "Forward article by email"
msgstr ""
-#: js/viewfeed.js:1967 js/viewfeed.js:1940 js/viewfeed.js:1804
-msgid "Remove label"
+#: plugins/import_export/import_export.js:13
+msgid "Export Data"
+msgstr ""
+
+#: plugins/import_export/import_export.js:40
+msgid ""
+"Finished, exported %d article. You can download the data <a "
+"class='visibleLink' href='%u'>here</a>."
+msgid_plural ""
+"Finished, exported %d articles. You can download the data <a "
+"class='visibleLink' href='%u'>here</a>."
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/import_export/import_export.js:93
+msgid "Data Import"
msgstr ""
-#: js/viewfeed.js:1991 js/viewfeed.js:1964 js/viewfeed.js:1828
-msgid "Playing..."
+#: plugins/import_export/import_export.js:112
+msgid "Please choose the file first."
msgstr ""
-#: js/viewfeed.js:1992 js/viewfeed.js:1965 js/viewfeed.js:1829
-msgid "Click to pause"
+#: plugins/note/note.js:17
+msgid "Saving article note..."
msgstr ""
-#: js/viewfeed.js:2150 js/viewfeed.js:2123 js/viewfeed.js:1987
-msgid "Please enter new score for selected articles:"
+#: plugins/googlereaderimport/init.js:18
+msgid "Google Reader Import"
msgstr ""
-#: js/viewfeed.js:2192 js/viewfeed.js:2165 js/viewfeed.js:2029
-msgid "Please enter new score for this article:"
+#: plugins/googlereaderimport/init.js:42
+msgid "Please choose a file first."
msgstr ""
-#: js/functions.js:1887 js/functions.js:1891
-msgid "Help"
+#: plugins/instances/instances.js:10
+msgid "Link Instance"
msgstr ""
-#: js/prefs.js:1831
-msgid "Clear stored data for this plugin?"
+#: plugins/instances/instances.js:73
+msgid "Edit Instance"
msgstr ""
-#: js/tt-rss.js:741 js/tt-rss.js:676
-msgid "Please enable mail plugin first."
+#: plugins/instances/instances.js:122
+msgid "Remove selected instances?"
+msgstr ""
+
+#: plugins/instances/instances.js:125
+msgid "Removing selected instances..."
+msgstr ""
+
+#: plugins/instances/instances.js:139 plugins/instances/instances.js:151
+msgid "No instances are selected."
+msgstr ""
+
+#: plugins/instances/instances.js:156
+msgid "Please select only one instance."
+msgstr ""
+
+#: plugins/share/share.js:10
+msgid "Share article by URL"
+msgstr ""
+
+#: plugins/updater/updater.js:58
+msgid ""
+"Backup your tt-rss directory before continuing. Please type 'yes' to "
+"continue."
msgstr ""
diff --git a/mobile/article.php b/mobile/article.php
deleted file mode 100644
index 345767fbd..000000000
--- a/mobile/article.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
- error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
- header('Content-Type: text/html; charset=utf-8');
-
- define('MOBILE_VERSION', true);
-
- require_once "../config.php";
- require_once "mobile-functions.php";
-
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- init_connection($link);
-
- login_sequence($link, true);
-
- $id = db_escape_string($_REQUEST["id"]);
- $feed_id = db_escape_string($_REQUEST["feed"]);
- $cat_id = db_escape_string($_REQUEST["cat"]);
- $is_cat = db_escape_string($_REQUEST["is_cat"]);
-
- render_article($link, $id, $feed_id, $cat_id, $is_cat);
-?>
-
diff --git a/mobile/backend.php b/mobile/backend.php
deleted file mode 100644
index 98e30bd13..000000000
--- a/mobile/backend.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
- error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
- header('Content-Type: text/html; charset=utf-8');
-
- define('MOBILE_VERSION', true);
-
- require_once "../config.php";
- require_once "mobile-functions.php";
-
- require_once "functions.php";
- require_once "sessions.php";
- require_once "version.php";
- require_once "db-prefs.php";
-
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- init_connection($link);
-
- login_sequence($link, true);
-
- $op = $_REQUEST["op"];
-
- switch ($op) {
- case "toggleMarked":
- $cmode = db_escape_string($_REQUEST["mark"]);
- $id = db_escape_string($_REQUEST["id"]);
-
- markArticlesById($link, array($id), $cmode);
- break;
- case "togglePublished":
- $cmode = db_escape_string($_REQUEST["pub"]);
- $id = db_escape_string($_REQUEST["id"]);
-
- publishArticlesById($link, array($id), $cmode);
- break;
- case "toggleUnread":
- $cmode = db_escape_string($_REQUEST["unread"]);
- $id = db_escape_string($_REQUEST["id"]);
-
- catchupArticlesById($link, array($id), $cmode);
- break;
-
- case "setPref":
- $id = db_escape_string($_REQUEST["id"]);
- $value = db_escape_string($_REQUEST["to"]);
- mobile_set_pref($link, $id, $value);
- print_r($_SESSION);
- break;
- default:
- print json_encode(array("error", "UNKNOWN_METHOD"));
- break;
- }
-?>
-
diff --git a/mobile/cat.php b/mobile/cat.php
deleted file mode 100644
index 74d488e1f..000000000
--- a/mobile/cat.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
- error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
- header('Content-Type: text/html; charset=utf-8');
-
- define('MOBILE_VERSION', true);
-
- require_once "../config.php";
- require_once "mobile-functions.php";
-
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- init_connection($link);
-
- login_sequence($link, true);
-
- $cat_id = db_escape_string($_REQUEST["id"]);
-
- render_category($link, $cat_id);
-?>
-
diff --git a/mobile/feed.php b/mobile/feed.php
deleted file mode 100644
index f7b7443d3..000000000
--- a/mobile/feed.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
- error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
- header('Content-Type: text/html; charset=utf-8');
-
- define('MOBILE_VERSION', true);
-
- require_once "../config.php";
- require_once "mobile-functions.php";
-
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- init_connection($link);
-
- login_sequence($link, true);
-
- $feed_id = db_escape_string($_REQUEST["id"]);
- $cat_id = db_escape_string($_REQUEST["cat"]);
- $offset = (int) db_escape_string($_REQUEST["skip"]);
- $search = db_escape_string($_REQUEST["search"]);
- $is_cat = (bool) db_escape_string($_REQUEST["is_cat"]);
-
- render_headlines_list($link, $feed_id, $cat_id, $offset, $search, $is_cat);
-?>
-
diff --git a/mobile/home.php b/mobile/home.php
deleted file mode 100644
index 71194da0a..000000000
--- a/mobile/home.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
- error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
- header('Content-Type: text/html; charset=utf-8');
-
- define('MOBILE_VERSION', true);
-
- require_once "../config.php";
- require_once "mobile-functions.php";
-
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- init_connection($link);
-
- login_sequence($link, true);
-
- $use_cats = mobile_get_pref($link, 'ENABLE_CATS');
- $offset = (int) db_escape_string($_REQUEST["skip"]);
-
- if ($use_cats) {
- render_categories_list($link);
- } else {
- render_flat_feed_list($link, $offset);
- }
-?>
diff --git a/mobile/image.php b/mobile/image.php
deleted file mode 100644
index 765fcc240..000000000
--- a/mobile/image.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
- set_include_path(dirname(__FILE__) . PATH_SEPARATOR .
- dirname(dirname(__FILE__)) . PATH_SEPARATOR .
- dirname(dirname(__FILE__)) . "/include" . PATH_SEPARATOR .
- get_include_path());
-
- require_once "config.php";
-
- chdir('..');
-
- $filename = CACHE_DIR . '/images/' . sha1($_GET['url']) . '.png';
-
- if (file_exists($filename)) {
- header("Content-type: image/png");
- echo file_get_contents($filename);
- } else {
- header("Location: " . $_GET['url']);
- }
-?>
diff --git a/mobile/index.php b/mobile/index.php
deleted file mode 100644
index edbf586e0..000000000
--- a/mobile/index.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
- error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
- header('Content-Type: text/html; charset=utf-8');
-
- define('MOBILE_VERSION', true);
-
- require_once "../config.php";
- require_once "mobile-functions.php";
-
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- init_connection($link);
-
- login_sequence($link, true);
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>Tiny Tiny RSS</title>
-<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
-<link rel="apple-touch-icon" href="../lib/iui/iui-logo-touch-icon.png" />
-<meta name="apple-touch-fullscreen" content="YES" />
-<style type="text/css" media="screen">@import "../lib/iui/iui.css";</style>
-<script type="application/x-javascript" src="../lib/iui/iui.js"></script>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-<script type="text/javascript" src="../lib/prototype.js"></script>
-<script type="text/javascript" src="mobile.js"></script>
-<style type="text/css" media="screen">@import "mobile.css";</style>
-</head>
-
-<style type="text/css">
- img { max-width : 75%; }
-
- li.oldItem {
- color : gray;
- }
-
- #myBackButton {
- display: none;
- left: 6px;
- right: auto;
- padding: 0;
- max-width: 55px;
- border-width: 0 8px 0 14px;
- -webkit-border-image: url(../lib/iui/backButton.png) 0 8 0 14;
- }
-
- img.tinyIcon {
- max-width : 16px;
- max-height : 16px;
- margin-right : 10px;
- vertical-align : middle;
- }
-
- a img {
- border-width : 0px;
- }
-</style>
-
-<body>
- <div class="toolbar">
- <h1 id="pageTitle"></h1>
- <a id="myBackButton" class="button" href="#"></a>
- <a class="button" href="prefs.php">Preferences</a>
- </div>
-
- <?php
- $use_cats = mobile_get_pref($link, 'ENABLE_CATS');
- $offset = (int) db_escape_string($_REQUEST["skip"]);
-
- if ($use_cats) {
- render_categories_list($link);
- } else {
- render_flat_feed_list($link, $offset);
- }
- ?>
-
-</body>
-</html>
diff --git a/mobile/login_form.php b/mobile/login_form.php
deleted file mode 100644
index 98c0bfdbc..000000000
--- a/mobile/login_form.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>Tiny Tiny RSS</title>
-<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
-<link rel="apple-touch-icon" href="../lib/iui/iui-logo-touch-icon.png" />
-<meta name="apple-touch-fullscreen" content="YES" />
-<style type="text/css" media="screen">@import "../lib/iui/iui.css";</style>
-<script type="application/x-javascript" src="../lib/iui/iui.js"></script>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-</head>
-
-
-<script type="text/javascript">
-function do_login() {
- var f = document.forms['login'];
- f.submit();
-}
-</script>
-
-<body>
-
- <div class="toolbar">
- <h1 id="pageTitle"></h1>
- <a id="backButton" class="button" href="#"></a>
- <a class="button blueButton" onclick='do_login()'><?php echo __('Log in') ?></a>
- </div>
-
- <form target="_self" title="Login" id="login" class="panel" name="login" selected="true"
- action="../public.php?return=<?php echo htmlspecialchars($_SERVER["REQUEST_URI"]) ?>"
- method="post">
-
- <input type="hidden" name="op" value="login">
-
- <fieldset>
-
- <div class="row">
- <label><?php echo __("Login:") ?></label>
- <input type="text" autocapitalize="off" name="login">
- </div>
-
- <div class="row">
- <label><?php echo __("Password:") ?></label>
- <input type="password" name="password">
- </div>
-
- </fieldset>
-
- <div align='center'><a target='_self' href='<?php echo get_self_url_prefix() ?>/index.php?mobile=false'>
- <?php echo __("Open regular version") ?></a>
-
- </form>
-
-</body>
-</html>
-
diff --git a/mobile/logout.php b/mobile/logout.php
deleted file mode 100644
index 46d7ec8ee..000000000
--- a/mobile/logout.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
- require_once "mobile-functions.php";
-
- logout_user();
-
- header("Location: index.php");
-?>
diff --git a/mobile/mobile-functions.php b/mobile/mobile-functions.php
deleted file mode 100644
index 65bba55df..000000000
--- a/mobile/mobile-functions.php
+++ /dev/null
@@ -1,548 +0,0 @@
-<?php
- set_include_path(dirname(__FILE__) . PATH_SEPARATOR .
- dirname(dirname(__FILE__)) . PATH_SEPARATOR .
- dirname(dirname(__FILE__)) . "/include" . PATH_SEPARATOR .
- get_include_path());
-
- require_once "functions.php";
- require_once "sessions.php";
- require_once "version.php";
- require_once "db-prefs.php";
-
- define('TTRSS_SESSION_NAME', 'ttrss_m_sid');
-
- /* TODO replace with interface to db-prefs */
-
- function mobile_pref_toggled($link, $id) {
- if (get_pref($link, "_MOBILE_$id"))
- return "true";
- else
- return "";
- }
-
- function mobile_get_pref($link, $id) {
- //return $_SESSION["mobile-prefs"][$id];
- return get_pref($link, "_MOBILE_$id");
- }
-
- function mobile_set_pref($link, $id, $value) {
- //$_SESSION["mobile-prefs"][$id] = $value;
- return set_pref($link, "_MOBILE_$id", $value);
- }
-
- function mobile_feed_has_icon($id) {
- $filename = "../".ICONS_DIR."/$id.ico";
-
- return file_exists($filename) && filesize($filename) > 0;
- }
-
- function render_flat_feed_list($link, $offset) {
- $owner_uid = $_SESSION["uid"];
- $limit = 0;
-
- if (!$offset) $offset = 0;
-
- if (mobile_get_pref($link, "SORT_FEEDS_UNREAD")) {
- $order_by = "unread DESC, title";
- } else {
- $order_by = "title";
- }
-
- if ($limit > 0) {
- $limit_qpart = "LIMIT $limit OFFSET $offset";
- } else {
- $limit_qpart = "";
- }
-
- $result = db_query($link, "SELECT id,
- title,
- (SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries
- WHERE feed_id = ttrss_feeds.id AND unread = true
- AND ttrss_user_entries.ref_id = ttrss_entries.id
- AND owner_uid = '$owner_uid') AS unread
- FROM ttrss_feeds
- WHERE
- ttrss_feeds.owner_uid = '$owner_uid'
- ORDER BY $order_by $limit_qpart");
-
- if (!$offset) print '<ul id="home" title="'.__('Home').'" selected="true"
- myBackLabel="'.__('Logout').'" myBackHref="logout.php" myBackTarget="_self">';
-
-
- // print "<li><a href='#cat-actions'>".__('Actions...')."</a></li>";
-
- $num_feeds = 0;
-
- while ($line = db_fetch_assoc($result)) {
- $id = $line["id"];
- $unread = $line["unread"];
-
- // $unread = rand(0, 100);
-
- if ($unread > 0) {
- $line["title"] = $line["title"] . " ($unread)";
- $class = '';
- } else {
- $class = 'oldItem';
- }
-
- if (mobile_feed_has_icon($id)) {
- $icon_url = "../".ICONS_URL."/$id.ico";
- } else {
- $icon_url = "../images/blank_icon.gif";
- }
-
- if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
- print "<li class='$class'><a href='feed.php?id=$id'>" .
- "<img class='tinyIcon' src='$icon_url'/>".
- $line["title"] . "</a></li>";
- }
-
- ++$num_feeds;
- }
-
-/* $next_offset = $offset + $num_feeds;
-
- print "<li><a href=\"home.php?skip=$next_offset\"
- target=\"_replace\">Show more feeds...</a></li>"; */
-
- if (!$offset) print "</ul>";
-
- }
-
- function render_category($link, $cat_id, $offset) {
- $owner_uid = $_SESSION["uid"];
-
- if ($cat_id >= 0) {
-
- if ($cat_id != 0) {
- $cat_query = "cat_id = '$cat_id'";
- } else {
- $cat_query = "cat_id IS NULL";
- }
-
- if (mobile_get_pref($link, "SORT_FEEDS_UNREAD")) {
- $order_by = "unread DESC, title";
- } else {
- $order_by = "title";
- }
-
- $result = db_query($link, "SELECT id,
- title,
- (SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries
- WHERE feed_id = ttrss_feeds.id AND unread = true
- AND ttrss_user_entries.ref_id = ttrss_entries.id
- AND owner_uid = '$owner_uid') as unread
- FROM ttrss_feeds
- WHERE
- ttrss_feeds.owner_uid = '$owner_uid' AND
- $cat_query
- ORDER BY $order_by");
-
- $title = getCategoryTitle($link, $cat_id);
-
- print "<ul id='cat-$cat_id' title='$title' myBackLabel='".__("Home")."'
- myBackHref='home.php'>";
-
- // print "<li><a href='#cat-actions'>".__('Actions...')."</a></li>";
-
- while ($line = db_fetch_assoc($result)) {
- $id = $line["id"];
- $unread = $line["unread"];
-
- // $unread = rand(0, 100);
-
- if ($unread > 0) {
- $line["title"] = $line["title"] . " ($unread)";
- $class = '';
- } else {
- $class = 'oldItem';
- }
-
- if (mobile_feed_has_icon($id)) {
- $icon_url = "../".ICONS_URL."/$id.ico";
- } else {
- $icon_url = "../images/blank_icon.gif";
- }
-
- if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
- print "<li class='$class'><a href='feed.php?id=$id&cat=$cat_id'>" .
- "<img class='tinyIcon' src='$icon_url'/>".
- $line["title"] . "</a></li>";
- }
- }
-
- print "</ul>";
- } else if ($cat_id == -1) {
-
- $title = __('Special');
-
- print "<ul id='cat--1' title='$title' myBackLabel='".__("Home")."'
- myBackHref='home.php'>";
-
- foreach (array(-4, -3, -1, -2, 0) as $id) {
- $title = getFeedTitle($link, $id);
- $unread = getFeedUnread($link, $id, false);
- $icon = getFeedIcon($id);
-
- if ($unread > 0) {
- $title = $title . " ($unread)";
- $class = '';
- } else {
- $class = 'oldItem';
- }
-
- if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
- print "<li class='$class'>
- <a href='feed.php?id=$id&cat=-1'>
- <img class='tinyIcon' src='../$icon'/>$title</a></li>";
- }
- }
-
- print "</ul>";
- } else if ($cat_id == -2) {
-
- $title = __('Labels');
-
- print "<ul id='cat--2' title='$title' myBackLabel='".__("Home")."'
- myBackHref='home.php'>";
-
- $result = db_query($link, "SELECT id, caption FROM ttrss_labels2
- WHERE owner_uid = '$owner_uid'");
-
- $label_data = array();
-
- while ($line = db_fetch_assoc($result)) {
-
- $id = -$line["id"] - 11;
-
- $unread = getFeedUnread($link, $id);
- $title = $line["caption"];
-
- if ($unread > 0) {
- $title = $title . " ($unread)";
- $class = '';
- } else {
- $class = 'oldItem';
- }
-
- if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
- print "<li class='$class'>
- <a href='feed.php?id=$id&cat=-2'>$title</a></li>";
- }
- }
- print "</ul>";
- }
- }
-
- function render_categories_list($link) {
- $owner_uid = $_SESSION["uid"];
-
- $cat_browse = mobile_get_pref($link, "BROWSE_CATS");
-
- print '<ul id="home" title="'.__('Home').'" selected="true"
- myBackLabel="'.__('Logout').'" myBackHref="logout.php" myBackTarget="_self">';
-
-// print "<li><a href='#searchForm'>Search...</a></li>";
-
- foreach (array(-1, -2) as $id) {
- $title = getCategoryTitle($link, $id);
- $unread = getFeedUnread($link, $id, true);
- if ($unread > 0) {
- $title = $title . " ($unread)";
- $class = '';
- } else {
- $class = 'oldItem';
- }
-
- if ($cat_browse)
- print "<li class='$class'><a href='cat.php?id=$id'>$title</a></li>";
- else
- print "<li class='$class'><a href='feed.php?id=$id&is_cat=true'>$title</a></li>";
- }
-
- $result = db_query($link, "SELECT
- ttrss_feed_categories.id,
- ttrss_feed_categories.title,
- COUNT(ttrss_feeds.id) AS num_feeds
- FROM ttrss_feed_categories, ttrss_feeds
- WHERE ttrss_feed_categories.owner_uid = $owner_uid
- AND ttrss_feed_categories.id = cat_id
- GROUP BY ttrss_feed_categories.id,
- ttrss_feed_categories.title
- ORDER BY ttrss_feed_categories.title");
-
- while ($line = db_fetch_assoc($result)) {
-
- if ($line["num_feeds"] > 0) {
-
- $unread = getFeedUnread($link, $line["id"], true);
- $id = $line["id"];
-
- if ($unread > 0) {
- $line["title"] = $line["title"] . " ($unread)";
- $class = '';
- } else {
- $class = 'oldItem';
- }
-
- if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
-
- if ($cat_browse)
- print "<li class='$class'><a href='cat.php?id=$id'>" .
- $line["title"] . "</a></li>";
- else
- print "<li class='$class'><a href='feed.php?id=$id&is_cat=true'>".
- $line["title"] . "</a></li>";
- }
- }
- }
-
-
- $result = db_query($link, "SELECT COUNT(*) AS nf FROM ttrss_feeds WHERE
- cat_id IS NULL and owner_uid = '$owner_uid'");
-
- $num_feeds = db_fetch_result($result, 0, "nf");
-
- if ($num_feeds > 0) {
- $unread = getFeedUnread($link, 0, true);
- $title = "Uncategorized";
-
- if ($unread > 0) {
- $title = "$title ($unread)";
- $class = '';
- } else {
- $class = 'oldItem';
- }
-
- if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
- if ($cat_browse)
- print "<li class='$class'><a href='cat.php?id=0'>$title</a></li>";
- else
- print "<li class='$class'><a href='feed.php?id=0&is_cat=true'>$title</a></li>";
-
- }
- }
-
- print "</ul>";
- }
-
- function render_headlines_list($link, $feed_id, $cat_id, $offset, $search,
- $is_cat = false) {
-
- $feed_id = $feed_id;
- $limit = 15;
- $filter = '';
-
- if (!mobile_get_pref($link, "HIDE_READ"))
- $view_mode = "all_articles";
- else
- $view_mode = 'adaptive';
-
- if ($search) {
- $search_mode = 'this_feed';
- $match_on = 'both';
- } else {
- $search_mode = '';
- $match_on = '';
- }
-
- $qfh_ret = queryFeedHeadlines($link, $feed_id, $limit,
- $view_mode, $is_cat, $search, $search_mode, $match_on,
- "score DESC, date_entered ".(mobile_get_pref($link, 'REVERSE_HEADLINES') ? 'ASC' : 'DESC'), $offset);
-
- $result = $qfh_ret[0];
- $feed_title = $qfh_ret[1];
-
- if (!$offset) {
-
- print "<form id=\"searchForm-$feed_id-$cat_id\" class=\"dialog\" method=\"POST\"
- action=\"feed.php\">
-
- <input type=\"hidden\" name=\"id\" value=\"$feed_id\">
- <input type=\"hidden\" name=\"cat\" value=\"$cat_id\">
-
- <fieldset>
- <h1>Search</h1>
- <a class=\"button leftButton\" type=\"cancel\">Cancel</a>
- <a class=\"button blueButton\" type=\"submit\">Search</a>
-
- <label>Search:</label>
- <input id=\"search\" type=\"text\" name=\"search\"/>
- </fieldset>
- </form>";
-
- if ($cat_id) {
- $cat_title = getCategoryTitle($link, $cat_id);
-
- print "<ul id=\"feed-$feed_id\" title=\"$feed_title\" selected=\"true\"
- myBackLabel='$cat_title' myBackHref='cat.php?id=$cat_id'>";
- } else {
- print "<ul id=\"feed-$feed_id\" title=\"$feed_title\" selected=\"true\"
- myBackLabel='".__("Home")."' myBackHref='home.php'>";
- }
-
- print "<li><a href='#searchForm-$feed_id-$cat_id'>Search...</a></li>";
- }
-
- $num_headlines = 0;
-
- while ($line = db_fetch_assoc($result)) {
- $id = $line["id"];
- $real_feed_id = $line["feed_id"];
-
- if (sql_bool_to_bool($line["unread"])) {
- $class = '';
- } else {
- $class = 'oldItem';
- }
-
- if (mobile_feed_has_icon($real_feed_id)) {
- $icon_url = "../".ICONS_URL."/$real_feed_id.ico";
- } else {
- $icon_url = "../images/blank_icon.gif";
- }
-
- print "<li class='$class'><a href='article.php?id=$id&feed=$feed_id&cat=$cat_id&is_cat=$is_cat'>
- <img class='tinyIcon' src='$icon_url'>";
- print $line["title"];
- print "</a></li>";
-
- ++$num_headlines;
-
- }
-
- if ($num_headlines == 0 && $search) {
- $articles_url = "feed.php?id=$feed_id&cat=$cat_id&skip=$next_offset";
-
- print "<li><a href=\"$articles_url\">" . __("Nothing found (click to reload feed).") . "</a></li>";
-
- }
-
-// print "<a target='_replace' href='feed.php?id=$feed_id&cat=$cat_id&skip=0'>Next $limit articles...</a>";
-
- $next_offset = $offset + $num_headlines;
- $num_unread = getFeedUnread($link, $feed_id, $is_cat);
-
- /* FIXME needs normal implementation */
-
- if ($num_headlines > 0 && ($num_unread == 0 || $num_unread > $next_offset)) {
-
- if ($is_cat) {
- $articles_url = "feed.php?id=$feed_id&skip=$next_offset".
- "&search=$search&is_cat=true";
- } else {
- $articles_url = "feed.php?id=$feed_id&cat=$cat_id&skip=$next_offset".
- "&search=$search";
- }
-
- print "<li><a href=\"$articles_url\"
- target=\"_replace\">Get more articles...</a></li>";
- }
-
- if (!$offset) print "</ul>";
-
- }
-
- function render_article($link, $id, $feed_id, $cat_id, $is_cat) {
-
- $query = "SELECT title,link,content,feed_id,comments,int_id,
- marked,unread,published,
- ".SUBSTRING_FOR_DATE."(updated,1,16) as updated,
- author
- FROM ttrss_entries,ttrss_user_entries
- WHERE id = '$id' AND ref_id = id AND owner_uid = " .
- $_SESSION["uid"] ;
-
- $result = db_query($link, $query);
-
- if (db_num_rows($result) != 0) {
-
- $line = db_fetch_assoc($result);
-
- $tmp_result = db_query($link, "UPDATE ttrss_user_entries
- SET unread = false,last_read = NOW()
- WHERE ref_id = '$id'
- AND owner_uid = " . $_SESSION["uid"]);
-
- $updated_fmt = make_local_datetime($link, $line['updated'], false);
-
- $title = $line["title"];
- $article_link = $line["link"];
-
- if (!$is_cat)
- $feed_title = getFeedTitle($link, $feed_id);
- else
- $feed_title = getCategoryTitle($link, $feed_id);
-
- print "<div class=\"panel\" id=\"article-$id\" title=\"$title\"
- selected=\"true\"
- myBackLabel='$feed_title' myBackHref='feed.php?id=$feed_id&cat=$cat_id&is_cat=$is_cat'>";
-
- if ($line['feed_id'] != $feed_id) {
- $real_feed_title = getFeedTitle($link, $line['feed_id']);
- $real_feed_id = $line['feed_id'];
- $feed_link = "(<a href=\"feed.php?id=$real_feed_id\">$real_feed_title</a>)";
- }
-// print "<fieldset>";
-
- print "<div style='float : right'>($updated_fmt)</div>";
-
- print "<h2><a target='_blank' href='$article_link'>$title</a> $feed_link</h2>";
-
- print "<hr>";
-
-/* print "<div class=\"row\">";
- print "<label id='title'><a target='_blank' href='$article_link'>$title</a></label>";
- print "</div>"; */
-
- $is_starred = (sql_bool_to_bool($line["marked"])) ? "true" : "false";
- $is_published = (sql_bool_to_bool($line["published"])) ? "true" : "false";
-
- //print "<div class=\"row\">";
- //print "<label id='updated'>Updated:</label>";
- //print "<input type='text' enabled='false' name='updated' disabled value='$updated_fmt'/>";
- //print "</div>";
-
-// print "</fieldset>";
-
- $content = sanitize($link, $line["content"]);
- $content = preg_replace("/href=/i", "target=\"_blank\" href=", $content);
-
- if (!mobile_get_pref($link, "SHOW_IMAGES")) {
- $content = preg_replace('/<img[^>]+>/is', '', $content);
- }
-
- print "<p>$content</p>";
-
- print "<div class='nav'>
- <label>Navigation</label>
- <div class='button left' onclick='goPrev($id, $feed_id, this)'>Prev</div>
- <div class='button right' onclick='goNext($id, $feed_id, this)'>Next</div>
- </div>";
-
- print "<fieldset>";
-
- print "<div class=\"row\">
- <label>Starred</label>
- <div class=\"toggle\" onclick=\"toggleMarked($id, this)\" toggled=\"$is_starred\"><span class=\"thumb\"></span><span class=\"toggleOn\">ON</span><span class=\"toggleOff\">OFF</span></div>
- </div>";
-
- print "<div class=\"row\">
- <label>Published</label>
- <div class=\"toggle\" onclick=\"togglePublished($id, this)\" toggled=\"$is_published\"><span class=\"thumb\"></span><span class=\"toggleOn\">ON</span><span class=\"toggleOff\">OFF</span></div>
- </div>";
-
- print "<div class=\"row\">
- <label>Unread</label>
- <div class=\"toggle\" onclick=\"toggleUnread($id, this)\" toggled=\"$is_unread\"><span class=\"thumb\"></span><span class=\"toggleOn\">ON</span><span class=\"toggleOff\">OFF</span></div>
- </div>";
-
-
- print "</fieldset>";
-
- print "</div>";
-
- }
- }
-?>
diff --git a/mobile/mobile.css b/mobile/mobile.css
deleted file mode 100644
index 8068e3d38..000000000
--- a/mobile/mobile.css
+++ /dev/null
@@ -1,38 +0,0 @@
-div.nav {
- height: 40px;
- -webkit-border-radius: 10px;
- -moz-border-radius: 10px;
- background-color: #ffffff;
- border: 1px solid #999999;
- text-align: center;
- margin-bottom: 1em;
-}
-div.nav label {
- line-height: 40px;
- color: black;
- font-weight: bold;
-}
-div.nav .button {
- position: static;
- margin: 5px 10px;
- -webkit-border-image: url(../lib/iui/whiteButton.png) 0 12 0 12;
- text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0;
- color: black;
- cursor: pointer; /* On a touch screen ? */
-}
-div.nav .button.left {
- float: left;
-}
-div.nav .button.right {
- float: right;
-}
-
-ul li a.read {
- color: #666666;
-}
-
-ul li span.browse {
- color : #909090;
- text-align : right;
- float : right;
-}
diff --git a/mobile/mobile.js b/mobile/mobile.js
deleted file mode 100644
index 3fed3a1d7..000000000
--- a/mobile/mobile.js
+++ /dev/null
@@ -1,163 +0,0 @@
-var backend = "backend.php";
-
-function toggleMarked(id, elem) {
-
- var toggled = false;
-
- if (elem.getAttribute("toggled") == "true") {
- toggled = 1;
- } else {
- toggled = 0;
- }
-
- var query = "op=toggleMarked&id=" + id + "&mark=" + toggled;
-
- new Ajax.Request(backend, {
- parameters: query,
- onComplete: function (transport) {
- //
- } });
-}
-
-function togglePublished(id, elem) {
-
- var toggled = false;
-
- if (elem.getAttribute("toggled") == "true") {
- toggled = 1;
- } else {
- toggled = 0;
- }
-
- var query = "op=togglePublished&id=" + id + "&pub=" + toggled;
-
- new Ajax.Request(backend, {
- parameters: query,
- onComplete: function (transport) {
- //
- } });
-
-}
-
-function toggleUnread(id, elem) {
-
- var toggled = false;
-
- if (elem.getAttribute("toggled") == "true") {
- toggled = 1;
- } else {
- toggled = 0;
- }
-
- var query = "op=toggleUnread&id=" + id + "&unread=" + toggled;
-
- new Ajax.Request(backend, {
- parameters: query,
- onComplete: function (transport) {
- //
- } });
-
-}
-
-function setPref(elem) {
- var toggled = false;
- var id = elem.id;
-
- if (elem.getAttribute("toggled") == "true") {
- toggled = 1;
- } else {
- toggled = 0;
- }
-
- var query = "op=setPref&id=" + id + "&to=" + toggled;
-
- new Ajax.Request(backend, {
- parameters: query,
- onComplete: function (transport) {
- //
- } });
-
-}
-
-// Go directly to another item in the same feed
-function goToSibling(article_id, feed_id, link, step) {
- var links = linksInFeed(feed_id);
- for (var i=0 ; i<links.length ; i++) {
- var re = new RegExp(".*article\\.php\\?id="+article_id+"&.*");
- if (!re.test(links[i].href)) continue;
- // here, we've found the current article
- var index = i + step;
- if (index < 0) {
- markAsRead(feed_id);
- iui.showPage($("feed-"+feed_id), true);
- return false;
- }
- if (index >= links.length) {
- showRestOfFeed(feed_id);
- return false;
- }
- console.log(links[index]);
- var match = links[index].href.match(/.*article\.php\?(.*)/);
- var qs = match[1];
- var backwards = false;
- if (step < 0) backwards = true;
- link.setAttribute("selected", "progress");
- function unselect() { link.removeAttribute("selected"); }
- iui.showPageByHref("article.php?"+qs, null, null, null, unselect, backwards);
- return false;
- }
- return false;
-}
-function goPrev(article_id, feed_id, link) {
- return goToSibling(article_id, feed_id, link, -1);
-}
-function goNext(article_id, feed_id, link) {
- return goToSibling(article_id, feed_id, link, 1);
-}
-
-// Get all the links in the feed. The all_links variable includes the "get more article" link
-function linksInFeed(feed_id, all_links) {
- var feed_content = $("feed-"+feed_id);
- var links_raw = feed_content.getElementsByTagName("a");
- if (all_links) return links_raw;
- var links = [];
- // filter the array to remove the "get more articles" link
- // and the "search" link (which is always first)
- for (var i=1 ; i<links_raw.length ; i++) {
- if (links_raw[i].href.match(/.*article\.php\?id=.*/)) {
- links.push(links_raw[i]);
- }
- }
- return links;
-}
-
-// Adds the "read" class to all read links in the feed
-function markAsRead(feed_id) {
- var links = linksInFeed(feed_id);
- for (var j=0 ; j<links.length ; j++) {
- var match = links[j].href.match(/.*article\.php\?id=(\d+)&.*/);
- if ($("article-"+match[1])) {
- links[j].className = "read";
- }
- }
-}
-
-// Go the the articles list and expand the "get more articles" link
-function showRestOfFeed(feed_id) {
- var links_raw = linksInFeed(feed_id, true);
- var lastlink = links_raw[links_raw.length - 1];
- if (lastlink.target == "_replace") {
- // It's a "get more articles" link
- iui.showPage($("feed-"+feed_id), true);
- // Mark old items a "read"
- markAsRead(feed_id);
- // Simulate click on the "get more articles" link
- lastlink.setAttribute("selected", "progress");
- function unselect() { lastlink.removeAttribute("selected"); }
- setTimeout(window.scrollTo, 0, 0, 1000);
- iui.showPageByHref(lastlink.href, null, null, lastlink, unselect);
- } else {
- iui.showPage($("home"), true);
- }
-}
-
diff --git a/mobile/prefs.php b/mobile/prefs.php
deleted file mode 100644
index 6b053dc3b..000000000
--- a/mobile/prefs.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
- error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
- header('Content-Type: text/html; charset=utf-8');
-
- define('MOBILE_VERSION', true);
-
- require_once "../config.php";
- require_once "mobile-functions.php";
-
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- init_connection($link);
-
- login_sequence($link, true);
-?>
-
-<div class="panel" id="prefs" selected="yes" title="Preferences"
- myBackLabel="<?php echo __('Home') ?>" myBackHref="home.php">
-
-<fieldset>
-
-<div class="row">
- <label><?php echo __('Enable categories') ?></label>
- <div class="toggle" id="ENABLE_CATS" onclick="setPref(this)" toggled="<?php echo mobile_pref_toggled($link, "ENABLE_CATS") ?>"><span class="thumb"></span><span class="toggleOn"><?php echo __('ON') ?></span><span class="toggleOff"><?php echo __('OFF') ?></span></div>
-</div>
-
-<div class="row">
- <label><?php echo __('Browse categories like folders') ?></label>
- <div class="toggle" id="BROWSE_CATS" onclick="setPref(this)" toggled="<?php echo mobile_pref_toggled($link, "BROWSE_CATS") ?>"><span class="thumb"></span><span class="toggleOn"><?php echo __('ON') ?></span><span class="toggleOff"><?php echo __('OFF') ?></span></div>
-</div>
-
-
-<div class="row">
- <label><?php echo __('Show images in posts') ?></label>
- <div class="toggle" id="SHOW_IMAGES" onclick="setPref(this)" toggled="<?php echo mobile_pref_toggled($link, "SHOW_IMAGES") ?>"><span class="thumb"></span><span class="toggleOn"><?php echo __('ON') ?></span><span class="toggleOff"><?php echo __('OFF') ?></span></div>
-</div>
-
-<div class="row">
- <label><?php echo __('Hide read articles and feeds') ?></label>
- <div class="toggle" id="HIDE_READ" onclick="setPref(this)" toggled="<?php echo mobile_pref_toggled($link, "HIDE_READ") ?>"><span class="thumb"></span><span class="toggleOn"><?php echo __('ON') ?></span><span class="toggleOff"><?php echo __('OFF') ?></span></div>
-</div>
-
-<div class="row">
- <label><?php echo __('Sort feeds by unread count') ?></label>
- <div class="toggle" id="SORT_FEEDS_UNREAD" onclick="setPref(this)" toggled="<?php echo mobile_pref_toggled($link, "SORT_FEEDS_UNREAD") ?>"><span class="thumb"></span><span class="toggleOn"><?php echo __('ON') ?></span><span class="toggleOff"><?php echo __('OFF') ?></span></div>
-</div>
-
-<div class="row">
- <label><?php echo __('Reverse headline order (oldest first)') ?></label>
- <div class="toggle" id="REVERSE_HEADLINES" onclick="setPref(this)" toggled="<?php echo mobile_pref_toggled($link, "REVERSE_HEADLINES") ?>"><span class="thumb"></span><span class="toggleOn"><?php echo __('ON') ?></span><span class="toggleOff"><?php echo __('OFF') ?></span></div>
-</div>
-
-</fieldset>
diff --git a/opml.php b/opml.php
index 623913631..af3694051 100644
--- a/opml.php
+++ b/opml.php
@@ -2,6 +2,7 @@
set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
get_include_path());
+ require_once "autoload.php";
require_once "functions.php";
require_once "sessions.php";
require_once "sanity_check.php";
@@ -9,23 +10,21 @@
require_once "db.php";
require_once "db-prefs.php";
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- if (!init_connection($link)) return;
+ if (!init_plugins()) return;
$op = $_REQUEST['op'];
if ($op == "publish"){
- $key = db_escape_string($_REQUEST["key"]);
+ $key = db_escape_string( $_REQUEST["key"]);
- $result = db_query($link, "SELECT owner_uid
+ $result = db_query( "SELECT owner_uid
FROM ttrss_access_keys WHERE
access_key = '$key' AND feed_id = 'OPML:Publish'");
if (db_num_rows($result) == 1) {
$owner_uid = db_fetch_result($result, 0, "owner_uid");
- $opml = new Opml($link, $_REQUEST);
+ $opml = new Opml($_REQUEST);
$opml->opml_export("", $owner_uid, true, false);
} else {
@@ -33,6 +32,4 @@
}
}
- db_close($link);
-
?>
diff --git a/plugins/af_buttersafe/init.php b/plugins/af_buttersafe/init.php
index c9f6505cd..05e684aa0 100644
--- a/plugins/af_buttersafe/init.php
+++ b/plugins/af_buttersafe/init.php
@@ -1,7 +1,6 @@
<?php
class Af_Buttersafe extends Plugin {
- private $link;
private $host;
function about() {
@@ -11,7 +10,6 @@ class Af_Buttersafe extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
@@ -55,5 +53,10 @@ class Af_Buttersafe extends Plugin {
return $article;
}
+
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/af_explosm/init.php b/plugins/af_explosm/init.php
index 2a8fab491..dd106653a 100644
--- a/plugins/af_explosm/init.php
+++ b/plugins/af_explosm/init.php
@@ -1,7 +1,6 @@
<?php
class Af_Explosm extends Plugin {
- private $link;
private $host;
function about() {
@@ -11,7 +10,6 @@ class Af_Explosm extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
@@ -55,5 +53,9 @@ class Af_Explosm extends Plugin {
return $article;
}
+
+ function api_version() {
+ return 2;
+ }
}
?>
diff --git a/plugins/af_gocomics/init.php b/plugins/af_gocomics/init.php
index 466ec9687..e95de9f14 100644
--- a/plugins/af_gocomics/init.php
+++ b/plugins/af_gocomics/init.php
@@ -1,7 +1,5 @@
<?php
class Af_GoComics extends Plugin {
-
- private $link;
private $host;
function about() {
@@ -11,7 +9,6 @@ class Af_GoComics extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
@@ -55,5 +52,10 @@ class Af_GoComics extends Plugin {
return $article;
}
+
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/af_pennyarcade/init.php b/plugins/af_pennyarcade/init.php
index 26d19bc01..8ad02e14c 100644
--- a/plugins/af_pennyarcade/init.php
+++ b/plugins/af_pennyarcade/init.php
@@ -1,17 +1,15 @@
<?php
class Af_PennyArcade extends Plugin {
- private $link;
private $host;
function about() {
- return array(1.0,
+ return array(1.1,
"Strip unnecessary stuff from PA feeds",
"fox");
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
@@ -23,27 +21,57 @@ class Af_PennyArcade extends Plugin {
if (strpos($article["link"], "penny-arcade.com") !== FALSE && strpos($article["title"], "Comic:") !== FALSE) {
if (strpos($article["plugin_data"], "pennyarcade,$owner_uid:") === FALSE) {
+ if ($debug_enabled) {
+ _debug("af_pennyarcade: Processing comic");
+ }
+
$doc = new DOMDocument();
- @$doc->loadHTML(fetch_file_contents($article["link"]));
+ $doc->loadHTML(fetch_file_contents($article["link"]));
$basenode = false;
if ($doc) {
$xpath = new DOMXPath($doc);
- $entries = $xpath->query('(//img[@src])'); // we might also check for img[@class='strip'] I guess...
-
- $matches = array();
+ $entries = $xpath->query('(//div[@class="post comic"])');
foreach ($entries as $entry) {
+ $basenode = $entry;
+ }
+
+ if ($basenode) {
+ $article["content"] = $doc->saveXML($basenode);
+ $article["plugin_data"] = "pennyarcade,$owner_uid:" . $article["plugin_data"];
+ }
+ }
+ } else if (isset($article["stored"]["content"])) {
+ $article["content"] = $article["stored"]["content"];
+ }
+ }
- if (preg_match("/(http:\/\/art.penny-arcade.com\/.*)/i", $entry->getAttribute("src"), $matches)) {
+ if (strpos($article["link"], "penny-arcade.com") !== FALSE && strpos($article["title"], "News Post:") !== FALSE) {
+ if (strpos($article["plugin_data"], "pennyarcade,$owner_uid:") === FALSE) {
+ if ($debug_enabled) {
+ _debug("af_pennyarcade: Processing news post");
+ }
+ $doc = new DOMDocument();
+ $doc->loadHTML(fetch_file_contents($article["link"]));
+
+ if ($doc) {
+ $xpath = new DOMXPath($doc);
+ $entries = $xpath->query('(//div[@class="post"])');
+
+ $basenode = false;
- $basenode = $entry;
- break;
- }
+ foreach ($entries as $entry) {
+ $basenode = $entry;
}
- if ($basenode) {
+ $uninteresting = $xpath->query('(//div[@class="heading"])');
+ foreach ($uninteresting as $i) {
+ $i->parentNode->removeChild($i);
+ }
+
+ if ($basenode){
$article["content"] = $doc->saveXML($basenode);
$article["plugin_data"] = "pennyarcade,$owner_uid:" . $article["plugin_data"];
}
@@ -55,5 +83,10 @@ class Af_PennyArcade extends Plugin {
return $article;
}
+
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/af_redditimgur/init.php b/plugins/af_redditimgur/init.php
index 2bb44f6d3..39a20784c 100644
--- a/plugins/af_redditimgur/init.php
+++ b/plugins/af_redditimgur/init.php
@@ -1,7 +1,5 @@
<?php
class Af_RedditImgur extends Plugin {
-
- private $link;
private $host;
function about() {
@@ -11,7 +9,6 @@ class Af_RedditImgur extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
@@ -40,7 +37,9 @@ class Af_RedditImgur extends Plugin {
$img = $doc->createElement('img');
$img->setAttribute("src", $entry->getAttribute("href"));
- $entry->parentNode->replaceChild($img, $entry);
+ $br = $doc->createElement('br');
+ $entry->parentNode->insertBefore($img, $entry);
+ $entry->parentNode->insertBefore($br, $entry);
$found = true;
}
@@ -66,7 +65,12 @@ class Af_RedditImgur extends Plugin {
if (preg_match("/^http:\/\/i.imgur.com\/$token\./", $aentry->getAttribute("src"))) {
$img = $doc->createElement('img');
$img->setAttribute("src", $aentry->getAttribute("src"));
+
+ $br = $doc->createElement('br');
+
$entry->parentNode->insertBefore($img, $entry);
+ $entry->parentNode->insertBefore($br, $entry);
+
$found = true;
break;
@@ -94,7 +98,12 @@ class Af_RedditImgur extends Plugin {
$img = $doc->createElement('img');
$img->setAttribute("src", $aentry->getAttribute("href"));
$entry->parentNode->insertBefore($doc->createElement('br'), $entry);
+
+ $br = $doc->createElement('br');
+
$entry->parentNode->insertBefore($img, $entry);
+ $entry->parentNode->insertBefore($br, $entry);
+
$found = true;
}
}
@@ -124,5 +133,10 @@ class Af_RedditImgur extends Plugin {
return $article;
}
+
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/af_unburn/init.php b/plugins/af_unburn/init.php
index b68796fb4..a97502b12 100644
--- a/plugins/af_unburn/init.php
+++ b/plugins/af_unburn/init.php
@@ -1,7 +1,5 @@
<?php
class Af_Unburn extends Plugin {
-
- private $link;
private $host;
function about() {
@@ -11,7 +9,6 @@ class Af_Unburn extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
@@ -29,11 +26,16 @@ class Af_Unburn extends Plugin {
if (strpos($article["plugin_data"], "unburn,$owner_uid:") === FALSE) {
- $ch = curl_init($article["link"]);
+ if (ini_get("safe_mode") || ini_get("open_basedir")) {
+ $ch = curl_init(geturl($article["link"]));
+ } else {
+ $ch = curl_init($article["link"]);
+ }
+
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, !ini_get("safe_mode") && !ini_get("open_basedir"));
curl_setopt($ch, CURLOPT_USERAGENT, SELF_USER_AGENT);
$contents = @curl_exec($ch);
@@ -74,5 +76,59 @@ class Af_Unburn extends Plugin {
return $article;
}
+
+ function geturl($url){
+
+ (function_exists('curl_init')) ? '' : die('cURL Must be installed for geturl function to work. Ask your host to enable it or uncomment extension=php_curl.dll in php.ini');
+
+ $curl = curl_init();
+ $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
+ $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
+ $header[] = "Cache-Control: max-age=0";
+ $header[] = "Connection: keep-alive";
+ $header[] = "Keep-Alive: 300";
+ $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
+ $header[] = "Accept-Language: en-us,en;q=0.5";
+ $header[] = "Pragma: ";
+
+ curl_setopt($curl, CURLOPT_URL, $url);
+ curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Firefox/5.0');
+ curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
+ curl_setopt($curl, CURLOPT_HEADER, true);
+ curl_setopt($curl, CURLOPT_REFERER, $url);
+ curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
+ curl_setopt($curl, CURLOPT_AUTOREFERER, true);
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+ //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); //CURLOPT_FOLLOWLOCATION Disabled...
+ curl_setopt($curl, CURLOPT_TIMEOUT, 60);
+
+ $html = curl_exec($curl);
+
+ $status = curl_getinfo($curl);
+ curl_close($curl);
+
+ if($status['http_code']!=200){
+ if($status['http_code'] == 301 || $status['http_code'] == 302) {
+ list($header) = explode("\r\n\r\n", $html, 2);
+ $matches = array();
+ preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches);
+ $url = trim(str_replace($matches[1],"",$matches[0]));
+ $url_parsed = parse_url($url);
+ return (isset($url_parsed))? geturl($url):'';
+ }
+ $oline='';
+ foreach($status as $key=>$eline){$oline.='['.$key.']'.$eline.' ';}
+ $line =$oline." \r\n ".$url."\r\n-----------------\r\n";
+ $handle = @fopen('./curl.error.log', 'a');
+ fwrite($handle, $line);
+ return FALSE;
+ }
+ return $url;
+ }
+
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/auth_imap/init.php b/plugins/auth_imap/init.php
deleted file mode 100644
index cca279cb3..000000000
--- a/plugins/auth_imap/init.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/* Requires php-imap
- Put the following options in config.php:
-
- define('IMAP_AUTH_SERVER', 'your.imap.server:port');
- define('IMAP_AUTH_OPTIONS', '/tls/novalidate-cert/norsh');
- // More about options: http://php.net/manual/ru/function.imap-open.php
-
-*/
-class Auth_Imap extends Plugin implements IAuthModule {
-
- private $link;
- private $host;
- private $base;
-
- function about() {
- return array(1.0,
- "Authenticates against an IMAP server (configured in config.php)",
- "fox",
- true);
- }
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
- $this->base = new Auth_Base($this->link);
-
- $host->add_hook($host::HOOK_AUTH_USER, $this);
- }
-
- function authenticate($login, $password) {
-
- if ($login && $password) {
- $imap = imap_open(
- "{".IMAP_AUTH_SERVER.IMAP_AUTH_OPTIONS."}INBOX",
- $login,
- $password);
-
- if ($imap) {
- imap_close($imap);
-
- return $this->base->auto_create_user($login);
- }
- }
-
- return false;
- }
-
-}
-
-?>
diff --git a/plugins/auth_internal/init.php b/plugins/auth_internal/init.php
index cf6c13780..87c8555c0 100644
--- a/plugins/auth_internal/init.php
+++ b/plugins/auth_internal/init.php
@@ -1,7 +1,5 @@
<?php
class Auth_Internal extends Plugin implements IAuthModule {
-
- private $link;
private $host;
function about() {
@@ -12,7 +10,6 @@ class Auth_Internal extends Plugin implements IAuthModule {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_AUTH_USER, $this);
@@ -25,12 +22,14 @@ class Auth_Internal extends Plugin implements IAuthModule {
$login = db_escape_string($login);
$otp = db_escape_string($_REQUEST["otp"]);
- if (get_schema_version($this->link) > 96) {
+ if (get_schema_version() > 96) {
if (!defined('AUTH_DISABLE_OTP') || !AUTH_DISABLE_OTP) {
- $result = db_query($this->link, "SELECT otp_enabled,salt FROM ttrss_users WHERE
+
+ $result = db_query("SELECT otp_enabled,salt FROM ttrss_users WHERE
login = '$login'");
if (db_num_rows($result) > 0) {
+
require_once "lib/otphp/vendor/base32.php";
require_once "lib/otphp/lib/otp.php";
require_once "lib/otphp/lib/totp.php";
@@ -52,17 +51,18 @@ class Auth_Internal extends Plugin implements IAuthModule {
$return = urlencode($_REQUEST["return"]);
?><html>
<head><title>Tiny Tiny RSS</title></head>
- <body>
+ <?php stylesheet_tag("utility.css") ?>
+ <body class="otp"><div class="content">
<form action="public.php?return=<?php echo $return ?>"
- method="POST">
+ method="POST" class="otpform">
<input type="hidden" name="op" value="login">
<input type="hidden" name="login" value="<?php echo htmlspecialchars($login) ?>">
<input type="hidden" name="password" value="<?php echo htmlspecialchars($password) ?>">
<label><?php echo __("Please enter your one time password:") ?></label>
- <input type="password" size="6" name="otp"/>
+ <input autocomplete="off" size="6" name="otp" value=""/>
<input type="submit" value="Continue"/>
- </form>
+ </form></div>
<script type="text/javascript">
document.forms[0].otp.focus();
</script>
@@ -74,9 +74,9 @@ class Auth_Internal extends Plugin implements IAuthModule {
}
}
- if (get_schema_version($this->link) > 87) {
+ if (get_schema_version() > 87) {
- $result = db_query($this->link, "SELECT salt FROM ttrss_users WHERE
+ $result = db_query("SELECT salt FROM ttrss_users WHERE
login = '$login'");
if (db_num_rows($result) != 1) {
@@ -94,7 +94,7 @@ class Auth_Internal extends Plugin implements IAuthModule {
// verify and upgrade password to new salt base
- $result = db_query($this->link, $query);
+ $result = db_query($query);
if (db_num_rows($result) == 1) {
// upgrade password to MODE2
@@ -102,7 +102,7 @@ class Auth_Internal extends Plugin implements IAuthModule {
$salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
$pwd_hash = encrypt_password($password, $salt, true);
- db_query($this->link, "UPDATE ttrss_users SET
+ db_query("UPDATE ttrss_users SET
pwd_hash = '$pwd_hash', salt = '$salt' WHERE login = '$login'");
$query = "SELECT id
@@ -130,7 +130,7 @@ class Auth_Internal extends Plugin implements IAuthModule {
pwd_hash = '$pwd_hash2')";
}
- $result = db_query($this->link, $query);
+ $result = db_query($query);
if (db_num_rows($result) == 1) {
return db_fetch_result($result, 0, "id");
@@ -142,7 +142,7 @@ class Auth_Internal extends Plugin implements IAuthModule {
function check_password($owner_uid, $password) {
$owner_uid = db_escape_string($owner_uid);
- $result = db_query($this->link, "SELECT salt,login FROM ttrss_users WHERE
+ $result = db_query("SELECT salt,login FROM ttrss_users WHERE
id = '$owner_uid'");
$salt = db_fetch_result($result, 0, "salt");
@@ -163,7 +163,7 @@ class Auth_Internal extends Plugin implements IAuthModule {
id = '$owner_uid' AND pwd_hash = '$password_hash'";
}
- $result = db_query($this->link, $query);
+ $result = db_query($query);
return db_num_rows($result) != 0;
}
@@ -176,7 +176,7 @@ class Auth_Internal extends Plugin implements IAuthModule {
$new_salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
$new_password_hash = encrypt_password($new_password, $new_salt, true);
- db_query($this->link, "UPDATE ttrss_users SET
+ db_query("UPDATE ttrss_users SET
pwd_hash = '$new_password_hash', salt = '$new_salt', otp_enabled = false
WHERE id = '$owner_uid'");
@@ -187,5 +187,10 @@ class Auth_Internal extends Plugin implements IAuthModule {
return "ERROR: ".__('Old password is incorrect.');
}
}
+
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/auth_remote/init.php b/plugins/auth_remote/init.php
index 65f188b8f..2ec2c87b2 100644
--- a/plugins/auth_remote/init.php
+++ b/plugins/auth_remote/init.php
@@ -1,7 +1,6 @@
<?php
class Auth_Remote extends Plugin implements IAuthModule {
- private $link;
private $host;
private $base;
@@ -13,9 +12,8 @@ class Auth_Remote extends Plugin implements IAuthModule {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
- $this->base = new Auth_Base($this->link);
+ $this->base = new Auth_Base();
$host->add_hook($host::HOOK_AUTH_USER, $this);
}
@@ -24,7 +22,7 @@ class Auth_Remote extends Plugin implements IAuthModule {
$cert_serial = db_escape_string(get_ssl_certificate_id());
if ($cert_serial) {
- $result = db_query($this->link, "SELECT login FROM ttrss_user_prefs, ttrss_users
+ $result = db_query("SELECT login FROM ttrss_user_prefs, ttrss_users
WHERE pref_name = 'SSL_CERT_SERIAL' AND value = '$cert_serial' AND
owner_uid = ttrss_users.id");
@@ -40,11 +38,14 @@ class Auth_Remote extends Plugin implements IAuthModule {
function authenticate($login, $password) {
$try_login = db_escape_string($_SERVER["REMOTE_USER"]);
+ // php-cgi
+ if (!$try_login) $try_login = db_escape_string($_SERVER["REDIRECT_REMOTE_USER"]);
+
if (!$try_login) $try_login = $this->get_login_by_ssl_certificate();
# if (!$try_login) $try_login = "test_qqq";
if ($try_login) {
- $user_id = $this->base->auto_create_user($try_login);
+ $user_id = $this->base->auto_create_user($try_login, $password);
if ($user_id) {
$_SESSION["fake_login"] = $try_login;
@@ -58,14 +59,14 @@ class Auth_Remote extends Plugin implements IAuthModule {
$fullname = $_SERVER['HTTP_USER_NAME'] ? $_SERVER['HTTP_USER_NAME'] : $_SERVER['AUTHENTICATE_CN'];
if ($fullname){
$fullname = db_escape_string($fullname);
- db_query($this->link, "UPDATE ttrss_users SET full_name = '$fullname' WHERE id = " .
+ db_query("UPDATE ttrss_users SET full_name = '$fullname' WHERE id = " .
$user_id);
}
// update user mail
$email = $_SERVER['HTTP_USER_MAIL'] ? $_SERVER['HTTP_USER_MAIL'] : $_SERVER['AUTHENTICATE_MAIL'];
if ($email){
$email = db_escape_string($email);
- db_query($this->link, "UPDATE ttrss_users SET email = '$email' WHERE id = " .
+ db_query("UPDATE ttrss_users SET email = '$email' WHERE id = " .
$user_id);
}
}
@@ -76,6 +77,11 @@ class Auth_Remote extends Plugin implements IAuthModule {
return false;
}
+
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/bookmarklets/init.php b/plugins/bookmarklets/init.php
index 22f4f05a7..4c4d95d49 100644
--- a/plugins/bookmarklets/init.php
+++ b/plugins/bookmarklets/init.php
@@ -1,6 +1,5 @@
<?php
class Bookmarklets extends Plugin {
- private $link;
private $host;
function about() {
@@ -10,7 +9,6 @@ class Bookmarklets extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_PREFS_TAB, $this);
@@ -21,7 +19,7 @@ class Bookmarklets extends Plugin {
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Bookmarklets')."\">";
- print "<p>" . __("Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it.") . "</p>";
+ print_notice(__("Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it."));
$bm_subscribe_url = str_replace('%s', '', add_feed_url());
@@ -29,19 +27,28 @@ class Bookmarklets extends Plugin {
$bm_url = htmlspecialchars("javascript:{if(confirm('$confirm_str'.replace('%s',window.location.href)))window.location.href='$bm_subscribe_url'+window.location.href}");
+ print "<p>";
print "<a href=\"$bm_url\" class='bookmarklet'>" . __('Subscribe in Tiny Tiny RSS'). "</a>";
+ print "</p>";
- print "<p>" . __("Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS") . "</p>";
+ print_notice(__("Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS"));
+
+ print "<p>";
$bm_url = htmlspecialchars("javascript:(function(){var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='".SELF_URL_PATH."/public.php?op=sharepopup',l=d.location,e=encodeURIComponent,g=f+'&title='+((e(s))?e(s):e(document.title))+'&url='+e(l.href);function a(){if(!w.open(g,'t','toolbar=0,resizable=0,scrollbars=1,status=1,width=500,height=250')){l.href=g;}}a();})()");
print "<a href=\"$bm_url\" class='bookmarklet'>" . __('Share with Tiny Tiny RSS'). "</a>";
+ print "</p>";
+
print "</div>"; #pane
}
-
}
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/close_button/init.php b/plugins/close_button/init.php
index bf4183320..7911642c3 100644
--- a/plugins/close_button/init.php
+++ b/plugins/close_button/init.php
@@ -1,10 +1,8 @@
<?php
class Close_Button extends Plugin {
- private $link;
private $host;
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
@@ -17,8 +15,8 @@ class Close_Button extends Plugin {
}
function hook_article_button($line) {
- if (!get_pref($this->link, "COMBINED_DISPLAY_MODE")) {
- $rv = "<img src=\"".theme_image($this->link, 'plugins/close_button/button.png')."\"
+ if (!get_pref("COMBINED_DISPLAY_MODE")) {
+ $rv = "<img src=\"plugins/close_button/button.png\"
class='tagsPic' style=\"cursor : pointer\"
onclick=\"closeArticlePanel()\"
title='".__('Close article')."'>";
@@ -26,5 +24,10 @@ class Close_Button extends Plugin {
return $rv;
}
+
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/digest/digest.css b/plugins/digest/digest.css
deleted file mode 100644
index 54568e3bc..000000000
--- a/plugins/digest/digest.css
+++ /dev/null
@@ -1,337 +0,0 @@
-body#ttrssDigest {
- color : black;
- font-family : sans-serif;
- font-size : 12px;
- margin : 0px;
- background : url("images/tile.png");
-}
-
-a {
- color : #0069D8;
- text-decoration : none;
-}
-
-a:hover {
- color : gray;
-}
-
-#header a, #footer a {
- color : gray;
-}
-
-#header a:hover, #footer a:hover {
- color : #0069D8;
-}
-
-#header {
- font-size : 13px;
- font-family : "Segoe UI", Tahoma, sans-serif;
- padding : 5px 5px 5px 1.5em;
- color : gray;
- position : absolute;
- top : 0px;
- height : 30px;
- left : 0px;
- right : 0px;
- color : #a0a0a0;
-}
-
-#header span.title {
- font-weight : bold;
- font-style : italic;
-}
-
-#header div.links {
- position : absolute;
- right : 1.5em;
-}
-
-#search {
- float : right;
- clear : left;
-
-}
-
-#title {
-}
-
-#latest {
- padding : 5px;
-}
-
-#content {
- position : absolute;
- left : 0px;
- top : 30px;
- right : 0px;
- bottom : 0px;
- -webkit-transition: left 0.2s linear, right 0.2s linear;
- -moz-transition: left 0.2s linear, right 0.2s linear;
- transition: left 0.2s linear, right 0.2s linear;
-}
-
-#article {
- position : absolute;
- overflow : auto;
- right : 0px;
- width : 60%;
- bottom : 0px;
- top : 30px;
- background : white;
- z-index : -1;
- opacity : 0;
- -webkit-transition: opacity 0.2s linear;
- -moz-transition: opacity 0.2s linear;
- transition: opacity 0.2s linear;
-}
-
-#article.visible {
- opacity : 1;
-}
-
-#article #article-content h1 {
- margin : 0px 0px 10px 0px;
- padding : 0px 0px 5px 0px;
- font-family : "Segoe UI", Tahoma, sans-serif;
- font-size : 21px;
- font-weight : bold;
- border-width : 0px 0px 3px 0px;
- border-style : solid;
- border-color : #e0e0e0;
- color : gray;
-}
-
-#article #article-content #toolbar {
- border-width : 0px 0px 1px 0px;
- border-color : #e0e0e0;
- border-style : solid;
- background : #fafafa;
- font-size : 14px;
- font-weight : bold;
- padding : 5px 10px 5px 10px;
- margin : 0px 0px 0px 0px;
-}
-
-#article #article-content {
- padding : 0px;
- font-size : 16px;
-}
-
-#article #article-content #tags {
- color : #a0a0a0;
-}
-
-#article #article-content #ops {
- float : right;
-}
-
-#article #article-content #ops img {
- cursor : pointer;
- margin-right : 0px;
- margin-left : 10px;
-}
-
-#article #article-content #inner {
- padding : 20px;
-}
-
-#article #article-content img {
- max-width : 90%;
-}
-
-#content.move {
- left : -300px;
- right : 60%
-}
-
-#feeds {
- position : absolute;
- left : 0px;
- width : 300px;
- top : -30px;
- bottom : 0px;
- font-size : 14px;
- overflow : auto;
- border-width : 0px 3px 0px 0px;
- border-color : #88b0f0;
- border-style : solid;
- background : #eee;
-}
-
-#feeds ul#feeds-content img {
- width : 16px;
- height : 16px;
- vertical-align : middle;
- margin-right : 5px;
-}
-
-#feeds ul#feeds-content div.unread-ctr {
- color : #d0d0d0;
- padding-left : 10px;
- float : right;
-}
-
-#feeds ul#feeds-content li {
- padding : 10px;
- clear : both;
- cursor : pointer;
- color : #303030;
- white-space : nowrap;
-}
-
-#feeds ul#feeds-content li.selected {
- background : white;
-}
-
-#feeds ul#feeds-content {
- list-style-type : none;
- font-weight : bold;
- margin : 0px;
- padding : 0px;
-}
-
-#headlines {
- font-size : 14px;
- position : absolute;
- left : 303px;
- top : 0px;
- bottom : 0px;
- right : 0px;
- overflow : auto;
- border-width : 0px 3px 0px 0px;
- border-style : solid;
- border-color : #88b0f0;
-}
-
-#headlines h1 a {
- color : #684C99;
-}
-
-#headlines ul#headlines-content .cb {
- vertical-align : middle;
- margin-right : 5px;
- float : left;
-}
-
-#headlines ul#headlines-content img.icon {
- width : 16px;
- height : 16px;
- vertical-align : middle;
- margin-right : 5px;
- float : right;
-}
-
-#headlines ul#headlines-content {
- list-style-type : none;
- color : gray;
- margin : 0px;
- padding : 0px;
-}
-
-#headlines ul#headlines-content li {
- margin : 0px 0px 0px 0px;
- padding : 10px;
- color : gray;
- clear : left;
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #e0e0e0;
- background : #eee;
-}
-
-#headlines ul#headlines-content a.title {
- font-size : 14px;
- font-weight : bold;
- display : block;
- margin-left : 21px;
- position : relative;
-}
-
-#headlines ul#headlines-content li.fresh a.title {
- color : #007FFF;
-}
-
-#headlines ul#headlines-content li.unread a.title {
- color : black;
- /* color : #8DB1D6; */
-}
-
-#headlines ul#headlines-content li.read a.title {
- color : gray;
-}
-
-#headlines ul#headlines-content li.unread,
-#headlines ul#headlines-content li.fresh {
- background-color : white;
-}
-
-#headlines ul#headlines-content li.selected {
- background-color : #fff7d5;
- border-color : white white #e0e0e0;
-}
-
-#headlines ul#headlines-content img#H-LOADING-IMG {
- margin-left : 5px;
-}
-
-#headlines ul#headlines-content div.excerpt {
- color : #404040;
- cursor : pointer;
- margin-top : 5px;
-}
-
-#headlines ul#headlines-content div.content {
- color : #404040;
-}
-
-#headlines ul#headlines-content div.content img {
- max-width : 75%;
-}
-
-#headlines ul#headlines-content div.body {
- margin-left : 21px;
- /*margin-left : 42px;*/
-}
-
-#headlines ul#headlines-content div.info {
- font-size : 11px;
- margin-top : 5px;
-}
-
-#headlines ul#headlines-content div.info a {
- color : gray;
-}
-
-#overlay {
- background : white;
- left : 0;
- top : 0;
- height : 100%;
- width : 100%;
- z-index : 100;
- position : absolute;
- text-align : center;
-}
-
-#overlay_inner {
- margin : 1em;
-}
-
-#overlay img {
- vertical-align : middle;
-}
-
-div.fatalError button {
- margin-top : 5px;
-}
-
-div.fatalError textarea {
- width : 100%;
- height : 100px;
-}
-
-div.insensitive {
- color : gray;
-}
-
-
diff --git a/plugins/digest/digest.js b/plugins/digest/digest.js
deleted file mode 100644
index 88410d9ed..000000000
--- a/plugins/digest/digest.js
+++ /dev/null
@@ -1,906 +0,0 @@
-var last_feeds = [];
-var init_params = {};
-var hotkeys_map = false;
-var hotkey_prefix = false;
-
-var _active_feed_id = false;
-var _update_timeout = false;
-var _view_update_timeout = false;
-var _feedlist_expanded = false;
-var _update_seq = 1;
-
-function article_appear(article_id) {
- try {
- new Effect.Appear('A-' + article_id);
- } catch (e) {
- exception_error("article_appear", e);
- }
-}
-
-function catchup_feed(feed_id, callback) {
- try {
-
- var fn = find_feed(last_feeds, feed_id).title;
-
- if (confirm(__("Mark all articles in %s as read?").replace("%s", fn))) {
-
- var is_cat = "";
-
- if (feed_id < 0) is_cat = "true"; // KLUDGE
-
- var query = "?op=rpc&method=catchupFeed&feed_id=" +
- feed_id + "&is_cat=" + is_cat;
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- if (callback) callback(transport);
-
- update();
- } });
- }
-
- } catch (e) {
- exception_error("catchup_article", e);
- }
-}
-
-function get_visible_article_ids() {
- try {
- var elems = $("headlines-content").getElementsByTagName("LI");
- var ids = [];
-
- for (var i = 0; i < elems.length; i++) {
- if (elems[i].id && elems[i].id.match("A-")) {
- ids.push(elems[i].id.replace("A-", ""));
- }
- }
-
- return ids;
-
- } catch (e) {
- exception_error("get_visible_article_ids", e);
- }
-}
-
-function catchup_visible_articles(callback) {
- try {
-
- var ids = get_visible_article_ids();
-
- if (confirm(__("Mark %d displayed articles as read?").replace("%d", ids.length))) {
-
- var query = "?op=rpc&method=catchupSelected" +
- "&cmode=0&ids=" + param_escape(ids);
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- if (callback) callback(transport);
-
- viewfeed(_active_feed_id, 0);
- } });
-
- }
-
- } catch (e) {
- exception_error("catchup_visible_articles", e);
- }
-}
-
-function catchup_article(article_id, callback) {
- try {
- var query = "?op=rpc&method=catchupSelected" +
- "&cmode=0&ids=" + article_id;
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- if (callback) callback(transport);
- } });
-
- } catch (e) {
- exception_error("catchup_article", e);
- }
-}
-
-function set_selected_article(article_id) {
- try {
- $$("#headlines-content > li[id*=A-]").each(function(article) {
- var id = article.id.replace("A-", "");
-
- var cb = article.getElementsByTagName("INPUT")[0];
-
- if (id == article_id) {
- article.addClassName("selected");
- cb.checked = true;
- } else {
- article.removeClassName("selected");
- cb.checked = false;
- }
-
- });
-
- } catch (e) {
- exception_error("mark_selected_feed", e);
- }
-}
-
-
-function set_selected_feed(feed_id) {
- try {
- var feeds = $("feeds-content").getElementsByTagName("LI");
-
- for (var i = 0; i < feeds.length; i++) {
- if (feeds[i].id == "F-" + feed_id)
- feeds[i].className = "selected";
- else
- feeds[i].className = "";
- }
-
- _active_feed_id = feed_id;
-
- } catch (e) {
- exception_error("mark_selected_feed", e);
- }
-}
-
-function load_more() {
- try {
- var pr = $("H-LOADING-IMG");
-
- if (pr) Element.show(pr);
-
- var offset = $$("#headlines-content > li[id*=A-][class*=fresh],li[id*=A-][class*=unread]").length;
-
- viewfeed(false, offset, false, false, true,
- function() {
- var pr = $("H-LOADING-IMG");
-
- if (pr) Element.hide(pr);
- });
- } catch (e) {
- exception_error("load_more", e);
- }
-}
-
-function update(callback) {
- try {
- console.log('updating feeds...');
-
- window.clearTimeout(_update_timeout);
-
- new Ajax.Request("backend.php", {
- parameters: "?op=digest&method=digestinit",
- onComplete: function(transport) {
- fatal_error_check(transport);
- parse_feeds(transport);
- set_selected_feed(_active_feed_id);
-
- if (callback) callback(transport);
- } });
-
- _update_timeout = window.setTimeout('update()', 5*1000);
- } catch (e) {
- exception_error("update", e);
- }
-}
-
-function remove_headline_entry(article_id) {
- try {
- var elem = $('A-' + article_id);
-
- if (elem) {
- elem.parentNode.removeChild(elem);
- }
-
- } catch (e) {
- exception_error("remove_headline_entry", e);
- }
-}
-
-function view_update() {
- try {
- viewfeed(_active_feed_id, _active_feed_offset, false, true, true);
- update();
- } catch (e) {
- exception_error("view_update", e);
- }
-}
-
-function view(article_id) {
- try {
- $("content").addClassName("move");
-
- var a = $("A-" + article_id);
- var h = $("headlines");
-
- setTimeout(function() {
- // below or above viewport, reposition headline
- if (a.offsetTop > h.scrollTop + h.offsetHeight || a.offsetTop+a.offsetHeight < h.scrollTop+a.offsetHeight)
- h.scrollTop = a.offsetTop - (h.offsetHeight/2 - a.offsetHeight/2);
- }, 500);
-
- new Ajax.Request("backend.php", {
- parameters: "?op=digest&method=digestgetcontents&article_id=" +
- article_id,
- onComplete: function(transport) {
- fatal_error_check(transport);
-
- var reply = JSON.parse(transport.responseText);
-
- if (reply) {
- var article = reply['article'];
-
- var mark_part = "";
- var publ_part = "";
-
- var tags_part = "";
-
- if (article.tags.length > 0) {
- tags_part = " " + __("in") + " ";
-
- for (var i = 0; i < Math.min(5, article.tags.length); i++) {
- //tags_part += "<a href=\"#\" onclick=\"viewfeed('" +
- // article.tags[i] + "')\">" +
- // article.tags[i] + "</a>, ";
-
- tags_part += article.tags[i] + ", ";
- }
-
- tags_part = tags_part.replace(/, $/, "");
- tags_part = "<span class=\"tags\">" + tags_part + "</span>";
-
- }
-
- if (article.marked)
- mark_part = "<img title='"+ __("Unstar article")+"' onclick=\"toggle_mark(this, "+article.id+")\" src='images/mark_set.svg'>";
- else
- mark_part = "<img title='"+__("Star article")+"' onclick=\"toggle_mark(this, "+article.id+")\" src='images/mark_unset.svg'>";
-
- if (article.published)
- publ_part = "<img title='"+__("Unpublish article")+"' onclick=\"toggle_pub(this, "+article.id+")\" src='images/pub_set.svg'>";
- else
- publ_part = "<img title='"+__("Publish article")+"' onclick=\"toggle_pub(this, "+article.id+")\" src='images/pub_unset.svg'>";
-
- var tmp = "<div id=\"inner\">" +
- "<div id=\"ops\">" +
- mark_part +
- publ_part +
- "</div>" +
- "<h1>" + "<a target=\"_blank\" href=\""+article.url+"\">" +
- article.title + "</a>" + "</h1>" +
- "<div id=\"tags\">" +
- tags_part +
- "</div>" +
- article.content + "</div>";
-
- $("article-content").innerHTML = tmp;
- $("article").addClassName("visible");
-
- set_selected_article(article.id);
-
- catchup_article(article_id,
- function() {
- $("A-" + article_id).addClassName("read");
- });
-
- } else {
- elem.innerHTML = __("Error: unable to load article.");
- }
- }
- });
-
-
- return false;
- } catch (e) {
- exception_error("view", e);
- }
-}
-
-function close_article() {
- $("content").removeClassName("move");
- $("article").removeClassName("visible");
-}
-
-function viewfeed(feed_id, offset, replace, no_effects, no_indicator, callback) {
- try {
-
- if (!feed_id) feed_id = _active_feed_id;
- if (offset == undefined) offset = 0;
- if (replace == undefined) replace = (offset == 0);
-
- _update_seq = _update_seq + 1;
-
- if (!offset) $("headlines").scrollTop = 0;
-
- var query = "backend.php?op=digest&method=digestupdate&feed_id=" +
- param_escape(feed_id) + "&offset=" + offset +
- "&seq=" + _update_seq;
-
- console.log(query);
-
- var img = false;
-
- if ($("F-" + feed_id)) {
- img = $("F-" + feed_id).getElementsByTagName("IMG")[0];
-
- if (img && !no_indicator) {
- img.setAttribute("orig_src", img.src);
- img.src = 'images/indicator_tiny.gif';
- }
- }
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- Element.hide("overlay");
-
- fatal_error_check(transport);
- parse_headlines(transport, replace, no_effects);
- set_selected_feed(feed_id);
- _active_feed_offset = offset;
-
- if (img && !no_indicator)
- img.src = img.getAttribute("orig_src");
-
- if (callback) callback(transport);
-
- } });
-
- } catch (e) {
- exception_error("view", e);
- }
-}
-
-function find_article(articles, article_id) {
- try {
- for (var i = 0; i < articles.length; i++) {
- if (articles[i].id == article_id)
- return articles[i];
- }
-
- return false;
-
- } catch (e) {
- exception_error("find_article", e);
- }
-}
-
-function find_feed(feeds, feed_id) {
- try {
- for (var i = 0; i < feeds.length; i++) {
- if (feeds[i].id == feed_id)
- return feeds[i];
- }
-
- return false;
-
- } catch (e) {
- exception_error("find_feed", e);
- }
-}
-
-function get_feed_icon(feed) {
- try {
- if (feed.has_icon)
- return getInitParam('icons_url') + "/" + feed.id + '.ico';
-
- if (feed.id == -1)
- return 'images/mark_set.svg';
-
- if (feed.id == -2)
- return 'images/pub_set.svg';
-
- if (feed.id == -3)
- return 'images/fresh.png';
-
- if (feed.id == -4)
- return 'images/tag.png';
-
- if (feed.id < -10)
- return 'images/label.png';
-
- return 'images/blank_icon.gif';
-
- } catch (e) {
- exception_error("get_feed_icon", e);
- }
-}
-
-function add_feed_entry(feed) {
- try {
- var icon_part = "";
-
- icon_part = "<img src='" + get_feed_icon(feed) + "'/>";
-
- var title = (feed.title.length > 30) ?
- feed.title.substring(0, 30) + "&hellip;" :
- feed.title;
-
- var tmp_html = "<li id=\"F-"+feed.id+"\" onclick=\"viewfeed("+feed.id+")\">" +
- "<div class='unread-ctr'>" + "<span class=\"unread\">" + feed.unread + "</span></div>" +
- icon_part + title +
- "</li>";
-
- $("feeds-content").innerHTML += tmp_html;
-
-
- } catch (e) {
- exception_error("add_feed_entry", e);
- }
-}
-
-function add_headline_entry(article, feed, no_effects) {
- try {
-
- var icon_part = "";
-
- icon_part = "<img class='icon' src='" + get_feed_icon(feed) + "'/>";
-
-
- var style = "";
-
- //if (!no_effects) style = "style=\"display : none\"";
-
- if (article.excerpt.trim() == "")
- article.excerpt = __("Click to expand article.");
-
- var li_class = "unread";
-
- var fresh_max = getInitParam("fresh_article_max_age") * 60 * 60;
- var d = new Date();
-
- if (d.getTime() / 1000 - article.updated < fresh_max)
- li_class = "fresh";
-
- var checkbox_part = "<input type=\"checkbox\" class=\"cb\" onclick=\"toggle_select_article(this)\"/>";
-
- var date = new Date(article.updated * 1000);
-
- var date_part = date.toString().substring(0,21);
-
- var tmp_html = "<li id=\"A-"+article.id+"\" "+style+" class=\""+li_class+"\">" +
- checkbox_part +
- icon_part +
- "<a target=\"_blank\" href=\""+article.link+"\""+
- "onclick=\"return view("+article.id+")\" class='title'>" +
- article.title + "</a>" +
- "<div class='body'>" +
- "<div onclick=\"view("+article.id+")\" class='excerpt'>" +
- article.excerpt + "</div>" +
- "<div onclick=\"view("+article.id+")\" class='info'>";
-
-/* tmp_html += "<a href=\#\" onclick=\"viewfeed("+feed.id+")\">" +
- feed.title + "</a> " + " @ "; */
-
- tmp_html += date_part + "</div>" +
- "</div></li>";
-
- $("headlines-content").innerHTML += tmp_html;
-
- if (!no_effects)
- window.setTimeout('article_appear(' + article.id + ')', 100);
-
- } catch (e) {
- exception_error("add_headline_entry", e);
- }
-}
-
-function expand_feeds() {
- try {
- _feedlist_expanded = true;
-
- redraw_feedlist(last_feeds);
-
- } catch (e) {
- exception_error("expand_feeds", e);
- }
-}
-
-function redraw_feedlist(feeds) {
- try {
-
- $('feeds-content').innerHTML = "";
-
- var limit = 10;
-
- if (_feedlist_expanded) limit = feeds.length;
-
- for (var i = 0; i < Math.min(limit, feeds.length); i++) {
- add_feed_entry(feeds[i]);
- }
-
- if (feeds.length > limit) {
- $('feeds-content').innerHTML += "<li id='F-MORE-PROMPT'>" +
- "<img src='images/blank_icon.gif'>" +
- "<a href=\"#\" onclick=\"expand_feeds()\">" +
- __("%d more...").replace("%d", feeds.length-10) +
- "</a>" + "</li>";
- }
-
- if (feeds.length == 0) {
- $('feeds-content').innerHTML =
- "<div class='insensitive' style='text-align : center'>" +
- __("No unread feeds.") + "</div>";
- }
-
- if (_active_feed_id)
- set_selected_feed(_active_feed_id);
-
- } catch (e) {
- exception_error("redraw_feedlist", e);
- }
-}
-
-function parse_feeds(transport) {
- try {
- var reply = JSON.parse(transport.responseText);
-
- if (!reply) return;
-
- var feeds = reply['feeds'];
-
- if (feeds) {
-
- feeds.sort( function (a,b)
- {
- if (b.unread != a.unread)
- return (b.unread - a.unread);
- else
- if (a.title > b.title)
- return 1;
- else if (a.title < b.title)
- return -1;
- else
- return 0;
- });
-
- var all_articles = find_feed(feeds, -4);
-
- update_title(all_articles.unread);
-
- last_feeds = feeds;
-
- redraw_feedlist(feeds);
- }
-
- if (reply['hotkeys']) {
- hotkeys_map = reply['hotkeys'];
- }
-
- } catch (e) {
- console.log(e);
- //exception_error("parse_feeds", e);
- }
-}
-
-function parse_headlines(transport, replace, no_effects) {
- try {
- var reply = JSON.parse(transport.responseText);
- if (!reply) return;
-
- var seq = reply['seq'];
-
- if (seq) {
- if (seq != _update_seq) {
- console.log("parse_headlines: wrong sequence received.");
- return;
- }
- } else {
- return;
- }
-
- var headlines = reply['headlines']['content'];
- var headlines_title = reply['headlines']['title'];
-
- if (headlines && headlines_title) {
-
- if (replace) {
- $('headlines-content').innerHTML = '';
- }
-
- var pr = $('H-MORE-PROMPT');
-
- if (pr) pr.parentNode.removeChild(pr);
-
- var inserted = false;
-
- for (var i = 0; i < headlines.length; i++) {
-
- if (!$('A-' + headlines[i].id)) {
- add_headline_entry(headlines[i],
- find_feed(last_feeds, headlines[i].feed_id), !no_effects);
-
- }
- }
-
- console.log(inserted.id);
-
- var ids = get_visible_article_ids();
-
- if (ids.length > 0) {
- if (pr) {
- $('headlines-content').appendChild(pr);
-
- } else {
- $('headlines-content').innerHTML += "<li id='H-MORE-PROMPT'>" +
- "<div class='body'>" +
- "<a href=\"#\" onclick=\"catchup_visible_articles()\">" +
- __("Mark as read") + "</a> | " +
- "<a href=\"javascript:load_more()\">" +
- __("Load more...") + "</a>" +
- "<img style=\"display : none\" "+
- "id=\"H-LOADING-IMG\" src='images/indicator_tiny.gif'>" +
- "</div></li>";
- }
- } else {
- // FIXME : display some kind of "nothing to see here" prompt here
- }
-
-// if (replace && !no_effects)
-// new Effect.Appear('headlines-content', {duration : 0.3});
-
- //new Effect.Appear('headlines-content');
- }
-
- } catch (e) {
- exception_error("parse_headlines", e);
- }
-}
-
-function init_second_stage() {
- try {
- new Ajax.Request("backend.php", {
- parameters: "backend.php?op=digest&method=digestinit&init=1",
- onComplete: function(transport) {
- parse_feeds(transport);
- Element.hide("overlay");
-
- document.onkeydown = hotkey_handler;
-
- window.setTimeout('viewfeed(-4)', 100);
- _update_timeout = window.setTimeout('update()', 5*1000);
- } });
-
- } catch (e) {
- exception_error("init_second_stage", e);
- }
-}
-
-function init() {
- try {
- dojo.require("dijit.Dialog");
-
- new Ajax.Request("backend.php", {
- parameters: {op: "rpc", method: "sanityCheck"},
- onComplete: function(transport) {
- backend_sanity_check_callback(transport);
- } });
-
- } catch (e) {
- exception_error("digest_init", e);
- }
-}
-
-function toggle_mark(img, id) {
-
- try {
-
- var query = "?op=rpc&id=" + id + "&method=mark";
-
- if (!img) return;
-
- if (img.src.match("mark_unset")) {
- img.src = img.src.replace("mark_unset", "mark_set");
- img.alt = __("Unstar article");
- query = query + "&mark=1";
- } else {
- img.src = img.src.replace("mark_set", "mark_unset");
- img.alt = __("Star article");
- query = query + "&mark=0";
- }
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- update();
- } });
-
- } catch (e) {
- exception_error("toggle_mark", e);
- }
-}
-
-function toggle_pub(img, id, note) {
-
- try {
-
- var query = "?op=rpc&id=" + id + "&method=publ";
-
- if (note != undefined) {
- query = query + "&note=" + param_escape(note);
- } else {
- query = query + "&note=undefined";
- }
-
- if (!img) return;
-
- if (img.src.match("pub_unset") || note != undefined) {
- img.src = img.src.replace("pub_unset", "pub_set");
- img.alt = __("Unpublish article");
- query = query + "&pub=1";
-
- } else {
- img.src = img.src.replace("pub_set", "pub_unset");
- img.alt = __("Publish article");
- query = query + "&pub=0";
- }
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- update();
- } });
-
- } catch (e) {
- exception_error("toggle_pub", e);
- }
-}
-
-function fatal_error(code, msg) {
- try {
-
- if (code == 6) {
- window.location.href = "digest.php";
- } else if (code == 5) {
- window.location.href = "db-updater.php";
- } else {
-
- if (msg == "") msg = "Unknown error";
-
- console.error("Fatal error: " + code + "\n" +
- msg);
-
- }
-
- } catch (e) {
- exception_error("fatalError", e);
- }
-}
-
-function fatal_error_check(transport) {
- try {
- if (transport.responseXML) {
- var error = transport.responseXML.getElementsByTagName("error")[0];
-
- if (error) {
- var code = error.getAttribute("error-code");
- var msg = error.getAttribute("error-msg");
- if (code != 0) {
- fatal_error(code, msg);
- return false;
- }
- }
- }
- } catch (e) {
- exception_error("fatal_error_check", e);
- }
- return true;
-}
-
-function update_title(unread) {
- try {
- document.title = "Tiny Tiny RSS";
-
- if (unread > 0)
- document.title += " (" + unread + ")";
-
- } catch (e) {
- exception_error("update_title", e);
- }
-}
-
-function toggle_select_article(elem) {
- try {
- var article = elem.parentNode;
-
- if (article.hasClassName("selected"))
- article.removeClassName("selected");
- else
- article.addClassName("selected");
-
- } catch (e) {
- exception_error("toggle_select_article", e);
- }
-}
-
-function hotkey_handler(e) {
- try {
-
- if (e.target.nodeName == "INPUT" || e.target.nodeName == "TEXTAREA") return;
-
- var keycode = false;
- var shift_key = false;
-
- var cmdline = $('cmdline');
-
- try {
- shift_key = e.shiftKey;
- } catch (e) {
-
- }
-
- if (window.event) {
- keycode = window.event.keyCode;
- } else if (e) {
- keycode = e.which;
- }
-
- var keychar = String.fromCharCode(keycode);
-
- if (!shift_key) keychar = keychar.toLowerCase();
-
- if (keycode == 16) return; // ignore lone shift
- if (keycode == 17) return; // ignore lone ctrl
-
- var hotkey = keychar.search(/[a-zA-Z0-9]/) != -1 ? keychar : "(" + keycode + ")";
- hotkey = hotkey_prefix ? hotkey_prefix + " " + hotkey : hotkey;
- hotkey_prefix = false;
-
- var hotkey_action = false;
- var hotkeys = getInitParam("hotkeys");
-
- for (sequence in hotkeys[1]) {
- if (sequence == hotkey) {
- hotkey_action = hotkeys[1][sequence];
- break;
- }
- }
-
- switch (keycode) {
- case 27: // esc
- close_article();
- return false;
- }
-
- switch (hotkey_action) {
- case "next_feed":
- var feeds = $$("#feeds li");
- for (var i = 0; i < feeds.length; i++) {
- var base_id = feeds[i].id.replace("F-", "");
-
- if (base_id == _active_feed_id) {
- if (feeds[i+1]) {
- viewfeed(feeds[i+1].id.replace("F-", ""));
- }
- break;
- }
- }
- return false;
- case "prev_feed":
- var feeds = $$("#feeds li");
- for (var i = 0; i < feeds.length; i++) {
- var base_id = feeds[i].id.replace("F-", "");
-
- if (base_id == _active_feed_id) {
- if (feeds[i-1]) {
- viewfeed(feeds[i-1].id.replace("F-", ""));
- }
- break;
- }
- }
- return false;
- case "next_article":
- return false;
- case "prev_article":
- return false;
- default:
- console.log("unhandled action: " + hotkey_action + "; hotkey: " + hotkey);
- }
-
-
- } catch (e) {
- exception_error("hotkey_handler", e);
- }
-}
diff --git a/plugins/digest/digest_body.php b/plugins/digest/digest_body.php
deleted file mode 100644
index c4f51d376..000000000
--- a/plugins/digest/digest_body.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php global $link; ?>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html>
-<head>
- <title>Tiny Tiny RSS</title>
-
- <link rel="stylesheet" type="text/css" href="lib/dijit/themes/claro/claro.css"/>
- <link rel="stylesheet" type="text/css" href="plugins/digest/digest.css?<?php echo $dt_add ?>"/>
-
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-
- <?php print_user_stylesheet($link) ?>
-
- <link rel="shortcut icon" type="image/png" href="images/favicon.png"/>
-
- <script type="text/javascript" src="lib/dojo/dojo.js" djConfig="parseOnLoad: true"></script>
- <script type="text/javascript" src="lib/prototype.js"></script>
- <script type="text/javascript" src="lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"></script>
-
- <script type="text/javascript" charset="utf-8" src="localized_js.php?<?php echo $dt_add ?>"></script>
- <script type="text/javascript" charset="utf-8" src="errors.php?mode=js"></script>
- <script type="text/javascript" charset="utf-8" src="js/functions.js?<?php echo $dt_add ?>"></script>
- <script type="text/javascript" src="plugins/digest/digest.js"></script>
-
- <script type="text/javascript">
- Event.observe(window, 'load', function() {
- init();
- });
- </script>
-</head>
-<body id="ttrssDigest" class="claro">
- <div id="overlay" style="display : block">
- <div id="overlay_inner">
- <noscript>
- <p>
- <?php print_error(__("Your browser doesn't support Javascript, which is required
- for this application to function properly. Please check your
- browser settings.")) ?></p>
- </noscript>
-
- <img src="images/indicator_white.gif"/>
- <?php echo __("Loading, please wait...") ?>
- </div>
- </div>
-
- <div id="header">
- <a style="float : left" href="#" onclick="close_article()">
- <?php echo __("Back to feeds") ?></a>
-
- <div class="links">
-
- <?php if (!$_SESSION["hide_hello"]) { ?>
- <?php echo __('Hello,') ?> <b><?php echo $_SESSION["name"] ?></b> |
- <?php } ?>
- <?php if (!$_SESSION["hide_logout"]) { ?>
- <a href="backend.php?op=logout"><?php echo __('Logout') ?></a> |
- <?php } ?>
- <a href='<?php echo get_self_url_prefix() ?>/index.php?mobile=false'>
- <?php echo __("Regular version") ?></a>
-
- </div>
- </div>
-
- <div id="article"><div id="article-content">&nbsp;</div></div>
-
- <div id="content">
-
- <div id="feeds">
- <ul id="feeds-content"> </ul>
- </div>
-
- <div id="headlines">
- <ul id="headlines-content"> </ul>
- </div>
- </div>
-
-</body>
-</html>
diff --git a/plugins/digest/images/tile.png b/plugins/digest/images/tile.png
deleted file mode 100644
index 72f2f4553..000000000
--- a/plugins/digest/images/tile.png
+++ /dev/null
Binary files differ
diff --git a/plugins/digest/init.php b/plugins/digest/init.php
deleted file mode 100644
index 2feabe3b4..000000000
--- a/plugins/digest/init.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-// TODO: digest should register digest specific hotkey actions within tt-rss
-class Digest extends Plugin implements IHandler {
-
- private $link;
- private $host;
-
- function about() {
- return array(1.0,
- "Digest mode for tt-rss (tablet friendly UI)",
- "fox",
- true);
- }
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_handler("digest", "*", $this);
- }
-
- function index() {
- header("Content-type: text/html; charset=utf-8");
-
- login_sequence($this->link);
-
- global $link;
- $link = $this->link;
-
- require_once dirname(__FILE__) . "/digest_body.php";
- }
-
- /* function get_js() {
- return file_get_contents(dirname(__FILE__) . "/digest.js");
- } */
-
- function csrf_ignore($method) {
- return in_array($method, array("index"));
- }
-
- function before($method) {
- return true;
- }
-
- function after() {
-
- }
-
- function digestgetcontents() {
- $article_id = db_escape_string($_REQUEST['article_id']);
-
- $result = db_query($this->link, "SELECT content,title,link,marked,published
- FROM ttrss_entries, ttrss_user_entries
- WHERE id = '$article_id' AND ref_id = id AND owner_uid = ".$_SESSION['uid']);
-
- $content = sanitize($this->link, db_fetch_result($result, 0, "content"));
- $title = strip_tags(db_fetch_result($result, 0, "title"));
- $article_url = htmlspecialchars(db_fetch_result($result, 0, "link"));
- $marked = sql_bool_to_bool(db_fetch_result($result, 0, "marked"));
- $published = sql_bool_to_bool(db_fetch_result($result, 0, "published"));
-
- print json_encode(array("article" =>
- array("id" => $article_id, "url" => $article_url,
- "tags" => get_article_tags($this->link, $article_id),
- "marked" => $marked, "published" => $published,
- "title" => $title, "content" => $content)));
- }
-
- function digestupdate() {
- $feed_id = db_escape_string($_REQUEST['feed_id']);
- $offset = db_escape_string($_REQUEST['offset']);
- $seq = db_escape_string($_REQUEST['seq']);
-
- if (!$feed_id) $feed_id = -4;
- if (!$offset) $offset = 0;
-
- $reply = array();
-
- $reply['seq'] = $seq;
-
- $headlines = API::api_get_headlines($this->link, $feed_id, 30, $offset,
- '', ($feed_id == -4), true, false, "unread", "updated DESC", 0, 0);
-
- $reply['headlines'] = array();
- $reply['headlines']['title'] = getFeedTitle($this->link, $feed_id);
- $reply['headlines']['content'] = $headlines;
-
- print json_encode($reply);
- }
-
- function digestinit() {
- $tmp_feeds = API::api_get_feeds($this->link, -4, true, false, 0);
-
- $params = array();
- $feeds = array();
-
- foreach ($tmp_feeds as $f) {
- if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f);
- }
-
- if ($_REQUEST["init"] == 1) {
- $params["hotkeys"] = get_hotkeys_map($link);
- }
- $params["feeds"] = $feeds;
-
- print json_encode($params);
- }
-
-}
-?>
diff --git a/plugins/embed_original/button.png b/plugins/embed_original/button.png
new file mode 100644
index 000000000..e861201d5
--- /dev/null
+++ b/plugins/embed_original/button.png
Binary files differ
diff --git a/plugins/embed_original/init.css b/plugins/embed_original/init.css
new file mode 100644
index 000000000..5fb7e012e
--- /dev/null
+++ b/plugins/embed_original/init.css
@@ -0,0 +1,13 @@
+div.cdmContentInner iframe.embeddedContent {
+ overflow : auto;
+ width : 100%;
+ height : 600px;
+ border-width : 0px;
+}
+
+div.postContent iframe.embeddedContent {
+ overflow : auto;
+ width : 100%;
+ height : 100%;
+ border-width : 0px;
+}
diff --git a/plugins/embed_original/init.js b/plugins/embed_original/init.js
new file mode 100644
index 000000000..17090653d
--- /dev/null
+++ b/plugins/embed_original/init.js
@@ -0,0 +1,68 @@
+function embedOriginalArticle(id) {
+ try {
+ var hasSandbox = "sandbox" in document.createElement("iframe");
+
+ if (!hasSandbox) {
+ alert(__("Sorry, your browser does not support sandboxed iframes."));
+ return;
+ }
+
+ var query = "op=pluginhandler&plugin=embed_original&method=getUrl&id=" +
+ param_escape(id);
+
+ var c = false;
+
+ if (isCdmMode()) {
+ c = $$("div#RROW-" + id + " div[class=cdmContentInner]")[0];
+ } else if (id == getActiveArticleId()) {
+ c = $$("div[class=postContent]")[0];
+ }
+
+ if (c) {
+ var iframe = c.parentNode.getElementsByClassName("embeddedContent")[0];
+
+ if (iframe) {
+ Element.show(c);
+ c.parentNode.removeChild(iframe);
+
+ if (isCdmMode()) {
+ cdmScrollToArticleId(id, true);
+ }
+
+ return;
+ }
+ }
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ var ti = JSON.parse(transport.responseText);
+
+ if (ti) {
+
+ var iframe = new Element("iframe", {
+ class: "embeddedContent",
+ src: ti.url,
+ width: (c.parentNode.offsetWidth-5)+'px',
+ height: (c.parentNode.parentNode.offsetHeight-c.parentNode.firstChild.offsetHeight-5)+'px',
+ style: "overflow: auto; border: none; min-height: "+(document.body.clientHeight/2)+"px;",
+ sandbox: 'allow-scripts',
+ });
+
+ if (c) {
+ Element.hide(c);
+ c.parentNode.insertBefore(iframe,c);
+
+ if (isCdmMode()) {
+ cdmScrollToArticleId(id, true);
+ }
+ }
+ }
+
+ } });
+
+
+ } catch (e) {
+ exception_error("embedOriginalArticle", e);
+ }
+}
diff --git a/plugins/embed_original/init.php b/plugins/embed_original/init.php
new file mode 100644
index 000000000..df803d38b
--- /dev/null
+++ b/plugins/embed_original/init.php
@@ -0,0 +1,58 @@
+<?php
+class Embed_Original extends Plugin {
+ private $host;
+
+ function init($host) {
+ $this->host = $host;
+
+ $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
+ }
+
+ function about() {
+ return array(1.0,
+ "Try to display original article content inside tt-rss",
+ "fox");
+ }
+
+ function get_js() {
+ return file_get_contents(dirname(__FILE__) . "/init.js");
+ }
+
+ function get_css() {
+ return file_get_contents(dirname(__FILE__) . "/init.css");
+ }
+
+ function hook_article_button($line) {
+ $id = $line["id"];
+
+ $rv = "<img src=\"plugins/embed_original/button.png\"
+ class='tagsPic' style=\"cursor : pointer\"
+ onclick=\"embedOriginalArticle($id)\"
+ title='".__('Toggle embed original')."'>";
+
+ return $rv;
+ }
+
+ function getUrl() {
+ $id = db_escape_string($_REQUEST['id']);
+
+ $result = db_query("SELECT link
+ FROM ttrss_entries, ttrss_user_entries
+ WHERE id = '$id' AND ref_id = id AND owner_uid = " .$_SESSION['uid']);
+
+ $url = "";
+
+ if (db_num_rows($result) != 0) {
+ $url = db_fetch_result($result, 0, "link");
+
+ }
+
+ print json_encode(array("url" => $url, "id" => $id));
+ }
+
+ function api_version() {
+ return 2;
+ }
+
+}
+?>
diff --git a/plugins/example/example.js b/plugins/example/example.js
deleted file mode 100644
index a31f2c2a2..000000000
--- a/plugins/example/example.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function example(value) {
- alert("Value saved: " + value);
-}
diff --git a/plugins/example/init.php b/plugins/example/init.php
deleted file mode 100644
index f3788ae8c..000000000
--- a/plugins/example/init.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-class Example extends Plugin {
-
- // Demonstrates how to add a separate panel to the preferences screen and inject Javascript/save data using Dojo forms.
-
- private $link;
- private $host;
-
- function about() {
- return array(1.0,
- "Example plugin #1",
- "fox",
- true);
- }
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_hook($host::HOOK_PREFS_TAB, $this);
- }
-
- function save() {
- $example_value = db_escape_string($_POST["example_value"]);
-
- $this->host->set($this, "example", $example_value);
-
- echo "Value set to $example_value";
- }
-
- function get_prefs_js() {
- return file_get_contents(dirname(__FILE__) . "/example.js");
- }
-
- function hook_prefs_tab($args) {
- if ($args != "prefPrefs") return;
-
- print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__("Example Pane")."\">";
-
- print "<br/>";
-
-// print_r($this->host->set($this, "example", rand(0,100)));
-// print_r($this->host->get_all($this));
-
- $value = $this->host->get($this, "example");
-
- print "<form dojoType=\"dijit.form.Form\">";
-
- print "<script type=\"dojo/method\" event=\"onSubmit\" args=\"evt\">
- evt.preventDefault();
- if (this.validate()) {
- console.log(dojo.objectToQuery(this.getValues()));
- new Ajax.Request('backend.php', {
- parameters: dojo.objectToQuery(this.getValues()),
- onComplete: function(transport) {
- notify_info(transport.responseText);
- }
- });
- //this.reset();
- }
- </script>";
-
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pluginhandler\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"save\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"plugin\" value=\"example\">";
-
- print "<table width=\"100%\" class=\"prefPrefsList\">";
-
- print "<tr><td width=\"40%\">".__("Sample value")."</td>";
- print "<td class=\"prefValue\"><input dojoType=\"dijit.form.ValidationTextBox\" required=\"1\" name=\"example_value\" value=\"$value\"></td></tr>";
-
- print "</table>";
-
- print "<p><button dojoType=\"dijit.form.Button\" type=\"submit\">".
- __("Set value")."</button>";
-
- print "</form>";
-
- print "</div>"; #pane
- }
-}
-?>
diff --git a/plugins/example_article/init.php b/plugins/example_article/init.php
deleted file mode 100644
index 05f95a40a..000000000
--- a/plugins/example_article/init.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-class Example_Article extends Plugin {
-
- private $link;
- private $host;
-
- function about() {
- return array(1.0,
- "Example plugin for HOOK_RENDER_ARTICLE",
- "fox",
- true);
- }
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_hook($host::HOOK_RENDER_ARTICLE, $this);
- }
-
- function get_prefs_js() {
- return file_get_contents(dirname(__FILE__) . "/init.js");
- }
-
- function hook_render_article($article) {
- $article["content"] = "Content changed: " . $article["content"];
-
- return $article;
- }
-}
-?>
diff --git a/plugins/example_feed/init.php b/plugins/example_feed/init.php
deleted file mode 100644
index af14d3ff3..000000000
--- a/plugins/example_feed/init.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-class Example_Feed extends Plugin {
-
- // Demonstrates how to query data from the parsed feed object (SimplePie)
- // don't enable unless debugging feed through f D hotkey or manually.
-
- private $link;
- private $host;
-
- function about() {
- return array(1.0,
- "Example feed plugin",
- "fox",
- true);
- }
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_hook($host::HOOK_FEED_PARSED, $this);
- }
-
- function hook_feed_parsed($feed) {
- _debug("I'm a little feed short and stout, here's my title: " . $feed->get_title());
- _debug("... here's my link element: " . $feed->get_link());
- }
-}
-?>
diff --git a/plugins/example_routing/init.php b/plugins/example_routing/init.php
deleted file mode 100644
index 31c5b6f28..000000000
--- a/plugins/example_routing/init.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-class Example_Routing extends Plugin implements IHandler {
-
- // Demonstrates adding a custom handler and method:
- // backend.php?op=test&method=example
- // and masking a system builtin public method:
- // public.php?op=getUnread
-
- // Plugin class must implelement IHandler interface and has
- // a public method of same name as being registered.
- //
- // Any system method may be masked by plugins. You can mask
- // entire handler by supplying "*" instead of a method name.
-
- private $link;
- private $host;
-
- function about() {
- return array(1.0,
- "Example routing plugin",
- "fox",
- true);
- }
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_handler("test", "example", $this);
- $host->add_handler("public", "getunread", $this);
- }
-
- function getunread() {
- print rand(0,100); # yeah right
- }
-
- function example() {
- print "example method called";
- }
-
- function csrf_ignore($method) {
- return true;
- }
-
- function before($method) {
- return true;
- }
-
- function after() {
- return true;
- }
-
-}
-?>
diff --git a/plugins/flattr/flattr.png b/plugins/flattr/flattr.png
deleted file mode 100644
index 4933ffc21..000000000
--- a/plugins/flattr/flattr.png
+++ /dev/null
Binary files differ
diff --git a/plugins/flattr/init.php b/plugins/flattr/init.php
deleted file mode 100644
index d5e4ad025..000000000
--- a/plugins/flattr/init.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-class Flattr extends Plugin {
- private $link;
- private $host;
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
- }
-
- function about() {
- return array(1.1,
- "Share articles on Flattr (if they exist in their catalogue)",
- "F. Eitel, N. Honing");
- }
-
- function hook_article_button($line) {
-
- $rv = "";
- $article_link = $line['link'];
-
- if ($article_link) {
- $encoded = urlencode($article_link);
- $r = file_get_contents("https://api.flattr.com/rest/v2/things/lookup/?url=$encoded");
- $response = json_decode($r, true);
- $image = "<img src=\"".theme_image($this->link, 'plugins/flattr/flattr.png')."\"
- class='tagsPic' style=\"cursor : pointer\"
- title='".__('Flattr this article.')."'>";
- // if Flattr has it in the catalogue, we display the button
- if ($response and array_key_exists('link', $response)) {
- $rv = "<a id='flattr' target='_blank' href='" . $response['link'] . "'> . $image . </a>";
- } else {
- // We can't submit a thing to the catalogue without giving a Flattr user id (who would be the owner)
- // see http://developers.flattr.net/auto-submit
- //$rv = "<a id='flattr' href='https://flattr.com/submit/auto?url=" . $encoded . "'>" . $image . "</a>";
- $rv = '';
- // Another useful thing would be any rel=payment link (which would have the user id as well),
- // but tt-rss is not checking that (yet), I believe. See http://developers.flattr.net/feed
- }
- }
- return $rv;
- }
-}
-?>
diff --git a/plugins/googleplus/googleplus.js b/plugins/googleplus/googleplus.js
deleted file mode 100644
index 027d9b40e..000000000
--- a/plugins/googleplus/googleplus.js
+++ /dev/null
@@ -1,29 +0,0 @@
- function shareArticleToGooglePlus(id) {
- try {
- var query = "?op=pluginhandler&plugin=googleplus&method=getInfo&id=" + param_escape(id);
-
- console.log(query);
-
- var d = new Date();
- var ts = d.getTime();
-
- var w = window.open('backend.php?op=backend&method=loading', 'ttrss_tweet',
- "status=0,toolbar=0,location=0,width=500,height=450,scrollbars=1,menubar=0");
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- var ti = JSON.parse(transport.responseText);
-
- var share_url = "https://plus.google.com/share?url=" + param_escape(ti.link);
-
- w.location.href = share_url;
-
- } });
-
-
- } catch (e) {
- exception_error("tweetArticle", e);
- }
- }
-
diff --git a/plugins/googleplus/googleplus.png b/plugins/googleplus/googleplus.png
deleted file mode 100644
index ac46126d7..000000000
--- a/plugins/googleplus/googleplus.png
+++ /dev/null
Binary files differ
diff --git a/plugins/googleplus/init.php b/plugins/googleplus/init.php
deleted file mode 100644
index 3d6c60887..000000000
--- a/plugins/googleplus/init.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-class GooglePlus extends Plugin {
- private $link;
- private $host;
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
- }
-
- function about() {
- return array(1.0,
- "Share article on Google+",
- "homolibere");
- }
-
- function get_js() {
- return file_get_contents(dirname(__FILE__) . "/googleplus.js");
- }
-
- function hook_article_button($line) {
- $article_id = $line["id"];
-
- $rv = "<img src=\"".theme_image($this->link, 'plugins/googleplus/googleplus.png')."\"
- class='tagsPic' style=\"cursor : pointer\"
- onclick=\"shareArticleToGooglePlus($article_id)\"
- title='".__('Share on Google+')."'>";
-
- return $rv;
- }
-
- function getInfo() {
- $id = db_escape_string($_REQUEST['id']);
-
- $result = db_query($this->link, "SELECT title, link
- FROM ttrss_entries, ttrss_user_entries
- WHERE id = '$id' AND ref_id = id AND owner_uid = " .$_SESSION['uid']);
-
- if (db_num_rows($result) != 0) {
- $title = truncate_string(strip_tags(db_fetch_result($result, 0, 'title')),
- 100, '...');
- $article_link = db_fetch_result($result, 0, 'link');
- }
-
- print json_encode(array("title" => $title, "link" => $article_link,
- "id" => $id));
- }
-
-
-}
-?>
diff --git a/plugins/googlereaderimport/init.js b/plugins/googlereaderimport/init.js
new file mode 100644
index 000000000..043952c75
--- /dev/null
+++ b/plugins/googlereaderimport/init.js
@@ -0,0 +1,53 @@
+function starredImportComplete(iframe) {
+ try {
+ if (!iframe.contentDocument.body.innerHTML) return false;
+
+ Element.show(iframe);
+
+ notify('');
+
+ if (dijit.byId('starredImportDlg'))
+ dijit.byId('starredImportDlg').destroyRecursive();
+
+ var content = iframe.contentDocument.body.innerHTML;
+
+ if (content) Element.hide(iframe);
+
+ dialog = new dijit.Dialog({
+ id: "starredImportDlg",
+ title: __("Google Reader Import"),
+ style: "width: 600px",
+ onCancel: function() {
+ Element.hide(iframe);
+ this.hide();
+ },
+ execute: function() {
+ Element.hide(iframe);
+ this.hide();
+ },
+ content: content});
+
+ dialog.show();
+
+ } catch (e) {
+ exception_error("starredImportComplete", e);
+ }
+}
+
+function starredImport() {
+
+ var starred_file = $("starred_file");
+
+ if (starred_file.value.length == 0) {
+ alert(__("Please choose a file first."));
+ return false;
+ } else {
+ notify_progress("Importing, please wait...", true);
+
+ Element.show("starred_upload_iframe");
+
+ return true;
+ }
+}
+
+
diff --git a/plugins/googlereaderimport/init.php b/plugins/googlereaderimport/init.php
new file mode 100644
index 000000000..2e22161b9
--- /dev/null
+++ b/plugins/googlereaderimport/init.php
@@ -0,0 +1,383 @@
+<?php
+class GoogleReaderImport extends Plugin {
+ private $host;
+
+ function about() {
+ return array(1.0,
+ "Import starred/shared items from Google Reader takeout",
+ "fox",
+ false,
+ "");
+ }
+
+ function init($host) {
+ $this->host = $host;
+
+ $host->add_command("greader-import",
+ "import data in Google Reader JSON format",
+ $this, ":", "FILE");
+
+ $host->add_hook($host::HOOK_PREFS_TAB, $this);
+ }
+
+ function greader_import($args) {
+ $file = $args['greader_import'];
+
+ if (!file_exists($file)) {
+ _debug("file not found: $file");
+ return;
+ }
+
+ _debug("please enter your username:");
+
+ $username = db_escape_string(trim(read_stdin()));
+
+ _debug("looking up user: $username...");
+
+ $result = db_query("SELECT id FROM ttrss_users
+ WHERE login = '$username'");
+
+ if (db_num_rows($result) == 0) {
+ _debug("user not found.");
+ return;
+ }
+
+ $owner_uid = db_fetch_result($result, 0, "id");
+
+ _debug("processing: $file (owner_uid: $owner_uid)");
+
+ $this->import($file, $owner_uid);
+ }
+
+ function get_prefs_js() {
+ return file_get_contents(dirname(__FILE__) . "/init.js");
+ }
+
+ function import($file = false, $owner_uid = 0) {
+
+ purge_orphans();
+
+ if (!$file) {
+ header("Content-Type: text/html");
+
+ $owner_uid = $_SESSION["uid"];
+
+ if ($_FILES['starred_file']['error'] != 0) {
+ print_error(T_sprintf("Upload failed with error code %d",
+ $_FILES['starred_file']['error']));
+ return;
+ }
+
+ $tmp_file = false;
+
+ if (is_uploaded_file($_FILES['starred_file']['tmp_name'])) {
+ $tmp_file = tempnam(CACHE_DIR . '/upload', 'starred');
+
+ $result = move_uploaded_file($_FILES['starred_file']['tmp_name'],
+ $tmp_file);
+
+ if (!$result) {
+ print_error(__("Unable to move uploaded file."));
+ return;
+ }
+ } else {
+ print_error(__('Error: please upload OPML file.'));
+ return;
+ }
+
+ if (is_file($tmp_file)) {
+ $doc = json_decode(file_get_contents($tmp_file), true);
+ unlink($tmp_file);
+ } else {
+ print_error(__('No file uploaded.'));
+ return;
+ }
+ } else {
+ $doc = json_decode(file_get_contents($file), true);
+ }
+
+ if ($file) {
+ $sql_set_marked = strtolower(basename($file)) == 'starred.json' ? 'true' : 'false';
+ _debug("will set articles as starred: $sql_set_marked");
+
+ } else {
+ $sql_set_marked = strtolower($_FILES['starred_file']['name']) == 'starred.json' ? 'true' : 'false';
+ }
+
+ if ($doc) {
+ if (isset($doc['items'])) {
+ $processed = 0;
+
+ foreach ($doc['items'] as $item) {
+// print_r($item);
+
+ $guid = db_escape_string(mb_substr($item['id'], 0, 250));
+ $title = db_escape_string($item['title']);
+ $updated = date('Y-m-d h:i:s', $item['updated']);
+ $link = '';
+ $content = '';
+ $author = db_escape_string($item['author']);
+ $tags = array();
+ $orig_feed_data = array();
+
+ if (is_array($item['alternate'])) {
+ foreach ($item['alternate'] as $alt) {
+ if (isset($alt['type']) && $alt['type'] == 'text/html') {
+ $link = db_escape_string($alt['href']);
+ }
+ }
+ }
+
+ if (is_array($item['summary'])) {
+ $content = db_escape_string(
+ $item['summary']['content'], false);
+ }
+
+ if (is_array($item['content'])) {
+ $content = db_escape_string(
+ $item['content']['content'], false);
+ }
+
+ if (is_array($item['categories'])) {
+ foreach ($item['categories'] as $cat) {
+ if (strstr($cat, "com.google/") === FALSE) {
+ array_push($tags, sanitize_tag($cat));
+ }
+ }
+ }
+
+ if (is_array($item['origin'])) {
+ if (strpos($item['origin']['streamId'], 'feed/') === 0) {
+
+ $orig_feed_data['feed_url'] = db_escape_string(
+ mb_substr(preg_replace("/^feed\//",
+ "", $item['origin']['streamId']), 0, 200));
+
+ $orig_feed_data['title'] = db_escape_string(
+ mb_substr($item['origin']['title'], 0, 200));
+
+ $orig_feed_data['site_url'] = db_escape_string(
+ mb_substr($item['origin']['htmlUrl'], 0, 200));
+ }
+ }
+
+ $processed++;
+
+ $imported += (int) $this->create_article($owner_uid, $guid, $title,
+ $link, $updated, $content, $author, $sql_set_marked, $tags,
+ $orig_feed_data);
+
+ if ($file && $processed % 25 == 0) {
+ _debug("processed $processed articles...");
+ }
+ }
+
+ if ($file) {
+ _debug(sprintf("All done. %d of %d articles imported.", $imported, $processed));
+ } else {
+ print "<p style='text-align : center'>" . T_sprintf("All done. %d out of %d articles imported.", $imported, $processed) . "</p>";
+ }
+
+ } else {
+ print_error(__('The document has incorrect format.'));
+ }
+
+ } else {
+ print_error(__('Error while parsing document.'));
+ }
+
+ if (!$file) {
+ print "<div align='center'>";
+ print "<button dojoType=\"dijit.form.Button\"
+ onclick=\"dijit.byId('starredImportDlg').execute()\">".
+ __('Close this window')."</button>";
+ print "</div>";
+ }
+ }
+
+ // expects ESCAPED data
+ private function create_article($owner_uid, $guid, $title, $link, $updated, $content, $author, $marked, $tags, $orig_feed_data) {
+
+ if (!$guid) $guid = sha1($link);
+
+ $create_archived_feeds = true;
+
+ $guid = "$owner_uid,$guid";
+
+ $content_hash = sha1($content);
+
+ if (filter_var(FILTER_VALIDATE_URL) === FALSE) return false;
+
+ db_query("BEGIN");
+
+ $feed_id = 'NULL';
+
+ // let's check for archived feed entry
+
+ $feed_inserted = false;
+
+ // before dealing with archived feeds we must check ttrss_feeds to maintain id consistency
+
+ if ($orig_feed_data['feed_url'] && $create_archived_feeds) {
+ $result = db_query(
+ "SELECT id FROM ttrss_feeds WHERE feed_url = '".$orig_feed_data['feed_url']."'
+ AND owner_uid = $owner_uid");
+
+ if (db_num_rows($result) != 0) {
+ $feed_id = db_fetch_result($result, 0, "id");
+ } else {
+ // let's insert it
+
+ if (!$orig_feed_data['title']) $orig_feed_data['title'] = '[Unknown]';
+
+ $result = db_query(
+ "INSERT INTO ttrss_feeds
+ (owner_uid,feed_url,site_url,title,cat_id,auth_login,auth_pass,update_method)
+ VALUES ($owner_uid,
+ '".$orig_feed_data['feed_url']."',
+ '".$orig_feed_data['site_url']."',
+ '".$orig_feed_data['title']."',
+ NULL, '', '', 0)");
+
+ $result = db_query(
+ "SELECT id FROM ttrss_feeds WHERE feed_url = '".$orig_feed_data['feed_url']."'
+ AND owner_uid = $owner_uid");
+
+ if (db_num_rows($result) != 0) {
+ $feed_id = db_fetch_result($result, 0, "id");
+ $feed_inserted = true;
+ }
+ }
+ }
+
+ if ($feed_id && $feed_id != 'NULL') {
+ // locate archived entry to file entries in, we don't want to file them in actual feeds because of purging
+ // maybe file marked in real feeds because eh
+
+ $result = db_query("SELECT id FROM ttrss_archived_feeds WHERE
+ feed_url = '".$orig_feed_data['feed_url']."' AND owner_uid = $owner_uid");
+
+ if (db_num_rows($result) != 0) {
+ $orig_feed_id = db_fetch_result($result, 0, "id");
+ } else {
+ db_query("INSERT INTO ttrss_archived_feeds
+ (id, owner_uid, title, feed_url, site_url)
+ SELECT id, owner_uid, title, feed_url, site_url from ttrss_feeds
+ WHERE id = '$feed_id'");
+
+ $result = db_query("SELECT id FROM ttrss_archived_feeds WHERE
+ feed_url = '".$orig_feed_data['feed_url']."' AND owner_uid = $owner_uid");
+
+ if (db_num_rows($result) != 0) {
+ $orig_feed_id = db_fetch_result($result, 0, "id");
+ }
+ }
+ }
+
+ // delete temporarily inserted feed
+ if ($feed_id && $feed_inserted) {
+ db_query("DELETE FROM ttrss_feeds WHERE id = $feed_id");
+ }
+
+ if (!$orig_feed_id) $orig_feed_id = 'NULL';
+
+ $result = db_query("SELECT id FROM ttrss_entries, ttrss_user_entries WHERE
+ guid = '$guid' AND ref_id = id AND owner_uid = '$owner_uid' LIMIT 1");
+
+ if (db_num_rows($result) == 0) {
+ $result = db_query("INSERT INTO ttrss_entries
+ (title, guid, link, updated, content, content_hash, date_entered, date_updated, author)
+ VALUES
+ ('$title', '$guid', '$link', '$updated', '$content', '$content_hash', NOW(), NOW(), '$author')");
+
+ $result = db_query("SELECT id FROM ttrss_entries WHERE guid = '$guid'");
+
+ if (db_num_rows($result) != 0) {
+ $ref_id = db_fetch_result($result, 0, "id");
+
+ db_query("INSERT INTO ttrss_user_entries
+ (ref_id, uuid, feed_id, orig_feed_id, owner_uid, marked, tag_cache, label_cache,
+ last_read, note, unread, last_marked)
+ VALUES
+ ('$ref_id', '', NULL, $orig_feed_id, $owner_uid, $marked, '', '', NOW(), '', false, NOW())");
+
+ $result = db_query("SELECT int_id FROM ttrss_user_entries, ttrss_entries
+ WHERE owner_uid = $owner_uid AND ref_id = id AND ref_id = $ref_id");
+
+ if (db_num_rows($result) != 0 && is_array($tags)) {
+
+ $entry_int_id = db_fetch_result($result, 0, "int_id");
+ $tags_to_cache = array();
+
+ foreach ($tags as $tag) {
+
+ $tag = db_escape_string(sanitize_tag($tag));
+
+ if (!tag_is_valid($tag)) continue;
+
+ $result = db_query("SELECT id FROM ttrss_tags
+ WHERE tag_name = '$tag' AND post_int_id = '$entry_int_id' AND
+ owner_uid = '$owner_uid' LIMIT 1");
+
+ if ($result && db_num_rows($result) == 0) {
+ db_query("INSERT INTO ttrss_tags
+ (owner_uid,tag_name,post_int_id)
+ VALUES ('$owner_uid','$tag', '$entry_int_id')");
+ }
+
+ array_push($tags_to_cache, $tag);
+ }
+
+ /* update the cache */
+
+ $tags_to_cache = array_unique($tags_to_cache);
+ $tags_str = db_escape_string(join(",", $tags_to_cache));
+
+ db_query("UPDATE ttrss_user_entries
+ SET tag_cache = '$tags_str' WHERE ref_id = '$ref_id'
+ AND owner_uid = $owner_uid");
+ }
+
+ $rc = true;
+ }
+ }
+
+ db_query("COMMIT");
+
+ return $rc;
+ }
+
+ function hook_prefs_tab($args) {
+ if ($args != "prefFeeds") return;
+
+ print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__("Import starred or shared items from Google Reader")."\">";
+
+ print_notice("Your imported articles will appear in Starred (in file is named starred.json) and Archived feeds.");
+
+ print "<p>".__("Paste your starred.json or shared.json into the form below."). "</p>";
+
+ print "<iframe id=\"starred_upload_iframe\"
+ name=\"starred_upload_iframe\" onload=\"starredImportComplete(this)\"
+ style=\"width: 400px; height: 100px; display: none;\"></iframe>";
+
+ print "<form name=\"starred_form\" style='display : block' target=\"starred_upload_iframe\"
+ enctype=\"multipart/form-data\" method=\"POST\"
+ action=\"backend.php\">
+ <input id=\"starred_file\" name=\"starred_file\" type=\"file\">&nbsp;
+ <input type=\"hidden\" name=\"op\" value=\"pluginhandler\">
+ <input type=\"hidden\" name=\"method\" value=\"import\">
+ <input type=\"hidden\" name=\"plugin\" value=\"googlereaderimport\">
+ <button dojoType=\"dijit.form.Button\" onclick=\"return starredImport();\" type=\"submit\">" .
+ __('Import my Starred items') . "</button>";
+
+ print "</form>";
+
+ print "</div>"; #pane
+ }
+
+ function api_version() {
+ return 2;
+ }
+
+}
+?>
diff --git a/plugins/googlereaderkeys/init.php b/plugins/googlereaderkeys/init.php
index 97133d305..c8e7d7a38 100644
--- a/plugins/googlereaderkeys/init.php
+++ b/plugins/googlereaderkeys/init.php
@@ -1,7 +1,5 @@
<?php
class GoogleReaderKeys extends Plugin {
-
- private $link;
private $host;
function about() {
@@ -11,7 +9,6 @@ class GoogleReaderKeys extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_HOTKEY_MAP, $this);
@@ -21,16 +18,21 @@ class GoogleReaderKeys extends Plugin {
$hotkeys["j"] = "next_article_noscroll";
$hotkeys["k"] = "prev_article_noscroll";
- $hotkeys["N"] = "next_feed";
- $hotkeys["P"] = "prev_feed";
+ $hotkeys["*n"] = "next_feed";
+ $hotkeys["*p"] = "prev_feed";
$hotkeys["v"] = "open_in_new_window";
$hotkeys["r"] = "feed_refresh";
+ $hotkeys["m"] = "toggle_unread";
$hotkeys["(32)|space"] = "next_article";
$hotkeys["(38)|up"] = "article_scroll_up";
$hotkeys["(40)|down"] = "article_scroll_down";
return $hotkeys;
+ }
+ function api_version() {
+ return 2;
}
+
}
?>
diff --git a/plugins/identica/identica.js b/plugins/identica/identica.js
deleted file mode 100644
index d31fc55f4..000000000
--- a/plugins/identica/identica.js
+++ /dev/null
@@ -1,31 +0,0 @@
- function shareArticleToIdentica(id) {
- try {
- var query = "?op=pluginhandler&plugin=identica&method=getInfo&id=" + param_escape(id);
-
- console.log(query);
-
- var d = new Date();
- var ts = d.getTime();
-
- var w = window.open('backend.php?op=backend&method=loading', 'ttrss_tweet',
- "status=0,toolbar=0,location=0,width=600,height=500,scrollbars=1,menubar=0");
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- var ti = JSON.parse(transport.responseText);
-
- var share_url = "http://identi.ca/index.php?action=bookmarkpopup&_=" + ts +
- "&title=" + param_escape(ti.title) +
- "&url=" + param_escape(ti.link);
-
- w.location.href = share_url;
-
- } });
-
-
- } catch (e) {
- exception_error("shareArticleIdentica", e);
- }
- }
-
diff --git a/plugins/identica/identica.png b/plugins/identica/identica.png
deleted file mode 100644
index ee3cb61ea..000000000
--- a/plugins/identica/identica.png
+++ /dev/null
Binary files differ
diff --git a/plugins/identica/init.php b/plugins/identica/init.php
deleted file mode 100644
index c260334af..000000000
--- a/plugins/identica/init.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-class Identica extends Plugin {
- private $link;
- private $host;
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
- }
-
- function about() {
- return array(1.0,
- "Share articles on Identi.ca",
- "fox");
- }
-
- function get_js() {
- return file_get_contents(dirname(__FILE__) . "/identica.js");
- }
-
- function hook_article_button($line) {
- $article_id = $line["id"];
-
- $rv = "<img src=\"".theme_image($this->link, 'plugins/identica/identica.png')."\"
- class='tagsPic' style=\"cursor : pointer\"
- onclick=\"shareArticleToIdentica($article_id)\"
- title='".__('Share on identi.ca')."'>";
-
- return $rv;
- }
-
- function getInfo() {
- $id = db_escape_string($_REQUEST['id']);
-
- $result = db_query($this->link, "SELECT title, link
- FROM ttrss_entries, ttrss_user_entries
- WHERE id = '$id' AND ref_id = id AND owner_uid = " .$_SESSION['uid']);
-
- if (db_num_rows($result) != 0) {
- $title = truncate_string(strip_tags(db_fetch_result($result, 0, 'title')),
- 100, '...');
- $article_link = db_fetch_result($result, 0, 'link');
- }
-
- print json_encode(array("title" => $title, "link" => $article_link,
- "id" => $id));
- }
-
-
-}
-?>
diff --git a/plugins/import_export/import_export.js b/plugins/import_export/import_export.js
index b3b760f15..780f6bfc7 100644
--- a/plugins/import_export/import_export.js
+++ b/plugins/import_export/import_export.js
@@ -17,7 +17,7 @@ function exportData() {
notify_progress("Loading, please wait...");
new Ajax.Request("backend.php", {
- parameters: "?op=pluginhandler&plugin=import_export&method=exportrun&offset=" + exported,
+ parameters: "op=pluginhandler&plugin=import_export&method=exportrun&offset=" + exported,
onComplete: function(transport) {
try {
var rv = JSON.parse(transport.responseText);
@@ -37,7 +37,7 @@ function exportData() {
} else {
$("export_status_message").innerHTML =
- __("Finished, exported %d articles. You can download the data <a class='visibleLink' href='%u'>here</a>.")
+ ngettext("Finished, exported %d article. You can download the data <a class='visibleLink' href='%u'>here</a>.", "Finished, exported %d articles. You can download the data <a class='visibleLink' href='%u'>here</a>.", exported)
.replace("%d", exported)
.replace("%u", "backend.php?op=pluginhandler&plugin=import_export&subop=exportget");
diff --git a/plugins/import_export/init.php b/plugins/import_export/init.php
index de21dbf32..d4bdec826 100644
--- a/plugins/import_export/init.php
+++ b/plugins/import_export/init.php
@@ -1,15 +1,12 @@
<?php
class Import_Export extends Plugin implements IHandler {
-
- private $link;
private $host;
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_PREFS_TAB, $this);
- $host->add_command("xml-import", "USER FILE: import articles from XML", $this);
+ $host->add_command("xml-import", "import articles from XML", $this, ":", "FILE");
}
function about() {
@@ -19,24 +16,21 @@ class Import_Export extends Plugin implements IHandler {
}
function xml_import($args) {
- array_shift($args);
- $username = $args[count($args) - 2];
- $filename = $args[count($args) - 1];
-
- if (!$username) {
- print "error: please specify username.\n";
- return;
- }
+ $filename = $args['xml_import'];
if (!is_file($filename)) {
print "error: input filename ($filename) doesn't exist.\n";
return;
}
+ _debug("please enter your username:");
+
+ $username = db_escape_string(trim(read_stdin()));
+
_debug("importing $filename for user $username...\n");
- $result = db_query($this->link, "SELECT id FROM ttrss_users WHERE login = '$username'");
+ $result = db_query("SELECT id FROM ttrss_users WHERE login = '$username'");
if (db_num_rows($result) == 0) {
print "error: could not find user $username.\n";
@@ -45,7 +39,7 @@ class Import_Export extends Plugin implements IHandler {
$owner_uid = db_fetch_result($result, 0, "id");
- $this->perform_data_import($this->link, $filename, $owner_uid);
+ $this->perform_data_import($filename, $owner_uid);
}
function save() {
@@ -63,9 +57,9 @@ class Import_Export extends Plugin implements IHandler {
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Import and export')."\">";
- print "<h3>" . __("Article archive") . "</h3>";
+ print_notice(__("You can export and import your Starred and Archived articles for safekeeping or when migrating between tt-rss instances of same version."));
- print "<p>" . __("You can export and import your Starred and Archived articles for safekeeping or when migrating between tt-rss instances.") . "</p>";
+ print "<p>";
print "<button dojoType=\"dijit.form.Button\" onclick=\"return exportData()\">".
__('Export my data')."</button> ";
@@ -86,6 +80,9 @@ class Import_Export extends Plugin implements IHandler {
<button dojoType=\"dijit.form.Button\" onclick=\"return importData();\" type=\"submit\">" .
__('Import') . "</button>";
+ print "</form>";
+
+ print "</p>";
print "</div>"; # pane
}
@@ -127,7 +124,7 @@ class Import_Export extends Plugin implements IHandler {
$limit = 250;
if ($offset < 10000 && is_writable(CACHE_DIR . "/export")) {
- $result = db_query($this->link, "SELECT
+ $result = db_query("SELECT
ttrss_entries.guid,
ttrss_entries.title,
content,
@@ -165,6 +162,7 @@ class Import_Export extends Plugin implements IHandler {
fputs($fp, "<article>");
foreach ($line as $k => $v) {
+ $v = str_replace("]]>", "]]]]><![CDATA[>", $v);
fputs($fp, "<$k><![CDATA[$v]]></$k>");
}
@@ -185,7 +183,7 @@ class Import_Export extends Plugin implements IHandler {
print json_encode(array("exported" => $exported));
}
- function perform_data_import($link, $filename, $owner_uid) {
+ function perform_data_import($filename, $owner_uid) {
$num_imported = 0;
$num_processed = 0;
@@ -249,16 +247,16 @@ class Import_Export extends Plugin implements IHandler {
++$num_processed;
- //db_query($link, "BEGIN");
+ //db_query("BEGIN");
//print 'GUID:' . $article['guid'] . "\n";
- $result = db_query($link, "SELECT id FROM ttrss_entries
+ $result = db_query("SELECT id FROM ttrss_entries
WHERE guid = '".$article['guid']."'");
if (db_num_rows($result) == 0) {
- $result = db_query($link,
+ $result = db_query(
"INSERT INTO ttrss_entries
(title,
guid,
@@ -286,7 +284,7 @@ class Import_Export extends Plugin implements IHandler {
'0',
'')");
- $result = db_query($link, "SELECT id FROM ttrss_entries
+ $result = db_query("SELECT id FROM ttrss_entries
WHERE guid = '".$article['guid']."'");
if (db_num_rows($result) != 0) {
@@ -307,7 +305,7 @@ class Import_Export extends Plugin implements IHandler {
$feed = 'NULL';
if ($feed_url && $feed_title) {
- $result = db_query($link, "SELECT id FROM ttrss_feeds
+ $result = db_query("SELECT id FROM ttrss_feeds
WHERE feed_url = '$feed_url' AND owner_uid = '$owner_uid'");
if (db_num_rows($result) != 0) {
@@ -315,10 +313,10 @@ class Import_Export extends Plugin implements IHandler {
} else {
// try autocreating feed in Uncategorized...
- $result = db_query($link, "INSERT INTO ttrss_feeds (owner_uid,
+ $result = db_query("INSERT INTO ttrss_feeds (owner_uid,
feed_url, title) VALUES ($owner_uid, '$feed_url', '$feed_title')");
- $result = db_query($link, "SELECT id FROM ttrss_feeds
+ $result = db_query("SELECT id FROM ttrss_feeds
WHERE feed_url = '$feed_url' AND owner_uid = '$owner_uid'");
if (db_num_rows($result) != 0) {
@@ -336,7 +334,7 @@ class Import_Export extends Plugin implements IHandler {
//print "$ref_id / $feed / " . $article['title'] . "\n";
- $result = db_query($link, "SELECT int_id FROM ttrss_user_entries
+ $result = db_query("SELECT int_id FROM ttrss_user_entries
WHERE ref_id = '$ref_id' AND owner_uid = '$owner_uid' AND $feed_qpart");
if (db_num_rows($result) == 0) {
@@ -353,7 +351,7 @@ class Import_Export extends Plugin implements IHandler {
++$num_imported;
- $result = db_query($link,
+ $result = db_query(
"INSERT INTO ttrss_user_entries
(ref_id, owner_uid, feed_id, unread, last_read, marked,
published, score, tag_cache, label_cache, uuid, note)
@@ -366,15 +364,15 @@ class Import_Export extends Plugin implements IHandler {
if (is_array($label_cache) && $label_cache["no-labels"] != 1) {
foreach ($label_cache as $label) {
- label_create($link, $label[1],
+ label_create($label[1],
$label[2], $label[3], $owner_uid);
- label_add_article($link, $ref_id, $label[1], $owner_uid);
+ label_add_article($ref_id, $label[1], $owner_uid);
}
}
- //db_query($link, "COMMIT");
+ //db_query("COMMIT");
}
}
}
@@ -382,8 +380,10 @@ class Import_Export extends Plugin implements IHandler {
}
print "<p>" .
- T_sprintf("Finished: %d articles processed, %d imported, %d feeds created.",
- $num_processed, $num_imported, $num_feeds_created) .
+ __("Finished: ").
+ vsprintf(ngettext("%d article processed, ", "%d articles processed, ", $num_processed), $num_processed).
+ vsprintf(ngettext("%d imported, ", "%d imported, ", $num_imported), $num_imported).
+ vsprintf(ngettext("%d feed created.", "%d feeds created.", $num_feeds_created), $num_feeds_created).
"</p>";
} else {
@@ -416,14 +416,35 @@ class Import_Export extends Plugin implements IHandler {
print "<div style='text-align : center'>";
- if (is_file($_FILES['export_file']['tmp_name'])) {
+ if ($_FILES['export_file']['error'] != 0) {
+ print_error(T_sprintf("Upload failed with error code %d",
+ $_FILES['export_file']['error']));
+ return;
+ }
+
+ $tmp_file = false;
+
+ if (is_uploaded_file($_FILES['export_file']['tmp_name'])) {
+ $tmp_file = tempnam(CACHE_DIR . '/upload', 'export');
- $this->perform_data_import($this->link, $_FILES['export_file']['tmp_name'], $_SESSION['uid']);
+ $result = move_uploaded_file($_FILES['export_file']['tmp_name'],
+ $tmp_file);
+ if (!$result) {
+ print_error(__("Unable to move uploaded file."));
+ return;
+ }
} else {
- print "<p>" . T_sprintf("Could not upload file. You might need to adjust upload_max_filesize
- in PHP.ini (current value = %s)", ini_get("upload_max_filesize")) . " or use CLI import tool.</p>";
+ print_error(__('Error: please upload OPML file.'));
+ return;
+ }
+ if (is_file($tmp_file)) {
+ $this->perform_data_import($tmp_file, $_SESSION['uid']);
+ unlink($tmp_file);
+ } else {
+ print_error(__('No file uploaded.'));
+ return;
}
print "<button dojoType=\"dijit.form.Button\"
@@ -434,6 +455,9 @@ class Import_Export extends Plugin implements IHandler {
}
+ function api_version() {
+ return 2;
+ }
}
?>
diff --git a/plugins/index.html b/plugins/index.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/plugins/index.html
diff --git a/plugins/instances/init.php b/plugins/instances/init.php
index 6c0f89e1c..aac28196f 100644
--- a/plugins/instances/init.php
+++ b/plugins/instances/init.php
@@ -1,7 +1,5 @@
<?php
class Instances extends Plugin implements IHandler {
-
- private $link;
private $host;
private $status_codes = array(
@@ -18,7 +16,6 @@ class Instances extends Plugin implements IHandler {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_PREFS_TABS, $this);
@@ -30,7 +27,7 @@ class Instances extends Plugin implements IHandler {
function hook_update_task($args) {
_debug("Get linked feeds...");
- $this->get_linked_feeds($this->link);
+ $this->get_linked_feeds();
}
// Status codes:
@@ -40,7 +37,7 @@ class Instances extends Plugin implements IHandler {
// 2 - did not receive valid data
// >10 - server error, code + 10 (e.g. 16 means server error 6)
- function get_linked_feeds($link, $instance_id = false) {
+ function get_linked_feeds($instance_id = false) {
if ($instance_id)
$instance_qpart = "id = '$instance_id' AND ";
else
@@ -52,7 +49,7 @@ class Instances extends Plugin implements IHandler {
$date_qpart = "last_connected < DATE_SUB(NOW(), INTERVAL 6 HOUR)";
}
- $result = db_query($link, "SELECT id, access_key, access_url FROM ttrss_linked_instances
+ $result = db_query("SELECT id, access_key, access_url FROM ttrss_linked_instances
WHERE $instance_qpart $date_qpart ORDER BY last_connected");
while ($line = db_fetch_assoc($result)) {
@@ -80,7 +77,7 @@ class Instances extends Plugin implements IHandler {
// access denied
if ($status == 16) {
- db_query($link, "DELETE FROM ttrss_linked_feeds
+ db_query("DELETE FROM ttrss_linked_feeds
WHERE instance_id = '$id'");
}
} else {
@@ -88,7 +85,7 @@ class Instances extends Plugin implements IHandler {
if (count($feeds['feeds']) > 0) {
- db_query($link, "DELETE FROM ttrss_linked_feeds
+ db_query("DELETE FROM ttrss_linked_feeds
WHERE instance_id = '$id'");
foreach ($feeds['feeds'] as $feed) {
@@ -97,7 +94,7 @@ class Instances extends Plugin implements IHandler {
$subscribers = db_escape_string($feed['subscribers']);
$site_url = db_escape_string($feed['site_url']);
- db_query($link, "INSERT INTO ttrss_linked_feeds
+ db_query("INSERT INTO ttrss_linked_feeds
(feed_url, site_url, title, subscribers, instance_id, created, updated)
VALUES
('$feed_url', '$site_url', '$title', '$subscribers', '$id', NOW(), NOW())");
@@ -122,7 +119,7 @@ class Instances extends Plugin implements IHandler {
_debug("Status: $status");
- db_query($link, "UPDATE ttrss_linked_instances SET
+ db_query("UPDATE ttrss_linked_instances SET
last_status_out = '$status', last_connected = NOW() WHERE id = '$id'");
}
@@ -130,7 +127,7 @@ class Instances extends Plugin implements IHandler {
function get_feeds() {
- $this->get_linked_feeds($this->link, false);
+ $this->get_linked_feeds(false);
}
function get_prefs_js() {
@@ -169,7 +166,7 @@ class Instances extends Plugin implements IHandler {
function remove() {
$ids = db_escape_string($_REQUEST['ids']);
- db_query($this->link, "DELETE FROM ttrss_linked_instances WHERE
+ db_query("DELETE FROM ttrss_linked_instances WHERE
id IN ($ids)");
}
@@ -178,26 +175,26 @@ class Instances extends Plugin implements IHandler {
$access_url = db_escape_string($_REQUEST["access_url"]);
$access_key = db_escape_string($_REQUEST["access_key"]);
- db_query($this->link, "BEGIN");
+ db_query("BEGIN");
- $result = db_query($this->link, "SELECT id FROM ttrss_linked_instances
+ $result = db_query("SELECT id FROM ttrss_linked_instances
WHERE access_url = '$access_url'");
if (db_num_rows($result) == 0) {
- db_query($this->link, "INSERT INTO ttrss_linked_instances
+ db_query("INSERT INTO ttrss_linked_instances
(access_url, access_key, last_connected, last_status_in, last_status_out)
VALUES
('$access_url', '$access_key', '1970-01-01', -1, -1)");
}
- db_query($this->link, "COMMIT");
+ db_query("COMMIT");
}
function edit() {
$id = db_escape_string($_REQUEST["id"]);
- $result = db_query($this->link, "SELECT * FROM ttrss_linked_instances WHERE
+ $result = db_query("SELECT * FROM ttrss_linked_instances WHERE
id = '$id'");
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$id\">";
@@ -257,7 +254,7 @@ class Instances extends Plugin implements IHandler {
$access_url = db_escape_string($_REQUEST["access_url"]);
$access_key = db_escape_string($_REQUEST["access_key"]);
- db_query($this->link, "UPDATE ttrss_linked_instances SET
+ db_query("UPDATE ttrss_linked_instances SET
access_key = '$access_key', access_url = '$access_url',
last_connected = '1970-01-01'
WHERE id = '$id'");
@@ -298,7 +295,7 @@ class Instances extends Plugin implements IHandler {
print "</div>"; #toolbar
- $result = db_query($this->link, "SELECT *,
+ $result = db_query("SELECT *,
(SELECT COUNT(*) FROM ttrss_linked_feeds
WHERE instance_id = ttrss_linked_instances.id) AS num_feeds
FROM ttrss_linked_instances
@@ -327,7 +324,7 @@ class Instances extends Plugin implements IHandler {
$id = $line['id'];
$this_row_id = "id=\"LIRR-$id\"";
- $line["last_connected"] = make_local_datetime($this->link, $line["last_connected"], false);
+ $line["last_connected"] = make_local_datetime($line["last_connected"], false);
print "<tr class=\"$class\" $this_row_id>";
@@ -354,8 +351,7 @@ class Instances extends Plugin implements IHandler {
print "</div>"; #pane
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefInstances");
print "</div>"; #container
@@ -367,14 +363,14 @@ class Instances extends Plugin implements IHandler {
$access_key = db_escape_string($_POST["key"]);
// TODO: rate limit checking using last_connected
- $result = db_query($this->link, "SELECT id FROM ttrss_linked_instances
+ $result = db_query("SELECT id FROM ttrss_linked_instances
WHERE access_key = '$access_key'");
if (db_num_rows($result) == 1) {
$instance_id = db_fetch_result($result, 0, "id");
- $result = db_query($this->link, "SELECT feed_url, site_url, title, subscribers
+ $result = db_query("SELECT feed_url, site_url, title, subscribers
FROM ttrss_feedbrowser_cache ORDER BY subscribers DESC LIMIT 100");
$feeds = array();
@@ -383,7 +379,7 @@ class Instances extends Plugin implements IHandler {
array_push($feeds, $line);
}
- db_query($this->link, "UPDATE ttrss_linked_instances SET
+ db_query("UPDATE ttrss_linked_instances SET
last_status_in = 1 WHERE id = '$instance_id'");
print json_encode(array("feeds" => $feeds));
@@ -392,6 +388,65 @@ class Instances extends Plugin implements IHandler {
}
}
+ function addInstance() {
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-instances\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"add\">";
+
+ print "<div class=\"dlgSec\">".__("Instance")."</div>";
+
+ print "<div class=\"dlgSecCont\">";
+
+ /* URL */
+
+ print __("URL:") . " ";
+
+ print "<input dojoType=\"dijit.form.ValidationTextBox\" required=\"1\"
+ placeHolder=\"".__("Instance URL")."\"
+ regExp='^(http|https)://.*'
+ style=\"font-size : 16px; width: 20em\" name=\"access_url\">";
+
+ print "<hr/>";
+
+ $access_key = sha1(uniqid(rand(), true));
+
+ /* Access key */
+
+ print __("Access key:") . " ";
+
+ print "<input dojoType=\"dijit.form.ValidationTextBox\" required=\"1\"
+ placeHolder=\"".__("Access key")."\" regExp='\w{40}'
+ style=\"width: 20em\" name=\"access_key\" id=\"instance_add_key\"
+ value=\"$access_key\">";
+
+ print "<p class='insensitive'>" . __("Use one access key for both linked instances.");
+
+ print "</div>";
+
+ print "<div class=\"dlgButtons\">
+ <div style='float : left'>
+ <button dojoType=\"dijit.form.Button\"
+ onclick=\"return dijit.byId('instanceAddDlg').regenKey()\">".
+ __('Generate new key')."</button>
+ </div>
+ <button dojoType=\"dijit.form.Button\"
+ onclick=\"return dijit.byId('instanceAddDlg').execute()\">".
+ __('Create link')."</button>
+ <button dojoType=\"dijit.form.Button\"
+ onclick=\"return dijit.byId('instanceAddDlg').hide()\"\">".
+ __('Cancel')."</button></div>";
+
+ return;
+ }
+
+ function genHash() {
+ $hash = sha1(uniqid(rand(), true));
+
+ print json_encode(array("hash" => $hash));
+ }
+
+ function api_version() {
+ return 2;
+ }
}
?>
diff --git a/plugins/instances/instances.js b/plugins/instances/instances.js
index 83213896d..f699acf72 100644
--- a/plugins/instances/instances.js
+++ b/plugins/instances/instances.js
@@ -1,6 +1,6 @@
function addInstance() {
try {
- var query = "backend.php?op=dlg&method=addInstance";
+ var query = "backend.php?op=pluginhandler&plugin=instances&method=addInstance";
if (dijit.byId("instanceAddDlg"))
dijit.byId("instanceAddDlg").destroyRecursive();
@@ -11,7 +11,7 @@ function addInstance() {
style: "width: 600px",
regenKey: function() {
new Ajax.Request("backend.php", {
- parameters: "?op=rpc&method=genHash",
+ parameters: "op=pluginhandler&plugin=instances&method=genHash",
onComplete: function(transport) {
var reply = JSON.parse(transport.responseText);
if (reply)
@@ -47,7 +47,7 @@ function addInstance() {
function updateInstanceList(sort_key) {
new Ajax.Request("backend.php", {
- parameters: "?op=pref-instances&sort=" + param_escape(sort_key),
+ parameters: "op=pluginhandler&plugin=instances&sort=" + param_escape(sort_key),
onComplete: function(transport) {
dijit.byId('instanceConfigTab').attr('content', transport.responseText);
selectTab("instanceConfig", true);
@@ -62,7 +62,7 @@ function editInstance(id, event) {
selectTableRows('prefInstanceList', 'none');
selectTableRowById('LIRR-'+id, 'LICHK-'+id, true);
- var query = "backend.php?op=pref-instances&method=edit&id=" +
+ var query = "backend.php?op=pluginhandler&plugin=instances&method=edit&id=" +
param_escape(id);
if (dijit.byId("instanceEditDlg"))
@@ -74,7 +74,7 @@ function editInstance(id, event) {
style: "width: 600px",
regenKey: function() {
new Ajax.Request("backend.php", {
- parameters: "?op=rpc&method=genHash",
+ parameters: "op=pluginhandler&plugin=instances&method=genHash",
onComplete: function(transport) {
var reply = JSON.parse(transport.responseText);
if (reply)
@@ -124,7 +124,7 @@ function removeSelectedInstances() {
if (ok) {
notify_progress("Removing selected instances...");
- var query = "?op=pref-instances&method=remove&ids="+
+ var query = "op=pluginhandler&plugin=instances&method=remove&ids="+
param_escape(sel_rows.toString());
new Ajax.Request("backend.php", {
diff --git a/plugins/mail/init.php b/plugins/mail/init.php
index 2e972cf61..80bc7d417 100644
--- a/plugins/mail/init.php
+++ b/plugins/mail/init.php
@@ -1,7 +1,6 @@
<?php
class Mail extends Plugin {
- private $link;
private $host;
function about() {
@@ -11,7 +10,6 @@ class Mail extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
@@ -22,7 +20,7 @@ class Mail extends Plugin {
}
function hook_article_button($line) {
- return "<img src=\"".theme_image($link, 'plugins/mail/mail.png')."\"
+ return "<img src=\"plugins/mail/mail.png\"
class='tagsPic' style=\"cursor : pointer\"
onclick=\"emailArticle(".$line["id"].")\"
alt='Zoom' title='".__('Forward by email')."'>";
@@ -32,16 +30,11 @@ class Mail extends Plugin {
$param = db_escape_string($_REQUEST['param']);
- $secretkey = sha1(uniqid(rand(), true));
-
- $_SESSION['email_secretkey'] = $secretkey;
-
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"secretkey\" value=\"$secretkey\">";
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pluginhandler\">";
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"plugin\" value=\"mail\">";
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"sendEmail\">";
- $result = db_query($this->link, "SELECT email, full_name FROM ttrss_users WHERE
+ $result = db_query("SELECT email, full_name FROM ttrss_users WHERE
id = " . $_SESSION["uid"]);
$user_email = htmlspecialchars(db_fetch_result($result, 0, "email"));
@@ -49,8 +42,8 @@ class Mail extends Plugin {
if (!$user_name) $user_name = $_SESSION['name'];
- $_SESSION['email_replyto'] = $user_email;
- $_SESSION['email_fromname'] = $user_name;
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"from_email\" value=\"$user_email\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"from_name\" value=\"$user_name\">";
require_once "lib/MiniTemplator.class.php";
@@ -59,12 +52,11 @@ class Mail extends Plugin {
$tpl->readTemplateFromFile("templates/email_article_template.txt");
- $tpl->setVariable('USER_NAME', $_SESSION["name"]);
- $tpl->setVariable('USER_EMAIL', $user_email);
- $tpl->setVariable('TTRSS_HOST', $_SERVER["HTTP_HOST"]);
+ $tpl->setVariable('USER_NAME', $_SESSION["name"], true);
+ $tpl->setVariable('USER_EMAIL', $user_email, true);
+ $tpl->setVariable('TTRSS_HOST', $_SERVER["HTTP_HOST"], true);
-
- $result = db_query($this->link, "SELECT link, content, title
+ $result = db_query("SELECT link, content, title
FROM ttrss_user_entries, ttrss_entries WHERE id = ref_id AND
id IN ($param) AND owner_uid = " . $_SESSION["uid"]);
@@ -136,58 +128,27 @@ class Mail extends Plugin {
}
function sendEmail() {
- $secretkey = $_REQUEST['secretkey'];
-
- require_once 'lib/phpmailer/class.phpmailer.php';
+ require_once 'classes/ttrssmailer.php';
$reply = array();
- if ($_SESSION['email_secretkey'] &&
- $secretkey == $_SESSION['email_secretkey']) {
-
- $_SESSION['email_secretkey'] = '';
-
- $destination = $_REQUEST['destination'];
- $subject = $_REQUEST['subject'];
- $content = $_REQUEST['content'];
-
- $replyto = strip_tags($_SESSION['email_replyto']);
- $fromname = strip_tags($_SESSION['email_fromname']);
-
- $mail = new PHPMailer();
+ $mail = new ttrssMailer();
- $mail->PluginDir = "lib/phpmailer/";
- $mail->SetLanguage("en", "lib/phpmailer/language/");
+ $mail->From = strip_tags($_REQUEST['from_email']);
+ $mail->FromName = strip_tags($_REQUEST['from_name']);
+ $mail->AddAddress($_REQUEST['destination']);
- $mail->CharSet = "UTF-8";
+ $mail->IsHTML(false);
+ $mail->Subject = $_REQUEST['subject'];
+ $mail->Body = $_REQUEST['content'];
- $mail->From = $replyto;
- $mail->FromName = $fromname;
- $mail->AddAddress($destination);
-
- if (SMTP_HOST) {
- $mail->Host = SMTP_HOST;
- $mail->Mailer = "smtp";
- $mail->SMTPAuth = SMTP_LOGIN != '';
- $mail->Username = SMTP_LOGIN;
- $mail->Password = SMTP_PASSWORD;
- }
-
- $mail->IsHTML(false);
- $mail->Subject = $subject;
- $mail->Body = $content;
-
- $rc = $mail->Send();
-
- if (!$rc) {
- $reply['error'] = $mail->ErrorInfo;
- } else {
- save_email_address($this->link, db_escape_string($destination));
- $reply['message'] = "UPDATE_COUNTERS";
- }
+ $rc = $mail->Send();
+ if (!$rc) {
+ $reply['error'] = $mail->ErrorInfo;
} else {
- $reply['error'] = "Not authorized.";
+ save_email_address(db_escape_string($destination));
+ $reply['message'] = "UPDATE_COUNTERS";
}
print json_encode($reply);
@@ -207,6 +168,9 @@ class Mail extends Plugin {
print "</ul>";
}
+ function api_version() {
+ return 2;
+ }
}
?>
diff --git a/plugins/mail/mail.js b/plugins/mail/mail.js
index 39f753cc0..6166f01c1 100644
--- a/plugins/mail/mail.js
+++ b/plugins/mail/mail.js
@@ -26,6 +26,7 @@ function emailArticle(id) {
new Ajax.Request("backend.php", {
parameters: dojo.objectToQuery(this.attr('value')),
onComplete: function(transport) {
+ console.log(transport.responseText);
var reply = JSON.parse(transport.responseText);
diff --git a/plugins/mailto/init.js b/plugins/mailto/init.js
new file mode 100644
index 000000000..8f7656a07
--- /dev/null
+++ b/plugins/mailto/init.js
@@ -0,0 +1,32 @@
+function mailtoArticle(id) {
+ try {
+ if (!id) {
+ var ids = getSelectedArticleIds2();
+
+ if (ids.length == 0) {
+ alert(__("No articles are selected."));
+ return;
+ }
+
+ id = ids.toString();
+ }
+
+ if (dijit.byId("emailArticleDlg"))
+ dijit.byId("emailArticleDlg").destroyRecursive();
+
+ var query = "backend.php?op=pluginhandler&plugin=mailto&method=emailArticle&param=" + param_escape(id);
+
+ dialog = new dijit.Dialog({
+ id: "emailArticleDlg",
+ title: __("Forward article by email"),
+ style: "width: 600px",
+ href: query});
+
+ dialog.show();
+
+ } catch (e) {
+ exception_error("emailArticle", e);
+ }
+}
+
+
diff --git a/plugins/mailto/init.php b/plugins/mailto/init.php
new file mode 100644
index 000000000..aa6d173f8
--- /dev/null
+++ b/plugins/mailto/init.php
@@ -0,0 +1,94 @@
+<?php
+class MailTo extends Plugin {
+ private $host;
+
+ function about() {
+ return array(1.0,
+ "Share article via email (using mailto: links, invoking your mail client)",
+ "fox");
+ }
+
+ function init($host) {
+ $this->host = $host;
+
+ $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
+ }
+
+ function get_js() {
+ return file_get_contents(dirname(__FILE__) . "/init.js");
+ }
+
+ function hook_article_button($line) {
+ return "<img src=\"plugins/mailto/mail.png\"
+ class='tagsPic' style=\"cursor : pointer\"
+ onclick=\"mailtoArticle(".$line["id"].")\"
+ alt='Zoom' title='".__('Forward by email')."'>";
+ }
+
+ function emailArticle() {
+
+ $param = db_escape_string($_REQUEST['param']);
+
+ require_once "lib/MiniTemplator.class.php";
+
+ $tpl = new MiniTemplator;
+ $tpl_t = new MiniTemplator;
+
+ $tpl->readTemplateFromFile("templates/email_article_template.txt");
+
+ $tpl->setVariable('USER_NAME', $_SESSION["name"], true);
+ $tpl->setVariable('USER_EMAIL', $user_email, true);
+ $tpl->setVariable('TTRSS_HOST', $_SERVER["HTTP_HOST"], true);
+
+
+ $result = db_query("SELECT link, content, title
+ FROM ttrss_user_entries, ttrss_entries WHERE id = ref_id AND
+ id IN ($param) AND owner_uid = " . $_SESSION["uid"]);
+
+ if (db_num_rows($result) > 1) {
+ $subject = __("[Forwarded]") . " " . __("Multiple articles");
+ }
+
+ while ($line = db_fetch_assoc($result)) {
+
+ if (!$subject)
+ $subject = __("[Forwarded]") . " " . htmlspecialchars($line["title"]);
+
+ $tpl->setVariable('ARTICLE_TITLE', strip_tags($line["title"]));
+ $tpl->setVariable('ARTICLE_URL', strip_tags($line["link"]));
+
+ $tpl->addBlock('article');
+ }
+
+ $tpl->addBlock('email');
+
+ $content = "";
+ $tpl->generateOutputToString($content);
+
+ $mailto_link = htmlspecialchars("mailto: ?subject=".rawurlencode($subject).
+ "&body=".rawurlencode($content));
+
+ print __("Clicking the following link to invoke your mail client:");
+
+ print "<div class=\"tagCloudContainer\">";
+ print "<a target=\"_blank\" href=\"$mailto_link\">".
+ __("Forward selected article(s) by email.")."</a>";
+ print "</div>";
+
+ print __("You should be able to edit the message before sending in your mail client.");
+
+ print "<p>";
+
+ print "<div style='text-align : center'>";
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('emailArticleDlg').hide()\">".__('Close this dialog')."</button>";
+ print "</div>";
+
+ //return;
+ }
+
+ function api_version() {
+ return 2;
+ }
+
+}
+?>
diff --git a/plugins/mailto/mail.png b/plugins/mailto/mail.png
new file mode 100644
index 000000000..fcdcbd604
--- /dev/null
+++ b/plugins/mailto/mail.png
Binary files differ
diff --git a/plugins/mark_button/init.php b/plugins/mark_button/init.php
new file mode 100644
index 000000000..971b12932
--- /dev/null
+++ b/plugins/mark_button/init.php
@@ -0,0 +1,43 @@
+<?php
+class Mark_Button extends Plugin {
+ private $host;
+
+ function init($host) {
+ $this->host = $host;
+
+ $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
+ }
+
+ function about() {
+ return array(1.0,
+ "Bottom un/star button for the combined mode",
+ "fox");
+ }
+
+ function hook_article_button($line) {
+ $marked_pic = "";
+ $id = $line["id"];
+
+ if (get_pref("COMBINED_DISPLAY_MODE")) {
+ if (sql_bool_to_bool($line["marked"])) {
+ $marked_pic = "<img
+ src=\"images/mark_set.svg\"
+ class=\"markedPic\" alt=\"Unstar article\"
+ onclick='toggleMark($id)'>";
+ } else {
+ $marked_pic = "<img
+ src=\"images/mark_unset.svg\"
+ class=\"markedPic\" alt=\"Star article\"
+ onclick='toggleMark($id)'>";
+ }
+ }
+
+ return $marked_pic;
+ }
+
+ function api_version() {
+ return 2;
+ }
+
+}
+?>
diff --git a/plugins/note/init.php b/plugins/note/init.php
index 560796a69..2a32961fc 100644
--- a/plugins/note/init.php
+++ b/plugins/note/init.php
@@ -1,6 +1,5 @@
<?php
class Note extends Plugin {
- private $link;
private $host;
function about() {
@@ -10,7 +9,6 @@ class Note extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
@@ -22,7 +20,7 @@ class Note extends Plugin {
function hook_article_button($line) {
- return "<img src=\"".theme_image($this->link, "plugins/note/note.png")."\"
+ return "<img src=\"plugins/note/note.png\"
style=\"cursor : pointer\" style=\"cursor : pointer\"
onclick=\"editArticleNote(".$line["id"].")\"
class='tagsPic' title='".__('Edit article note')."'>";
@@ -31,7 +29,7 @@ class Note extends Plugin {
function edit() {
$param = db_escape_string($_REQUEST['param']);
- $result = db_query($this->link, "SELECT note FROM ttrss_user_entries WHERE
+ $result = db_query("SELECT note FROM ttrss_user_entries WHERE
ref_id = '$param' AND owner_uid = " . $_SESSION['uid']);
$note = db_fetch_result($result, 0, "note");
@@ -61,7 +59,7 @@ class Note extends Plugin {
$id = db_escape_string($_REQUEST["id"]);
$note = trim(strip_tags(db_escape_string($_REQUEST["note"])));
- db_query($this->link, "UPDATE ttrss_user_entries SET note = '$note'
+ db_query("UPDATE ttrss_user_entries SET note = '$note'
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
$formatted_note = format_article_note($id, $note);
@@ -70,5 +68,9 @@ class Note extends Plugin {
"raw_length" => mb_strlen($note)));
}
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/nsfw/init.php b/plugins/nsfw/init.php
index 9aadde4dd..a57aa4456 100644
--- a/plugins/nsfw/init.php
+++ b/plugins/nsfw/init.php
@@ -1,7 +1,5 @@
<?php
class NSFW extends Plugin {
-
- private $link;
private $host;
function about() {
@@ -12,7 +10,6 @@ class NSFW extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_RENDER_ARTICLE, $this);
@@ -101,5 +98,9 @@ class NSFW extends Plugin {
echo __("Configuration saved.");
}
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/owncloud/init.php b/plugins/owncloud/init.php
deleted file mode 100644
index b846241b8..000000000
--- a/plugins/owncloud/init.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-require_once "config.php";
-
-class OwnCloud extends Plugin {
- private $link;
- private $host;
-
- function about() {
- return array(1.0,
- "Adds support for OwnCloud ReadLater",
- "cy8aer");
- }
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
- $host->add_hook($host::HOOK_PREFS_TAB, $this);
- }
-
- function save() {
- $owncloud_url = db_escape_string($_POST["owncloud_url"]);
- $this->host->set($this, "owncloud", $owncloud_url);
- echo "Value set to $owncloud_url";
- }
-
- function get_js() {
- return file_get_contents(dirname(__FILE__) . "/owncloud.js");
- }
-
- function hook_prefs_tab($args) {
- if ($args != "prefPrefs") return;
-
- print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__("Owncloud")."\">";
-
- print "<br/>";
-
- $value = $this->host->get($this, "owncloud");
- print "<form dojoType=\"dijit.form.Form\">";
-
- print "<script type=\"dojo/method\" event=\"onSubmit\" args=\"evt\">
- evt.preventDefault();
- if (this.validate()) {
- console.log(dojo.objectToQuery(this.getValues()));
- new Ajax.Request('backend.php', {
- parameters: dojo.objectToQuery(this.getValues()),
- onComplete: function(transport) {
- notify_info(transport.responseText);
- }
- });
- }
- </script>";
-
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pluginhandler\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"save\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"plugin\" value=\"owncloud\">";
- print "<table width=\"100%\" class=\"prefPrefsList\">";
- print "<tr><td width=\"40%\">".__("Owncloud url")."</td>";
- print "<td class=\"prefValue\"><input dojoType=\"dijit.form.ValidationTextBox\" required=\"1\" name=\"owncloud_url\" regExp='^(http|https)://.*' value=\"$value\"></td></tr>";
- print "</table>";
- print "<p><button dojoType=\"dijit.form.Button\" type=\"submit\">".__("Save")."</button>";
-
- print "</form>";
-
- print "</div>"; #pane
-
- }
-
- function hook_article_button($line) {
- return "<img src=\"".theme_image($this->link, "plugins/owncloud/owncloud.png")."\"
- style=\"cursor : pointer\" style=\"cursor : pointer\"
- onclick=\"ownArticle(".$line["id"].")\"
- class='tagsPic' title='".__('Bookmark on OwnCloud ')."'>";
- }
-
- function getOwnCloud() {
- $id = db_escape_string($_REQUEST['id']);
-
- $result = db_query($this->link, "SELECT title, link
- FROM ttrss_entries, ttrss_user_entries
- WHERE id = '$id' AND ref_id = id AND owner_uid = " .$_SESSION['uid']);
-
- if (db_num_rows($result) != 0) {
- $title = truncate_string(strip_tags(db_fetch_result($result, 0, 'title')),
- 100, '...');
- $article_link = db_fetch_result($result, 0, 'link');
- }
-
- $own_url = $this->host->get($this, "owncloud");
-
- print json_encode(array("title" => $title, "link" => $article_link,
- "id" => $id, "ownurl" => $own_url));
- }
-}
-?>
diff --git a/plugins/owncloud/owncloud.js b/plugins/owncloud/owncloud.js
deleted file mode 100644
index 6e971030b..000000000
--- a/plugins/owncloud/owncloud.js
+++ /dev/null
@@ -1,26 +0,0 @@
-function ownArticle(id) {
- try {
- var query = "?op=pluginhandler&plugin=owncloud&method=getOwnCloud&id=" + param_escape(id);
-
- console.log(query);
-
- var d = new Date();
- var ts = d.getTime();
-
- var w = window.open('backend.php?op=backend&method=loading', 'ttrss_tweet',
- "status=0,toolbar=0,location=0,width=600,height=500,scrollbars=1,menubar=0");
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- var ti = JSON.parse(transport.responseText);
-
- var share_url = ti.ownurl + "?app=bookmarks&getfile=addBm.php?output=popup&url=" + param_escape(ti.link);
-
- w.location.href = share_url;
- } });
- } catch (e) {
- exception_error("ownArticle", e);
- }
-}
-
diff --git a/plugins/owncloud/owncloud.png b/plugins/owncloud/owncloud.png
deleted file mode 100644
index d31ba924b..000000000
--- a/plugins/owncloud/owncloud.png
+++ /dev/null
Binary files differ
diff --git a/plugins/pinterest/init.php b/plugins/pinterest/init.php
deleted file mode 100644
index aef9d8511..000000000
--- a/plugins/pinterest/init.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-class Pinterest extends Plugin {
- private $link;
- private $host;
-
- function about() {
- return array(1.0,
- "Share article on Pinterest",
- "?");
- }
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
- }
-
- function get_js() {
- return file_get_contents(dirname(__FILE__) . "/pinterest.js");
- }
-
- function hook_article_button($line) {
- $article_id = $line["id"];
-
- $rv = "<img src=\"".theme_image($this->link, 'plugins/pinterest/pinterest.png')."\"
- class='tagsPic' style=\"cursor : pointer\"
- onclick=\"pinterest($article_id)\"
- title='".__('Pinterest')."'>";
-
- return $rv;
- }
-
- function getInfo() {
- $id = db_escape_string($_REQUEST['id']);
-
- $result = db_query($this->link, "SELECT title, link
- FROM ttrss_entries, ttrss_user_entries
- WHERE id = '$id' AND ref_id = id AND owner_uid = " .$_SESSION['uid']);
-
- if (db_num_rows($result) != 0) {
- $title = truncate_string(strip_tags(db_fetch_result($result, 0, 'title')),
- 100, '...');
- $article_link = db_fetch_result($result, 0, 'link');
- }
-
- print json_encode(array("title" => $title, "link" => $article_link,
- "id" => $id));
- }
-
-
-}
-?>
diff --git a/plugins/pinterest/pinterest.js b/plugins/pinterest/pinterest.js
deleted file mode 100644
index 01c525f55..000000000
--- a/plugins/pinterest/pinterest.js
+++ /dev/null
@@ -1,31 +0,0 @@
- function pinterest(id) {
- try {
- var query = "?op=pluginhandler&plugin=pinterest&method=getInfo&id=" + param_escape(id);
-
- console.log(query);
-
- var d = new Date();
- var ts = d.getTime();
-
- var w = window.open('backend.php?op=backend&method=loading', 'ttrss_tweet',
- "status=0,toolbar=0,location=0,width=650,height=600,scrollbars=1,menubar=0");
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- var ti = JSON.parse(transport.responseText);
-
- var share_url = "http://pinterest.com/pin/create/button/?" +
- "url=" + param_escape(ti.link) +
- "&description=" + param_escape(ti.title);
-
- w.location.href = share_url;
-
- } });
-
-
- } catch (e) {
- exception_error("tweetArticle", e);
- }
- }
-
diff --git a/plugins/pinterest/pinterest.png b/plugins/pinterest/pinterest.png
deleted file mode 100644
index b85aed3cd..000000000
--- a/plugins/pinterest/pinterest.png
+++ /dev/null
Binary files differ
diff --git a/plugins/pocket/init.php b/plugins/pocket/init.php
deleted file mode 100644
index 3fc51dd91..000000000
--- a/plugins/pocket/init.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-class Pocket extends Plugin {
-
- private $link;
- private $host;
-
- function about() {
- return array(1.0,
- "Share article on Pocket (formerly Read It Later)",
- "?");
- }
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
- }
-
- function get_js() {
- return file_get_contents(dirname(__FILE__) . "/pocket.js");
- }
-
- function hook_article_button($line) {
- $article_id = $line["id"];
-
- $rv = "<img src=\"".theme_image($this->link, 'plugins/pocket/pocket.png')."\"
- class='tagsPic' style=\"cursor : pointer\"
- onclick=\"shareArticleToPocket($article_id)\"
- title='".__('Pocket')."'>";
-
- return $rv;
- }
-
- function getInfo() {
- $id = db_escape_string($_REQUEST['id']);
-
- $result = db_query($this->link, "SELECT title, link
- FROM ttrss_entries, ttrss_user_entries
- WHERE id = '$id' AND ref_id = id AND owner_uid = " .$_SESSION['uid']);
-
- if (db_num_rows($result) != 0) {
- $title = truncate_string(strip_tags(db_fetch_result($result, 0, 'title')),
- 100, '...');
- $article_link = db_fetch_result($result, 0, 'link');
- }
-
- print json_encode(array("title" => $title, "link" => $article_link,
- "id" => $id));
- }
-
-
-}
-?>
diff --git a/plugins/pocket/pocket.js b/plugins/pocket/pocket.js
deleted file mode 100644
index 021d5bb05..000000000
--- a/plugins/pocket/pocket.js
+++ /dev/null
@@ -1,31 +0,0 @@
- function shareArticleToPocket(id) {
- try {
- var query = "?op=pluginhandler&plugin=pocket&method=getInfo&id=" + param_escape(id);
-
- console.log(query);
-
- var d = new Date();
- var ts = d.getTime();
-
- var w = window.open('backend.php?op=backend&method=loading', 'ttrss_tweet',
- "status=0,toolbar=0,location=0,width=500,height=400,scrollbars=1,menubar=0");
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- var ti = JSON.parse(transport.responseText);
-
- var share_url = "https://getpocket.com/save?" +
- "&title=" + param_escape(ti.title) +
- "&url=" + param_escape(ti.link);
-
- w.location.href = share_url;
-
- } });
-
-
- } catch (e) {
- exception_error("tweetArticle", e);
- }
- }
-
diff --git a/plugins/pocket/pocket.png b/plugins/pocket/pocket.png
deleted file mode 100644
index ff6bc85a4..000000000
--- a/plugins/pocket/pocket.png
+++ /dev/null
Binary files differ
diff --git a/plugins/share/init.php b/plugins/share/init.php
index e1151849b..72a4d4bf9 100644
--- a/plugins/share/init.php
+++ b/plugins/share/init.php
@@ -1,6 +1,5 @@
<?php
class Share extends Plugin {
- private $link;
private $host;
function about() {
@@ -10,7 +9,6 @@ class Share extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
@@ -21,7 +19,7 @@ class Share extends Plugin {
}
function hook_article_button($line) {
- return "<img src=\"".theme_image($this->link, 'plugins/share/share.png')."\"
+ return "<img src=\"plugins/share/share.png\"
class='tagsPic' style=\"cursor : pointer\"
onclick=\"shareArticle(".$line['int_id'].")\"
title='".__('Share by URL')."'>";
@@ -30,7 +28,7 @@ class Share extends Plugin {
function shareArticle() {
$param = db_escape_string($_REQUEST['param']);
- $result = db_query($this->link, "SELECT uuid, ref_id FROM ttrss_user_entries WHERE int_id = '$param'
+ $result = db_query("SELECT uuid, ref_id FROM ttrss_user_entries WHERE int_id = '$param'
AND owner_uid = " . $_SESSION['uid']);
if (db_num_rows($result) == 0) {
@@ -42,11 +40,11 @@ class Share extends Plugin {
if (!$uuid) {
$uuid = db_escape_string(sha1(uniqid(rand(), true)));
- db_query($this->link, "UPDATE ttrss_user_entries SET uuid = '$uuid' WHERE int_id = '$param'
+ db_query("UPDATE ttrss_user_entries SET uuid = '$uuid' WHERE int_id = '$param'
AND owner_uid = " . $_SESSION['uid']);
}
- print __("You can share this article by the following unique URL:");
+ print "<h2>". __("You can share this article by the following unique URL:") . "</h2>";
$url_path = get_self_url_prefix();
$url_path .= "/public.php?op=share&key=$uuid";
@@ -55,10 +53,10 @@ class Share extends Plugin {
print "<a id='pub_opml_url' href='$url_path' target='_blank'>$url_path</a>";
print "</div>";
- /* if (!label_find_id($this->link, __('Shared'), $_SESSION["uid"]))
- label_create($this->link, __('Shared'), $_SESSION["uid"]);
+ /* if (!label_find_id(__('Shared'), $_SESSION["uid"]))
+ label_create(__('Shared'), $_SESSION["uid"]);
- label_add_article($this->link, $ref_id, __('Shared'), $_SESSION['uid']); */
+ label_add_article($ref_id, __('Shared'), $_SESSION['uid']); */
}
print "<div align='center'>";
@@ -69,6 +67,9 @@ class Share extends Plugin {
print "</div>";
}
+ function api_version() {
+ return 2;
+ }
}
?>
diff --git a/plugins/swap_jk/init.php b/plugins/swap_jk/init.php
index 34b09bd77..e60e7201f 100644
--- a/plugins/swap_jk/init.php
+++ b/plugins/swap_jk/init.php
@@ -1,7 +1,6 @@
<?php
class Swap_JK extends Plugin {
- private $link;
private $host;
function about() {
@@ -11,7 +10,6 @@ class Swap_JK extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_HOTKEY_MAP, $this);
@@ -23,7 +21,11 @@ class Swap_JK extends Plugin {
$hotkeys["k"] = "prev_feed";
return $hotkeys;
+ }
+ function api_version() {
+ return 2;
}
+
}
?>
diff --git a/plugins/tweet/init.php b/plugins/tweet/init.php
deleted file mode 100644
index e7f8ce949..000000000
--- a/plugins/tweet/init.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-class Tweet extends Plugin {
- private $link;
- private $host;
-
- function init($host) {
- $this->link = $host->get_link();
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
- }
-
- function about() {
- return array(1.0,
- "Share article on Twitter",
- "fox");
- }
-
- function get_js() {
- return file_get_contents(dirname(__FILE__) . "/tweet.js");
- }
-
- function hook_article_button($line) {
- $article_id = $line["id"];
-
- $rv = "<img src=\"".theme_image($this->link, 'plugins/tweet/tweet.png')."\"
- class='tagsPic' style=\"cursor : pointer\"
- onclick=\"tweetArticle($article_id)\"
- title='".__('Share on Twitter')."'>";
-
- return $rv;
- }
-
- function getInfo() {
- $id = db_escape_string($_REQUEST['id']);
-
- $result = db_query($this->link, "SELECT title, link
- FROM ttrss_entries, ttrss_user_entries
- WHERE id = '$id' AND ref_id = id AND owner_uid = " .$_SESSION['uid']);
-
- if (db_num_rows($result) != 0) {
- $title = truncate_string(strip_tags(db_fetch_result($result, 0, 'title')),
- 100, '...');
- $article_link = db_fetch_result($result, 0, 'link');
- }
-
- print json_encode(array("title" => $title, "link" => $article_link,
- "id" => $id));
- }
-
-
-}
-?>
diff --git a/plugins/tweet/tweet.js b/plugins/tweet/tweet.js
deleted file mode 100644
index 07e89d5f8..000000000
--- a/plugins/tweet/tweet.js
+++ /dev/null
@@ -1,31 +0,0 @@
- function tweetArticle(id) {
- try {
- var query = "?op=pluginhandler&plugin=tweet&method=getInfo&id=" + param_escape(id);
-
- console.log(query);
-
- var d = new Date();
- var ts = d.getTime();
-
- var w = window.open('backend.php?op=backend&method=loading', 'ttrss_tweet',
- "status=0,toolbar=0,location=0,width=500,height=400,scrollbars=1,menubar=0");
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- var ti = JSON.parse(transport.responseText);
-
- var share_url = "http://twitter.com/share?_=" + ts +
- "&text=" + param_escape(ti.title) +
- "&url=" + param_escape(ti.link);
-
- w.location.href = share_url;
-
- } });
-
-
- } catch (e) {
- exception_error("tweetArticle", e);
- }
- }
-
diff --git a/plugins/tweet/tweet.png b/plugins/tweet/tweet.png
deleted file mode 100644
index ad3c177a2..000000000
--- a/plugins/tweet/tweet.png
+++ /dev/null
Binary files differ
diff --git a/plugins/updater/init.php b/plugins/updater/init.php
index d940aefeb..fa283c8be 100644
--- a/plugins/updater/init.php
+++ b/plugins/updater/init.php
@@ -1,7 +1,6 @@
<?php
class Updater extends Plugin {
- private $link;
private $host;
function about() {
@@ -12,7 +11,6 @@ class Updater extends Plugin {
}
function init($host) {
- $this->link = $host->get_link();
$this->host = $host;
$host->add_hook($host::HOOK_PREFS_TAB, $this);
@@ -22,7 +20,7 @@ class Updater extends Plugin {
$this);
}
- function update_self_step($link, $step, $params, $force = false) {
+ function update_self_step($step, $params, $force = false) {
// __FILE__ is in plugins/updater so we need to go one level up
$work_dir = dirname(dirname(dirname(__FILE__)));
$parent_dir = dirname($work_dir);
@@ -42,7 +40,7 @@ class Updater extends Plugin {
case 0:
array_push($log, "Work directory: $work_dir");
- if (!is_writable($work_dir) && !is_writable("$parent_dir")) {
+ if (!is_writable($work_dir) || !is_writable("$parent_dir")) {
$user = posix_getpwuid(posix_geteuid());
$user = $user["name"];
array_push($log, "Both tt-rss and parent directories should be writable as current user ($user).");
@@ -59,6 +57,10 @@ class Updater extends Plugin {
$stop = true; break;
}
+ // bah, also humbug
+ putenv("PATH=" . getenv("PATH") . PATH_SEPARATOR . "/bin" .
+ PATH_SEPARATOR . "/usr/bin");
+
array_push($log, "Checking for tar...");
$system_rc = 0;
@@ -79,7 +81,6 @@ class Updater extends Plugin {
$stop = true; break;
}
-
array_push($log, "Checking for latest version...");
$version_info = json_decode(fetch_file_contents("http://tt-rss.org/version.php"),
@@ -91,7 +92,7 @@ class Updater extends Plugin {
}
$target_version = $version_info["version"];
- $target_dir = "$parent_dir/tt-rss-$target_version";
+ $target_dir = "$parent_dir/Tiny-Tiny-RSS-$target_version";
array_push($log, "Target version: $target_version");
$params["target_version"] = $target_version;
@@ -110,7 +111,7 @@ class Updater extends Plugin {
case 1:
$target_version = $params["target_version"];
- array_push($log, "Downloading checksums...");
+/* array_push($log, "Downloading checksums...");
$md5sum_data = fetch_file_contents("http://tt-rss.org/download/md5sum.txt");
if (!$md5sum_data) {
@@ -134,16 +135,18 @@ class Updater extends Plugin {
$stop = true; break;
}
- $params["target_md5sum"] = $target_md5sum;
+ $params["target_md5sum"] = $target_md5sum; */
+
+ array_push($log, "Proceeding to download...");
break;
case 2:
$target_version = $params["target_version"];
- $target_md5sum = $params["target_md5sum"];
+ // $target_md5sum = $params["target_md5sum"];
array_push($log, "Downloading distribution tarball...");
- $tarball_url = "http://tt-rss.org/download/tt-rss-$target_version.tar.gz";
+ $tarball_url = "https://github.com/gothfox/Tiny-Tiny-RSS/archive/$target_version.tar.gz";
$data = fetch_file_contents($tarball_url);
if (!$data) {
@@ -151,14 +154,14 @@ class Updater extends Plugin {
$stop = true; break;
}
- array_push($log, "Verifying tarball checksum...");
+ /* array_push($log, "Verifying tarball checksum...");
$test_md5sum = md5($data);
if ($test_md5sum != $target_md5sum) {
array_push($log, "Downloaded checksum doesn't match (got $test_md5sum, expected $target_md5sum).");
$stop = true; break;
- }
+ } */
$tmp_file = tempnam(sys_get_temp_dir(), 'tt-rss');
array_push($log, "Saving download to $tmp_file");
@@ -180,14 +183,6 @@ class Updater extends Plugin {
$stop = true; break;
}
- $old_dir = tmpdirname($parent_dir, "tt-rss-old");
-
- array_push($log, "Renaming tt-rss directory to ".basename($old_dir));
- if (!rename($work_dir, $old_dir)) {
- array_push($log, "Unable to rename tt-rss directory.");
- $stop = true; break;
- }
-
array_push($log, "Extracting tarball...");
system("tar zxf $tmp_file", $system_rc);
@@ -196,7 +191,20 @@ class Updater extends Plugin {
$stop = true; break;
}
- $target_dir = "$parent_dir/tt-rss-$target_version";
+ $target_dir = "$parent_dir/Tiny-Tiny-RSS-$target_version";
+
+ if (!is_dir($target_dir)) {
+ array_push($log, "Target directory ($target_dir) not found.");
+ $stop = true; break;
+ }
+
+ $old_dir = tmpdirname($parent_dir, "tt-rss-old");
+
+ array_push($log, "Renaming tt-rss directory to ".basename($old_dir));
+ if (!rename($work_dir, $old_dir)) {
+ array_push($log, "Unable to rename tt-rss directory.");
+ $stop = true; break;
+ }
array_push($log, "Renaming target directory...");
if (!rename($target_dir, $work_dir)) {
@@ -224,6 +232,7 @@ class Updater extends Plugin {
CACHE_DIR,
CACHE_DIR . "/export",
CACHE_DIR . "/images",
+ CACHE_DIR . "/js",
CACHE_DIR . "/simplepie",
ICONS_DIR,
LOCK_DIRECTORY);
@@ -233,6 +242,26 @@ class Updater extends Plugin {
chmod($dir, 0777);
}
+ if (ICONS_DIR == "feed-icons") {
+ array_push($log, "Migrating feed icons...");
+
+ $icons = glob("$old_dir/feed-icons/*.ico");
+ $icons_copied = 0;
+
+ foreach ($icons as $icon) {
+ $icon = basename($icon);
+
+ if (copy("$old_dir/feed-icons/$icon", "$work_dir/feed-icons/$icon")) {
+ ++$icons_copied;
+ }
+ }
+
+ array_push($log, "Done; $icons_copied files copied");
+
+ } else {
+ array_push($log, "Not migrating feed icons, ICONS_DIR modified.");
+ }
+
array_push($log, "Upgrade completed.");
array_push($log, "Your old tt-rss directory is saved at $old_dir. ".
"Please migrate locally modified files (if any) and remove it.");
@@ -248,13 +277,13 @@ class Updater extends Plugin {
return array("step" => $step, "stop" => $stop, "params" => $params, "log" => $log);
}
- function update_self_cli($link, $force = false) {
+ function update_self_cli($force = false) {
$step = 0;
$stop = false;
$params = array();
while (!$stop) {
- $rc = $this->update_self_step($link, $step, $params, $force);
+ $rc = $this->update_self_step($step, $params, $force);
$params = $rc['params'];
$stop = $rc['stop'];
@@ -267,14 +296,18 @@ class Updater extends Plugin {
}
function update_self($args) {
- _debug("Warning: self-updating is experimental. Use at your own risk.");
- _debug("Please backup your tt-rss directory before continuing. Your database will not be modified.");
+ _debug("READ THE FOLLOWING BEFORE CONTINUING!");
+ _debug("* It is suggested to backup your tt-rss directory first.");
+ _debug("* Your database will not be modified.");
+ _debug("* Your current tt-rss installation directory will not be modified. It will be renamed and left in the parent directory. You will be able to migrate all your customized files after update finishes.");
_debug("Type 'yes' to continue.");
- if (read_stdin() != 'yes')
+ $input = read_stdin();
+
+ if ($input != 'yes' && $input != 'force')
exit;
- $this->update_self_cli($link, in_array("-force", $args));
+ $this->update_self_cli($input == 'force');
}
function get_prefs_js() {
@@ -288,15 +321,20 @@ class Updater extends Plugin {
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Update Tiny Tiny RSS')."\">";
if ($_SESSION["pref_last_version_check"] + 86400 + rand(-1000, 1000) < time()) {
- $_SESSION["version_data"] = @check_for_update($this->link);
+ $_SESSION["version_data"] = @check_for_update();
$_SESSION["pref_last_version_check"] = time();
}
if (is_array($_SESSION["version_data"])) {
$version = $_SESSION["version_data"]["version"];
+ $version_id = $_SESSION["version_data"]["version_id"];
print_notice(T_sprintf("New version of Tiny Tiny RSS is available (%s).", "<b>$version</b>"));
- print "<p><button dojoType=\"dijit.form.Button\" onclick=\"return updateSelf()\">".
+ $details = "http://tt-rss.org/redmine/versions/$version_id";
+
+ print "<p><button onclick=\"window.open('$details')\" dojoType=\"dijit.form.Button\">".__("See the release notes")."</button>";
+
+ print " <button dojoType=\"dijit.form.Button\" onclick=\"return updateSelf()\">".
__('Update Tiny Tiny RSS')."</button></p>";
} else {
@@ -308,11 +346,18 @@ class Updater extends Plugin {
}
function updateSelf() {
+ print_warning(__("Do not close this dialog until updating is finished."));
+
print "<form style='display : block' name='self_update_form' id='self_update_form'>";
- print "<div class='error'>".__("Do not close this dialog until updating is finished. Backup your tt-rss directory before continuing.")."</div>";
+ print "<style type='text/css'>
+ li.notice { font-style : italic; color : red; }
+ </style>";
print "<ul class='selfUpdateList' id='self_update_log'>";
+ print "<li class='notice'>" .__("It is suggested to backup your tt-rss directory first.") . "</li>";
+ print "<li class='notice'>" . __("Your database will not be modified.") . "</li>";
+ print "<li class='notice'>" . __("Your current tt-rss installation directory will not be modified. It will be renamed and left in the parent directory. You will be able to migrate all your customized files after update finishes.") . "</li>";
print "<li>" . __("Ready to update.") . "</li>";
print "</ul>";
@@ -331,9 +376,13 @@ class Updater extends Plugin {
$force = (bool) $_REQUEST["force"];
if (($_SESSION["access_level"] >= 10 || SINGLE_USER_MODE) && CHECK_FOR_NEW_VERSION) {
- print json_encode($this->update_self_step($this->link, $step, $params, $force));
+ print json_encode($this->update_self_step($step, $params, $force));
}
}
+ function api_version() {
+ return 2;
+ }
+
}
?>
diff --git a/plugins/updater/updater.js b/plugins/updater/updater.js
index 17452d734..4a1847372 100644
--- a/plugins/updater/updater.js
+++ b/plugins/updater/updater.js
@@ -16,7 +16,7 @@ function updateSelf() {
notify_progress("Loading, please wait...", true);
new Ajax.Request("backend.php", {
- parameters: "?op=pluginhandler&plugin=updater&method=performUpdate&step=" + step +
+ parameters: "op=pluginhandler&plugin=updater&method=performUpdate&step=" + step +
"&params=" + param_escape(JSON.stringify(dialog.attr("update-params"))),
onComplete: function(transport) {
try {
@@ -55,7 +55,7 @@ function updateSelf() {
}
},
start: function() {
- if (prompt(__("Live updating is considered experimental. Backup your tt-rss directory before continuing. Please type 'yes' to continue.")) == 'yes') {
+ if (prompt(__("Backup your tt-rss directory before continuing. Please type 'yes' to continue.")) == 'yes') {
dialog.performUpdate(0);
}
},
diff --git a/prefs.css b/prefs.css
new file mode 100644
index 000000000..872032666
--- /dev/null
+++ b/prefs.css
@@ -0,0 +1,125 @@
+#header a:hover {
+ color : black;
+}
+
+#header img {
+ vertical-align : middle;
+ cursor : pointer;
+}
+
+
+div#pref-tabs .dijitContentPane {
+ font-size : 13px;
+}
+
+div#pref-tabs {
+ margin : 0px 5px 0px 5px;
+}
+
+div#pref-tabs .dijitContentPane h3 {
+ font-size : 14px;
+ font-weight : bold;
+}
+
+#pref-filter-wrap, #pref-filter-header, #pref-filter-content,
+#pref-label-wrap, #pref-label-header, #pref-label-content,
+#pref-user-wrap, #pref-user-header, #pref-user-content,
+#pref-instance-wrap, #pref-instance-header, #pref-instance-content {
+ margin : 0px;
+ padding : 0px;
+ border-width : 0px;
+}
+
+#userConfigTab, #labelConfigTab, #filterConfigTab, #pref-feeds-feeds, #instanceConfigTab {
+ padding : 0px;
+}
+
+/* preferences */
+
+table.prefPrefsList h3 {
+ margin-top : 0.5em;
+ margin-bottom : 0px;
+}
+
+tr.title td {
+ border-width : 0px 0px 1px 0px;
+ border-color : #ecf4ff;
+ border-style : solid;
+ color : #4684ff;
+}
+
+div.prefProfileHolder, div.prefFeedOPMLHolder, div.inactiveFeedHolder {
+ height : 300px;
+ overflow : auto;
+ border-width : 0px 1px 1px 1px;
+ border-color : #c0c0c0;
+ border-style : solid;
+ margin : 0px 0px 5px 0px;
+ background-color : #ecf4ff;
+}
+div.filterTestHolder, div.prefFeedOPMLHolder {
+ border-width : 1px;
+}
+
+ul.selfUpdateList {
+ height : 200px;
+ overflow : auto;
+ list-style-type : none;
+ border : 1px solid #c0c0c0;
+ background-color : #ecf4ff;
+ margin : 0px 0px 5px 0px;
+ padding : 5px;
+}
+
+div#feedlistLoading, div#filterlistLoading, div#labellistLoading {
+ text-align : center;
+ padding : 5px;
+ color : #555;
+}
+
+div#feedlistLoading img, div#filterlistLoading img, div#labellistLoading {
+ margin-right : 5px;
+}
+
+#errorButton {
+ color : red;
+}
+
+a.bookmarklet {
+ color : #4684ff;
+ border : 1px solid #ecf4ff;
+ padding : 2px;
+}
+
+table.prefPluginsList td label, table.prefUserList td {
+ cursor : pointer;
+}
+
+ul.userFeedList {
+ height : 300px;
+ overflow : auto;
+ list-style-type : none;
+ border : 1px solid #555;
+ background-color : white;
+ margin : 0px 0px 5px 0px;
+ padding : 0px;
+}
+
+table.prefErrorLog tr.errrow td {
+ font-size : 10px;
+}
+
+table.prefErrorLog tr.errrow td.errno {
+ font-style : italic;
+ font-weight : bold;
+ white-space : nowrap;
+}
+
+table.prefErrorLog td.filename, table.prefErrorLog td.login, table.prefErrorLog td.timestamp {
+ color : #555;
+}
+
+.dijitAccordionContainer-child {
+ box-shadow : inset 0px 0px 3px rgba(0,0,0,0.2);
+}
+
diff --git a/prefs.php b/prefs.php
index 6c1091843..93b7cbb78 100644
--- a/prefs.php
+++ b/prefs.php
@@ -1,7 +1,18 @@
<?php
+ if (file_exists("install") && !file_exists("config.php")) {
+ header("Location: install/");
+ }
+
set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
get_include_path());
+ if (!file_exists("config.php")) {
+ print "<b>Fatal Error</b>: You forgot to copy
+ <b>config.php-dist</b> to <b>config.php</b> and edit it.\n";
+ exit;
+ }
+
+ require_once "autoload.php";
require_once "sessions.php";
require_once "functions.php";
require_once "sanity_check.php";
@@ -9,15 +20,9 @@
require_once "config.php";
require_once "db-prefs.php";
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- if (!init_connection($link)) return;
-
- login_sequence($link);
-
- $dt_add = time();
+ if (!init_plugins()) return;
- no_cache_incantation();
+ login_sequence();
header('Content-Type: text/html; charset=utf-8');
?>
@@ -26,41 +31,49 @@
<html>
<head>
<title>Tiny Tiny RSS : <?php echo __("Preferences") ?></title>
- <link rel="stylesheet" type="text/css" href="lib/dijit/themes/claro/claro.css"/>
- <link rel="stylesheet" type="text/css" href="tt-rss.css?<?php echo $dt_add ?>"/>
- <?php print_user_stylesheet($link) ?>
+ <?php stylesheet_tag("lib/dijit/themes/claro/claro.css"); ?>
+ <?php stylesheet_tag("tt-rss.css"); ?>
+ <?php stylesheet_tag("prefs.css"); ?>
+
+ <?php if ($_SESSION["uid"]) {
+ $theme = get_pref( "USER_CSS_THEME", $_SESSION["uid"], false);
+ if ($theme) {
+ stylesheet_tag("themes/$theme");
+ }
+ }
+ ?>
+
+ <?php print_user_stylesheet() ?>
<link rel="shortcut icon" type="image/png" href="images/favicon.png"/>
+ <link rel="icon" type="image/png" sizes="72x72" href="images/favicon-72px.png" />
- <script type="text/javascript" src="lib/prototype.js"></script>
- <script type="text/javascript" src="lib/position.js"></script>
- <script type="text/javascript" src="lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"></script>
- <script type="text/javascript" src="lib/dojo/dojo.js"></script>
- <script type="text/javascript" src="lib/dijit/dijit.js"></script>
- <script type="text/javascript" src="lib/dojo/tt-rss-layer.js"></script>
+ <?php
+ foreach (array("lib/prototype.js",
+ "lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls",
+ "lib/dojo/dojo.js",
+ "lib/dojo/tt-rss-layer.js",
+ "errors.php?mode=js") as $jsfile) {
+
+ javascript_tag($jsfile);
- <script type="text/javascript" charset="utf-8" src="localized_js.php?<?php echo $dt_add ?>"></script>
+ } ?>
<script type="text/javascript">
+ require({cache:{}});
<?php
- require 'lib/jsmin.php';
+ require 'lib/jshrink/Minifier.php';
- global $pluginhost;
-
- foreach ($pluginhost->get_plugins() as $n => $p) {
+ foreach (PluginHost::getInstance()->get_plugins() as $n => $p) {
if (method_exists($p, "get_prefs_js")) {
- echo JSMin::minify($p->get_prefs_js());
+ echo JShrink\Minifier::minify($p->get_prefs_js());
}
}
- foreach (array("functions", "deprecated", "prefs") as $js) {
- if (!isset($_GET['debug'])) {
- echo JSMin::minify(file_get_contents("js/$js.js"));
- } else {
- echo file_get_contents("js/$js.js");
- }
- }
+ print get_minified_js(array("../lib/CheckBoxTree","functions", "deprecated", "prefs", "PrefFeedTree", "PrefFilterTree", "PrefLabelTree"));
+
+ init_js_translations();
?>
</script>
@@ -76,7 +89,7 @@
<body id="ttrssPrefs" class="claro">
-<div id="notify" class="notify"><span id="notify_body">&nbsp;</span></div>
+<div id="notify" class="notify" style="display : none"></div>
<div id="cmdline" style="display : none"></div>
<div id="overlay">
@@ -89,8 +102,6 @@
</div>
</div>
-<img id="piggie" src="images/piggie.png" style="display : none" alt="piggie"/>
-
<div id="header" dojoType="dijit.layout.ContentPane" region="top">
<!-- <a href='#' onclick="showHelp()"><?php echo __("Keyboard shortcuts") ?></a> | -->
<a href="#" onclick="gotoMain()"><?php echo __('Exit preferences') ?></a>
@@ -115,23 +126,28 @@
<div id="userConfigTab" dojoType="dijit.layout.ContentPane"
href="backend.php?op=pref-users"
title="<?php echo __('Users') ?>"></div>
+ <div id="systemConfigTab" dojoType="dijit.layout.ContentPane"
+ href="backend.php?op=pref-system"
+ title="<?php echo __('System') ?>"></div>
<?php } ?>
<?php
- $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TABS,
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TABS,
"hook_prefs_tabs", false);
?>
</div>
<div id="footer" dojoType="dijit.layout.ContentPane" region="bottom">
<a class="insensitive" target="_blank" href="http://tt-rss.org/">
- Tiny Tiny RSS</a> &copy; 2005-<?php echo date('Y') ?>
+ Tiny Tiny RSS</a>
+ <?php if (!defined('HIDE_VERSION')) { ?>
+ v<?php echo VERSION ?>
+ <?php } ?>
+ &copy; 2005-<?php echo date('Y') ?>
<a class="insensitive" target="_blank"
href="http://fakecake.org/">Andrew Dolgov</a>
</div> <!-- footer -->
</div>
-<?php db_close($link); ?>
-
</body>
</html>
diff --git a/public.php b/public.php
index dccd77f43..33f5af757 100644
--- a/public.php
+++ b/public.php
@@ -17,6 +17,7 @@
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
+ require_once "autoload.php";
require_once "sessions.php";
require_once "functions.php";
require_once "sanity_check.php";
@@ -24,15 +25,11 @@
require_once "db.php";
require_once "db-prefs.php";
- no_cache_incantation();
-
startup_gettext();
$script_started = microtime(true);
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- if (!init_connection($link)) return;
+ if (!init_plugins()) return;
if (ENABLE_GZIP_OUTPUT && function_exists("ob_gzhandler")) {
ob_start("ob_gzhandler");
@@ -40,13 +37,12 @@
$method = $_REQUEST["op"];
- global $pluginhost;
- $override = $pluginhost->lookup_handler("public", $method);
+ $override = PluginHost::getInstance()->lookup_handler("public", $method);
if ($override) {
$handler = $override;
} else {
- $handler = new Handler_Public($link, $_REQUEST);
+ $handler = new Handler_Public($_REQUEST);
}
if (implements_interface($handler, "IHandler") && $handler->before($method)) {
@@ -62,6 +58,4 @@
header("Content-Type: text/plain");
print json_encode(array("error" => array("code" => 7)));
- // We close the connection to database.
- db_close($link);
?>
diff --git a/register.php b/register.php
index b0c9bd95f..5bc6563b0 100644
--- a/register.php
+++ b/register.php
@@ -7,8 +7,8 @@
set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
get_include_path());
- require_once 'lib/phpmailer/class.phpmailer.php';
-
+ require_once 'classes/ttrssmailer.php';
+ require_once "autoload.php";
require_once "functions.php";
require_once "sessions.php";
require_once "sanity_check.php";
@@ -17,9 +17,7 @@
$action = $_REQUEST["action"];
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- if (!init_connection($link)) return;
+ if (!init_plugins()) return;
if ($_REQUEST["format"] == "feed") {
header("Content-Type: text/xml");
@@ -32,7 +30,7 @@
<link rel=\"alternate\" href=\"".htmlspecialchars(SELF_URL_PATH)."\"/>";
if (ENABLE_REGISTRATION) {
- $result = db_query($link, "SELECT COUNT(*) AS cu FROM ttrss_users");
+ $result = db_query( "SELECT COUNT(*) AS cu FROM ttrss_users");
$num_users = db_fetch_result($result, 0, "cu");
$num_users = REG_MAX_USERS - $num_users;
@@ -60,10 +58,10 @@
/* Remove users which didn't login after receiving their registration information */
if (DB_TYPE == "pgsql") {
- db_query($link, "DELETE FROM ttrss_users WHERE last_login IS NULL
+ db_query( "DELETE FROM ttrss_users WHERE last_login IS NULL
AND created < NOW() - INTERVAL '1 day' AND access_level = 0");
} else {
- db_query($link, "DELETE FROM ttrss_users WHERE last_login IS NULL
+ db_query( "DELETE FROM ttrss_users WHERE last_login IS NULL
AND created < DATE_SUB(NOW(), INTERVAL 1 DAY) AND access_level = 0");
}
@@ -74,9 +72,9 @@
if ($action == "check") {
header("Content-Type: application/xml");
- $login = trim(db_escape_string($_REQUEST['login']));
+ $login = trim(db_escape_string( $_REQUEST['login']));
- $result = db_query($link, "SELECT id FROM ttrss_users WHERE
+ $result = db_query( "SELECT id FROM ttrss_users WHERE
LOWER(login) = LOWER('$login')");
$is_registered = db_num_rows($result) > 0;
@@ -181,10 +179,12 @@
<body>
-<div class="floatingLogo"><img src="images/logo_wide.png"></div>
+<div class="floatingLogo"><img src="images/logo_small.png"></div>
<h1><?php echo __("Create new account") ?></h1>
+<div class="content">
+
<?php
if (!ENABLE_REGISTRATION) {
print_error(__("New user registrations are administratively disabled."));
@@ -198,7 +198,7 @@
?>
<?php if (REG_MAX_USERS > 0) {
- $result = db_query($link, "SELECT COUNT(*) AS cu FROM ttrss_users");
+ $result = db_query( "SELECT COUNT(*) AS cu FROM ttrss_users");
$num_users = db_fetch_result($result, 0, "cu");
} ?>
@@ -219,15 +219,15 @@
<table>
<tr>
<td><?php echo __('Desired login:') ?></td><td>
- <input name="login">
+ <input name="login" required>
</td><td>
<input type="submit" value="<?php echo __('Check availability') ?>" onclick='return checkUsername()'>
</td></tr>
<tr><td><?php echo __('Email:') ?></td><td>
- <input name="email">
+ <input name="email" type="email" required>
</td></tr>
<tr><td><?php echo __('How much is two plus two:') ?></td><td>
- <input name="turing_test"></td></tr>
+ <input name="turing_test" required></td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="sub_btn" value="<?php echo __('Submit registration') ?>"
disabled="disabled" onclick='return validateRegForm()'>
@@ -242,9 +242,9 @@
<?php } else if ($action == "do_register") { ?>
<?php
- $login = mb_strtolower(trim(db_escape_string($_REQUEST["login"])));
- $email = trim(db_escape_string($_REQUEST["email"]));
- $test = trim(db_escape_string($_REQUEST["turing_test"]));
+ $login = mb_strtolower(trim(db_escape_string( $_REQUEST["login"])));
+ $email = trim(db_escape_string( $_REQUEST["email"]));
+ $test = trim(db_escape_string( $_REQUEST["turing_test"]));
if (!$login || !$email || !$test) {
print_error(__("Your registration information is incomplete."));
@@ -256,7 +256,7 @@
if ($test == "four" || $test == "4") {
- $result = db_query($link, "SELECT id FROM ttrss_users WHERE
+ $result = db_query( "SELECT id FROM ttrss_users WHERE
login = '$login'");
$is_registered = db_num_rows($result) > 0;
@@ -273,11 +273,11 @@
$salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
$pwd_hash = encrypt_password($password, $salt, true);
- db_query($link, "INSERT INTO ttrss_users
+ db_query( "INSERT INTO ttrss_users
(login,pwd_hash,access_level,last_login, email, created, salt)
VALUES ('$login', '$pwd_hash', 0, null, '$email', NOW(), '$salt')");
- $result = db_query($link, "SELECT id FROM ttrss_users WHERE
+ $result = db_query( "SELECT id FROM ttrss_users WHERE
login = '$login' AND pwd_hash = '$pwd_hash'");
if (db_num_rows($result) != 1) {
@@ -289,7 +289,7 @@
$new_uid = db_fetch_result($result, 0, "id");
- initialize_user($link, $new_uid);
+ initialize_user( $new_uid);
$reg_text = "Hi!\n".
"\n".
@@ -306,33 +306,15 @@
"\n".
"If that wasn't you, just ignore this message. Thanks.";
- $mail = new PHPMailer();
-
- $mail->PluginDir = "lib/phpmailer/";
- $mail->SetLanguage("en", "lib/phpmailer/language/");
-
- $mail->CharSet = "UTF-8";
-
- $mail->From = SMTP_FROM_ADDRESS;
- $mail->FromName = SMTP_FROM_NAME;
- $mail->AddAddress($email);
-
- if (SMTP_HOST) {
- $mail->Host = SMTP_HOST;
- $mail->Mailer = "smtp";
- $mail->Username = SMTP_LOGIN;
- $mail->Password = SMTP_PASSWORD;
- }
-
- // $mail->IsHTML(true);
- $mail->Subject = "Registration information for Tiny Tiny RSS";
- $mail->Body = $reg_text;
- // $mail->AltBody = $digest_text;
-
- $rc = $mail->Send();
+ $mail = new ttrssMailer();
+ $mail->IsHTML(false);
+ $rc = $mail->quickMail($email, "", "Registration information for Tiny Tiny RSS", $reg_text, false);
if (!$rc) print_error($mail->ErrorInfo);
+ unset($reg_text);
+ unset($mail);
+ unset($rc);
$reg_text = "Hi!\n".
"\n".
"New user had registered at your Tiny Tiny RSS installation.\n".
@@ -340,30 +322,11 @@
"Login: $login\n".
"Email: $email\n";
- $mail = new PHPMailer();
-
- $mail->PluginDir = "lib/phpmailer/";
- $mail->SetLanguage("en", "lib/phpmailer/language/");
-
- $mail->CharSet = "UTF-8";
- $mail->From = SMTP_FROM_ADDRESS;
- $mail->FromName = SMTP_FROM_NAME;
- $mail->AddAddress(REG_NOTIFY_ADDRESS);
-
- if (SMTP_HOST) {
- $mail->Host = SMTP_HOST;
- $mail->Mailer = "smtp";
- $mail->Username = SMTP_LOGIN;
- $mail->Password = SMTP_PASSWORD;
- }
-
- // $mail->IsHTML(true);
- $mail->Subject = "Registration notice for Tiny Tiny RSS";
- $mail->Body = $reg_text;
- // $mail->AltBody = $digest_text;
-
- $rc = $mail->Send();
+ $mail = new ttrssMailer();
+ $mail->IsHTML(false);
+ $rc = $mail->quickMail(REG_NOTIFY_ADDRESS, "", "Registration notice for Tiny Tiny RSS", $reg_text, false);
+ if (!$rc) print_error($mail->ErrorInfo);
print_notice(__("Account created successfully."));
@@ -395,6 +358,8 @@
<?php } ?>
+ </div>
+
</body>
</html>
diff --git a/schema/.htaccess b/schema/.htaccess
new file mode 100644
index 000000000..93169e4eb
--- /dev/null
+++ b/schema/.htaccess
@@ -0,0 +1,2 @@
+Order deny,allow
+Deny from all
diff --git a/schema/ttrss_schema_mysql.sql b/schema/ttrss_schema_mysql.sql
index bf02e7b1e..aa1197091 100644
--- a/schema/ttrss_schema_mysql.sql
+++ b/schema/ttrss_schema_mysql.sql
@@ -1,6 +1,7 @@
SET NAMES utf8;
SET CHARACTER SET utf8;
+drop table if exists ttrss_error_log;
drop table if exists ttrss_plugin_storage;
drop table if exists ttrss_linked_feeds;
drop table if exists ttrss_linked_instances;
@@ -13,7 +14,6 @@ drop table if exists ttrss_labels;
drop table if exists ttrss_filters2_actions;
drop table if exists ttrss_filters2_rules;
drop table if exists ttrss_filters2;
-drop table if exists ttrss_filters;
drop table if exists ttrss_filter_types;
drop table if exists ttrss_filter_actions;
drop table if exists ttrss_user_prefs;
@@ -63,6 +63,7 @@ create table ttrss_feed_categories(id integer not null primary key auto_incremen
collapsed bool not null default false,
order_id integer not null default 0,
parent_cat integer,
+ view_settings varchar(250) not null default '',
index(parent_cat),
foreign key (parent_cat) references ttrss_feed_categories(id) ON DELETE SET NULL,
index(owner_uid),
@@ -108,6 +109,7 @@ create table ttrss_feeds (id integer not null auto_increment primary key,
purge_interval integer not null default 0,
last_updated datetime default 0,
last_error varchar(250) not null default '',
+ favicon_avg_color varchar(11) default null,
site_url varchar(250) not null default '',
auth_login varchar(250) not null default '',
auth_pass varchar(250) not null default '',
@@ -117,6 +119,7 @@ create table ttrss_feeds (id integer not null auto_increment primary key,
hidden bool not null default false,
include_in_digest boolean not null default true,
cache_images boolean not null default false,
+ hide_images boolean not null default false,
cache_content boolean not null default false,
auth_pass_encrypted boolean not null default false,
last_viewed datetime default null,
@@ -127,6 +130,7 @@ create table ttrss_feeds (id integer not null auto_increment primary key,
mark_unread_on_update boolean not null default false,
update_on_checksum_change boolean not null default false,
strip_images boolean not null default false,
+ view_settings varchar(250) not null default '',
pubsub_state integer not null default 0,
favicon_last_checked datetime default null,
index(owner_uid),
@@ -179,6 +183,8 @@ create table ttrss_user_entries (
last_read datetime,
score int not null default 0,
note longtext,
+ last_marked datetime,
+ last_published datetime,
unread bool not null default 1,
index (ref_id),
foreign key (ref_id) references ttrss_entries(id) ON DELETE CASCADE,
@@ -244,39 +250,23 @@ insert into ttrss_filter_actions (id,name,description) values (6, 'score',
insert into ttrss_filter_actions (id,name,description) values (7, 'label',
'Assign label');
-create table ttrss_filters (id integer not null primary key auto_increment,
- owner_uid integer not null,
- feed_id integer default null,
- filter_type integer not null,
- reg_exp varchar(250) not null,
- filter_param varchar(250) not null default '',
- inverse bool not null default false,
- enabled bool not null default true,
- cat_filter bool not null default false,
- cat_id integer default null,
- action_id integer not null default 1,
- action_param varchar(250) not null default '',
- index (filter_type),
- foreign key (filter_type) references ttrss_filter_types(id) ON DELETE CASCADE,
- index (owner_uid),
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE,
- index (feed_id),
- foreign key (feed_id) references ttrss_feeds(id) ON DELETE CASCADE,
- index (cat_id),
- foreign key (cat_id) references ttrss_feed_categories(id) ON DELETE CASCADE,
- index (action_id),
- foreign key (action_id) references ttrss_filter_actions(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+insert into ttrss_filter_actions (id,name,description) values (8, 'stop',
+ 'Stop / Do nothing');
create table ttrss_filters2(id integer primary key auto_increment,
owner_uid integer not null,
match_any_rule boolean not null default false,
enabled boolean not null default true,
+ inverse bool not null default false,
+ title varchar(250) not null default '',
+ order_id integer not null default 0,
index(owner_uid),
foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
create table ttrss_filters2_rules(id integer primary key auto_increment,
filter_id integer not null references ttrss_filters2(id) on delete cascade,
reg_exp varchar(250) not null,
+ inverse bool not null default false,
filter_type integer not null,
feed_id integer default null,
cat_id integer default null,
@@ -310,7 +300,7 @@ create table ttrss_tags (id integer primary key auto_increment,
create table ttrss_version (schema_version int not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-insert into ttrss_version values (104);
+insert into ttrss_version values (120);
create table ttrss_enclosures (id integer primary key auto_increment,
content_url text not null,
@@ -337,19 +327,16 @@ insert into ttrss_prefs_types (id, type_name) values (2, 'string');
insert into ttrss_prefs_types (id, type_name) values (3, 'integer');
create table ttrss_prefs_sections (id integer not null primary key,
- order_id integer not null,
- section_name varchar(100) not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+ order_id integer not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-insert into ttrss_prefs_sections (id, section_name, order_id) values (1, 'General', 0);
-insert into ttrss_prefs_sections (id, section_name, order_id) values (2, 'Interface', 1);
-insert into ttrss_prefs_sections (id, section_name, order_id) values (3, 'Advanced', 3);
-insert into ttrss_prefs_sections (id, section_name, order_id) values (4, 'Digest', 2);
+insert into ttrss_prefs_sections (id, order_id) values (1, 0);
+insert into ttrss_prefs_sections (id, order_id) values (2, 1);
+insert into ttrss_prefs_sections (id, order_id) values (3, 3);
+insert into ttrss_prefs_sections (id, order_id) values (4, 2);
create table ttrss_prefs (pref_name varchar(250) not null primary key,
type_id integer not null,
section_id integer not null default 1,
- short_desc text not null,
- help_text varchar(250) not null default '',
access_level integer not null default 0,
def_value text not null,
index(type_id),
@@ -359,104 +346,58 @@ create table ttrss_prefs (pref_name varchar(250) not null primary key,
create index ttrss_prefs_pref_name_idx on ttrss_prefs(pref_name);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('PURGE_OLD_DAYS', 3, '60', 'Purge articles after this number of days (0 - disables)',1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DEFAULT_UPDATE_INTERVAL', 3, '30', 'Default interval between feed updates',1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DEFAULT_ARTICLE_LIMIT', 3, '30', 'Amount of articles to display at once',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('ALLOW_DUPLICATE_POSTS', 1, 'true', 'Allow duplicate posts',1, 'This option is useful when you are reading several planet-type aggregators with partially colliding userbase. When disabled, it forces same posts from different feeds to appear only once.');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_FEED_CATS', 1, 'true', 'Enable feed categories',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('SHOW_CONTENT_PREVIEW', 1, 'true', 'Show content preview in headlines list',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('SHORT_DATE_FORMAT', 2, 'M d, G:i', 'Short date format',3);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('LONG_DATE_FORMAT', 2, 'D, M d Y - G:i', 'Long date format',3);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('COMBINED_DISPLAY_MODE', 1, 'false', 'Combined feed display',2, 'Display expanded list of feed articles, instead of separate displays for headlines and article content');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('HIDE_READ_FEEDS', 1, 'false', 'Hide feeds with no unread messages',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('ON_CATCHUP_SHOW_NEXT_FEED', 1, 'false', 'On catchup show next feed',2, 'Automatically open next feed with unread articles after marking one as read');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('FEEDS_SORT_BY_UNREAD', 1, 'false', 'Sort feeds by unread articles count',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('REVERSE_HEADLINES', 1, 'false', 'Reverse headline order (oldest first)',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('DIGEST_ENABLE', 1, 'false', 'Enable e-mail digest',4, 'This option enables sending daily digest of new (and unread) headlines on your configured e-mail address');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CONFIRM_FEED_CATCHUP', 1, 'true', 'Confirm marking feed as read',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('CDM_AUTO_CATCHUP', 1, 'false', 'Automatically mark articles as read',2, 'This option enables marking articles as read automatically while you scroll article list.');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_VIEW_MODE', 2, 'adaptive', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_VIEW_LIMIT', 3, '30', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_PREFS_ACTIVE_TAB', 2, '', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('STRIP_UNSAFE_TAGS', 1, 'true', 'Strip unsafe tags from articles', 3, 'Strip all but most common HTML tags when reading articles.');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('BLACKLISTED_TAGS', 2, 'main, generic, misc, uncategorized, blog, blogroll, general, news', 'Blacklisted tags', 3, 'When auto-detecting tags in articles these tags will not be applied (comma-separated list).');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('FRESH_ARTICLE_MAX_AGE', 3, '24', 'Maximum age of fresh articles (in hours)',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DIGEST_CATCHUP', 1, 'false', 'Mark articles in e-mail digest as read',4);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CDM_EXPANDED', 1, 'true', 'Automatically expand articles in combined mode',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('PURGE_UNREAD_ARTICLES', 1, 'true', 'Purge unread articles',3);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('HIDE_READ_SHOWS_SPECIAL', 1, 'true', 'Show special feeds when hiding read feeds',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('VFEED_GROUP_BY_FEED', 1, 'false', 'Group headlines in virtual feeds',2, 'When this option is enabled, headlines in Special feeds and Labels are grouped by feeds');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('STRIP_IMAGES', 1, 'false', 'Hide images in articles', 2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_VIEW_ORDER_BY', 2, 'default', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_API_ACCESS', 1, 'false', 'Enable external API', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_COLLAPSED_SPECIAL', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_COLLAPSED_LABELS', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_COLLAPSED_UNCAT', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_COLLAPSED_FEEDLIST', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_ENABLE_CATS', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_SHOW_IMAGES', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_HIDE_READ', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_SORT_FEEDS_UNREAD', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_THEME_ID', 2, '0', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('USER_TIMEZONE', 2, 'UTC', 'User timezone', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('USER_STYLESHEET', 2, '', 'Customize stylesheet', 2, 'Customize CSS stylesheet to your liking');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'true', 'Sort headlines by feed date',2, 'Use feed-specified date to sort headlines instead of local import date.');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_BROWSE_CATS', 1, 'true', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SSL_CERT_SERIAL', 2, '', 'Login with an SSL certificate',3, 'Click to register your SSL client certificate with tt-rss');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('DIGEST_PREFERRED_TIME', 2, '00:00', 'Try to send digests around specified time', 4, 'Uses UTC timezone');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_PREFS_SHOW_EMPTY_CATS', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_INCLUDE_CHILDREN', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('AUTO_ASSIGN_LABELS', 1, 'true', 'Assign articles to labels automatically', 3);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_ENABLED_PLUGINS', 2, '', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_REVERSE_HEADLINES', 1, 'false', '', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('PURGE_OLD_DAYS', 3, '60', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('DEFAULT_UPDATE_INTERVAL', 3, '30', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('DEFAULT_ARTICLE_LIMIT', 3, '30', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('ALLOW_DUPLICATE_POSTS', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('ENABLE_FEED_CATS', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('SHOW_CONTENT_PREVIEW', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('SHORT_DATE_FORMAT', 2, 'M d, G:i', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('LONG_DATE_FORMAT', 2, 'D, M d Y - G:i', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('COMBINED_DISPLAY_MODE', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('HIDE_READ_FEEDS', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('ON_CATCHUP_SHOW_NEXT_FEED', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('FEEDS_SORT_BY_UNREAD', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('REVERSE_HEADLINES', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('DIGEST_ENABLE', 1, 'false', 4);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('CONFIRM_FEED_CATCHUP', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('CDM_AUTO_CATCHUP', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_DEFAULT_VIEW_MODE', 2, 'adaptive', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_DEFAULT_VIEW_LIMIT', 3, '30', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_PREFS_ACTIVE_TAB', 2, '', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('STRIP_UNSAFE_TAGS', 1, 'true', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('BLACKLISTED_TAGS', 2, 'main, generic, misc, uncategorized, blog, blogroll, general, news', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('FRESH_ARTICLE_MAX_AGE', 3, '24', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('DIGEST_CATCHUP', 1, 'false', 4);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('CDM_EXPANDED', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('PURGE_UNREAD_ARTICLES', 1, 'true', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('HIDE_READ_SHOWS_SPECIAL', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('VFEED_GROUP_BY_FEED', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('STRIP_IMAGES', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_DEFAULT_VIEW_ORDER_BY', 2, 'default', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('ENABLE_API_ACCESS', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_COLLAPSED_SPECIAL', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_COLLAPSED_LABELS', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_COLLAPSED_UNCAT', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_COLLAPSED_FEEDLIST', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_ENABLE_CATS', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_SHOW_IMAGES', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_HIDE_READ', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_SORT_FEEDS_UNREAD', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_THEME_ID', 2, '0', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('USER_TIMEZONE', 2, 'Automatic', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('USER_STYLESHEET', 2, '', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_BROWSE_CATS', 1, 'true', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('SSL_CERT_SERIAL', 2, '', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('DIGEST_PREFERRED_TIME', 2, '00:00', 4);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_PREFS_SHOW_EMPTY_CATS', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_DEFAULT_INCLUDE_CHILDREN', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('AUTO_ASSIGN_LABELS', 1, 'true', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_ENABLED_PLUGINS', 2, '', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_REVERSE_HEADLINES', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('USER_CSS_THEME', 2, '', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('USER_LANGUAGE', 2, '', 2);
update ttrss_prefs set access_level = 1 where pref_name in ('ON_CATCHUP_SHOW_NEXT_FEED',
'SORT_HEADLINES_BY_FEED_DATE',
@@ -539,5 +480,15 @@ create table ttrss_plugin_storage (
content longtext not null,
foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+create table ttrss_error_log(
+ id integer not null auto_increment primary key,
+ owner_uid integer,
+ errno integer not null,
+ errstr text not null,
+ filename text not null,
+ lineno integer not null,
+ context text not null,
+ created_at datetime not null,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE SET NULL) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
commit;
diff --git a/schema/ttrss_schema_pgsql.sql b/schema/ttrss_schema_pgsql.sql
index e19b8cbc6..79634678d 100644
--- a/schema/ttrss_schema_pgsql.sql
+++ b/schema/ttrss_schema_pgsql.sql
@@ -1,3 +1,4 @@
+drop table if exists ttrss_error_log;
drop table if exists ttrss_plugin_storage;
drop table if exists ttrss_linked_feeds;
drop table if exists ttrss_linked_instances;
@@ -10,7 +11,6 @@ drop table if exists ttrss_labels;
drop table if exists ttrss_filters2_rules;
drop table if exists ttrss_filters2_actions;
drop table if exists ttrss_filters2;
-drop table if exists ttrss_filters;
drop table if exists ttrss_filter_types;
drop table if exists ttrss_filter_actions;
drop table if exists ttrss_user_prefs;
@@ -57,6 +57,7 @@ create table ttrss_feed_categories(id serial not null primary key,
owner_uid integer not null references ttrss_users(id) on delete cascade,
collapsed boolean not null default false,
order_id integer not null default 0,
+ view_settings varchar(250) not null default '',
parent_cat integer references ttrss_feed_categories(id) on delete set null,
title varchar(200) not null);
@@ -70,6 +71,7 @@ create table ttrss_feeds (id serial not null primary key,
purge_interval integer not null default 0,
last_updated timestamp default null,
last_error text not null default '',
+ favicon_avg_color varchar(11) default null,
site_url varchar(250) not null default '',
auth_login varchar(250) not null default '',
parent_feed integer default null references ttrss_feeds(id) on delete set null,
@@ -79,6 +81,7 @@ create table ttrss_feeds (id serial not null primary key,
include_in_digest boolean not null default true,
rtl_content boolean not null default false,
cache_images boolean not null default false,
+ hide_images boolean not null default false,
cache_content boolean not null default false,
last_viewed timestamp default null,
last_update_started timestamp default null,
@@ -88,6 +91,7 @@ create table ttrss_feeds (id serial not null primary key,
mark_unread_on_update boolean not null default false,
update_on_checksum_change boolean not null default false,
strip_images boolean not null default false,
+ view_settings varchar(250) not null default '',
pubsub_state integer not null default 0,
favicon_last_checked timestamp default null,
auth_pass_encrypted boolean not null default false);
@@ -159,6 +163,8 @@ create table ttrss_user_entries (
label_cache text not null,
last_read timestamp,
score int not null default 0,
+ last_marked timestamp,
+ last_published timestamp,
note text,
unread boolean not null default true);
@@ -217,27 +223,21 @@ insert into ttrss_filter_actions (id,name,description) values (6, 'score',
insert into ttrss_filter_actions (id,name,description) values (7, 'label',
'Assign label');
-create table ttrss_filters (id serial not null primary key,
- owner_uid integer not null references ttrss_users(id) on delete cascade,
- feed_id integer references ttrss_feeds(id) on delete cascade default null,
- filter_type integer not null references ttrss_filter_types(id),
- reg_exp varchar(250) not null,
- filter_param varchar(250) not null default '',
- enabled boolean not null default true,
- inverse boolean not null default false,
- cat_filter boolean not null default false,
- cat_id integer references ttrss_feed_categories(id) on delete cascade default null,
- action_id integer not null default 1 references ttrss_filter_actions(id) on delete cascade,
- action_param varchar(250) not null default '');
+insert into ttrss_filter_actions (id,name,description) values (8, 'stop',
+ 'Stop / Do nothing');
create table ttrss_filters2(id serial not null primary key,
owner_uid integer not null references ttrss_users(id) on delete cascade,
match_any_rule boolean not null default false,
+ inverse boolean not null default false,
+ title varchar(250) not null default '',
+ order_id integer not null default 0,
enabled boolean not null default true);
create table ttrss_filters2_rules(id serial not null primary key,
filter_id integer not null references ttrss_filters2(id) on delete cascade,
reg_exp varchar(250) not null,
+ inverse boolean not null default false,
filter_type integer not null references ttrss_filter_types(id),
feed_id integer references ttrss_feeds(id) on delete cascade default null,
cat_id integer references ttrss_feed_categories(id) on delete cascade default null,
@@ -258,7 +258,7 @@ create index ttrss_tags_post_int_id_idx on ttrss_tags(post_int_id);
create table ttrss_version (schema_version int not null);
-insert into ttrss_version values (104);
+insert into ttrss_version values (120);
create table ttrss_enclosures (id serial not null primary key,
content_url text not null,
@@ -292,111 +292,63 @@ insert into ttrss_prefs_sections (id, section_name, order_id) values (4, 'Digest
create table ttrss_prefs (pref_name varchar(250) not null primary key,
type_id integer not null references ttrss_prefs_types(id),
section_id integer not null default 1 references ttrss_prefs_sections(id),
- short_desc text not null,
- help_text varchar(250) not null default '',
access_level integer not null default 0,
def_value text not null);
create index ttrss_prefs_pref_name_idx on ttrss_prefs(pref_name);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('PURGE_OLD_DAYS', 3, '60', 'Purge articles after this number of days (0 - disables)',1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DEFAULT_UPDATE_INTERVAL', 3, '30', 'Default interval between feed updates',1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DEFAULT_ARTICLE_LIMIT', 3, '30', 'Amount of articles to display at once',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('ALLOW_DUPLICATE_POSTS', 1, 'true', 'Allow duplicate posts',1, 'This option is useful when you are reading several planet-type aggregators with partially colliding userbase. When disabled, it forces same posts from different feeds to appear only once.');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_FEED_CATS', 1, 'true', 'Enable feed categories',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('SHOW_CONTENT_PREVIEW', 1, 'true', 'Show content preview in headlines list',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('SHORT_DATE_FORMAT', 2, 'M d, G:i', 'Short date format',3);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('LONG_DATE_FORMAT', 2, 'D, M d Y - G:i', 'Long date format',3);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('COMBINED_DISPLAY_MODE', 1, 'false', 'Combined feed display',2, 'Display expanded list of feed articles, instead of separate displays for headlines and article content');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('HIDE_READ_FEEDS', 1, 'false', 'Hide feeds with no unread messages',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('ON_CATCHUP_SHOW_NEXT_FEED', 1, 'false', 'On catchup show next feed',2, 'Automatically open next feed with unread articles after marking one as read');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('FEEDS_SORT_BY_UNREAD', 1, 'false', 'Sort feeds by unread articles count',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('REVERSE_HEADLINES', 1, 'false', 'Reverse headline order (oldest first)',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('DIGEST_ENABLE', 1, 'false', 'Enable e-mail digest',4, 'This option enables sending daily digest of new (and unread) headlines on your configured e-mail address');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CONFIRM_FEED_CATCHUP', 1, 'true', 'Confirm marking feed as read',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('CDM_AUTO_CATCHUP', 1, 'false', 'Automatically mark articles as read',2, 'This option enables marking articles as read automatically while you scroll article list.');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_VIEW_MODE', 2, 'adaptive', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_VIEW_LIMIT', 3, '30', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_PREFS_ACTIVE_TAB', 2, '', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('STRIP_UNSAFE_TAGS', 1, 'true', 'Strip unsafe tags from articles', 3, 'Strip all but most common HTML tags when reading articles.');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('BLACKLISTED_TAGS', 2, 'main, generic, misc, uncategorized, blog, blogroll, general, news', 'Blacklisted tags', 3, 'When auto-detecting tags in articles these tags will not be applied (comma-separated list).');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('FRESH_ARTICLE_MAX_AGE', 3, '24', 'Maximum age of fresh articles (in hours)',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DIGEST_CATCHUP', 1, 'false', 'Mark articles in e-mail digest as read',4);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CDM_EXPANDED', 1, 'true', 'Automatically expand articles in combined mode',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('PURGE_UNREAD_ARTICLES', 1, 'true', 'Purge unread articles',3);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('HIDE_READ_SHOWS_SPECIAL', 1, 'true', 'Show special feeds when hiding read feeds',2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('VFEED_GROUP_BY_FEED', 1, 'false', 'Group headlines in virtual feeds',2, 'When this option is enabled, headlines in Special feeds and Labels are grouped by feeds');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('STRIP_IMAGES', 1, 'false', 'Hide images in articles', 2);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_VIEW_ORDER_BY', 2, 'default', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_API_ACCESS', 1, 'false', 'Enable external API', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_COLLAPSED_SPECIAL', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_COLLAPSED_LABELS', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_COLLAPSED_UNCAT', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_COLLAPSED_FEEDLIST', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_ENABLE_CATS', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_SHOW_IMAGES', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_HIDE_READ', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_SORT_FEEDS_UNREAD', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_THEME_ID', 2, '0', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('USER_TIMEZONE', 2, 'UTC', 'User timezone', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('USER_STYLESHEET', 2, '', 'Customize stylesheet', 2, 'Customize CSS stylesheet to your liking');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'true', 'Sort headlines by feed date',2, 'Use feed-specified date to sort headlines instead of local import date.');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_BROWSE_CATS', 1, 'true', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SSL_CERT_SERIAL', 2, '', 'Login with an SSL certificate',3, 'Click to register your SSL client certificate with tt-rss');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('DIGEST_PREFERRED_TIME', 2, '00:00', 'Try to send digests around specified time', 4, 'Uses UTC timezone');
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_PREFS_SHOW_EMPTY_CATS', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_INCLUDE_CHILDREN', 1, 'false', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('AUTO_ASSIGN_LABELS', 1, 'true', 'Assign articles to labels automatically', 3);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_ENABLED_PLUGINS', 2, '', '', 1);
-
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_REVERSE_HEADLINES', 1, 'false', '', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('PURGE_OLD_DAYS', 3, '60', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('DEFAULT_UPDATE_INTERVAL', 3, '30', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('DEFAULT_ARTICLE_LIMIT', 3, '30', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('ALLOW_DUPLICATE_POSTS', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('ENABLE_FEED_CATS', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('SHOW_CONTENT_PREVIEW', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('SHORT_DATE_FORMAT', 2, 'M d, G:i', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('LONG_DATE_FORMAT', 2, 'D, M d Y - G:i', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('COMBINED_DISPLAY_MODE', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('HIDE_READ_FEEDS', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('ON_CATCHUP_SHOW_NEXT_FEED', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('FEEDS_SORT_BY_UNREAD', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('REVERSE_HEADLINES', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('DIGEST_ENABLE', 1, 'false', 4);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('CONFIRM_FEED_CATCHUP', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('CDM_AUTO_CATCHUP', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_DEFAULT_VIEW_MODE', 2, 'adaptive', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_DEFAULT_VIEW_LIMIT', 3, '30', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_PREFS_ACTIVE_TAB', 2, '', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('STRIP_UNSAFE_TAGS', 1, 'true', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('BLACKLISTED_TAGS', 2, 'main, generic, misc, uncategorized, blog, blogroll, general, news', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('FRESH_ARTICLE_MAX_AGE', 3, '24', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('DIGEST_CATCHUP', 1, 'false', 4);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('CDM_EXPANDED', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('PURGE_UNREAD_ARTICLES', 1, 'true', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('HIDE_READ_SHOWS_SPECIAL', 1, 'true', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('VFEED_GROUP_BY_FEED', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('STRIP_IMAGES', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_DEFAULT_VIEW_ORDER_BY', 2, 'default', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('ENABLE_API_ACCESS', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_COLLAPSED_SPECIAL', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_COLLAPSED_LABELS', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_COLLAPSED_UNCAT', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_COLLAPSED_FEEDLIST', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_ENABLE_CATS', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_SHOW_IMAGES', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_HIDE_READ', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_SORT_FEEDS_UNREAD', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_THEME_ID', 2, '0', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('USER_TIMEZONE', 2, 'Automatic', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('USER_STYLESHEET', 2, '', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'false', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_BROWSE_CATS', 1, 'true', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('SSL_CERT_SERIAL', 2, '', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('DIGEST_PREFERRED_TIME', 2, '00:00', 4);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_PREFS_SHOW_EMPTY_CATS', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_DEFAULT_INCLUDE_CHILDREN', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('AUTO_ASSIGN_LABELS', 1, 'true', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_ENABLED_PLUGINS', 2, '', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('_MOBILE_REVERSE_HEADLINES', 1, 'false', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('USER_CSS_THEME', 2, '', 2);
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('USER_LANGUAGE', 2, '', 2);
update ttrss_prefs set access_level = 1 where pref_name in ('ON_CATCHUP_SHOW_NEXT_FEED',
'SORT_HEADLINES_BY_FEED_DATE',
@@ -471,4 +423,14 @@ create table ttrss_plugin_storage (
owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
content text not null);
+create table ttrss_error_log(
+ id serial not null primary key,
+ owner_uid integer references ttrss_users(id) ON DELETE SET NULL,
+ errno integer not null,
+ errstr text not null,
+ filename text not null,
+ lineno integer not null,
+ context text not null,
+ created_at timestamp not null);
+
commit;
diff --git a/schema/versions/mysql/105.sql b/schema/versions/mysql/105.sql
new file mode 100644
index 000000000..a96101784
--- /dev/null
+++ b/schema/versions/mysql/105.sql
@@ -0,0 +1,11 @@
+begin;
+
+alter table ttrss_user_entries add column last_marked datetime;
+alter table ttrss_user_entries add column last_published datetime;
+
+update ttrss_user_entries set last_published = last_read where published = true;
+update ttrss_user_entries set last_marked = last_read where marked = true;
+
+update ttrss_version set schema_version = 105;
+
+commit;
diff --git a/schema/versions/mysql/106.sql b/schema/versions/mysql/106.sql
new file mode 100644
index 000000000..b819416b9
--- /dev/null
+++ b/schema/versions/mysql/106.sql
@@ -0,0 +1,12 @@
+begin;
+
+update ttrss_prefs set short_desc = 'Do not embed images in articles' where pref_name = 'STRIP_IMAGES';
+
+alter table ttrss_feeds add column hide_images bool;
+update ttrss_feeds set hide_images = false;
+alter table ttrss_feeds change hide_images hide_images bool not null;
+alter table ttrss_feeds alter column hide_images set default false;
+
+update ttrss_version set schema_version = 106;
+
+commit;
diff --git a/schema/versions/mysql/107.sql b/schema/versions/mysql/107.sql
new file mode 100644
index 000000000..9283d40d9
--- /dev/null
+++ b/schema/versions/mysql/107.sql
@@ -0,0 +1,15 @@
+begin;
+
+alter table ttrss_filters2 add column inverse bool;
+update ttrss_filters2 set inverse = false;
+alter table ttrss_filters2 change inverse inverse bool not null;
+alter table ttrss_filters2 alter column inverse set default false;
+
+alter table ttrss_filters2_rules add column inverse bool;
+update ttrss_filters2_rules set inverse = false;
+alter table ttrss_filters2_rules change inverse inverse bool not null;
+alter table ttrss_filters2_rules alter column inverse set default false;
+
+update ttrss_version set schema_version = 107;
+
+commit;
diff --git a/schema/versions/mysql/108.sql b/schema/versions/mysql/108.sql
new file mode 100644
index 000000000..899be8bb4
--- /dev/null
+++ b/schema/versions/mysql/108.sql
@@ -0,0 +1,7 @@
+begin;
+
+update ttrss_prefs set def_value = 'false' where pref_name = 'SORT_HEADLINES_BY_FEED_DATE';
+
+update ttrss_version set schema_version = 108;
+
+commit;
diff --git a/schema/versions/mysql/109.sql b/schema/versions/mysql/109.sql
new file mode 100644
index 000000000..77e883c3b
--- /dev/null
+++ b/schema/versions/mysql/109.sql
@@ -0,0 +1,7 @@
+begin;
+
+update ttrss_prefs set short_desc = 'Hide feeds with no unread articles' where pref_name = 'HIDE_READ_FEEDS';
+
+update ttrss_version set schema_version = 109;
+
+commit;
diff --git a/schema/versions/mysql/110.sql b/schema/versions/mysql/110.sql
new file mode 100644
index 000000000..859f7d6dc
--- /dev/null
+++ b/schema/versions/mysql/110.sql
@@ -0,0 +1,7 @@
+begin;
+
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('USER_CSS_THEME', 2, '', 'Select theme', 2, 'Select one of the available CSS themes');
+
+update ttrss_version set schema_version = 110;
+
+commit;
diff --git a/schema/versions/mysql/111.sql b/schema/versions/mysql/111.sql
new file mode 100644
index 000000000..27f287d1a
--- /dev/null
+++ b/schema/versions/mysql/111.sql
@@ -0,0 +1,7 @@
+begin;
+
+update ttrss_prefs set def_value = 'true' where pref_name = 'COMBINED_DISPLAY_MODE';
+
+update ttrss_version set schema_version = 111;
+
+commit;
diff --git a/schema/versions/mysql/112.sql b/schema/versions/mysql/112.sql
new file mode 100644
index 000000000..a6f0b200b
--- /dev/null
+++ b/schema/versions/mysql/112.sql
@@ -0,0 +1,15 @@
+begin;
+
+alter table ttrss_filters2 add column order_id integer;
+update ttrss_filters2 set order_id = 0;
+alter table ttrss_filters2 change order_id order_id integer not null;
+alter table ttrss_filters2 alter column order_id set default 0;
+
+alter table ttrss_filters2 add column title varchar(250);
+update ttrss_filters2 set title = '';
+alter table ttrss_filters2 change title title varchar(250) not null;
+alter table ttrss_filters2 alter column title set default '';
+
+update ttrss_version set schema_version = 112;
+
+commit;
diff --git a/schema/versions/mysql/113.sql b/schema/versions/mysql/113.sql
new file mode 100644
index 000000000..3c0d00563
--- /dev/null
+++ b/schema/versions/mysql/113.sql
@@ -0,0 +1,8 @@
+begin;
+
+insert into ttrss_filter_actions (id,name,description) values (8, 'stop',
+ 'Stop / Do nothing');
+
+update ttrss_version set schema_version = 113;
+
+commit;
diff --git a/schema/versions/mysql/114.sql b/schema/versions/mysql/114.sql
new file mode 100644
index 000000000..fd7ce5d2b
--- /dev/null
+++ b/schema/versions/mysql/114.sql
@@ -0,0 +1,15 @@
+begin;
+
+alter table ttrss_feeds add column view_settings varchar(250);
+update ttrss_feeds set view_settings = '';
+alter table ttrss_feeds change view_settings view_settings varchar(250) not null;
+alter table ttrss_feeds alter column view_settings set default '';
+
+alter table ttrss_feed_categories add column view_settings varchar(250);
+update ttrss_feed_categories set view_settings = '';
+alter table ttrss_feed_categories change view_settings view_settings varchar(250) not null;
+alter table ttrss_feed_categories alter column view_settings set default '';
+
+update ttrss_version set schema_version = 114;
+
+commit;
diff --git a/schema/versions/mysql/115.sql b/schema/versions/mysql/115.sql
new file mode 100644
index 000000000..e23f0533a
--- /dev/null
+++ b/schema/versions/mysql/115.sql
@@ -0,0 +1,9 @@
+begin;
+
+alter table ttrss_prefs_sections drop column section_name;
+alter table ttrss_prefs drop column short_desc;
+alter table ttrss_prefs drop column help_text;
+
+update ttrss_version set schema_version = 115;
+
+commit;
diff --git a/schema/versions/mysql/116.sql b/schema/versions/mysql/116.sql
new file mode 100644
index 000000000..252ba0e3a
--- /dev/null
+++ b/schema/versions/mysql/116.sql
@@ -0,0 +1,7 @@
+begin;
+
+update ttrss_prefs set def_value = 'false' where pref_name = 'ALLOW_DUPLICATE_POSTS';
+
+update ttrss_version set schema_version = 116;
+
+commit;
diff --git a/schema/versions/mysql/117.sql b/schema/versions/mysql/117.sql
new file mode 100644
index 000000000..da3d056cc
--- /dev/null
+++ b/schema/versions/mysql/117.sql
@@ -0,0 +1,8 @@
+begin;
+
+ALTER TABLE ttrss_feeds ADD COLUMN favicon_avg_color VARCHAR(11);
+alter table ttrss_feeds alter column favicon_avg_color set default null;
+
+update ttrss_version set schema_version = 117;
+
+commit;
diff --git a/schema/versions/mysql/118.sql b/schema/versions/mysql/118.sql
new file mode 100644
index 000000000..add2b0c1f
--- /dev/null
+++ b/schema/versions/mysql/118.sql
@@ -0,0 +1,16 @@
+begin;
+
+create table ttrss_error_log(
+ id integer not null auto_increment primary key,
+ owner_uid integer,
+ errno integer not null,
+ errstr text not null,
+ filename text not null,
+ lineno integer not null,
+ context text not null,
+ created_at datetime not null,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE SET NULL) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+update ttrss_version set schema_version = 118;
+
+commit;
diff --git a/schema/versions/mysql/119.sql b/schema/versions/mysql/119.sql
new file mode 100644
index 000000000..ddb7d64de
--- /dev/null
+++ b/schema/versions/mysql/119.sql
@@ -0,0 +1,7 @@
+begin;
+
+update ttrss_prefs set def_value = 'Automatic' where pref_name = 'USER_TIMEZONE';
+
+update ttrss_version set schema_version = 119;
+
+commit;
diff --git a/schema/versions/mysql/120.sql b/schema/versions/mysql/120.sql
new file mode 100644
index 000000000..34971146e
--- /dev/null
+++ b/schema/versions/mysql/120.sql
@@ -0,0 +1,7 @@
+begin;
+
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('USER_LANGUAGE', 2, '', 2);
+
+update ttrss_version set schema_version = 120;
+
+commit;
diff --git a/schema/versions/pgsql/105.sql b/schema/versions/pgsql/105.sql
new file mode 100644
index 000000000..11ef679f1
--- /dev/null
+++ b/schema/versions/pgsql/105.sql
@@ -0,0 +1,11 @@
+begin;
+
+alter table ttrss_user_entries add column last_marked timestamp;
+alter table ttrss_user_entries add column last_published timestamp;
+
+update ttrss_user_entries set last_published = last_read where published = true;
+update ttrss_user_entries set last_marked = last_read where marked = true;
+
+update ttrss_version set schema_version = 105;
+
+commit;
diff --git a/schema/versions/pgsql/106.sql b/schema/versions/pgsql/106.sql
new file mode 100644
index 000000000..6e3dee2c9
--- /dev/null
+++ b/schema/versions/pgsql/106.sql
@@ -0,0 +1,12 @@
+begin;
+
+update ttrss_prefs set short_desc = 'Do not embed images in articles' where pref_name = 'STRIP_IMAGES';
+
+alter table ttrss_feeds add column hide_images boolean;
+update ttrss_feeds set hide_images = false;
+alter table ttrss_feeds alter column hide_images set not null;
+alter table ttrss_feeds alter column hide_images set default false;
+
+update ttrss_version set schema_version = 106;
+
+commit;
diff --git a/schema/versions/pgsql/107.sql b/schema/versions/pgsql/107.sql
new file mode 100644
index 000000000..a4a537c2f
--- /dev/null
+++ b/schema/versions/pgsql/107.sql
@@ -0,0 +1,15 @@
+begin;
+
+alter table ttrss_filters2 add column inverse boolean;
+update ttrss_filters2 set inverse = false;
+alter table ttrss_filters2 alter column inverse set not null;
+alter table ttrss_filters2 alter column inverse set default false;
+
+alter table ttrss_filters2_rules add column inverse boolean;
+update ttrss_filters2_rules set inverse = false;
+alter table ttrss_filters2_rules alter column inverse set not null;
+alter table ttrss_filters2_rules alter column inverse set default false;
+
+update ttrss_version set schema_version = 107;
+
+commit;
diff --git a/schema/versions/pgsql/108.sql b/schema/versions/pgsql/108.sql
new file mode 100644
index 000000000..899be8bb4
--- /dev/null
+++ b/schema/versions/pgsql/108.sql
@@ -0,0 +1,7 @@
+begin;
+
+update ttrss_prefs set def_value = 'false' where pref_name = 'SORT_HEADLINES_BY_FEED_DATE';
+
+update ttrss_version set schema_version = 108;
+
+commit;
diff --git a/schema/versions/pgsql/109.sql b/schema/versions/pgsql/109.sql
new file mode 100644
index 000000000..77e883c3b
--- /dev/null
+++ b/schema/versions/pgsql/109.sql
@@ -0,0 +1,7 @@
+begin;
+
+update ttrss_prefs set short_desc = 'Hide feeds with no unread articles' where pref_name = 'HIDE_READ_FEEDS';
+
+update ttrss_version set schema_version = 109;
+
+commit;
diff --git a/schema/versions/pgsql/110.sql b/schema/versions/pgsql/110.sql
new file mode 100644
index 000000000..859f7d6dc
--- /dev/null
+++ b/schema/versions/pgsql/110.sql
@@ -0,0 +1,7 @@
+begin;
+
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('USER_CSS_THEME', 2, '', 'Select theme', 2, 'Select one of the available CSS themes');
+
+update ttrss_version set schema_version = 110;
+
+commit;
diff --git a/schema/versions/pgsql/111.sql b/schema/versions/pgsql/111.sql
new file mode 100644
index 000000000..27f287d1a
--- /dev/null
+++ b/schema/versions/pgsql/111.sql
@@ -0,0 +1,7 @@
+begin;
+
+update ttrss_prefs set def_value = 'true' where pref_name = 'COMBINED_DISPLAY_MODE';
+
+update ttrss_version set schema_version = 111;
+
+commit;
diff --git a/schema/versions/pgsql/112.sql b/schema/versions/pgsql/112.sql
new file mode 100644
index 000000000..a9d90d6d4
--- /dev/null
+++ b/schema/versions/pgsql/112.sql
@@ -0,0 +1,15 @@
+begin;
+
+alter table ttrss_filters2 add column order_id integer;
+update ttrss_filters2 set order_id = 0;
+alter table ttrss_filters2 alter column order_id set not null;
+alter table ttrss_filters2 alter column order_id set default 0;
+
+alter table ttrss_filters2 add column title varchar(250);
+update ttrss_filters2 set title = '';
+alter table ttrss_filters2 alter column title set not null;
+alter table ttrss_filters2 alter column title set default '';
+
+update ttrss_version set schema_version = 112;
+
+commit;
diff --git a/schema/versions/pgsql/113.sql b/schema/versions/pgsql/113.sql
new file mode 100644
index 000000000..3c0d00563
--- /dev/null
+++ b/schema/versions/pgsql/113.sql
@@ -0,0 +1,8 @@
+begin;
+
+insert into ttrss_filter_actions (id,name,description) values (8, 'stop',
+ 'Stop / Do nothing');
+
+update ttrss_version set schema_version = 113;
+
+commit;
diff --git a/schema/versions/pgsql/114.sql b/schema/versions/pgsql/114.sql
new file mode 100644
index 000000000..d317ea794
--- /dev/null
+++ b/schema/versions/pgsql/114.sql
@@ -0,0 +1,15 @@
+begin;
+
+alter table ttrss_feeds add column view_settings varchar(250);
+update ttrss_feeds set view_settings = '';
+alter table ttrss_feeds alter column view_settings set not null;
+alter table ttrss_feeds alter column view_settings set default '';
+
+alter table ttrss_feed_categories add column view_settings varchar(250);
+update ttrss_feed_categories set view_settings = '';
+alter table ttrss_feed_categories alter column view_settings set not null;
+alter table ttrss_feed_categories alter column view_settings set default '';
+
+update ttrss_version set schema_version = 114;
+
+commit;
diff --git a/schema/versions/pgsql/115.sql b/schema/versions/pgsql/115.sql
new file mode 100644
index 000000000..e23f0533a
--- /dev/null
+++ b/schema/versions/pgsql/115.sql
@@ -0,0 +1,9 @@
+begin;
+
+alter table ttrss_prefs_sections drop column section_name;
+alter table ttrss_prefs drop column short_desc;
+alter table ttrss_prefs drop column help_text;
+
+update ttrss_version set schema_version = 115;
+
+commit;
diff --git a/schema/versions/pgsql/116.sql b/schema/versions/pgsql/116.sql
new file mode 100644
index 000000000..252ba0e3a
--- /dev/null
+++ b/schema/versions/pgsql/116.sql
@@ -0,0 +1,7 @@
+begin;
+
+update ttrss_prefs set def_value = 'false' where pref_name = 'ALLOW_DUPLICATE_POSTS';
+
+update ttrss_version set schema_version = 116;
+
+commit;
diff --git a/schema/versions/pgsql/117.sql b/schema/versions/pgsql/117.sql
new file mode 100644
index 000000000..da3d056cc
--- /dev/null
+++ b/schema/versions/pgsql/117.sql
@@ -0,0 +1,8 @@
+begin;
+
+ALTER TABLE ttrss_feeds ADD COLUMN favicon_avg_color VARCHAR(11);
+alter table ttrss_feeds alter column favicon_avg_color set default null;
+
+update ttrss_version set schema_version = 117;
+
+commit;
diff --git a/schema/versions/pgsql/118.sql b/schema/versions/pgsql/118.sql
new file mode 100644
index 000000000..161cf4e3c
--- /dev/null
+++ b/schema/versions/pgsql/118.sql
@@ -0,0 +1,15 @@
+begin;
+
+create table ttrss_error_log(
+ id serial not null primary key,
+ owner_uid integer references ttrss_users(id) ON DELETE SET NULL,
+ errno integer not null,
+ errstr text not null,
+ filename text not null,
+ lineno integer not null,
+ context text not null,
+ created_at timestamp not null);
+
+update ttrss_version set schema_version = 118;
+
+commit;
diff --git a/schema/versions/pgsql/119.sql b/schema/versions/pgsql/119.sql
new file mode 100644
index 000000000..ddb7d64de
--- /dev/null
+++ b/schema/versions/pgsql/119.sql
@@ -0,0 +1,7 @@
+begin;
+
+update ttrss_prefs set def_value = 'Automatic' where pref_name = 'USER_TIMEZONE';
+
+update ttrss_version set schema_version = 119;
+
+commit;
diff --git a/schema/versions/pgsql/120.sql b/schema/versions/pgsql/120.sql
new file mode 100644
index 000000000..34971146e
--- /dev/null
+++ b/schema/versions/pgsql/120.sql
@@ -0,0 +1,7 @@
+begin;
+
+insert into ttrss_prefs (pref_name,type_id,def_value,section_id) values('USER_LANGUAGE', 2, '', 2);
+
+update ttrss_version set schema_version = 120;
+
+commit;
diff --git a/templates/.htaccess b/templates/.htaccess
new file mode 100644
index 000000000..93169e4eb
--- /dev/null
+++ b/templates/.htaccess
@@ -0,0 +1,2 @@
+Order deny,allow
+Deny from all
diff --git a/templates/email_article_template.txt b/templates/email_article_template.txt
index 0d151d18c..5cf2b2750 100644
--- a/templates/email_article_template.txt
+++ b/templates/email_article_template.txt
@@ -6,8 +6,6 @@ I've been reading this and thought it might interest you:
* ${ARTICLE_TITLE}
${ARTICLE_URL}
<!-- $EndBlock article -->
-Sincerely yours,
- ${USER_NAME} <${USER_EMAIL}>.
--
This message has been sent by Tiny Tiny RSS installation at ${TTRSS_HOST}.
diff --git a/templates/resetpass_template.txt b/templates/resetpass_template.txt
index dd96f2c92..c262f9a77 100644
--- a/templates/resetpass_template.txt
+++ b/templates/resetpass_template.txt
@@ -1,7 +1,7 @@
<!-- $BeginBlock message -->
Hello, ${LOGIN}.
-Your password for this Tiny Tiny RSS installation has been reset by an administrator.
+Your password for this Tiny Tiny RSS installation has been reset.
Your new password is ${NEWPASS}, please remember it for later reference.
diff --git a/themes/.empty b/themes/.empty
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/themes/.empty
diff --git a/themes/default.css b/themes/default.css
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/themes/default.css
diff --git a/tt-rss.css b/tt-rss.css
index 0b7e8ec7e..f5d5da1d4 100644
--- a/tt-rss.css
+++ b/tt-rss.css
@@ -3,10 +3,19 @@ body#ttrssMain, body#ttrssPrefs, body#ttrssLogin, body {
color : black;
margin : 0px;
padding : 0px;
- font-family : sans-serif;
- font-size : 12px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
}
+html, body#ttrssMain, body#ttrssPrefs, #main {
+ width: 100%;
+ height: 100%;
+ border: 0;
+ padding: 0;
+ margin: 0;
+}
+
+
body#ttrssPrefs {
background-color : #ecf4ff;
}
@@ -21,28 +30,19 @@ div.postReply {
padding : 0px;
}
-div.postReply a {
- color : #4684ff;
-}
-
-div.postReply a:hover {
- color : black;
-}
-
div.postReply div.postHeader {
border-width : 0px 0px 1px 0px;
border-style : solid;
- border-color : #88b0f0;
- background-color : white;
- background : url("images/toolbar.png");
- background-position : bottom left;
- background-repeat : repeat-x;
+ border-color : #c0c0c0;
+ background : #fafafa;
+ box-shadow : 0px 0px 3px 0px rgba(0,0,0,0.1);
padding : 5px;
color : #909090;
}
div.postReply div.postTitle {
overflow : hidden;
+ text-overflow: ellipsis;
white-space : nowrap;
}
@@ -52,17 +52,17 @@ div.postReply div.postDate {
div.postReply div.postContent {
padding : 10px;
- font-size : 12px;
}
div.postReply div.postContent img {
border-width : 0px;
max-width : 98%;
+ height: auto;
}
div.postReply div.postEnclosures {
margin-top : 1em;
- color : gray;
+ color : #555;
}
div.postReply img.tagsPic {
@@ -75,9 +75,12 @@ div.postReply img.tagsPic {
div.articleNote {
background-color : #fff7d5;
padding : 5px;
- border-style : none none dashed none;
+ border-radius : 4px;
+ margin : 5px;
+ border-style : solid;
border-color : #e7d796;
border-width : 1px;
+ box-shadow : 0px 0px 2px rgba(0,0,0,0.1);
background-color : #fff7d5;
color : #9a8c59;
}
@@ -113,17 +116,18 @@ h3 {
hr {
border-width : 0px 0px 1px 0px;
- border-style : dashed;
- border-color : #e0e0e0;
+ border-style : solid;
+ border-color : #c0c0c0;
+ max-width : 90%;
}
a {
- color : black;
+ color : #4684ff;
text-decoration : none;
}
a:hover {
- color : #4684ff;
+ color : #88b0f0;
}
#piggie {
@@ -132,266 +136,113 @@ a:hover {
}
#notify {
- border-width : 0px 1px 1px 1px;
+ bottom : 10px;
+ right : 10px;
+ border-width : 1px;
border-style : solid;
- top : 0px;
- right : 35%;
- min-width : 30%;
position : absolute;
- display : none;
- float : right;
font-size : 12px;
z-index : 99;
- padding : 5px 5px 5px 5px;
+ max-width : 200px;
+ min-width : 100px;
+ padding : 5px;
+ -width : 200px;
+ box-shadow : 0px 0px 2px rgba(0,0,0,0.2);
}
#notify img {
vertical-align : middle;
+ max-height : 14px;
}
-.notifyProgress {
- border-color : #d7c47a;
- background-color : #fff7d5;
- color : black;
+#notify span.msg {
+ width : 100%;
}
-.notifyInfo {
- border-color : #7AD78E;
- background-color : #D5FFDB;
- color : black;
+#notify span.close {
+ text-align : right;
+}
+
+#notify span {
+ display : table-cell;
+ vertical-align : middle;
+ padding : 4px;
}
.notify {
border-color : #d7c47a;
background-color : #fff7d5;
- color : black;
}
-.notifyError {
- background-color : #ffcccc;
- border-color : #ff0000;
- color : black;
-}
-
-.notifyError span:hover {
- color : red;
- cursor : pointer;
+.notify.progress {
+ border-color : #d7c47a;
+ background-color : #fff7d5;
}
-.Selected, .Selected td {
- background-color : #fff7d5 ! important;
+.notify.info {
+ border-color : #88b0f0;
+ background-color : #ecf4ff;
}
-.even.Unread.Selected, .even.Unread.Selected td {
- background : #fff7d5 ! important;
- font-weight : bold;
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #e7d796;
+.notify.error {
+ background-color : #ffcccc;
+ border-color : #ff0000;
}
-.odd.Unread.Selected, .odd.Unread.Selected td {
- background : #fff7d5 ! important;
+.hl div.hlTitle a {
font-weight : bold;
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #e7d796;
+ color : #555;
}
-.even.Selected, .even.Selected td {
- background : #fff7d5 ! important;
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #e7d796;
- border-collapse : collapse;
+.hl.Unread div.hlTitle a {
+ color : black;
}
-.odd.Selected, .odd.Selected td {
- background : #fff7d5 ! important;
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #e7d796;
- border-collapse : collapse;
+.hl.active {
+ box-shadow : inset 0px 0px 3px 0px rgba(0,0,0,0.1);
}
-.even.Grayed, .even.Grayed td {
- background : #f0f0f0;
- color : #909090;
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #c0c0c0;
- border-collapse : collapse;
+.hl.active div.hlTitle a {
+ color : #4684ff;
}
-.odd.Grayed {
+.hl.Grayed {
color : #909090;
}
-.even, .even td {
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #c0c0c0;
- background : #f0f0f0;
- border-collapse : collapse;
-}
-
-.odd, .odd td {
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #c0c0c0;
- border-collapse : collapse;
+#headlines-frame div.hl:nth-child(even) {
+ background : #fafafa;
}
-.even.Unread, .even.Unread td {
- background : #f0f0f0;
- font-weight : bold;
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #c0c0c0;
- border-collapse : collapse;
+#headlines-frame.normal {
+ font-size : 13px;
}
-.odd.Unread, .odd.Unread td {
- font-weight : bold;
+.hl {
border-width : 0px 0px 1px 0px;
border-style : solid;
border-color : #c0c0c0;
}
-.invisible {
- display : none;
+.hl.active {
+ background : #ecf4ff ! important;
}
-/* preferences */
-
-/* table.prefPrefsList tr:hover td.prefValue {
- color : #88b0f0;
-}
-
-table.prefPrefsList tr:hover td.prefValue input {
- color : #88b0f0;
-} */
-
-table.prefPrefsList h3 {
- margin-top : 0.5em;
- margin-bottom : 0px;
-}
-
-tr.title td {
- border-width : 0px 0px 1px 0px;
- border-color : #ecf4ff;
- border-style : solid;
- color : #4684ff;
-}
-
-tr.title td a {
- color : #4684ff;
-}
-
-tr.title td a:hover {
- color : black;
-}
-
-table.prefFeedList td.feedEditCat {
- font-weight : bold;
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #88b0f0;
- padding-top : 0.5em;
-}
-
-table.prefFilterList td.filterEditCat {
- font-weight : bold;
- border-width : 0px 0px 1px 0px;
- border-style : solid;
- border-color : #88b0f0;
- padding-top : 0.5em;
-}
-
-/* oh for the love of... */
-
-table.prefFilterList tr.even,
-table.prefFilterList tr.odd,
-table.prefFilterList tr.evenSelected,
-table.prefFilterList tr.oddSelected,
-table.prefLabelList tr.even,
-table.prefLabelList tr.odd,
-table.prefLabelList tr.evenSelected,
-table.prefLabelList tr.oddSelected,
-table.prefUserList tr.even,
-table.prefUserList tr.odd,
-table.prefUserList tr.evenSelected,
-table.prefUserList tr.oddSelected,
-table.prefFeedList tr.even,
-table.prefFeedList tr.odd,
-table.prefFeedList tr.evenSelected,
-table.prefFeedList tr.oddSelected,
-table.prefInstanceList tr.even,
-table.prefInstanceList tr.odd,
-table.prefInstanceList tr.evenSelected,
-table.prefInstanceList tr.oddSelected
-{
- cursor : pointer;
-}
-
-table.prefFilterList tr.even:hover td,
-table.prefFilterList tr.odd:hover td,
-table.prefFilterList tr.evenSelected:hover td,
-table.prefFilterList tr.oddSelected:hover td
-table.prefLabelList tr.even:hover td,
-table.prefLabelList tr.odd:hover td,
-table.prefLabelList tr.evenSelected:hover td,
-table.prefLabelList tr.oddSelected:hover td,
-table.prefUserList tr.even:hover td,
-table.prefUserList tr.odd:hover td,
-table.prefUserList tr.evenSelected:hover td,
-table.prefUserList tr.oddSelected:hover td,
-table.prefFeedList tr.even:hover td,
-table.prefFeedList tr.odd:hover td,
-table.prefFeedList tr.evenSelected:hover td,
-table.prefFeedList tr.oddSelected:hover td,
-table.prefInstanceList tr.even:hover td,
-table.prefInstanceList tr.odd:hover td,
-table.prefInstanceList tr.evenSelected:hover td,
-table.prefInstanceList tr.oddSelected:hover td
-{
- color : #88b0f0;
-}
-
-table.prefFeedList td.feedIcon {
- text-align : center;
-}
-
-table.prefFeedList td.feedSelect {
- text-align : center;
-}
-
-div.prefFeedCatHolder, div.prefFeedOPMLHolder, div.inactiveFeedHolder, div.filterTestHolder {
+div.filterTestHolder {
height : 300px;
overflow : auto;
- border-width : 0px 1px 1px 1px;
border-color : #c0c0c0;
border-style : solid;
margin : 0px 0px 5px 0px;
background-color : #ecf4ff;
-}
-
-div.prefFeedOPMLHolder, div.filterTestHolder {
border-width : 1px 1px 1px 1px;
}
-a.helpLink {
- color : #808080;
-}
-
-a.helpLink:hover {
- color : #4684ff;
-}
#content-insert blockquote, #headlines-frame blockquote, .dijitContentPane blockquote {
margin : 5px 0px 5px 0px;
padding : 10px;
- color : gray;
+ color : #555;
border-width : 0px 0px 0px 3px;
border-color : #c0c0c0;
border-style : solid;
@@ -399,22 +250,15 @@ a.helpLink:hover {
}
#content-insert code, #headlines-frame code, .dijitContentPane code {
- margin : 5px 0px 5px 0px;
- padding : 10px;
color : #009900;
font-family : monospace;
font-size : 12px;
- border-width : 0px;
- border-color : #c0e0c0;
- border-style : solid;
- background : #fafafa;
- display : block;
}
#content-insert pre, #headlines-frame pre, .dijitContentPane pre {
margin : 5px 0px 5px 0px;
padding : 10px;
- color : gray;
+ color : #555;
font-family : monospace;
font-size : 12px;
border-width : 0px;
@@ -422,41 +266,50 @@ a.helpLink:hover {
border-style : solid;
background : #fafafa;
display : block;
+ max-width : 98%;
+ overflow : auto;
}
-div.notice {
- background : #ffffff;
- border : 1px solid #88b0f0;
- width : 60%;
- padding : 5px;
- margin : 0px 0px 5px 0px;
+div.notice, div.warning, div.error {
+ padding : 4px 10px 4px 4px;
+ display : inline-block;
+ margin : 2px 0px 4px 0px;
font-size : 12px;
+ border-style : solid;
+ border-color : #ccc;
+ border-radius : 4px;
+ border-width : 1px;
+ box-shadow : 0px 0px 2px rgba(0,0,0,0.1);
+}
+
+div.notice div.inner, div.warning div.inner, div.error div.inner {
+ vertical-align : middle;
+}
+
+div.notice {
+ background : #ecf4ff;
+ border-color : #88b0f0;
}
div.warning {
background : #fff7d5;
- border : 1px solid #d7c47a;
- font-size : 12px;
- width : 60%;
- padding : 5px;
- margin : 0px 0px 5px 0px;
+ border-color : #e7d796;;
+}
+
+div.error {
+ background : #ffcccc;
+ border-color : #ff0000;
}
div.warning img, div.notice img, div.error img {
+ margin-right : 4px;
vertical-align : middle;
- padding : 5px;
}
-span.filterDateError {
- color : #ff0000;
-}
+div.warning span, div.notice span, div.error span {
+ display : table-cell;
+ vertical-align : middle;
-div.error {
- border : 1px solid #ff0000;
- background : #ffcccc;
- padding : 5px;
- margin : 0px 0px 5px 0px;
- font-size : 12px;
}
ul.nomarks {
@@ -465,8 +318,8 @@ ul.nomarks {
padding : 10px;
}
-div.prefHelp, td.prefHelp {
- color : gray;
+div.prefHelp {
+ color : #555;
padding : 5px;
}
@@ -475,38 +328,16 @@ span.feed_error {
}
.insensitive {
- color : gray;
-}
-
-.insensitive a {
- color : #4684ff;
-}
-
-.insensitive a:hover {
- color : black;
-}
-
-.small {
- font-size : 11px;
-}
-
-table.innerFeedTable td {
- margin : 0px;
- padding : 0px;
-}
-
-td.selectPrompt {
- font-size : 12px;
- color : gray;
+ color : #555;
}
div#headlines-toolbar {
border-width : 0px 0px 1px 0px;
- background-color : #f0f0f0;
- border-color : #88b0f0 #88b0f0 #ecf4ff #88b0f0;
- font-size : 11px;
+ background-color : #fcfcfc;
+ border-color : #c0c0c0;
+ font-size : 12px;
font-family : "Segoe UI", Tahoma, sans-serif;
- color : gray;
+ color : #555;
padding : 0px;
margin : 0px;
overflow : hidden;
@@ -533,15 +364,11 @@ div#headlines-toolbar span.r span.error {
}
div#headlines-toolbar span.r a {
- color : gray;
-}
-
-div#headlines-toolbar span.r a:hover {
- color : black;
+ color : #555;
}
span.contentPreview {
- color : gray;
+ color : #555;
font-weight : normal;
}
@@ -554,20 +381,22 @@ span.hlLabelRef {
font-size : 8px;
color : #063064;
font-weight : normal;
- margin : 0px 3px 0px 3px;
- padding : 0px 4px 0px 4px;
+ margin-left : 2px;
+ padding : 1px 4px 1px 4px;
+ display : inline-block;
+ vertical-align : middle;
white-space: nowrap;
+ border-radius : 4px;
}
div.postHeader div.postDate {
text-align : right;
- color : gray;
+ color : #555;
float : right;
}
div.postHeader div {
padding-bottom : 3px;
- font-size : 12px;
}
#feedUpdateErrors {
@@ -575,7 +404,6 @@ div.postHeader div {
}
#allEntryTags {
- font-size : 12px;
border-width : 0px 0px 1px 0px;
border-style : solid;
border-color : #c0c0c0;
@@ -583,26 +411,29 @@ div.postHeader div {
display : none;
}
-span.hlFeed, span.hlFeed a {
- font-size : 10px;
- color : gray;
+a.hlFeed {
+ display : block;
+ white-space : nowrap;
+ font-size : 9px;
font-style : italic;
font-weight : normal;
+ border-radius : 4px;
+ display : inline-block;
+ padding : 1px 2px 1px 2px;
+ margin-bottom : 2px;
+ margin-top : 2px;
+ color : #555;
}
-span.hlFeed a:hover {
+a.hlFeed:hover {
color : #4684ff;
}
-img.markedPic {
+img.markedPic, img.pubPic {
cursor : pointer;
vertical-align : middle;
}
-a.warning {
- color : #f04040;
-}
-
div.tagCloudContainer {
border : 1px solid #c0c0c0;
background-color : #ecf4ff;
@@ -628,28 +459,8 @@ ul.feedErrorsList {
padding : 5px;
}
-ul.selfUpdateList {
- height : 200px;
- overflow : auto;
- list-style-type : none;
- border : 1px solid #c0c0c0;
- background-color : #ecf4ff;
- margin : 0px 0px 5px 0px;
- padding : 5px;
-}
-
ul.feedErrorsList em {
- color : gray;
-}
-
-ul.userFeedList {
- height : 300px;
- overflow : auto;
- list-style-type : none;
- border : 1px solid gray;
- background-color : white;
- margin : 0px 0px 5px 0px;
- padding : 0px;
+ color : #555;
}
ul.browseFeedList {
@@ -740,21 +551,12 @@ div.whiteBox {
padding : 1em;
}
-html, body#ttrssMain, #main {
- width: 100%;
- height: 100%;
- border: 0;
- padding: 0;
- margin: 0;
-}
-
-html, body#ttrssPrefs, #main {
+/* html, body#ttrssMain, #main {
width: 100%;
height: 100%;
- border: 0;
padding: 0;
margin: 0;
-}
+} */
#toolbar div.actionChooser {
display : table-cell;
@@ -762,45 +564,6 @@ html, body#ttrssPrefs, #main {
padding-right : 3px;
}
-/* preferences layout */
-
-div.return {
- float : right;
- font-size : 12px;
- margin-right : 10px;
-}
-
-div.return a {
- color : #4684ff;
-}
-
-div.return a:hover {
- color : black;
-}
-
-#header .logo {
- float : right;
- margin-left : 10px;
-}
-
-#header a {
- color : #4684ff;
-}
-
-#header a:hover {
- color : black;
-}
-
-#header img {
- vertical-align : middle;
- cursor : pointer;
-}
-
-a.helpLinkPic img {
- border-width : 0px;
- vertical-align : middle;
-}
-
div.autocomplete {
position : absolute;
width : 250px;
@@ -829,28 +592,6 @@ div.autocomplete ul li {
cursor : pointer;
}
-#feedOpToolbar {
- float : right;
-}
-
-#header a.feedback {
- color : #009900;
-}
-
-a.visibleLink {
- color : #4684ff;
-}
-
-a.visibleLinkB {
- color : #4684ff;
- border : 1px solid #4684ff;
- padding : 2px;
-}
-
-a.visibleLinkB:hover {
- background-color : #ecf4ff;
-}
-
.hlContentH a, .hlContentH span {
color : #00cc00;
}
@@ -877,7 +618,7 @@ img.hlScorePic {
div.dlgSec {
font-size : 12px;
- color : gray;
+ color : #555;
font-weight : bold;
clear : both;
height : 20px;
@@ -940,7 +681,7 @@ div#cmdline {
left : 5px;
bottom : 5px;
font-size : 11px;
- color : gray;
+ color : #555;
font-weight : bold;
background-color : white;
border : 1px solid #88b0f0;
@@ -954,25 +695,6 @@ div#cmdline {
width : 18px;
}
-div#auxDlg {
- position : absolute;
- z-index : 3;
- bottom : 5px;
- right : 25px;
- padding : 5px;
- border-width : 1px;
- border-style : solid;
- border-color : #d7c47a;
- background-color : #fff7d5;
- color : black;
- text-align : center;
- font-size : 13px;
-}
-
-div#auxDlg a {
- color : #4684ff;
-}
-
div.hlTitle {
display : table-cell;
cursor : pointer;
@@ -1001,14 +723,13 @@ div.hlRight img {
}
span.hlUpdated {
- color : gray;
+ color : #555;
min-width : 100px;
display : table-cell;
width : 100%;
vertical-align : middle;
text-align : right;
font-size : 10px;
- font-weight : normal;
}
div.hlLeft {
@@ -1042,7 +763,7 @@ div.fatalError textarea {
height : 100px;
}
-#main {
+#ttrssMain #main {
border-width : 0px;
margin : 0px;
padding : 0px;
@@ -1056,7 +777,7 @@ div.fatalError textarea {
#content-wrap {
padding : 0px;
- border-width : 0px 0px 1px 1px;
+ border-width : 0px 0px 0px 1px;
border-style : solid;
border-color : #c0c0c0;
margin : 0px;
@@ -1064,11 +785,13 @@ div.fatalError textarea {
#feeds-holder {
padding : 0px;
- border-color : #88b0f0;
+ border-color : #c0c0c0;
border-left-width : 0px;
border-bottom-width : 0px;
border-top-width : 0px;
- overflow : auto;
+ overflow : hidden;
+ box-shadow : inset 0px 0px 3px rgba(0,0,0,0.1);
+ background : #f9fbff;
}
#headlines-wrap-inner {
@@ -1079,11 +802,11 @@ div.fatalError textarea {
#headlines-frame {
padding : 0px;
- border-color : #88b0f0;
- border-left-width : 0px;
- border-right-width : 0px;
+ border-color : #c0c0c0;
+ border-style : solid;
+ border-width : 0px;
margin-top : 0px;
- border-top-width : 0px;
+ box-shadow : inset 0px 0px 3px rgba(0,0,0,0.1);
}
#headlines-toolbar_splitter, #toolbar_splitter {
@@ -1095,13 +818,14 @@ div.fatalError textarea {
margin : 0px;
border-width : 0px;
white-space: nowrap;
- font-size : 11px;
+ font-size : 12px;
+ box-shadow : 0px 0px 2px rgba(0,0,0,0.1);
}
#header {
border-width : 0px;
text-align : right;
- color : gray;
+ color : #555;
padding : 5px 5px 0px 0px;
margin : 0px;
position : absolute;
@@ -1112,17 +836,18 @@ div.fatalError textarea {
#footer {
text-align : center;
- color : gray;
+ color : #555;
padding : 4px 4px 8px 4px;
border-width : 0px;
}
#content-insert {
padding : 0px;
- border-color : #88b0f0;
+ border-color : #c0c0c0;
border-bottom-width : 0px;
border-right-width : 0px;
border-left-width : 0px;
+ line-height: 20px;
overflow : auto;
}
@@ -1130,14 +855,23 @@ div.fatalError textarea {
font-weight : bold;
}
+.dijitTreeLabel {
+ outline : 0;
+}
+
.feedParam {
- color : gray;
+ color : #555;
+ float : right;
+ margin-right : 1em;
+}
+
+.labelParam {
float : right;
margin-right : 1em;
}
.dijitTreeLabel.Disabled, .labelParam.Disabled {
- color : gray;
+ color : #555;
}
.dijitTreeRow.Error {
@@ -1152,54 +886,6 @@ img.feedIcon, img.tinyFeedIcon {
width : 16px;
height : 16px;
vertical-align : middle;
-}
-
-div#feedlistLoading, div#filterlistLoading, div#labellistLoading {
- text-align : center;
- padding : 5px;
- color : gray;
-}
-
-div#feedlistLoading img, div#filterlistLoading img, div#labellistLoading {
- margin-right : 5px;
-}
-
-div#pref-tabs .dijitContentPane {
- font-size : 12px;
-}
-
-div#pref-tabs {
- margin : 0px 5px 0px 5px;
-}
-
-div#pref-tabs .dijitContentPane h3 {
- font-size : 14px;
- font-weight : bold;
-}
-
-#pref-filter-wrap, #pref-filter-header, #pref-filter-content,
-#pref-label-wrap, #pref-label-header, #pref-label-content,
-#pref-user-wrap, #pref-user-header, #pref-user-content,
-#pref-instance-wrap, #pref-instance-header, #pref-instance-content {
- margin : 0px;
- padding : 0px;
- border-width : 0px;
-}
-
-#userConfigTab, #labelConfigTab, #filterConfigTab, #pref-feeds-feeds, #instanceConfigTab {
- padding : 0px;
-}
-
-#errorButton {
- color : red;
-}
-
-span.labelFixedLength {
- display : inline-block;
- width : 70%;
-}
-
-#filter_dlg_date_chk_box {
display : inline-block;
}
@@ -1207,24 +893,25 @@ span.labelFixedLength {
border : 1px solid #c0c0c0;
}
-a.bookmarklet {
- color : #4684ff;
- border : 1px solid #ecf4ff;
- padding : 2px;
+.dijitDialog h2 {
+ margin-top : 0px;
+ margin-bottom : 4px;
+ border-width : 0px;
}
.player {
display : inline-block;
- color : gray;
+ color : #555;
font-size : 11px;
font-family : sans-serif;
- border : 1px solid gray;
+ border : 1px solid #555;
padding : 0px 4px 0px 4px;
margin : 0px 2px 0px 2px;
width : 50px;
text-align : center;
background : white;
}
+
.player.playing {
color : #00c000;
border-color : #00c000;
@@ -1240,16 +927,7 @@ a.bookmarklet {
margin-left : 1px;
text-align : center;
padding : 1em;
- color : gray;
-}
-
-td.error {
- color : red;
-}
-
-div.dialogNotice {
- margin-bottom : 5px;
- color : gray;
+ color : #555;
}
ul#filterDlg_Matches, ul#filterDlg_Actions {
@@ -1273,10 +951,6 @@ ul#filterDlg_Matches li div.dijitCheckBox, ul#filterDlg_Actions li div.dijitChec
margin-right : 5px;
}
-table.prefPluginsList td label, table.prefUserList td {
- cursor : pointer;
-}
-
ul.helpKbList {
max-height : 300px;
overflow : auto;
@@ -1298,3 +972,118 @@ ul.helpKbList span.hksequence {
ul.helpKbList h2 {
margin-top : 0px;
}
+
+.dijitTreeNode .loadingNode {
+ margin-left : 3px;
+ height : 9px;
+}
+
+span.collapseBtn {
+ cursor : pointer;
+}
+
+div.postContent p {
+ max-width : 650px;
+}
+
+div.postContent iframe {
+ min-width : 50%;
+}
+
+div.postHeader span.author {
+ color : #555;
+ font-size : 11px;
+ font-weight : normal;
+}
+
+body#ttrssZoom {
+ margin-left : auto;
+ margin-right : auto;
+ padding : 2em;
+ max-width : 800px;
+ background : #f0f0f0;
+}
+
+body#ttrssZoom div.postContent p {
+ max-width : 650px;
+}
+
+body#ttrssZoom div.postReply {
+ border : 1px solid #ccc;
+ box-shadow : 0px 0px 3px #ccc;
+}
+
+body#ttrssZoom div.postContent {
+ background-color : white;
+}
+
+body#ttrssZoom div.footer {
+ margin-top : 1em;
+ text-align : center;
+}
+
+body#ttrssZoom div.postContent img {
+ max-width : 650px;
+ height : auto;
+}
+
+select.attachments {
+ display : block;
+ margin-top : 10px;
+ max-width : 120px;
+}
+
+div.hl.active {
+ border-color : #88b0f0;
+}
+
+#selected_prompt {
+ margin-right : 25px;
+}
+
+#feedTree .dijitTreeRow {
+ padding : 2px 0px 2px;
+ border-width : 1px;
+ border-color : transparent;
+ color : #333;
+}
+
+#feedTree .dijitTreeNode {
+ padding : 0px;
+ border-width : 0px;
+}
+
+#feedTree {
+ height : 100%;
+ overflow-x : hidden;
+ font-family : "Segoe UI", Tahoma, sans-serif;
+}
+
+#feedTree .counterNode {
+ font-weight : bold;
+ display : inline-block;
+ font-size : 9px;
+ text-align : center;
+ border : 1px solid #88b0f0;
+ color : white;
+ background : #88b0f0;
+ border-radius : 4px;
+ vertical-align : middle;
+ float : right;
+ margin-right : 5px;
+ position : relative;
+ top : 2px;
+ min-width : 23px;
+}
+
+#feedTree .dijitTreeRow {
+ max-width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+body#ttrssPrefs hr {
+ border-color : #ecf4ff;
+ max-width : 100%;
+}
+
diff --git a/update.php b/update.php
index ba4cadbcb..f542a390b 100755
--- a/update.php
+++ b/update.php
@@ -7,6 +7,7 @@
chdir(dirname(__FILE__));
+ require_once "autoload.php";
require_once "functions.php";
require_once "rssfuncs.php";
require_once "config.php";
@@ -17,14 +18,31 @@
if (!defined('PHP_EXECUTABLE'))
define('PHP_EXECUTABLE', '/usr/bin/php');
- // Create a database connection.
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- init_connection($link);
+ init_plugins();
+
+ $longopts = array("feeds",
+ "feedbrowser",
+ "daemon",
+ "daemon-loop",
+ "task:",
+ "cleanup-tags",
+ "quiet",
+ "log:",
+ "indexes",
+ "pidlock:",
+ "update-schema",
+ "convert-filters",
+ "force-update",
+ "list-plugins",
+ "help");
+
+ foreach (PluginHost::getInstance()->get_commands() as $command => $data) {
+ array_push($longopts, $command . $data["suffix"]);
+ }
- $op = $argv;
+ $options = getopt("", $longopts);
- if (count($argv) == 0 && !defined('STDIN')) {
+ if (count($options) == 0 && !defined('STDIN')) {
?> <html>
<head>
<title>Tiny Tiny RSS data update script.</title>
@@ -33,7 +51,7 @@
</head>
<body>
- <div class="floatingLogo"><img src="images/logo_wide.png"></div>
+ <div class="floatingLogo"><img src="images/logo_small.png"></div>
<h1><?php echo __("Tiny Tiny RSS data update script.") ?></h1>
<?php print_error("Please run this script from the command line. Use option \"-help\" to display command help if this error is displayed erroneously."); ?>
@@ -43,109 +61,131 @@
exit;
}
- if (count($argv) == 1 || in_array("-help", $op) ) {
+ if (count($options) == 0 || isset($options["help"]) ) {
print "Tiny Tiny RSS data update script.\n\n";
print "Options:\n";
- print " -feeds - update feeds\n";
- print " -feedbrowser - update feedbrowser\n";
- print " -daemon - start single-process update daemon\n";
- print " -cleanup-tags - perform tags table maintenance\n";
- print " -quiet - don't show messages\n";
- print " -indexes - recreate missing schema indexes\n";
- print " -convert-filters - convert type1 filters to type2\n";
- print " -force-update - force update of all feeds\n";
- print " -list-plugins - list all available plugins\n";
- print " -help - show this help\n";
+ print " --feeds - update feeds\n";
+ print " --feedbrowser - update feedbrowser\n";
+ print " --daemon - start single-process update daemon\n";
+ print " --task N - create lockfile using this task id\n";
+ print " --cleanup-tags - perform tags table maintenance\n";
+ print " --quiet - don't output messages to stdout\n";
+ print " --log FILE - log messages to FILE\n";
+ print " --indexes - recreate missing schema indexes\n";
+ print " --update-schema - update database schema\n";
+ print " --convert-filters - convert type1 filters to type2\n";
+ print " --force-update - force update of all feeds\n";
+ print " --list-plugins - list all available plugins\n";
+ print " --help - show this help\n";
print "Plugin options:\n";
- foreach ($pluginhost->get_commands() as $command => $data) {
- printf(" %-19s - %s\n", "$command", $data["description"]);
+ foreach (PluginHost::getInstance()->get_commands() as $command => $data) {
+ $args = $data['arghelp'];
+ printf(" --%-19s - %s\n", "$command $args", $data["description"]);
}
return;
}
- define('QUIET', in_array("-quiet", $op));
+ if (!isset($options['daemon'])) {
+ require_once "errorhandler.php";
+ }
+
+ if (!isset($options['update-schema'])) {
+ $schema_version = get_schema_version();
- if (!in_array("-daemon", $op)) {
+ if ($schema_version != SCHEMA_VERSION) {
+ die("Schema version is wrong, please upgrade the database.\n");
+ }
+ }
+
+ define('QUIET', isset($options['quiet']));
+
+ if (isset($options["log"])) {
+ _debug("Logging to " . $options["log"]);
+ define('LOGFILE', $options["log"]);
+ }
+
+ if (!isset($options["daemon"])) {
$lock_filename = "update.lock";
} else {
$lock_filename = "update_daemon.lock";
}
+ if (isset($options["task"])) {
+ _debug("Using task id " . $options["task"]);
+ $lock_filename = $lock_filename . "-task_" . $options["task"];
+ }
+
+ if (isset($options["pidlock"])) {
+ $my_pid = $options["pidlock"];
+ $lock_filename = "update_daemon-$my_pid.lock";
+
+ }
+
+ _debug("Lock: $lock_filename");
+
$lock_handle = make_lockfile($lock_filename);
$must_exit = false;
+ if (isset($options["task"]) && isset($options["pidlock"])) {
+ $waits = $options["task"] * 5;
+ _debug("Waiting before update ($waits)");
+ sleep($waits);
+ }
+
// Try to lock a file in order to avoid concurrent update.
if (!$lock_handle) {
die("error: Can't create lockfile ($lock_filename). ".
"Maybe another update process is already running.\n");
}
- if (in_array("-feeds", $op)) {
- // Update all feeds needing a update.
- update_daemon_common($link);
-
- // Update feedbrowser
- $count = update_feedbrowser_cache($link);
- _debug("Feedbrowser updated, $count feeds processed.");
+ if (isset($options["force-update"])) {
+ _debug("marking all feeds as needing update...");
- // Purge orphans and cleanup tags
- purge_orphans($link, true);
+ db_query( "UPDATE ttrss_feeds SET last_update_started = '1970-01-01',
+ last_updated = '1970-01-01'");
+ }
- $rc = cleanup_tags($link, 14, 50000);
- _debug("Cleaned $rc cached tags.");
+ if (isset($options["feeds"])) {
+ update_daemon_common();
+ housekeeping_common(true);
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_UPDATE_TASK, "hook_update_task", $op);
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
}
- if (in_array("-feedbrowser", $op)) {
- $count = update_feedbrowser_cache($link);
+ if (isset($options["feedbrowser"])) {
+ $count = update_feedbrowser_cache();
print "Finished, $count feeds processed.\n";
}
- if (in_array("-daemon", $op)) {
- $op = array_diff($op, array("-daemon"));
+ if (isset($options["daemon"])) {
while (true) {
- passthru(PHP_EXECUTABLE . " " . implode(' ', $op) . " -daemon-loop");
+ $quiet = (isset($options["quiet"])) ? "--quiet" : "";
+
+ passthru(PHP_EXECUTABLE . " " . $argv[0] ." --daemon-loop $quiet");
_debug("Sleeping for " . DAEMON_SLEEP_INTERVAL . " seconds...");
sleep(DAEMON_SLEEP_INTERVAL);
}
}
- if (in_array("-daemon-loop", $op)) {
+ if (isset($options["daemon-loop"])) {
if (!make_stampfile('update_daemon.stamp')) {
- die("error: unable to create stampfile\n");
+ _debug("warning: unable to create stampfile\n");
}
- // Call to the feed batch update function
- // or regenerate feedbrowser cache
-
- if (rand(0,100) > 30) {
- update_daemon_common($link);
- } else {
- $count = update_feedbrowser_cache($link);
- _debug("Feedbrowser updated, $count feeds processed.");
-
- purge_orphans($link, true);
-
- $rc = cleanup_tags($link, 14, 50000);
-
- _debug("Cleaned $rc cached tags.");
-
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_UPDATE_TASK, "hook_update_task", $op);
- }
+ update_daemon_common(isset($options["pidlock"]) ? 50 : DAEMON_FEED_LIMIT);
+ housekeeping_common(true);
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
}
- if (in_array("-cleanup-tags", $op)) {
- $rc = cleanup_tags($link, 14, 50000);
+ if (isset($options["cleanup-tags"])) {
+ $rc = cleanup_tags( 14, 50000);
_debug("$rc tags deleted.\n");
}
- if (in_array("-indexes", $op)) {
+ if (isset($options["indexes"])) {
_debug("PLEASE BACKUP YOUR DATABASE BEFORE PROCEEDING!");
_debug("Type 'yes' to continue.");
@@ -155,12 +195,12 @@
_debug("clearing existing indexes...");
if (DB_TYPE == "pgsql") {
- $result = db_query($link, "SELECT relname FROM
+ $result = db_query( "SELECT relname FROM
pg_catalog.pg_class WHERE relname LIKE 'ttrss_%'
AND relname NOT LIKE '%_pkey'
AND relkind = 'i'");
} else {
- $result = db_query($link, "SELECT index_name,table_name FROM
+ $result = db_query( "SELECT index_name,table_name FROM
information_schema.statistics WHERE index_name LIKE 'ttrss_%'");
}
@@ -173,7 +213,7 @@
$line['table_name']." DROP INDEX ".$line['index_name'];
_debug($statement);
}
- db_query($link, $statement, false);
+ db_query( $statement, false);
}
_debug("reading indexes from schema for: " . DB_TYPE);
@@ -190,7 +230,7 @@
$statement = "CREATE INDEX $index ON $table";
_debug($statement);
- db_query($link, $statement);
+ db_query( $statement);
}
}
fclose($fp);
@@ -200,7 +240,7 @@
_debug("all done.");
}
- if (in_array("-convert-filters", $op)) {
+ if (isset($options["convert-filters"])) {
_debug("WARNING: this will remove all existing type2 filters.");
_debug("Type 'yes' to continue.");
@@ -209,9 +249,9 @@
_debug("converting filters...");
- db_query($link, "DELETE FROM ttrss_filters2");
+ db_query( "DELETE FROM ttrss_filters2");
- $result = db_query($link, "SELECT * FROM ttrss_filters ORDER BY id");
+ $result = db_query( "SELECT * FROM ttrss_filters ORDER BY id");
while ($line = db_fetch_assoc($result)) {
$owner_uid = $line["owner_uid"];
@@ -244,22 +284,44 @@
$_REQUEST = $filter;
$_SESSION["uid"] = $owner_uid;
- $filters = new Pref_Filters($link, $_REQUEST);
+ $filters = new Pref_Filters($_REQUEST);
$filters->add();
}
}
}
- if (in_array("-force-update", $op)) {
- _debug("marking all feeds as needing update...");
+ if (isset($options["update-schema"])) {
+ _debug("checking for updates (" . DB_TYPE . ")...");
+
+ $updater = new DbUpdater(Db::get(), DB_TYPE, SCHEMA_VERSION);
+
+ if ($updater->isUpdateRequired()) {
+ _debug("schema update required, version " . $updater->getSchemaVersion() . " to " . SCHEMA_VERSION);
+ _debug("WARNING: please backup your database before continuing.");
+ _debug("Type 'yes' to continue.");
+
+ if (read_stdin() != 'yes')
+ exit;
+
+ for ($i = $updater->getSchemaVersion() + 1; $i <= SCHEMA_VERSION; $i++) {
+ _debug("performing update up to version $i...");
+
+ $result = $updater->performUpdateTo($i);
+
+ _debug($result ? "OK!" : "FAILED!");
+
+ if (!$result) return;
+
+ }
+ } else {
+ _debug("update not required.");
+ }
- db_query($link, "UPDATE ttrss_feeds SET last_update_started = '1970-01-01',
- last_updated = '1970-01-01'");
}
- if (in_array("-list-plugins", $op)) {
- $tmppluginhost = new PluginHost($link);
+ if (isset($options["list-plugins"])) {
+ $tmppluginhost = new PluginHost();
$tmppluginhost->load_all($tmppluginhost::KIND_ALL);
$enabled = array_map("trim", explode(",", PLUGINS));
@@ -280,9 +342,7 @@
}
- $pluginhost->run_commands($op);
-
- db_close($link);
+ PluginHost::getInstance()->run_commands($options);
if ($lock_handle != false) {
fclose($lock_handle);
diff --git a/update_daemon2.php b/update_daemon2.php
index 4b6a43999..d5b6a45e3 100755
--- a/update_daemon2.php
+++ b/update_daemon2.php
@@ -9,23 +9,21 @@
define('DISABLE_SESSIONS', true);
require_once "version.php";
-
- if (strpos(VERSION, ".99") !== false || getenv('DAEMON_XDEBUG')) {
- define('DAEMON_EXTENDED_DEBUG', true);
- }
-
- define('PURGE_INTERVAL', 3600); // seconds
- define('MAX_CHILD_RUNTIME', 600); // seconds
-
+ require_once "config.php";
+ require_once "autoload.php";
require_once "functions.php";
require_once "rssfuncs.php";
+
+ // defaults
+ define_default('PURGE_INTERVAL', 3600); // seconds
+ define_default('MAX_CHILD_RUNTIME', 1800); // seconds
+ define_default('MAX_JOBS', 2);
+ define_default('SPAWN_INTERVAL', DAEMON_SLEEP_INTERVAL); // seconds
+
require_once "sanity_check.php";
- require_once "config.php";
require_once "db.php";
require_once "db-prefs.php";
- define('MAX_JOBS', 2);
- define('SPAWN_INTERVAL', DAEMON_SLEEP_INTERVAL);
if (!function_exists('pcntl_fork')) {
die("error: This script requires PHP compiled with PCNTL module.\n");
@@ -118,6 +116,47 @@
pcntl_signal(SIGCHLD, 'sigchld_handler');
+ $longopts = array("log:",
+ "tasks:",
+ "interval:",
+ "quiet",
+ "help");
+
+ $options = getopt("", $longopts);
+
+ if (isset($options["help"]) ) {
+ print "Tiny Tiny RSS update daemon.\n\n";
+ print "Options:\n";
+ print " --log FILE - log messages to FILE\n";
+ print " --tasks N - amount of update tasks to spawn\n";
+ print " default: " . MAX_JOBS . "\n";
+ print " --interval N - task spawn interval\n";
+ print " default: " . SPAWN_INTERVAL . " seconds.\n";
+ print " --quiet - don't output messages to stdout\n";
+ return;
+ }
+
+ define('QUIET', isset($options['quiet']));
+
+ if (isset($options["tasks"])) {
+ _debug("Set to spawn " . $options["tasks"] . " children.");
+ $max_jobs = $options["tasks"];
+ } else {
+ $max_jobs = MAX_JOBS;
+ }
+
+ if (isset($options["interval"])) {
+ _debug("Spawn interval: " . $options["interval"] . " seconds.");
+ $spawn_interval = $options["interval"];
+ } else {
+ $spawn_interval = SPAWN_INTERVAL;
+ }
+
+ if (isset($options["log"])) {
+ _debug("Logging to " . $options["log"]);
+ define('LOGFILE', $options["log"]);
+ }
+
if (file_is_locked("update_daemon.lock")) {
die("error: Can't create lockfile. ".
"Maybe another daemon is already running.\n");
@@ -131,31 +170,31 @@
"Maybe another daemon is already running.\n");
}
- // Testing database connection.
- // It is unnecessary to start the fork loop if database is not ok.
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
+ $schema_version = get_schema_version();
- if (!init_connection($link)) return;
+ if ($schema_version != SCHEMA_VERSION) {
+ die("Schema version is wrong, please upgrade the database.\n");
+ }
- db_close($link);
+ // Protip: children close shared database handle when terminating, it's a bad idea to
+ // do database stuff on main process from now on.
while (true) {
// Since sleep is interupted by SIGCHLD, we need another way to
- // respect the SPAWN_INTERVAL
- $next_spawn = $last_checkpoint + SPAWN_INTERVAL - time();
+ // respect the spawn interval
+ $next_spawn = $last_checkpoint + $spawn_interval - time();
- if ($next_spawn % 10 == 0) {
+ if ($next_spawn % 60 == 0) {
$running_jobs = count($children);
_debug("[MASTER] active jobs: $running_jobs, next spawn at $next_spawn sec.");
}
- if ($last_checkpoint + SPAWN_INTERVAL < time()) {
-
+ if ($last_checkpoint + $spawn_interval < time()) {
check_ctimes();
reap_children();
- for ($j = count($children); $j < MAX_JOBS; $j++) {
+ for ($j = count($children); $j < $max_jobs; $j++) {
$pid = pcntl_fork();
if ($pid == -1) {
die("fork failed!\n");
@@ -177,67 +216,17 @@
register_shutdown_function('task_shutdown');
- $my_pid = posix_getpid();
- $lock_filename = "update_daemon-$my_pid.lock";
+ $quiet = (isset($options["quiet"])) ? "--quiet" : "";
- $lock_handle = make_lockfile($lock_filename);
-
- if (!$lock_handle) {
- die("error: Can't create lockfile ($lock_filename). ".
- "Maybe another daemon is already running.\n");
- }
-
- // ****** Updating RSS code *******
- // Only run in fork process.
-
- $start_timestamp = time();
-
- $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
- if (!init_connection($link)) return;
-
- // We disable stamp file, since it is of no use in a multiprocess update.
- // not really, tho for the time being -fox
- if (!make_stampfile('update_daemon.stamp')) {
- die("error: unable to create stampfile\n");
- }
-
- // Call to the feed batch update function
- // or regenerate feedbrowser cache
-
- if (rand(0,100) > 30) {
- update_daemon_common($link);
- } else {
- $count = update_feedbrowser_cache($link);
- _debug("Feedbrowser updated, $count feeds processed.");
-
- purge_orphans($link, true);
-
- $rc = cleanup_tags($link, 14, 50000);
-
- _debug("Cleaned $rc cached tags.");
-
- global $pluginhost;
- $pluginhost->run_hooks($pluginhost::HOOK_UPDATE_TASK, "hook_update_task", $op);
- }
-
- _debug("Elapsed time: " . (time() - $start_timestamp) . " second(s)");
+ $my_pid = posix_getpid();
- db_close($link);
+ passthru(PHP_EXECUTABLE . " update.php --daemon-loop $quiet --task $j --pidlock $my_pid");
- // We are in a fork.
- // We wait a little before exiting to avoid to be faster than our parent process.
sleep(1);
- unlink(LOCK_DIRECTORY . "/$lock_filename");
-
// We exit in order to avoid fork bombing.
exit(0);
}
-
- // We wait a little time before the next fork, in order to let the first fork
- // mark the feeds it update :
- sleep(1);
}
$last_checkpoint = time();
}
diff --git a/utility.css b/utility.css
index de0042a77..5b68e8837 100644
--- a/utility.css
+++ b/utility.css
@@ -1,8 +1,22 @@
body {
- margin : 2em;
- padding : 0em;
font-family : sans-serif;
font-size : 12px;
+ background : #eee;
+ margin-left : auto;
+ margin-right : auto;
+ max-width : 800px;
+}
+
+form {
+ margin : 10px 0px 0px 0px;
+ padding : 0px;
+}
+
+div.content {
+ background : white;
+ border : 1px solid #ccc;
+ padding : 10px;
+ box-shadow : 0px 0px 3px #ccc;
}
p.warning {
@@ -24,6 +38,8 @@ div.insensitive-small {
.floatingLogo {
float : right;
+ position : relative;
+ top : -10px;
}
a {
@@ -35,52 +51,66 @@ a:hover {
color : black;
}
+div.notice, div.warning, div.error {
+ padding : 4px 10px 4px 4px;
+ display : inline-block;
+ margin : 2px 0px 4px 0px;
+ font-size : 12px;
+ border-style : solid;
+ border-color : #ccc;
+ border-radius : 4px;
+ border-width : 1px;
+ box-shadow : 0px 0px 2px rgba(0,0,0,0.1);
+}
+
+div.notice div.inner, div.warning div.inner, div.error div.inner {
+ vertical-align : middle;
+}
+
div.notice {
- background : #ffffff;
- border : 1px solid #88b0f0;
- width : 50%;
- padding : 5px;
- margin : 0px 0px 5px 0px;
- font-size : 9pt;
+ background : #ecf4ff;
+ border-color : #88b0f0;
}
div.warning {
+ border-color : #EFDC88;
background : #fff7d5;
- border : 1px solid #d7c47a;
- font-size : 9pt;
- width : 50%;
- padding : 5px;
- margin : 0px 0px 5px 0px;
}
+div.error {
+ background : #ffcccc;
+ border-color : #ff0000;
+}
div.warning img, div.notice img, div.error img {
+ margin-right : 4px;
vertical-align : middle;
- padding : 5px;
}
-div.error {
- border : 1px solid #ff0000;
- background : #ffcccc;
- padding : 5px;
- margin : 0px 0px 5px 0px;
- font-size : 9pt;
+div.warning span, div.notice span, div.error span {
+ display : table-cell;
+ vertical-align : middle;
+
}
h1 {
color : #88b0f0;
- font-size : 16pt;
-/* border-width : 0px 0px 1px 0px;
- border-color : black;
- border-style : solid; */
+ font-size : 32px;
+ font-family : serif;
+ margin : 20px 0px 5px 0px;
+ text-shadow : 2px 2px 2px #fff;
}
h2 {
color : #88b0f0;
font-size : 14pt;
-/* border-width : 0px 0px 1px 0px;
- border-color : black;
- border-style : solid; */
+ border-width : 0px 0px 1px 0px;
+ border-color : #f0f0f0;
+ border-style : solid;
+}
+
+div.content > h2 {
+ margin-top : 0px;
}
div.rss h1 {
@@ -93,7 +123,6 @@ div.rss h1 {
div.rss h2 {
font-size : 12pt;
- margin : 0px;
}
div.rss a.extlink {
@@ -104,6 +133,10 @@ div.rss a.extlink {
font-size : 9pt;
}
+div.rss img {
+ max-width : 775px;
+}
+
div.rss p.description {
color : gray;
font-size : 9pt;
@@ -182,3 +215,49 @@ div.autocomplete ul li {
cursor : pointer;
}
+fieldset {
+ border-width : 0px;
+ padding : 0px 0px 5px 0px;
+ margin : 0px;
+}
+
+fieldset input {
+ font-family : sans-serif;
+ font-size : medium;
+ border-spacing : 2px;
+ border : 1px solid #b5bcc7;
+ padding : 2px;
+}
+
+fieldset label {
+ width : 120px;
+ margin-right : 20px;
+ display : inline-block;
+ text-align : right;
+ color : gray;
+}
+
+body.otp {
+ margin : 1em;
+ padding : 0px;
+}
+
+form.otpform {
+ margin : 0px;
+ padding : 0px;
+}
+
+form.otpform label {
+ margin : 0px;
+ padding : 0px;
+}
+
+body.otp div.content {
+ display : inline-block;
+ width : auto;
+}
+
+span.hint {
+ font-size : 10px;
+ color : gray;
+}
diff --git a/utils/.htaccess b/utils/.htaccess
new file mode 100644
index 000000000..93169e4eb
--- /dev/null
+++ b/utils/.htaccess
@@ -0,0 +1,2 @@
+Order deny,allow
+Deny from all
diff --git a/utils/create-release-deb.sh b/utils/create-release-deb.sh
deleted file mode 100755
index df2369afc..000000000
--- a/utils/create-release-deb.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh -ei
-
-if [ -z $1 ]; then
- echo usage: $0 VERSION
- exit 1
-fi
-
-git clone . dpkg-tmp/tt-rss
-cd dpkg-tmp/tt-rss
-git checkout $1
-
-debuild -i -us -uc
-#debuild -i -us -uc -b -aamd64
-
-cd ..
-
-if [ ! -z "$DEPLOY_DEBS" ]; then
- reprepro -b /var/www/apt include unstable tt-rss*_i386.changes
- #reprepro -b /var/www/apt include unstable tt-rss*_amd64.changes
-fi
-
-#cd ..
-#rm -rf dpkg-tmp
diff --git a/utils/create-release-tarball.sh b/utils/create-release-tarball.sh
deleted file mode 100755
index 935f0862c..000000000
--- a/utils/create-release-tarball.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-if [ -z $1 ]; then
- echo usage: $0 VERSION
- exit 1
-fi
-
-git archive --format=tar --prefix=tt-rss-$1/ $1 | gzip >tt-rss-$1.tar.gz
diff --git a/utils/update-schema-translations.sh b/utils/update-schema-translations.sh
deleted file mode 100755
index 663f5a9a2..000000000
--- a/utils/update-schema-translations.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-BASENAME=`basename $0`
-TMPFILE="/tmp/$BASENAME-$$.tmp"
-OUTFILE="include/localized_schema.php"
-
-cat schema/ttrss_schema_pgsql.sql | grep 'insert.*pref_name' | awk -F\' '{ print $8 }' > $TMPFILE
-cat schema/ttrss_schema_pgsql.sql | grep 'insert.*pref_name' | awk -F\' '{ print $6 }' >> $TMPFILE
-
-echo "<?php # This file has been generated at: " `date` > $OUTFILE
-echo >> $OUTFILE
-cat utils/localized_schema.txt >> $OUTFILE
-echo >> $OUTFILE
-
-cat $TMPFILE | grep -v '^$' | sed "s/.*/__('&');/" >> $OUTFILE
-
-echo "?>" >> $OUTFILE
-
-rm $TMPFILE
diff --git a/utils/update-translations.sh b/utils/update-translations.sh
index 8e49fac56..4b8dab6b9 100755
--- a/utils/update-translations.sh
+++ b/utils/update-translations.sh
@@ -1,20 +1,14 @@
#!/bin/sh
TEMPLATE=messages.pot
-./utils/update-schema-translations.sh
+xgettext -kT_js_decl -kT_sprintf -kT_ngettext:1,2 -k__ -L PHP -o $TEMPLATE *.php include/*.php `find classes -iname '*.php'` `find plugins -iname '*.php'`
-xgettext -kT_js_decl -kT_sprintf -kT_ngettext:1,2 -k__ -L PHP -o $TEMPLATE *.php help/*.php mobile/*.php include/*.php `find classes -iname '*.php'` `find plugins -iname '*.php'` `find plugins -iname '*.js'`
-
-xgettext --from-code utf-8 -k__ -L Java -j -o $TEMPLATE js/*.js
+xgettext --from-code utf-8 -k__ -knotify_info -knotify_progress -kngettext -L Java -j -o $TEMPLATE js/*.js `find plugins -iname '*.js'`
update_lang() {
if [ -f $1.po ]; then
- TMPFILE=/tmp/update-translations.$$
-
- msgmerge -o $TMPFILE $1.po $TEMPLATE
- mv $TMPFILE $1.po
- msgfmt --statistics $1.po
- msgfmt -o $1.mo $1.po
+ msgmerge --no-wrap --width 1 -U $1.po $TEMPLATE
+ msgfmt --statistics $1.po -o $1.mo
else
echo "Usage: $0 [-p|<basename>]"
fi